Trick 6 jaren geleden
bovenliggende
commit
e9bc6d8534

+ 2 - 1
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 findDefaultReply ="/findDefaultReply";
        public static final String findWxReplySceneExist ="/findWxReplySceneExist";
        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";
@ -263,7 +264,7 @@ public class BaseRequestMapping {
        public static final String saveWxTempConfig ="/saveWxTempConfig";
        public static final String saveWxTempConfig ="/saveWxTempConfig";
        public static final String findWxTempConfigList ="/findWxTempConfigList";
        public static final String findWxTempConfigList ="/findWxTempConfigList";
        public static final String findWxTemplateConfig ="/findWxTemplateConfig";
        public static final String findWxTemplateConfig ="/findWxTemplateConfig";
        public static final String getAllTemp ="/getAllTemp";
        public static final String getusersummary ="/getusersummary";
        public static final String getusersummary ="/getusersummary";
        public static final String getusercumulate ="/getusercumulate";
        public static final String getusercumulate ="/getusercumulate";

+ 12 - 4
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -10,6 +10,7 @@ import com.yihu.jw.security.oauth2.provider.WlyyTokenGranter;
import com.yihu.jw.security.oauth2.provider.error.WlyyOAuth2ExceptionTranslator;
import com.yihu.jw.security.oauth2.provider.error.WlyyOAuth2ExceptionTranslator;
import com.yihu.utils.security.RSAUtils;
import com.yihu.utils.security.RSAUtils;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
import org.slf4j.Logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
@ -38,11 +39,13 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.PostConstruct;
import javax.annotation.PostConstruct;
import javax.crypto.Cipher;
import javax.servlet.http.Cookie;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.IOException;
import java.security.PrivateKey;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.interfaces.RSAPublicKey;
import java.text.SimpleDateFormat;
import java.text.SimpleDateFormat;
@ -118,10 +121,12 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        if (StringUtils.isEmpty(parameters.get("captcha"))) {
        if (StringUtils.isEmpty(parameters.get("captcha"))) {
            parameters.put("grant_type", "password");
            parameters.put("grant_type", "password");
            //解密密码
            //解密密码
            if (parameters.get("password") != null) {
                RSAPrivateKey rsaPrivateKey = (RSAPrivateKey)httpSession.getAttribute("privateKey");
                parameters.put("password", RSAUtils.decryptByPrivateKey(new String(Base64.decodeBase64(parameters.get("password"))), rsaPrivateKey));
            }
//            if (parameters.get("password") != null) {
//                RSAPrivateKey rsaPrivateKey = (RSAPrivateKey)httpSession.getAttribute("privateKey");
////                byte[] en_data = Hex.decodeHex(parameters.get("password").toCharArray());
////                parameters.put("password", RSAUtils.decryptByPrivateKey(new String(en_data), rsaPrivateKey));
//                parameters.put("password", RSAUtils.decryptByPrivateKey(new String(Base64.decodeBase64(parameters.get("password"))), rsaPrivateKey));
//            }
        } else {
        } else {
            parameters.put("grant_type", "captcha");
            parameters.put("grant_type", "captcha");
        }
        }
@ -246,6 +251,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        PublicKey publicKey = new PublicKey();
        PublicKey publicKey = new PublicKey();
        publicKey.setModulus(Base64.encodeBase64String(rsaPublicKey.getModulus().toByteArray()));
        publicKey.setModulus(Base64.encodeBase64String(rsaPublicKey.getModulus().toByteArray()));
        publicKey.setExponent(Base64.encodeBase64String(rsaPublicKey.getPublicExponent().toByteArray()));
        publicKey.setExponent(Base64.encodeBase64String(rsaPublicKey.getPublicExponent().toByteArray()));
//        publicKey.setModulus(new String(Hex.encodeHex(rsaPublicKey.getModulus().toByteArray())));
//        publicKey.setExponent(new String(Hex.encodeHex(rsaPublicKey.getPublicExponent().toByteArray())));
        httpSession.setAttribute("privateKey", rsaPrivateKey);
        httpSession.setAttribute("privateKey", rsaPrivateKey);
        //生成Cookie
        //生成Cookie
        Cookie cookie = new Cookie("oauth2", UUID.randomUUID().toString());
        Cookie cookie = new Cookie("oauth2", UUID.randomUUID().toString());
@ -415,4 +422,5 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        ResponseEntity<Oauth2Envelop> response = new ResponseEntity<>(authenticationFailed, headers, HttpStatus.OK);
        ResponseEntity<Oauth2Envelop> response = new ResponseEntity<>(authenticationFailed, headers, HttpStatus.OK);
        return response;
        return response;
    }
    }
}
}

