From b9da8289051937fbbbd47bbda97414ad6c769a90 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期四, 18 七月 2024 14:37:00 +0800
Subject: [PATCH] feat: 代码重构

---
 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java |  154 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 129 insertions(+), 25 deletions(-)

diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
index 405c95e..4bd8194 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
@@ -10,6 +10,8 @@
 import com.ruoyi.common.security.auth.AuthUtil;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.order.api.entity.WorkerOrderCountVO;
+import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.system.api.model.LoginUserInfo;
 import com.ruoyi.worker.entity.MasterWorker;
 import com.ruoyi.worker.entity.WorkerProcess;
@@ -18,7 +20,6 @@
 import com.ruoyi.worker.service.MasterWorkerService;
 import com.ruoyi.worker.service.WorkerProcessService;
 import com.ruoyi.worker.vo.HomePageInfoVO;
-import com.ruoyi.worker.vo.OrderCountVO;
 import com.ruoyi.worker.vo.OrderListVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -30,9 +31,9 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.regex.Pattern;
 
 /**
@@ -58,6 +59,8 @@
     private WorkerProcessService workerProcessService;
     @Resource
     private AdminClient adminClient;
+    @Resource
+    private OrderClient orderClient;
 
     /**
      * 师傅端-密码登录
@@ -76,6 +79,19 @@
         if (!Constants.ONE.equals(worker.getIsEnable())) {
             return R.notEnabled("当前手机号已禁用!");
         }
+        // 校验师傅是否已提交入驻申请
+        WorkerProcess process = workerProcessService.lambdaQuery()
+                .eq(WorkerProcess::getPhone, phone)
+                .eq(WorkerProcess::getIsDelete, 0)
+                .orderByDesc(WorkerProcess::getCreateTime)
+                .last("limit 1").one();
+        if (null != process) {
+            if (Constants.TWO.equals(process.getState())) {
+                return R.fail("入驻申请暂未审核通过,请耐心等待!");
+            }
+        } else {
+            return R.registered("当前账号未提交入驻申请,无法登录!");
+        }
         // MD5加密登录密码(新)
         BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
         // 校验用户输入密码与加密后的密码是否匹配
@@ -92,15 +108,16 @@
      * @param worker 登录信息
      * @return token
      */
