diff --git a/boot-service/src/main/java/com/xwbing/constant/CommonConstant.java b/boot-service/src/main/java/com/xwbing/constant/CommonConstant.java index 8272042..27a33f3 100644 --- a/boot-service/src/main/java/com/xwbing/constant/CommonConstant.java +++ b/boot-service/src/main/java/com/xwbing/constant/CommonConstant.java @@ -7,75 +7,34 @@ package com.xwbing.constant; * 作者: xiangwb */ public class CommonConstant { - /** - * 验证码 - */ - public static final String KEY_CAPTCHA = "captchaCode"; - /** - * 顶级 - */ - public static String ROOT = "root"; - /** - * 密码加密 - */ - public static final int SALT_SIZE = 8; - /** - * 密码加密 - */ - public static int HASH_INTERATIONS = 1024; - - /** - * 启用 - */ - public static String ISENABLE = "Y"; - /** - * 禁用 - */ - public static String ISNOTENABLE = "N"; - - /** - * 邮件服务器配置项 - */ - public static final String SYSCONFIG_EMAILCONFIGKEY = "email_config"; - - /** - * 服务器配置项 - */ - public static final String SYSCONFIG_SERVER_TOPO = "server_topo"; - - /** - * 邮箱找回密码有效时间 - */ - public static final String SYSCONFIG_LOOK_PASSWORD_TIME = "look_password_time"; - - /** - * 资源文件xml 名称 - */ - public static final String RESOURCE_XML="resource.xml"; - /** - * 资源文件 sql - */ - public static final String RESOURCE_SQL="resource.sql"; - /** - * 资源详情xml文件 - */ - public static final String RESOURCE_DETAIL_XML="resource_detail.xml"; - /** - * 导出报表文件名称 - */ - public static String USERREPORTFILENAME = "人员统计报表.xls"; /** - * 导出报表列名称 + * 验证码 */ - public static String[] USERREPORTCOLUMNS = new String[]{"线路名称","发团人数","成人","儿童","幼儿"}; - /*** - * 当前登录用户 - */ - public static final String SESSION_CURRENT_USER="CURRENT_USER"; - - /*** - * 当前登录管理员用户 - */ - public static final String SESSION_ADMIN_USER="ADMIN_USER"; + public static final String KEY_CAPTCHA = "captcha_code"; + /** + * 顶级 + */ + public static final String ROOT = "root"; + /** + * 启用 + */ + public static final String ISENABLE = "Y"; + /** + * 禁用 + */ + public static final String ISNOTENABLE = "N"; + /** + * 邮件服务器配置项 + */ + public static final String SYSCONFIG_EMAILCONFIGKEY = "email_config"; + /** + * + * 当前登录用户 + */ + public static final String SESSION_CURRENT_USER = "current_user"; + /** + * 当前登录用户id + */ + public static final String SESSION_CURRENT_USER_ID = "current_id"; } diff --git a/boot-service/src/main/java/com/xwbing/entity/SysConfig.java b/boot-service/src/main/java/com/xwbing/entity/SysConfig.java index b9f6c57..96e67f1 100644 --- a/boot-service/src/main/java/com/xwbing/entity/SysConfig.java +++ b/boot-service/src/main/java/com/xwbing/entity/SysConfig.java @@ -24,14 +24,20 @@ public class SysConfig extends BaseEntity { /** * 配置项的key */ - @NotBlank(message = "配置项的code不能为空") - @Length(min = 1, max = 50, message = "code长度为1-50") - private String code; + @NotBlank(message = "配置项的key不能为空") + @Length(min = 1, max = 50, message = "key长度为1-50") + private String key; /** * 配置项的值 */ @NotBlank(message = "配置项的value不能为空") private String value; + /** + * 配置项的描述(名称) + */ + @NotBlank(message = "配置项的name不能为空") + @Length(min = 1, max = 20, message = "value长度为1-20") + private String name; /** * 是否启用 */ @@ -39,10 +45,5 @@ public class SysConfig extends BaseEntity { @Pattern(regexp = "[Y|N]",message = "是否启用格式为Y|N") @Column(name = "is_enable") private String isEnable; - /** - * 配置项的描述(名称) - */ - @NotBlank(message = "配置项的name不能为空") - @Length(min = 1, max = 10, message = "value长度为1-10") - private String name; + } diff --git a/boot-service/src/main/java/com/xwbing/entity/SysUser.java b/boot-service/src/main/java/com/xwbing/entity/SysUser.java index 7e46ccb..cd2206c 100644 --- a/boot-service/src/main/java/com/xwbing/entity/SysUser.java +++ b/boot-service/src/main/java/com/xwbing/entity/SysUser.java @@ -22,18 +22,6 @@ import javax.validation.constraints.Pattern; public class SysUser extends BaseEntity { private static final long serialVersionUID = -2447528751353457021L; public static String table = "sys_user_info"; - /** - * 密码盐长度 - */ - public static final int SALT_SIZE = 10; - /** - * 初始默认密码长度 - */ - public static final int PWD_LENGTH = 8; - /** - * hash - */ - public static int HASH_INTERATIONS = 1024; /** * 用户名 */ diff --git a/boot-service/src/main/java/com/xwbing/repository/SysConfigRepository.java b/boot-service/src/main/java/com/xwbing/repository/SysConfigRepository.java index 1f41ea3..061cb98 100644 --- a/boot-service/src/main/java/com/xwbing/repository/SysConfigRepository.java +++ b/boot-service/src/main/java/com/xwbing/repository/SysConfigRepository.java @@ -10,5 +10,5 @@ import org.springframework.data.jpa.repository.JpaRepository; * 作者: xiangwb */ public interface SysConfigRepository extends JpaRepository { - SysConfig findByCode(String code); + SysConfig findByKey(String code); } diff --git a/boot-service/src/main/java/com/xwbing/service/SysConfigService.java b/boot-service/src/main/java/com/xwbing/service/SysConfigService.java index 00739c4..ffbbc0c 100644 --- a/boot-service/src/main/java/com/xwbing/service/SysConfigService.java +++ b/boot-service/src/main/java/com/xwbing/service/SysConfigService.java @@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; -import java.util.Objects; /** * 说明: @@ -29,15 +28,15 @@ public class SysConfigService { RestMessage result = new RestMessage(); sysConfig.setId(PassWordUtil.createId()); sysConfig.setCreateTime(new Date()); - if (Objects.isNull(sysConfig)) { + if (sysConfig==null) { throw new BusinessException("配置数据不能为空"); } - SysConfig old = findByCode(sysConfig.getCode()); - if (Objects.nonNull(old)) { - throw new BusinessException(sysConfig.getCode() + "已存在"); + SysConfig old = findByKey(sysConfig.getKey()); + if (old!=null) { + throw new BusinessException(sysConfig.getKey() + "已存在"); } SysConfig one = sysConfigRepository.save(sysConfig); - if (Objects.nonNull(one)) { + if (one!=null) { result.setSuccess(true); result.setMessage("保存配置成功"); } else { @@ -49,8 +48,8 @@ public class SysConfigService { public RestMessage removeByCode(String code) { logger.info("删除配置信息"); RestMessage result = new RestMessage(); - SysConfig old = findByCode(code); - if (Objects.isNull(old)) { + SysConfig old = findByKey(code); + if (old==null) { throw new BusinessException("该配置项不存在"); } sysConfigRepository.delete(old.getId()); @@ -59,7 +58,7 @@ public class SysConfigService { return result; } - public SysConfig findByCode(String code) { - return sysConfigRepository.findByCode(code); + public SysConfig findByKey(String key) { + return sysConfigRepository.findByKey(key); } } diff --git a/boot-service/src/main/java/com/xwbing/service/UserService.java b/boot-service/src/main/java/com/xwbing/service/UserService.java index 05239be..3c00285 100644 --- a/boot-service/src/main/java/com/xwbing/service/UserService.java +++ b/boot-service/src/main/java/com/xwbing/service/UserService.java @@ -16,7 +16,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.util.Date; import java.util.List; -import java.util.Objects; /** * 说明: @@ -53,12 +52,12 @@ public class UserService { if (one == null) { throw new BusinessException("新增用户失败"); } - SysConfig sysConfig = sysConfigService.findByCode(CommonConstant.SYSCONFIG_EMAILCONFIGKEY); - if (Objects.isNull(sysConfig)) { + SysConfig sysConfig = sysConfigService.findByKey(CommonConstant.SYSCONFIG_EMAILCONFIGKEY); + if (sysConfig==null) { throw new BusinessException("没有查找到邮件配置项"); } EmailModel emailModel = null; - if (StringUtils.isNotEmpty(sysConfig.getCode())) { + if (StringUtils.isNotEmpty(sysConfig.getKey())) { JSONObject jsonObject = JSONObject.parseObject(sysConfig.getValue()); emailModel = JSONObject.toJavaObject(jsonObject, EmailModel.class); } @@ -134,7 +133,7 @@ public class UserService { * * @return */ - public List findList() { + public List listAll() { return userRepository.findAll(); } @@ -143,12 +142,13 @@ public class UserService { * * @param newPassWord * @param oldPassWord - * @param loginUserId * @return */ - public RestMessage updatePassWord(String newPassWord, String oldPassWord, String loginUserId) { + public RestMessage updatePassWord(HttpServletRequest request,String newPassWord, String oldPassWord) { RestMessage result = new RestMessage(); - SysUser sysUser = findOne(loginUserId); + HttpSession session = request.getSession(); + String id = (String) session.getAttribute(CommonConstant.SESSION_CURRENT_USER_ID); + SysUser sysUser = findOne(id); if (sysUser == null) throw new BusinessException("该用户不存在"); boolean flag = checkPassWord(oldPassWord, sysUser.getPassword(), sysUser.getSalt()); @@ -158,7 +158,7 @@ public class UserService { sysUser.setSalt(str[1]); sysUser.setPassword(str[2]); SysUser one = userRepository.save(sysUser); - if (Objects.nonNull(one)) { + if (one!=null) { result.setMessage("更新密码成功"); result.setSuccess(true); } else { @@ -170,18 +170,18 @@ public class UserService { /** * 登录 * - * @param req + * @param request * @param userName * @param passWord - * @param ckeckCode + * @param checkCode * @return */ - public RestMessage login(HttpServletRequest req, String userName, String passWord, String ckeckCode) { + public RestMessage login(HttpServletRequest request, String userName, String passWord, String checkCode) { RestMessage restMessage = new RestMessage(); - HttpSession session = req.getSession(); + HttpSession session = request.getSession(); String imgCode = (String) session.getAttribute(CommonConstant.KEY_CAPTCHA); //验证验证码 - if (!ckeckCode.equalsIgnoreCase(imgCode) || StringUtils.isEmpty(ckeckCode)) { + if (!checkCode.equalsIgnoreCase(imgCode) ) { throw new BusinessException("验证码错误"); } //验证账号,密码 @@ -192,6 +192,7 @@ public class UserService { if (!flag) throw new BusinessException("密码错误"); session.setAttribute(CommonConstant.SESSION_CURRENT_USER, userName); + session.setAttribute(CommonConstant.SESSION_CURRENT_USER_ID, user.getId()); restMessage.setSuccess(true); restMessage.setMessage("登录成功"); return restMessage; @@ -216,16 +217,13 @@ public class UserService { * @return */ private boolean checkPassWord(String passWord, String realPassWord, String salt) { - boolean flag; // 根据密码盐值, 解码 byte[] saltByte = EncodeUtils.hexDecode(salt); byte[] hashPassword = Digests.sha1(passWord.getBytes(), saltByte, - SysUser.HASH_INTERATIONS); + PassWordUtil.HASH_INTERATIONS); // 密码 数据库中密码 String validatePassWord = EncodeUtils.hexEncode(hashPassword); //判断密码是否相同 - flag = realPassWord.equals(validatePassWord); - return flag; + return realPassWord.equals(validatePassWord); } - } diff --git a/boot-service/src/main/java/com/xwbing/util/ThreadLocalUtil.java b/boot-service/src/main/java/com/xwbing/util/ThreadLocalUtil.java new file mode 100644 index 0000000..d5f9a03 --- /dev/null +++ b/boot-service/src/main/java/com/xwbing/util/ThreadLocalUtil.java @@ -0,0 +1,6 @@ +package com.xwbing.util; + +public class ThreadLocalUtil { + + +} diff --git a/boot-service/src/main/java/com/xwbing/util/captcah/CaptchaUtil.java b/boot-service/src/main/java/com/xwbing/util/captcah/CaptchaUtil.java index eef8934..71e3d1e 100644 --- a/boot-service/src/main/java/com/xwbing/util/captcah/CaptchaUtil.java +++ b/boot-service/src/main/java/com/xwbing/util/captcah/CaptchaUtil.java @@ -102,11 +102,11 @@ public class CaptchaUtil { CaptchaUtil tool = new CaptchaUtil(); StringBuffer code = new StringBuffer(); BufferedImage image = tool.genRandomCodeImage(code); - System.out.println(">>> random code =: " + code); + System.out.println(">>> random key =: " + code); try { // 将内存中的图片通过流动形式输出到客户端 ImageIO.write(image, "JPEG", new FileOutputStream(new File( - "random-code.jpg"))); + "random-key.jpg"))); } catch (Exception e) { e.printStackTrace(); } diff --git a/boot-web/src/main/java/com/xwbing/controller/SysConfigControl.java b/boot-web/src/main/java/com/xwbing/controller/SysConfigControl.java index 18e1f0a..061d6ae 100644 --- a/boot-web/src/main/java/com/xwbing/controller/SysConfigControl.java +++ b/boot-web/src/main/java/com/xwbing/controller/SysConfigControl.java @@ -34,7 +34,7 @@ public class SysConfigControl { @ApiOperation(value = "新增", notes = "新增系统配置信息") @ApiImplicitParams({ - @ApiImplicitParam(name = "code", value = "配置项的key,长度为1-50", paramType = "query", required = true, dataType = "string"), + @ApiImplicitParam(name = "key", value = "配置项的key,长度为1-50", paramType = "query", required = true, dataType = "string"), @ApiImplicitParam(name = "value", value = "配置项的值", paramType = "query", required = true, dataType = "string"), @ApiImplicitParam(name = "isEnable", value = "是否启用,格式为Y|N", paramType = "query", required = true, dataType = "string"), @ApiImplicitParam(name = "name", value = "配置名称,长度为1-10", paramType = "query", required = true, dataType = "string") @@ -48,11 +48,11 @@ public class SysConfigControl { } @ApiOperation(value = "删除", notes = "根据code删除系统配置信息") - @ApiImplicitParam(name = "code", value = "配置项的code", paramType = "query", required = true, dataType = "string") + @ApiImplicitParam(name = "key", value = "配置项的code", paramType = "query", required = true, dataType = "string") @PostMapping("removeByCode/{code}") public JSONObject removeByCode(@PathVariable String code) { String logMsg = "删除系统配置信息"; - log.info(logMsg + " code:{}", code); + log.info(logMsg + " key:{}", code); if (StringUtils.isEmpty(code)) { return JSONObjResult.toJSONObj("code不能为空"); } @@ -61,15 +61,15 @@ public class SysConfigControl { } @ApiOperation(value = "查找", notes = "根据key查找系统配置信息") - @ApiImplicitParam(name = "code", value = "配置项的code", paramType = "query", required = true, dataType = "string") + @ApiImplicitParam(name = "key", value = "配置项的code", paramType = "query", required = true, dataType = "string") @PostMapping("findByCode") public JSONObject findByCode(@RequestParam String code) { String logMsg = "根据code查找系统配置信息"; - log.info(logMsg + " code:{}", code); + log.info(logMsg + " key:{}", code); if (StringUtils.isEmpty(code)) { return JSONObjResult.toJSONObj("code不能为空"); } - SysConfig one = sysConfigService.findByCode(code); + SysConfig one = sysConfigService.findByKey(code); if (Objects.isNull(one)) { return JSONObjResult.toJSONObj("该对象不存在"); } diff --git a/boot-web/src/main/java/com/xwbing/controller/UserControl.java b/boot-web/src/main/java/com/xwbing/controller/UserControl.java index 47a4475..801b60e 100644 --- a/boot-web/src/main/java/com/xwbing/controller/UserControl.java +++ b/boot-web/src/main/java/com/xwbing/controller/UserControl.java @@ -67,29 +67,27 @@ public class UserControl { @GetMapping("findList") public JSONObject findList() { - List list = userService.findList(); + List list = userService.listAll(); return JSONObjResult.toJSONObj(list, true, ""); } @GetMapping("login") - public JSONObject login(HttpServletRequest req, @RequestParam String userName, @RequestParam String passWord, String ckeckCode) { - if (StringUtils.isEmpty(userName)) - return JSONObjResult.toJSONObj("用户名不能为空"); - if (StringUtils.isEmpty(passWord)) - return JSONObjResult.toJSONObj("密码不能为空"); - RestMessage login = userService.login(req, userName, passWord, ckeckCode); + public JSONObject login(HttpServletRequest req, @RequestParam String userName, @RequestParam String passWord,@RequestParam String checkCode) { + if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(passWord)) + return JSONObjResult.toJSONObj("用户名或密码不能为空"); + if (StringUtils.isEmpty(checkCode) ) + return JSONObjResult.toJSONObj("请输入验证码"); + RestMessage login = userService.login(req, userName, passWord, checkCode); return JSONObjResult.toJSONObj(login); } @GetMapping("updatePassWord") - public JSONObject updatePassWord(@RequestParam String newPassWord, @RequestParam String oldPassWord, @RequestParam String loginUserId) { + public JSONObject updatePassWord(HttpServletRequest request, @RequestParam String newPassWord, @RequestParam String oldPassWord) { if (StringUtils.isEmpty(newPassWord)) return JSONObjResult.toJSONObj("新密码不能为空"); if (StringUtils.isEmpty(oldPassWord)) return JSONObjResult.toJSONObj("旧密码不能为空"); - if (StringUtils.isEmpty(newPassWord)) - return JSONObjResult.toJSONObj("用户id不能为空"); - RestMessage restMessage = userService.updatePassWord(newPassWord, oldPassWord, loginUserId); + RestMessage restMessage = userService.updatePassWord(request, newPassWord, oldPassWord); return JSONObjResult.toJSONObj(restMessage); } } diff --git a/boot-web/src/main/resources/application.yml b/boot-web/src/main/resources/application.yml index 6a6ec8d..ed6aace 100644 --- a/boot-web/src/main/resources/application.yml +++ b/boot-web/src/main/resources/application.yml @@ -2,7 +2,7 @@ server: port: 8088 session: - timeout: 30 + timeout: 60 context-path: / #spring