From 8eb03554c07de7e268cf230249caf10922c6b47d Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 06 Jan 2021 17:18:53 +0800
Subject: [PATCH] Merge branch 'api' into order_reform

---
 zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java |  100 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 97 insertions(+), 3 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
index c03a787..6e8f83a 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -2,26 +2,39 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.matrix.component.redis.RedisClient;
-import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.StringUtils;
 import com.matrix.core.tools.UUIDUtil;
-import com.matrix.core.tools.WebUtil;
+import com.matrix.system.app.authority.AppAuthorityManager;
 import com.matrix.system.app.dto.LoginDto;
+import com.matrix.system.app.dto.PwdResetDto;
+import com.matrix.system.app.dto.SmsCodeDto;
+import com.matrix.system.app.dto.UploadPhotoDto;
 import com.matrix.system.app.vo.UserInfoVo;
 import com.matrix.system.common.authority.DefaultAuthorityManager;
 import com.matrix.system.common.authority.strategy.AccountPasswordLogin;
 import com.matrix.system.common.authority.strategy.LoginStrategy;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.service.SysUsersService;
+import com.matrix.system.common.tools.PasswordUtil;
 import com.matrix.system.hive.bean.SysShopInfo;
+import com.matrix.system.hive.plugin.util.CollectionUtils;
+import com.matrix.system.hive.plugin.util.ImageUtil;
 import com.matrix.system.hive.service.SysShopInfoService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+
+import java.io.File;
+import java.io.UnsupportedEncodingException;
+import java.security.NoSuchAlgorithmException;
+import java.util.List;
 
 /**
  * @author wzy
@@ -39,10 +52,15 @@
     private SysShopInfoService sysShopInfoService;
 
     @Autowired
-    private DefaultAuthorityManager authorityManager;
+    private AppAuthorityManager authorityManager;
 
     @Autowired
     private RedisClient redisClient;
+
+    @Value("${file_storage_path}")
+    private String fileStoragePath;
+    @Value("${static_resource_url}")
+    private String nginxUrl;
 
     @ApiOperation(value = "登陆接口", notes = "手机端登陆接口")
     @ApiResponses({
@@ -75,9 +93,85 @@
         userInfoVo.setPhoto(user.getSuPhoto());
 
         AjaxResult result = AjaxResult.buildSuccessInstance("登陆成功");
+        authorityManager.initUserPower(result,user);
         result.putInMap("user", userInfoVo);
         result.putInMap("token", token);
         return result;
     }
 
+    @ApiOperation(value = "图片上传接口", notes = "图片上传接口")
+    @PostMapping(value = "/uploadPhotoBase64")
+    public AjaxResult uploadPhotoBase64(@RequestBody @Validated UploadPhotoDto uploadPhotoDto) {
+        // 文件保存目录路径
+        String savePath = fileStoragePath;
+        // 文件保存目录URL
+        String saveUrl = nginxUrl;
+
+        // 保存和访问路径检查
+        if (StringUtils.isBlank(saveUrl) || StringUtils.isBlank(savePath)) {
+            return AjaxResult.buildFailInstance("文件上传失败错误代码:001");
+        }
+
+        // 检查目录
+        File uploadDir = new File(savePath);
+        if (!uploadDir.isDirectory()) {
+            uploadDir.mkdir();
+        }
+
+        String fileName = ImageUtil.base64ToFile(uploadPhotoDto.getBase64(), savePath, UUIDUtil.getRandomID() + ".png");
+        LogUtil.info("fileName : {}", fileName);
+
+        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("上传成功");
+        ajaxResult.putInMap("file", fileName);
+        return ajaxResult;
+    }
+
+    @ApiOperation(value = "短信验证码发送", notes = "短信验证码发送")
+    @PostMapping(value = "/sendSmsCode")
+    public AjaxResult sendSmsCode(@RequestBody @Validated SmsCodeDto smsCodeDto) {
+        SysUsers user = new SysUsers();
+        user.setSuTel(smsCodeDto.getTelphone());
+        List<SysUsers> users = sysUsersService.findByModel(user);
+        if (CollectionUtils.isEmpty(users)) {
+            return AjaxResult.buildFailInstance("该手机号不存在");
+        }
+
+        String codeExist = redisClient.getCachedValue(smsCodeDto.getTelphone());
+        if (StringUtils.isNotBlank(codeExist)) {
+            return AjaxResult.buildFailInstance("请勿重复发送验证码");
+        }
+        redisClient.saveValue(smsCodeDto.getTelphone(), "123456", 120);
+        return AjaxResult.buildSuccessInstance("发送成功");
+    }
+
+    @ApiOperation(value = "重置登陆密码", notes = "重置登陆密码")
+    @PostMapping(value = "/resetLoginPwd")
+    public AjaxResult resetLoginPwd(@RequestBody @Validated PwdResetDto pwdResetDto) throws UnsupportedEncodingException, NoSuchAlgorithmException {
+        SysUsers user = new SysUsers();
+        user.setSuTel(pwdResetDto.getTelphone());
+        List<SysUsers> users = sysUsersService.findByModel(user);
+        if (CollectionUtils.isEmpty(users)) {
+            return AjaxResult.buildFailInstance("该手机号不存在");
+        }
+
+        String code = redisClient.getCachedValue(pwdResetDto.getTelphone());
+        if (StringUtils.isBlank(code)) {
+            return AjaxResult.buildFailInstance("验证码已失效,请重新发送");
+        }
+
+        if (!code.equals(pwdResetDto.getCode())) {
+            return AjaxResult.buildFailInstance("验证码错误");
+        }
+
+        user = users.get(0);
+        user.setSuPassword(pwdResetDto.getNewPwd());
+        String pwd = PasswordUtil.getEncrypUserPwd(user);
+
+        int i = sysUsersService.updateUserPassword(user.getSuId(), pwd);
+        if (i > 0) {
+            redisClient.removeObject(pwdResetDto.getTelphone());
+            return AjaxResult.buildSuccessInstance("修改成功");
+        }
+        return AjaxResult.buildFailInstance("修改失败");
+    }
 }

--
Gitblit v1.9.1