+ 19 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/wx/WechatController.java

@ -2,6 +2,7 @@ package com.yihu.jw.base.endpoint.wx;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONArray;
import com.yihu.jw.base.service.wx.WechatService;
import com.yihu.jw.base.service.wx.WechatService;
import com.yihu.jw.base.service.wx.WxTemplateService;
import com.yihu.jw.entity.base.wx.*;
import com.yihu.jw.entity.base.wx.*;
import com.yihu.jw.restmodel.base.wx.*;
import com.yihu.jw.restmodel.base.wx.*;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.Envelop;
@ -9,10 +10,12 @@ 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.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.base.WechatRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.List;
@ -27,6 +30,8 @@ public class WechatController extends EnvelopRestEndpoint {
    @Autowired
    @Autowired
    private WechatService wechatService;
    private WechatService wechatService;
    @Autowired
    private WxTemplateService wxTemplateService;
    //====================微信与租户管理=======================
    //====================微信与租户管理=======================
@ -199,6 +204,13 @@ public class WechatController extends EnvelopRestEndpoint {
    }
    }
    @PostMapping(value = BaseRequestMapping.WeChat.findDefaultReply)
    @ApiOperation(value = "获取默认事件配置", notes = "获取默认事件配置")
    public ObjEnvelop<WxReplySceneVO> findDefaultReply(@ApiParam(name = "wechatId", value = "事件配置json")
                                                       @RequestParam(value = "wechatId", required = true)String wechatId) {
        return success(wechatService.findDefaultReply(wechatId),WxReplySceneVO.class);
    }
    @GetMapping(value = BaseRequestMapping.WeChat.findWxReplySceneExist)
    @GetMapping(value = BaseRequestMapping.WeChat.findWxReplySceneExist)
    @ApiOperation(value = "验证事件配置是否存在", notes = "验证事件配置是否存在")
    @ApiOperation(value = "验证事件配置是否存在", notes = "验证事件配置是否存在")
    public Envelop findWxReplySceneExist(@ApiParam(name = "wechatId", value = "微信id")
    public Envelop findWxReplySceneExist(@ApiParam(name = "wechatId", value = "微信id")
@ -293,6 +305,13 @@ public class WechatController extends EnvelopRestEndpoint {
        return success(wechatService.findWxTemplateConfig(wechatId,name,scene), WxTemplateConfigVO.class);
        return success(wechatService.findWxTemplateConfig(wechatId,name,scene), WxTemplateConfigVO.class);
    }
    }
    @PostMapping(value = BaseRequestMapping.WeChat.getAllTemp)
    @ApiOperation(value = "获取所有微信模板", notes = "获取所有微信模板")
    public String  getAllTemp(@ApiParam(name = "wechatId", value = "微信id")
                              @RequestParam(value = "wechatId", required = true)String wechatId) {
        return wxTemplateService.getAllTemp(wechatId);
    }
    //===================模板消息end==========================================
    //===================模板消息end==========================================
    //===================微信粉丝统计==========================================
    //===================微信粉丝统计==========================================

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

@ -7,6 +7,8 @@ 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 com.yihu.jw.util.wechat.WeiXinMessageReplyUtils;
import com.yihu.jw.util.wechat.WeiXinMessageUtils;
import org.apache.commons.collections.map.HashedMap;
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;
@ -342,6 +344,14 @@ public class WechatService {
        return Envelop.getSuccess(BaseRequestMapping.WeChat.api_success);
        return Envelop.getSuccess(BaseRequestMapping.WeChat.api_success);
    }
    }
    public WxReplySceneDO findDefaultReply(String wechatId){
        List<WxReplySceneDO> list = wxReplySceneDao.findByWechatIdAndDefaultReply(wechatId, WeiXinMessageUtils.RESP_MESSAGE_DEFAULT);
        if(list!=null&&list.size()>0){
            return list.get(0);
        }
       return null;
    }
    public Map<String,Object> findWxReplySceneExist(String wechatId,String msgType,String event,String content,String scene){
    public Map<String,Object> findWxReplySceneExist(String wechatId,String msgType,String event,String content,String scene){
        Map<String,Object> map = new HashedMap();
        Map<String,Object> map = new HashedMap();
@ -440,6 +450,7 @@ public class WechatService {
        return MixEnvelop.getSuccessListWithPage(BaseRequestMapping.WeChat.api_success, list, page, size, count);
        return MixEnvelop.getSuccessListWithPage(BaseRequestMapping.WeChat.api_success, list, page, size, count);
    }
    }
    //===================图文素材管理end====================================
    //===================图文素材管理end====================================
    //===================模板消息==========================================
    //===================模板消息==========================================