From e142433c71b032ce85546477543d65da0f3986b8 Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Sat, 21 Sep 2024 13:20:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/gzdyh_test' into gzdyh_test

---
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java |  184 +++++++++++++++++++++++++--------------------
 1 files changed, 102 insertions(+), 82 deletions(-)

diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java
index 15b4a2d..92244df 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java
@@ -36,17 +36,17 @@
 import java.util.Map;
 
 /**
+ * @author liyj
+ * @version 1.0.0
  * @title: 客户用户账号表业务逻辑处理
  * @Description 客户用户账号表业务逻辑处理
  * @company hugeinfo
- * @author liyj
  * @Time 2024-08-19 20:04:18
- * @version 1.0.0
  */
 @Slf4j
 @Service
 @Transactional(rollbackFor = Exception.class)
-public class CtAccountService extends ServiceImpl<CtAccountMapper, CtAccount>{
+public class CtAccountService extends ServiceImpl<CtAccountMapper, CtAccount> {
 
     @Autowired
     private CtAccountMapper mapper;
@@ -61,102 +61,110 @@
     private SysClientImpl sysClient;
 
     /**
-    * 更新对象
-    * @param entity 对象
-    */
-    public void updateCtAccount(CtAccount entity){
-        try{
+     * 更新对象
+     *
+     * @param entity 对象
+     */
+    public void updateCtAccount(CtAccount entity) {
+        try {
             mapper.updateCtAccount(entity);
-        }catch (Exception e){
-            log.error("[CtAccountService.updateCtAccount]调用失败,异常信息:"+e, e);
+        } catch (Exception e) {
+            log.error("[CtAccountService.updateCtAccount]调用失败,异常信息:" + e, e);
             throw new ServiceException("CtAccountService.updateCtAccount", e);
         }
     }
 
     /**
-    * 条件更新对象
-    * @param entity 对象
-    * @param terms 条件
-    */
-    public void updateCtAccountTerms(CtAccount entity, Map<String, Object> terms){
-        try{
+     * 条件更新对象
+     *
+     * @param entity 对象
+     * @param terms  条件
+     */
+    public void updateCtAccountTerms(CtAccount entity, Map<String, Object> terms) {
+        try {
             mapper.updateCtAccountTerms(entity, terms);
-        }catch (Exception e){
-            log.error("[CtAccountService.updateCtAccountTerms]调用失败,异常信息:"+e, e);
+        } catch (Exception e) {
+            log.error("[CtAccountService.updateCtAccountTerms]调用失败,异常信息:" + e, e);
             throw new ServiceException("CtAccountService.updateCtAccountTerms", e);
         }
     }
 
     /**
-    * 根据编号物理删除
-    * @param id 查询条件集合
-    */
-    public void deleteCtAccount(String id){
-        try{
+     * 根据编号物理删除
+     *
+     * @param id 查询条件集合
+     */
+    public void deleteCtAccount(String id) {
+        try {
             mapper.deleteCtAccount(id);
-        }catch (Exception e){
-            log.error("[CtAccountService.deleteCtAccount]调用失败,异常信息:"+e, e);
+        } catch (Exception e) {
+            log.error("[CtAccountService.deleteCtAccount]调用失败,异常信息:" + e, e);
             throw new ServiceException("CtAccountService.deleteCtAccount", e);
         }
     }
 
     /**
-    * 按条件查询
-    * @param terms 条件
-    * @return List
-    */
-    public List<CtAccount> listTerms(Map<String, Object> terms){
+     * 按条件查询
+     *
+     * @param terms 条件
+     * @return List
+     */
+    public List<CtAccount> listTerms(Map<String, Object> terms) {
         return mapper.listTerms(terms);
     }
 
     /**
-    * 按条件统计
-    * @param terms 条件
-    * @return long
-    */
-    public long countTerms(Map<String, Object> terms){
+     * 按条件统计
+     *
+     * @param terms 条件
+     * @return long
+     */
+    public long countTerms(Map<String, Object> terms) {
         return mapper.countTerms(terms);
     }
 
     /**
-    * 按条件分页查询
-    * @param page 分页对象
-    * @param terms 条件
-    * @return Page
-    */
-    public Page<CtAccount> pageQuery(PageRequest page, Map<String, Object> terms){
+     * 按条件分页查询
+     *
+     * @param page  分页对象
+     * @param terms 条件
+     * @return Page
+     */
+    public Page<CtAccount> pageQuery(PageRequest page, Map<String, Object> terms) {
         long total = mapper.countTerms(terms);
         List<CtAccount> content = mapper.pageTerms(page, terms);
         return new PageImpl<CtAccount>(content, page, total);
     }
 
     /**
-    * 新增或更新对象
-    * @param ctAccount 实体对象
-    */
-    public void saveCtAccount(CtAccount ctAccount){
-        try{
+     * 新增或更新对象
+     *
+     * @param ctAccount 实体对象
+     */
+    public void saveCtAccount(CtAccount ctAccount) {
+        try {
             Date nowDate = DateUtils.getNowDate();
             // 判断是否新增
-            if (IdUtils.checkNewId(ctAccount.getId())){
+            if (IdUtils.checkNewId(ctAccount.getId())) {
                 ctAccount.setId(utilsClient.getNewTimeId());
                 ctAccount.setCreateTime(nowDate);
             }
             ctAccount.setUpdateTime(nowDate);
             this.saveOrUpdate(ctAccount);
-        }catch (Exception e){
-            log.error("[CtAccountService.saveCtAccount]调用失败,异常信息:"+e, e);
+        } catch (Exception e) {
+            log.error("[CtAccountService.saveCtAccount]调用失败,异常信息:" + e, e);
             throw new ServiceException("CtAccountService.saveCtAccount", e);
         }
     }
 
     /**
      * 根据账号和类型查询
-     * @param acc 账号
+     *
+     * @param acc     账号
      * @param accType 账号类型
      * @return
      */
-    public CtAccount getByAccAndType(String acc, int accType){
+    public CtAccount getByAccAndType(String acc, int accType) {
         QueryWrapper<CtAccount> accountWrapper = new QueryWrapper<>();
         accountWrapper.eq("acc", acc)
                 .eq("acc_type", accType);
@@ -166,11 +174,12 @@
 
     /**
      * 根据用户编号和类型查询
-     * @param userId 用户编号
+     *
+     * @param userId  用户编号
      * @param accType 账号类型
      * @return
      */
-    public CtAccount getByUserIdAndType(String userId, int accType){
+    public CtAccount getByUserIdAndType(String userId, int accType) {
         QueryWrapper<CtAccount> accountWrapper = new QueryWrapper<>();
         accountWrapper.eq("user_id", userId)
                 .eq("acc_type", accType);
@@ -180,15 +189,16 @@
 
     /**
      * 判断密码是否正确
-     * @param cipher 密码
+     *
+     * @param cipher    密码
      * @param ctAccount 账号信息
      * @return Boolean
      */
-    public Boolean checkCredential(String cipher, CtAccount ctAccount){
+    public Boolean checkCredential(String cipher, CtAccount ctAccount) {
         String credentialMd5 = DigestUtils.md5DigestAsHex(cipher.getBytes());
         if (StringUtils.equals(credentialMd5, ctAccount.getCipher())) {
             return true;
-        }else {
+        } else {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
             String createTime = sdf.format(ctAccount.getCreateTime());
             String credentialTime = sdf.format(ctAccount.getCreateTime());
@@ -196,10 +206,10 @@
             if (createTime.equals(credentialTime)) {
                 if (cipher.equals(UserBaseConsts.MR_CIPHER)) {
                     return true;
-                }else{
+                } else {
                     return false;
                 }
-            }else{
+            } else {
                 return false;
             }
         }
@@ -207,18 +217,19 @@
 
     /**
      * web端-工作人员用户登录
+     *
      * @param ctAccountLoginDTO 登录账号信息
      * @return UserLoginDTO
      */
     public ReturnBO webLogin(CtAccountLoginDTO ctAccountLoginDTO) {
-        try{
+        try {
             // 判断账号密码是否为空
             if (StringUtils.isBlank(ctAccountLoginDTO.getAcc()) || StringUtils.isBlank(ctAccountLoginDTO.getCipher())) {
                 return ReturnFailUtils.getRepInfo("账号或密码不能为空");
             }
             // 判断账号是否存在
             CtAccount ctAccount = this.getByAccAndType(ctAccountLoginDTO.getAcc(), UserBaseConsts.ACC_TYPE_1);
-            if (ObjectUtils.isNotEmpty(ctAccount)){
+            if (ObjectUtils.isNotEmpty(ctAccount)) {
                 // 判断账号是否被锁定
                 if (ObjectUtils.isNotEmpty(ctAccount.getLimitTime())) {
                     Date nowDate = new Date();
@@ -232,10 +243,10 @@
                     //返回结果
                     UserLoginDTO userLoginDTO = new UserLoginDTO();
                     CtUser ctUser = ctUserService.getById(ctAccount.getUserId());
-                    if (ObjectUtils.isEmpty(ctUser)){
+                    if (ObjectUtils.isEmpty(ctUser)) {
                         return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
                     }
-                    if (ctUser.getStatus() != UserBaseConsts.USER_STATUS_1){
+                    if (ctUser.getStatus() != UserBaseConsts.USER_STATUS_1) {
                         return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
                     }
                     // 封装用户信息
@@ -263,7 +274,7 @@
                     userLoginDTO.setCtUserAddrDTO(ctUserAddrDTO);
                     // 最后登录时间
                     Date loginTime = ctAccount.getLoginTime();
-                    if (ObjectUtils.isEmpty(ctAccount.getLoginTime())){
+                    if (ObjectUtils.isEmpty(ctAccount.getLoginTime())) {
                         loginTime = DateUtils.getNowDate();
                     }
                     userLoginDTO.setLastLoginTime(loginTime);
@@ -275,30 +286,31 @@
                 } else {
                     return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
                 }
-            }else{
+            } else {
                 return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
             }
-        }catch (Exception e){
-            log.error("service方法[AccountService.webLogin]调用失败,异常信息:"+e, e);
+        } catch (Exception e) {
+            log.error("service方法[AccountService.webLogin]调用失败,异常信息:" + e, e);
             throw new ServiceException("CtAccountService.webLogin", e);
         }
     }
 
     /**
      * web端-工作人员-修改密码
-     * @param userId 用户编号
+     *
+     * @param userId      用户编号
      * @param ctCipherDTO 修改密码信息
      * @return
      */
-    public ReturnBO webChangeCipher(String userId, CtCipherDTO ctCipherDTO){
-        try{
+    public ReturnBO webChangeCipher(String userId, CtCipherDTO ctCipherDTO) {
+        try {
             CtUser loginUser = ctUserService.getById(userId);
             CtAccount ctAccount = this.getByAccAndType(loginUser.getAcc(), UserBaseConsts.ACC_TYPE_1);
 //            QueryWrapper<CtAccount> ctAccountQueryWrapper = new QueryWrapper<>();
 //            ctAccountQueryWrapper.eq("user_id", loginUser.getId()).
 //                    eq("acc_type", UserBaseConsts.ACC_TYPE_1);
 //            CtAccount ctAccount =mapper.selectOne(ctAccountQueryWrapper);
-            if (ObjectUtils.isEmpty(ctAccount)){
+            if (ObjectUtils.isEmpty(ctAccount)) {
                 return ReturnFailUtils.getRepInfo("输入账号或密码不正确,请确认后重试!");
             }
             String oldCredentialMd5 = DigestUtils.md5DigestAsHex(ctCipherDTO.getOldCipher().getBytes());
@@ -314,19 +326,20 @@
                     .set("update_time", DateUtils.getNowDate()).eq("id", ctAccount.getId());
             this.update(accountUpdateWrapper);
             return ReturnSucUtils.getRepInfo();
-        }catch (Exception e){
-            log.error("service方法[AccountService.webChangeCipher]调用失败,异常信息:"+e, e);
+        } catch (Exception e) {
+            log.error("service方法[AccountService.webChangeCipher]调用失败,异常信息:" + e, e);
             throw new ServiceException("CtAccountService.webChangeCipher", e);
         }
     }
 
     /**
      * web端-网格系统单点登录
+     *
      * @param gridTokenBaseDTO 网格系统token
      * @return UserLoginDTO
      */
     public ReturnBO webGridLogin(GridTokenBaseDTO gridTokenBaseDTO) {
-        try{
+        try {
             GridUserBaseDTO gridUserBaseDTO = sysClient.getUserInfo(gridTokenBaseDTO);
 
             // 判断账号密码是否为空
@@ -335,16 +348,23 @@
             }
             // 判断账号是否存在
             CtAccount ctAccount = this.getByAccAndType(gridUserBaseDTO.getAccount(), UserBaseConsts.ACC_TYPE_1);
-            if(ObjectUtils.isEmpty(ctAccount)){
+            if (ObjectUtils.isEmpty(ctAccount)) {
                 ctAccount = this.getByAccAndType(gridUserBaseDTO.getMobile(), UserBaseConsts.ACC_TYPE_1);
             }
-            if (ObjectUtils.isNotEmpty(ctAccount)){
+            CtUser ctUser = null;
+            if (ObjectUtils.isNotEmpty(ctAccount)) {
                 //返回结果
-                UserLoginDTO userLoginDTO = new UserLoginDTO();
-                CtUser ctUser = ctUserService.getById(ctAccount.getUserId());
-                if (ObjectUtils.isEmpty(ctUser)){
+                ctUser = ctUserService.getById(ctAccount.getUserId());
+                if (ObjectUtils.isEmpty(ctUser)) {
                     return ReturnFailUtils.getRepInfo("用户不存在!");
                 }
+            } else {
+                //如果和亿迅系统的手机号对不上,在用身份证号去查询用户,如果查询得到,就对得上,如果查询不到,就说明用户不存在
+                ctUser = ctUserService.getByIdCard(gridUserBaseDTO.getIdNumber());
+            }
+            if (ObjectUtils.isNotEmpty(ctUser)) {
+                //返回结果
+                UserLoginDTO userLoginDTO = new UserLoginDTO();
                 // 封装用户信息
                 userLoginDTO.setToken(JwtUtils.buildJWT(ctUser.getId()));
                 userLoginDTO.setUserId(ctUser.getId());
@@ -370,7 +390,7 @@
                 userLoginDTO.setCtUserAddrDTO(ctUserAddrDTO);
                 // 最后登录时间
                 Date loginTime = ctAccount.getLoginTime();
-                if (ObjectUtils.isEmpty(ctAccount.getLoginTime())){
+                if (ObjectUtils.isEmpty(ctAccount.getLoginTime())) {
                     loginTime = DateUtils.getNowDate();
                 }
                 userLoginDTO.setLastLoginTime(loginTime);
@@ -379,11 +399,11 @@
                 accountUpdateWrapper.set("login_time", loginTime).eq("id", ctAccount.getId());
                 this.update(accountUpdateWrapper);
                 return ReturnSucUtils.getRepInfo(userLoginDTO);
-            }else{
+            } else {
                 return ReturnFailUtils.getRepInfo("用户不存在!,请确认后重试!");
             }
-        }catch (Exception e){
-            log.error("service方法[AccountService.webGridLogin]调用失败,异常信息:"+e, e);
+        } catch (Exception e) {
+            log.error("service方法[AccountService.webGridLogin]调用失败,异常信息:" + e, e);
             throw new ServiceException("CtAccountService.webGridLogin", e);
         }
     }

--
Gitblit v1.8.0