merge
This commit is contained in:
@@ -2,11 +2,15 @@ package com.xwbing.constant;
|
||||
|
||||
/**
|
||||
* 说明: 公共常量
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
public class CommonConstant {
|
||||
/**
|
||||
* 验证码
|
||||
*/
|
||||
public static final String KEY_CAPTCHA = "captchaCode";
|
||||
/**
|
||||
* 顶级
|
||||
*/
|
||||
|
||||
@@ -5,7 +5,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 说明: 公共枚举
|
||||
* 项目名称: zdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建日期: 2016年12月9日 上午9:50:30
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
|
||||
+2
-5
@@ -1,4 +1,4 @@
|
||||
package com.xwbing.domain;
|
||||
package com.xwbing.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.Date;
|
||||
|
||||
/**
|
||||
* 说明: 基础类
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -27,7 +27,4 @@ public class BaseEntity implements Serializable {
|
||||
private Date createTime;
|
||||
@Column(name = "modified_time")
|
||||
private Date modifiedTime;
|
||||
@Column(name = "is_deleted")
|
||||
private String isDeleted;
|
||||
private Integer sort;
|
||||
}
|
||||
+2
-16
@@ -1,17 +1,13 @@
|
||||
package com.xwbing.domain;
|
||||
package com.xwbing.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 说明: 权限
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -24,21 +20,14 @@ public class SysAuthority extends BaseEntity {
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@NotBlank(message = "name不能为空")
|
||||
@Length(min = 1, max = 10, message = "name长度为1-10")
|
||||
private String name;
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@NotBlank(message = "编号不能为空")
|
||||
@Length(min = 6, max = 50, message = "编号长度为6-50")
|
||||
private String code;
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
@NotBlank(message = "是否启用不能为空")
|
||||
@Pattern(regexp = "Y|N",message = "是否启用格式应为Y|N")
|
||||
@Column(name = "is_enable")
|
||||
private String isEnable;
|
||||
/**
|
||||
* url地址
|
||||
@@ -47,9 +36,6 @@ public class SysAuthority extends BaseEntity {
|
||||
/**
|
||||
* 父ID
|
||||
*/
|
||||
@NotBlank(message = "父ID不能为空")
|
||||
@Length(min = 6, max = 50, message = "父ID长度为6-50")
|
||||
@Column(name = "parent_id")
|
||||
private String parentId;
|
||||
/**
|
||||
* 类型 2按钮 1菜单
|
||||
+3
-4
@@ -1,4 +1,4 @@
|
||||
package com.xwbing.domain;
|
||||
package com.xwbing.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -11,7 +11,7 @@ import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 说明: 系统配置
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -36,7 +36,7 @@ public class SysConfig extends BaseEntity {
|
||||
* 是否启用
|
||||
*/
|
||||
@NotBlank(message = "是否启用不能为空")
|
||||
@Pattern(regexp = "Y|N",message = "是否启用格式为Y|N")
|
||||
@Pattern(regexp = "[Y|N]",message = "是否启用格式为Y|N")
|
||||
@Column(name = "is_enable")
|
||||
private String isEnable;
|
||||
/**
|
||||
@@ -45,5 +45,4 @@ public class SysConfig extends BaseEntity {
|
||||
@NotBlank(message = "配置项的name不能为空")
|
||||
@Length(min = 1, max = 10, message = "value长度为1-10")
|
||||
private String name;
|
||||
|
||||
}
|
||||
+2
-10
@@ -1,17 +1,14 @@
|
||||
package com.xwbing.domain;
|
||||
package com.xwbing.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 说明: 角色
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -24,19 +21,14 @@ public class SysRole extends BaseEntity {
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@NotBlank(message = "角色名称不能为空")
|
||||
private String name;
|
||||
/**
|
||||
* 角色编码
|
||||
*/
|
||||
@NotBlank(message = "角色编码不能为空")
|
||||
@Length(min = 6, max = 50, message = "长度为6-20")
|
||||
private String code;
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
@NotBlank(message = "是否启用不能为空")
|
||||
@Pattern(regexp = "Y|N",message = "是否启用格式应为Y|N")
|
||||
@Column(name = "is_enable")
|
||||
private String isEnable;
|
||||
/**
|
||||
+2
-5
@@ -1,15 +1,14 @@
|
||||
package com.xwbing.domain;
|
||||
package com.xwbing.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
|
||||
/**
|
||||
* 说明: 角色权限关系
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -22,13 +21,11 @@ public class SysRoleAuthority extends BaseEntity {
|
||||
/**
|
||||
* 角色主键
|
||||
*/
|
||||
@NotBlank(message = "角色主键不能为空")
|
||||
@Column(name = "role_id")
|
||||
private String roleId;
|
||||
/**
|
||||
* 权限主键
|
||||
*/
|
||||
@NotBlank(message = "权限主键不能为空")
|
||||
@Column(name = "authority_id")
|
||||
private String authorityId;
|
||||
}
|
||||
+4
-18
@@ -1,4 +1,4 @@
|
||||
package com.xwbing.domain;
|
||||
package com.xwbing.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -9,11 +9,10 @@ import org.hibernate.validator.constraints.NotBlank;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.validation.constraints.Pattern;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 说明: 用户
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -45,6 +44,8 @@ public class SysUser extends BaseEntity {
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@NotBlank(message = "姓名不能为空")
|
||||
@Length(min = 1, max = 20, message = "长度为1-5")
|
||||
private String name;
|
||||
/**
|
||||
* 盐值
|
||||
@@ -54,16 +55,6 @@ public class SysUser extends BaseEntity {
|
||||
* 密码
|
||||
*/
|
||||
private String password;
|
||||
/**
|
||||
* 最后登录IP
|
||||
*/
|
||||
@Column(name = "last_login_ip")
|
||||
private String lastLoginIp;
|
||||
/**
|
||||
* 最后登录时间
|
||||
*/
|
||||
@Column(name = "last_login_time")
|
||||
private Date lastLoginTime;
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
@@ -75,9 +66,4 @@ public class SysUser extends BaseEntity {
|
||||
@NotBlank
|
||||
@Pattern(regexp = "[01]", message = "性别格式为0|1,0代表女,1代表男")
|
||||
private String sex;
|
||||
/**
|
||||
* 是否管理员
|
||||
*/
|
||||
@Column(name = "is_admin")
|
||||
private String isAdmin;
|
||||
}
|
||||
+2
-5
@@ -1,15 +1,14 @@
|
||||
package com.xwbing.domain;
|
||||
package com.xwbing.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
|
||||
/**
|
||||
* 说明: 用户角色关系
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -22,13 +21,11 @@ public class SysUserRole extends BaseEntity {
|
||||
/**
|
||||
* 用户主键
|
||||
*/
|
||||
@NotBlank(message = "用户主键不能为空")
|
||||
@Column(name = "user_id")
|
||||
private String userId;
|
||||
/**
|
||||
* 角色主键
|
||||
*/
|
||||
@NotBlank(message = "角色主键不能为空")
|
||||
@Column(name = "role_id")
|
||||
private String roleId;
|
||||
}
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
package com.xwbing.domain.model;
|
||||
package com.xwbing.entity.model;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 说明: 邮箱属性
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package com.xwbing.domain.model;
|
||||
package com.xwbing.entity.model;
|
||||
|
||||
import org.hibernate.validator.constraints.Email;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
@@ -14,7 +14,7 @@ import java.util.Date;
|
||||
/**
|
||||
* 说明: hibernate validate JSR303校验框架
|
||||
* controller层新增或更新的实体前加@Valid注解
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/17 16:13
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -2,7 +2,7 @@ package com.xwbing.exception;
|
||||
|
||||
/**
|
||||
* 说明: 自定义业务异常
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
|
||||
@@ -8,7 +8,7 @@ package com.xwbing.exception;
|
||||
|
||||
/**
|
||||
* 说明: 用户系统中未登陆异常
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
|
||||
@@ -10,7 +10,7 @@ import redis.clients.jedis.JedisPoolConfig;
|
||||
|
||||
/**
|
||||
* 说明: redisConfig
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.xwbing.redis;
|
||||
|
||||
/**
|
||||
* 说明: 封装redis 缓存服务器服务接口
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.util.Set;
|
||||
|
||||
/**
|
||||
* 说明: 启动时刷新redis缓存
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package com.xwbing.repository;
|
||||
|
||||
import com.xwbing.domain.SysAuthority;
|
||||
import com.xwbing.entity.SysAuthority;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
/**
|
||||
*
|
||||
* 说明:
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
public interface AuthorityRepository extends JpaRepository<SysAuthority,String> {
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package com.xwbing.repository;
|
||||
|
||||
import com.xwbing.domain.SysRole;
|
||||
import com.xwbing.entity.SysRole;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
/**
|
||||
* Created by admin on 2017/4/11.
|
||||
* 说明:
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
public interface RoleRepository extends JpaRepository<SysRole,String> {
|
||||
}
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package com.xwbing.repository;
|
||||
|
||||
import com.xwbing.domain.SysConfig;
|
||||
import com.xwbing.entity.SysConfig;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
/**
|
||||
* 浙江卓锐科技股份有限公司 版权所有 ? Copyright 2016<br/>
|
||||
* 说明: <br/>
|
||||
* 项目名称: ${project_name} <br/>
|
||||
* 创建日期: ${date} ${time} <br/>
|
||||
* 作者: wdz
|
||||
* 说明:
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
public interface SysConfigRepository extends JpaRepository<SysConfig,String> {
|
||||
SysConfig findByCode(String code);
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.xwbing.repository;
|
||||
|
||||
import com.xwbing.domain.SysUser;
|
||||
import com.xwbing.entity.SysUser;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 说明:
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
public interface UserRepository extends JpaRepository<SysUser, String> {
|
||||
List<SysUser> findByUserName(String userName);
|
||||
|
||||
SysUser findByUserName(String name);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 说明:
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -26,10 +26,10 @@ public class BaseService<T> {
|
||||
RestMessage result=new RestMessage();
|
||||
t=jpaRepository.save(t);
|
||||
if(Objects.isNull(t)){
|
||||
result.setMsg("保存数据失败");
|
||||
result.setMessage("保存数据失败");
|
||||
}else {
|
||||
result.setSuccess(true);
|
||||
result.setMsg("保存数据成功");
|
||||
result.setMessage("保存数据成功");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -43,7 +43,7 @@ public class BaseService<T> {
|
||||
RestMessage result=new RestMessage();
|
||||
jpaRepository.delete(id);
|
||||
result.setSuccess(true);
|
||||
result.setMsg("删除数据成功");
|
||||
result.setMessage("删除数据成功");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import javax.mail.internet.MimeMessage;
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* 项目名称: sb-demo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/9/18 11:31
|
||||
* 作者: xiangwb
|
||||
* 说明: mail服务层
|
||||
@@ -43,7 +43,7 @@ public class MailService {
|
||||
message.setText(content);
|
||||
mailSender.send(message);
|
||||
restMessage.setSuccess(true);
|
||||
restMessage.setMsg("纯文本邮件已经发送");
|
||||
restMessage.setMessage("纯文本邮件已经发送");
|
||||
return restMessage;
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public class MailService {
|
||||
helper.setText(content, true);//启用html
|
||||
mailSender.send(message);
|
||||
restMessage.setSuccess(true);
|
||||
restMessage.setMsg("html邮件已经发送!");
|
||||
restMessage.setMessage("html邮件已经发送!");
|
||||
return restMessage;
|
||||
} catch (MessagingException e) {
|
||||
throw new BusinessException("发送html邮件时发生异常");
|
||||
@@ -98,7 +98,7 @@ public class MailService {
|
||||
// 可以继续添加附件。。。。。
|
||||
mailSender.send(message);//发送邮件
|
||||
restMessage.setSuccess(true);
|
||||
restMessage.setMsg("带附件的邮件已经发送!");
|
||||
restMessage.setMessage("带附件的邮件已经发送!");
|
||||
return restMessage;
|
||||
} catch (MessagingException e) {
|
||||
throw new BusinessException("发送带附件的邮件时发生异常");
|
||||
@@ -129,7 +129,7 @@ public class MailService {
|
||||
helper.addInline(rscId, res);
|
||||
mailSender.send(message);
|
||||
restMessage.setSuccess(true);
|
||||
restMessage.setMsg("嵌入静态资源的邮件已经发送!");
|
||||
restMessage.setMessage("嵌入静态资源的邮件已经发送!");
|
||||
return restMessage;
|
||||
} catch (MessagingException e) {
|
||||
throw new BusinessException("发送嵌入静态资源的邮件时发生异常!");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.xwbing.service;
|
||||
|
||||
import com.xwbing.domain.SysConfig;
|
||||
import com.xwbing.entity.SysConfig;
|
||||
import com.xwbing.exception.BusinessException;
|
||||
import com.xwbing.repository.SysConfigRepository;
|
||||
import com.xwbing.util.PassWordUtil;
|
||||
@@ -15,7 +15,7 @@ import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 说明:
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -39,9 +39,9 @@ public class SysConfigService {
|
||||
SysConfig one = sysConfigRepository.save(sysConfig);
|
||||
if (Objects.nonNull(one)) {
|
||||
result.setSuccess(true);
|
||||
result.setMsg("保存配置成功");
|
||||
result.setMessage("保存配置成功");
|
||||
} else {
|
||||
result.setMsg("保存配置失败");
|
||||
result.setMessage("保存配置失败");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -55,7 +55,7 @@ public class SysConfigService {
|
||||
}
|
||||
sysConfigRepository.delete(old.getId());
|
||||
result.setSuccess(true);
|
||||
result.setMsg("删除配置成功");
|
||||
result.setMessage("删除配置成功");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,25 +2,25 @@ package com.xwbing.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xwbing.constant.CommonConstant;
|
||||
import com.xwbing.constant.CommonEnum;
|
||||
import com.xwbing.domain.SysConfig;
|
||||
import com.xwbing.domain.SysUser;
|
||||
import com.xwbing.domain.model.EmailModel;
|
||||
import com.xwbing.entity.SysConfig;
|
||||
import com.xwbing.entity.SysUser;
|
||||
import com.xwbing.entity.model.EmailModel;
|
||||
import com.xwbing.exception.BusinessException;
|
||||
import com.xwbing.repository.UserRepository;
|
||||
import com.xwbing.util.*;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 说明:
|
||||
* 项目名称: sbdemo
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/5/5 16:44
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@@ -33,25 +33,24 @@ public class UserService {
|
||||
|
||||
/**
|
||||
* 增
|
||||
*
|
||||
* @param sysUser
|
||||
* @return
|
||||
*/
|
||||
public RestMessage save(SysUser sysUser) {
|
||||
RestMessage result = new RestMessage();
|
||||
SysUser old = findByUserName(sysUser.getUserName());
|
||||
if (Objects.nonNull(old)) {
|
||||
if (old != null) {
|
||||
throw new BusinessException("已经存在此用户名");
|
||||
}
|
||||
sysUser.setId(PassWordUtil.createId());
|
||||
sysUser.setCreateTime(new Date());
|
||||
// 设置否管理员
|
||||
sysUser.setIsAdmin(CommonEnum.YesOrNo.NO.getCode());
|
||||
// 获取初始密码
|
||||
String[] res = PassWordUtil.getUserSecret(null, null);
|
||||
sysUser.setSalt(res[1]);
|
||||
sysUser.setPassword(res[2]);
|
||||
SysUser one = userRepository.save(sysUser);
|
||||
if (Objects.isNull(one)) {
|
||||
if (one == null) {
|
||||
throw new BusinessException("新增用户失败");
|
||||
}
|
||||
SysConfig sysConfig = sysConfigService.findByCode(CommonConstant.SYSCONFIG_EMAILCONFIGKEY);
|
||||
@@ -77,18 +76,16 @@ public class UserService {
|
||||
|
||||
/**
|
||||
* 删
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public RestMessage removeById(String id) {
|
||||
RestMessage result = new RestMessage();
|
||||
SysUser old=findOne(id);
|
||||
if(Objects.isNull(old)){
|
||||
SysUser old = findOne(id);
|
||||
if (old == null) {
|
||||
throw new BusinessException("该对象不存在");
|
||||
}
|
||||
if (CommonEnum.YesOrNo.YES.getCode().equalsIgnoreCase(old.getIsAdmin())) {
|
||||
throw new BusinessException("不能对管理员进行删除操作");
|
||||
}
|
||||
userRepository.delete(id);
|
||||
result.setSuccess(true);
|
||||
return result;
|
||||
@@ -97,13 +94,14 @@ public class UserService {
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param sysUser
|
||||
* @return
|
||||
*/
|
||||
public RestMessage update(SysUser sysUser){
|
||||
RestMessage result=new RestMessage();
|
||||
SysUser old=findOne(sysUser.getId());
|
||||
if(Objects.isNull(old)){
|
||||
public RestMessage update(SysUser sysUser) {
|
||||
RestMessage result = new RestMessage();
|
||||
SysUser old = findOne(sysUser.getId());
|
||||
if (old == null) {
|
||||
throw new BusinessException("该对象不存在");
|
||||
}
|
||||
// 根据实际情况补充
|
||||
@@ -111,17 +109,19 @@ public class UserService {
|
||||
old.setMail(sysUser.getMail());
|
||||
old.setSex(sysUser.getSex());
|
||||
old.setUserName(sysUser.getUserName());
|
||||
SysUser one=userRepository.save(old);
|
||||
if(Objects.nonNull(one)){
|
||||
result.setMsg("更新用户成功");
|
||||
SysUser one = userRepository.save(old);
|
||||
if (one == null) {
|
||||
result.setMessage("更新用户成功");
|
||||
result.setSuccess(true);
|
||||
}else {
|
||||
result.setMsg("更新用户失败");
|
||||
} else {
|
||||
result.setMessage("更新用户失败");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 单个查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@@ -131,12 +131,70 @@ public class UserService {
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<SysUser> findList() {
|
||||
List<SysUser> list = null;
|
||||
list = userRepository.findAll();
|
||||
return list;
|
||||
return userRepository.findAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改密码
|
||||
*
|
||||
* @param newPassWord
|
||||
* @param oldPassWord
|
||||
* @param loginUserId
|
||||
* @return
|
||||
*/
|
||||
public RestMessage updatePassWord(String newPassWord, String oldPassWord, String loginUserId) {
|
||||
RestMessage result = new RestMessage();
|
||||
SysUser sysUser = findOne(loginUserId);
|
||||
if (sysUser == null)
|
||||
throw new BusinessException("该用户不存在");
|
||||
boolean flag = checkPassWord(oldPassWord, sysUser.getPassword(), sysUser.getSalt());
|
||||
if (!flag)
|
||||
throw new BusinessException("原密码错误,请重新输入");
|
||||
String[] str = PassWordUtil.getUserSecret(newPassWord, null);
|
||||
sysUser.setSalt(str[1]);
|
||||
sysUser.setPassword(str[2]);
|
||||
SysUser one = userRepository.save(sysUser);
|
||||
if (Objects.nonNull(one)) {
|
||||
result.setMessage("更新密码成功");
|
||||
result.setSuccess(true);
|
||||
} else {
|
||||
result.setMessage("更新密码失败");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*
|
||||
* @param req
|
||||
* @param userName
|
||||
* @param passWord
|
||||
* @param ckeckCode
|
||||
* @return
|
||||
*/
|
||||
public RestMessage login(HttpServletRequest req, String userName, String passWord, String ckeckCode) {
|
||||
RestMessage restMessage = new RestMessage();
|
||||
HttpSession session = req.getSession();
|
||||
String imgCode = (String) session.getAttribute(CommonConstant.KEY_CAPTCHA);
|
||||
//验证验证码
|
||||
if (!ckeckCode.equalsIgnoreCase(imgCode) || StringUtils.isEmpty(ckeckCode)) {
|
||||
throw new BusinessException("验证码错误");
|
||||
}
|
||||
//验证账号,密码
|
||||
SysUser user = findByUserName(userName);
|
||||
if (user == null)
|
||||
throw new BusinessException("账号错误");
|
||||
boolean flag = checkPassWord(passWord, user.getPassword(), user.getSalt());
|
||||
if (!flag)
|
||||
throw new BusinessException("密码错误");
|
||||
session.setAttribute(CommonConstant.SESSION_CURRENT_USER, userName);
|
||||
restMessage.setSuccess(true);
|
||||
restMessage.setMessage("登录成功");
|
||||
return restMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,39 +203,29 @@ public class UserService {
|
||||
* @param userName
|
||||
* @return
|
||||
*/
|
||||
public SysUser findByUserName(String userName) {
|
||||
SysUser sysUser = null;
|
||||
List<SysUser> list = userRepository.findByUserName(userName);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
sysUser = list.get(0);
|
||||
}
|
||||
return sysUser;
|
||||
private SysUser findByUserName(String userName) {
|
||||
return userRepository.findByUserName(userName);
|
||||
}
|
||||
public RestMessage updatePassWord(String newPassWord, String oldPassWord,
|
||||
String loginUserId){
|
||||
RestMessage result=new RestMessage();
|
||||
SysUser sysUser=findOne(loginUserId);
|
||||
|
||||
/**
|
||||
* 校验密码
|
||||
*
|
||||
* @param realPassWord
|
||||
* @param passWord
|
||||
* @param salt
|
||||
* @return
|
||||
*/
|
||||
private boolean checkPassWord(String passWord, String realPassWord, String salt) {
|
||||
boolean flag;
|
||||
// 根据密码盐值, 解码
|
||||
byte[] salt = EncodeUtils.hexDecode(sysUser.getSalt());
|
||||
byte[] hashPassword = Digests.sha1(oldPassWord.getBytes(), salt,
|
||||
byte[] saltByte = EncodeUtils.hexDecode(salt);
|
||||
byte[] hashPassword = Digests.sha1(passWord.getBytes(), saltByte,
|
||||
SysUser.HASH_INTERATIONS);
|
||||
// 密码 数据库中密码
|
||||
String validatePassWord = EncodeUtils.hexEncode(hashPassword);
|
||||
if (!Objects.equals(validatePassWord,sysUser.getPassword())) {// 如果不相等
|
||||
throw new BusinessException("原密码错误,请重新输入");
|
||||
}
|
||||
String[] str = PassWordUtil.getUserSecret(newPassWord, null);
|
||||
sysUser.setSalt(str[1]);
|
||||
sysUser.setPassword(str[2]);
|
||||
SysUser one=userRepository.save(sysUser);
|
||||
if(Objects.nonNull(one)){
|
||||
result.setMsg("更新密码成功");
|
||||
result.setSuccess(true);
|
||||
}else {
|
||||
result.setMsg("更新密码失败");
|
||||
}
|
||||
return result;
|
||||
|
||||
//判断密码是否相同
|
||||
flag = realPassWord.equals(validatePassWord);
|
||||
return flag;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.xwbing.util;
|
||||
|
||||
|
||||
import com.xwbing.domain.model.EmailModel;
|
||||
import com.xwbing.entity.model.EmailModel;
|
||||
import com.xwbing.exception.BusinessException;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ public class JSONObjResult {
|
||||
public static JSONObject toJSONObj(RestMessage rest) {
|
||||
JSONObjResult jsonObjResult = new JSONObjResult();
|
||||
jsonObjResult.setSuccess(rest.isSuccess());
|
||||
jsonObjResult.setMessage(rest.getMsg());
|
||||
jsonObjResult.setMessage(rest.getMessage());
|
||||
jsonObjResult.setData(JSONUtil.beanToMap(rest.getData()));
|
||||
jsonObjResult.setId(rest.getId());
|
||||
return JSON.parseObject(JSON.toJSONString(jsonObjResult, SerializerFeature.WriteMapNullValue));
|
||||
|
||||
@@ -1,73 +1,19 @@
|
||||
package com.xwbing.util;
|
||||
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
/**
|
||||
* 说明:返回消息封装类
|
||||
* 创建日期: 2017年3月3日 上午11:43:13
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@Data
|
||||
public class RestMessage implements Serializable {
|
||||
private static final long serialVersionUID = -4167591341943919542L;
|
||||
private boolean isSuccess = false;// 默认false
|
||||
private String msg;// 成功、错误返回提示信息
|
||||
private boolean success = false;// 默认false
|
||||
private String message;// 成功、错误返回提示信息
|
||||
private Object data;// 返回的数据
|
||||
private String id;// 新增、修改主鍵返回id
|
||||
private Integer code;//错误码
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public void setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public Object getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(Object data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public boolean isSuccess() {
|
||||
return isSuccess;
|
||||
}
|
||||
|
||||
public void setSuccess(boolean isSuccess) {
|
||||
this.isSuccess = isSuccess;
|
||||
}
|
||||
|
||||
public RestMessage() {
|
||||
super();
|
||||
}
|
||||
|
||||
public RestMessage(Object data) {
|
||||
super();
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public RestMessage(boolean isSuccess, Object data) {
|
||||
super();
|
||||
this.isSuccess = isSuccess;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.xwbing.util.captcah;
|
||||
|
||||
import com.xwbing.constant.CommonConstant;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -12,15 +14,10 @@ import java.io.OutputStream;
|
||||
/**
|
||||
* 说明: 创建验证码的servlet
|
||||
* 创建日期: 2016年8月29日 上午10:59:27
|
||||
* 作者: xiangwb
|
||||
* 作者: xiangwbd
|
||||
*/
|
||||
public class CaptchaServlet extends HttpServlet {
|
||||
private static final long serialVersionUID = -124247581620199710L;
|
||||
/*
|
||||
* 存放session中的值
|
||||
*/
|
||||
public static final String KEY_CAPTCHA = "SE_KEY_MM_CODE";
|
||||
|
||||
@Override
|
||||
protected void service(HttpServletRequest req, HttpServletResponse res) {
|
||||
// 设置相应类型,告诉浏览器输出的内容为图片
|
||||
@@ -34,8 +31,8 @@ public class CaptchaServlet extends HttpServlet {
|
||||
CaptchaUtil tool = new CaptchaUtil();
|
||||
StringBuffer code = new StringBuffer();
|
||||
BufferedImage image = tool.genRandomCodeImage(code);
|
||||
session.removeAttribute(KEY_CAPTCHA);
|
||||
session.setAttribute(KEY_CAPTCHA, code.toString());
|
||||
session.removeAttribute(CommonConstant.KEY_CAPTCHA);
|
||||
session.setAttribute(CommonConstant.KEY_CAPTCHA, code.toString());
|
||||
// 将内存中的图片通过流形式输出到客户端
|
||||
OutputStream out = res.getOutputStream();
|
||||
ImageIO.write(image, "JPEG", out);
|
||||
|
||||
Reference in New Issue
Block a user