java110 4 роки тому
батько
коміт
24c56d0e59

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/owner/OwnerAppUserDto.java

@@ -24,6 +24,7 @@ public class OwnerAppUserDto extends PageDto implements Serializable {
 
     private String idCard;
     private String openId;
+    private String unionId;
     private String link;
     private String remark;
     private String appUserName;
@@ -292,4 +293,12 @@ public class OwnerAppUserDto extends PageDto implements Serializable {
     public void setDefaultCommunityId(String defaultCommunityId) {
         this.defaultCommunityId = defaultCommunityId;
     }
+
+    public String getUnionId() {
+        return unionId;
+    }
+
+    public void setUnionId(String unionId) {
+        this.unionId = unionId;
+    }
 }

+ 1 - 0
java110-bean/src/main/java/com/java110/dto/user/UserAttrDto.java

@@ -9,6 +9,7 @@ public class UserAttrDto extends PageDto implements Serializable {
     public static final String SPEC_KEY = "100202061602";//用户临时key
 
     public static final String SPEC_OPEN_ID = "100201911001";//用户微信OPENID
+    public static final String SPEC_UNION_ID = "100201911002";//用户微信UNIONID
 
     public static final String SPEC_PROPERTY_USER_ID = "100202106001";//物业系统用户ID
 

+ 4 - 1
service-api/src/main/java/com/java110/api/smo/login/impl/OwnerAppLoginSMOImpl.java

@@ -9,6 +9,7 @@ import com.java110.core.context.IPageData;
 import com.java110.core.context.PageData;
 import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.WechatFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.owner.OwnerAppUserDto;
 import com.java110.dto.ownerCarOpenUser.OwnerCarOpenUserDto;
 import com.java110.dto.smallWeChat.SmallWeChatDto;
@@ -26,7 +27,6 @@ import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
@@ -244,6 +244,7 @@ public class OwnerAppLoginSMOImpl extends DefaultAbstractComponentSMO implements
             CommonCache.setValue(code, openId, expireTime);
             CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
             CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
+            CommonCache.setValue(code + "-unionid", userinfo_paramObj.getString("unionid"), expireTime);
             if (errorUrl.indexOf("?") > 0) {
                 errorUrl += ("&code=" + code);
             } else {
@@ -523,6 +524,7 @@ public class OwnerAppLoginSMOImpl extends DefaultAbstractComponentSMO implements
         String openId = CommonCache.getValue(code);
         String nickname = CommonCache.getValue(code + "-nickname");
         String headimgurl = CommonCache.getValue(code + "-headimgurl");
+        String unionid = CommonCache.getValue(code + "-unionid");
 
         if (StringUtil.isEmpty(openId)) {
             responseEntity = new ResponseEntity<>("页面失效,请刷新后重试", HttpStatus.UNAUTHORIZED);
@@ -539,6 +541,7 @@ public class OwnerAppLoginSMOImpl extends DefaultAbstractComponentSMO implements
         JSONObject userOwnerInfo = new JSONObject();
         OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
         ownerAppUserDto.setOpenId(openId);
+        ownerAppUserDto.setUnionId(unionid);
         // ownerAppUserDto.setNickName(StringUtil.encodeEmoji(nickname));
         ownerAppUserDto.setNickName(nickname);
         ownerAppUserDto.setHeadImgUrl(headimgurl);

+ 27 - 1
service-user/src/main/java/com/java110/user/cmd/owner/RefreshAppUserBindingOwnerOpenIdCmd.java

@@ -98,7 +98,7 @@ public class RefreshAppUserBindingOwnerOpenIdCmd extends AbstractServiceCmdListe
             userAttrPo.setSpecCd(UserAttrDto.SPEC_OPEN_ID);
             userAttrPo.setValue(reqJson.getString("openId"));
             userAttrV1InnerServiceSMOImpl.saveUserAttr(userAttrPo);
-            return ;
+            return;
         }
         UserAttrPo userAttrPo = new UserAttrPo();
         userAttrPo.setUserId(userId);
@@ -106,5 +106,31 @@ public class RefreshAppUserBindingOwnerOpenIdCmd extends AbstractServiceCmdListe
         userAttrPo.setSpecCd(UserAttrDto.SPEC_OPEN_ID);
         userAttrPo.setValue(reqJson.getString("openId"));
         userAttrV1InnerServiceSMOImpl.updateUserAttr(userAttrPo);
+
+        if (!reqJson.containsKey("unionId")) {
+            return;
+        }
+
+        userAttrDto = new UserAttrDto();
+        userAttrDto.setUserId(userId);
+        userAttrDto.setSpecCd(UserAttrDto.SPEC_UNION_ID);
+        userAttrDtos = userAttrV1InnerServiceSMOImpl.queryUserAttrs(userAttrDto);
+        if (userAttrDtos == null || userAttrDtos.size() < 1) {
+            userAttrPo = new UserAttrPo();
+            userAttrPo.setUserId(userId);
+            userAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            userAttrPo.setSpecCd(UserAttrDto.SPEC_UNION_ID);
+            userAttrPo.setValue(reqJson.getString("unionId"));
+            userAttrV1InnerServiceSMOImpl.saveUserAttr(userAttrPo);
+            return;
+        }
+        userAttrPo = new UserAttrPo();
+        userAttrPo.setUserId(userId);
+        userAttrPo.setAttrId(userAttrDtos.get(0).getAttrId());
+        userAttrPo.setSpecCd(UserAttrDto.SPEC_UNION_ID);
+        userAttrPo.setValue(reqJson.getString("unionId"));
+        userAttrV1InnerServiceSMOImpl.updateUserAttr(userAttrPo);
+
+
     }
 }