From 6225c37d2f53adf26daf6b4859af5fb5c6fad088 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期一, 15 五月 2023 16:45:34 +0800
Subject: [PATCH] broker 卡车公司端

---
 src/main/java/com/stylefeng/guns/modular/api/ApiController.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/stylefeng/guns/modular/api/ApiController.java b/src/main/java/com/stylefeng/guns/modular/api/ApiController.java
index 477e988..7274f75 100644
--- a/src/main/java/com/stylefeng/guns/modular/api/ApiController.java
+++ b/src/main/java/com/stylefeng/guns/modular/api/ApiController.java
@@ -8,11 +8,14 @@
 import com.stylefeng.guns.core.util.Convert;
 import com.stylefeng.guns.core.util.JwtTokenUtil;
 import com.stylefeng.guns.core.util.MD5Util;
+import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.dao.TCompanyMapper;
 import com.stylefeng.guns.modular.system.dao.UserMapper;
 import com.stylefeng.guns.modular.system.model.TCompany;
 import com.stylefeng.guns.modular.system.model.User;
 import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.utils.EmailUtil;
+import com.stylefeng.guns.modular.system.utils.RedisUtil;
 import com.stylefeng.guns.modular.system.utils.tips.SuccessTip;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -26,6 +29,7 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Random;
 
 /**
  * 接口控制器提供
@@ -43,6 +47,10 @@
 
     @Resource
     private TCompanyMapper companyMapper;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
     /**
      * api登录接口,通过账号密码获取token
      */
@@ -60,7 +68,7 @@
         //获取数据库中的账号密码,准备比对
         List<TCompany> user = companyMapper.selectList(new EntityWrapper<TCompany>().eq("account",username));
         if (user.size()==0) {
-            return new ErrorTip(500, "账号密码错误!");
+            return new ErrorTip(500, "Account password error!");
         }
         UserInfo userInfo = new UserInfo();
         BeanUtils.copyProperties(user, userInfo);
@@ -77,14 +85,16 @@
 //        boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
 //                usernamePasswordToken, simpleAuthenticationInfo);
         String encrypt = MD5Util.encrypt(password);
+        if(user.get(0).getStatus()==3){
+            return new ErrorTip(500, "Your account has been frozen, please contact the platform!");
+        }
         if (!encrypt.equals(user.get(0).getPassword())) {
-            return new ErrorTip(500, "账号密码错误!");
+            return new ErrorTip(500, "Account password error!");
         } else {
             TCompany company = user.get(0);
             HashMap<String, Object> result = new HashMap<>();
             result.put("token", JwtTokenUtil.generateToken(String.valueOf(company.getId())));
             result.put("company", company);
-            super.getSession().setAttribute("companyId",String.valueOf(company.getId()));
             return result;
         }
     }
@@ -128,12 +138,18 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "username", value = "用户账号", required = true, dataType = "String"),
             @ApiImplicitParam(name = "password", value = "用户密码", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "code", value = "验证码", required = true, dataType = "String"),
     })
     public Object forget(@RequestParam("username") String username,
-                         @RequestParam("password") String password) {
+                         @RequestParam("password") String password,
+                         @RequestParam("code") String code) {
         List<TCompany> user = companyMapper.selectList(new EntityWrapper<TCompany>().eq("account",username));
+        String value = redisUtil.getValue(username);
+        if(!code.equals(value)){
+            return new ErrorTip(5001, "Verification code error!");
+        }
         if (user.size()==0){
-            return new ErrorTip(500, "账号不存在!");
+            return new ErrorTip(500, "Account does not exist!");
         }
         user.get(0).setPassword(MD5Util.encrypt(password));
         companyMapper.updateById(user.get(0));
@@ -141,4 +157,35 @@
     }
 
 
+    @PostMapping("/sendCode")
+    @ApiOperation(value = "发送验证码", notes = "发送验证码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "email", value = "用户邮箱", required = true, dataType = "String"),
+    })
+    public Object sendCode(@RequestParam("email") String email) {
+        String randomNumber = getRandomString(6);
+        redisUtil.setStrValue(email,randomNumber,300);
+        try {
+            EmailUtil.sendMailGMail(email, randomNumber);
+            return new com.stylefeng.guns.core.base.tips.SuccessTip();
+        }catch (Exception e){
+            e.printStackTrace();
+            return new ErrorTip(500,"ERROR");
+        }
+    }
+
+
+    private  String getRandomString(int length) {
+        String base = "0123456789";
+        Random random = new Random();
+        StringBuffer sb = new StringBuffer();
+
+        for(int i = 0; i < length; ++i) {
+            int number = random.nextInt(base.length());
+            sb.append(base.charAt(number));
+        }
+
+        return sb.toString();
+    }
+
 }

--
Gitblit v1.7.1