From 5e46032567c94cad05a48d6be16e1f2ba2cd992a Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 20 Jul 2020 15:09:13 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E7=99=BB=E9=99=86=E6=8E=A5=E5=8F=A3=E3=80=81=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E7=BB=84=E7=BB=87=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PublicUserLoginServiceImpl.java | 33 ++++++++++++------- .../dto/result/CreateAgencyResultDTO.java | 4 --- .../dto/result/CustomerUserResultDTO.java | 5 +++ .../service/impl/PaCustomerServiceImpl.java | 2 +- .../epmet/service/impl/PaUserServiceImpl.java | 11 +++++++ 5 files changed, 39 insertions(+), 16 deletions(-) diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java index 21c0bc8c53..af889dd306 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java @@ -12,6 +12,7 @@ import com.epmet.constant.PublicUserLoginConstant; import com.epmet.constant.SmsTemplateConstant; import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaUserDTO; +import com.epmet.dto.PaUserWechatDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO; @@ -77,7 +78,9 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { //3.获取用户token String token = this.generateGovWxmpToken(resultDTO.getUserId()); //4.保存到redis - this.saveLatestGovTokenDto(resultDTO, wxMpUser, token); + String openid = wxMpUser.getOpenId(); + String unionId = (null == wxMpUser.getUnionId() ? "" : wxMpUser.getUnionId()); + this.saveLatestGovTokenDto("", resultDTO.getUserId(), openid, unionId, token); UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO(); userTokenResultDTO.setToken(token); return userTokenResultDTO; @@ -118,17 +121,17 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { } //保存tokenDto到redis - private void saveLatestGovTokenDto(SaveUserResultDTO resultDTO, WxMpUser wxMpUser, String token) { + private void saveLatestGovTokenDto(String customerId, String userId, String openId, String unionId, String token) { TokenDto tokenDTO = new TokenDto(); int expire = jwtTokenProperties.getExpire(); tokenDTO.setApp(LoginConstant.APP_PUBLIC); tokenDTO.setClient(LoginConstant.CLIENT_MP); - tokenDTO.setOpenId(wxMpUser.getOpenId()); - tokenDTO.setUnionId(null == wxMpUser.getUnionId() ? "" : wxMpUser.getUnionId()); + tokenDTO.setOpenId(openId); + tokenDTO.setUnionId(unionId); tokenDTO.setToken(token); //首次初始化时还没有客户 - tokenDTO.setCustomerId(""); - tokenDTO.setUserId(resultDTO.getUserId()); + tokenDTO.setCustomerId(customerId); + tokenDTO.setUserId(userId); tokenDTO.setExpireTime(jwtTokenUtils.getExpiration(token).getTime()); tokenDTO.setUpdateTime(System.currentTimeMillis()); cpUserDetailRedis.set(tokenDTO, expire); @@ -206,19 +209,27 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { logger.error(String.format("验证码错误code[%s],msg[%s]", EpmetErrorCode.MOBILE_CODE_ERROR.getCode(), EpmetErrorCode.MOBILE_CODE_ERROR.getMsg())); throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode()); } + //获取缓存中的token TokenDto redisTokenDTO = cpUserDetailRedis.get(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, userDTO.getId(), TokenDto.class); if (redisTokenDTO == null) { return null; } - //4.判断是否存在客户信息,是否需要生成新的token + //4.直接生成一个新的token放入缓存中(不管缓存中是否存在旧的token,都重新生成) + //4-1.生成token + String token = this.generateGovWxmpToken(userDTO.getId()); + //4-2.判断是否存在信息,给customerId赋值 PaCustomerDTO customerDTO = resultDTO.getPaCustomerResult(); + String customerId = ""; if (null != customerDTO && !StringUtils.isBlank(customerDTO.getId())) { - redisTokenDTO.setCustomerId(customerDTO.getId()); - int expire = jwtTokenProperties.getExpire(); - cpUserDetailRedis.set(redisTokenDTO, expire); + customerId = customerDTO.getId(); } + //4-3.token存入redis + PaUserWechatDTO wechatDTO = resultDTO.getPaUserWechatResult(); + String openid = wechatDTO.getWxOpenId(); + String unionId = (null == wechatDTO.getUnionId() ? "" : wechatDTO.getUnionId()); + this.saveLatestGovTokenDto(customerId, userDTO.getId(), openid, unionId, token); //5.登陆成功,访问记录表新增访问记录(访问记录新增失败不应影响用户登陆) SaveUserVisitedFormDTO visited = new SaveUserVisitedFormDTO(); @@ -232,7 +243,7 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { //6.返回token UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO(); - userTokenResultDTO.setToken(redisTokenDTO.getToken()); + userTokenResultDTO.setToken(token); return userTokenResultDTO; } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CreateAgencyResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CreateAgencyResultDTO.java index 285b662e40..f344e5c062 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CreateAgencyResultDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CreateAgencyResultDTO.java @@ -19,9 +19,5 @@ public class CreateAgencyResultDTO implements Serializable { * 新增客户Id */ private String customerId; - /** - * 包含customerId的token - */ - private String token; } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerUserResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerUserResultDTO.java index 3b8d20f9e9..d0090c3fa7 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerUserResultDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerUserResultDTO.java @@ -2,6 +2,7 @@ package com.epmet.dto.result; import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaUserDTO; +import com.epmet.dto.PaUserWechatDTO; import lombok.Data; import java.io.Serializable; @@ -22,4 +23,8 @@ public class CustomerUserResultDTO implements Serializable { * 用户对应的客户信息 */ private PaCustomerDTO paCustomerResult; + /** + * 用户对应的微信基本信息 + */ + private PaUserWechatDTO paUserWechatResult; } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java index acfe7a2d8f..20866695f2 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java @@ -289,11 +289,11 @@ public class PaCustomerServiceImpl extends BaseServiceImpl private PaUserWechatService paUserWechatService; @Autowired private PaCustomerDao paCustomerDao; + @Autowired + private PaUserWechatDao paUserWechatDao; @Override public PageData page(Map params) { @@ -175,17 +178,25 @@ public class PaUserServiceImpl extends BaseServiceImpl @Override public CustomerUserResultDTO checkPaUser(String phone) { CustomerUserResultDTO resultDTO = new CustomerUserResultDTO(); + //1.根据手机号查询用户信息 List userList = baseDao.selectUserByPhone(phone); if (null == userList || userList.size() < NumConstant.ONE) { resultDTO.setPaUserResult(null); resultDTO.setPaCustomerResult(null); + resultDTO.setPaUserWechatResult(null); return resultDTO; } PaUserDTO dto = userList.get(NumConstant.ZERO); + //2.根据用户Id查询对应的客户信息 List customerList = paCustomerDao.selectCustomerByUserId(dto.getId()); + //3.根据用户Id查询对应的微信基本信息 + PaUserWechatDTO wechatDTO = new PaUserWechatDTO(); + wechatDTO.setUserId(dto.getId()); + PaUserWechatEntity wechatEntity = paUserWechatDao.selectWechatByUserId(wechatDTO); resultDTO.setPaUserResult(dto); resultDTO.setPaCustomerResult(customerList.size() > NumConstant.ZERO ? customerList.get(NumConstant.ZERO) : null); + resultDTO.setPaUserWechatResult(ConvertUtils.sourceToTarget(wechatEntity, PaUserWechatDTO.class)); return resultDTO; } From da4d9b98002dcb03f3081cb64ad0b62c2e854b00 Mon Sep 17 00:00:00 2001 From: zxc <954985706@qq.com> Date: Mon, 20 Jul 2020 16:36:01 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E5=B9=B3=E5=8F=B0-=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/form/CodeAuditRecordFormDTO.java | 18 ++--- .../com/epmet/dto/form/MiniInfoFormDTO.java | 14 ++-- .../com/epmet/dto/form/PaInfoFormDTO.java | 14 ++-- .../com/epmet/constant/ModuleConstant.java | 2 + .../epmet/controller/WarrantController.java | 2 +- .../com/epmet/exception/AesException.java | 65 ------------------- .../com/epmet/service/WarrantService.java | 3 +- .../ComponentVerifyTicketServiceImpl.java | 3 +- .../service/impl/WarrantServiceImpl.java | 16 +++-- .../wxapi/constant/WxMaCodeConstant.java | 2 +- .../resources/mapper/CodeAuditRecordDao.xml | 18 ++--- .../src/main/resources/mapper/MiniInfoDao.xml | 14 ++-- .../src/main/resources/mapper/PaInfoDao.xml | 14 ++-- 13 files changed, 62 insertions(+), 123 deletions(-) delete mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/exception/AesException.java diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeAuditRecordFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeAuditRecordFormDTO.java index c0530f1bb7..1081ab0891 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeAuditRecordFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeAuditRecordFormDTO.java @@ -42,12 +42,12 @@ public class CodeAuditRecordFormDTO implements Serializable { /** * 小程序的原始 ID */ - private String toUserName; + private String ToUserName; /** * 发送方帐号(一个 OpenID,此时发送方是系统帐号) */ - private String fromUserName; + private String FromUserName; /** * 消息创建时间 (整型),时间戳 @@ -57,7 +57,7 @@ public class CodeAuditRecordFormDTO implements Serializable { /** * 消息类型 event */ - private String msgType; + private String MsgType; /** * 事件类型 @@ -65,32 +65,32 @@ public class CodeAuditRecordFormDTO implements Serializable { weapp_audit_fail:审核不通过, weapp_audit_delay:审核延后 */ - private String event; + private String Event; /** * 审核成功时的时间戳 */ - private Date succTime; + private Date SuccTime; /** * 审核不通过的时间戳 */ - private Date failTime; + private Date FailTime; /** * 审核延后时的时间戳 */ - private Date delayTime; + private Date DelayTime; /** * 审核不通过的原因 */ - private String reason; + private String Reason; /** * 审核不通过的截图示例。用 | 分隔的 media_id 的列表,可通过获取永久素材接口拉取截图内容 */ - private String screenShot; + private String ScreenShot; /** * 删除状态 diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MiniInfoFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MiniInfoFormDTO.java index 072877f958..bed074d166 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MiniInfoFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MiniInfoFormDTO.java @@ -28,32 +28,32 @@ public class MiniInfoFormDTO implements Serializable { /** * 昵称 */ - private String nickName; + private String nick_name; /** * 头像 */ - private String headImg; + private String head_img; /** * 小程序类型 默认为 0 */ - private String serviceTypeInfo; + private String service_type_info; /** * 小程序认证类型 小程序认证类型 */ - private String verifyTypeInfo; + private String verify_type_info; /** * 原始 ID */ - private String userName; + private String user_name; /** * 主体名称 */ - private String principalName; + private String principal_name; /** * 账号介绍 @@ -63,7 +63,7 @@ public class MiniInfoFormDTO implements Serializable { /** * 二维码图片的 URL */ - private String qrcodeUrl; + private String qrcode_url; private Integer delFlag = 0; diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PaInfoFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PaInfoFormDTO.java index d91c84cfa3..cfd60e3d9a 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PaInfoFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PaInfoFormDTO.java @@ -28,19 +28,19 @@ public class PaInfoFormDTO implements Serializable { /** * 昵称 */ - private String nickName; + private String nick_name; /** * 头像 */ - private String headImg; + private String head_img; /** * 公众号类型 0:订阅号 1:由历史老帐号升级后的订阅号 2:服务号 */ - private String serviceTypeInfo; + private String service_type_info; /** * 公众号认证类型 -1:未认证 @@ -51,17 +51,17 @@ public class PaInfoFormDTO implements Serializable { 4:已资质认证通过、还未通过名称认证,但通过了新浪微博认证 5:已资质认证通过、还未通过名称认证,但通过了腾讯微博认证 */ - private String verifyTypeInfo; + private String verify_type_info; /** * 原始ID */ - private String userName; + private String user_name; /** * 主体名称 */ - private String principalName; + private String principal_name; /** * 公众号所设置的微信号,可能为空 公众号所设置的微信号,可能为空 @@ -71,7 +71,7 @@ public class PaInfoFormDTO implements Serializable { /** * 二维码图片的 URL */ - private String qrcodeUrl; + private String qrcode_url; /** * 删除状态 0:正常,1:删除 diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java index 19bd0fb57a..746da4ba2d 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java @@ -77,6 +77,8 @@ public interface ModuleConstant { String DELAY = "delay"; String AUDIT_SUCCESS = "audit_success"; String AUDIT_FAILED = "audit_failed"; + String XML = "xml"; + String CREATE_TIME = "CreateTime"; int FORTY_THOUSAND_AND_THIRTEEN = 40013; int EIGHTY_NINE_THOUSAND = 89000; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java index 1acb7a60ab..1cb35bb666 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java @@ -1,6 +1,6 @@ package com.epmet.controller; -import com.epmet.exception.AesException; +import com.epmet.mpaes.AesException; import com.epmet.service.WarrantService; import lombok.extern.slf4j.Slf4j; import org.dom4j.DocumentException; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/exception/AesException.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/exception/AesException.java deleted file mode 100644 index 96835b1324..0000000000 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/exception/AesException.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.epmet.exception; - -/** - * @Author zxc - * @CreateTime 2020/7/6 10:03 - */ -@SuppressWarnings("serial") -public class AesException extends Exception { - - /*public final static int OK = 0; - public final static int ValidateSignatureError = -40001; - public final static int ParseXmlError = -40002; - public final static int ComputeSignatureError = -40003; - public final static int IllegalAesKey = -40004; - public final static int ValidateCorpidError = -40005; - public final static int EncryptAESError = -40006; - public final static int DecryptAESError = -40007; - public final static int IllegalBuffer = -40008; - public final static int EncodeBase64Error = -40009; - public final static int DecodeBase64Error = -40010; - public final static int GenReturnXmlError = -40011; - - private int code; - - private static String getMessage(int code) { - switch (code) { - case ValidateSignatureError: - return "签名验证错误"; - case ParseXmlError: - return "xml解析失败"; - case ComputeSignatureError: - return "sha加密生成签名失败"; - case IllegalAesKey: - return "SymmetricKey非法"; - case ValidateCorpidError: - return "corpid校验失败"; - case EncryptAESError: - return "aes加密失败"; - case DecryptAESError: - return "aes解密失败"; - case IllegalBuffer: - return "解密后得到的buffer非法"; - case EncodeBase64Error: - return "base64加密错误"; - case DecodeBase64Error: - return "base64解密错误"; - case GenReturnXmlError: - return "xml生成失败"; - default: - return null; // cannot be - } - } - - public int getCode() { - return code; - } - - public AesException(int code) { - super(getMessage(code)); - this.code = code; - } -*/ -} - - diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java index 8475322c5b..4ae4cfd5e1 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java @@ -1,8 +1,7 @@ package com.epmet.service; -import com.epmet.exception.AesException; +import com.epmet.mpaes.AesException; import org.dom4j.DocumentException; -import org.springframework.web.bind.annotation.PathVariable; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java index f2b87d0677..92475ea916 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java @@ -408,7 +408,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe JSONObject jsonObject = new JSONObject(); jsonObject.put(ModuleConstant.COMPONENT_APP_ID,componentAppId); jsonObject.put(ModuleConstant.AUTHORIZER_APP_ID,authAppId); - String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_GET_AUTHORIZER_INFO, JSON.toJSONString(jsonObject)).getData(); + String componentAccessToken = redisThird.getComponentAccessToken(); + String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_GET_AUTHORIZER_INFO + componentAccessToken , JSON.toJSONString(jsonObject)).getData(); Map map = JSON.parseObject(data, Map.class); Map authorizerInfo = map.get(ModuleConstant.AUTHORIZER_INFO); log.info("授权信息:"+authorizerInfo); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index eaffb0dbd4..b49c04788e 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -10,7 +10,7 @@ import com.epmet.dao.MiniInfoDao; import com.epmet.dto.form.CodeAuditRecordFormDTO; import com.epmet.dto.result.CustomerIdAndClientResultDTO; import com.epmet.dto.result.TemplateAndAppIdResultDTO; -import com.epmet.exception.AesException; +import com.epmet.mpaes.AesException; import com.epmet.mpaes.WXBizMsgCrypt; import com.epmet.mpaes.WXXmlToMapUtil; import com.epmet.service.WarrantService; @@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.util.Date; import java.util.Map; /** @@ -58,15 +59,14 @@ public class WarrantServiceImpl implements WarrantService { /** * @Description 1.保存代码审核结果 2.更新代码上传结果 * @param request - * @param appid + * @param appId * @param response * @author zxc */ @Transactional(rollbackFor = Exception.class) @Override - public void acceptMessageAndEvent(HttpServletRequest request, String appid, HttpServletResponse response)throws IOException, DocumentException, AesException { - log.info("request:"+request); - log.info("appId:"+ appid); + public void acceptMessageAndEvent(HttpServletRequest request, String appId, HttpServletResponse response)throws IOException, DocumentException, AesException { + log.info("appId:"+ appId); request.setCharacterEncoding(ModuleConstant.UTF8); String msgSignature = request.getParameter(ModuleConstant.MSG_SIGNATURE); String timeStamp = request.getParameter(ModuleConstant.TIMESTAMP); @@ -83,14 +83,16 @@ public class WarrantServiceImpl implements WarrantService { try { wxBizMsgCrypt = new WXBizMsgCrypt(token,aesKey,componentAppId); msg = wxBizMsgCrypt.decryptMsg(msgSignature, timeStamp, nonce, postData); - } catch (com.epmet.mpaes.AesException e) { + } catch (AesException e) { e.printStackTrace(); } log.info(String.format(ThirdRunTimeInfoConstant.MSG,msg)); // 将xml转为map Map result = WXXmlToMapUtil.multilayerXmlToMap(msg); - Map xml = (Map) result.get("xml"); + Map xml = (Map) result.get(ModuleConstant.XML); + Long createTime = Long.valueOf(xml.get(ModuleConstant.CREATE_TIME).toString()); CodeAuditRecordFormDTO codeAuditRecord = componentVerifyTicketService.mapToEntity(xml, CodeAuditRecordFormDTO.class); + codeAuditRecord.setWechatCreateTime(new Date(createTime)); String toUserName = codeAuditRecord.getToUserName();//小程序原始ID CustomerIdAndClientResultDTO customerIdAndClientResultDTO = miniInfoDao.selectCustomerIdAndClientByToUserName(toUserName); String clientType = customerIdAndClientResultDTO.getClientType(); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java index 7cd1607654..fca87baeb7 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java @@ -58,7 +58,7 @@ public interface WxMaCodeConstant { /** * 获取授权方的帐号基本信息 */ - String API_GET_AUTHORIZER_INFO = "https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info"; + String API_GET_AUTHORIZER_INFO = "https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info?component_access_token="; /** * 为授权的小程序帐号上传小程序代码. diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditRecordDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditRecordDao.xml index f0d102d0f4..52fd770f9d 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditRecordDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditRecordDao.xml @@ -14,16 +14,16 @@ #{templateId}, #{clientType}, #{authAppId}, - #{toUserName}, - #{fromUserName}, + #{ToUserName}, + #{FromUserName}, #{wechatCreateTime}, - #{msgType}, - #{event}, - IFNULL(#{succTime},NULL), - IFNULL(#{failTime},NULL), - IFNULL(#{delayTime},NULL), - IFNULL(#{reason},NULL), - IFNULL(#{screenShot},NULL), + #{MsgType}, + #{Event}, + IFNULL(#{SuccTime},NULL), + IFNULL(#{FailTime},NULL), + IFNULL(#{DelayTime},NULL), + IFNULL(#{Reason},NULL), + IFNULL(#{ScreenShot},NULL), #{delFlag}, #{revision}, #{createdBy}, diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MiniInfoDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MiniInfoDao.xml index c838415721..bd326a8c0c 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MiniInfoDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MiniInfoDao.xml @@ -15,14 +15,14 @@ REPLACE ( UUID(), '-', '' ), #{customerId}, #{clientType}, - #{nickName}, - #{headImg}, - #{serviceTypeInfo}, - #{verifyTypeInfo}, - #{userName}, - #{principalName}, + #{nick_name}, + #{head_img}, + #{service_type_info}, + #{verify_type_info}, + #{user_name}, + #{principal_name}, #{signature}, - #{qrcodeUrl}, + #{qrcode_url}, #{delFlag}, #{revision}, #{createdBy}, diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaInfoDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaInfoDao.xml index 8715fb65f0..57397dc708 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaInfoDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaInfoDao.xml @@ -15,14 +15,14 @@ REPLACE ( UUID(), '-', '' ), #{customerId}, #{clientType}, - #{nickName}, - #{headImg}, - #{serviceTypeInfo}, - #{verifyTypeInfo}, - #{userName}, - #{principalName}, + #{nick_name}, + #{head_img}, + #{service_type_info}, + #{verify_type_info}, + #{user_name}, + #{principal_name}, #{alias}, - #{qrcodeUrl}, + #{qrcode_url}, #{delFlag}, #{revision}, #{createdBy}, From aa871545d140dbd5d550b10bdc41ed92362a285e Mon Sep 17 00:00:00 2001 From: zxc <954985706@qq.com> Date: Mon, 20 Jul 2020 16:48:53 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E5=B9=B3=E5=8F=B0-=E8=AE=BF=E9=97=AE=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1URL=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ComponentVerifyTicketServiceImpl.java | 10 +++++++--- .../com/epmet/wxapi/constant/WxMaCodeConstant.java | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java index 92475ea916..a5fc281cc2 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java @@ -7,6 +7,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.constant.ModuleConstant; +import com.epmet.constant.ThirdRedisKeyConstant; import com.epmet.constant.ThirdRunTimeInfoConstant; import com.epmet.dao.*; import com.epmet.dto.form.*; @@ -328,7 +329,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe //第三方平台AppId jsonObject.put(ModuleConstant.COMPONENT_APPID,componentAppId); jsonObject.put(ModuleConstant.AUTHORIZER_REFRESH_TOKEN,willOverDueDTO.getAuthorizerRefreshToken()); - String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_AUTHORIZER_TOKEN_URL, JSON.toJSONString(jsonObject)).getData(); + String componentAccessToken = redisThird.getComponentAccessToken(); + String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_AUTHORIZER_TOKEN_URL + componentAccessToken, JSON.toJSONString(jsonObject)).getData(); Map map = JSON.parseObject(data, HashMap.class); //authorizer_access_token String authorizerAccessToken = map.get(ModuleConstant.AUTHORIZER_ACCESS_TOKEN).toString(); @@ -499,12 +501,14 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe log.info("开始创建开放平台账号并绑定"); Integer authCount = customerMpDao.selectAuthCount(customerId); String openPlatformId = null; + String authorizerRefreshToken = redisThird.getAuthorizerRefreshToken(customerId + ThirdRedisKeyConstant.COLON + clientType); if (authCount==NumConstant.ZERO){ log.info("未查询到该客户授权信息,先创建开放平台账号,再绑定"); //没有任何一个小程序/公众号授权,【先创建,再绑定】 JSONObject jsonObject = new JSONObject(); jsonObject.put(ModuleConstant.APP_ID,authAppId); - String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_CREATE_OPEN, JSON.toJSONString(jsonObject)).getData(); + // 此处的 access_token 为 【authorizer_access_token】 + String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_CREATE_OPEN + authorizerRefreshToken, JSON.toJSONString(jsonObject)).getData(); Map map = JSON.parseObject(data, Map.class); CreateOpenResultDTO createOpen = new CreateOpenResultDTO(); createOpen.setErrCode(Integer.valueOf(map.get(ModuleConstant.ERR_CODE))); @@ -533,7 +537,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe JSONObject jsonObject = new JSONObject(); jsonObject.put(ModuleConstant.LOW_APP_ID,componentAppId); jsonObject.put(ModuleConstant.OPEN_APP_ID,openAppId); - String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_BIND_OPEN, JSON.toJSONString(jsonObject)).getData(); + String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_BIND_OPEN + authorizerRefreshToken, JSON.toJSONString(jsonObject)).getData(); Map map = JSON.parseObject(data, Map.class); CreateOpenResultDTO createOpen = new CreateOpenResultDTO(); createOpen.setErrCode(Integer.valueOf(map.get(ModuleConstant.ERR_CODE))); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java index fca87baeb7..e408fe7fa1 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java @@ -23,7 +23,7 @@ public interface WxMaCodeConstant { */ String API_COMPONENT_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/component/api_component_token"; - String API_AUTHORIZER_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token"; + String API_AUTHORIZER_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_token="; /** * 授权回调url @@ -48,12 +48,12 @@ public interface WxMaCodeConstant { /** * 创建开放平台帐号并绑定公众号/小程序 */ - String API_CREATE_OPEN = "https://api.weixin.qq.com/cgi-bin/open/create"; + String API_CREATE_OPEN = "https://api.weixin.qq.com/cgi-bin/open/create?access_token="; /** * 公众号/小程序绑定到开放平台帐号下 */ - String API_BIND_OPEN = "https://api.weixin.qq.com/cgi-bin/open/bind?"; + String API_BIND_OPEN = "https://api.weixin.qq.com/cgi-bin/open/bind?access_token="; /** * 获取授权方的帐号基本信息 From 144456fa8033d971de215231a9d8698b98fe5e21 Mon Sep 17 00:00:00 2001 From: zxc <954985706@qq.com> Date: Mon, 20 Jul 2020 17:24:55 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E5=B9=B3=E5=8F=B0-=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/constant/ModuleConstant.java | 1 + .../ComponentVerifyTicketServiceImpl.java | 28 +++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java index 746da4ba2d..5e72094a57 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java @@ -41,6 +41,7 @@ public interface ModuleConstant { //使用授权码获取授权信息 如下 String AUTHORIZATION_CODE = "authorization_code"; String AUTHORIZATION_INFO = "authorization_info"; + String ID = "id"; //获取/刷新接口调用令牌 如下 String AUTHORIZER_APPID = "authorizer_appid"; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java index a5fc281cc2..d667724fe3 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java @@ -264,13 +264,14 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe HashMap hashMap = JSON.parseObject(authInfo, HashMap.class); Map map = hashMap.get(ModuleConstant.AUTHORIZATION_INFO); authorizationInfoResultDTO = mapToEntity(map, AuthorizationInfoResultDTO.class); + String authAppId = authorizationInfoResultDTO.getAuthorizer_appid(); log.info("授权信息:"+map); String expiresIn = authorizationInfoResultDTO.getExpires_in(); Date expiresInTime = this.countExpirationTime(expiresIn); //授权信息分为两张表,基础信息authorization_info,授权列表func_info // 1. 基础信息 AuthorizationInfoFormDTO authInfoDTO = new AuthorizationInfoFormDTO(); - authInfoDTO.setAuthorizerAppid(authorizationInfoResultDTO.getAuthorizer_appid()); + authInfoDTO.setAuthorizerAppid(authAppId); authInfoDTO.setAuthorizerAccessToken(authorizationInfoResultDTO.getAuthorizer_access_token()); authInfoDTO.setAuthorizerRefreshToken(authorizationInfoResultDTO.getAuthorizer_refresh_token()); authInfoDTO.setExpiresInTime(expiresInTime); @@ -284,20 +285,19 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe List funcInfos = new ArrayList<>(); List func_info = authorizationInfoResultDTO.getFunc_info(); log.info("权限列表信息:"+func_info); - for (Map map1 : func_info) { - List key = (List)map1.keySet(); - FuncInfoFormDTO fu = new FuncInfoFormDTO(); - String funcscopeCategory = key.get(NumConstant.ZERO).toString(); - fu.setFuncscopeCategory(funcscopeCategory); - Map funcscope = (Map) map1.get(funcscopeCategory); - String funcscopeId = funcscope.get("id").toString(); - fu.setFuncscopeId(funcscopeId); - fu.setAuthorizationInfoAppid(authorizationInfoResultDTO.getAuthorizer_appid()); - fu.setCustomerId(customerId); - funcInfos.add(fu); - } + func_info.forEach(func -> { + func.forEach((key,value) -> { + FuncInfoFormDTO fu = new FuncInfoFormDTO(); + fu.setFuncscopeCategory((String) key); + Map funcScope = (Map) value; + fu.setFuncscopeId(funcScope.get(ModuleConstant.ID).toString()); + fu.setAuthorizationInfoAppid(authAppId); + fu.setCustomerId(customerId); + funcInfos.add(fu); + }); + }); //先逻辑删除,在插入 - funcInfoDao.updateOldFuncInfo(customerId,authorizationInfoResultDTO.getAuthorizer_appid()); + funcInfoDao.updateOldFuncInfo(customerId,authAppId); funcInfoDao.insertFuncInfo(funcInfos); // 授权信息放入缓存 redisThird.setAuthInfo(authorizationInfoResultDTO,customerId,clientType); From 08346c8accf352eda47cfcb79e8efd59109f5612 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 20 Jul 2020 17:36:34 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E9=99=8C=E7=94=9F=E4=BA=BA=E6=90=9C?= =?UTF-8?q?=E7=BD=91=E6=A0=BC=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4customerI?= =?UTF-8?q?d->appid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/PublicCustomerResultDTO.java | 22 +++++++++++++++++++ .../epmet/feign/EpmetThirdFeignClient.java | 12 +++++++++- .../EpmetThirdFeignClientFallback.java | 6 +++++ .../java/com/epmet/constant/PaConstant.java | 4 ++++ .../controller/CustomerMpController.java | 12 ++++++++++ .../java/com/epmet/dao/CustomerMpDao.java | 9 ++++++++ .../com/epmet/service/CustomerMpService.java | 9 ++++++++ .../service/impl/CustomerMpServiceImpl.java | 22 +++++++++++++++++++ .../main/resources/mapper/CustomerMpDao.xml | 14 ++++++++++++ .../form/PublicCustomerGridListFormDTO.java | 6 ++--- .../resi-guide/resi-guide-server/pom.xml | 6 +++++ .../impl/StrangerAccessRecordServiceImpl.java | 15 ++++++++++++- 12 files changed, 132 insertions(+), 5 deletions(-) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PublicCustomerResultDTO.java diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PublicCustomerResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PublicCustomerResultDTO.java new file mode 100644 index 0000000000..36a820f939 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PublicCustomerResultDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.result; + +import com.epmet.dto.PaCustomerDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * 根据appid查询公众号注册的客户信息 + * @Author sun + */ +@Data +public class PublicCustomerResultDTO implements Serializable { + + private static final long serialVersionUID = 4642988014737245076L; + + /** + * 客户信息 + */ + private PaCustomerDTO customer; + +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java index a0e14b9d51..ce37bcdaac 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java @@ -7,6 +7,7 @@ import com.epmet.dto.form.SaveUserVisitedFormDTO; import com.epmet.dto.form.WxLoginFormDTO; import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.InitCustomerResultDTO; +import com.epmet.dto.result.PublicCustomerResultDTO; import com.epmet.dto.result.SaveUserResultDTO; import com.epmet.feign.fallback.EpmetThirdFeignClientFallback; import me.chanjar.weixin.mp.bean.result.WxMpUser; @@ -94,5 +95,14 @@ public interface EpmetThirdFeignClient { * @Description 校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息 **/ @PostMapping(value = "third/customermp/resiandworklogin") - Result resiAndWorkLogin(WxLoginFormDTO formDTO); + Result resiAndWorkLogin(@RequestBody WxLoginFormDTO formDTO); + + /** + * @param appId + * @return + * @Author sun + * @Description 根据appId查询公众号注册的客户信息 + **/ + @PostMapping(value = "third/customermp/getcustomermsg") + Result getCustomerMsg(@PathVariable("appId") String appId); } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java index 791c133589..fda713210f 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java @@ -8,6 +8,7 @@ import com.epmet.dto.form.SaveUserVisitedFormDTO; import com.epmet.dto.form.WxLoginFormDTO; import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.InitCustomerResultDTO; +import com.epmet.dto.result.PublicCustomerResultDTO; import com.epmet.dto.result.SaveUserResultDTO; import com.epmet.feign.EpmetThirdFeignClient; import me.chanjar.weixin.mp.bean.result.WxMpUser; @@ -59,4 +60,9 @@ public class EpmetThirdFeignClientFallback implements EpmetThirdFeignClient { public Result resiAndWorkLogin(WxLoginFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "resiAndWorkLogin", formDTO); } + + @Override + public Result getCustomerMsg(String appId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "getCustomerMsg", appId); + } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/PaConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/PaConstant.java index be2c5de556..cbed19f1c2 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/PaConstant.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/PaConstant.java @@ -62,4 +62,8 @@ public interface PaConstant { * 获取缓存中token信息失败 */ String TOKEN_EXCEPTION = "token已过期"; + /** + * 获取客户信息失败 + */ + String SELECT_CUSTOMER_EXCEPTION = "获取客户信息失败"; } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerMpController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerMpController.java index 24fac10967..4abc2f22f1 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerMpController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerMpController.java @@ -28,6 +28,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.CustomerMpDTO; import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.WxLoginFormDTO; +import com.epmet.dto.result.PublicCustomerResultDTO; import com.epmet.excel.CustomerMpExcel; import com.epmet.service.CustomerMpService; import org.springframework.beans.factory.annotation.Autowired; @@ -104,4 +105,15 @@ public class CustomerMpController { return new Result().ok(customerMpService.resiAndWorkLogin(formDTO)); } + /** + * @param appId + * @return + * @Author sun + * @Description 根据appId查询公众号注册的客户信息 + **/ + @PostMapping("getcustomermsg") + public Result getCustomerMsg(@PathVariable("appId") String appId) { + return new Result().ok(customerMpService.getCustomerMsg(appId)); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java index 63e8a0befa..593194e2c7 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.CustomerMpDTO; +import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.form.AuthCodeFormDTO; import com.epmet.entity.CustomerMpEntity; import org.apache.ibatis.annotations.Mapper; @@ -98,4 +99,12 @@ public interface CustomerMpDao extends BaseDao { * @Description 根据appId查询小程序信息 **/ CustomerMpDTO selectByAppId(@Param("appId") String appId); + + /** + * @param appId + * @return + * @Author sun + * @Description 根据appId查询客户信息 + **/ + PaCustomerDTO selectCustomerByAppId(@Param("appId") String appId); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java index 11cf845183..35b4245325 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java @@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.dto.CustomerMpDTO; import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.WxLoginFormDTO; +import com.epmet.dto.result.PublicCustomerResultDTO; import com.epmet.entity.CustomerMpEntity; import java.util.List; @@ -112,4 +113,12 @@ public interface CustomerMpService extends BaseService { * @Description 校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息 **/ UserWechatDTO resiAndWorkLogin(WxLoginFormDTO formDTO); + + /** + * @param appId + * @return + * @Author sun + * @Description 根据appId查询公众号注册的客户信息 + **/ + PublicCustomerResultDTO getCustomerMsg(String appId); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java index bbc0efef02..3f13d5e4dc 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java @@ -26,10 +26,13 @@ import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.constant.PaConstant; import com.epmet.dao.CustomerMpDao; import com.epmet.dto.CustomerMpDTO; +import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.WxLoginFormDTO; +import com.epmet.dto.result.PublicCustomerResultDTO; import com.epmet.entity.CustomerMpEntity; import com.epmet.redis.CustomerMpRedis; import com.epmet.service.CustomerMpService; @@ -142,4 +145,23 @@ public class CustomerMpServiceImpl extends BaseServiceImpl + + \ No newline at end of file diff --git a/epmet-module/resi-guide/resi-guide-client/src/main/java/com/epmet/dto/form/PublicCustomerGridListFormDTO.java b/epmet-module/resi-guide/resi-guide-client/src/main/java/com/epmet/dto/form/PublicCustomerGridListFormDTO.java index 80d539dbb2..6e26721f28 100644 --- a/epmet-module/resi-guide/resi-guide-client/src/main/java/com/epmet/dto/form/PublicCustomerGridListFormDTO.java +++ b/epmet-module/resi-guide/resi-guide-client/src/main/java/com/epmet/dto/form/PublicCustomerGridListFormDTO.java @@ -22,10 +22,10 @@ public class PublicCustomerGridListFormDTO implements Serializable { } /** - * 客户Id + * 小程序appId * */ - @NotBlank(message = "客户Id不能为空", groups = {AddUserShowGroup.class}) - private String customerId; + @NotBlank(message = "小程序appId不能为空", groups = {AddUserShowGroup.class}) + private String appId; /** * 当前页 * */ diff --git a/epmet-module/resi-guide/resi-guide-server/pom.xml b/epmet-module/resi-guide/resi-guide-server/pom.xml index b973b88c1c..d93427f6b0 100644 --- a/epmet-module/resi-guide/resi-guide-server/pom.xml +++ b/epmet-module/resi-guide/resi-guide-server/pom.xml @@ -81,6 +81,12 @@ snakeyaml ${snakeyaml.version} + + com.epmet + epmet-third-client + 2.0.0 + compile + diff --git a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/StrangerAccessRecordServiceImpl.java b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/StrangerAccessRecordServiceImpl.java index 14e4f01b8c..e1d44ec93a 100644 --- a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/StrangerAccessRecordServiceImpl.java +++ b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/StrangerAccessRecordServiceImpl.java @@ -14,12 +14,15 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.StrangerResiGuideConstant; import com.epmet.dao.StrangerAccessRecordDao; +import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.StrangerAccessRecordDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.CustomerGridForStrangerResultDTO; import com.epmet.dto.result.HomeDesignByCustomerResultDTO; import com.epmet.dto.result.PublicCustomerGridForStrangerResultDTO; +import com.epmet.dto.result.PublicCustomerResultDTO; import com.epmet.entity.StrangerAccessRecordEntity; +import com.epmet.feign.EpmetThirdFeignClient; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.GovOrgFeignClient; import com.epmet.feign.OperCustomizeFeignClient; @@ -52,6 +55,8 @@ public class StrangerAccessRecordServiceImpl extends BaseServiceImpl> thirdCustomerGridList(PublicCustomerGridListFormDTO formDTO) { + //0.调用epmet-third服务,根据appId查询客户信息 + Result result = epmetThirdFeignClient.getCustomerMsg(formDTO.getAppId()); + if(!result.success()){ + throw new RenException(result.getCode()); + } + PublicCustomerResultDTO resultDTO = result.getData(); + PaCustomerDTO customer = resultDTO.getCustomer(); + ThirdCustomerGridListFormDTO third = new ThirdCustomerGridListFormDTO(); - third.setCustomerId(formDTO.getCustomerId()); + third.setCustomerId(customer.getId()); //1.参数设置 //根据是自动定位还是手动定位获取地区编码值 third.setAreaCode(ModuleConstant.NOT_POSITION_AUTHORIZED == formDTO.getIsAuthorized() ?