From b0ec9895cde2519bc085ac40acbeea89ae8b6f9d Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期四, 17 七月 2025 16:44:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java |  271 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 243 insertions(+), 28 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
index 4eab929..f25dc67 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.system.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -14,6 +15,7 @@
 import com.jeecg.qywx.api.user.vo.User;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.flowable.common.engine.impl.util.CollectionUtil;
 import org.jeecg.common.api.dto.message.MessageDTO;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.util.JwtUtil;
@@ -23,6 +25,9 @@
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.config.JeecgBaseConfig;
 import org.jeecg.config.thirdapp.ThirdAppConfig;
+import org.jeecg.modules.qywx.message.MessageAPI;
+import org.jeecg.modules.qywx.message.vo.TemplateCard;
+import org.jeecg.modules.qywx.message.vo.TemplateCardEntity;
 import org.jeecg.modules.system.entity.*;
 import org.jeecg.modules.system.mapper.SysAnnouncementSendMapper;
 import org.jeecg.modules.system.mapper.SysUserMapper;
@@ -31,6 +36,7 @@
 import org.jeecg.modules.system.service.*;
 import org.jeecg.modules.system.vo.thirdapp.JwDepartmentTreeVo;
 import org.jeecg.modules.system.vo.thirdapp.SyncInfoVo;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DuplicateKeyException;
@@ -39,6 +45,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 /**
@@ -398,10 +405,10 @@
              * 2. 鏈湴琛ㄩ噷娌℃湁锛屽氨鍏堢敤鎵嬫満鍙峰垽鏂紝涓嶉�氳繃鍐嶇敤username鍒ゆ柇銆�
              */
             SysThirdAccount sysThirdAccount = sysThirdAccountService.getOneByThirdUserId(qwUser.getUserid(), THIRD_TYPE);
-            List<SysUser> collect = sysUsersList.stream().filter(user -> (qwUser.getMobile().equals(user.getPhone()) || qwUser.getUserid().equals(user.getUsername()))
+            List<SysUser> collect = sysUsersList.stream().filter(user -> qwUser.getUserid().equals(user.getWorkNo())
                                                                 ).collect(Collectors.toList());
 
-            if (collect != null && collect.size() > 0) {
+            if (CollectionUtil.isNotEmpty(collect)) {
                 SysUser sysUserTemp = collect.get(0);
                 // 寰幆鍒版璇存槑鐢ㄦ埛鍖归厤鎴愬姛锛岃繘琛屾洿鏂版搷浣�
                 SysUser updateSysUser = this.qwUserToSysUser(qwUser, sysUserTemp);
@@ -413,7 +420,7 @@
                     this.syncUserCollectErrInfo(e, qwUser, syncInfo);
                 }
 
-                this.thirdAccountSaveOrUpdate(sysThirdAccount, updateSysUser.getId(), qwUser.getUserid());
+                this.thirdAccountSaveOrUpdate(sysThirdAccount, updateSysUser.getId(), qwUser);
                 // 鏇存柊瀹屾垚锛岀洿鎺ヨ烦鍒颁笅涓�娆″閮ㄥ惊鐜户缁�
             }else{
                 // 娌″尮閰嶅埌鐢ㄦ埛鍒欒蛋鏂板閫昏緫
@@ -425,7 +432,7 @@
                 } catch (Exception e) {
                     this.syncUserCollectErrInfo(e, qwUser, syncInfo);
                 }
-                this.thirdAccountSaveOrUpdate(sysThirdAccount, newSysUser.getId(), qwUser.getUserid());
+                this.thirdAccountSaveOrUpdate(sysThirdAccount, newSysUser.getId(), qwUser);
             }
         }
         return syncInfo;
@@ -447,6 +454,20 @@
             sysThirdAccount.setThirdType(THIRD_TYPE);
         }
         sysThirdAccount.setThirdUserId(qwUserId);
+        sysThirdAccountService.saveOrUpdate(sysThirdAccount);
+    }
+
+    private void thirdAccountSaveOrUpdate(SysThirdAccount sysThirdAccount, String sysUserId, User qwUser) {
+        if (sysThirdAccount == null) {
+            sysThirdAccount = new SysThirdAccount();
+            sysThirdAccount.setThirdUserId(qwUser.getUserid());
+            sysThirdAccount.setRealname(qwUser.getName());
+            sysThirdAccount.setThirdUserUuid(qwUser.getUserid());
+            sysThirdAccount.setStatus(1);
+            sysThirdAccount.setDelFlag(0);
+            sysThirdAccount.setThirdType(THIRD_TYPE);
+        }
+        sysThirdAccount.setSysUserId(sysUserId);
         sysThirdAccountService.saveOrUpdate(sysThirdAccount);
     }
 
@@ -622,7 +643,7 @@
         sysUser.setDelFlag(0);
         sysUser.setStatus(1);
         // 閫氳繃 username 鏉ュ叧鑱�
-        sysUser.setUsername(user.getUserid());
+        sysUser.setUsername(user.getUserid().substring(2));
         // 瀵嗙爜榛樿涓� 鈥�123456鈥濓紝闅忔満鍔犵洂
         String password = "123456", salt = oConvertUtils.randomGen(8);
         String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt);
@@ -643,22 +664,23 @@
         if (oConvertUtils.isEmpty(sysUser.getWorkNo())) {
             sysUser.setWorkNo(qwUser.getUserid());
         }
-        try {
-            sysUser.setSex(Integer.parseInt(qwUser.getGender()));
-        } catch (NumberFormatException ignored) {
-        }
+        //浼佷笟寰俊鎺ュ彛鏇存柊鍚庯紝涓嶅湪杩斿洖 鎬у埆銆侀偖绠便�佹墜鏈哄彿鐮� 瀛楁
+        //try {
+        //    sysUser.setSex(Integer.parseInt(qwUser.getGender()));
+        //} catch (NumberFormatException ignored) {
+        //}
         // 鍥犱负鍞竴閿害鏉熺殑鍘熷洜锛屽鏋滃師鏁版嵁鍜屾棫鏁版嵁鐩稿悓锛屽氨涓嶆洿鏂�
-        if (oConvertUtils.isNotEmpty(qwUser.getEmail()) && !qwUser.getEmail().equals(sysUser.getEmail())) {
-            sysUser.setEmail(qwUser.getEmail());
-        } else {
-            sysUser.setEmail(null);
-        }
+        //if (oConvertUtils.isNotEmpty(qwUser.getEmail()) && !qwUser.getEmail().equals(sysUser.getEmail())) {
+        //    sysUser.setEmail(qwUser.getEmail());
+        //} else {
+        //    sysUser.setEmail(null);
+        //}
         // 鍥犱负鍞竴閿害鏉熺殑鍘熷洜锛屽鏋滃師鏁版嵁鍜屾棫鏁版嵁鐩稿悓锛屽氨涓嶆洿鏂�
-        if (oConvertUtils.isNotEmpty(qwUser.getMobile()) && !qwUser.getMobile().equals(sysUser.getPhone())) {
-            sysUser.setPhone(qwUser.getMobile());
-        } else {
-            sysUser.setPhone(null);
-        }
+        //if (oConvertUtils.isNotEmpty(qwUser.getMobile()) && !qwUser.getMobile().equals(sysUser.getPhone())) {
+        //    sysUser.setPhone(qwUser.getMobile());
+        //} else {
+        //    sysUser.setPhone(null);
+        //}
 
         // 鍚敤/绂佺敤鎴愬憳锛堢姸鎬侊級锛岃鍒欎笉鍚岋紝闇�瑕佽浆鎹�
         // 浼佷笟寰俊瑙勫垯锛�1琛ㄧず鍚敤鎴愬憳锛�0琛ㄧず绂佺敤鎴愬憳
@@ -667,7 +689,9 @@
             sysUser.setStatus(qwUser.getEnable() == 1 ? 1 : 2);
         }
         // 搴ф満鍙�
