Commit 6ac2589c by Suvalue

后台相关接口

parent 080cf3a6
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.bsoft</groupId>
<artifactId>bsoft-admin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>bsoft-admin</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.bsoft</groupId>
<artifactId>bsoft-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>6.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</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.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>com.bsoft</groupId>
<artifactId>bsoft-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<!--配置文件的位置-->
<configurationFile>../bsoft-admin/src/test/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<!--region mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<!--endregion-->
<!--region Oracle-->
<dependency>
<groupId>org.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>6.0</version>
</dependency>
<!--endregion-->
<!--region mssql-->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.2.0.jre8</version>
<scope>runtime</scope>
</dependency>
<!--endregion-->
<!--region Mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.1</version>
</dependency>
<!--endregion-->
<!--region Mybatis Generator-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!--endregion-->
</dependencies>
</plugin>
</plugins>
</build>
</project>
package com.bsoft.admin;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@MapperScan("com.bsoft.admin.mapper")
@ComponentScan(basePackages = {"com.bsoft.common.config","com.bsoft.admin"})
public class BsoftAdminApplication {
public static void main(String[] args) {
SpringApplication.run(BsoftAdminApplication.class, args);
}
}
package com.bsoft.admin.common;
public interface Constants {
String TOKEN_KEY = "Authorization";
}
package com.bsoft.admin.common;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* 请求统一返回结果
*/
@ApiModel(description = "接口结果")
public class Result<T> {
@ApiModelProperty("错误编码")
private int code;
@ApiModelProperty("错误信息")
private String msg;
@ApiModelProperty(value = "返回的数据")
private T data;
private Result(int code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
@Override
public String toString() {
return "{" +
"\"code\":" + code +
", \"msg\":\"" + msg + '\"' +
", \"data\":" + data +
'}';
}
public int getCode() {
return code;
}
public void setCode(int 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(T data) {
this.data = data;
}
public static <T> Result<T> success(T 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(){
return new Result(ErrorCode.ERROR.getCode(), ErrorCode.ERROR.getEnMessage(), null);
}
public static Result error(String msg){
return new Result(ErrorCode.ERROR.getCode(), msg, null);
}
public static Result error(ErrorCode errorCode){
return new Result(errorCode.getCode(), errorCode.getEnMessage(), null);
}
public static enum ErrorCode{
SUCCESS(1, "成功", "success"),
INVALID_TOKEN(401, "无效的TOKEN", "invalid token"),
ERROR(400, "错误", "error"),
USERERROR(2,"账号或密码错误","wrong account or password");
private int code;
private String cnMessage;
private String enMessage;
ErrorCode(int code, String cnMessage, String enMessage) {
this.code = code;
this.cnMessage = cnMessage;
this.enMessage = enMessage;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getCnMessage() {
return cnMessage;
}
public void setCnMessage(String cnMessage) {
this.cnMessage = cnMessage;
}
public String getEnMessage() {
return enMessage;
}
public void setEnMessage(String enMessage) {
this.enMessage = enMessage;
}
}
}
package com.bsoft.admin.common.annotations;
import java.lang.annotation.*;
/**
* 绑定当前用户
*/
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CurrentUser {
}
package com.bsoft.admin.common.annotations;
import org.springframework.core.annotation.AliasFor;
import java.lang.annotation.*;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Token {
@AliasFor("value")
boolean required() default true;
@AliasFor("required")
boolean value() default true;
}
package com.bsoft.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.admin.common.aspect;
import com.bsoft.admin.common.Constants;
import com.bsoft.admin.common.exceptions.InvalidTokenException;
import com.bsoft.admin.common.utils.TokenUtil;
import com.bsoft.admin.common.Constants;
import com.bsoft.admin.common.exceptions.InvalidTokenException;
import com.bsoft.admin.common.utils.TokenUtil;
import com.bsoft.common.utils.StringUtil;
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;
@Aspect
@Component
@Order(1)
@Profile({"test","prod"})
public class TokenAspect {
@Pointcut("@annotation(com.bsoft.admin.common.annotations.Token)")
public void tokenAspect(){}
@Around("tokenAspect()")
public Object verifierToken(ProceedingJoinPoint joinPoint) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader(Constants.TOKEN_KEY);
if(!StringUtil.isNullOrEmpty(token) && TokenUtil.checkToken(token)){
return joinPoint.proceed();
}
String remoteHost = request.getRemoteHost();
String uri = request.getRequestURI();
Logger logger = org.slf4j.LoggerFactory.getLogger(joinPoint.getTarget().getClass());
logger.info(remoteHost + " 访问 " + uri + ", token无效, token:[" + token + "]");
throw new InvalidTokenException("无效的TOKEN");
}
}
package com.bsoft.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.admin.common.configurations;
import com.bsoft.admin.common.resolvers.CurrentUserMethodArgumentResolver;
import com.bsoft.admin.common.resolvers.CurrentUserMethodArgumentResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.List;
@Configuration
public class CurrentUserConfigure implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers){
resolvers.add(currentUserMethodArgumentResolver());
}
@Bean
public CurrentUserMethodArgumentResolver currentUserMethodArgumentResolver(){
return new CurrentUserMethodArgumentResolver();
}
}
package com.bsoft.admin.common.configurations;
import com.bsoft.admin.common.intercepters.LoginInterceptor;
import com.bsoft.admin.common.intercepters.LoginInterceptor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.List;
@Configuration
@ConfigurationProperties(prefix = "config.path")
public class LoginConfigure implements WebMvcConfigurer {
/**
* 需要登录的拦截路由
*/
private List<String> include = new ArrayList<>();
/**
* 排除登录的拦截路由
*/
private List<String> exclude = new ArrayList<>();
public void setInclude(List<String> include) {
this.include = include;
}
public void setExclude(List<String> exclude) {
this.exclude = exclude;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(loginIntercepter()).addPathPatterns(include).excludePathPatterns(exclude);
WebMvcConfigurer.super.addInterceptors(registry);
}
@Bean
public LoginInterceptor loginIntercepter(){
return new LoginInterceptor();
}
}
package com.bsoft.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.bsoft.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.bsoft.admin.common.exceptions;
public class DBConfigurationError extends ExceptionBase {
public DBConfigurationError(String message){
super(message);
}
}
package com.bsoft.admin.common.exceptions;
public class ExceptionBase extends RuntimeException {
public ExceptionBase(){
super();
}
public ExceptionBase(String message){
super(message);
}
}
package com.bsoft.admin.common.exceptions;
public class InvalidTokenException extends ExceptionBase {
public InvalidTokenException(){
super();
}
public InvalidTokenException(String message){
super(message);
}
}
package com.bsoft.admin.common.handlers;
import com.bsoft.admin.common.Result;
import com.bsoft.admin.common.exceptions.DBConfigurationError;
import com.bsoft.admin.common.exceptions.ExceptionBase;
import com.bsoft.admin.common.exceptions.InvalidTokenException;
import com.bsoft.admin.common.Result;
import com.bsoft.admin.common.exceptions.DBConfigurationError;
import com.bsoft.admin.common.exceptions.ExceptionBase;
import com.bsoft.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.admin.common.intercepters;
import com.bsoft.admin.common.Constants;
import com.bsoft.admin.common.Result;
import com.bsoft.admin.common.utils.TokenUtil;
import com.bsoft.admin.common.Constants;
import com.bsoft.admin.common.Result;
import com.bsoft.admin.common.utils.TokenUtil;
import org.slf4j.Logger;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class LoginInterceptor implements HandlerInterceptor {
Logger logger = org.slf4j.LoggerFactory.getLogger(LoginInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("LoginInterceptor----------->preHandle");
String token = request.getHeader(Constants.TOKEN_KEY);
if(!TokenUtil.checkToken(token)){
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
PrintWriter writer = null;
try {
String remoteHost = request.getRemoteHost();
String uri = request.getRequestURI();
logger.info(remoteHost + " 访问 " + uri + ", token无效, token:[" + token + "]");
writer = response.getWriter();
writer.print(Result.error(Result.ErrorCode.INVALID_TOKEN));
}catch (IOException e){
logger.error(e.getMessage());
}finally {
if(writer != null){
writer.close();
}
}
return false;
}
return HandlerInterceptor.super.preHandle(request, response, handler);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("LoginInterceptor----------->postHandle");
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("LoginInterceptor------->afterCompletion");
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
package com.bsoft.admin.common.resolvers;
import com.bsoft.admin.common.Constants;
import com.bsoft.admin.common.annotations.CurrentUser;
import com.bsoft.admin.common.utils.TokenUtil;
import com.bsoft.admin.common.Constants;
import com.bsoft.admin.common.annotations.CurrentUser;
import com.bsoft.admin.common.utils.TokenUtil;
import com.bsoft.admin.model.SysUser;
import com.bsoft.common.utils.RedisUtil;
import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter methodParameter) {
return methodParameter.hasParameterAnnotation(CurrentUser.class);
}
@Override
public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer,
NativeWebRequest nativeWebRequest, WebDataBinderFactory webDataBinderFactory) {
String token = nativeWebRequest.getHeader(Constants.TOKEN_KEY);
if(TokenUtil.checkToken(token)){
SysUser user = (SysUser) RedisUtil.get(token);
return user.getId();
}
return null;
}
}
package com.bsoft.admin.common.utils;
public class SqlUtil {
public static String TransactSQLInjection(String str)
{
return str.replaceAll(".*([';]+|(--)+).*", " ");
}
}
package com.bsoft.admin.common.utils;
import com.bsoft.admin.model.SysUser;
import com.bsoft.common.utils.JWTUtil;
import com.bsoft.common.utils.RedisUtil;
public class TokenUtil {
public final static long TOKEN_TIME_OUT = 2L * 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.admin.controller;
import com.bsoft.admin.common.Result;
import com.bsoft.admin.model.reqmodel.CodeAndPwd;
import com.bsoft.admin.service.LoginService;
import com.bsoft.common.utils.HttpUtil;
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.servlet.http.HttpServletRequest;
@RestController
@RequestMapping()
@Api(tags = {"登录"})
public class LoginController {
@Autowired
private LoginService loginServiceImpl;
@PostMapping("login")
@ApiOperation(value="Result«LoginService.LoginInfo»登录")
public Result<LoginService.LoginInfo> login(@RequestBody CodeAndPwd codeAndPwd,HttpServletRequest request){
String ip = HttpUtil.getIP(request);
LoginService.LoginInfo loginInfo = loginServiceImpl.login(
codeAndPwd.getLoginName(),codeAndPwd.getPassword(),ip);
if(loginInfo==null){
return Result.error(Result.ErrorCode.USERERROR);
}
return Result.success(loginInfo);
}
@PostMapping("token")
@ApiOperation("刷新TOKEN")
public Result<String> refresh(@ApiIgnore HttpServletRequest request){
String oldToken = request.getHeader("Authorization");
String token = loginServiceImpl.refreshToken(oldToken);
return Result.success(token);
}
}
package com.bsoft.admin.controller;
import com.bsoft.admin.common.Result;
import com.bsoft.admin.common.annotations.CurrentUser;
import com.bsoft.admin.common.annotations.Token;
import com.bsoft.admin.model.SysRole;
import com.bsoft.admin.model.SysUser;
import com.bsoft.admin.model.reqmodel.RoleReq;
import com.bsoft.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 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(@RequestBody RoleReq.GetReq role)throws Exception{
List<SysRole> list = sysRoleService.getAll(role);
return Result.success(list);
}
@PostMapping("info")
@Token
@ApiOperation("查询角色详细信息")
public Object getById(@RequestBody RoleReq.InfoReq role)throws Exception{
SysRole info = sysRoleService.info(role.getRoleId());
return Result.success(info);
}
@PostMapping("add")
@Token
@ApiOperation("添加角色")
public Object addUser(@ApiIgnore @CurrentUser Long userId, @RequestBody RoleReq.AddReq role)throws Exception{
SysRole sysRole = sysRoleService.findByCode(role.getRoleCode());
if(sysRole!=null){
return Result.error("该角色已存在!");
}
boolean result = sysRoleService.addRole(userId,role);
if(result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("delete")
@Token
@ApiOperation("删除角色")
public Object addUser(@RequestBody RoleReq.DeleteReq 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(@RequestBody RoleReq.UpdateReq 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();
}
}
package com.bsoft.admin.controller;
import com.bsoft.admin.common.Result;
import com.bsoft.admin.common.annotations.CurrentUser;
import com.bsoft.admin.common.annotations.Token;
import com.bsoft.admin.model.SysRole;
import com.bsoft.admin.model.SysUser;
import com.bsoft.admin.model.reqmodel.UserReq;
import com.bsoft.admin.model.respmodel.SysMenuList;
import com.bsoft.admin.service.SysMenuService;
import com.bsoft.admin.service.SysUserRoleRsService;
import com.bsoft.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 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.GetReq user)throws Exception{
List<SysUser> list = userService.getAll(user);
return Result.success(list);
}
@PostMapping("info")
@Token
@ApiOperation("查询用户详细信息")
public Object getById(@RequestBody UserReq.InfoReq user)throws Exception{
SysUser info = userService.info(user.getUserId());
return Result.success(info);
}
@PostMapping("add")
@Token
@ApiOperation("添加用户")
public Object addUser(@ApiIgnore@CurrentUser Long userId, @RequestBody UserReq.AddReq user)throws Exception{
SysUser sysUser = userService.findByLoginName(user.getUserCode());
if(sysUser!=null){
return Result.error("该账号已存在!");
}
boolean result =userService.addUser(userId,user);
if(result)
return Result.success(null);
else
return Result.error();
}
@PostMapping("delete")
@Token
@ApiOperation("删除用户")
public Object deleteUser(@RequestBody UserReq.DeleteReq 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(@RequestBody UserReq.UpdateReq user)throws Exception{
SysUser 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(@ApiIgnore@CurrentUser Long userId)throws Exception{
List<SysRole> sysRoleList = sysUserRoleRsService.getRoleListByUser(userId);
return Result.success(sysRoleList);
}
@PostMapping("menus")
@Token
@ApiOperation("查询用户菜单")
public Object getMenuByUser(@ApiIgnore@CurrentUser Long userId)throws Exception{
List<SysMenuList> sysMenuList = sysMenuService.getMenu(userId);
return Result.success(sysMenuList);
}
}
package com.bsoft.admin.mapper;
import com.bsoft.admin.model.DicOrg;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DicOrgMapper {
int deleteByPrimaryKey(Long id);
int insert(DicOrg record);
DicOrg selectByPrimaryKey(Long id);
List<DicOrg> selectAll();
int updateByPrimaryKey(DicOrg record);
List<DicOrg> selectByUser(@Param("userId") Long userId);
}
\ No newline at end of file
package com.bsoft.admin.mapper;
import com.bsoft.admin.model.SysMenu;
import com.bsoft.admin.model.respmodel.SysMenuList;
import java.util.List;
public interface SysMenuMapper {
int deleteByPrimaryKey(Long id);
int insert(SysMenu record);
SysMenu selectByPrimaryKey(Long id);
List<SysMenu> selectAll();
int updateByPrimaryKey(SysMenu record);
List<SysMenuList> selectMenuByUser(Long userId);
}
\ No newline at end of file
package com.bsoft.admin.mapper;
import com.bsoft.admin.model.SysRole;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysRoleMapper {
int deleteByPrimaryKey(Long id);
int insert(SysRole record);
SysRole selectByPrimaryKey(Long id);
List<SysRole> selectAll();
int updateByPrimaryKey(SysRole record);
List<SysRole> selectRoleByUser(Long userId);
SysRole selectByCode(@Param("roleCode") Long roleCode);
}
\ No newline at end of file
package com.bsoft.admin.mapper;
import com.bsoft.admin.model.SysRoleMenuRs;
import java.util.List;
public interface SysRoleMenuRsMapper {
int deleteByPrimaryKey(Long id);
int insert(SysRoleMenuRs record);
SysRoleMenuRs selectByPrimaryKey(Long id);
List<SysRoleMenuRs> selectAll();
int updateByPrimaryKey(SysRoleMenuRs record);
}
\ No newline at end of file
package com.bsoft.admin.mapper;
import com.bsoft.admin.model.SysUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysUserMapper {
int deleteByPrimaryKey(Long id);
int insert(SysUser record);
SysUser selectByPrimaryKey(Long id);
List<SysUser> selectAll();
int updateByPrimaryKey(SysUser record);
SysUser selectByCode(@Param("userCode") String loginName);
}
\ No newline at end of file
package com.bsoft.admin.mapper;
import com.bsoft.admin.model.SysUserMenuRs;
import java.util.List;
public interface SysUserMenuRsMapper {
int deleteByPrimaryKey(Long id);
int insert(SysUserMenuRs record);
SysUserMenuRs selectByPrimaryKey(Long id);
List<SysUserMenuRs> selectAll();
int updateByPrimaryKey(SysUserMenuRs record);
}
\ No newline at end of file
package com.bsoft.admin.mapper;
import com.bsoft.admin.model.SysUserOrgRs;
import java.util.List;
public interface SysUserOrgRsMapper {
int deleteByPrimaryKey(Long id);
int insert(SysUserOrgRs record);
SysUserOrgRs selectByPrimaryKey(Long id);
List<SysUserOrgRs> selectAll();
int updateByPrimaryKey(SysUserOrgRs record);
}
\ No newline at end of file
package com.bsoft.admin.mapper;
import com.bsoft.admin.model.SysUserRoleRs;
import com.bsoft.admin.model.SysRole;
import java.util.List;
public interface SysUserRoleRsMapper {
int deleteByPrimaryKey(Long id);
int insert(SysUserRoleRs record);
SysUserRoleRs selectByPrimaryKey(Long id);
List<SysUserRoleRs> selectAll();
int updateByPrimaryKey(SysUserRoleRs record);
}
\ No newline at end of file
package com.bsoft.admin.model;
import java.util.Date;
public class DicOrg {
private Long 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 Long parentId;
public Long getId() {
return id;
}
public void setId(Long 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 Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
@Override
public String toString() {
return "DicOrg{" +
"id=" + id +
", createDate=" + createDate +
", createUserid=" + createUserid +
", state=" + state +
", orgCode='" + orgCode + '\'' +
", orgName='" + orgName + '\'' +
", orgNo='" + orgNo + '\'' +
", orgShortName='" + orgShortName + '\'' +
", orgGroup='" + orgGroup + '\'' +
", orgType='" + orgType + '\'' +
", orgAddress='" + orgAddress + '\'' +
", parentId=" + parentId +
'}';
}
}
\ No newline at end of file
package com.bsoft.admin.model;
import java.util.Date;
public class SysMenu {
private Long 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 Long getId() {
return id;
}
public void setId(Long 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;
}
@Override
public String toString() {
return "SysMenu{" +
"id=" + id +
", createData=" + createData +
", createUserid=" + createUserid +
", state=" + state +
", menuName='" + menuName + '\'' +
", menuUrl='" + menuUrl + '\'' +
", menuImage='" + menuImage + '\'' +
", parentId=" + parentId +
", pageCode='" + pageCode + '\'' +
", sort=" + sort +
'}';
}
}
\ No newline at end of file
package com.bsoft.admin.model;
import java.util.Date;
public class SysRole {
private Long id;
private Date createDate;
private Long createUserid;
private Short state;
private String roleName;
private Long roleCode;
public Long getId() {
return id;
}
public void setId(Long 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;
}
@Override
public String toString() {
return "SysRole{" +
"id=" + id +
", createDate=" + createDate +
", createUserid=" + createUserid +
", state=" + state +
", roleName='" + roleName + '\'' +
", roleCode=" + roleCode +
'}';
}
}
\ No newline at end of file
package com.bsoft.admin.model;
import java.util.Date;
public class SysRoleMenuRs {
private Long id;
private Date createDate;
private Long createUserid;
private Short state;
private Long menuId;
private Long roleId;
public Long getId() {
return id;
}
public void setId(Long 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;
}
@Override
public String toString() {
return "SysRoleMenuRs{" +
"id=" + id +
", createDate=" + createDate +
", createUserid=" + createUserid +
", state=" + state +
", menuId=" + menuId +
", roleId=" + roleId +
'}';
}
}
\ No newline at end of file
package com.bsoft.admin.model;
import java.util.Date;
public class SysUser {
private Long id;
private Date createDate;
private Long createUserid;
private Short state;
private String userCode;
private String userName;
private String password;
private String idcard;
private String sex;
private String mobile;
private Long pageCount;
private Long errorCount;
private Date errorTime;
private Date lastTime;
private String lastIp;
public Long getId() {
return id;
}
public void setId(Long 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 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;
}
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;
}
@Override
public String toString() {
return "SysUser{" +
"id=" + id +
", createDate=" + createDate +
", createUserid=" + createUserid +
", state=" + state +
", userCode='" + userCode + '\'' +
", userName='" + userName + '\'' +
", password='" + password + '\'' +
", idcard='" + idcard + '\'' +
", sex='" + sex + '\'' +
", mobile='" + mobile + '\'' +
", pageCount=" + pageCount +
", errorCount=" + errorCount +
", errorTime=" + errorTime +
", lastTime=" + lastTime +
", lastIp='" + lastIp + '\'' +
'}';
}
}
\ No newline at end of file
package com.bsoft.admin.model;
import java.util.Date;
public class SysUserMenuRs {
private Long id;
private Date createDate;
private Long createUserid;
private Short state;
private Long userId;
private Long menuId;
public Long getId() {
return id;
}
public void setId(Long 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;
}
@Override
public String toString() {
return "SysUserMenuRs{" +
"id=" + id +
", createDate=" + createDate +
", createUserid=" + createUserid +
", state=" + state +
", userId=" + userId +
", menuId=" + menuId +
'}';
}
}
\ No newline at end of file
package com.bsoft.admin.model;
import java.util.Date;
public class SysUserOrgRs {
private Long id;
private Date createDate;
private Long createUserid;
private Short state;
private Long userId;
private Long orgId;
public Long getId() {
return id;
}
public void setId(Long 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;
}
@Override
public String toString() {
return "SysUserOrgRs{" +
"id=" + id +
", createDate=" + createDate +
", createUserid=" + createUserid +
", state=" + state +
", userId=" + userId +
", orgId=" + orgId +
'}';
}
}
\ No newline at end of file
package com.bsoft.admin.model;
import java.util.Date;
public class SysUserRoleRs {
private Long id;
private Date createDate;
private Long createUserid;
private Short state;
private Long userId;
private Long roleId;
public Long getId() {
return id;
}
public void setId(Long 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;
}
@Override
public String toString() {
return "SysUserRoleRs{" +
"id=" + id +
", createDate=" + createDate +
", createUserid=" + createUserid +
", state=" + state +
", userId=" + userId +
", roleId=" + roleId +
'}';
}
}
\ No newline at end of file
package com.bsoft.admin.model.reqmodel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotNull;
@ApiModel("账号密码")
public class CodeAndPwd {
@ApiModelProperty(value="账号",required = true)
@NotNull(message = "账号 参数必传")
String loginName;
@NotNull(message = "密码 参数必传")
@ApiModelProperty(value="密码",required = true)
String password;
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "CodeAndPwd{" +
"loginName='" + loginName + '\'' +
", password='" + password + '\'' +
'}';
}
}
package com.bsoft.admin.model.reqmodel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotNull;
public class RoleReq {
public static class GetReq{
@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 InfoReq{
@ApiModelProperty(value="角色ID",required = true)
@NotNull(message = "角色ID 参数必传")
private Long roleId;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
@Override
public String toString() {
return "DeleteReq{" +
"roleId=" + roleId +
'}';
}
}
public static class AddReq{
@ApiModelProperty(value="角色编码",required = true)
@NotNull(message = "角色编码 参数必传")
private Long roleCode;
@ApiModelProperty(value="角色名称",required = true)
@NotNull(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 DeleteReq{
@ApiModelProperty(value="角色ID",required = true)
@NotNull(message = "角色ID 参数必传")
private Long roleId;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
@Override
public String toString() {
return "DeleteReq{" +
"roleId=" + roleId +
'}';
}
}
public static class UpdateReq{
@ApiModelProperty(value="角色ID",required = true)
@NotNull(message = "角色ID 参数必传")
private Long roleId;
@ApiModelProperty(value="角色编码",required = true)
@NotNull(message = "角色编码 参数必传")
private Long roleCode;
@ApiModelProperty(value="角色名称",required = true)
@NotNull(message = "角色名称 参数必传")
private String roleName;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long 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 + '\'' +
'}';
}
}
}
package com.bsoft.admin.model.reqmodel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotNull;
public class UserReq {
public static class GetReq{
@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 InfoReq{
@ApiModelProperty(value="用户ID",required = true)
@NotNull(message = "用户ID 参数必传")
private Long userId;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
@Override
public String toString() {
return "DeleteReq{" +
"userId=" + userId +
'}';
}
}
public static class AddReq{
@ApiModelProperty(value="账号",required = true)
@NotNull(message = "账号 参数必传")
private String userCode;
@ApiModelProperty(value="名称",required = true)
@NotNull(message = "名称 参数必传")
private String userName;
@ApiModelProperty(value="密码",required = true)
@NotNull(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 DeleteReq{
@ApiModelProperty(value="用户ID",required = true)
@NotNull(message = "用户ID 参数必传")
private Long userId;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
@Override
public String toString() {
return "DeleteReq{" +
"userId=" + userId +
'}';
}
}
public static class UpdateReq{
@ApiModelProperty(value="用户ID",required = true)
@NotNull(message = "用户ID 参数必传")
private Long userId;
@ApiModelProperty(value="账号",required = true)
@NotNull(message = "账号 参数必传")
private String userCode;
@ApiModelProperty(value="名称",required = true)
@NotNull(message = "名称 参数必传")
private String userName;
@ApiModelProperty(value="密码",required = true)
@NotNull(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 Long getUserId() {
return userId;
}
public void setUserId(Long 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.bsoft.admin.model.respmodel;
import com.bsoft.admin.model.SysMenu;
import java.util.List;
public class SysMenuList extends SysMenu {
private List<SysMenuList> sysMenuList;
public void setSysMenuList(List<SysMenuList> sysMenuList) {
this.sysMenuList = sysMenuList;
}
public List<SysMenuList> getSysMenuList() {
return this.sysMenuList;
}
@Override
public String toString() {
return "SysMenuList{" +
"sysMenuList=" + sysMenuList +
'}';
}
}
package com.bsoft.admin.service;
import com.bsoft.admin.model.DicOrg;
import com.bsoft.admin.model.SysUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
public interface LoginService {
LoginInfo login(String loginName, String password, String ip);
String refreshToken(String oldToken);
@ApiModel(description = "登录信息")
class LoginInfo {
@ApiModelProperty("token")
private String token;
@ApiModelProperty("用户信息")
private SysUser user;
@ApiModelProperty("用户机构信息")
private List<DicOrg> org;
public LoginInfo() {
}
public LoginInfo(String token, SysUser user,List<DicOrg> org) {
this.token = token;
this.user = user;
this.org=org;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public SysUser getUser() {
return user;
}
public void setUser(SysUser 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.bsoft.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(Long id);
/**
* 物理删除
* @param id
* @return
*/
int delete(Long id);
/**
* 逻辑删除
* @param id
* @return
*/
int logicDelete(Long id);
/**
* 更新
* @param t
* @return
*/
int update(T t);
}
package com.bsoft.admin.service;
import com.bsoft.admin.model.SysMenu;
import com.bsoft.admin.model.respmodel.SysMenuList;
import java.util.List;
public interface SysMenuService extends ServiceBase<SysMenu> {
//顶级菜单的父级id
final static Integer MENU_TOP_PARENT_ID =0;
List<SysMenuList> getMenu(Long userId) throws Exception;
}
package com.bsoft.admin.service;
import com.bsoft.admin.model.SysRole;
import com.bsoft.admin.model.reqmodel.RoleReq;
import java.util.List;
public interface SysRoleService {
SysRole findByCode(Long roleCode);
boolean addRole(Long userId, RoleReq.AddReq role);
boolean deleteRole(RoleReq.DeleteReq role);
boolean updateRole(RoleReq.UpdateReq role);
List<SysRole> getAll(RoleReq.GetReq role);
SysRole info(long roleId);
}
package com.bsoft.admin.service;
import com.bsoft.admin.model.SysRole;
import com.bsoft.admin.model.SysUserRoleRs;
import java.util.List;
public interface SysUserRoleRsService extends ServiceBase<SysUserRoleRs> {
List<SysRole> getRoleListByUser(Long userId) throws Exception;
}
package com.bsoft.admin.service;
import com.bsoft.admin.model.SysUser;
import com.bsoft.admin.model.reqmodel.UserReq;
import java.util.List;
public interface UserService {
SysUser findByLoginName(String loginName);
boolean addUser(Long userId, UserReq.AddReq user);
boolean deleteUser(UserReq.DeleteReq user);
boolean updateUser(UserReq.UpdateReq user);
List<SysUser> getAll(UserReq.GetReq user);
SysUser info(Long userId);
}
package com.bsoft.admin.service.impl;
import com.bsoft.admin.common.utils.TokenUtil;
import com.bsoft.admin.mapper.DicOrgMapper;
import com.bsoft.admin.mapper.SysUserMapper;
import com.bsoft.admin.model.DicOrg;
import com.bsoft.admin.model.SysUser;
import com.bsoft.admin.service.LoginService;
import com.bsoft.admin.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service
public class LoginServiceImpl implements LoginService {
@Autowired
private UserService userServiceImpl;
@Resource
private SysUserMapper sysUserMapper;
@Resource
private DicOrgMapper dicOrgMapper;
@Override
public LoginInfo login(String logName, String password,String ip) {
LoginInfo loginInfo = new LoginInfo();
SysUser user = userServiceImpl.findByLoginName(logName);
if(user != null && user.getPassword().equals(password)){
String token = TokenUtil.getToken(password, user);
//修改ip以及最后登录时间
user.setLastIp(ip);
user.setLastTime(new Date());
sysUserMapper.updateByPrimaryKey(user);
user.setPassword(null);
loginInfo.setToken(token);
loginInfo.setUser(user);
//查询用户机构
List<DicOrg> orgList =dicOrgMapper.selectByUser(user.getId());
loginInfo.setOrg(orgList);
}
return loginInfo;
}
public String refreshToken(String oldToken){
return TokenUtil.refresh(oldToken);
}
}
package com.bsoft.admin.service.impl;
import com.bsoft.admin.mapper.SysMenuMapper;
import com.bsoft.admin.model.SysMenu;
import com.bsoft.admin.model.respmodel.SysMenuList;
import com.bsoft.admin.service.SysMenuService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class SysMenuServiceImpl implements SysMenuService {
@Resource
private SysMenuMapper sysMenuMapper;
@Override
public List<SysMenuList> getMenu(Long userId) throws Exception {
SysMenuList sysMenuList = new SysMenuList();
SysMenu sysMenu = new SysMenu();
List<SysMenuList> list = sysMenuMapper.selectMenuByUser(userId);
List<SysMenuList> resultList = getLevelData(list, 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,data.getId());
childList=childList.stream().sorted(Comparator.comparing(SysMenu::getSort)).collect(Collectors.toList());
data.setSysMenuList(childList);
resultList.add(data);
}
}
return resultList;
}
@Override
public int add(SysMenu sysMenu) {
return 0;
}
@Override
public List<SysMenu> findAll() {
return null;
}
@Override
public SysMenu find(Long id) {
return null;
}
@Override
public int delete(Long id) {
return 0;
}
@Override
public int logicDelete(Long id) {
return 0;
}
@Override
public int update(SysMenu sysMenu) {
return 0;
}
}
package com.bsoft.admin.service.impl;
import com.bsoft.admin.common.enums.StateType;
import com.bsoft.admin.mapper.SysRoleMapper;
import com.bsoft.admin.model.SysRole;
import com.bsoft.admin.model.reqmodel.RoleReq;
import com.bsoft.admin.service.SysRoleService;
import org.springframework.stereotype.Service;
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;
@Override
public SysRole findByCode(Long roleCode) {
return sysRoleMapper.selectByCode(roleCode);
}
@Override
public boolean addRole(Long userId, RoleReq.AddReq 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.DeleteReq 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.UpdateReq 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.GetReq 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(long roleId) {
SysRole sysRole = sysRoleMapper.selectByPrimaryKey(roleId);
return sysRole;
}
}
package com.bsoft.admin.service.impl;
import com.bsoft.admin.mapper.SysRoleMapper;
import com.bsoft.admin.mapper.SysUserRoleRsMapper;
import com.bsoft.admin.model.SysRole;
import com.bsoft.admin.model.SysUserRoleRs;
import com.bsoft.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(Long 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(Long id) {
return sysUserRoleRsMapper.selectByPrimaryKey(id);
}
@Override
public int delete(Long id) {
return sysUserRoleRsMapper.deleteByPrimaryKey(id);
}
@Override
public int logicDelete(Long id) {
return 0;
}
@Override
public int update(SysUserRoleRs sysUserRoleRs) {
return sysUserRoleRsMapper.updateByPrimaryKey(sysUserRoleRs);
}
}
package com.bsoft.admin.service.impl;
import com.bsoft.admin.common.enums.StateType;
import com.bsoft.admin.mapper.SysUserMapper;
import com.bsoft.admin.model.SysUser;
import com.bsoft.admin.model.reqmodel.UserReq;
import com.bsoft.admin.service.UserService;
import org.springframework.stereotype.Service;
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;
@Override
public SysUser findByLoginName(String loginName) {
return sysUserMapper.selectByCode(loginName);
}
@Override
public boolean addUser(Long userId, UserReq.AddReq 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);
return true;
}
return false;
}
@Override
public boolean deleteUser(UserReq.DeleteReq user) {
if(user!=null){
SysUser sysUser = sysUserMapper.selectByPrimaryKey(user.getUserId());
if(sysUser!=null){
sysUser.setState((short)StateType.OFF.getValue());
sysUserMapper.updateByPrimaryKey(sysUser);
return true;
}
}
return false;
}
@Override
public boolean updateUser(UserReq.UpdateReq 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);
return true;
}
}
return false;
}
@Override
public List<SysUser> getAll(UserReq.GetReq user) {
List<SysUser> list = sysUserMapper.selectAll();
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 SysUser info(Long userId) {
SysUser sysUser=sysUserMapper.selectByPrimaryKey(userId);
return sysUser;
}
}
#### \u5F00\u53D1\u73AF\u5883 ###################################################
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.username=ll
spring.datasource.password=123456
spring.datasource.url=jdbc:oracle:thin:@192.168.18.171:1521:his
# 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
#### \u5F00\u53D1\u73AF\u5883 ###################################################
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.username=ll
spring.datasource.password=123456
spring.datasource.url=jdbc:oracle:thin:@192.168.18.171:1521:his
# 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.bsoft.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=bsoftapi
spring.profiles.active=test
#server.port=8080
#server.servlet.context-path=/api
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.bsoft.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
#控制字段为null不返回的问题 True表示返回 False表示不返回
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/${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.bsoft.admin.mapper.DicOrgMapper">
<resultMap id="BaseResultMap" type="com.bsoft.admin.model.DicOrg">
<id column="ID" jdbcType="DECIMAL" 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" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from DIC_ORG
where ID = #{id,jdbcType=DECIMAL}
</delete>
<insert id="insert" parameterType="com.bsoft.admin.model.DicOrg">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
select SEQ_DIC_ORG_ID.nextval from dual
</selectKey>
insert into DIC_ORG (CREATE_DATE, CREATE_USERID, "STATE",
ORG_CODE, ORG_NAME, ORG_NO,
ORG_SHORT_NAME, ORG_GROUP, ORG_TYPE,
ORG_ADDRESS, PARENT_ID)
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})
</insert>
<update id="updateByPrimaryKey" parameterType="com.bsoft.admin.model.DicOrg">
update DIC_ORG
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}
where ID = #{id,jdbcType=DECIMAL}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" 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
from DIC_ORG
where ID = #{id,jdbcType=DECIMAL}
</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
from DIC_ORG
</select>
<select id="selectByUser" resultMap="BaseResultMap">
SELECT o.*
FROM SYS_USER_ORG_RS uor,DIC_ORG o
where uor.ORG_ID=o.ID and uor.USER_ID= #{userId,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.bsoft.admin.mapper.SysMenuMapper">
<resultMap id="BaseResultMap" type="com.bsoft.admin.model.SysMenu">
<id column="ID" jdbcType="DECIMAL" 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.bsoft.admin.model.respmodel.SysMenuList" extends="BaseResultMap"/>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from SYS_MENU
where ID = #{id,jdbcType=DECIMAL}
</delete>
<insert id="insert" parameterType="com.bsoft.admin.model.SysMenu">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
select SEQ_SYS_MENU_ID.nextval from dual
</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.bsoft.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=DECIMAL}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" 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=DECIMAL}
</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="selectMenuByUser" resultMap="sysMenuResultMap">
select DISTINCT m.ID,m.MENU_NAME,m.MENU_URL,m.MENU_IMAGE,m.PARENT_ID,m.PAGE_CODE,m.SORT
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}
union
select DISTINCT m.ID,m.MENU_NAME,m.MENU_URL,m.MENU_IMAGE,m.PARENT_ID,m.PAGE_CODE,m.SORT
from
SYS_USER_MENU_RS umr
LEFT JOIN
SYS_MENU m on umr.MENU_ID = m.ID
where umr.STATE=1 and m.STATE=1 and umr.USER_ID = #{userId,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.bsoft.admin.mapper.SysRoleMapper">
<resultMap id="BaseResultMap" type="com.bsoft.admin.model.SysRole">
<id column="ID" jdbcType="DECIMAL" 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.Long">
delete from SYS_ROLE
where ID = #{id,jdbcType=DECIMAL}
</delete>
<insert id="insert" parameterType="com.bsoft.admin.model.SysRole">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
select SEQ_SYS_ROLE_ID.nextval from dual
</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.bsoft.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=DECIMAL}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", ROLE_NAME, ROLE_CODE
from SYS_ROLE
where ID = #{id,jdbcType=DECIMAL} and "STATE"!=0
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", ROLE_NAME, ROLE_CODE
from SYS_ROLE
where "STATE"!=0
</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.bsoft.admin.mapper.SysRoleMenuRsMapper">
<resultMap id="BaseResultMap" type="com.bsoft.admin.model.SysRoleMenuRs">
<id column="ID" jdbcType="DECIMAL" 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>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from SYS_ROLE_MENU_RS
where ID = #{id,jdbcType=DECIMAL}
</delete>
<insert id="insert" parameterType="com.bsoft.admin.model.SysRoleMenuRs">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
select SEQ_SYS_ROLE_MENU_RS_ID.nextval from dual
</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.bsoft.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=DECIMAL}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", MENU_ID, ROLE_ID
from SYS_ROLE_MENU_RS
where ID = #{id,jdbcType=DECIMAL}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", MENU_ID, ROLE_ID
from SYS_ROLE_MENU_RS
</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.bsoft.admin.mapper.SysUserMapper">
<resultMap id="BaseResultMap" type="com.bsoft.admin.model.SysUser">
<id column="ID" jdbcType="DECIMAL" 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>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from SYS_USER
where ID = #{id,jdbcType=DECIMAL}
</delete>
<insert id="insert" parameterType="com.bsoft.admin.model.SysUser">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
select SEQ_SYS_USER_ID.nextval from dual
</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)
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})
</insert>
<update id="updateByPrimaryKey" parameterType="com.bsoft.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=DECIMAL}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" 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=DECIMAL} and "STATE"!=0
</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
where "STATE"!=0
</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>
</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.bsoft.admin.mapper.SysUserMenuRsMapper">
<resultMap id="BaseResultMap" type="com.bsoft.admin.model.SysUserMenuRs">
<id column="ID" jdbcType="DECIMAL" 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_ID" jdbcType="DECIMAL" property="userId" />
<result column="MENU_ID" jdbcType="DECIMAL" property="menuId" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from SYS_USER_MENU_RS
where ID = #{id,jdbcType=DECIMAL}
</delete>
<insert id="insert" parameterType="com.bsoft.admin.model.SysUserMenuRs">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
select SEQ_SYS_USER_MENU_RS _ID.nextval from dual
</selectKey>
insert into SYS_USER_MENU_RS (CREATE_DATE, CREATE_USERID, "STATE",
USER_ID, MENU_ID)
values (#{createDate,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL},
#{userId,jdbcType=DECIMAL}, #{menuId,jdbcType=DECIMAL})
</insert>
<update id="updateByPrimaryKey" parameterType="com.bsoft.admin.model.SysUserMenuRs">
update SYS_USER_MENU_RS
set CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=DECIMAL},
"STATE" = #{state,jdbcType=DECIMAL},
USER_ID = #{userId,jdbcType=DECIMAL},
MENU_ID = #{menuId,jdbcType=DECIMAL}
where ID = #{id,jdbcType=DECIMAL}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", USER_ID, MENU_ID
from SYS_USER_MENU_RS
where ID = #{id,jdbcType=DECIMAL}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", USER_ID, MENU_ID
from SYS_USER_MENU_RS
</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.bsoft.admin.mapper.SysUserOrgRsMapper">
<resultMap id="BaseResultMap" type="com.bsoft.admin.model.SysUserOrgRs">
<id column="ID" jdbcType="DECIMAL" 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_ID" jdbcType="DECIMAL" property="userId" />
<result column="ORG_ID" jdbcType="DECIMAL" property="orgId" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from SYS_USER_ORG_RS
where ID = #{id,jdbcType=DECIMAL}
</delete>
<insert id="insert" parameterType="com.bsoft.admin.model.SysUserOrgRs">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
select SEQ_SYS_USER_ORG_RS_ID.nextval from dual
</selectKey>
insert into SYS_USER_ORG_RS (CREATE_DATE, CREATE_USERID, "STATE",
USER_ID, ORG_ID)
values (#{createDate,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL},
#{userId,jdbcType=DECIMAL}, #{orgId,jdbcType=DECIMAL})
</insert>
<update id="updateByPrimaryKey" parameterType="com.bsoft.admin.model.SysUserOrgRs">
update SYS_USER_ORG_RS
set CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=DECIMAL},
"STATE" = #{state,jdbcType=DECIMAL},
USER_ID = #{userId,jdbcType=DECIMAL},
ORG_ID = #{orgId,jdbcType=DECIMAL}
where ID = #{id,jdbcType=DECIMAL}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", USER_ID, ORG_ID
from SYS_USER_ORG_RS
where ID = #{id,jdbcType=DECIMAL}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", USER_ID, ORG_ID
from SYS_USER_ORG_RS
</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.bsoft.admin.mapper.SysUserRoleRsMapper">
<resultMap id="BaseResultMap" type="com.bsoft.admin.model.SysUserRoleRs">
<id column="ID" jdbcType="DECIMAL" 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_ID" jdbcType="DECIMAL" property="userId" />
<result column="ROLE_ID" jdbcType="DECIMAL" property="roleId" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from SYS_USER_ROLE_RS
where ID = #{id,jdbcType=DECIMAL}
</delete>
<insert id="insert" parameterType="com.bsoft.admin.model.SysUserRoleRs">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
select SEQ_SYS_USER_ROLE_RS_ID.nextval from dual
</selectKey>
insert into SYS_USER_ROLE_RS (CREATE_DATE, CREATE_USERID, "STATE",
USER_ID, ROLE_ID)
values (#{createDate,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL},
#{userId,jdbcType=DECIMAL}, #{roleId,jdbcType=DECIMAL})
</insert>
<update id="updateByPrimaryKey" parameterType="com.bsoft.admin.model.SysUserRoleRs">
update SYS_USER_ROLE_RS
set CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
CREATE_USERID = #{createUserid,jdbcType=DECIMAL},
"STATE" = #{state,jdbcType=DECIMAL},
USER_ID = #{userId,jdbcType=DECIMAL},
ROLE_ID = #{roleId,jdbcType=DECIMAL}
where ID = #{id,jdbcType=DECIMAL}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", USER_ID, ROLE_ID
from SYS_USER_ROLE_RS
where ID = #{id,jdbcType=DECIMAL}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select ID, CREATE_DATE, CREATE_USERID, "STATE", USER_ID, ROLE_ID
from SYS_USER_ROLE_RS
</select>
</mapper>
\ No newline at end of file
package com.bsoft.admin;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class BsoftAdminApplicationTests {
@Test
void contextLoads() {
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 引入配置文件 -->
<properties resource="./application-dev.properties"/>
<context id="Oracle" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!-- 生成的文件编码 -->
<property name="javaFileEncoding" value="utf-8"/>
<property name="autoDelimitKeywords" value="true"/>
<property name="beginningDelimiter" value="&quot;"/>
<property name="endingDelimiter" value="&quot;"/>
<!-- 通过自定义插件类生成自定义注解和接口 -->
<!--<plugin type="com.suvalue.common.GenPlugin">-->
<!--<property enName="mappers" value="com.suvalue.demo.mapper.BaseMapper"/>-->
<!--</plugin>-->
<commentGenerator>
<property name="suppressAllComments" value="true"/>
<!-- 数据库注释支持 -->
<property name="addRemarkComments" value="true"/>
</commentGenerator>
<!-- 数据库连接属性 -->
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
<!-- 针对oracle数据库 获取字段注释 -->
<property name="remarksReporting" value="true"></property>
<!-- 针对mysql数据库 获取字段注释 -->
<!-- <property name="useInformationSchema" value="true"></property>-->
</jdbcConnection>
<!-- <javaTypeResolver type="com.bsoft.generator.JavaTypeResolverImpl"/>-->
<!-- 生成实体类配置 -->
<javaModelGenerator targetPackage="com.bsoft.admin.model" targetProject="src/main/java"/>
<!-- 生成映射文件配置 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<!-- 生成映射接口配置 -->
<javaClientGenerator targetPackage="com.bsoft.admin.mapper" targetProject="src/main/java" type="XMLMAPPER"/>
<!-- <table tableName="sys_user" schema="ll" >-->
<!-- &lt;!&ndash; 主键生成方式 &ndash;&gt;-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_USER_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<table tableName="SYS_USER" schema="ll">
<generatedKey column="id" sqlStatement="select SEQ_SYS_USER_ID.nextval from dual" identity="true" />
</table>
<table tableName="SYS_ROLE" schema="ll">
<generatedKey column="id" sqlStatement="select SEQ_SYS_ROLE_ID.nextval from dual" identity="true" />
</table>
<table tableName="SYS_MENU" schema="ll">
<generatedKey column="id" sqlStatement="select SEQ_SYS_MENU_ID.nextval from dual" identity="true" />
</table>
<table tableName="DIC_ORG" schema="ll">
<generatedKey column="id" sqlStatement="select SEQ_DIC_ORG_ID.nextval from dual" identity="true" />
</table>
<table tableName="SYS_ROLE_MENU_RS" schema="ll">
<generatedKey column="id" sqlStatement="select SEQ_SYS_ROLE_MENU_RS_ID.nextval from dual" identity="true" />
</table>
<table tableName="SYS_USER_MENU_RS" schema="ll">
<generatedKey column="id" sqlStatement="select SEQ_SYS_USER_MENU_RS _ID.nextval from dual" identity="true" />
</table>
<table tableName="SYS_USER_ORG_RS" schema="ll">
<generatedKey column="id" sqlStatement="select SEQ_SYS_USER_ORG_RS_ID.nextval from dual" identity="true" />
</table>
<table tableName="SYS_USER_ROLE_RS" schema="ll">
<generatedKey column="id" sqlStatement="select SEQ_SYS_USER_ROLE_RS_ID.nextval from dual" identity="true" />
</table>
<!-- <table tableName="DIC_IND" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_DIC_IND_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="DIC_ORG" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_DIC_ORG_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SER_BLOCK_IND_RS" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SER_ BLOCK_IND_RS_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SER_BLOCK" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SER_BLOCK_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SER_PAGE" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SER_PAGE_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SER_PAGE_BLOCK_RS" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SER_PAGE_BLOCK_RS_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SER_PAGE_DIM_RS" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SER_PAGE_DIM_RS_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SYS_MENU" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_MENU_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SYS_ORG" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_ORG_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SYS_PROJECT" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_PROJECT_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SYS_ROLE" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_ROLE_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SYS_ROLE_MENU_RS" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_ROLE_MENU_RS_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SYS_USER_MENU_RS" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_USER_MENU_RS_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SYS_USER_ORG_RS" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_USER_ORG_RS_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
<!-- <table tableName="SYS_USER_ROLE_RS" schema="ll" >-->
<!-- <generatedKey column="id" sqlStatement="select SEQ_SYS_USER_ROLE_RS_ID.nextval from dual" identity="true" />-->
<!-- </table>-->
</context>
<!--<context id="sqlserver" targetRuntime="MyBatis3Simple" defaultModelType="flat">-->
<!--<property enName="beginningDelimiter" value="["/>-->
<!--<property enName="endingDelimiter" value="]"/>-->
<!--&lt;!&ndash; 生成的文件编码 &ndash;&gt;-->
<!--<property enName="javaFileEncoding" value="utf-8"/>-->
<!--&lt;!&ndash; 通过自定义插件类生成自定义注解和接口 &ndash;&gt;-->
<!--&lt;!&ndash;<plugin type="com.suvalue.common.GenPlugin">&ndash;&gt;-->
<!--&lt;!&ndash;<property enName="mappers" value="com.suvalue.demo.mapper.BaseMapper"/>&ndash;&gt;-->
<!--&lt;!&ndash;</plugin>&ndash;&gt;-->
<!--<commentGenerator>-->
<!--&lt;!&ndash; 取消生成注释 &ndash;&gt;-->
<!--<property enName="suppressAllComments" value="false"/>-->
<!--</commentGenerator>-->
<!--&lt;!&ndash; 数据库连接属性 &ndash;&gt;-->
<!--<jdbcConnection driverClass="${jdbc.sqlserver.driver}"-->
<!--connectionURL="${jdbc.sqlserver.url}"-->
<!--userId="${jdbc.sqlserver.username}"-->
<!--password="${jdbc.sqlserver.password}">-->
<!--</jdbcConnection>-->
<!--&lt;!&ndash; 生成实体类配置 &ndash;&gt;-->
<!--<javaModelGenerator targetPackage="com.suvalue.verctrl.model" targetProject="src/main/java"/>-->
<!--&lt;!&ndash; 生成映射文件配置 &ndash;&gt;-->
<!--<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>-->
<!--&lt;!&ndash; 生成映射接口配置 &ndash;&gt;-->
<!--&lt;!&ndash;<javaClientGenerator targetPackage="com.suvalue.verctrl.mapper" targetProject="src/main/java" type="XMLMAPPER"/>&ndash;&gt;-->
<!--<table tableName="data_version" schema="dbo">-->
<!--&lt;!&ndash;mysql 配置 &ndash;&gt;-->
<!--<generatedKey column="id" sqlStatement="SqlServer" identity="true"/>-->
<!--</table>-->
<!--</context>-->
</generatorConfiguration>
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
......@@ -95,6 +95,12 @@
<artifactId>table-to-xls</artifactId>
<version>0.0.1-RELEASE</version>
</dependency>
<dependency>
<groupId>com.bsoft</groupId>
<artifactId>bsoft-common</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
......@@ -66,6 +66,5 @@
LEFT JOIN
SYS_MENU m on umr.MENU_ID = m.ID
where umr.STATE=1 and m.STATE=1 and umr.USER_ID = #{userId,jdbcType=DECIMAL}
</select>
</mapper>
\ No newline at end of file
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