From b48de0e35c54bd4715f8de2b86bac5a539c27275 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期六, 22 六月 2024 16:23:44 +0800
Subject: [PATCH] 更换手机,发送短信放开

---
 project-system/src/main/java/com/project/system/mapper/SysUserMapper.java                 |    9 ++
 project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java      |  104 ++++++++++++++-----------
 project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java    |   36 +++++---
 project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java   |    8 ++
 project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java |   30 +++++++
 project-system/src/main/resources/mapper/system/SysUserMapper.xml                         |    4 +
 project-system/src/main/java/com/project/system/service/ISysUserService.java              |   10 ++
 project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java      |    5 +
 project-system/src/main/java/com/project/system/domain/bo/editBo/CheckBo.java             |    6 +
 9 files changed, 150 insertions(+), 62 deletions(-)

diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java
index 768b235..283da0f 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java
@@ -56,6 +56,14 @@
         return AjaxResult.success(loginService.getVerifyCode(phone));
     }
 
+    @ApiOperation("鏂版敞鍐岃幏鍙栭獙璇佺爜")
+    @GetMapping("/verify/getNew")
+    @RepeatSubmit
+    public AjaxResult getVerifyCodeNew(@RequestParam("phone") String phone)
+    {
+        return AjaxResult.success(loginService.getVerifyCodeNew(phone));
+    }
+
     @ApiOperation("鏍¢獙楠岃瘉鐮�")
     @PostMapping("/verify/check")
     @RepeatSubmit
diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java
index f36229a..0916f22 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java
@@ -101,6 +101,7 @@
         return error("淇敼涓汉淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�");
     }
 
+
     /**
      * 閲嶇疆瀵嗙爜
      */
@@ -130,6 +131,35 @@
     }
 
     /**
+     * 鏇存崲鎵嬫満鍙�
+     */
+    @Log(title = "鏇存崲鎵嬫満鍙�", businessType = BusinessType.UPDATE)
+    @PostMapping("/updatePhone/{phone}")
+    public AjaxResult updatePhone(@PathVariable String phone)
+    {
+        if (StringUtils.isEmpty(phone)){
+            return error("璇峰~鍐欐墜鏈哄彿");
+        }
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        SysUser user = loginUser.getUser();
+        user.setPhonenumber(phone);
+        if (StringUtils.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+        {
+            return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪");
+        }
+        if (userService.resetPhone(user.getUserId(), phone) > 0)
+        {
+            // 鏇存柊缂撳瓨
+            loginUser.getUser().setUserName(phone);
+            loginUser.getUser().setPhonenumber(phone);
+            tokenService.setLoginUser(loginUser);
+            return success();
+        }
+        return error("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛�");
+    }
+
+    /**
      * 澶村儚涓婁紶
      */
     @Log(title = "鐢ㄦ埛澶村儚", businessType = BusinessType.UPDATE)
diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
index c16ded5..317241c 100644
--- a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
+++ b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
@@ -43,58 +43,68 @@
     @Transactional
     public Boolean checkOrder(CheckBo bo)
     {
+        if (StringUtils.isNotEmpty(bo.getIds())){
+            throw new BaseException("璇烽�夋嫨瑕佸鎵圭殑鍗曟嵁锛�");
+        }
         switch (bo.getCheckType())
         {
             case 1:
-                SysCompany company = companyService.getById(bo.getId());
-                if (company==null) {
-                    throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
-                }
-                SysCompanyBo companyBo = new SysCompanyBo();
-                companyBo.setCompanyId(company.getCompanyId());
-                if (bo.getCheckStatus()== -1){
-                    company.setCheckStatus(-1);
-                    companyBo.setCompanyStatus(1);
-                } else {
-                    company.setCheckStatus(2);
-                    companyBo.setCompanyStatus(0);
-                }
-                addCheckLog(company, bo);
-                company.setCheckReason(bo.getCheckReason());
-                companyService.updStatus(companyBo);
-                return companyService.updateById(company);
-            case 2:
-                EnforceOrder order = orderService.getById(bo.getId());
-                if (order==null) {
-                    throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
-                }
-                addCheckLog(order, bo);
-                if (bo.getCheckStatus()==-1){
-                    order.setCheckStatus(-1);
-                    //瀹℃壒鎷掔粷锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
-                    smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus());
-                } else {
-                    List<String> phones = orderService.getCheckPhones(order.getCheckLevel()+1, order.getApplyDeptId());
-                    if (StringUtils.isNotEmpty(phones)){
-                        order.setCheckStatus(1);
-                        //缁欎笅涓�绾у鎵逛汉鍙戦�佺煭淇�
-                        smsService.sendApplyMsg(phones, order.getApplyUser());
-                        String checkPhones = StringUtils.join(phones, ",");
-                        orderService.update(orderService.lu().set(EnforceOrder::getCheckIds, checkPhones).eq(EnforceOrder::getOrderId, order.getOrderId()));
-                    } else {
-                        order.setCheckStatus(2);
-                        order.setOrderStatus(2);
-                        //瀹℃壒閫氳繃锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
-                        smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus());
-                        if (order.getIsNoticeCompany()==1){
-                            smsService.sendCompanyMsg(order.getCompanyPhone(), order.getApplyDeptName(), order.getPlanTime());
-                        }
+                for (Long id : bo.getIds()) {
+                    SysCompany company = companyService.getById(id);
+                    if (company==null) {
+                        throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
                     }
-                    //瀹℃壒绛夌骇鍔�1
-                    order.setCheckLevel(order.getCheckLevel()+1);
+                    SysCompanyBo companyBo = new SysCompanyBo();
+                    companyBo.setCompanyId(company.getCompanyId());
+                    if (bo.getCheckStatus()== -1){
+                        company.setCheckStatus(-1);
+                        companyBo.setCompanyStatus(1);
+                    } else {
+                        company.setCheckStatus(2);
+                        companyBo.setCompanyStatus(0);
+                    }
+                    addCheckLog(company, bo);
+                    company.setCheckReason(bo.getCheckReason());
+                    companyService.updStatus(companyBo);
+                    companyService.updateById(company);
                 }
-                order.setCheckReason(bo.getCheckReason());
-                return orderService.updateById(order);
+                return true;
+            case 2:
+                for (Long id : bo.getIds()) {
+                    EnforceOrder order = orderService.getById(id);
+                    if (order==null) {
+                        throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
+                    }
+                    addCheckLog(order, bo);
+                    if (bo.getCheckStatus()==-1){
+                        order.setCheckStatus(-1);
+                        //瀹℃壒鎷掔粷锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
+                        smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus());
+                    } else {
+                        List<String> phones = orderService.getCheckPhones(order.getCheckLevel()+1, order.getApplyDeptId());
+                        if (StringUtils.isNotEmpty(phones)){
+                            order.setCheckStatus(1);
+                            //缁欎笅涓�绾у鎵逛汉鍙戦�佺煭淇�
+                            smsService.sendApplyMsg(phones, order.getApplyUser());
+                            String checkPhones = StringUtils.join(phones, ",");
+                            orderService.update(orderService.lu().set(EnforceOrder::getCheckIds, checkPhones).eq(EnforceOrder::getOrderId, order.getOrderId()));
+                        } else {
+                            order.setCheckStatus(2);
+                            order.setOrderStatus(2);
+                            //瀹℃壒閫氳繃锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
+                            smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus());
+                            if (order.getIsNoticeCompany()==1){
+                                smsService.sendCompanyMsg(order.getCompanyPhone(), order.getApplyDeptName(), order.getPlanTime());
+                            }
+                        }
+                        //瀹℃壒绛夌骇鍔�1
+                        order.setCheckLevel(order.getCheckLevel()+1);
+                        order.setCheckReason(bo.getCheckReason());
+                        orderService.updateById(order);
+                    }
+
+                }
+                return true;
         }
         return false;
     }
diff --git a/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java b/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
index 8cb0c51..49e14fb 100644
--- a/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
+++ b/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
@@ -114,6 +114,26 @@
         return tokenService.createToken(loginUser);
     }
 
+    /**
+     * 鏂版敞鍐岃幏鍙栭獙璇佺爜
+     * @param phone 鎵嬫満
+     * @return  楠岃瘉鐮�
+     */
+    public Boolean getVerifyCodeNew(String phone) {
+        // 鐢熸垚4浣嶉殢鏈烘暟
+        String code = "";
+        Random ran = new Random();
+        int randomNum = ran.nextInt(10000);
+        code = String.format("%04d", randomNum);
+        log.info("鎵嬫満鍙凤細"+phone+"->楠岃瘉鐮侊細"+code);
+        boolean send = sendYp(phone, code);
+        if (send){
+            redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
+            return true;
+        }
+        redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
+        return false;
+    }
 
     /**
      * 鑾峰彇楠岃瘉鐮�
@@ -126,19 +146,7 @@
         if (user==null){
             throw new BaseException("鎮ㄦ墜鏈哄彿灏氭湭娉ㄥ唽锛�");
         }
-        // 鐢熸垚4浣嶉殢鏈烘暟
-        String code = "";
-        Random ran = new Random();
-        int randomNum = ran.nextInt(10000);
-        code = String.format("%04d", randomNum);
-        log.info("鎵嬫満鍙凤細"+phone+"->楠岃瘉鐮侊細"+code);
-//        boolean send = sendAl(phone, code);
-//        if (send){
-//            redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
-//            return true;
-//        }
-        redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
-        return false;
+        return getVerifyCodeNew(phone);
     }
 
     private boolean sendYp(String phone, String code ){
@@ -277,4 +285,6 @@
 
         return verify;
     }
+
+
 }
diff --git a/project-system/src/main/java/com/project/system/domain/bo/editBo/CheckBo.java b/project-system/src/main/java/com/project/system/domain/bo/editBo/CheckBo.java
index da7246c..23dc7ef 100644
--- a/project-system/src/main/java/com/project/system/domain/bo/editBo/CheckBo.java
+++ b/project-system/src/main/java/com/project/system/domain/bo/editBo/CheckBo.java
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author Mr.Zhao
  */
@@ -13,8 +15,8 @@
     @ApiModelProperty(value = "涓氬姟绫诲瀷锛�1浼佷笟瀹℃壒锛�2鎵ф硶鍗曞鎵�",required = true)
     private Integer checkType;
 
-    @ApiModelProperty(value = "id",required = true)
-    private Long id;
+    @ApiModelProperty(value = "ids",required = true)
+    private List<Long> ids;
 
     @ApiModelProperty(value = "绫诲瀷锛�1閫氳繃锛�-1鎷掔粷",required = true)
     private Integer checkStatus;
diff --git a/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java b/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java
index eae3dbc..30a094c 100644
--- a/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java
+++ b/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java
@@ -142,4 +142,13 @@
      * @return  phoneList
      */
     List<String> getPhonesByRoleKey(@Param("roleKey") String roleKey,@Param("deptId") Long deptId);
+
+    /**
+     * 鏇存崲鎵嬫満鍙�
+     *
+     * @param userId 鐢ㄦ埛id
+     * @param phone 鎵嬫満
+     * @return 缁撴灉
+     */
+    int resetPhone(@Param("userId")Long userId, @Param("phone")String phone);
 }
diff --git a/project-system/src/main/java/com/project/system/service/ISysUserService.java b/project-system/src/main/java/com/project/system/service/ISysUserService.java
index 7908b0a..d786b84 100644
--- a/project-system/src/main/java/com/project/system/service/ISysUserService.java
+++ b/project-system/src/main/java/com/project/system/service/ISysUserService.java
@@ -220,4 +220,14 @@
      * @return idList
      */
     List<String> getPhonesByRoleKey(String roleKey, Long deptId);
+
+
+    /**
+     * 閲嶇疆鐢ㄦ埛鎵嬫満鍙�
+     *
+     * @param userId 鐢ㄦ埛id
+     * @param phone 鎵嬫満鍙�
+     * @return 缁撴灉
+     */
+    public int resetPhone(Long userId, String phone);
 }
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
index 9e244fe..b002089 100644
--- a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
+++ b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
@@ -551,4 +551,9 @@
     {
         return userMapper.getPhonesByRoleKey(roleKey, deptId);
     }
+
+    @Override
+    public int resetPhone(Long userId, String phone) {
+        return userMapper.resetPhone(userId, phone);
+    }
 }
diff --git a/project-system/src/main/resources/mapper/system/SysUserMapper.xml b/project-system/src/main/resources/mapper/system/SysUserMapper.xml
index 9cd4df7..3c80ddd 100644
--- a/project-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/project-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -229,6 +229,10 @@
  		update sys_user set password = #{password}, recommend_user = #{recommendUser} where user_name = #{userName}
 	</update>
 
+	<update id="resetPhone" parameterType="SysUser">
+		update sys_user set phonenumber = #{phone}, user_name = #{phone} where user_id = #{userId}
+	</update>
+
 	<delete id="deleteUserById" parameterType="Long">
  		update sys_user set del_flag = '1' where user_id = #{userId}
  	</delete>

--
Gitblit v1.9.1