From 75a2623173bcc4a235aa1f99f7ef28519186160b Mon Sep 17 00:00:00 2001 From: yanghb <yanghb> Date: 星期五, 21 四月 2023 11:24:25 +0800 Subject: [PATCH] 代码调整 --- UserTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 167 insertions(+), 9 deletions(-) diff --git a/UserTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java index 2bcee57..b202ba5 100644 --- a/UserTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java +++ b/UserTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java @@ -1,15 +1,16 @@ package com.stylefeng.guns.modular.api; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.common.constant.JwtConstants; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.UserInfo; +import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.ISmsrecordService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.service.IVerifiedService; -import com.stylefeng.guns.modular.system.util.RedisUtil; -import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.stylefeng.guns.modular.system.util.WeChatUtil; +import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.warpper.LoginWarpper; import com.stylefeng.guns.modular.system.warpper.UserInfoWarpper; import com.stylefeng.guns.modular.system.warpper.VerifiedWarpper; @@ -21,9 +22,12 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.util.*; /** * 用户控制器 @@ -48,6 +52,9 @@ @Autowired private WeChatUtil weChatUtil; + @Autowired + private IDriverService driverService; + @@ -67,6 +74,8 @@ public ResultUtil queryCaptcha(String phone, Integer type){ if(ToolUtil.isNotEmpty(phone)){ try { + phone = AESUtil.decrypt(phone);//对电话号码进行解密 + return userInfoService.queryCaptcha(phone, type); }catch (Exception e){ e.printStackTrace(); @@ -75,6 +84,41 @@ }else{ return ResultUtil.paranErr(); } + } + + + /** + * 获取图形验证码 + */ + @ResponseBody + @GetMapping("/base/getVerifyCodeUtils") + @ApiOperation(value = "获取图形验证码", tags = {"用户端-登录"}, notes = "") + @ApiImplicitParams({ + }) + public Object getVerifyCodeUtils(){ + try { + String s = VerifyCodeUtils.generateVerifyCode(4); + File file = new File("/usr/local/server/VerifyCode/" + s + ".jpg"); + if(!file.exists()){ + file.createNewFile(); + FileOutputStream out = new FileOutputStream(file); + VerifyCodeUtils.outputImage(100, 40, out, s); + file = new File("/usr/local/server/VerifyCode/" + s + ".jpg"); + FileInputStream inputStream = new FileInputStream(file); + byte[] data = new byte[inputStream.available()]; + inputStream.read(data); + inputStream.close(); + String string = Base64.getEncoder().encodeToString(data); + Map<String, Object> map = new HashMap<>(); + map.put("code", MD5AndKL.MD5(s.toLowerCase())); + map.put("img", string); + file.delete(); + return ResultUtil.success(map); + } + }catch (Exception e){ + e.printStackTrace(); + } + return ResultUtil.success(); } @@ -166,11 +210,17 @@ @ApiImplicitParams({ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "登录端口-小程序传Applets", name = "loginType", required = false, dataType = "String"), - @ApiImplicitParam(value = "登录密码", name = "password", required = true, dataType = "String") + @ApiImplicitParam(value = "登录密码", name = "password", required = true, dataType = "String"), + @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"), }) - public ResultUtil<LoginWarpper> userLogin(String phone, String password,String loginType){ + public ResultUtil<LoginWarpper> userLogin(String phone, String password,String loginType, String code){ if(ToolUtil.isNotEmpty(phone) && ToolUtil.isNotEmpty(password)){ try { + phone = AESUtil.decrypt(phone);//解密电话号码 + boolean b = userInfoService.checkCaptcha(phone, code); + if(!b){ + return ResultUtil.error("验证码无效"); + } return userInfoService.userLogin(phone, password,loginType); }catch (Exception e){ e.printStackTrace(); @@ -457,7 +507,9 @@ return ResultUtil.tokenErr(); } UserInfo userInfo = userInfoService.selectById(uid); - smsrecordService.saveData(4, userInfo.getPhone(), code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); + String phone1 = AESUtil.decrypt(userInfo.getPhone());//解密 + smsrecordService.saveData(4, phone1, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); + phone = AESUtil.decrypt(phone);//解密 boolean b = userInfoService.checkCaptcha(phone, code); Map<String, Object> map = new HashMap<>(); map.put("ok", b ? 1 : 0); @@ -698,4 +750,110 @@ return ResultUtil.runErr(); } } + + + /** + * 对数据库数据进行加密 + * @param type + * @return + */ + @ResponseBody + @PostMapping("/base/encryptedData") + public ResultUtil encryptedData(Integer type, Integer id){ + new Thread(new Runnable() { + @Override + public void run() { + System.err.println("执行加密任务开始"); + if(type == 1){//用户 + EntityWrapper<UserInfo> userInfoEntityWrapper = new EntityWrapper<>(); + if(null != id){ + userInfoEntityWrapper.eq("id", id); + } + List<UserInfo> userInfos = userInfoService.selectList(userInfoEntityWrapper); + for (UserInfo userInfo : userInfos) { + if(ToolUtil.isNotEmpty(userInfo.getPhone())){ + userInfo.setPhone(AESUtil.encrypt(userInfo.getPhone())); + } + if(ToolUtil.isNotEmpty(userInfo.getIdCard())){ + userInfo.setIdCard(AESUtil.encrypt(userInfo.getIdCard())); + } + userInfoService.updateById(userInfo); + } + }else{ + EntityWrapper<Driver> userInfoEntityWrapper = new EntityWrapper<>(); + if(null != id){ + userInfoEntityWrapper.eq("id", id); + } + List<Driver> drivers = driverService.selectList(userInfoEntityWrapper); + for (Driver driver : drivers) { + if(ToolUtil.isNotEmpty(driver.getAccount())){ + driver.setAccount(AESUtil.encrypt(driver.getAccount())); + } + if(ToolUtil.isNotEmpty(driver.getPhone())){ + driver.setPhone(AESUtil.encrypt(driver.getPhone())); + } + if(ToolUtil.isNotEmpty(driver.getIdCard())){ + driver.setIdCard(AESUtil.encrypt(driver.getIdCard())); + } + driverService.updateById(driver); + } + } + System.err.println("执行加密任务结束"); + } + }).start(); + return ResultUtil.success(); + } + + + /** + * 解密数据 + * @param type + * @return + */ + @ResponseBody + @PostMapping("/base/decryptData") + public ResultUtil decryptData(Integer type, Integer id){ + new Thread(new Runnable() { + @Override + public void run() { + System.err.println("执行解密任务开始"); + if(type == 1){//用户 + EntityWrapper<UserInfo> userInfoEntityWrapper = new EntityWrapper<>(); + if(null != id){ + userInfoEntityWrapper.eq("id", id); + } + List<UserInfo> userInfos = userInfoService.selectList(userInfoEntityWrapper); + for (UserInfo userInfo : userInfos) { + if(ToolUtil.isNotEmpty(userInfo.getPhone())){ + userInfo.setPhone(AESUtil.decrypt(userInfo.getPhone())); + } + if(ToolUtil.isNotEmpty(userInfo.getIdCard())){ + userInfo.setIdCard(AESUtil.decrypt(userInfo.getIdCard())); + } + userInfoService.updateById(userInfo); + } + }else{ + EntityWrapper<Driver> userInfoEntityWrapper = new EntityWrapper<>(); + if(null != id){ + userInfoEntityWrapper.eq("id", id); + } + List<Driver> drivers = driverService.selectList(userInfoEntityWrapper); + for (Driver driver : drivers) { + if(ToolUtil.isNotEmpty(driver.getAccount())){ + driver.setAccount(AESUtil.decrypt(driver.getAccount())); + } + if(ToolUtil.isNotEmpty(driver.getPhone())){ + driver.setPhone(AESUtil.decrypt(driver.getPhone())); + } + if(ToolUtil.isNotEmpty(driver.getIdCard())){ + driver.setIdCard(AESUtil.decrypt(driver.getIdCard())); + } + driverService.updateById(driver); + } + } + System.err.println("执行解密任务结束"); + } + }).start(); + return ResultUtil.success(); + } } -- Gitblit v1.7.1