-        sysUser.setTelephone(qwUser.getTelephone());
+        if (StringUtils.isNotBlank(qwUser.getTelephone())) {
+            sysUser.setTelephone(qwUser.getTelephone());
+        }
 
         // --- 浼佷笟寰俊娌℃湁閫昏緫鍒犻櫎鐨勫姛鑳�
         // sysUser.setDelFlag()
@@ -822,7 +846,7 @@
             String userId = announcement.getUserIds();
             String[] userIds = null;
             if(oConvertUtils.isNotEmpty(userId)){
-                userIds = userId.substring(0, (userId.length() - 1)).split(",");
+                userIds = userId.substring(0, userId.length()).split(",");
             }else{
                 LambdaQueryWrapper<SysAnnouncementSend> queryWrapper = new LambdaQueryWrapper<>();
                 queryWrapper.eq(SysAnnouncementSend::getAnntId, announcement.getId());
@@ -857,7 +881,126 @@
         return JwMessageAPI.sendTextCardMessage(textCard, accessToken);
     }
 
-    private String getTouser(String origin, boolean toAll) {
+    /**
+     * 鍙戦�佹ā鏉垮崱鐗囨秷鎭紙涓氬姟娴佺▼璋冪敤姝ゆ柟娉曪級
+     * @param templateCard
+     * @param verifyConfig
+     * @return
+     */
+    public JSONObject sendTemplateCardMsg(TemplateCard templateCard, boolean verifyConfig) {
+        if (verifyConfig && !thirdAppConfig.isWechatEnterpriseEnabled()) {
+            return null;
+        }
+        String accessToken = this.getAppAccessToken();
+        if (accessToken == null) {
+            return null;
+        }
+        templateCard.setAgentid(thirdAppConfig.getWechatEnterprise().getAgentIdInt());
+        return MessageAPI.sendTemplateCardMessage(templateCard, accessToken);
+    }
+
+    /**
+     * 鍙戦�佹ā鏉垮崱鐗囨秷鎭紙娑堟伅娴嬭瘯璋冪敤姝ゆ柟娉曪級
+     *
+     * @return
+     */
+    public JSONObject sendTemplateCardMsg(SysAnnouncement announcement, boolean verifyConfig) {
+        if (verifyConfig && !thirdAppConfig.isWechatEnterpriseEnabled()) {
+            return null;
+        }
+        String accessToken = this.getAppAccessToken();
+        if (accessToken == null) {
+            return null;
+        }
+
+        TemplateCard templateCard = new TemplateCard();
+        templateCard.setAgentid(thirdAppConfig.getWechatEnterprise().getAgentIdInt());
+        boolean isToAll = CommonConstant.MSG_TYPE_ALL.equals(announcement.getMsgType());
+        String usernameString = "";
+        if (!isToAll) {
+            // 灏唘serId杞负username
+            String userId = announcement.getUserIds();
+            String[] userIds = null;
+            if (oConvertUtils.isNotEmpty(userId)) {
+                userIds = userId.substring(0, userId.length()).split(",");
+            } else {
+                LambdaQueryWrapper<SysAnnouncementSend> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(SysAnnouncementSend::getAnntId, announcement.getId());
+                SysAnnouncementSend sysAnnouncementSend = sysAnnouncementSendMapper.selectOne(queryWrapper);
+                userIds = new String[]{sysAnnouncementSend.getUserId()};
+            }
+
+            LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.in(SysUser::getId, userIds);
+            List<SysUser> userList = userMapper.selectList(queryWrapper);
+            List<String> usernameList = userList.stream().map(SysUser::getUsername).collect(Collectors.toList());
+            usernameString = String.join(",", usernameList);
+        }
+        templateCard.setTouser(this.getTouser(usernameString, isToAll));
+
+        TemplateCardEntity templateCardEntity = new TemplateCardEntity();
+        templateCard.setTemplate_card(templateCardEntity);
+        templateCardEntity.setTask_id(UUID.randomUUID().toString().replaceAll("-", ""));
+        TemplateCardEntity.Source source = new TemplateCardEntity.Source();
+        source.setIcon_url("https://www.jeecg.org/logo.png");
+        source.setDesc("璁惧绠$悊娴嬭瘯");
+        templateCardEntity.setSource(source);
+        TemplateCardEntity.MainTitle mainTitle = new TemplateCardEntity.MainTitle();
+        mainTitle.setTitle("璁惧鍛ㄤ繚");
+        //mainTitle.setDesc("璁惧鍛ㄤ繚淇℃伅");
+        templateCardEntity.setMain_title(mainTitle);
+        templateCardEntity.setSub_title_text("璁惧鍛ㄤ繚娴佺▼璇︽儏");
+        List<TemplateCardEntity.HorizontalContent> horizontalContentList = getHorizontalContents();
+        templateCardEntity.setHorizontal_content_list(horizontalContentList);
+        TemplateCardEntity.CardAction cardAction = new TemplateCardEntity.CardAction();
+        cardAction.setType(1);
+        cardAction.setUrl("https://houjie.xalxzn.com:8866/h5");
+        templateCardEntity.setCard_action(cardAction);
+        TemplateCardEntity.ActionMenu actionMenu = new TemplateCardEntity.ActionMenu();
+        actionMenu.setDesc("鏇村");
+        actionMenu.setAction_list(cn.hutool.core.collection.CollectionUtil
+                .newArrayList(new TemplateCardEntity.ActionMenu.ActionList("鎺ユ敹鎺ㄩ��", "A"),
+                        new TemplateCardEntity.ActionMenu.ActionList("涓嶅啀鎺ㄩ��", "B")));
+        templateCardEntity.setAction_menu(actionMenu);
+        //templateCardEntity.setJump_list(cn.hutool.core.collection.CollectionUtil
+        //        .newArrayList(new TemplateCardEntity.Jump(1, "浼佷笟寰俊瀹樼綉", "https://work.weixin.qq.com")));
+        //TemplateCardEntity.CardImage cardImage = new TemplateCardEntity.CardImage();
+        //cardImage.setUrl("https://www.jeecg.org/logo.png");
+        //templateCardEntity.setCard_image(cardImage);
+        return MessageAPI.sendTemplateCardMessage(templateCard, accessToken);
+    }
+
+    @NotNull
+    private static List<TemplateCardEntity.HorizontalContent> getHorizontalContents() {
+        List<TemplateCardEntity.HorizontalContent> horizontalContentList = new ArrayList<>();
+        TemplateCardEntity.HorizontalContent content1 = new TemplateCardEntity.HorizontalContent();
+        content1.setKeyname("娴佺▼鎻忚堪");
+        content1.setValue("宸ュ崟鍙�:WMCR2025050011;璁惧缂栧彿:031-41杩涜璁惧鍛ㄤ繚");
+        horizontalContentList.add(content1);
+        TemplateCardEntity.HorizontalContent content2 = new TemplateCardEntity.HorizontalContent();
+        content2.setKeyname("涔嬪墠澶勭悊浜�");
+        content2.setValue("绠$悊鍛�");
+        horizontalContentList.add(content2);
+        TemplateCardEntity.HorizontalContent content3 = new TemplateCardEntity.HorizontalContent();
+        content3.setKeyname("鍓嶉┍鑺傜偣");
+        content3.setValue("鍛ㄤ繚棰嗗彇");
+        horizontalContentList.add(content3);
+        TemplateCardEntity.HorizontalContent content4 = new TemplateCardEntity.HorizontalContent();
+        content4.setKeyname("褰撳墠鑺傜偣");
+        content4.setValue("鍛ㄤ繚鎵ц");
+        horizontalContentList.add(content4);
+        TemplateCardEntity.HorizontalContent content5 = new TemplateCardEntity.HorizontalContent();
+        content5.setKeyname("宸ュ崟鍙�");
+        content5.setValue("WMCR2025050011");
+        horizontalContentList.add(content5);
+        TemplateCardEntity.HorizontalContent content6 = new TemplateCardEntity.HorizontalContent();
+        content6.setKeyname("璁惧缂栧彿");
+        content6.setValue("031-41");
+        horizontalContentList.add(content6);
+        return horizontalContentList;
+    }
+
+    public String getTouser(String origin, boolean toAll) {
         if (toAll) {
             return "@all";
         } else {
@@ -895,7 +1038,17 @@
         if (accessToken == null) {
             return null;
         }
-        String appUserId = this.getUserIdByThirdCode(code, accessToken);
+
+        // 閫氳繃code鑾峰彇鐢ㄦ埛淇℃伅锛堝寘鍚玼ser_ticket锛�
+        JSONObject userInfoResult = this.getUserInfoByCode(code, accessToken);
+        if (userInfoResult == null || userInfoResult.getInteger("errcode") != 0) {
+            log.error("鑾峰彇浼佷笟寰俊鐢ㄦ埛淇℃伅澶辫触锛宑ode: {}", code);
+            return null;
+        }
+
+        String appUserId = userInfoResult.getString("UserId");
+        String userTicket = userInfoResult.getString("user_ticket"); // 鎵嬪姩鎺堟潈杩斿洖鐨勭敤鎴风エ鎹�
+
         if (appUserId != null) {
             // 鍒ゆ柇绗笁鏂圭敤鎴疯〃鏈夋病鏈夎繖涓汉
             LambdaQueryWrapper<SysThirdAccount> queryWrapper = new LambdaQueryWrapper<>();
@@ -903,18 +1056,63 @@
             queryWrapper.or().eq(SysThirdAccount::getThirdUserId, appUserId);
             queryWrapper.eq(SysThirdAccount::getThirdType, THIRD_TYPE);
             SysThirdAccount thirdAccount = sysThirdAccountService.getOne(queryWrapper);
+
+            // 閫氳繃user_ticket鑾峰彇鐢ㄦ埛璇︾粏淇℃伅锛堝寘鍚墜鏈哄彿绛夋晱鎰熶俊鎭級
+            JSONObject userDetail = this.getUserDetailByTicket(userTicket, accessToken);
+            String mobile = userDetail.getString("mobile");
+
             if (thirdAccount != null) {
+                // 鏇存柊鎵嬫満鍙凤紙濡傛灉鏈夛級
+                if (mobile != null && !mobile.isEmpty()) {
+                    thirdAccount.setPhone(mobile);
+                    sysThirdAccountService.updateById(thirdAccount);
+                }
                 return this.getSysUserByThird(thirdAccount, null, appUserId, accessToken);
             } else {
-                // 鐩存帴鍒涘缓鏂拌处鍙�
+                // 鐩存帴鍒涘缓鏂拌处鍙凤紝鍖呭惈鎵嬫満鍙蜂俊鎭�
                 User appUser = JwUserAPI.getUserByUserid(appUserId, accessToken);
-                ThirdLoginModel tlm = new ThirdLoginModel(THIRD_TYPE, appUser.getUserid(), appUser.getName(), appUser.getAvatar());
+                ThirdLoginModel tlm = new ThirdLoginModel(THIRD_TYPE, appUser.getUserid(), appUser.getName(), appUser.getAvatar(), mobile);
                 thirdAccount = sysThirdAccountService.saveThirdUser(tlm);
                 return this.getSysUserByThird(thirdAccount, appUser, null, null);
             }
         }
         return null;
     }
+
+    /**
+     * 閫氳繃code鑾峰彇鐢ㄦ埛淇℃伅锛堝寘鍚玼ser_ticket锛�
+     */
+    private JSONObject getUserInfoByCode(String code, String accessToken) {
+        String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo" +
+                "?access_token=" + accessToken +
+                "&code=" + code;
+        try {
+            String result = String.valueOf(RestUtil.get(url));
+            return JSONObject.parseObject(result);
+        } catch (Exception e) {
+            log.error("鑾峰彇浼佷笟寰俊鐢ㄦ埛淇℃伅寮傚父", e);
+            return null;
+        }
+    }
+
+    /**
+     * 閫氳繃user_ticket鑾峰彇鐢ㄦ埛璇︾粏淇℃伅锛堝寘鍚墜鏈哄彿绛夋晱鎰熶俊鎭級
+     */
+    private JSONObject getUserDetailByTicket(String userTicket, String accessToken) {
+        String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserdetail";
+        JSONObject params = new JSONObject();
+        params.put("user_ticket", userTicket);
+
+        try {
+            String result = String.valueOf(RestUtil.post(url + "?access_token=" + accessToken, JSONObject.parseObject(params.toJSONString())));
+//            String result = String.valueOf(RestUtil.post(url + "?access_token=" + accessToken, params.toJSONString()));
+            return JSONObject.parseObject(result);
+        } catch (Exception e) {
+            log.error("鑾峰彇浼佷笟寰俊鐢ㄦ埛璇︾粏淇℃伅寮傚父", e);
+            return new JSONObject(); // 杩斿洖绌哄璞¢伩鍏峃PE
+        }
+    }
+
 
     /**
      * 鏍规嵁绗笁鏂硅处鍙疯幏鍙栨湰鍦拌处鍙凤紝濡傛灉涓嶅瓨鍦ㄥ氨鍒涘缓
@@ -928,14 +1126,24 @@
     private SysUser getSysUserByThird(SysThirdAccount thirdAccount, User appUser, String appUserId, String accessToken) {
         String sysUserId = thirdAccount.getSysUserId();
         if (oConvertUtils.isNotEmpty(sysUserId)) {
-            return userMapper.selectById(sysUserId);
+            SysUser sysUser = userMapper.selectById(sysUserId);
+            if (sysUser != null && StringUtils.isBlank(sysUser.getPhone())) {
+                //濡傛灉鏈夌敤鎴凤紝骞朵笖娌℃湁鐢佃瘽淇℃伅锛屾洿鏂拌繘鐢佃瘽鍙风爜
+                SysUser user = new SysUser()
+                        .setId(sysUser.getId())
+                        .setPhone(thirdAccount.getPhone());
+                userMapper.updateById(user);
+            }
+            return sysUser;
         } else {
             // 濡傛灉娌℃湁 sysUserId 锛岃鏄庢病鏈夌粦瀹氳处鍙凤紝鑾峰彇鍒版墜鏈哄彿涔嬪悗杩涜缁戝畾
             if (appUser == null) {
                 appUser = JwUserAPI.getUserByUserid(appUserId, accessToken);
             }
-            // 鍒ゆ柇绯荤粺閲屾槸鍚︽湁杩欎釜鎵嬫満鍙风殑鐢ㄦ埛
-            SysUser sysUser = userMapper.getUserByPhone(appUser.getMobile());
+            appUser.setMobile(thirdAccount.getPhone());
+            // 鍒ゆ柇绯荤粺閲屾槸鍚︽湁杩欎釜鐢ㄦ埛锛屾牴鎹伐鍙峰尮閰�
+            SysUser sysUser = userMapper.getUserByWorkNo(thirdAccount.getThirdUserId());
+            //SysUser sysUser = userMapper.getUserByPhone(appUser.getMobile());
             if (sysUser != null) {
                 thirdAccount.setAvatar(appUser.getAvatar());
                 thirdAccount.setRealname(appUser.getName());
@@ -943,6 +1151,13 @@
                 thirdAccount.setThirdUserUuid(appUser.getUserid());
                 thirdAccount.setSysUserId(sysUser.getId());
                 sysThirdAccountService.updateById(thirdAccount);
+                if (StringUtils.isBlank(sysUser.getPhone())) {
+                    //濡傛灉娌℃湁鎵嬫満鍙风爜锛屾洿鏂�
+                    SysUser user = new SysUser()
+                            .setId(sysUser.getId())
+                            .setPhone(appUser.getMobile());
+                    userMapper.updateById(user);
+                }
                 return sysUser;
             } else {
                 // 娌℃湁灏辫蛋鍒涘缓閫昏緫

--
Gitblit v1.9.3