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());