From 428519bd1056dd90cd4589dbf85b380e403ff254 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期五, 05 七月 2024 18:13:08 +0800
Subject: [PATCH] feat: 代码初始化、腾讯云短信SDK

---
 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java |  109 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 68 insertions(+), 41 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 3549d99..f346771 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
@@ -32,6 +32,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.regex.Pattern;
 
 /**
@@ -91,15 +92,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;
     }
 
@@ -135,7 +137,17 @@
                 return R.notEnabled("登录失败,当前账号未启用!");
             }
         } else {
-            return R.unregistered("当前手机号通过入驻申请认证!");
+            // 校验师傅是否已提交入驻申请
+            WorkerProcess process = workerProcessService.lambdaQuery()
+                    .eq(WorkerProcess::getPhone, phone)
+                    .eq(WorkerProcess::getIsDelete, 0).one();
+            if (Constants.ZERO.equals(process.getState())) {
+                return R.fail("入驻申请暂未审核通过,请耐心等待!");
+            } else if (Constants.TWO.equals(process.getState())) {
+                return R.fail("入驻申请已驳回,请重新提交入驻申请!");
+            } else {
+                return R.registered("当前账号未提交入驻申请,无法登录!");
+            }
         }
         // 校验通过,生成token及过期时间
         return R.ok(generateLoginToken(worker));
@@ -148,18 +160,16 @@
      */
     @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.getCode();
-        if (!Constants.DEFAULT_PHONE_CODE.equals(phoneCode)) {
-            Object redisCodeObj = redisService.getCacheObject(RedisConstants.WORKER_SETTLE_KEY + phone);
-            if (null == redisCodeObj) {
-                return R.errorCode("验证码错误或已过期!");
-            }
-            String redisCodeStr = String.valueOf(redisCodeObj).split(":")[0];
-            if (!String.valueOf(redisCodeStr).equalsIgnoreCase(phoneCode)) {
-                return R.errorCode("验证码错误或已过期!");
-            }
+        Object redisCodeObj = redisService.getCacheObject(RedisConstants.WORKER_SETTLE_KEY + phone);
+        if (null == redisCodeObj) {
+            return R.errorCode("验证码错误或已过期!");
+        }
+        String redisCodeStr = String.valueOf(redisCodeObj).split(":")[0];
+        if (!String.valueOf(redisCodeStr).equalsIgnoreCase(phoneCode)) {
+            return R.errorCode("验证码错误或已过期!");
         }
         // 校验手机号是否已注册
         MasterWorker masterWorker = masterWorkerService.lambdaQuery().eq(MasterWorker::getPhone, phone)
@@ -168,27 +178,33 @@
             return R.registered("当前手机号已注册!");
         }
         // 校验手机号是否已提交申请
-        WorkerProcess dbProcess = workerProcessService.lambdaQuery().eq(WorkerProcess::getPhone, phone)
+        WorkerProcess dbProcess = workerProcessService.lambdaQuery()
+                .eq(WorkerProcess::getPhone, phone)
                 .eq(WorkerProcess::getIsDelete, 0).one();
         if (null != dbProcess) {
-            return R.repeatedSubmission("当前手机号已提交申请,请勿重复提交!");
-        }
-        // 默认状态待审核
-        workerProcess.setState(Constants.ZERO);
-        // 获取用户性别
-        String idNumber = workerProcess.getIdNumber();
-        // 判断身份证号码长度是否合法
-        if (idNumber.length() == Constants.EIGHTEEN) {
-            // 获取身份证号码倒数第二位的数字
-            int genderNum = Integer.parseInt(idNumber.substring(16, 17));
-            // 判断性别
-            if (genderNum % Constants.TWO == 0) {
-                workerProcess.setSex("女");
-            } else {
-                workerProcess.setSex("男");
+            if (Constants.ZERO.equals(dbProcess.getState())) {
+                return R.fail("入驻申请已提交,审核未通过,请耐心等待!");
+            } else if (Constants.ONE.equals(dbProcess.getState())) {
+                return R.fail("该手机号入驻申请已通过,请通过手机号登录!");
             }
         } else {
-            return R.idNumberIllegal("身份证号码不合法!");
+            // 默认状态待审核
+            workerProcess.setState(Constants.ZERO);
+            // 获取用户性别
+            String idNumber = workerProcess.getIdNumber();
+            // 判断身份证号码长度是否合法
+            if (idNumber.length() == Constants.EIGHTEEN) {
+                // 获取身份证号码倒数第二位的数字
+                int genderNum = Integer.parseInt(idNumber.substring(16, 17));
+                // 判断性别
+                if (genderNum % Constants.TWO == 0) {
+                    workerProcess.setSex("女");
+                } else {
+                    workerProcess.setSex("男");
+                }
+            } else {
+                return R.idNumberIllegal("身份证号码不合法!");
+            }
         }
         return workerProcessService.save(workerProcess) ? R.ok("申请成功!") : R.fail("申请失败!");
     }
@@ -206,16 +222,14 @@
             @ApiImplicitParam(value = "手机验证码", name = "phoneCode", dataType = "String", required = true)
     })
     public R<String> verifyPhone(@RequestParam String phone, @RequestParam String phoneCode) {
-        if (!Constants.DEFAULT_PHONE_CODE.equals(phoneCode)) {
-            // 验证码是否一致
-            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(phoneCode)) {
-                return R.errorCode("验证码错误或已过期!");
-            }
+        // 验证码是否一致
+        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(phoneCode)) {
+            return R.errorCode("验证码错误或已过期!");
         }
         // 手机号是否注册
         MasterWorker worker = masterWorkerService.lambdaQuery().eq(MasterWorker::getPhone, phone)
@@ -302,6 +316,19 @@
             return R.loginExpire("登录已失效!");
         }
         return R.ok(masterWorkerService.orderNotHandle(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());
     }
 
     /**
@@ -438,7 +465,7 @@
             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(code)) {
                 return R.errorCode("验证码错误或已过期!");
             }

--
Gitblit v1.7.1