From 4adcef1e676bf1e9ff8e130f00ffe329dea1bfd5 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 06 Jan 2021 18:08:30 +0800 Subject: [PATCH] modify --- zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 106 insertions(+), 9 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 0da7a56..e353f19 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 @@ -3,25 +3,38 @@ import com.alibaba.fastjson.JSONObject; import com.matrix.component.redis.RedisClient; 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.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.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +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({ @@ -57,24 +75,103 @@ LoginStrategy apLogin = new AccountPasswordLogin(user, sysUsersService); user = authorityManager.login(apLogin); + UserInfoVo userInfoVo = new UserInfoVo(); if(user.getShopId()!=null){ - user.setShopName(sysShopInfoService.findById(user.getShopId()).getShopName()); + SysShopInfo shopInfo = sysShopInfoService.findById(user.getShopId()); + user.setShopName(shopInfo.getShopName()); + userInfoVo.setShopName(shopInfo.getShopShortName()); } user.setSuPassword(null); String token = UUIDUtil.getRandomID(); - redisClient.saveValue(token, JSONObject.toJSONString(user), 360000); - redisClient.saveValue(user.getSuId().toString(), token, 3600000); + redisClient.saveValueForever(token, JSONObject.toJSONString(user)); + redisClient.saveValueForever(user.getSuId().toString(), token); - UserInfoVo userInfoVo = new UserInfoVo(); userInfoVo.setId(user.getSuId()); userInfoVo.setName(user.getSuName()); userInfoVo.setRoleName(user.getRoleName()); 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", saveUrl + 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