merge
This commit is contained in:
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
|
||||
@@ -10,5 +10,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
public interface SysConfigRepository extends JpaRepository<SysConfig,String> {
|
||||
SysConfig findByCode(String code);
|
||||
SysConfig findByKey(String code);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<SysUser> findList() {
|
||||
public List<SysUser> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.xwbing.util;
|
||||
|
||||
public class ThreadLocalUtil {
|
||||
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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("该对象不存在");
|
||||
}
|
||||
|
||||
@@ -67,29 +67,27 @@ public class UserControl {
|
||||
|
||||
@GetMapping("findList")
|
||||
public JSONObject findList() {
|
||||
List<SysUser> list = userService.findList();
|
||||
List<SysUser> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
server:
|
||||
port: 8088
|
||||
session:
|
||||
timeout: 30
|
||||
timeout: 60
|
||||
context-path: /
|
||||
|
||||
#spring
|
||||
|
||||
Reference in New Issue
Block a user