From 211fc19499fe4ff13127f545b4ec3bf731fb3f10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 14 Oct 2025 19:02:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=BE=AE=E4=BF=A1=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/dao/PartnerUserWechatBindDAO.java | 21 +++++++++++++++++++ .../mapper/PartnerUserWechatBindMapper.java | 16 ++++++++++++++ .../mapper/PartnerUserWechatBindMapper.xml | 20 ++++++++++++++++++ .../store/entity/PartnerUserWechatBindDO.java | 4 ++++ .../impl/WechatMiniAppServiceImpl.java | 5 +++++ 5 files changed, 66 insertions(+) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PartnerUserWechatBindDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PartnerUserWechatBindDAO.java index 388e59e80..9134b3efb 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PartnerUserWechatBindDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PartnerUserWechatBindDAO.java @@ -31,6 +31,27 @@ public class PartnerUserWechatBindDAO { return partnerUserWechatBindMapper.insert(partnerUserWechatBindDO); } + /** + * 更新 + * @param partnerUserWechatBindDO + * @return + */ + public Integer update(PartnerUserWechatBindDO partnerUserWechatBindDO) { + if (partnerUserWechatBindDO == null) { + return 0; + } + return partnerUserWechatBindMapper.update(partnerUserWechatBindDO); + } + + /** + * 更新所有的unionId对应的服务号ID + * @param unionId 开发平台的用户ID + * @param serviceAccountOpenId 服务号ID + * @return + */ + public Integer updateByUnionId(String unionId,String serviceAccountOpenId) { + return partnerUserWechatBindMapper.updateByUnionId(unionId,serviceAccountOpenId); + } public PartnerUserWechatBindDO getByOpenIdAndPartnerId(String partnerId, String openId) { if (StringUtil.isEmpty(partnerId)|| StringUtil.isEmpty(openId)){ diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PartnerUserWechatBindMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PartnerUserWechatBindMapper.java index a94d56629..d69cb7fba 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PartnerUserWechatBindMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PartnerUserWechatBindMapper.java @@ -18,6 +18,22 @@ public interface PartnerUserWechatBindMapper { */ Integer insert(PartnerUserWechatBindDO partnerUserWechatBindDO); + /** + * 更新数据 + * @param partnerUserWechatBindDO + * @return + */ + Integer update(PartnerUserWechatBindDO partnerUserWechatBindDO); + + + /** + * 更新所有的unionId对应的服务号ID + * @param unionId 开发平台的用户ID + * @param serviceAccountOpenId 服务号ID + * @return + */ + Integer updateByUnionId(String unionId,String serviceAccountOpenId); + /** * 根据partnerId与openId查询 * @param partnerId diff --git a/coolstore-partner-dao/src/main/resources/mapper/PartnerUserWechatBindMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/PartnerUserWechatBindMapper.xml index c638c9338..a3fa9d4a3 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/PartnerUserWechatBindMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/PartnerUserWechatBindMapper.xml @@ -8,6 +8,8 @@ + + @@ -17,15 +19,33 @@ open_id, bind_time, partner_id, + union_id, create_time ) VALUES ( #{openId, jdbcType=VARCHAR}, #{bindTime, jdbcType=TIMESTAMP}, #{partnerId, jdbcType=VARCHAR}, + #{unionId, jdbcType=VARCHAR}, #{createTime, jdbcType=TIMESTAMP} ) + + UPDATE xfsg_partner_user_wechat_bind + + + union_id = #{unionId, jdbcType=VARCHAR}, + + where id = #{id} + + + + + UPDATE xfsg_partner_user_wechat_bind + set service_account_open_id = #{serviceAccountOpenId} + where union_id = #{unionId} + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/PartnerUserWechatBindDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/PartnerUserWechatBindDO.java index f3496136a..79eabd0c4 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/PartnerUserWechatBindDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/PartnerUserWechatBindDO.java @@ -36,6 +36,10 @@ public class PartnerUserWechatBindDO implements Serializable { */ private String partnerId; + private String unionId; + + private String serviceAccountOpenId; + /** * 创建时间 */ diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java index dcdec32f3..e77939a32 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java @@ -110,9 +110,14 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { PartnerUserWechatBindDO bindDO = new PartnerUserWechatBindDO(); bindDO.setBindTime(new Date()); bindDO.setOpenId(openid); + bindDO.setUnionId(unionId); bindDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId()); bindDO.setCreateTime(new Date()); partnerUserWechatBindDAO.insertSelective(bindDO); + }else { + //维护unionId 针对老数据没有unionId + zlPartnerUserBindDO.setUnionId(unionId); + partnerUserWechatBindDAO.update(zlPartnerUserBindDO); } BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO); fillLineInfo(userInfoVO, hyPartnerUserInfoDO.getPartnerId());