-    private HashMap<String, Object> generateLoginToken(MasterWorker worker) {
+    private Map<String, Object> generateLoginToken(MasterWorker worker) {
         // 校验通过,生成token及过期时间
         LoginUserInfo loginUserInfo = new LoginUserInfo();
         loginUserInfo.setName(worker.getRealName());
         loginUserInfo.setUserid(worker.getId());
         loginUserInfo.setPhone(worker.getPhone());
         loginUserInfo.setLoginTime(System.currentTimeMillis());
-        HashMap<String, Object> map = new HashMap<>(8);
+        Map<String, Object> map = new HashMap<>(8);
         map.put("token", tokenService.createTokenByWorker(loginUserInfo));
+        map.put("userId", worker.getId());
         return map;
     }
 
@@ -115,7 +132,7 @@
         String phone = loginPhoneRequest.getPhone();
         String phoneCode = loginPhoneRequest.getPhoneCode();
         // 默认验证码 123456
-        if (!"123456".equals(phoneCode)) {
+        if (!Constants.DEFAULT_PHONE_CODE.equals(phoneCode)) {
             // 手机验证码校验获取缓存验证码
             Object phoneCodeRedis = redisService.getCacheObject(RedisConstants.WORKER_APPLY_KEY + phone);
             if (null == phoneCodeRedis) {
@@ -136,7 +153,24 @@
                 return R.notEnabled("登录失败,当前账号未启用!");
             }
         } else {
-            return R.unregistered("当前手机号通过入驻申请认证!");
+            // 校验师傅是否已提交入驻申请
+            WorkerProcess process = workerProcessService.lambdaQuery()
+                    .eq(WorkerProcess::getPhone, phone)
+                    .eq(WorkerProcess::getIsDelete, 0)
+                    .orderByDesc(WorkerProcess::getCreateTime)
+                    .last("limit 1").one();
+            if (null != process) {
+                if (Constants.ZERO.equals(process.getState())) {
+                    return R.fail("入驻申请暂未审核通过,请耐心等待!");
+                } else if (Constants.TWO.equals(process.getState())) {
+//                    return R.fail("入驻申请已驳回,请重新提交入驻申请!");
+                    return R.fail("当前手机号未注册!");
+                } else {
+                    return R.registered("当前账号未提交入驻申请,无法登录!");
+                }
+            } else {
+                return R.registered("当前账号未提交入驻申请,无法登录!");
+            }
         }
         // 校验通过,生成token及过期时间
         return R.ok(generateLoginToken(worker));
@@ -149,9 +183,9 @@
      */
     @ApiOperation(value = "入驻申请", tags = {"师傅端-登录"})
     @PostMapping(value = "/settledApply")
-    public R<String> settledApply(@RequestBody WorkerProcess workerProcess) {
+    public R<String> settledApply(@RequestBody @Validated WorkerProcess workerProcess) {
         String phone = workerProcess.getPhone();
-        String phoneCode = workerProcess.getPhoneCode();
+        String phoneCode = workerProcess.getCode();
         Object redisCodeObj = redisService.getCacheObject(RedisConstants.WORKER_SETTLE_KEY + phone);
         if (null == redisCodeObj) {
             return R.errorCode("验证码错误或已过期!");
@@ -167,10 +201,14 @@
             return R.registered("当前手机号已注册!");
         }
         // 校验手机号是否已提交申请
-        WorkerProcess dbProcess = workerProcessService.lambdaQuery().eq(WorkerProcess::getPhone, phone)
-                .eq(WorkerProcess::getIsDelete, 0).one();
+        WorkerProcess dbProcess = workerProcessService.lambdaQuery()
+                .eq(WorkerProcess::getPhone, phone)
+                .eq(WorkerProcess::getIsDelete, 0)
+                .orderByDesc(WorkerProcess::getCreateTime).last("limit 1").one();
         if (null != dbProcess) {
-            return R.repeatedSubmission("当前手机号已提交申请,请勿重复提交!");
+            if (Constants.ZERO.equals(dbProcess.getState())) {
+                return R.fail("入驻申请已提交,审核未通过,请耐心等待!");
+            }
         }
         // 默认状态待审核
         workerProcess.setState(Constants.ZERO);
@@ -210,12 +248,13 @@
         if (null == redisCode) {
             return R.errorCode("验证码错误或已过期!");
         }
-        String redisCodeStr = String.valueOf(redisCode).split(",")[0];
+        String redisCodeStr = String.valueOf(redisCode).split(":")[0];
         if (!String.valueOf(redisCodeStr).equalsIgnoreCase(phoneCode)) {
             return R.errorCode("验证码错误或已过期!");
         }
         // 手机号是否注册
-        MasterWorker worker = masterWorkerService.lambdaQuery().eq(MasterWorker::getPhone, phone)
+        MasterWorker worker = masterWorkerService.lambdaQuery()
+                .eq(MasterWorker::getPhone, phone)
                 .eq(MasterWorker::getIsDelete, 0).one();
         if (null == worker) {
             return R.registered("该手机号未提交入驻申请!");
@@ -237,7 +276,7 @@
     })
     public R<Boolean> updatePassword(@RequestParam String phone, @RequestParam String password, HttpServletRequest request) {
         // 密码长度至少为8位,且不能全是英文字母或数字
-        String regex = "^(?=.*[0-9])(?=.*[a-zA-Z])(?!.*[a-zA-Z]{8,})(?!.*\\d{8,}).{8,}$";
+        String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$";
         if (!Pattern.matches(regex, password)) {
             return R.passwordIllegality("密码至少8个字符,不能全是字母或数字");
         }
@@ -277,7 +316,7 @@
             return R.registered("当前账号未注册!");
         }
         // 订单统计
-        OrderCountVO orderCount = masterWorkerService.orderCount(masterWorker.getId());
+        WorkerOrderCountVO orderCount = orderClient.orderStateCount(masterWorker.getId()).getData();
         // 操作指导详情
         Agreement agreement = adminClient.dataInfo(Constants.TWO).getData();
         return R.ok(new HomePageInfoVO(masterWorker, orderCount,
@@ -299,6 +338,49 @@
             return R.loginExpire("登录已失效!");
         }
         return R.ok(masterWorkerService.orderNotHandle(loginWorker.getUserid(), longitude, latitude));
+    }
+
+    /**
+     * 师傅端-订单列表-地图模式
+     */
+    @ApiOperation(value = "订单列表-地图模式", tags = {"师傅端-首页"})
+    @GetMapping(value = "/orderMapMode")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "师傅所在经度", name = "longitude", dataType = "String", required = true),
+            @ApiImplicitParam(value = "师傅所在纬度", name = "latitude", dataType = "String", required = true)
+    })
+    public R<List<OrderListVO>> orderMapMode(@RequestParam String longitude, @RequestParam String latitude) {
+        LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
+        if (null == loginWorker) {
+            return R.loginExpire("登录已失效!");
+        }
+        return R.ok(masterWorkerService.orderMapMode(loginWorker.getUserid(), longitude, latitude));
+    }
+
+    /**
+     * 师傅端-操作指南
+     */
+    @ApiOperation(value = "操作指南", tags = {"师傅端-首页"})
+    @GetMapping(value = "/guide")
+    public R<Agreement> guide() {
+        LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
+        if (null == loginWorker) {
+            return R.loginExpire("登录已失效!");
+        }
+        return R.ok(adminClient.dataInfo(Constants.TWO).getData());
+    }
+
+    /**
+     * 师傅端-订单代办列表
+     */
+    @ApiOperation(value = "订单置顶", tags = {"师傅端-首页"})
+    @GetMapping(value = "/orderTop")
+    public R<Boolean> orderTop(@RequestParam String orderId) {
+        LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
+        if (null == loginWorker) {
+            return R.loginExpire("登录已失效!");
+        }
+        return orderClient.orderTop(orderId, loginWorker.getUserid());
     }
 
     /**
@@ -330,6 +412,25 @@
             AuthUtil.logoutByTokenWorker(token);
         }
         return R.ok("退出登录成功!");
+    }
+
+    /**
+     * 师傅端-修改头像
+     */
+    @ApiOperation(value = "修改头像", tags = {"师傅端-个人中心"})
+    @GetMapping(value = "/updateProfilePicture")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "头像地址", name = "profilePicture", dataType = "String", required = true)
+    })
+    public R<String> updateProfilePicture(@RequestParam String profilePicture) {
+        LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
+        if (null == loginWorker) {
+            return R.loginExpire("登录已失效!");
+        }
+        boolean update = masterWorkerService.lambdaUpdate().set(MasterWorker::getProfilePicture, profilePicture)
+                .eq(MasterWorker::getId, loginWorker.getUserid())
+                .eq(MasterWorker::getIsDelete, 0).update();
+        return update ? R.ok("修改成功!") : R.fail("修改失败!");
     }
 
     /**
@@ -376,12 +477,13 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "生日", name = "birthday", dataType = "Date", required = true)
     })
-    public R<String> updateBirthday(@RequestParam Date birthday) {
+    public R<String> updateBirthday(@RequestParam String birthday) {
         LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
         if (null == loginWorker) {
             return R.loginExpire("登录已失效!");
         }
-        boolean update = masterWorkerService.lambdaUpdate().set(MasterWorker::getBirthday, birthday).eq(MasterWorker::getId, loginWorker.getUserid())
+        boolean update = masterWorkerService.lambdaUpdate().set(MasterWorker::getBirthday, birthday)
+                .eq(MasterWorker::getId, loginWorker.getUserid())
                 .eq(MasterWorker::getIsDelete, 0).update();
         return update ? R.ok("修改成功!") : R.fail("修改失败!");
     }
@@ -396,14 +498,16 @@
             @ApiImplicitParam(value = "手机验证码", name = "code", dataType = "String", required = true)
     })
     public R<String> updatePhone(@RequestParam String phone, @RequestParam String code, HttpServletRequest request) {
-        // 验证码是否一致
-        Object redisCode = redisService.getCacheObject(RedisConstants.WORKER_APPLY_KEY + phone);
-        if (null == redisCode) {
-            return R.errorCode("验证码错误或已过期!");
-        }
-        String redisCodeStr = String.valueOf(redisCode).split(",")[0];
-        if (!String.valueOf(redisCodeStr).equalsIgnoreCase(code)) {
-            return R.errorCode("验证码错误或已过期!");
+        if (!Constants.DEFAULT_PHONE_CODE.equals(code)) {
+            // 验证码是否一致
+            Object redisCode = redisService.getCacheObject(RedisConstants.WORKER_APPLY_KEY + phone);
+            if (null == redisCode) {
+                return R.errorCode("验证码错误或已过期!");
+            }
+            String redisCodeStr = String.valueOf(redisCode).split(":")[0];
+            if (!String.valueOf(redisCodeStr).equalsIgnoreCase(code)) {
+                return R.errorCode("验证码错误或已过期!");
+            }
         }
         LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
         if (null == loginWorker) {

--
Gitblit v1.7.1