Explorar o código

Merge branch 'dev' of trick9191/wlyy2.0 into dev

trick9191 %!s(int64=6) %!d(string=hai) anos
pai
achega
81d63f3550

+ 1 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -256,6 +256,7 @@ public class BaseRequestMapping {
        public static final String deleteImgGroupRelation ="/deleteImgGroupRelation";
        public static final String deleteImgGroupRelation ="/deleteImgGroupRelation";
        public static final String saveWxReplyScene ="/saveWxReplyScene";
        public static final String saveWxReplyScene ="/saveWxReplyScene";
        public static final String findWxReplySceneExist ="/findWxReplySceneExist";
        public static final String findWxReplyScene ="/findWxReplyScene";
        public static final String findWxReplyScene ="/findWxReplyScene";
        public static final String saveWxTemp ="/saveWxTemp";
        public static final String saveWxTemp ="/saveWxTemp";
        public static final String findWxtemp ="/findWxtemp";
        public static final String findWxtemp ="/findWxtemp";

+ 11 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/wx/WxReplySceneVO.java

@ -6,6 +6,9 @@ import io.swagger.annotations.ApiModelProperty;
 * Created by Administrator on 2018/10/9.
 * Created by Administrator on 2018/10/9.
 */
 */
public class WxReplySceneVO {
public class WxReplySceneVO {
    @ApiModelProperty(value = "id")
    private String id;
    @ApiModelProperty(value = "微信id(唯一)")
    @ApiModelProperty(value = "微信id(唯一)")
    private String wechatId;//微信id(唯一)
    private String wechatId;//微信id(唯一)
    @ApiModelProperty(value = "原始ID(唯一)")
    @ApiModelProperty(value = "原始ID(唯一)")
@ -21,6 +24,14 @@ public class WxReplySceneVO {
    @ApiModelProperty(value = "状态(-1删除 0 冻结 1可用")
    @ApiModelProperty(value = "状态(-1删除 0 冻结 1可用")
    private Integer status;//状态(-1删除 0 冻结 1可用
    private Integer status;//状态(-1删除 0 冻结 1可用
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getWechatId() {
    public String getWechatId() {
        return wechatId;
        return wechatId;
    }
    }

+ 11 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/wx/WxReplySceneDao.java

@ -15,4 +15,15 @@ public interface WxReplySceneDao extends PagingAndSortingRepository<WxReplyScene
    List<WxReplySceneDO> findByAppOriginIdAndMsgTypeAndStatus(String appOriginId, String msgType, Integer status);
    List<WxReplySceneDO> findByAppOriginIdAndMsgTypeAndStatus(String appOriginId, String msgType, Integer status);
    List<WxReplySceneDO> findByAppOriginIdAndMsgTypeAndEventAndStatus(String appOriginId, String msgType, String event, Integer status);
    List<WxReplySceneDO> findByAppOriginIdAndMsgTypeAndEventAndStatus(String appOriginId, String msgType, String event, Integer status);
    //text类型,判断同关键字的事件是否存在
    List<WxReplySceneDO> findByWechatIdAndMsgTypeAndContentAndStatus(String wechatId,String msgType,String content,Integer status);
    //关注事件,判断关注事件是否存在
    List<WxReplySceneDO> findByWechatIdAndMsgTypeAndEventAndStatus(String wechatId,String msgType,String event,Integer status);
    //点击事件,扫码事件,是否存在相同场景值
    List<WxReplySceneDO> findByWechatIdAndMsgTypeAndEventAndSceneAndStatus(String wechatId,String msgType,String event,String scene,Integer status);
}
}

+ 16 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/wx/WechatController.java

@ -190,7 +190,7 @@ public class WechatController extends EnvelopRestEndpoint {
        return wechatService.deleteImgGroupRelation(wechatId,scene,imgId);
        return wechatService.deleteImgGroupRelation(wechatId,scene,imgId);
    }
    }
        @PostMapping(value = BaseRequestMapping.WeChat.saveWxReplyScene)
    @PostMapping(value = BaseRequestMapping.WeChat.saveWxReplyScene)
    @ApiOperation(value = "事件配置场景", notes = "事件配置场景")
    @ApiOperation(value = "事件配置场景", notes = "事件配置场景")
    public Envelop saveWxReplyScene(@ApiParam(name = "wxReplySceneJson", value = "事件配置json")
    public Envelop saveWxReplyScene(@ApiParam(name = "wxReplySceneJson", value = "事件配置json")
                                    @RequestParam(value = "wxReplySceneJson", required = true)String wxReplySceneJson) throws Exception{
                                    @RequestParam(value = "wxReplySceneJson", required = true)String wxReplySceneJson) throws Exception{
@ -199,6 +199,21 @@ public class WechatController extends EnvelopRestEndpoint {
    }
    }
    @GetMapping(value = BaseRequestMapping.WeChat.findWxReplySceneExist)
    @ApiOperation(value = "验证事件配置是否存在", notes = "验证事件配置是否存在")
    public Envelop findWxReplySceneExist(@ApiParam(name = "wechatId", value = "微信id")
                                         @RequestParam(value = "wechatId", required = true)String wechatId,
                                         @ApiParam(name = "msgType", value = "消息类型")
                                         @RequestParam(value = "msgType", required = true)String msgType,
                                         @ApiParam(name = "event", value = "event")
                                         @RequestParam(value = "event", required = true)String event,
                                         @ApiParam(name = "content", value = "消息文本")
                                         @RequestParam(value = "content", required = false)String content,
                                         @ApiParam(name = "scene", value = "场景值(图文分组)")
                                         @RequestParam(value = "scene", required = true)String scene) {
        return success(BaseRequestMapping.WeChat.api_success,wechatService.findWxReplySceneExist(wechatId,msgType,event,content,scene));
    }
    @GetMapping(value = BaseRequestMapping.WeChat.findWxReplyScene)
    @GetMapping(value = BaseRequestMapping.WeChat.findWxReplyScene)
    @ApiOperation(value = "获取消息配置场景", notes = "获取消息配置场景")
    @ApiOperation(value = "获取消息配置场景", notes = "获取消息配置场景")
    public MixEnvelop<WxReplySceneVO,WxReplySceneVO> findWxReplyScene(@ApiParam(name = "wechatId", value = "微信id")
    public MixEnvelop<WxReplySceneVO,WxReplySceneVO> findWxReplyScene(@ApiParam(name = "wechatId", value = "微信id")

+ 12 - 10
svr/svr-base/src/main/java/com/yihu/jw/base/service/wx/WeChatQrcodeService.java

@ -46,14 +46,16 @@ public class WeChatQrcodeService {
                        + URLEncoder.encode(json.get("ticket").toString(), "UTF-8"));
                        + URLEncoder.encode(json.get("ticket").toString(), "UTF-8"));
                HttpURLConnection connection = (HttpURLConnection) urlGet.openConnection();
                HttpURLConnection connection = (HttpURLConnection) urlGet.openConnection();
                connection.connect();
                connection.connect();
                //下载图片到内存
                inputStream = connection.getInputStream();
                inputStream = connection.getInputStream();
//                String pathFile = request.getSession().getServletContext().getRealPath("/")
//                        + File.separator + "qrcode" + File.separator + wechatId+"_"+scene+".png";
                //======start===
                //fastDFS方法问题,直接将inputStream文件流上传文件服务器存数据缺失,
                // 故将文件输出本地,在上传文件服务器,之后删除本地文件
                String path = WeChatQrcodeService.class.getResource("/").getPath().replace("/WEB-INF/classes/", "")
                String path = WeChatQrcodeService.class.getResource("/").getPath().replace("/WEB-INF/classes/", "")
                        + File.separator + "qrcode" ;
                        + File.separator + "qrcode" ;
                File dir = new File(path);
                //判断目录是否存在,创建目录
                File dir = new File(path);
                if(!dir.exists()){
                if(!dir.exists()){
                    dir.mkdir();
                    dir.mkdir();
                }
                }
@ -71,14 +73,9 @@ public class WeChatQrcodeService {
                InputStream input = new FileInputStream(file);
                InputStream input = new FileInputStream(file);
                //=======end=========
                ObjectNode objectNode = fastDFSHelper.upload(input,"png","");
                ObjectNode objectNode = fastDFSHelper.upload(input,"png","");
                File del = new File(path);
                if(del.exists()&&del.isFile()){
                    del.delete();
                }
                if (outputStream != null) {
                if (outputStream != null) {
                    outputStream.close();
                    outputStream.close();
                }
                }
@ -86,6 +83,11 @@ public class WeChatQrcodeService {
                if (inputStream != null) {
                if (inputStream != null) {
                    inputStream.close();
                    inputStream.close();
                }
                }
                //流关闭,删除文件
                if(file.exists()&&file.isFile()){
                    file.delete();
                }
                return objectNode.get("fileId").toString().replaceAll("\"", "");
                return objectNode.get("fileId").toString().replaceAll("\"", "");
            }
            }
        }
        }

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/wx/WechatCoreService.java

@ -262,7 +262,7 @@ public class WechatCoreService {
            for(WxReplySceneDO scene:scenes){
            for(WxReplySceneDO scene:scenes){
                if(StringUtils.isNotBlank(scene.getContent())
                if(StringUtils.isNotBlank(scene.getContent())
                        &&content.equals(scene.getContent())
                        &&content.equals(scene.getContent())
                        &&StringUtils.isNotBlank(scene.getScene())){
                        &&StringUtils.isNotBlank(scene.getContent())){
                    //根据场景值,动态生成图文消息回复文斌
                    //根据场景值,动态生成图文消息回复文斌
                    return getGraphicXMl(scene.getScene(),scene.getWechatId(),message);
                    return getGraphicXMl(scene.getScene(),scene.getWechatId(),message);
                }
                }

+ 41 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/wx/WechatService.java

@ -7,6 +7,7 @@ import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.base.BaseRequestMapping;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
@ -334,6 +335,45 @@ public class WechatService {
        return Envelop.getSuccess(BaseRequestMapping.WeChat.api_success);
        return Envelop.getSuccess(BaseRequestMapping.WeChat.api_success);
    }
    }
    public Map<String,Object> findWxReplySceneExist(String wechatId,String msgType,String event,String content,String scene){
        Map<String,Object> map = new HashedMap();
        if("text".equals(msgType)){
            List<WxReplySceneDO> wxReplySceneDOs =wxReplySceneDao.findByWechatIdAndMsgTypeAndContentAndStatus(wechatId,msgType,content,1);
            if(wxReplySceneDOs!=null&&wxReplySceneDOs.size()>0){
                map.put("status",-1);
                map.put("mes","文本回复已经存在!");
            }else{
                map.put("status",1);
                map.put("mes","事件验证成功!");
            }
        }else{
            //关注事件类型只能有一条事件配置
            if("subscribe".equals(event)){
                List<WxReplySceneDO> wxReplySceneDOs =wxReplySceneDao.findByWechatIdAndMsgTypeAndEventAndStatus(wechatId,msgType,event,1);
                if(wxReplySceneDOs!=null&&wxReplySceneDOs.size()>0){
                    map.put("status",-2);
                    map.put("mes","关注事件已经配置!");
                }else{
                    map.put("status",1);
                    map.put("mes","事件验证成功!");
                }
            }else{
                //点击事件,扫码事件
                List<WxReplySceneDO> wxReplySceneDOs =wxReplySceneDao.findByWechatIdAndMsgTypeAndEventAndSceneAndStatus(wechatId,msgType,event,scene,1);
                if(wxReplySceneDOs!=null&&wxReplySceneDOs.size()>0){
                    map.put("status",-3);
                    map.put("mes","事件图文分组已经配置!");
                }else{
                    map.put("status",1);
                    map.put("mes","事件验证成功!");
                }
            }
        }
        return map;
    }
    public MixEnvelop findWxReplyScene(String wechatId,String msgType,String event,String content,Integer page,Integer size){
    public MixEnvelop findWxReplyScene(String wechatId,String msgType,String event,String content,Integer page,Integer size){
        String totalSql = "SELECT " +
        String totalSql = "SELECT " +
                " COUNT(1) AS total " +
                " COUNT(1) AS total " +
@ -357,6 +397,7 @@ public class WechatService {
        }
        }
        String sql = "SELECT " +
        String sql = "SELECT " +
                " s.id," +
                " s.wechat_id AS wechatId," +
                " s.wechat_id AS wechatId," +
                " s.scene, " +
                " s.scene, " +
                " s.`status`, " +
                " s.`status`, " +