Commit 1af3a5a0 by LL

Merge remote-tracking branch 'origin/dev-2.0'

# Conflicts:
#	bsoft-api/src/main/java/com/bsoft/api/mapper/SysUserMapper.java
#	bsoft-api/src/main/java/com/bsoft/api/model/SysUser.java
#	bsoft-api/src/main/resources/mapper/SysUserMapper.xml
parents 443b742b c578c466
package com.bsoft.api.common.handlers;
import com.bsoft.api.common.Result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
/**
* 全局异常处理类
*/
@ControllerAdvice
public class GlobalExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
/**
* 其他异常处理
* @param request
* @param e
* @return
*/
@ExceptionHandler(Exception.class)
@ResponseBody
public Object defaultErrorHandler(HttpServletRequest request, Exception e){
log.error("未知异常:", e.getMessage());
return Result.error();
}
}
package com.bsoft.api.controller;
import com.bsoft.api.common.Result;
import com.bsoft.api.common.annotations.CurrentUser;
import com.bsoft.api.model.SysUser;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@Api(tags = "用户API",produces="produces",consumes="consumes",protocols="protocols")
@RequestMapping("/user")
@RestController
public class UserController {
@GetMapping()
public Object user(@CurrentUser@ApiIgnore SysUser user){
return Result.success(user);
}
}
spring.profiles.active=dev
server.servlet.context-path=/api
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.bsoft.api.model
config.path.include[0]=/token
config.path.include[1]=/user/**
config.path.exclude[0]=/login
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bsoft.api.mapper.SysUserMapper">
<resultMap id="BaseResultMap" type="com.bsoft.api.model.SysUser">
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="CREATE_DATE" jdbcType="TIMESTAMP" property="createDate" />
<result column="CREATE_USERID" jdbcType="INTEGER" property="createUserid" />
<result column="STATE" jdbcType="INTEGER" property="state" />
<result column="USER_CODE" jdbcType="VARCHAR" property="userCode" />
<result column="USER_NAME" jdbcType="VARCHAR" property="userName" />
<result column="PASSWORD" jdbcType="VARCHAR" property="password" />
<result column="IDCARD" jdbcType="VARCHAR" property="idcard" />
<result column="SEX" jdbcType="VARCHAR" property="sex" />
<result column="MOBILE" jdbcType="VARCHAR" property="mobile" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from sys_user
where ID = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.bsoft.api.model.SysUser">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into sys_user (CREATE_DATE, CREATE_USERID, STATE,
USER_CODE, USER_NAME, PASSWORD,
IDCARD, SEX, MOBILE
)
values (#{createDate,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=INTEGER}, #{state,jdbcType=INTEGER},
#{userCode,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{idcard,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}
)
</insert>
<update id="updateByPrimaryKey" parameterType="com.bsoft.api.model.SysUser">
update sys_user
set CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=INTEGER},
STATE = #{state,jdbcType=INTEGER},
USER_CODE = #{userCode,jdbcType=VARCHAR},
USER_NAME = #{userName,jdbcType=VARCHAR},
PASSWORD = #{password,jdbcType=VARCHAR},
IDCARD = #{idcard,jdbcType=VARCHAR},
SEX = #{sex,jdbcType=VARCHAR},
MOBILE = #{mobile,jdbcType=VARCHAR}
where ID = #{id,jdbcType=INTEGER}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, STATE, USER_CODE, USER_NAME, PASSWORD, IDCARD,
SEX, MOBILE
from sys_user
where ID = #{id,jdbcType=INTEGER}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, STATE, USER_CODE, USER_NAME, PASSWORD, IDCARD,
SEX, MOBILE
from sys_user
</select>
<select id="selectByCode" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, STATE, USER_CODE, USER_NAME, PASSWORD, IDCARD,
SEX, MOBILE
from sys_user
where USER_CODE=#{code,jdbcType=VARCHAR}
</select>
</mapper>
\ No newline at end of file
jdbc.url=jdbc:mysql://192.168.18.55:3306/db_appointment?useUnicode=true&characterEncoding=utf8&useSSL=false&autoReconnect=true&rewriteBatchedStatements=TRUE
jdbc.username=ll
jdbc.password=123456
jdbc.driverClass=com.mysql.jdbc.Driver
\ No newline at end of file
...@@ -5,13 +5,14 @@ ...@@ -5,13 +5,14 @@
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version> <version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository --> <relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>com.bsoft</groupId> <groupId>com.hs</groupId>
<artifactId>bsoft-api</artifactId> <artifactId>hs-admin</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>bsoft-api</name> <name>hs-admin</name>
<packaging>war</packaging>
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
...@@ -35,8 +36,8 @@ ...@@ -35,8 +36,8 @@
<version>2.1.0</version> <version>2.1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.bsoft</groupId> <groupId>com.hs</groupId>
<artifactId>bsoft-common</artifactId> <artifactId>hs-common</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
...@@ -64,6 +65,24 @@ ...@@ -64,6 +65,24 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId> <artifactId>spring-boot-configuration-processor</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。
相当于compile,但是打包阶段做了exclude操作-->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
...@@ -78,7 +97,7 @@ ...@@ -78,7 +97,7 @@
<version>1.3.3</version> <version>1.3.3</version>
<configuration> <configuration>
<!--配置文件的位置--> <!--配置文件的位置-->
<configurationFile>../bsoft-api/src/test/resources/generatorConfig.xml</configurationFile> <configurationFile>../bsoft-admin/src/test/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose> <verbose>true</verbose>
<overwrite>true</overwrite> <overwrite>true</overwrite>
</configuration> </configuration>
......
package com.bsoft.api; package com.hs.admin;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
...@@ -6,12 +6,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; ...@@ -6,12 +6,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication @SpringBootApplication
@MapperScan("com.bsoft.api.mapper") @MapperScan("com.hs.admin.mapper")
@ComponentScan(basePackages = {"com.bsoft.common.config","com.bsoft.api"}) @ComponentScan(basePackages = {"com.hs.common.config", "com.hs.admin"})
public class BsoftApiApplication { public class HsAdminApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(BsoftApiApplication.class, args); SpringApplication.run(HsAdminApplication.class, args);
} }
} }
package com.hs.admin;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
//Application的类名
return application.sources(HsAdminApplication.class);
}
}
package com.bsoft.api.common; package com.hs.admin.common;
public interface Constants { public interface Constants {
String TOKEN_KEY = "Authorization"; String TOKEN_KEY = "Authorization";
......
package com.bsoft.api.common; package com.hs.admin.common;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/** /**
* 请求统一返回结果 * 请求统一返回结果
*/ */
public class Result { @ApiModel(description = "接口结果")
public class Result<T> {
@ApiModelProperty("错误编码")
private int code; private int code;
@ApiModelProperty("错误信息")
private String msg; private String msg;
private Object data; @ApiModelProperty(value = "返回的数据")
private T data;
private Result(int code, String msg, Object data) { private Result(int code,String msg,T data) {
this.code = code; this.code = code;
this.msg = msg; this.msg = msg;
this.data = data; this.data = data;
...@@ -43,35 +50,41 @@ public class Result { ...@@ -43,35 +50,41 @@ public class Result {
return data; return data;
} }
public void setData(Object data) { public void setData(T data) {
this.data = data; this.data = data;
} }
public static Result success(Object data){ public static <T> Result<T> success(T data) {
return new Result(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getEnMessage(), data); return new Result(ErrorCode.SUCCESS.getCode(),ErrorCode.SUCCESS.getEnMessage(),data);
}
public static Result error(int code,String msg) {
return new Result(code,msg,null);
} }
public static Result error(int code, String msg){ public static Result error() {
return new Result(code, msg, null); return new Result(ErrorCode.ERROR.getCode(),ErrorCode.ERROR.getEnMessage(),null);
} }
public static Result error(){ public static Result error(String msg) {
return new Result(ErrorCode.ERROR.getCode(), ErrorCode.ERROR.getEnMessage(), null); return new Result(ErrorCode.ERROR.getCode(),msg,null);
} }
public static Result error(ErrorCode errorCode){ public static Result error(ErrorCode errorCode) {
return new Result(errorCode.getCode(), errorCode.getEnMessage(), null); return new Result(errorCode.getCode(),errorCode.getEnMessage(),null);
} }
public static enum ErrorCode{
SUCCESS(1, "成功", "success"), public static enum ErrorCode {
INVALID_TOKEN(401, "无效的TOKEN", "invalid token"), SUCCESS(1,"成功","success"),
ERROR(400, "错误", "error"); INVALID_TOKEN(401,"无效的TOKEN","invalid token"),
ERROR(400,"错误","error"),
USERERROR(2,"账号或密码错误","wrong account or password");
private int code; private int code;
private String cnMessage; private String cnMessage;
private String enMessage; private String enMessage;
ErrorCode(int code, String cnMessage, String enMessage) { ErrorCode(int code,String cnMessage,String enMessage) {
this.code = code; this.code = code;
this.cnMessage = cnMessage; this.cnMessage = cnMessage;
this.enMessage = enMessage; this.enMessage = enMessage;
......
package com.bsoft.api.common.annotations; package com.hs.admin.common.annotations;
import java.lang.annotation.*; import java.lang.annotation.*;
......
package com.bsoft.api.common.annotations; package com.hs.admin.common.annotations;
import org.springframework.core.annotation.AliasFor; import org.springframework.core.annotation.AliasFor;
......
package com.hs.admin.common.aspect;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.springframework.context.annotation.Profile;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Aspect
@Component
@Order(2)
@Profile({"test","prod"})
public class RequestMappingAspect {
@Pointcut("@annotation(org.springframework.web.bind.annotation.GetMapping)")
public void getMappingAspect() {
}
@Pointcut("@annotation(org.springframework.web.bind.annotation.PostMapping)")
public void postMappingAspect() {
}
@Around("getMappingAspect()")
public Object get(ProceedingJoinPoint joinPoint) throws Throwable {
return request(joinPoint);
}
@Around("postMappingAspect()")
public Object post(ProceedingJoinPoint joinPoint) throws Throwable {
return request(joinPoint);
}
private Object request(ProceedingJoinPoint joinPoint) throws Throwable {
Date beginDate = new Date();
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
Logger logger = org.slf4j.LoggerFactory.getLogger(joinPoint.getTarget().getClass());
Object result = joinPoint.proceed();
String uri = request.getRequestURI();
Object[] params = joinPoint.getArgs();
List<Object> paramsList = Arrays.asList(params);
Date endDate = new Date();
logger.debug("执行时间:" +
(endDate.getTime() - beginDate.getTime())
+ ",URL:" + uri + "入参参数:" + paramsList + "返回结果:" + result);
return result;
}
}
package com.bsoft.api.common.aspect; package com.hs.admin.common.aspect;
import com.bsoft.api.common.Constants; import com.hs.admin.common.Constants;
import com.bsoft.api.common.exceptions.InvalidTokenException; import com.hs.admin.common.exceptions.InvalidTokenException;
import com.bsoft.api.common.utils.StringUtil; import com.hs.admin.common.utils.TokenUtil;
import com.bsoft.api.common.utils.TokenUtil; import com.hs.common.utils.StringUtil;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.springframework.context.annotation.Profile;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
...@@ -19,13 +20,15 @@ import javax.servlet.http.HttpServletRequest; ...@@ -19,13 +20,15 @@ import javax.servlet.http.HttpServletRequest;
@Aspect @Aspect
@Component @Component
@Order(1) @Order(1)
@Profile({"dev","test","prod"})
public class TokenAspect { public class TokenAspect {
@Pointcut("@annotation(com.bsoft.api.common.annotations.Token)") @Pointcut("@annotation(com.hs.admin.common.annotations.Token)")
public void tokenAspect(){} public void tokenAspect() {
}
@Around("tokenAspect()") @Around("tokenAspect()")
public Object verifierToken(ProceedingJoinPoint joinPoint) throws Throwable { public Object verifierToken(ProceedingJoinPoint joinPoint) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader(Constants.TOKEN_KEY); String token = request.getHeader(Constants.TOKEN_KEY);
if(!StringUtil.isNullOrEmpty(token) && TokenUtil.checkToken(token)){ if(!StringUtil.isNullOrEmpty(token) && TokenUtil.checkToken(token)){
......
package com.hs.admin.common.base;
public class RequestResult {
Integer code;
String msg;
Object data;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
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 RequestResult(Integer code,String msg,Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
}
package com.bsoft.api.common.configurations; package com.hs.admin.common.configurations;
import com.bsoft.api.common.resolvers.CurrentUserMethodArgumentResolver; import com.hs.admin.common.resolvers.CurrentUserMethodArgumentResolver;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.HandlerMethodArgumentResolver;
...@@ -11,12 +11,12 @@ import java.util.List; ...@@ -11,12 +11,12 @@ import java.util.List;
@Configuration @Configuration
public class CurrentUserConfigure implements WebMvcConfigurer { public class CurrentUserConfigure implements WebMvcConfigurer {
@Override @Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers){ public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(currentUserMethodArgumentResolver()); resolvers.add(currentUserMethodArgumentResolver());
} }
@Bean @Bean
public CurrentUserMethodArgumentResolver currentUserMethodArgumentResolver(){ public CurrentUserMethodArgumentResolver currentUserMethodArgumentResolver() {
return new CurrentUserMethodArgumentResolver(); return new CurrentUserMethodArgumentResolver();
} }
} }
package com.bsoft.api.common.configurations; package com.hs.admin.common.configurations;
import com.bsoft.api.common.intercepters.LoginIntercepter; import com.hs.admin.common.intercepters.LoginInterceptor;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -38,7 +38,7 @@ public class LoginConfigure implements WebMvcConfigurer { ...@@ -38,7 +38,7 @@ public class LoginConfigure implements WebMvcConfigurer {
} }
@Bean @Bean
public LoginIntercepter loginIntercepter(){ public LoginInterceptor loginIntercepter() {
return new LoginIntercepter(); return new LoginInterceptor();
} }
} }
package com.hs.admin.common.enums;
public enum RequestResultType {
SUCCESS(1,"成功"),
FAILURE(0,"失败");
private int value;
private String desc;
RequestResultType(int value,String desc) {
this.value = value;
this.desc = desc;
}
public int getValue() {
return value;
}
public String getDesc() {
return desc;
}
}
package com.hs.admin.common.enums;
public enum StateType {
ON(1,"启用"),
OFF(0,"禁用");
private int value;
private String desc;
StateType(int value,String desc) {
this.value = value;
this.desc = desc;
}
public int getValue() {
return value;
}
public String getDesc() {
return desc;
}
}
package com.hs.admin.common.exceptions;
public class DBConfigurationError extends ExceptionBase {
public DBConfigurationError(String message) {
super(message);
}
}
package com.bsoft.api.common.exceptions; package com.hs.admin.common.exceptions;
public class ExceptionBase extends RuntimeException { public class ExceptionBase extends RuntimeException {
public ExceptionBase(){ public ExceptionBase() {
super(); super();
} }
public ExceptionBase(String message){ public ExceptionBase(String message) {
super(message); super(message);
} }
} }
package com.bsoft.api.common.exceptions; package com.hs.admin.common.exceptions;
public class InvalidTokenException extends ExceptionBase { public class InvalidTokenException extends ExceptionBase {
public InvalidTokenException(){ public InvalidTokenException() {
super(); super();
} }
public InvalidTokenException(String message){
public InvalidTokenException(String message) {
super(message); super(message);
} }
} }
package com.hs.admin.common.handlers;
import com.hs.admin.common.Result;
import com.hs.admin.common.exceptions.DBConfigurationError;
import com.hs.admin.common.exceptions.ExceptionBase;
import com.hs.admin.common.exceptions.InvalidTokenException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 全局异常处理类
*/
@ControllerAdvice
public class GlobalExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
/**
* 其他异常处理
*
* @param request
* @param e
* @return
*/
@ExceptionHandler(Exception.class)
@ResponseBody
public Object defaultErrorHandler(HttpServletRequest request,Exception e) {
String url = request.getRequestURI();
log.error(url + "请求未知异常:" + e.getMessage(),e);
return Result.error();
}
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public Object MethodArgumentNotValidErrorHandler(HttpServletRequest request,MethodArgumentNotValidException e) {
String url = request.getRequestURI();
BindingResult bindingResult = e.getBindingResult();
List<ObjectError> allErrors = bindingResult.getAllErrors();
StringBuilder errorStrBu = new StringBuilder();
allErrors.forEach(objectError -> {
FieldError fieldError = (FieldError)objectError;
errorStrBu.append(fieldError.getDefaultMessage());
errorStrBu.append(",");
});
String errorStr = errorStrBu.toString();
log.error(url + "请求未知异常:" + e.getMessage(),e);
return Result.error(errorStr.substring(0,errorStr.length() - 1));
}
/**
* 其他内部异常
*
* @param request
* @param e
* @return
*/
@ExceptionHandler(ExceptionBase.class)
@ResponseBody
public Object BaseErrorHandler(HttpServletRequest request,Exception e) {
String url = request.getRequestURI();
log.error(url + "请求未知异常:" + e.getMessage(),e);
return Result.error();
}
@ExceptionHandler(DBConfigurationError.class)
@ResponseBody
public Object DBConfigurationErrorHandler(HttpServletRequest request,Exception e) {
String url = request.getRequestURI();
log.error(url + "请求未知异常:" + e.getMessage(),e);
return Result.error(400,e.getMessage());
}
/**
* 无效token
*
* @param request
* @param e
* @return
*/
@ExceptionHandler(InvalidTokenException.class)
@ResponseBody
public Object InvalidTokenExceptionHandler(HttpServletRequest request,Exception e) {
String url = request.getRequestURI();
log.error(url + "请求未知异常:" + e.getMessage(),e);
return Result.error(Result.ErrorCode.INVALID_TOKEN);
}
}
package com.bsoft.api.common.intercepters; package com.hs.admin.common.intercepters;
import com.bsoft.api.common.Constants; import com.hs.admin.common.Constants;
import com.bsoft.api.common.Result; import com.hs.admin.common.Result;
import com.bsoft.api.common.utils.TokenUtil; import com.hs.admin.common.utils.TokenUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
...@@ -12,27 +12,28 @@ import javax.servlet.http.HttpServletResponse; ...@@ -12,27 +12,28 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
public class LoginIntercepter implements HandlerInterceptor { public class LoginInterceptor implements HandlerInterceptor {
Logger logger = org.slf4j.LoggerFactory.getLogger(LoginIntercepter.class); Logger logger = org.slf4j.LoggerFactory.getLogger(LoginInterceptor.class);
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception {
System.out.println("LoginIntercepter----------->preHandle"); System.out.println("LoginInterceptor----------->preHandle");
String token = request.getHeader(Constants.TOKEN_KEY); String token = request.getHeader(Constants.TOKEN_KEY);
if(!TokenUtil.checkToken(token)){ if(!TokenUtil.checkToken(token)){
response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8"); response.setContentType("application/json; charset=utf-8");
PrintWriter writer = null; PrintWriter writer = null;
try { try{
String remoteHost = request.getRemoteHost(); String remoteHost = request.getRemoteHost();
String uri = request.getRequestURI(); String uri = request.getRequestURI();
logger.info(remoteHost + " 访问 " + uri + ", token无效, token:[" + token + "]"); logger.info(remoteHost + " 访问 " + uri + ", token无效, token:[" + token + "]");
writer = response.getWriter(); writer = response.getWriter();
writer.print(Result.error(Result.ErrorCode.INVALID_TOKEN)); writer.print(Result.error(Result.ErrorCode.INVALID_TOKEN));
}catch (IOException e){ }catch(IOException e){
logger.error(e.getMessage()); logger.error(e.getMessage());
}finally { }finally{
if(writer != null){ if(writer != null){
writer.close(); writer.close();
} }
...@@ -40,24 +41,23 @@ public class LoginIntercepter implements HandlerInterceptor { ...@@ -40,24 +41,23 @@ public class LoginIntercepter implements HandlerInterceptor {
return false; return false;
} }
return HandlerInterceptor.super.preHandle(request, response, handler); return HandlerInterceptor.super.preHandle(request,response,handler);
} }
@Override @Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { public void postHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView modelAndView) throws Exception {
System.out.println("LoginIntercepter----------->postHandle"); System.out.println("LoginInterceptor----------->postHandle");
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView); HandlerInterceptor.super.postHandle(request,response,handler,modelAndView);
} }
@Override @Override
public void afterCompletion(HttpServletRequest request, public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) throws Exception { HttpServletResponse response,Object handler,Exception ex) throws Exception {
System.out.println("LoginIntercepter------->afterCompletion"); System.out.println("LoginInterceptor------->afterCompletion");
HandlerInterceptor.super.afterCompletion(request, response, handler, ex); HandlerInterceptor.super.afterCompletion(request,response,handler,ex);
} }
} }
package com.bsoft.api.common.resolvers; package com.hs.admin.common.resolvers;
import com.bsoft.api.common.Constants; import com.hs.admin.common.Constants;
import com.bsoft.api.common.annotations.CurrentUser; import com.hs.admin.common.annotations.CurrentUser;
import com.bsoft.api.common.utils.TokenUtil; import com.hs.admin.common.utils.TokenUtil;
import com.bsoft.api.model.SysUser; import com.hs.admin.model.SysUser;
import com.bsoft.common.utils.RedisUtil; import com.hs.common.utils.RedisUtil;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.context.request.NativeWebRequest;
...@@ -18,11 +18,12 @@ public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentR ...@@ -18,11 +18,12 @@ public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentR
} }
@Override @Override
public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer, public Object resolveArgument(MethodParameter methodParameter,ModelAndViewContainer modelAndViewContainer,
NativeWebRequest nativeWebRequest, WebDataBinderFactory webDataBinderFactory) { NativeWebRequest nativeWebRequest,WebDataBinderFactory webDataBinderFactory) {
String token = nativeWebRequest.getHeader(Constants.TOKEN_KEY); String token = nativeWebRequest.getHeader(Constants.TOKEN_KEY);
if(TokenUtil.checkToken(token)){ if(TokenUtil.checkToken(token)){
return RedisUtil.get(token); SysUser user = (SysUser)RedisUtil.get(token);
return user.getId();
} }
return null; return null;
} }
......
package com.hs.admin.common.utils;
public class SqlUtil {
public static String TransactSQLInjection(String str) {
return str.replaceAll(".*([';]+|(--)+).*"," ");
}
}
package com.hs.admin.common.utils;
import com.hs.admin.model.SysUser;
import com.hs.common.utils.JWTUtil;
import com.hs.common.utils.RedisUtil;
public class TokenUtil {
public final static long TOKEN_TIME_OUT = 72L * 60 * 60;
public final static long OLD_TOKEN_DURATION = 5L * 60;
/**
* 获取token,并将token存入redis
*
* @param secret 密码
* @param user 用户信息
* @return token
*/
public static String getToken(String secret,SysUser user) {
String time = String.valueOf(System.currentTimeMillis());
String token = JWTUtil.create(secret,time,String.valueOf(user.getId()));
RedisUtil.set(token,user,TOKEN_TIME_OUT);
return token;
}
/**
* 刷新token,并将旧token设置过期时间为5分钟
*
* @param oldToken 旧的token
* @return 新的token
*/
public static String refresh(String oldToken) {
String token = null;
SysUser user = (SysUser)RedisUtil.get(oldToken);
if(checkToken(oldToken)){
RedisUtil.expire(oldToken,OLD_TOKEN_DURATION);
token = getToken(user.getPassword(),user);
}
return token;
}
/**
* 校验token
*
* @param token token
* @return 返回校验结果
*/
public static boolean checkToken(String token) {
SysUser user = (SysUser)RedisUtil.get(token);
boolean result = user != null && JWTUtil.verifier(token,user.getPassword());
if(result){
RedisUtil.expire(token,TOKEN_TIME_OUT);
}
return result;
}
}
package com.bsoft.api.controller; package com.hs.admin.controller;
import com.bsoft.api.common.Result; import com.hs.admin.common.Result;
import com.bsoft.api.service.LoginService; import com.hs.admin.model.reqmodel.CodeAndPwd;
import io.swagger.annotations.*; import com.hs.admin.service.LoginService;
import com.hs.common.utils.HttpUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
@RestController @RestController
@RequestMapping() @RequestMapping()
...@@ -21,18 +25,20 @@ public class LoginController { ...@@ -21,18 +25,20 @@ public class LoginController {
private LoginService loginServiceImpl; private LoginService loginServiceImpl;
@PostMapping("login") @PostMapping("login")
@ApiOperation("登录") @ApiOperation(value = "Result«LoginService.LoginInfo»登录")
@ApiImplicitParams({ public Result<LoginService.LoginInfo> login(@Valid @RequestBody CodeAndPwd codeAndPwd,HttpServletRequest request) {
@ApiImplicitParam(value = "登录名", name="loginName", required=true,paramType="query"), String ip = HttpUtil.getIP(request);
@ApiImplicitParam(value = "密码", name="password", required = true,paramType="query")}) LoginService.LoginInfo loginInfo = loginServiceImpl.login(
public Object login(String loginName, String password){ codeAndPwd.getLoginName(),codeAndPwd.getPassword(),ip);
LoginService.LoginInfo loginInfo = loginServiceImpl.login(loginName, password); if(loginInfo.getUser() == null){
return Result.error(Result.ErrorCode.USERERROR);
}
return Result.success(loginInfo); return Result.success(loginInfo);
} }
@GetMapping("token") @PostMapping("token")
@ApiOperation("刷新TOKEN") @ApiOperation("刷新TOKEN")
public Object refresh(@ApiIgnore HttpServletRequest request){ public Result<String> refresh(@ApiIgnore HttpServletRequest request) {
String oldToken = request.getHeader("Authorization"); String oldToken = request.getHeader("Authorization");
String token = loginServiceImpl.refreshToken(oldToken); String token = loginServiceImpl.refreshToken(oldToken);
return Result.success(token); return Result.success(token);
......
package com.hs.admin.controller;
import com.hs.admin.common.Result;
import com.hs.admin.common.annotations.CurrentUser;
import com.hs.admin.common.annotations.Token;
import com.hs.admin.model.SysMenu;
import com.hs.admin.model.reqmodel.MenuReq;
import com.hs.admin.model.respmodel.SysMenuList;
import com.hs.admin.model.respmodel.SysRoleMenuRsList;
import com.hs.admin.model.respmodel.SysUserMenuRsList;
import com.hs.admin.service.SysMenuService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
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 springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.List;
@Api(tags = "菜单API", produces = "produces", consumes = "consumes", protocols = "protocols")
@RequestMapping("/menu")
@RestController
public class MenuController {
@Autowired
private SysMenuService sysMenuService;
@PostMapping("parentall")
@Token
@ApiOperation("查询菜单列表及其子级列表")
public Object getParentAll(@RequestBody MenuReq.GetMenuReq menu) throws Exception {
List<SysMenuList> list = sysMenuService.getParentAll(menu);
return Result.success(list);
}
@PostMapping("all")
@Token
@ApiOperation("查询菜单列表")
public Object getAll() throws Exception {
List<SysMenu> list = sysMenuService.getAll();
return Result.success(list);
}
@PostMapping("info")
@Token
@ApiOperation("查询菜单详细信息")
public Object getById(@RequestBody MenuReq.InfoMenuReq menu) throws Exception {
SysMenu info = sysMenuService.info(menu);
return Result.success(info);
}
@PostMapping("add")
@Token
@ApiOperation("添加菜单")
public Object addUser(@ApiIgnore @CurrentUser Integer userId,@Valid @RequestBody MenuReq.AddMenuReq menu) throws Exception {
boolean result = sysMenuService.addMenu(Long.valueOf(userId),menu);
if(result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("delete")
@Token
@ApiOperation("删除菜单")
public Object addUser(@RequestBody MenuReq.DeleteMenuReq menu) throws Exception {
boolean result = sysMenuService.deleteMenu(menu);
if(result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("update")
@Token
@ApiOperation("修改菜单")
public Object addUser(@Valid @RequestBody MenuReq.UpdateMenuReq menu) throws Exception {
boolean result = sysMenuService.updateMenu(menu);
if(result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("usermenu")
@Token
@ApiOperation("查询用户菜单")
public Object getUserMenu(@RequestBody MenuReq.GetUserMenuReq menu) throws Exception {
List<SysUserMenuRsList> list = sysMenuService.getUserMenu(menu.getUserId());
return Result.success(list);
}
@PostMapping("saveusermenu")
@Token
@ApiOperation("保存用户菜单")
public Object saveUserMenu(@ApiIgnore @CurrentUser Integer userId,@RequestBody MenuReq.SaveUserMenuReq menu) throws Exception {
boolean result = sysMenuService.saveUserMenu(Long.valueOf(userId),menu);
if(result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("rolemenu")
@Token
@ApiOperation("查询角色菜单")
public Object getRoleMenu(@RequestBody MenuReq.GetRoleMenuReq menu) throws Exception {
List<SysRoleMenuRsList> list = sysMenuService.getRoleMenu(menu.getRoleId());
return Result.success(list);
}
@PostMapping("saverolemenu")
@Token
@ApiOperation("保存角色菜单")
public Object saveRoleMenu(@ApiIgnore @CurrentUser Integer userId,@RequestBody MenuReq.SaveRoleMenuReq menu) throws Exception {
boolean result = sysMenuService.saveRoleMenu(Long.valueOf(userId),menu);
if(result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("updateSort")
@Token
@ApiOperation("修改排序")
public Object updateSort(@ApiIgnore @CurrentUser Integer userId,@RequestBody MenuReq.UpdateSortReq menu) throws Exception {
boolean result = sysMenuService.updateSort(Long.valueOf(userId),menu);
if(result)
return Result.success(null);
else
return Result.error();
}
}
package com.hs.admin.controller;
import com.hs.admin.common.Result;
import com.hs.admin.common.annotations.CurrentUser;
import com.hs.admin.common.annotations.Token;
import com.hs.admin.model.DicOrg;
import com.hs.admin.model.reqmodel.OrgReq;
import com.hs.admin.model.respmodel.DicOrgList;
import com.hs.admin.model.respmodel.SysUserOrgRsList;
import com.hs.admin.service.DicOrgService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
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 springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.List;
@Api(tags = "机构API", produces = "produces", consumes = "consumes", protocols = "protocols")
@RequestMapping("/org")
@RestController
public class OrgController {
@Autowired
private DicOrgService dicOrgService;
@PostMapping("parentall")
@Token
@ApiOperation("查询机构列表")
public Object getParentAll(@RequestBody OrgReq.GetOrgReq org) throws Exception {
List<DicOrgList> list = dicOrgService.getParentAll(org);
return Result.success(list);
}
@PostMapping("all")
@Token
@ApiOperation("查询机构列表")
public Object getAll() {
List<DicOrg> list = dicOrgService.getAll();
return Result.success(list);
}
@PostMapping("info")
@Token
@ApiOperation("查询机构详细信息")
public Object getById(@RequestBody OrgReq.InfoOrgReq org) throws Exception {
DicOrg info = dicOrgService.info(org.getOrgId());
return Result.success(info);
}
@PostMapping("add")
@Token
@ApiOperation("添加机构")
public Object addOrg(@ApiIgnore @CurrentUser Integer userId, @Valid @RequestBody OrgReq.AddOrgReq org) throws Exception {
DicOrg sysRole = dicOrgService.getByName(org.getOrgName());
if (sysRole != null) {
return Result.error("该机构已存在!");
}
boolean result = dicOrgService.addOrg(userId, org);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("delete")
@Token
@ApiOperation("删除机构")
public Object deleteOrg(@RequestBody OrgReq.DeleteOrgReq org) throws Exception {
boolean result = dicOrgService.deleteOrg(org);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("update")
@Token
@ApiOperation("修改机构")
public Object updateOrg(@Valid @RequestBody OrgReq.UpdateOrgReq org) throws Exception {
DicOrg reqDic = dicOrgService.info(org.getOrgId());
DicOrg nameRole = dicOrgService.getByName(org.getOrgName());
if (reqDic != null) {
if (nameRole != null && !nameRole.getOrgName().equals(reqDic.getOrgName())) {
return Result.error("该机构已存在");
}
}
boolean result = dicOrgService.updateOrg(org);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("userorg")
@Token
@ApiOperation("查询用户机构")
public Object getUserOrg(@RequestBody OrgReq.GetUserOrgReq org) throws Exception {
List<SysUserOrgRsList> list = dicOrgService.getUserOrg(org.getUserId());
return Result.success(list);
}
@PostMapping("saveuserorg")
@Token
@ApiOperation("保存用户机构")
public Object saveUserOrg(@ApiIgnore @CurrentUser Integer loginUserId, @RequestBody OrgReq.SaveUserOrgReq org) throws Exception {
boolean result = dicOrgService.saveUserOrg(Long.valueOf(loginUserId), org.getUserId(), org.getOrg());
if (result)
return Result.success(null);
else
return Result.error();
}
}
package com.hs.admin.controller;
import com.hs.admin.common.Result;
import com.hs.admin.common.annotations.CurrentUser;
import com.hs.admin.common.annotations.Token;
import com.hs.admin.model.SysRole;
import com.hs.admin.model.reqmodel.RoleReq;
import com.hs.admin.service.SysRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
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 springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.List;
@Api(tags = "角色API", produces = "produces", consumes = "consumes", protocols = "protocols")
@RequestMapping("/role")
@RestController
public class RoleController {
@Autowired
private SysRoleService sysRoleService;
@PostMapping("all")
@Token
@ApiOperation("查询角色列表")
public Object getAll(@Valid @RequestBody RoleReq.GetRoleReq role) throws Exception {
List<SysRole> list = sysRoleService.getAll(role);
return Result.success(list);
}
@PostMapping("info")
@Token
@ApiOperation("查询角色详细信息")
public Object getById(@RequestBody RoleReq.InfoRoleReq role) throws Exception {
SysRole info = sysRoleService.info(role.getRoleId());
return Result.success(info);
}
@PostMapping("add")
@Token
@ApiOperation("添加角色")
public Object addUser(@ApiIgnore @CurrentUser Integer userId, @Valid @RequestBody RoleReq.AddRoleReq role) throws Exception {
SysRole sysRole = sysRoleService.findByCode(role.getRoleCode());
if (sysRole != null) {
return Result.error("该角色已存在!");
}
boolean result = sysRoleService.addRole(Long.valueOf(userId), role);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("delete")
@Token
@ApiOperation("删除角色")
public Object addUser(@RequestBody RoleReq.DeleteRoleReq role) throws Exception {
boolean result = sysRoleService.deleteRole(role);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("update")
@Token
@ApiOperation("修改角色")
public Object addUser(@Valid @RequestBody RoleReq.UpdateRoleReq role) throws Exception {
SysRole reqRole = sysRoleService.info(role.getRoleId());
SysRole codeRole = sysRoleService.findByCode(role.getRoleCode());
if (reqRole != null) {
if (codeRole != null && !codeRole.getRoleCode().equals(reqRole.getRoleCode())) {
return Result.error("该角色已存在");
}
}
boolean result = sysRoleService.updateRole(role);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("saveuserole")
@Token
@ApiOperation("保存用户角色")
public Object saveUserOrg(@ApiIgnore @CurrentUser Integer userId, @RequestBody RoleReq.SavaUserRoleReq role) throws Exception {
boolean result = sysRoleService.saveUserRole(Long.valueOf(userId), role.getUserId(), role.getRoleId());
if (result)
return Result.success(null);
else
return Result.error();
}
}
package com.hs.admin.controller;
import com.hs.admin.common.Result;
import com.hs.admin.common.annotations.CurrentUser;
import com.hs.admin.common.annotations.Token;
import com.hs.admin.model.SysRole;
import com.hs.admin.model.SysUser;
import com.hs.admin.model.reqmodel.AddUserReq;
import com.hs.admin.model.reqmodel.UpdateUserReq;
import com.hs.admin.model.reqmodel.UserReq;
import com.hs.admin.model.respmodel.SysMenuList;
import com.hs.admin.model.respmodel.SysUserList;
import com.hs.admin.service.SysMenuService;
import com.hs.admin.service.SysUserRoleRsService;
import com.hs.admin.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
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 springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.List;
@Api(tags = "用户API", produces = "produces", consumes = "consumes", protocols = "protocols")
@RequestMapping("/user")
@RestController
public class UserController {
@Autowired
private UserService userService;
@Autowired
private SysUserRoleRsService sysUserRoleRsService;
@Autowired
private SysMenuService sysMenuService;
@PostMapping("all")
@Token
@ApiOperation("查询用户列表")
public Object getAll(@RequestBody UserReq.GetUserReq user) throws Exception {
List<SysUserList> list = userService.getAll(user);
return Result.success(list);
}
@PostMapping("info")
@Token
@ApiOperation("查询用户详细信息")
public Object getById(@RequestBody UserReq.InfoUserReq user) throws Exception {
SysUserList info = userService.info(user.getUserId());
return Result.success(info);
}
@PostMapping("add")
@Token
@ApiOperation("添加用户")
public Object addUser(@ApiIgnore @CurrentUser Integer userId, @Valid @RequestBody AddUserReq user) throws Exception {
SysUser sysUser = userService.findByLoginName(user.getUserCode());
if (sysUser != null) {
return Result.error("该账号已存在!");
}
boolean result = userService.addUser(Long.valueOf(userId), user);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("delete")
@Token
@ApiOperation("删除用户")
public Object deleteUser(@RequestBody UserReq.DeleteUserReq user) throws Exception {
boolean result = userService.deleteUser(user);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("update")
@Token
@ApiOperation("修改用户")
public Object updateUser(@Valid @RequestBody UpdateUserReq user) throws Exception {
SysUserList reqUser = userService.info(user.getUserId());
SysUser codeUser = userService.findByLoginName(user.getUserCode());
if (reqUser != null) {
if (codeUser != null && !codeUser.getUserCode().equals(reqUser.getUserCode())) {
return Result.error("该用户已存在");
}
}
boolean result = userService.updateUser(user);
if (result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("roles")
@Token
@ApiOperation("查询用户角色")
public Object getRoleListByUser(@RequestBody UserReq.InfoUserReq user) throws Exception {
List<SysRole> sysRoleList = sysUserRoleRsService.getRoleListByUser(user.getUserId());
return Result.success(sysRoleList);
}
@PostMapping("menus")
@Token
@ApiOperation("查询用户菜单")
public Object getMenuByUser(@RequestBody UserReq.InfoUserReq user) throws Exception {
List<SysMenuList> sysMenuList = sysMenuService.getMenu(user.getUserId());
return Result.success(sysMenuList);
}
}
package com.hs.admin.mapper;
import com.hs.admin.model.DicOrg;
import com.hs.admin.model.respmodel.DicOrgList;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DicOrgMapper {
int deleteByPrimaryKey(Integer id);
int insert(DicOrg record);
DicOrg selectByPrimaryKey(Integer id);
List<DicOrg> selectAll();
int updateByPrimaryKey(DicOrg record);
List<DicOrgList> selectParentAll();
List<DicOrg> selectByUser(@Param("userId") Integer userId);
DicOrg selectByName(@Param("orgName") String orgName);
}
\ No newline at end of file
package com.hs.admin.mapper;
import com.hs.admin.model.SysMenu;
import com.hs.admin.model.respmodel.SysMenuList;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysMenuMapper {
int deleteByPrimaryKey(Integer id);
int insert(SysMenu record);
SysMenu selectByPrimaryKey(Integer id);
List<SysMenu> selectAll();
int updateByPrimaryKey(SysMenu record);
List<SysMenuList> selectMenuAllByUser(Integer userId);
List<SysMenuList> selectMenuByRole(Integer userId);
List<SysMenuList> selectParentAll();
Integer selectMaxSort(@Param("parentId") Long parentId);
}
\ No newline at end of file
package com.hs.admin.mapper;
import com.hs.admin.model.SysRole;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysRoleMapper {
int deleteByPrimaryKey(Integer id);
int insert(SysRole record);
SysRole selectByPrimaryKey(Integer id);
List<SysRole> selectAll();
int updateByPrimaryKey(SysRole record);
List<SysRole> selectRoleByUser(Integer userId);
SysRole selectByCode(@Param("roleCode") Long roleCode);
}
\ No newline at end of file
package com.hs.admin.mapper;
import com.hs.admin.model.SysRoleMenuRs;
import com.hs.admin.model.respmodel.SysRoleMenuRsList;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysRoleMenuRsMapper {
int deleteByPrimaryKey(Integer id);
int insert(SysRoleMenuRs record);
SysRoleMenuRs selectByPrimaryKey(Integer id);
List<SysRoleMenuRs> selectAll();
int updateByPrimaryKey(SysRoleMenuRs record);
List<SysRoleMenuRsList> selectByRole(@Param("roleId") Integer roleId);
int deleteAllByRole(@Param("roleId") Long roleId);
SysRoleMenuRs selectByUserWithRole(@Param("roleId") Long roleId,@Param("menuId") Long menuId);
}
\ No newline at end of file
package com.bsoft.api.mapper; package com.hs.admin.mapper;
import com.hs.admin.model.SysUser;
import com.hs.admin.model.respmodel.SysUserList;
import org.apache.ibatis.annotations.Param;
import com.bsoft.api.model.SysUser;
import java.util.List; import java.util.List;
public interface SysUserMapper { public interface SysUserMapper {
...@@ -14,5 +17,9 @@ public interface SysUserMapper { ...@@ -14,5 +17,9 @@ public interface SysUserMapper {
int updateByPrimaryKey(SysUser record); int updateByPrimaryKey(SysUser record);
SysUser selectByCode(String code); SysUser selectByCode(@Param("userCode") String loginName);
List<SysUserList> selectUserList();
SysUserList selectUserById(@Param("id") Integer id);
} }
\ No newline at end of file
package com.hs.admin.mapper;
import com.hs.admin.model.SysUserMenuRs;
import com.hs.admin.model.respmodel.SysUserMenuRsList;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysUserMenuRsMapper {
int deleteByPrimaryKey(Integer id);
int insert(SysUserMenuRs record);
SysUserMenuRs selectByPrimaryKey(Integer id);
List<SysUserMenuRs> selectAll();
int updateByPrimaryKey(SysUserMenuRs record);
List<SysUserMenuRsList> selectByUser(@Param("userId") Integer userId);
int deleteAllByUser(@Param("userId") Long userId);
SysUserMenuRs selectByUserWithMenu(@Param("userId") Long userId,@Param("menuId") Long menuId);
}
\ No newline at end of file
package com.hs.admin.mapper;
import com.hs.admin.model.SysUserOrgRs;
import com.hs.admin.model.respmodel.SysUserOrgRsList;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysUserOrgRsMapper {
int deleteByPrimaryKey(Integer id);
int insert(SysUserOrgRs record);
SysUserOrgRs selectByPrimaryKey(Integer id);
List<SysUserOrgRs> selectAll();
int updateByPrimaryKey(SysUserOrgRs record);
List<SysUserOrgRsList> selectByUser(@Param("userId") Integer userId);
SysUserOrgRs selectByUserWithOrg(@Param("userId") Long userId,@Param("orgId") Long orgId);
int deleteByUser(@Param("userId") Long userId);
}
\ No newline at end of file
package com.hs.admin.mapper;
import com.hs.admin.model.SysUserRoleRs;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysUserRoleRsMapper {
int deleteByPrimaryKey(Integer id);
int insert(SysUserRoleRs record);
SysUserRoleRs selectByPrimaryKey(Integer id);
List<SysUserRoleRs> selectAll();
int updateByPrimaryKey(SysUserRoleRs record);
int deleteByUser(@Param("userId") Long userId);
SysUserRoleRs selectByUser(@Param("userId") Long userId,@Param("roleId") Long roleId);
}
\ No newline at end of file
package com.hs.admin.model;
import java.util.Date;
public class DicOrg {
private Integer id;
private Date createDate;
private Long createUserid;
private Short state;
private String orgCode;
private String orgName;
private String orgNo;
private String orgShortName;
private String orgGroup;
private String orgType;
private String orgAddress;
private Integer parentId;
private Integer isNew;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Long getCreateUserid() {
return createUserid;
}
public void setCreateUserid(Long createUserid) {
this.createUserid = createUserid;
}
public Short getState() {
return state;
}
public void setState(Short state) {
this.state = state;
}
public String getOrgCode() {
return orgCode;
}
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}
public String getOrgName() {
return orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public String getOrgNo() {
return orgNo;
}
public void setOrgNo(String orgNo) {
this.orgNo = orgNo;
}
public String getOrgShortName() {
return orgShortName;
}
public void setOrgShortName(String orgShortName) {
this.orgShortName = orgShortName;
}
public String getOrgGroup() {
return orgGroup;
}
public void setOrgGroup(String orgGroup) {
this.orgGroup = orgGroup;
}
public String getOrgType() {
return orgType;
}
public void setOrgType(String orgType) {
this.orgType = orgType;
}
public String getOrgAddress() {
return orgAddress;
}
public void setOrgAddress(String orgAddress) {
this.orgAddress = orgAddress;
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public Integer getIsNew() {
return isNew;
}
public void setIsNew(Integer isNew) {
this.isNew = isNew;
}
}
\ No newline at end of file
package com.hs.admin.model;
import java.util.Date;
public class SysMenu {
private Integer id;
private Date createData;
private Long createUserid;
private Short state;
private String menuName;
private String menuUrl;
private String menuImage;
private Long parentId;
private String pageCode;
private Long sort;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateData() {
return createData;
}
public void setCreateData(Date createData) {
this.createData = createData;
}
public Long getCreateUserid() {
return createUserid;
}
public void setCreateUserid(Long createUserid) {
this.createUserid = createUserid;
}
public Short getState() {
return state;
}
public void setState(Short state) {
this.state = state;
}
public String getMenuName() {
return menuName;
}
public void setMenuName(String menuName) {
this.menuName = menuName;
}
public String getMenuUrl() {
return menuUrl;
}
public void setMenuUrl(String menuUrl) {
this.menuUrl = menuUrl;
}
public String getMenuImage() {
return menuImage;
}
public void setMenuImage(String menuImage) {
this.menuImage = menuImage;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getPageCode() {
return pageCode;
}
public void setPageCode(String pageCode) {
this.pageCode = pageCode;
}
public Long getSort() {
return sort;
}
public void setSort(Long sort) {
this.sort = sort;
}
}
\ No newline at end of file
package com.hs.admin.model;
import java.util.Date;
public class SysRole {
private Integer id;
private Date createDate;
private Long createUserid;
private Short state;
private String roleName;
private Long roleCode;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Long getCreateUserid() {
return createUserid;
}
public void setCreateUserid(Long createUserid) {
this.createUserid = createUserid;
}
public Short getState() {
return state;
}
public void setState(Short state) {
this.state = state;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public Long getRoleCode() {
return roleCode;
}
public void setRoleCode(Long roleCode) {
this.roleCode = roleCode;
}
}
\ No newline at end of file
package com.hs.admin.model;
import java.util.Date;
public class SysRoleMenuRs {
private Integer id;
private Date createDate;
private Long createUserid;
private Short state;
private Long menuId;
private Long roleId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Long getCreateUserid() {
return createUserid;
}
public void setCreateUserid(Long createUserid) {
this.createUserid = createUserid;
}
public Short getState() {
return state;
}
public void setState(Short state) {
this.state = state;
}
public Long getMenuId() {
return menuId;
}
public void setMenuId(Long menuId) {
this.menuId = menuId;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
}
\ No newline at end of file
package com.bsoft.api.model; package com.hs.admin.model;
import java.util.Date; import java.util.Date;
...@@ -7,9 +7,9 @@ public class SysUser { ...@@ -7,9 +7,9 @@ public class SysUser {
private Date createDate; private Date createDate;
private Integer createUserid; private Long createUserid;
private Integer state; private Short state;
private String userCode; private String userCode;
...@@ -23,6 +23,16 @@ public class SysUser { ...@@ -23,6 +23,16 @@ public class SysUser {
private String mobile; private String mobile;
private Long pageCount;
private Long errorCount;
private Date errorTime;
private Date lastTime;
private String lastIp;
public Integer getId() { public Integer getId() {
return id; return id;
} }
...@@ -39,19 +49,19 @@ public class SysUser { ...@@ -39,19 +49,19 @@ public class SysUser {
this.createDate = createDate; this.createDate = createDate;
} }
public Integer getCreateUserid() { public Long getCreateUserid() {
return createUserid; return createUserid;
} }
public void setCreateUserid(Integer createUserid) { public void setCreateUserid(Long createUserid) {
this.createUserid = createUserid; this.createUserid = createUserid;
} }
public Integer getState() { public Short getState() {
return state; return state;
} }
public void setState(Integer state) { public void setState(Short state) {
this.state = state; this.state = state;
} }
...@@ -102,4 +112,44 @@ public class SysUser { ...@@ -102,4 +112,44 @@ public class SysUser {
public void setMobile(String mobile) { public void setMobile(String mobile) {
this.mobile = mobile; this.mobile = mobile;
} }
public Long getPageCount() {
return pageCount;
}
public void setPageCount(Long pageCount) {
this.pageCount = pageCount;
}
public Long getErrorCount() {
return errorCount;
}
public void setErrorCount(Long errorCount) {
this.errorCount = errorCount;
}
public Date getErrorTime() {
return errorTime;
}
public void setErrorTime(Date errorTime) {
this.errorTime = errorTime;
}
public Date getLastTime() {
return lastTime;
}
public void setLastTime(Date lastTime) {
this.lastTime = lastTime;
}
public String getLastIp() {
return lastIp;
}
public void setLastIp(String lastIp) {
this.lastIp = lastIp;
}
} }
\ No newline at end of file
package com.hs.admin.model;
import java.util.Date;
public class SysUserMenuRs {
private Integer id;
private Date createDate;
private Long createUserid;
private Short state;
private Long userId;
private Long menuId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Long getCreateUserid() {
return createUserid;
}
public void setCreateUserid(Long createUserid) {
this.createUserid = createUserid;
}
public Short getState() {
return state;
}
public void setState(Short state) {
this.state = state;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getMenuId() {
return menuId;
}
public void setMenuId(Long menuId) {
this.menuId = menuId;
}
}
\ No newline at end of file
package com.hs.admin.model;
import java.util.Date;
public class SysUserOrgRs {
private Integer id;
private Date createDate;
private Long createUserid;
private Short state;
private Long userId;
private Long orgId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Long getCreateUserid() {
return createUserid;
}
public void setCreateUserid(Long createUserid) {
this.createUserid = createUserid;
}
public Short getState() {
return state;
}
public void setState(Short state) {
this.state = state;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getOrgId() {
return orgId;
}
public void setOrgId(Long orgId) {
this.orgId = orgId;
}
}
\ No newline at end of file
package com.hs.admin.model;
import java.util.Date;
public class SysUserRoleRs {
private Integer id;
private Date createDate;
private Long createUserid;
private Short state;
private Long userId;
private Long roleId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Long getCreateUserid() {
return createUserid;
}
public void setCreateUserid(Long createUserid) {
this.createUserid = createUserid;
}
public Short getState() {
return state;
}
public void setState(Short state) {
this.state = state;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
}
\ No newline at end of file
package com.hs.admin.model.reqmodel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class AddUserReq {
@ApiModelProperty(value = "账号", required = true)
@NotBlank(message = "账号 参数必传")
private String userCode;
@ApiModelProperty(value = "名称", required = true)
@NotBlank(message = "名称 参数必传")
private String userName;
@ApiModelProperty(value = "密码", required = true)
@NotBlank(message = "密码 参数必传")
private String password;
@ApiModelProperty(value = "身份证", required = true)
private String idcard;
@ApiModelProperty(value = "性别", required = true)
private String sex;
@ApiModelProperty(value = "手机号码", required = true)
private String mobile;
@NotNull(message = "角色ID 参数必传")
@ApiModelProperty(value = "角色ID", required = true)
private Long roleId;
@ApiModelProperty(value = "机构ID", required = true)
@NotNull(message = "机构ID 参数必传")
private List<Long> org;
}
package com.hs.admin.model.reqmodel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ApiModel("账号密码")
@Data
public class CodeAndPwd {
@ApiModelProperty(value = "账号", required = true)
@NotBlank(message = "账号 参数必传")
String loginName;
@NotBlank(message = "密码 参数必传")
@ApiModelProperty(value = "密码", required = true)
String password;
}
package com.hs.admin.model.reqmodel;
import com.hs.admin.model.SysMenu;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
public class MenuReq {
public static class GetMenuReq {
@ApiModelProperty(value = "菜单名称")
private String menuName;
public String getMenuName() {
return menuName;
}
public void setMenuName(String menuName) {
this.menuName = menuName;
}
@Override
public String toString() {
return "GetMenuReq{" +
"menuName='" + menuName + '\'' +
'}';
}
}
public static class InfoMenuReq {
@ApiModelProperty(value = "菜单ID", required = true)
@NotNull(message = "菜单ID 参数必传")
private Integer menuId;
public Integer getMenuId() {
return menuId;
}
public void setMenuId(Integer menuId) {
this.menuId = menuId;
}
@Override
public String toString() {
return "InfoMenuReq{" +
"menuId=" + menuId +
'}';
}
}
public static class AddMenuReq {
@ApiModelProperty(value = "菜单名称", required = true)
@NotBlank(message = "菜单名称 参数必传")
private String menuName;
@ApiModelProperty(value = "菜单路径", required = true)
private String menuUrl;
@ApiModelProperty(value = "菜单图片", required = true)
private String menuImage;
@ApiModelProperty(value = "父级关系", required = true)
@NotNull(message = "父级关系 参数必传")
private Long parentId;
@ApiModelProperty(value = "页面编码", required = true)
private String pageCode;
public String getMenuName() {
return menuName;
}
public void setMenuName(String menuName) {
this.menuName = menuName;
}
public String getMenuUrl() {
return menuUrl;
}
public void setMenuUrl(String menuUrl) {
this.menuUrl = menuUrl;
}
public String getMenuImage() {
return menuImage;
}
public void setMenuImage(String menuImage) {
this.menuImage = menuImage;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getPageCode() {
return pageCode;
}
public void setPageCode(String pageCode) {
this.pageCode = pageCode;
}
@Override
public String toString() {
return "AddMenuReq{" +
"menuName='" + menuName + '\'' +
", menuUrl='" + menuUrl + '\'' +
", menuImage='" + menuImage + '\'' +
", parentId=" + parentId +
", pageCode='" + pageCode + '\'' +
'}';
}
}
public static class DeleteMenuReq {
@ApiModelProperty(value = "菜单ID", required = true)
@NotNull(message = "菜单ID 参数必传")
private Integer menuId;
public Integer getMenuId() {
return menuId;
}
public void setMenuId(Integer menuId) {
this.menuId = menuId;
}
@Override
public String toString() {
return "InfoMenuReq{" +
"menuId=" + menuId +
'}';
}
}
public static class UpdateMenuReq {
@ApiModelProperty(value = "菜单ID", required = true)
@NotNull(message = "菜单ID 参数必传")
private Integer menuId;
@ApiModelProperty(value = "菜单名称", required = true)
@NotBlank(message = "菜单名称 参数必传")
private String menuName;
@ApiModelProperty(value = "菜单路径", required = true)
private String menuUrl;
@ApiModelProperty(value = "菜单图片", required = true)
private String menuImage;
@ApiModelProperty(value = "父级关系", required = true)
@NotNull(message = "父级关系 参数必传")
private Long parentId;
@ApiModelProperty(value = "页面编码", required = true)
private String pageCode;
public Integer getMenuId() {
return menuId;
}
public void setMenuId(Integer menuId) {
this.menuId = menuId;
}
public String getMenuName() {
return menuName;
}
public void setMenuName(String menuName) {
this.menuName = menuName;
}
public String getMenuUrl() {
return menuUrl;
}
public void setMenuUrl(String menuUrl) {
this.menuUrl = menuUrl;
}
public String getMenuImage() {
return menuImage;
}
public void setMenuImage(String menuImage) {
this.menuImage = menuImage;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getPageCode() {
return pageCode;
}
public void setPageCode(String pageCode) {
this.pageCode = pageCode;
}
@Override
public String toString() {
return "UpdateMenuReq{" +
"menuId=" + menuId +
", menuName='" + menuName + '\'' +
", menuUrl='" + menuUrl + '\'' +
", menuImage='" + menuImage + '\'' +
", parentId=" + parentId +
", pageCode='" + pageCode + '\'' +
'}';
}
}
/**
* 保存用户菜单入参
*/
public static class SaveUserMenuReq {
@ApiModelProperty(value = "用户ID", required = true)
@NotNull(message = "用户ID 参数必传")
private Long userId;
@ApiModelProperty(value = "菜单ID集合", required = true)
@NotNull(message = "菜单ID集合 参数必传")
private List<Long> menus;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public List<Long> getMenus() {
return menus;
}
public void setMenus(List<Long> menus) {
this.menus = menus;
}
@Override
public String toString() {
return "SelectUserMenuReq{" +
"userId=" + userId +
", menus=" + menus +
'}';
}
}
/**
* 查询用户菜单入参
*/
public static class GetUserMenuReq {
@ApiModelProperty(value = "用户ID", required = true)
@NotNull(message = "用户ID 参数必传")
private Integer userId;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
@Override
public String toString() {
return "GetUserMenuReq{" +
"userId=" + userId +
'}';
}
}
/**
* 保存角色菜单入参
*/
public static class SaveRoleMenuReq {
@ApiModelProperty(value = "角色ID", required = true)
@NotNull(message = "角色ID 参数必传")
private Long roleId;
@ApiModelProperty(value = "菜单ID集合", required = true)
@NotNull(message = "菜单ID集合 参数必传")
private List<Long> menus;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public List<Long> getMenus() {
return menus;
}
public void setMenus(List<Long> menus) {
this.menus = menus;
}
}
/**
* 查询角色菜单入参
*/
public static class GetRoleMenuReq {
@ApiModelProperty(value = "角色ID", required = true)
@NotNull(message = "角色ID 参数必传")
private Integer roleId;
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
}
/**
* 修改菜单排序入参
*/
public static class UpdateSortReq {
@ApiModelProperty(value = "菜单列表", required = true)
@NotNull(message = "菜单列表 参数必传")
private List<SysMenu> menus;
public List<SysMenu> getMenus() {
return menus;
}
public void setMenus(List<SysMenu> menus) {
this.menus = menus;
}
@Override
public String toString() {
return "UpdateSortReq{" +
"menus=" + menus +
'}';
}
}
}
package com.hs.admin.model.reqmodel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
public class RoleReq {
public static class GetRoleReq {
@ApiModelProperty(value = "角色名称", required = true)
private String roleName;
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
@Override
public String toString() {
return "GetReq{" +
"roleName='" + roleName + '\'' +
'}';
}
}
public static class InfoRoleReq {
@ApiModelProperty(value = "角色ID", required = true)
@NotNull(message = "角色ID 参数必传")
private Integer roleId;
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
@Override
public String toString() {
return "DeleteReq{" +
"roleId=" + roleId +
'}';
}
}
public static class AddRoleReq {
@ApiModelProperty(value = "角色编码", required = true)
@NotNull(message = "角色编码 参数必传")
private Long roleCode;
@ApiModelProperty(value = "角色名称", required = true)
@NotBlank(message = "角色名称 参数必传")
private String roleName;
public Long getRoleCode() {
return roleCode;
}
public void setRoleCode(Long roleCode) {
this.roleCode = roleCode;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
@Override
public String toString() {
return "AddReq{" +
"roleCode=" + roleCode +
", roleName='" + roleName + '\'' +
'}';
}
}
public static class DeleteRoleReq {
@ApiModelProperty(value = "角色ID", required = true)
@NotNull(message = "角色ID 参数必传")
private Integer roleId;
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
@Override
public String toString() {
return "DeleteReq{" +
"roleId=" + roleId +
'}';
}
}
public static class UpdateRoleReq {
@ApiModelProperty(value = "角色ID", required = true)
@NotNull(message = "角色ID 参数必传")
private Integer roleId;
@ApiModelProperty(value = "角色编码", required = true)
@NotNull(message = "角色编码 参数必传")
private Long roleCode;
@ApiModelProperty(value = "角色名称", required = true)
@NotBlank(message = "角色名称 参数必传")
private String roleName;
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public Long getRoleCode() {
return roleCode;
}
public void setRoleCode(Long roleCode) {
this.roleCode = roleCode;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
@Override
public String toString() {
return "UpdateReq{" +
"roleId=" + roleId +
", roleCode=" + roleCode +
", roleName='" + roleName + '\'' +
'}';
}
}
public static class SavaUserRoleReq {
@ApiModelProperty(value = "用户ID", required = true)
@NotNull(message = "用户ID 参数必传")
private Long userId;
@ApiModelProperty(value = "角色ID", required = true)
@NotNull(message = "角色ID 参数必传")
private Long roleId;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
@Override
public String toString() {
return "SavaUserRoleReq{" +
"userId=" + userId +
", roleId=" + roleId +
'}';
}
}
}
package com.hs.admin.model.reqmodel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class UpdateUserReq {
@ApiModelProperty(value = "用户ID", required = true)
@NotNull(message = "用户ID 参数必传")
private Integer userId;
@ApiModelProperty(value = "账号", required = true)
@NotBlank(message = "账号 参数必传")
private String userCode;
@ApiModelProperty(value = "名称", required = true)
@NotBlank(message = "名称 参数必传")
private String userName;
@ApiModelProperty(value = "密码", required = true)
@NotBlank(message = "密码 参数必传")
private String password;
@ApiModelProperty(value = "身份证", required = true)
private String idcard;
@ApiModelProperty(value = "性别", required = true)
private String sex;
@ApiModelProperty(value = "手机号码", required = true)
private String mobile;
@NotNull(message = "角色ID 参数必传")
@ApiModelProperty(value = "角色ID", required = true)
private Long roleId;
@ApiModelProperty(value = "机构ID", required = true)
@NotNull(message = "机构ID 参数必传")
private List<Long> org;
}
package com.hs.admin.model.reqmodel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
public class UserReq {
public static class GetUserReq {
@ApiModelProperty(value = "用户名称", required = true)
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "GetReq{" +
"userName='" + userName + '\'' +
'}';
}
}
public static class InfoUserReq {
@ApiModelProperty(value = "用户ID", required = true)
@NotNull(message = "用户ID 参数必传")
private Integer userId;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
@Override
public String toString() {
return "DeleteReq{" +
"userId=" + userId +
'}';
}
}
public static class AddUserReq {
@ApiModelProperty(value = "账号", required = true)
@NotBlank(message = "账号 参数必传")
private String userCode;
@ApiModelProperty(value = "名称", required = true)
@NotBlank(message = "名称 参数必传")
private String userName;
@ApiModelProperty(value = "密码", required = true)
@NotBlank(message = "密码 参数必传")
private String password;
@ApiModelProperty(value = "身份证", required = true)
private String idcard;
@ApiModelProperty(value = "性别", required = true)
private String sex;
@ApiModelProperty(value = "手机号码", required = true)
private String mobile;
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
@Override
public String toString() {
return "UserReq{" +
"userCode='" + userCode + '\'' +
", userName='" + userName + '\'' +
", password='" + password + '\'' +
", idcard='" + idcard + '\'' +
", sex='" + sex + '\'' +
", mobile='" + mobile + '\'' +
'}';
}
}
public static class DeleteUserReq {
@ApiModelProperty(value = "用户ID", required = true)
@NotNull(message = "用户ID 参数必传")
private Integer userId;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
@Override
public String toString() {
return "DeleteReq{" +
"userId=" + userId +
'}';
}
}
public static class UpdateUserReq {
@ApiModelProperty(value = "用户ID", required = true)
@NotNull(message = "用户ID 参数必传")
private Integer userId;
@ApiModelProperty(value = "账号", required = true)
@NotBlank(message = "账号 参数必传")
private String userCode;
@ApiModelProperty(value = "名称", required = true)
@NotBlank(message = "名称 参数必传")
private String userName;
@ApiModelProperty(value = "密码", required = true)
@NotBlank(message = "密码 参数必传")
private String password;
@ApiModelProperty(value = "身份证", required = true)
private String idcard;
@ApiModelProperty(value = "性别", required = true)
private String sex;
@ApiModelProperty(value = "手机号码", required = true)
private String mobile;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
@Override
public String toString() {
return "UpdateReq{" +
"userId=" + userId +
", userCode='" + userCode + '\'' +
", userName='" + userName + '\'' +
", password='" + password + '\'' +
", idcard='" + idcard + '\'' +
", sex='" + sex + '\'' +
", mobile='" + mobile + '\'' +
'}';
}
}
}
package com.hs.admin.model.respmodel;
import com.hs.admin.model.DicOrg;
import lombok.Data;
import java.util.List;
@Data
public class DicOrgList extends DicOrg {
private List<DicOrgList> dicOrgList;
}
package com.hs.admin.model.respmodel;
import com.hs.admin.model.SysMenu;
import lombok.Data;
import java.util.List;
@Data
public class SysMenuList extends SysMenu {
private List<SysMenuList> sysMenuList;
}
package com.hs.admin.model.respmodel;
import com.hs.admin.model.SysRoleMenuRs;
import lombok.Data;
@Data
public class SysRoleMenuRsList extends SysRoleMenuRs {
private Long parentId;
}
package com.hs.admin.model.respmodel;
import com.hs.admin.model.SysUser;
import lombok.Data;
@Data
public class SysUserList extends SysUser {
private Integer roleId;
private String roleName;
private Integer orgId;
private String orgName;
}
package com.hs.admin.model.respmodel;
import com.hs.admin.model.SysUserMenuRs;
import lombok.Data;
@Data
public class SysUserMenuRsList extends SysUserMenuRs {
private Long parentId;
}
package com.hs.admin.model.respmodel;
import com.hs.admin.model.SysUserOrgRs;
import lombok.Data;
@Data
public class SysUserOrgRsList extends SysUserOrgRs {
private Long parentId;
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
@Override
public String toString() {
return "SysUserOrgRsList{" +
"parentId=" + parentId +
'}';
}
}
package com.hs.admin.service;
import com.hs.admin.model.DicOrg;
import com.hs.admin.model.reqmodel.OrgReq;
import com.hs.admin.model.respmodel.DicOrgList;
import com.hs.admin.model.respmodel.SysUserOrgRsList;
import java.util.List;
public interface DicOrgService {
//顶级机构的父级id
final static Integer ORG_TOP_PARENT_ID = 0;
List<DicOrgList> getParentAll(OrgReq.GetOrgReq org);
List<DicOrg> getAll();
DicOrg info(Integer orgId);
boolean addOrg(Integer userId,OrgReq.AddOrgReq org);
boolean deleteOrg(OrgReq.DeleteOrgReq org);
boolean updateOrg(OrgReq.UpdateOrgReq org);
DicOrg getByName(String orgName);
List<SysUserOrgRsList> getUserOrg(Integer userId);
boolean saveUserOrg(Long userId, Long saveUserId, List<Long> org);
}
package com.bsoft.api.service; package com.hs.admin.service;
import com.bsoft.api.model.SysUser; import com.hs.admin.model.DicOrg;
import com.hs.admin.model.SysUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
public interface LoginService { public interface LoginService {
LoginInfo login(String loginName, String password); LoginInfo login(String loginName,String password,String ip);
String refreshToken(String oldToken); String refreshToken(String oldToken);
@ApiModel(description = "登录信息")
class LoginInfo { class LoginInfo {
@ApiModelProperty("token")
private String token; private String token;
@ApiModelProperty("用户信息")
private SysUser user; private SysUser user;
@ApiModelProperty("用户机构信息")
private List<DicOrg> org;
public LoginInfo() { public LoginInfo() {
} }
public LoginInfo(String token, SysUser user) { public LoginInfo(String token,SysUser user,List<DicOrg> org) {
this.token = token; this.token = token;
this.user = user; this.user = user;
this.org = org;
} }
public String getToken() { public String getToken() {
...@@ -36,5 +47,22 @@ public interface LoginService { ...@@ -36,5 +47,22 @@ public interface LoginService {
public void setUser(SysUser user) { public void setUser(SysUser user) {
this.user = user; this.user = user;
} }
public List<DicOrg> getOrg() {
return org;
}
public void setOrg(List<DicOrg> org) {
this.org = org;
}
@Override
public String toString() {
return "LoginInfo{" +
"token='" + token + '\'' +
", user=" + user +
", org=" + org +
'}';
}
} }
} }
package com.hs.admin.service;
import java.util.List;
public interface ServiceBase<T> {
/**
* 新增
*
* @param t
* @return
*/
int add(T t);
/**
* 查询所有
*
* @return
*/
List<T> findAll();
/**
* 根据id查询
*
* @param id
* @return
*/
T find(Integer id);
/**
* 物理删除
*
* @param id
* @return
*/
int delete(Integer id);
/**
* 逻辑删除
*
* @param id
* @return
*/
int logicDelete(Integer id);
/**
* 更新
*
* @param t
* @return
*/
int update(T t);
}
package com.hs.admin.service;
import com.hs.admin.model.SysMenu;
import com.hs.admin.model.reqmodel.MenuReq;
import com.hs.admin.model.respmodel.SysMenuList;
import com.hs.admin.model.respmodel.SysRoleMenuRsList;
import com.hs.admin.model.respmodel.SysUserMenuRsList;
import java.util.List;
public interface SysMenuService {
//顶级菜单的父级id
final static Integer MENU_TOP_PARENT_ID = 0;
List<SysMenuList> getMenu(Integer userId) throws Exception;
List<SysMenuList> getParentAll(MenuReq.GetMenuReq menu);
List<SysMenu> getAll();
SysMenu info(MenuReq.InfoMenuReq menu);
boolean addMenu(Long userId,MenuReq.AddMenuReq menu);
boolean deleteMenu(MenuReq.DeleteMenuReq menu);
boolean updateMenu(MenuReq.UpdateMenuReq menu);
List<SysUserMenuRsList> getUserMenu(Integer userId);
boolean saveUserMenu(Long userId,MenuReq.SaveUserMenuReq menu);
List<SysRoleMenuRsList> getRoleMenu(Integer roleId);
boolean saveRoleMenu(Long userId,MenuReq.SaveRoleMenuReq menu);
boolean updateSort(Long userId,MenuReq.UpdateSortReq menu);
}
package com.hs.admin.service;
import com.hs.admin.model.SysRole;
import com.hs.admin.model.reqmodel.RoleReq;
import java.util.List;
public interface SysRoleService {
SysRole findByCode(Long roleCode);
boolean addRole(Long userId, RoleReq.AddRoleReq role);
boolean deleteRole(RoleReq.DeleteRoleReq role);
boolean updateRole(RoleReq.UpdateRoleReq role);
List<SysRole> getAll(RoleReq.GetRoleReq role);
SysRole info(Integer roleId);
boolean saveUserRole(Long userId, Long saveUserId, Long roleId);
}
package com.hs.admin.service;
import com.hs.admin.model.SysRole;
import com.hs.admin.model.SysUserRoleRs;
import java.util.List;
public interface SysUserRoleRsService extends ServiceBase<SysUserRoleRs> {
List<SysRole> getRoleListByUser(Integer userId) throws Exception;
}
package com.hs.admin.service;
import com.hs.admin.model.SysUser;
import com.hs.admin.model.reqmodel.AddUserReq;
import com.hs.admin.model.reqmodel.UpdateUserReq;
import com.hs.admin.model.reqmodel.UserReq;
import com.hs.admin.model.respmodel.SysUserList;
import java.util.List;
public interface UserService {
SysUser findByLoginName(String loginName);
boolean addUser(Long userId, AddUserReq user);
boolean deleteUser(UserReq.DeleteUserReq user);
boolean updateUser(UpdateUserReq user);
List<SysUserList> getAll(UserReq.GetUserReq user);
SysUserList info(Integer userId);
}
package com.hs.admin.service.impl;
import com.hs.admin.common.enums.StateType;
import com.hs.admin.mapper.DicOrgMapper;
import com.hs.admin.mapper.SysUserOrgRsMapper;
import com.hs.admin.model.DicOrg;
import com.hs.admin.model.SysUserOrgRs;
import com.hs.admin.model.reqmodel.OrgReq;
import com.hs.admin.model.respmodel.DicOrgList;
import com.hs.admin.model.respmodel.SysUserOrgRsList;
import com.hs.admin.service.DicOrgService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class DicOrgServiceImpl implements DicOrgService {
@Resource
private DicOrgMapper dicOrgMapper;
@Resource
private SysUserOrgRsMapper sysUserOrgRsMapper;
private List<DicOrgList> getLevelData(List<DicOrgList> list, Integer parentcode) {
List<DicOrgList> resultList = new ArrayList<>();
for (DicOrgList data : list) {
if (data.getParentId().equals(parentcode)) {
List<DicOrgList> childList = getLevelData(list, data.getId());
data.setDicOrgList(childList);
resultList.add(data);
}
}
return resultList;
}
public List<DicOrgList> getParentAll(OrgReq.GetOrgReq org) {
List<DicOrgList> list = dicOrgMapper.selectParentAll();
if (org.getOrgName() != null) {
list = list.stream().filter(
o -> (o.getOrgName() != null && o.getOrgName().toLowerCase().contains(org.getOrgName().toLowerCase())))
.collect(Collectors.toList());
}
List<DicOrgList> resultList = getLevelData(list, ORG_TOP_PARENT_ID);
return resultList;
}
public List<DicOrg> getAll() {
List<DicOrg> list = dicOrgMapper.selectAll();
return list;
}
public DicOrg info(Integer orgId) {
DicOrg dicOrg = dicOrgMapper.selectByPrimaryKey(orgId);
return dicOrg;
}
public boolean addOrg(Integer userId, OrgReq.AddOrgReq org) {
if (org != null) {
DicOrg dicOrg = new DicOrg();
dicOrg.setCreateDate(new Date());
dicOrg.setCreateUserid(Long.valueOf(userId));
dicOrg.setState((short) StateType.ON.getValue());
dicOrg.setOrgCode(org.getOrgCode());
dicOrg.setOrgName(org.getOrgName());
dicOrg.setOrgShortName(org.getOrgShortName());
dicOrg.setOrgGroup(org.getOrgGroup());
dicOrg.setOrgType(org.getOrgType());
dicOrg.setOrgAddress(org.getOrgAddress());
dicOrg.setParentId(org.getParentId());
dicOrg.setIsNew(org.getIsNew());
dicOrgMapper.insert(dicOrg);
return true;
}
return false;
}
public boolean deleteOrg(OrgReq.DeleteOrgReq org) {
if (org != null) {
DicOrg dicOrg = dicOrgMapper.selectByPrimaryKey(org.getOrgId());
if (dicOrg != null) {
dicOrg.setState((short) StateType.OFF.getValue());
dicOrgMapper.updateByPrimaryKey(dicOrg);
return true;
}
}
return false;
}
public boolean updateOrg(OrgReq.UpdateOrgReq org) {
if (org != null) {
DicOrg dicOrg = dicOrgMapper.selectByPrimaryKey(org.getOrgId());
if (dicOrg != null) {
dicOrg.setOrgCode(org.getOrgCode());
dicOrg.setOrgName(org.getOrgName());
dicOrg.setOrgShortName(org.getOrgShortName());
dicOrg.setOrgGroup(org.getOrgGroup());
dicOrg.setOrgType(org.getOrgType());
dicOrg.setOrgAddress(org.getOrgAddress());
dicOrg.setParentId(org.getParentId());
dicOrg.setIsNew(org.getIsNew());
dicOrgMapper.updateByPrimaryKey(dicOrg);
return true;
}
}
return false;
}
public DicOrg getByName(String orgName) {
return dicOrgMapper.selectByName(orgName);
}
/**
* 查询用户机构
*
* @param userId 操作人ID
* @return
*/
@Override
public List<SysUserOrgRsList> getUserOrg(Integer userId) {
List<SysUserOrgRsList> sysUserOrgRs = sysUserOrgRsMapper.selectByUser(userId);
return sysUserOrgRs;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveUserOrg(Long userId, Long saveUserId, List<Long> org) {
int result = 0;
if (org != null && org.size() > 0 && saveUserId != null) {
sysUserOrgRsMapper.deleteByUser(saveUserId);
for (Long orgId : org) {
//判断是否存在关系数据
SysUserOrgRs sysUserOrgRs = sysUserOrgRsMapper.selectByUserWithOrg(saveUserId, orgId);
if (sysUserOrgRs != null) {
//开启状态
sysUserOrgRs.setState((short) StateType.ON.getValue());
result += sysUserOrgRsMapper.updateByPrimaryKey(sysUserOrgRs);
} else {
//添加
sysUserOrgRs = new SysUserOrgRs();
sysUserOrgRs.setOrgId(orgId);
sysUserOrgRs.setUserId(saveUserId);
sysUserOrgRs.setCreateDate(new Date());
sysUserOrgRs.setCreateUserid(userId);
sysUserOrgRs.setState((short) StateType.ON.getValue());
result += sysUserOrgRsMapper.insert(sysUserOrgRs);
}
}
}
return result > 0;
}
}
package com.bsoft.api.service.Impl; package com.hs.admin.service.impl;
import com.bsoft.api.common.utils.TokenUtil; import com.hs.admin.common.utils.TokenUtil;
import com.bsoft.api.model.SysUser; import com.hs.admin.mapper.DicOrgMapper;
import com.bsoft.api.service.LoginService; import com.hs.admin.mapper.SysUserMapper;
import com.bsoft.api.service.UserService; import com.hs.admin.model.DicOrg;
import com.hs.admin.model.SysUser;
import com.hs.admin.service.LoginService;
import com.hs.admin.service.UserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service @Service
public class LoginServiceImpl implements LoginService { public class LoginServiceImpl implements LoginService {
@Autowired @Autowired
private UserService userServiceImpl; private UserService userServiceImpl;
@Resource
private SysUserMapper sysUserMapper;
@Resource
private DicOrgMapper dicOrgMapper;
@Override @Override
public LoginInfo login(String logName, String password) { public LoginInfo login(String logName,String password,String ip) {
LoginInfo loginInfo = new LoginInfo(); LoginInfo loginInfo = new LoginInfo();
SysUser user = userServiceImpl.findByLoginName(logName); SysUser user = userServiceImpl.findByLoginName(logName);
if(user != null && user.getPassword().equals(password)){ if(user != null && user.getPassword().equals(password)){
String token = TokenUtil.getToken(password, user); String token = TokenUtil.getToken(password,user);
//修改ip以及最后登录时间
user.setLastIp(ip);
user.setLastTime(new Date());
sysUserMapper.updateByPrimaryKey(user);
user.setPassword(null); user.setPassword(null);
loginInfo.setToken(token); loginInfo.setToken(token);
loginInfo.setUser(user); loginInfo.setUser(user);
//查询用户机构
List<DicOrg> orgList = dicOrgMapper.selectByUser(user.getId());
loginInfo.setOrg(orgList);
} }
return loginInfo; return loginInfo;
} }
public String refreshToken(String oldToken){ public String refreshToken(String oldToken) {
return TokenUtil.refresh(oldToken); return TokenUtil.refresh(oldToken);
} }
} }
package com.hs.admin.service.impl;
import com.hs.admin.common.enums.StateType;
import com.hs.admin.mapper.SysMenuMapper;
import com.hs.admin.mapper.SysRoleMenuRsMapper;
import com.hs.admin.mapper.SysUserMenuRsMapper;
import com.hs.admin.model.SysMenu;
import com.hs.admin.model.SysRoleMenuRs;
import com.hs.admin.model.SysUserMenuRs;
import com.hs.admin.model.reqmodel.MenuReq;
import com.hs.admin.model.respmodel.SysMenuList;
import com.hs.admin.model.respmodel.SysRoleMenuRsList;
import com.hs.admin.model.respmodel.SysUserMenuRsList;
import com.hs.admin.service.SysMenuService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class SysMenuServiceImpl implements SysMenuService {
@Resource
private SysMenuMapper sysMenuMapper;
@Resource
private SysUserMenuRsMapper sysUserMenuRsMapper;
@Resource
private SysRoleMenuRsMapper sysRoleMenuRsMapper;
@Override
public List<SysMenuList> getMenu(Integer userId) throws Exception {
List<SysMenuList> userList = sysMenuMapper.selectMenuAllByUser(userId);
List<SysMenuList> roleList = sysMenuMapper.selectMenuByRole(userId);
List<SysMenuList> userRoleList = new ArrayList<>();
for(SysMenuList roleMenu : roleList){
userRoleList.add(roleMenu);
for(SysMenuList userMenu : userList){
int userMuenuState = userMenu.getState().intValue();
if(userMenu.getId().equals(roleMenu.getId()) && userMuenuState == StateType.OFF.getValue()){
//角色表存在,用户表存在,但是已删除 = 不显示
userRoleList.remove(roleMenu);
}else if(userMenu.getId().equals(roleMenu.getId()) && userMuenuState == StateType.ON.getValue()){
//角色表存在,用户表存在,未删除 = 显示
continue;
}else if(!userMenu.getId().equals(roleMenu.getId()) && userMuenuState == StateType.ON.getValue()){
userRoleList.add(userMenu);
}
}
}
userRoleList = userRoleList.stream().distinct().collect(Collectors.toList());
List<SysMenuList> resultList = getLevelData(userRoleList,Long.valueOf(MENU_TOP_PARENT_ID));
resultList = resultList.stream().sorted(Comparator.comparing(SysMenu::getSort)).collect(Collectors.toList());
return resultList;
}
private List<SysMenuList> getLevelData(List<SysMenuList> list,Long parentcode) {
List<SysMenuList> resultList = new ArrayList<>();
for(SysMenuList data : list){
if(data.getParentId() == parentcode){
List<SysMenuList> childList = getLevelData(list,Long.valueOf(data.getId()));
childList = childList.stream().sorted(Comparator.comparing(SysMenu::getSort)).collect(Collectors.toList());
data.setSysMenuList(childList);
resultList.add(data);
}
}
return resultList;
}
@Override
public List<SysMenuList> getParentAll(MenuReq.GetMenuReq menu) {
List<SysMenuList> list = sysMenuMapper.selectParentAll();
if(menu.getMenuName() != null){
list = list.stream().filter(
o -> (o.getMenuName() != null && o.getMenuName().toLowerCase().contains(menu.getMenuName().toLowerCase())))
.collect(Collectors.toList());
}
List<SysMenuList> resultList = getLevelData(list,Long.valueOf(MENU_TOP_PARENT_ID));
resultList = resultList.stream().sorted(Comparator.comparing(SysMenu::getSort)).collect(Collectors.toList());
return resultList;
}
public List<SysMenu> getAll() {
List<SysMenu> list = sysMenuMapper.selectAll();
return list;
}
@Override
public SysMenu info(MenuReq.InfoMenuReq menu) {
SysMenu sysMenu = sysMenuMapper.selectByPrimaryKey(menu.getMenuId());
return sysMenu;
}
@Override
public boolean addMenu(Long userId,MenuReq.AddMenuReq menu) {
if(menu != null){
SysMenu sysMenu = new SysMenu();
sysMenu.setCreateData(new Date());
sysMenu.setCreateUserid(userId);
sysMenu.setState((short)StateType.ON.getValue());
sysMenu.setMenuName(menu.getMenuName());
sysMenu.setMenuUrl(menu.getMenuUrl());
sysMenu.setMenuImage(menu.getMenuImage());
sysMenu.setPageCode(menu.getPageCode());
sysMenu.setParentId(menu.getParentId());
sysMenu.setSort((long)sysMenuMapper.selectMaxSort(menu.getParentId()));
sysMenuMapper.insert(sysMenu);
return true;
}
return false;
}
@Override
public boolean deleteMenu(MenuReq.DeleteMenuReq menu) {
if(menu != null){
SysMenu sysMenu = sysMenuMapper.selectByPrimaryKey(menu.getMenuId());
if(sysMenu != null){
sysMenu.setState((short)StateType.OFF.getValue());
sysMenuMapper.updateByPrimaryKey(sysMenu);
return true;
}
}
return false;
}
@Override
public boolean updateMenu(MenuReq.UpdateMenuReq menu) {
if(menu != null){
SysMenu sysMenu = sysMenuMapper.selectByPrimaryKey(menu.getMenuId());
if(sysMenu != null){
sysMenu.setMenuName(menu.getMenuName());
sysMenu.setMenuUrl(menu.getMenuUrl());
sysMenu.setMenuImage(menu.getMenuImage());
sysMenu.setPageCode(menu.getPageCode());
sysMenu.setParentId(menu.getParentId());
sysMenuMapper.updateByPrimaryKey(sysMenu);
return true;
}
}
return false;
}
/**
* 查询用户菜单关系
*
* @param userId 用户ID
* @return
*/
@Override
public List<SysUserMenuRsList> getUserMenu(Integer userId) {
List<SysUserMenuRsList> list = sysUserMenuRsMapper.selectByUser(userId);
return list;
}
/**
* 用户配置菜单
*
* @param userId 操作人ID
* @param menu 用户菜单关系数据
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveUserMenu(Long userId,MenuReq.SaveUserMenuReq menu) {
int result = 0;
if(menu != null && menu.getMenus() != null && menu.getMenus().size() > 0 && menu.getUserId() != null){
sysUserMenuRsMapper.deleteAllByUser(menu.getUserId());
for(Long menuId : menu.getMenus()){
SysUserMenuRs um = sysUserMenuRsMapper.selectByUserWithMenu(menu.getUserId(),menuId);
if(um != null){
um.setState((short)StateType.ON.getValue());
result += sysUserMenuRsMapper.updateByPrimaryKey(um);
}else{
um = new SysUserMenuRs();
um.setCreateDate(new Date());
um.setState((short)StateType.ON.getValue());
um.setCreateUserid(userId);
um.setUserId(menu.getUserId());
um.setMenuId(menuId);
result += sysUserMenuRsMapper.insert(um);
}
}
}
return result > 0;
}
/**
* 查询角色菜单关系
*
* @param roleId 角色ID
* @return
*/
@Override
public List<SysRoleMenuRsList> getRoleMenu(Integer roleId) {
List<SysRoleMenuRsList> list = sysRoleMenuRsMapper.selectByRole(roleId);
return list;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveRoleMenu(Long userId,MenuReq.SaveRoleMenuReq menu) {
int result = 0;
if(menu != null && menu.getMenus() != null && menu.getMenus().size() > 0 && menu.getRoleId() != null){
sysRoleMenuRsMapper.deleteAllByRole(menu.getRoleId());
for(Long menuId : menu.getMenus()){
SysRoleMenuRs rm = sysRoleMenuRsMapper.selectByUserWithRole(menu.getRoleId(),menuId);
if(rm != null){
rm.setState((short)StateType.ON.getValue());
result += sysRoleMenuRsMapper.updateByPrimaryKey(rm);
}else{
rm = new SysRoleMenuRs();
rm.setCreateDate(new Date());
rm.setState((short)StateType.ON.getValue());
rm.setCreateUserid(userId);
rm.setRoleId(menu.getRoleId());
rm.setMenuId(menuId);
result += sysRoleMenuRsMapper.insert(rm);
}
}
}
return result > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateSort(Long userId,MenuReq.UpdateSortReq menu) {
int result = 0;
if(menu != null && menu.getMenus() != null && menu.getMenus().size() > 0){
for(SysMenu info : menu.getMenus()){
SysMenu sysMenu = sysMenuMapper.selectByPrimaryKey(info.getId());
sysMenu.setParentId(info.getParentId());
sysMenu.setSort(info.getSort());
result += sysMenuMapper.updateByPrimaryKey(sysMenu);
}
}
return result > 0;
}
}
package com.hs.admin.service.impl;
import com.hs.admin.common.enums.StateType;
import com.hs.admin.mapper.SysRoleMapper;
import com.hs.admin.mapper.SysUserRoleRsMapper;
import com.hs.admin.model.SysRole;
import com.hs.admin.model.SysUserRoleRs;
import com.hs.admin.model.reqmodel.RoleReq;
import com.hs.admin.service.SysRoleService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class SysRoleServiceImpl implements SysRoleService {
@Resource
private SysRoleMapper sysRoleMapper;
@Resource
private SysUserRoleRsMapper sysUserRoleRsMapper;
@Override
public SysRole findByCode(Long roleCode) {
return sysRoleMapper.selectByCode(roleCode);
}
@Override
public boolean addRole(Long userId, RoleReq.AddRoleReq role) {
if (role != null) {
SysRole sysRole = new SysRole();
sysRole.setCreateDate(new Date());
sysRole.setCreateUserid(userId);
sysRole.setState((short) StateType.ON.getValue());
sysRole.setRoleCode(role.getRoleCode());
sysRole.setRoleName(role.getRoleName());
sysRoleMapper.insert(sysRole);
return true;
}
return false;
}
@Override
public boolean deleteRole(RoleReq.DeleteRoleReq role) {
if (role != null) {
SysRole sysRole = sysRoleMapper.selectByPrimaryKey(role.getRoleId());
if (sysRole != null) {
sysRole.setState((short) StateType.OFF.getValue());
sysRoleMapper.updateByPrimaryKey(sysRole);
return true;
}
}
return false;
}
@Override
public boolean updateRole(RoleReq.UpdateRoleReq role) {
if (role != null) {
SysRole sysRole = sysRoleMapper.selectByPrimaryKey(role.getRoleId());
if (sysRole != null) {
sysRole.setRoleCode(role.getRoleCode());
sysRole.setRoleName(role.getRoleName());
sysRoleMapper.updateByPrimaryKey(sysRole);
return true;
}
}
return false;
}
@Override
public List<SysRole> getAll(RoleReq.GetRoleReq role) {
List<SysRole> list = sysRoleMapper.selectAll();
if (role.getRoleName() != null) {
list = list.stream().filter(
o -> (o.getRoleName() != null && o.getRoleName().toLowerCase().contains(role.getRoleName().toLowerCase())))
.collect(Collectors.toList());
}
return list;
}
@Override
public SysRole info(Integer roleId) {
SysRole sysRole = sysRoleMapper.selectByPrimaryKey(roleId);
return sysRole;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveUserRole(Long userId, Long saveUserId, Long roleId) {
int result = 0;
if (saveUserId != null && roleId != null) {
//先删除用户关联数据
sysUserRoleRsMapper.deleteByUser(saveUserId);
SysUserRoleRs info = sysUserRoleRsMapper.selectByUser(saveUserId, roleId);
if (info != null) {
info.setState((short) StateType.ON.getValue());
result = sysUserRoleRsMapper.updateByPrimaryKey(info);
} else {
info = new SysUserRoleRs();
info.setCreateDate(new Date());
info.setCreateUserid(userId);
info.setState((short) StateType.ON.getValue());
info.setUserId(saveUserId);
info.setRoleId(roleId);
result = sysUserRoleRsMapper.insert(info);
}
}
return result > 0;
}
}
package com.hs.admin.service.impl;
import com.hs.admin.mapper.SysRoleMapper;
import com.hs.admin.mapper.SysUserRoleRsMapper;
import com.hs.admin.model.SysRole;
import com.hs.admin.model.SysUserRoleRs;
import com.hs.admin.service.SysUserRoleRsService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class SysUserRoleServiceImpl implements SysUserRoleRsService {
@Resource
private SysUserRoleRsMapper sysUserRoleRsMapper;
@Resource
private SysRoleMapper sysRoleMapper;
@Override
public List<SysRole> getRoleListByUser(Integer userId) throws Exception {
return sysRoleMapper.selectRoleByUser(userId);
}
@Override
public int add(SysUserRoleRs sysUserRoleRs) {
return sysUserRoleRsMapper.insert(sysUserRoleRs);
}
@Override
public List<SysUserRoleRs> findAll() {
return sysUserRoleRsMapper.selectAll();
}
@Override
public SysUserRoleRs find(Integer id) {
return sysUserRoleRsMapper.selectByPrimaryKey(id);
}
@Override
public int delete(Integer id) {
return sysUserRoleRsMapper.deleteByPrimaryKey(id);
}
@Override
public int logicDelete(Integer id) {
return 0;
}
@Override
public int update(SysUserRoleRs sysUserRoleRs) {
return sysUserRoleRsMapper.updateByPrimaryKey(sysUserRoleRs);
}
}
package com.hs.admin.service.impl;
import com.hs.admin.common.enums.StateType;
import com.hs.admin.mapper.SysUserMapper;
import com.hs.admin.model.SysUser;
import com.hs.admin.model.reqmodel.AddUserReq;
import com.hs.admin.model.reqmodel.UpdateUserReq;
import com.hs.admin.model.reqmodel.UserReq;
import com.hs.admin.model.respmodel.SysUserList;
import com.hs.admin.service.DicOrgService;
import com.hs.admin.service.SysRoleService;
import com.hs.admin.service.UserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class UserServiceImpl implements UserService {
@Resource
private SysUserMapper sysUserMapper;
@Resource
private SysRoleService sysRoleService;
@Resource
private DicOrgService dicOrgService;
@Override
public SysUser findByLoginName(String loginName) {
return sysUserMapper.selectByCode(loginName);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean addUser(Long userId, AddUserReq user) {
if (user != null) {
//添加用户信息
SysUser sysUser = new SysUser();
sysUser.setUserCode(user.getUserCode());
sysUser.setUserName(user.getUserName());
sysUser.setPassword(user.getPassword());
sysUser.setIdcard(user.getIdcard());
sysUser.setMobile(user.getMobile());
sysUser.setSex(user.getSex());
sysUser.setCreateDate(new Date());
sysUser.setCreateUserid(userId);
sysUser.setState((short) StateType.ON.getValue());
sysUserMapper.insert(sysUser);
//添加角色信息
sysRoleService.saveUserRole(userId, (long) sysUser.getId(), user.getRoleId());
//添加科室信息
dicOrgService.saveUserOrg(userId, (long) sysUser.getId(), user.getOrg());
return true;
}
return false;
}
@Override
public boolean deleteUser(UserReq.DeleteUserReq user) {
if (user != null) {
SysUser sysUser = sysUserMapper.selectByPrimaryKey(user.getUserId());
if (sysUser != null) {
sysUser.setState(sysUser.getState().equals((short) StateType.OFF.getValue()) ? (short) StateType.ON.getValue() : (short) StateType.OFF.getValue());
sysUserMapper.updateByPrimaryKey(sysUser);
return true;
}
}
return false;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateUser(UpdateUserReq user) {
if (user != null) {
SysUser sysUser = sysUserMapper.selectByPrimaryKey(user.getUserId());
if (sysUser != null) {
//修改用户
sysUser.setUserCode(user.getUserCode());
sysUser.setUserName(user.getUserName());
sysUser.setPassword(user.getPassword());
sysUser.setIdcard(user.getIdcard());
sysUser.setMobile(user.getMobile());
sysUser.setSex(user.getSex());
sysUserMapper.updateByPrimaryKey(sysUser);
//修改角色信息
sysRoleService.saveUserRole(1l, (long) sysUser.getId(), user.getRoleId());
//修改科室信息
dicOrgService.saveUserOrg(1l, (long) sysUser.getId(), user.getOrg());
return true;
}
}
return false;
}
@Override
public List<SysUserList> getAll(UserReq.GetUserReq user) {
List<SysUserList> list = sysUserMapper.selectUserList();
if (user.getUserName() != null) {
list = list.stream().filter(
o -> (o.getUserName() != null && o.getUserName().toLowerCase().contains(user.getUserName().toLowerCase())))
.collect(Collectors.toList());
}
return list;
}
@Override
public SysUserList info(Integer userId) {
SysUserList sysUser = sysUserMapper.selectUserById(userId);
return sysUser;
}
}
#### \u5F00\u53D1\u73AF\u5883 ###################################################
spring.datasource.url=jdbc:mysql://192.168.18.176:3306/scml_zp_cs?useUnicode=true&characterEncoding=utf8&useSSL=false&autoReconnect=true&rewriteBatchedStatements=TRUE&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=Suvalue2016
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA40\uFF09
spring.redis.database=0
spring.redis.host=192.168.18.169
spring.redis.port=6379
spring.redis.password=ll123456
spring.redis.jedis.pool.max-active=8
# \u8FDE\u63A5\u6C60\u6700\u5927\u963B\u585E\u7B49\u5F85\u65F6\u95F4\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09
spring.redis.jedis.pool.max-wait=-1
# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5
spring.redis.jedis.pool.max-idle=8
# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5
spring.redis.jedis.pool.min-idle=0
# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09
spring.redis.timeout=10000
swagger.enabled=true
swagger.basePackage=com.bsoft.admin.controller
\ No newline at end of file
#### \u6D4B\u8BD5\u73AF\u5883 ###################################################
spring.datasource.url=jdbc:mysql://192.168.18.176:3306/scml_sy2.0?useUnicode=true&characterEncoding=utf8&useSSL=false&autoReconnect=true&rewriteBatchedStatements=TRUE&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=Suvalue2016
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA40\uFF09
spring.redis.database=0
spring.redis.host=192.168.18.166
spring.redis.port=6379
spring.redis.password=ll123456
spring.redis.jedis.pool.max-active=8
# \u8FDE\u63A5\u6C60\u6700\u5927\u963B\u585E\u7B49\u5F85\u65F6\u95F4\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09
spring.redis.jedis.pool.max-wait=-1
# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5
spring.redis.jedis.pool.max-idle=8
# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5
spring.redis.jedis.pool.min-idle=0
# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09
spring.redis.timeout=100000
swagger.enabled=true
swagger.basePackage=com.hs.admin.controller
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
#Thymeleaf\u914D\u7F6E
spring.thymeleaf.cache=false
spring.thymeleaf.encoding=utf-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
\ No newline at end of file
spring.application.name=bsoftadmin
spring.profiles.active=test
#server.port=8080
#server.servlet.context-path=/api
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.hs.admin.model
config.path.include[0]=/user/**
config.path.exclude[0]=/user/login
# Add @EnableAspectJAutoProxy.
spring.aop.auto=true
# Whether subclass-based (CGLIB) proxies are to be created (true)
spring.aop.proxy-target-class=false
spring.jmx.enabled=false
#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05B6\uFFFD\u03AAnull\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0635\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD True\uFFFD\uFFFD\u02BE\uFFFD\uFFFD\uFFFD\uFFFD False\uFFFD\uFFFD\u02BE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
mybatis.configuration.call-setters-on-nulls=true
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同,以下配置参数在pom.xml里 -->
<!-- 日志级别 -->
<property name="log.root.level" value="INFO" />
<property name="log.dev.level" value="DEBUG" />
<property name="log.test.level" value="DEBUG" />
<property name="log.prod.level" value="DEBUG" />
<property name="log.max.size" value="10MB" /> <!-- 日志文件大小 -->
<springProperty scope="context" name="log.profile" source="spring.profiles.active" defaultValue="app"/>
<property name="log.base" value="/logs/admin/${log.profile}"/>
<springProperty scope="context" name="log.moduleName" source="spring.application.name" defaultValue="app"/>
<!--控制台输出 -->
<appender name="stdoutError" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</Pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</Pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 日志文件输出 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log.base}/${log.moduleName}.log</File><!-- 设置日志不超过${log.max.size}时的保存路径 -->
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>
${log.base}/archive/${log.moduleName}_all_%d{yyyy-MM-dd}.%i.log.zip
</FileNamePattern>
<!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${log.max.size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 日志输出的文件的格式 -->
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="fileError" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log.base}/${log.moduleName}.error.log</File>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>
${log.base}/archive/error/${log.moduleName}_info_%d{yyyy-MM-dd}.%i.log.zip
</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${log.max.size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 日志输出的文件的格式 -->
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="fileInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log.base}/${log.moduleName}.info.log</File>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>
${log.base}/archive/info/${log.moduleName}_error_%d{yyyy-MM-dd}.%i.log.zip
</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${log.max.size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 日志输出的文件的格式 -->
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<springProfile name="dev">
<root level="DEBUG">
<appender-ref ref="stdout" />
</root>
</springProfile>
<springProfile name="test">
<logger name="com.bsoft">
<level value="${log.test.level}" />
<appender-ref ref="fileInfo" />
<appender-ref ref="fileError" />
</logger>
<root level="${log.root.level}">
<appender-ref ref="file" />
<appender-ref ref="stdoutError" />
</root>
</springProfile>
<springProfile name="prod">
<logger name="com.bsoft">
<level value="${log.prod.level}" />
<appender-ref ref="fileInfo" />
<appender-ref ref="fileError" />
</logger>
<root level="${log.root.level}">
<appender-ref ref="file" />
<appender-ref ref="stdoutError" />
</root>
</springProfile>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hs.admin.mapper.DicOrgMapper">
<resultMap id="BaseResultMap" type="com.hs.admin.model.DicOrg">
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="CREATE_DATE" jdbcType="TIMESTAMP" property="createDate" />
<result column="CREATE_USERID" jdbcType="DECIMAL" property="createUserid" />
<result column="STATE" jdbcType="DECIMAL" property="state" />
<result column="ORG_CODE" jdbcType="VARCHAR" property="orgCode" />
<result column="ORG_NAME" jdbcType="VARCHAR" property="orgName" />
<result column="ORG_NO" jdbcType="VARCHAR" property="orgNo" />
<result column="ORG_SHORT_NAME" jdbcType="VARCHAR" property="orgShortName" />
<result column="ORG_GROUP" jdbcType="VARCHAR" property="orgGroup" />
<result column="ORG_TYPE" jdbcType="VARCHAR" property="orgType" />
<result column="ORG_ADDRESS" jdbcType="VARCHAR" property="orgAddress" />
<result column="PARENT_ID" jdbcType="DECIMAL" property="parentId" />
<result column="IS_NEW" jdbcType="DECIMAL" property="isNew" />
</resultMap>
<resultMap id="DicOrgResultMap" extends="BaseResultMap" type="com.hs.admin.model.respmodel.DicOrgList" />
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from sys_subject
where ID = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.hs.admin.model.DicOrg">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into sys_subject (CREATE_DATE, CREATE_USERID, `STATE`,
ORG_CODE, ORG_NAME, ORG_NO,
ORG_SHORT_NAME, ORG_GROUP, ORG_TYPE,
ORG_ADDRESS, PARENT_ID,IS_NEW)
values (#{createDate,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL},
#{orgCode,jdbcType=VARCHAR}, #{orgName,jdbcType=VARCHAR}, #{orgNo,jdbcType=VARCHAR},
#{orgShortName,jdbcType=VARCHAR}, #{orgGroup,jdbcType=VARCHAR}, #{orgType,jdbcType=VARCHAR},
#{orgAddress,jdbcType=VARCHAR}, #{parentId,jdbcType=DECIMAL}, #{isNew,jdbcType=DECIMAL})
</insert>
<update id="updateByPrimaryKey" parameterType="com.hs.admin.model.DicOrg">
update sys_subject
set CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=DECIMAL},
`STATE` = #{state,jdbcType=DECIMAL},
ORG_CODE = #{orgCode,jdbcType=VARCHAR},
ORG_NAME = #{orgName,jdbcType=VARCHAR},
ORG_NO = #{orgNo,jdbcType=VARCHAR},
ORG_SHORT_NAME = #{orgShortName,jdbcType=VARCHAR},
ORG_GROUP = #{orgGroup,jdbcType=VARCHAR},
ORG_TYPE = #{orgType,jdbcType=VARCHAR},
ORG_ADDRESS = #{orgAddress,jdbcType=VARCHAR},
PARENT_ID = #{parentId,jdbcType=DECIMAL},
IS_NEW = #{isNew,jdbcType=DECIMAL}
where ID = #{id,jdbcType=INTEGER}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, ORG_CODE, ORG_NAME, ORG_NO, ORG_SHORT_NAME,
ORG_GROUP, ORG_TYPE, ORG_ADDRESS, PARENT_ID,IS_NEW
from sys_subject
where ID = #{id,jdbcType=INTEGER}
</select>
<select id="selectParentAll" resultMap="DicOrgResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, ORG_CODE, ORG_NAME, ORG_NO, ORG_SHORT_NAME,
ORG_GROUP, ORG_TYPE, ORG_ADDRESS, PARENT_ID,IS_NEW
from sys_subject
where `STATE`=1
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, ORG_CODE, ORG_NAME, ORG_NO, ORG_SHORT_NAME,
ORG_GROUP, ORG_TYPE, ORG_ADDRESS, PARENT_ID,IS_NEW
from sys_subject
</select>
<select id="selectByUser" resultMap="BaseResultMap">
SELECT o.*
FROM sys_user_sbj_rs uor,sys_subject o
where uor.ORG_ID=o.ID and uor.USER_ID= #{userId,jdbcType=DECIMAL}
and o.`STATE`=1 and uor.`STATE`=1
</select>
<select id="selectByName" resultMap="BaseResultMap">
select * from sys_subject where ORG_NAME=#{orgName,jdbcType=VARCHAR} and `STATE`=1
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hs.admin.mapper.SysMenuMapper">
<resultMap id="BaseResultMap" type="com.hs.admin.model.SysMenu">
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="CREATE_DATA" jdbcType="TIMESTAMP" property="createData" />
<result column="CREATE_USERID" jdbcType="DECIMAL" property="createUserid" />
<result column="STATE" jdbcType="DECIMAL" property="state" />
<result column="MENU_NAME" jdbcType="VARCHAR" property="menuName" />
<result column="MENU_URL" jdbcType="VARCHAR" property="menuUrl" />
<result column="MENU_IMAGE" jdbcType="VARCHAR" property="menuImage" />
<result column="PARENT_ID" jdbcType="DECIMAL" property="parentId" />
<result column="PAGE_CODE" jdbcType="VARCHAR" property="pageCode" />
<result column="SORT" jdbcType="DECIMAL" property="sort" />
</resultMap>
<resultMap id="sysMenuResultMap" type="com.hs.admin.model.respmodel.SysMenuList" extends="BaseResultMap"/>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from sys_menu
where ID = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.hs.admin.model.SysMenu">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into sys_menu (CREATE_DATA, CREATE_USERID, `STATE`,
MENU_NAME, MENU_URL, MENU_IMAGE,
PARENT_ID, PAGE_CODE, SORT
)
values (#{createData,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL},
#{menuName,jdbcType=VARCHAR}, #{menuUrl,jdbcType=VARCHAR}, #{menuImage,jdbcType=VARCHAR},
#{parentId,jdbcType=DECIMAL}, #{pageCode,jdbcType=VARCHAR}, #{sort,jdbcType=DECIMAL}
)
</insert>
<update id="updateByPrimaryKey" parameterType="com.hs.admin.model.SysMenu">
update sys_menu
set CREATE_DATA = #{createData,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=DECIMAL},
`STATE` = #{state,jdbcType=DECIMAL},
MENU_NAME = #{menuName,jdbcType=VARCHAR},
MENU_URL = #{menuUrl,jdbcType=VARCHAR},
MENU_IMAGE = #{menuImage,jdbcType=VARCHAR},
PARENT_ID = #{parentId,jdbcType=DECIMAL},
PAGE_CODE = #{pageCode,jdbcType=VARCHAR},
SORT = #{sort,jdbcType=DECIMAL}
where ID = #{id,jdbcType=INTEGER}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select ID, CREATE_DATA, CREATE_USERID, `STATE`, MENU_NAME, MENU_URL, MENU_IMAGE,
PARENT_ID, PAGE_CODE, SORT
from sys_menu
where ID = #{id,jdbcType=INTEGER}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATA, CREATE_USERID, `STATE`, MENU_NAME, MENU_URL, MENU_IMAGE,
PARENT_ID, PAGE_CODE, SORT
from sys_menu
</select>
<select id="selectParentAll" resultMap="sysMenuResultMap">
select ID, CREATE_DATA, CREATE_USERID, `STATE`, MENU_NAME, MENU_URL, MENU_IMAGE,
PARENT_ID, PAGE_CODE, SORT
from SYS_MENU
where `STATE`=1
</select>
<select id="selectMenuAllByUser" resultMap="sysMenuResultMap">
select DISTINCT m.ID,m.MENU_NAME,m.MENU_URL,m.MENU_IMAGE,m.PARENT_ID,m.PAGE_CODE,m.SORT,umr.STATE
from
SYS_USER_MENU_RS umr
LEFT JOIN
SYS_MENU m on umr.MENU_ID = m.ID
where m.STATE=1 and umr.USER_ID = #{userId,jdbcType=DECIMAL}
</select>
<select id="selectMenuByRole" resultMap="sysMenuResultMap">
select DISTINCT m.ID,m.MENU_NAME,m.MENU_URL,m.MENU_IMAGE,m.PARENT_ID,m.PAGE_CODE,m.SORT,rmr.STATE
from
SYS_ROLE_MENU_RS rmr
LEFT JOIN
SYS_MENU m on rmr.MENU_ID = m.ID
LEFT JOIN
SYS_USER_ROLE_RS urr on rmr.ROLE_ID = urr.Role_ID
where rmr.STATE=1 and m.STATE=1 and urr.STATE=1 and urr.USER_ID = #{userId,jdbcType=DECIMAL}
</select>
<select id="selectMaxSort" resultType="java.lang.Integer">
select nvl(MAX(SORT),0) AS SORT
from SYS_MENU
where PARENT_ID=#{parentId,jdbcType=DECIMAL}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hs.admin.mapper.SysRoleMapper">
<resultMap id="BaseResultMap" type="com.hs.admin.model.SysRole">
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="CREATE_DATE" jdbcType="TIMESTAMP" property="createDate" />
<result column="CREATE_USERID" jdbcType="DECIMAL" property="createUserid" />
<result column="STATE" jdbcType="DECIMAL" property="state" />
<result column="ROLE_NAME" jdbcType="VARCHAR" property="roleName" />
<result column="ROLE_CODE" jdbcType="DECIMAL" property="roleCode" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from sys_role
where ID = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.hs.admin.model.SysRole">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into sys_role (CREATE_DATE, CREATE_USERID, `STATE`,
ROLE_NAME, ROLE_CODE)
values (#{createDate,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL},
#{roleName,jdbcType=VARCHAR}, #{roleCode,jdbcType=DECIMAL})
</insert>
<update id="updateByPrimaryKey" parameterType="com.hs.admin.model.SysRole">
update sys_role
set CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=DECIMAL},
`STATE` = #{state,jdbcType=DECIMAL},
ROLE_NAME = #{roleName,jdbcType=VARCHAR},
ROLE_CODE = #{roleCode,jdbcType=DECIMAL}
where ID = #{id,jdbcType=INTEGER}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, ROLE_NAME, ROLE_CODE
from sys_role
where ID = #{id,jdbcType=INTEGER}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, ROLE_NAME, ROLE_CODE
from sys_role
</select>
<select id="selectRoleByUser" resultMap="BaseResultMap">
select r.*
from SYS_USER_ROLE_RS rs,SYS_ROLE r
where USER_ID=#{userId,jdbcType=DECIMAL} and rs.ROLE_ID=r.ID
and rs.STATE!=0 and r.STATE!=0
</select>
<select id="selectByCode" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, ROLE_NAME, ROLE_CODE
from SYS_ROLE
where ROLE_CODE = #{roleCode,jdbcType=DECIMAL} and `STATE`!=0
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hs.admin.mapper.SysRoleMenuRsMapper">
<resultMap id="BaseResultMap" type="com.hs.admin.model.SysRoleMenuRs">
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="CREATE_DATE" jdbcType="TIMESTAMP" property="createDate" />
<result column="CREATE_USERID" jdbcType="DECIMAL" property="createUserid" />
<result column="STATE" jdbcType="DECIMAL" property="state" />
<result column="MENU_ID" jdbcType="DECIMAL" property="menuId" />
<result column="ROLE_ID" jdbcType="DECIMAL" property="roleId" />
</resultMap>
<resultMap id="SysRoleMenuRsList" extends="BaseResultMap" type="com.hs.admin.model.respmodel.SysRoleMenuRsList">
<result column="PARENT_ID" jdbcType="DECIMAL" property="parentId" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from sys_role_menu_rs
where ID = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.hs.admin.model.SysRoleMenuRs">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into sys_role_menu_rs (CREATE_DATE, CREATE_USERID, `STATE`,
MENU_ID, ROLE_ID)
values (#{createDate,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL},
#{menuId,jdbcType=DECIMAL}, #{roleId,jdbcType=DECIMAL})
</insert>
<update id="updateByPrimaryKey" parameterType="com.hs.admin.model.SysRoleMenuRs">
update sys_role_menu_rs
set CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=DECIMAL},
`STATE` = #{state,jdbcType=DECIMAL},
MENU_ID = #{menuId,jdbcType=DECIMAL},
ROLE_ID = #{roleId,jdbcType=DECIMAL}
where ID = #{id,jdbcType=INTEGER}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, MENU_ID, ROLE_ID
from sys_role_menu_rs
where ID = #{id,jdbcType=INTEGER}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, MENU_ID, ROLE_ID
from sys_role_menu_rs
</select>
<select id="selectByRole" resultMap="SysRoleMenuRsList">
select MAP.*,m.PARENT_ID
from SYS_ROLE_MENU_RS MAP
join SYS_MENU m on m.ID=MAP.MENU_ID
where MAP.`STATE`=1 and MAP.ROLE_ID = #{roleId,jdbcType=DECIMAL}
</select>
<update id="deleteAllByRole">
update SYS_ROLE_MENU_RS set `STATE`=0 where ROLE_ID = #{roleId,jdbcType=DECIMAL}
</update>
<select id="selectByUserWithRole" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, `STATE`, MENU_ID, ROLE_ID
from SYS_ROLE_MENU_RS
where ROLE_ID = #{roleId,jdbcType=DECIMAL}
and MENU_ID=#{menuId,jdbcType=DECIMAL}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hs.admin.mapper.SysUserMapper">
<resultMap id="BaseResultMap" type="com.hs.admin.model.SysUser">
<id column="ID" jdbcType="INTEGER" property="id"/>
<result column="CREATE_DATE" jdbcType="TIMESTAMP" property="createDate"/>
<result column="CREATE_USERID" jdbcType="DECIMAL" property="createUserid"/>
<result column="STATE" jdbcType="DECIMAL" property="state"/>
<result column="USER_CODE" jdbcType="VARCHAR" property="userCode"/>
<result column="USER_NAME" jdbcType="VARCHAR" property="userName"/>
<result column="PASSWORD" jdbcType="VARCHAR" property="password"/>
<result column="IDCARD" jdbcType="VARCHAR" property="idcard"/>
<result column="SEX" jdbcType="VARCHAR" property="sex"/>
<result column="MOBILE" jdbcType="VARCHAR" property="mobile"/>
<result column="PAGE_COUNT" jdbcType="DECIMAL" property="pageCount"/>
<result column="ERROR_COUNT" jdbcType="DECIMAL" property="errorCount"/>
<result column="ERROR_TIME" jdbcType="TIMESTAMP" property="errorTime"/>
<result column="LAST_TIME" jdbcType="TIMESTAMP" property="lastTime"/>
<result column="LAST_IP" jdbcType="VARCHAR" property="lastIp"/>
</resultMap>
<resultMap id="SysUserList" extends="BaseResultMap" type="com.hs.admin.model.respmodel.SysUserList">
<result column="ROLE_ID" jdbcType="INTEGER" property="roleId"/>
<result column="ROLE_NAME" jdbcType="VARCHAR" property="roleName"/>
<result column="ORG_ID" jdbcType="INTEGER" property="orgId"/>
<result column="ORG_NAME" jdbcType="VARCHAR" property="orgName"/>
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete
from sys_user
where ID = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.hs.admin.model.SysUser">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into sys_user (CREATE_DATE, CREATE_USERID, `STATE`,
USER_CODE, USER_NAME, `PASSWORD`,
IDCARD, SEX, MOBILE,
PAGE_COUNT, ERROR_COUNT, ERROR_TIME,
LAST_TIME, LAST_IP,MAC_ADDRESS)
values (#{createDate,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL},
#{userCode,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{idcard,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR},
#{pageCount,jdbcType=DECIMAL}, #{errorCount,jdbcType=DECIMAL}, #{errorTime,jdbcType=TIMESTAMP},
#{lastTime,jdbcType=TIMESTAMP}, #{lastIp,jdbcType=VARCHAR},'EO-D5-5E-6C-4D-7B')
</insert>
<update id="updateByPrimaryKey" parameterType="com.hs.admin.model.SysUser">
update sys_user
set CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=DECIMAL},
`STATE` = #{state,jdbcType=DECIMAL},
USER_CODE = #{userCode,jdbcType=VARCHAR},
USER_NAME = #{userName,jdbcType=VARCHAR},
`PASSWORD` = #{password,jdbcType=VARCHAR},
IDCARD = #{idcard,jdbcType=VARCHAR},
SEX = #{sex,jdbcType=VARCHAR},
MOBILE = #{mobile,jdbcType=VARCHAR},
PAGE_COUNT = #{pageCount,jdbcType=DECIMAL},
ERROR_COUNT = #{errorCount,jdbcType=DECIMAL},
ERROR_TIME = #{errorTime,jdbcType=TIMESTAMP},
LAST_TIME = #{lastTime,jdbcType=TIMESTAMP},
LAST_IP = #{lastIp,jdbcType=VARCHAR}
where ID = #{id,jdbcType=INTEGER}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select ID,
CREATE_DATE,
CREATE_USERID,
`STATE`,
USER_CODE,
USER_NAME,
`PASSWORD`,
IDCARD,
SEX,
MOBILE,
PAGE_COUNT,
ERROR_COUNT,
ERROR_TIME,
LAST_TIME,
LAST_IP
from sys_user
where ID = #{id,jdbcType=INTEGER}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID,
CREATE_DATE,
CREATE_USERID,
`STATE`,
USER_CODE,
USER_NAME,
`PASSWORD`,
IDCARD,
SEX,
MOBILE,
PAGE_COUNT,
ERROR_COUNT,
ERROR_TIME,
LAST_TIME,
LAST_IP
from sys_user
</select>
<select id="selectByCode" resultMap="BaseResultMap">
select ID,
CREATE_DATE,
CREATE_USERID,
STATE,
USER_CODE,
USER_NAME,
PASSWORD,
IDCARD,
SEX,
MOBILE,
PAGE_COUNT,
ERROR_COUNT,
ERROR_TIME,
LAST_TIME,
LAST_IP
from SYS_USER
where USER_CODE = #{userCode,jdbcType=VARCHAR}
and `STATE` != 0
</select>
<select id="selectUserList" resultMap="SysUserList">
select r.ID as ROLE_ID, r.ROLE_NAME, s.ID as ORG_ID, s.ORG_NAME, u.*
from sys_user u
join sys_user_role_rs ur on ur.USER_ID = u.ID and ur.STATE = 1
join sys_role r on r.ID = ur.ROLE_ID and r.STATE = 1
join sys_user_sbj_rs us on us.USER_ID = u.ID and us.STATE = 1
join sys_subject s on s.ID = us.ORG_ID and s.STATE = 1 and ((s.PARENT_ID != 0 and r.ROLE_CODE != 1) or
(s.PARENT_ID = 0 and r.ROLE_CODE = 1))
</select>
<select id="selectUserById" resultMap="SysUserList">
select r.ID as ROLE_ID, r.ROLE_NAME, s.ID as ORG_ID, s.ORG_NAME, u.*
from sys_user u
join sys_user_role_rs ur on ur.USER_ID = u.ID and ur.STATE = 1
join sys_role r on r.ID = ur.ROLE_ID and r.STATE = 1
join sys_user_sbj_rs us on us.USER_ID = u.ID and us.STATE = 1
join sys_subject s on s.ID = us.ORG_ID and s.STATE = 1 and ((s.PARENT_ID != 0 and r.ROLE_CODE != 1) or
(s.PARENT_ID = 0 and r.ROLE_CODE = 1))
where u.id = #{id}
</select>
</mapper>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed. Click to expand it.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment