Commit 7ec9c0c4 by Iwan

init Project

——————————————
Carson
parent 62d2fae9
Showing with 4975 additions and 0 deletions
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.boot</groupId>
<artifactId>fun-member</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
<swagger.version>2.8.0</swagger.version>
<google.guava>23.0</google.guava>
<fastjson.version>1.2.47</fastjson.version>
<druid.version>1.1.9</druid.version>
<poi.version>3.17</poi.version>
<jwt.version>0.9.0</jwt.version>
<mybatis.version>1.3.2</mybatis.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</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-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${google.guava}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>
</dependency> -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>-->
<!--改为stater的方式-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>api</artifactId>
<version>7.0.0</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<finalName>fun-member</finalName>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<activatedProperties>test</activatedProperties>
</properties>
</profile>
<profile>
<id>production</id>
<properties>
<activatedProperties>production</activatedProperties>
</properties>
</profile>
</profiles>
</project>
\ No newline at end of file
package com.boot.security.server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* 启动类
*
*
*
*/
@SpringBootApplication
public class SecurityApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SecurityApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(SecurityApplication.class, args);
}
}
package com.boot.security.server.advice;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.web.bind.MissingServletRequestParameterException;
import org.springframework.web.bind.UnsatisfiedServletRequestParameterException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import com.boot.security.server.dto.ResponseInfo;
/**
* springmvc异常处理
*
*
*
*/
@RestControllerAdvice
public class ExceptionHandlerAdvice {
private static final Logger log = LoggerFactory.getLogger("adminLogger");
@ExceptionHandler({ IllegalArgumentException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseInfo badRequestException(IllegalArgumentException exception) {
return new ResponseInfo(HttpStatus.BAD_REQUEST.value() + "", exception.getMessage());
}
@ExceptionHandler({ AccessDeniedException.class })
@ResponseStatus(HttpStatus.FORBIDDEN)
public ResponseInfo badRequestException(AccessDeniedException exception) {
return new ResponseInfo(HttpStatus.FORBIDDEN.value() + "", exception.getMessage());
}
@ExceptionHandler({ MissingServletRequestParameterException.class, HttpMessageNotReadableException.class,
UnsatisfiedServletRequestParameterException.class, MethodArgumentTypeMismatchException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseInfo badRequestException(Exception exception) {
return new ResponseInfo(HttpStatus.BAD_REQUEST.value() + "", exception.getMessage());
}
@ExceptionHandler(Throwable.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public ResponseInfo exception(Throwable throwable) {
log.error("系统异常", throwable);
return new ResponseInfo(HttpStatus.INTERNAL_SERVER_ERROR.value() + "", throwable.getMessage());
}
}
package com.boot.security.server.advice;
import com.boot.security.server.utils.UserUtil;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.model.SysLogs;
import com.boot.security.server.service.SysLogService;
import io.swagger.annotations.ApiOperation;
/**
* 统一日志处理
*
*
*
* 2017年8月19日
*/
@Aspect
@Component
public class LogAdvice {
@Autowired
private SysLogService logService;
@Around(value = "@annotation(com.boot.security.server.annotation.LogAnnotation)")
public Object logSave(ProceedingJoinPoint joinPoint) throws Throwable {
SysLogs sysLogs = new SysLogs();
sysLogs.setUser(UserUtil.getLoginUser()); // 设置当前登录用户
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
String module = null;
LogAnnotation logAnnotation = methodSignature.getMethod().getDeclaredAnnotation(LogAnnotation.class);
module = logAnnotation.module();
if (StringUtils.isEmpty(module)) {
ApiOperation apiOperation = methodSignature.getMethod().getDeclaredAnnotation(ApiOperation.class);
if (apiOperation != null) {
module = apiOperation.value();
}
}
if (StringUtils.isEmpty(module)) {
throw new RuntimeException("没有指定日志module");
}
sysLogs.setModule(module);
try {
Object object = joinPoint.proceed();
sysLogs.setFlag(true);
return object;
} catch (Exception e) {
sysLogs.setFlag(false);
sysLogs.setRemark(e.getMessage());
throw e;
} finally {
if (sysLogs.getUser() != null) {
logService.save(sysLogs);
}
}
}
}
package com.boot.security.server.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 日志注解
*
*
*
* 2017年8月19日
*/
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface LogAnnotation {
String module() default "";
}
package com.boot.security.server.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.task.TaskExecutor;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
/**
* 线程池配置、启用异步
*
*
*
* 2017年8月19日
*/
@EnableAsync(proxyTargetClass = true)
@Configuration
public class AsycTaskExecutorConfig {
@Bean
public TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(50);
taskExecutor.setMaxPoolSize(100);
return taskExecutor;
}
}
package com.boot.security.server.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
import java.sql.SQLException;
/**
* Druid数据源配置
* 2018.05.24改为配置的方式,配置前缀spring.datasource.druid,看下application.yml
*
*
*
*/
@Deprecated
//@Configuration
public class DruidConfig {
private static final Logger log = LoggerFactory.getLogger("adminLogger");
@Bean
public ServletRegistrationBean<StatViewServlet> druidServlet() {
log.info("init Druid Servlet Configuration ");
ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>(
new StatViewServlet(), "/druid/*");
// IP白名单
servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
// IP黑名单(共同存在时,deny优先于allow)
// servletRegistrationBean.addInitParameter("deny", "192.168.27.26");
// // 控制台管理用户
// servletRegistrationBean.addInitParameter("loginUsername", "admin");
// servletRegistrationBean.addInitParameter("loginPassword", "admin");
// // 是否能够重置数据 禁用HTML页面上的“Reset All”功能
// servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean<WebStatFilter> filterRegistrationBean() {
FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>(
new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
/**
* 数据源配置
*
*
*
*/
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties {
private String url;
private String username;
private String password;
private String driverClassName;
private int initialSize;
private int minIdle;
private int maxActive;
private int maxWait;
private int timeBetweenEvictionRunsMillis;
private int minEvictableIdleTimeMillis;
private String validationQuery;
private boolean testWhileIdle;
private boolean testOnBorrow;
private boolean testOnReturn;
private boolean poolPreparedStatements;
private int maxPoolPreparedStatementPerConnectionSize;
private String filters;
private String connectionProperties;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
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 getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public int getInitialSize() {
return initialSize;
}
public void setInitialSize(int initialSize) {
this.initialSize = initialSize;
}
public int getMinIdle() {
return minIdle;
}
public void setMinIdle(int minIdle) {
this.minIdle = minIdle;
}
public int getMaxActive() {
return maxActive;
}
public void setMaxActive(int maxActive) {
this.maxActive = maxActive;
}
public int getMaxWait() {
return maxWait;
}
public void setMaxWait(int maxWait) {
this.maxWait = maxWait;
}
public int getTimeBetweenEvictionRunsMillis() {
return timeBetweenEvictionRunsMillis;
}
public void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis) {
this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
}
public int getMinEvictableIdleTimeMillis() {
return minEvictableIdleTimeMillis;
}
public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis) {
this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
}
public String getValidationQuery() {
return validationQuery;
}
public void setValidationQuery(String validationQuery) {
this.validationQuery = validationQuery;
}
public boolean isTestWhileIdle() {
return testWhileIdle;
}
public void setTestWhileIdle(boolean testWhileIdle) {
this.testWhileIdle = testWhileIdle;
}
public boolean isTestOnBorrow() {
return testOnBorrow;
}
public void setTestOnBorrow(boolean testOnBorrow) {
this.testOnBorrow = testOnBorrow;
}
public boolean isTestOnReturn() {
return testOnReturn;
}
public void setTestOnReturn(boolean testOnReturn) {
this.testOnReturn = testOnReturn;
}
public boolean isPoolPreparedStatements() {
return poolPreparedStatements;
}
public void setPoolPreparedStatements(boolean poolPreparedStatements) {
this.poolPreparedStatements = poolPreparedStatements;
}
public int getMaxPoolPreparedStatementPerConnectionSize() {
return maxPoolPreparedStatementPerConnectionSize;
}
public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) {
this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize;
}
public String getFilters() {
return filters;
}
public void setFilters(String filters) {
this.filters = filters;
}
public String getConnectionProperties() {
return connectionProperties;
}
public void setConnectionProperties(String connectionProperties) {
this.connectionProperties = connectionProperties;
}
@Bean
@Primary
public DataSource dataSource() {
DruidDataSource datasource = new DruidDataSource();
datasource.setUrl(url);
datasource.setUsername(username);
datasource.setPassword(password);
datasource.setDriverClassName(driverClassName);
datasource.setInitialSize(initialSize);
datasource.setMinIdle(minIdle);
datasource.setMaxActive(maxActive);
datasource.setMaxWait(maxWait);
datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
datasource.setValidationQuery(validationQuery);
datasource.setTestWhileIdle(testWhileIdle);
datasource.setTestOnBorrow(testOnBorrow);
datasource.setTestOnReturn(testOnReturn);
datasource.setPoolPreparedStatements(poolPreparedStatements);
datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
try {
datasource.setFilters(filters);
} catch (SQLException e) {
log.error("异常", e);
}
datasource.setConnectionProperties(connectionProperties);
return datasource;
}
}
}
package com.boot.security.server.config;
import java.io.IOException;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
//@Configuration
public class JobConfig {
public static final String KEY = "applicationContextSchedulerContextKey";
@Bean("adminQuartzScheduler")
public SchedulerFactoryBean quartzScheduler(DataSource dataSource) {
SchedulerFactoryBean quartzScheduler = new SchedulerFactoryBean();
try {
quartzScheduler.setQuartzProperties(
PropertiesLoaderUtils.loadProperties(new ClassPathResource("quartz.properties")));
} catch (IOException e) {
e.printStackTrace();
}
quartzScheduler.setDataSource(dataSource);
quartzScheduler.setOverwriteExistingJobs(true);
quartzScheduler.setApplicationContextSchedulerContextKey(KEY);
quartzScheduler.setStartupDelay(10);
return quartzScheduler;
}
// @Autowired
// private JobService jobService;
// @Autowired
// private TaskExecutor taskExecutor;
//
// /**
// * 初始化一个定时删除日志的任务
// */
// @PostConstruct
// public void initDeleteLogsJob() {
// taskExecutor.execute(() -> {
// JobModel jobModel = new JobModel();
// jobModel.setJobName("delete-logs-job");
// jobModel.setCron("0 0 0 * * ?");
// jobModel.setDescription("定时删除三个月前日志");
// jobModel.setSpringBeanName("sysLogServiceImpl");
// jobModel.setMethodName("deleteLogs");
// jobModel.setIsSysJob(true);
// jobModel.setStatus(1);
//
// jobService.saveJob(jobModel);
// });
// }
}
package com.boot.security.server.config;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.view.RedirectView;
@Controller
public class LoginPageConfig {
@RequestMapping("/")
public RedirectView loginPage() {
return new RedirectView("/login.html");
}
}
package com.boot.security.server.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.GenericToStringSerializer;
/**
* redis配置<br>
* 集群下启动session共享,需打开@EnableRedisHttpSession<br>
* 单机下不需要
*
*
*
* 2017年8月10日
*/
//@EnableRedisHttpSession
@Configuration
public class RedisConfig {
@SuppressWarnings({ "unchecked", "rawtypes" })
@Bean("redisTemplate")
public RedisTemplate redisTemplate(@Lazy RedisConnectionFactory connectionFactory) {
RedisTemplate redis = new RedisTemplate();
GenericToStringSerializer<String> keySerializer = new GenericToStringSerializer<String>(String.class);
redis.setKeySerializer(keySerializer);
redis.setHashKeySerializer(keySerializer);
GenericJackson2JsonRedisSerializer valueSerializer = new GenericJackson2JsonRedisSerializer();
redis.setValueSerializer(valueSerializer);
redis.setHashValueSerializer(valueSerializer);
redis.setConnectionFactory(connectionFactory);
return redis;
}
}
package com.boot.security.server.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.MessageDigestPasswordEncoder;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
import com.boot.security.server.filter.TokenFilter;
/**
* spring security配置
*
*
*
* 2017年10月16日
*
*/
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private AuthenticationSuccessHandler authenticationSuccessHandler;
@Autowired
private AuthenticationFailureHandler authenticationFailureHandler;
@Autowired
private LogoutSuccessHandler logoutSuccessHandler;
@Autowired
private AuthenticationEntryPoint authenticationEntryPoint;
@Autowired
private UserDetailsService userDetailsService;
@Autowired
private TokenFilter tokenFilter;
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
// 基于token,所以不需要session
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeRequests()
.antMatchers("/", "/*.html", "/*.png", "/*.css", "/*.js", "/fonts/**", "/layui/**", "/img/**",
"/v2/api-docs/**", "/swagger-resources/**", "/webjars/**", "/pages/**", "/druid/**",
"/static/**")
.permitAll().anyRequest().authenticated();
//http.authorizeRequests().anyRequest().permitAll();
http.formLogin().loginProcessingUrl("/login")
.successHandler(authenticationSuccessHandler).failureHandler(authenticationFailureHandler).and()
.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint);
http.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler);
// 解决不允许显示在iframe的问题
//http.headers().frameOptions().disable();
http.headers().cacheControl();
http.addFilterBefore(tokenFilter, UsernamePasswordAuthenticationFilter.class);
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(new MessageDigestPasswordEncoder("MD5"));
}
}
package com.boot.security.server.config;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.boot.security.server.dto.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
import com.boot.security.server.filter.TokenFilter;
import com.boot.security.server.service.TokenService;
import com.boot.security.server.utils.ResponseUtil;
/**
* spring security处理器
*
*
*
* 2017年10月16日
*/
@Configuration
public class SecurityHandlerConfig {
@Autowired
private TokenService tokenService;
/**
* 登陆成功,返回Token
*
* @return
*/
@Bean
public AuthenticationSuccessHandler loginSuccessHandler() {
return new AuthenticationSuccessHandler() {
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws IOException, ServletException {
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
Token token = tokenService.saveToken(loginUser);
Response<Token> response_info = new Response<Token>(ResponseStatusEnum.SUCCESS,null);
response_info.setData(token);
ResponseUtil.responseJson(response, HttpStatus.OK.value(), response_info);
}
};
}
/**
* 登陆失败
*
* @return
*/
@Bean
public AuthenticationFailureHandler loginFailureHandler() {
return new AuthenticationFailureHandler() {
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) throws IOException, ServletException {
String msg = null;
if (exception instanceof BadCredentialsException) {
msg = "密码错误";
} else {
msg = exception.getMessage();
}
ResponseInfo info = new ResponseInfo(HttpStatus.UNAUTHORIZED.value() + "", msg);
ResponseUtil.responseJson(response, HttpStatus.UNAUTHORIZED.value(), info);
}
};
}
/**
* 未登录,返回401
*
* @return
*/
@Bean
public AuthenticationEntryPoint authenticationEntryPoint() {
return new AuthenticationEntryPoint() {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response,
AuthenticationException authException) throws IOException, ServletException {
ResponseInfo info = new ResponseInfo(HttpStatus.UNAUTHORIZED.value() + "", "请先登录");
ResponseUtil.responseJson(response, HttpStatus.UNAUTHORIZED.value(), info);
}
};
}
/**
* 退出处理
*
* @return
*/
@Bean
public LogoutSuccessHandler logoutSussHandler() {
return new LogoutSuccessHandler() {
@Override
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws IOException, ServletException {
ResponseInfo info = new ResponseInfo(HttpStatus.OK.value() + "", "退出成功");
String token = TokenFilter.getToken(request);
tokenService.deleteToken(token);
ResponseUtil.responseJson(response, HttpStatus.OK.value(), info);
}
};
}
}
package com.boot.security.server.config;
import com.boot.security.server.filter.TokenFilter;
import com.google.common.collect.Lists;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* swagger文档
*
*
*
* 2017年7月21日
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket docket() {
ParameterBuilder builder = new ParameterBuilder();
builder.parameterType("header").name(TokenFilter.TOKEN_KEY)
.description("header参数")
.required(false)
.modelRef(new ModelRef("string")); // 在swagger里显示header
return new Docket(DocumentationType.SWAGGER_2).groupName("swagger接口文档")
.apiInfo(new ApiInfoBuilder().title("swagger接口文档")
.contact(new Contact("小威老师", "", "xiaoweijiagou@163.com")).version("1.0").build())
.globalOperationParameters(Lists.newArrayList(builder.build()))
.select().paths(PathSelectors.any()).build();
}
}
package com.boot.security.server.config;
import java.io.File;
import java.util.List;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import com.boot.security.server.page.table.PageTableArgumentResolver;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
/**
* 跨域支持
*
* @return
*/
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedMethods("*");
}
};
}
/**
* datatable分页解析
*
* @return
*/
@Bean
public PageTableArgumentResolver tableHandlerMethodArgumentResolver() {
return new PageTableArgumentResolver();
}
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(tableHandlerMethodArgumentResolver());
}
/**
* 上传文件根路径
*/
@Value("${files.path}")
private String filesPath;
/**
* 外部文件访问
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/statics/**")
.addResourceLocations(ResourceUtils.FILE_URL_PREFIX + filesPath + File.separator);
}
}
package com.boot.security.server.controller;
import com.boot.security.server.dao.AbstractDao;
import com.boot.security.server.dto.*;
import com.boot.security.server.page.table.PageTableRequest;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public abstract class AbstractController<T> {
@GetMapping("/{id}")
@ApiOperation(value = "根据id获取")
public Response<Object> get(@PathVariable Long id) {
Response<Object> response = new Response<Object>(ResponseStatusEnum.SUCCESS,null);
response.setStatusEnum(ResponseStatusEnum.SUCCESS);
response.setData(this.getAbstractDao().getById(id));
return response;
}
@PostMapping
@ApiOperation(value = "保存")
public Response<String> save(@RequestBody T entity) {
Response<String> response = new Response<String>(ResponseStatusEnum.SUCCESS,null);
this.getAbstractDao().save(entity);
response.setData("success");
return response;
}
@GetMapping("uid/{uid}")
@ApiOperation(value = "根据UID获取")
public Response<T> getUserCommuneRelation(@PathVariable String uid) {
Response<T> response = new Response<T>(ResponseStatusEnum.SUCCESS,null);
Map<String, Object> map = new HashMap<String, Object>();
map.put("uid",uid);
List<T> list = this.getAbstractDao().list((Map<String, Object>) map, 0,100);
if (list.size()>0){
response.setData(list.get(0));
}else {
response.setData(null);
}
return response;
}
@PutMapping
@ApiOperation(value = "修改")
public Response<String> update(@RequestBody T entity) {
Response<String> response = new Response<String>(ResponseStatusEnum.SUCCESS,null);
this.getAbstractDao().update(entity);
response.setData("success");
return response;
}
@GetMapping
@ApiOperation(value = "列表")
public Response<PageData> list(PageTableRequest request) {
Response<PageData> response = new Response<PageData>(ResponseStatusEnum.SUCCESS,null);
int count = this.getAbstractDao().count(request.getParams());
List<T> list = this.getAbstractDao().list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
Pagination pagination = new Pagination(count,request.getCurrent(), request.getPageSize());
PageData<T> pageData = new PageData<T>(list,pagination);
response.setData(pageData);
return response;
}
@DeleteMapping("/{id}")
@ApiOperation(value = "删除")
public Response<String> delete(@PathVariable Long id) {
Response<String> response = new Response<String>(ResponseStatusEnum.SUCCESS,null);
this.getAbstractDao().delete(id);
response.setData("success");
return response;
}
protected abstract AbstractDao<T> getAbstractDao();
}
package com.boot.security.server.controller;
import com.boot.security.server.dao.AdmUsersDao;
import com.boot.security.server.dto.Response;
import com.boot.security.server.dto.ResponseStatusEnum;
import com.boot.security.server.utils.UserUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.model.AdmUsers;
@RestController
@RequestMapping("/admUsers")
public class AdmUserController {
@Autowired
private AdmUsersDao admUsersDao;
@GetMapping("/me")
public Response<AdmUsers> me() {
Response<AdmUsers> response = new Response<AdmUsers>(ResponseStatusEnum.SUCCESS,null);
Long admId = UserUtil.getLoginUser().getId();
response.setData(admUsersDao.getById(admId));
return response;
}
}
package com.boot.security.server.controller;
import com.boot.security.server.dao.AbstractDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.model.BscUserext;
@RestController
@RequestMapping("/bscUserexts")
public class BscUserextController extends AbstractController<BscUserext> {
@Autowired
private AbstractDao<BscUserext> bscUserextDao;
public AbstractDao<BscUserext> getAbstractDao() {
return bscUserextDao;
}
}
\ No newline at end of file
package com.boot.security.server.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.boot.security.server.dao.AbstractDao;
import com.boot.security.server.dto.Response;
import com.boot.security.server.dto.ResponseStatusEnum;
import com.boot.security.server.model.TravelHabit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.dto.PageTableResponse;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.dao.CommuneRelationDao;
import com.boot.security.server.model.CommuneRelation;
import io.swagger.annotations.ApiOperation;
@RestController
@RequestMapping("/communeRelations")
public class CommuneRelationController extends AbstractController<CommuneRelation> {
@Autowired
private CommuneRelationDao communeRelationDao;
@Override
protected AbstractDao<CommuneRelation> getAbstractDao() {
return communeRelationDao;
}
}
package com.boot.security.server.controller;
import com.boot.security.server.dao.*;
import com.boot.security.server.dto.EntityImageBean;
import com.boot.security.server.dto.Response;
import com.boot.security.server.dto.ResponseStatusEnum;
import com.boot.security.server.model.CommuneAdm;
import com.boot.security.server.model.Entityimage;
import com.boot.security.server.model.UsrCommuneExt;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.boot.security.server.model.CommunicationRecord;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/communicationRecords")
public class CommunicationRecordController extends AbstractController<CommunicationRecord> {
@Autowired
private CommunicationRecordDao communicationRecordDao;
@Autowired
private UsrCommuneExtDao usrCommuneExtDao;
@Autowired
private CommuneAdmDao communeAdmDao;
@Autowired
private EntityimageDao entityimageDao;
public AbstractDao<CommunicationRecord> getAbstractDao() {
return communicationRecordDao;
}
public Response<String> save(@RequestBody CommunicationRecord entity) {
Response<String> response = new Response<String>(ResponseStatusEnum.SUCCESS,null);
communicationRecordDao.save(entity);
//查社员表
UsrCommuneExt usrCommuneExt = usrCommuneExtDao.getByUid(entity.getUid());
//查社员管理表id
CommuneAdm communeAdm = communeAdmDao.getCommuneExtId(usrCommuneExt.getId());
//更新交流时间
communeAdm.setLastCommunicationTime(entity.getCommunicationTime());
communeAdmDao.update(communeAdm);
response.setData("success");
return response;
}
@GetMapping("attach/{attachIds}")
@ApiOperation(value = "根据UID获取")
public Response<List<Entityimage>> getAttachs(@PathVariable String attachIds) {
Response<List<Entityimage>> response = new Response<List<Entityimage>>(ResponseStatusEnum.SUCCESS,null);
String[] ids = attachIds.split(",");
List<Entityimage> list = new ArrayList<Entityimage>();
for(String id:ids){
Entityimage entityimage= entityimageDao.getById(Long.parseLong(id));
if(entityimage!=null){
list.add(entityimage);
}
}
response.setData(list);
return response;
}
}
\ No newline at end of file
package com.boot.security.server.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.dao.DictDao;
import com.boot.security.server.model.Dict;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.dto.PageTableResponse;
import io.swagger.annotations.ApiOperation;
@RestController
@RequestMapping("/dicts")
public class DictController {
@Autowired
private DictDao dictDao;
@PreAuthorize("hasAuthority('dict:add')")
@PostMapping
@ApiOperation(value = "保存")
public Dict save(@RequestBody Dict dict) {
Dict d = dictDao.getByTypeAndK(dict.getType(), dict.getK());
if (d != null) {
throw new IllegalArgumentException("类型和key已存在");
}
dictDao.save(dict);
return dict;
}
@GetMapping("/{id}")
@ApiOperation(value = "根据id获取")
public Dict get(@PathVariable Long id) {
return dictDao.getById(id);
}
@PreAuthorize("hasAuthority('dict:add')")
@PutMapping
@ApiOperation(value = "修改")
public Dict update(@RequestBody Dict dict) {
dictDao.update(dict);
return dict;
}
@PreAuthorize("hasAuthority('dict:query')")
@GetMapping(params = { "start", "length" })
@ApiOperation(value = "列表")
public PageTableResponse list(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return dictDao.count(request.getParams());
}
}, new ListHandler() {
@Override
public List<Dict> list(PageTableRequest request) {
return dictDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
}
}).handle(request);
}
@PreAuthorize("hasAuthority('dict:del')")
@DeleteMapping("/{id}")
@ApiOperation(value = "删除")
public void delete(@PathVariable Long id) {
dictDao.delete(id);
}
@GetMapping(params = "type")
public List<Dict> listByType(String type) {
return dictDao.listByType(type);
}
}
package com.boot.security.server.controller;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.codec.digest.DigestUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.utils.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(tags = "excel下载")
@RestController
@RequestMapping("/excels")
public class ExcelController {
private static final Logger log = LoggerFactory.getLogger("adminLogger");
@Autowired
private JdbcTemplate jdbcTemplate;
@ApiOperation("校验sql,并返回sql返回的数量")
@PostMapping("/sql-count")
public Integer checkSql(String sql) {
log.info(sql);
sql = getAndCheckSql(sql);
Integer count = 0;
try {
count = jdbcTemplate.queryForObject("select count(1) from (" + sql + ") t", Integer.class);
} catch (Exception e) {
throw new IllegalArgumentException(e.getMessage());
}
return count;
}
private String getAndCheckSql(String sql) {
sql = sql.trim().toLowerCase();
if (sql.endsWith(";") || sql.endsWith(";")) {
sql = sql.substring(0, sql.length() - 1);
}
if (!sql.startsWith("select")) {
throw new IllegalArgumentException("仅支持select语句");
}
return sql;
}
@LogAnnotation
@ApiOperation("根据sql导出excel")
@PostMapping
@PreAuthorize("hasAuthority('excel:down')")
public void downloadExcel(String sql, String fileName, HttpServletResponse response) {
sql = getAndCheckSql(sql);
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
if (!CollectionUtils.isEmpty(list)) {
Map<String, Object> map = list.get(0);
String[] headers = new String[map.size()];
int i = 0;
for (String key : map.keySet()) {
headers[i++] = key;
}
List<Object[]> datas = new ArrayList<>(list.size());
for (Map<String, Object> m : list) {
Object[] objects = new Object[headers.length];
for (int j = 0; j < headers.length; j++) {
objects[j] = m.get(headers[j]);
}
datas.add(objects);
}
ExcelUtil.excelExport(
fileName == null || fileName.trim().length() <= 0 ? DigestUtils.md5Hex(sql) : fileName, headers,
datas, response);
}
}
@LogAnnotation
@ApiOperation("根据sql在页面显示结果")
@PostMapping("/show-datas")
@PreAuthorize("hasAuthority('excel:show:datas')")
public List<Object[]> showData(String sql) {
sql = getAndCheckSql(sql);
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
if (!CollectionUtils.isEmpty(list)) {
Map<String, Object> map = list.get(0);
String[] headers = new String[map.size()];
int i = 0;
for (String key : map.keySet()) {
headers[i++] = key;
}
List<Object[]> datas = new ArrayList<>(list.size());
datas.add(headers);
for (Map<String, Object> m : list) {
Object[] objects = new Object[headers.length];
for (int j = 0; j < headers.length; j++) {
objects[j] = m.get(headers[j]);
}
datas.add(objects);
}
return datas;
}
return Collections.emptyList();
}
}
package com.boot.security.server.controller;
import java.io.*;
import java.util.Date;
import java.util.List;
import com.boot.security.server.dao.EntityimageDao;
import com.boot.security.server.dto.*;
import com.boot.security.server.model.Entityimage;
import com.boot.security.server.service.impl.ImageService;
import com.squareup.okhttp.ResponseBody;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.FileInfoDao;
import com.boot.security.server.dto.LayuiFile.LayuiFileData;
import com.boot.security.server.model.FileInfo;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.service.FileService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.servlet.http.HttpServletResponse;
@Api(tags = "文件")
@RestController
@RequestMapping("/files")
public class FileController {
@Autowired
private FileService fileService;
@Autowired
private FileInfoDao fileInfoDao;
@Autowired
private ImageService imageService = null;
@Autowired
private EntityimageDao entityimageDao;
@LogAnnotation
@PostMapping
@ApiOperation(value = "文件上传")
public Response<EntityImageBean> uploadFile(MultipartFile file) throws IOException {
Response<EntityImageBean> response = new Response<EntityImageBean>(ResponseStatusEnum.SUCCESS,null);
EntityImageBean entityImageBean = imageService.upload(file.getBytes(),this.reFileName(file.getOriginalFilename()));
Entityimage entityImage = new Entityimage();
BeanUtils.copyProperties(entityImageBean,entityImage);
entityimageDao.save(entityImage);
entityImageBean.setId(entityImage.getId());
response.setData(entityImageBean);
return response;
}
private String reFileName(String sourceFileName){
String fName = "";
String suffix = "";
if(sourceFileName.indexOf(".")>=0){
int indexdot = sourceFileName.indexOf(".");
suffix = sourceFileName.substring(indexdot);
fName = sourceFileName.substring(0,sourceFileName.lastIndexOf("."));
Date now = new Date();
fName = fName + "_" +now.getTime();
fName = fName + suffix;
return fName;
}
return "";
}
@GetMapping("/{id}")
public void downLoad(@PathVariable Long id, HttpServletResponse response) throws Exception {
Entityimage entityimage = entityimageDao.getById(id);
String fileName = entityimage.getHash()+"."+entityimage.getExt();
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
ResponseBody responseBody = imageService.download("http://img.iwanoutdoor.com/"+fileName);
InputStream inputStream = responseBody.byteStream();
int len=0;
byte[] buff = new byte[1024];
OutputStream out = response.getOutputStream();
try {
while ((len = inputStream.read(buff)) != -1) {
out.write(buff, 0, len);
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(inputStream!=null) inputStream.close();
if(out!=null) out.close();
}
}
/**
* layui富文本文件自定义上传
*
* @param file
* @param domain
* @return
* @throws IOException
*/
@LogAnnotation
@PostMapping("/layui")
@ApiOperation(value = "layui富文本文件自定义上传")
public LayuiFile uploadLayuiFile(MultipartFile file, String domain) throws IOException {
FileInfo fileInfo = fileService.save(file);
LayuiFile layuiFile = new LayuiFile();
layuiFile.setCode(0);
LayuiFileData data = new LayuiFileData();
layuiFile.setData(data);
data.setSrc(domain + "/statics" + fileInfo.getUrl());
data.setTitle(file.getOriginalFilename());
return layuiFile;
}
@GetMapping
@ApiOperation(value = "文件查询")
@PreAuthorize("hasAuthority('sys:file:query')")
public PageTableResponse listFiles(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return fileInfoDao.count(request.getParams());
}
}, new ListHandler() {
@Override
public List<FileInfo> list(PageTableRequest request) {
List<FileInfo> list = fileInfoDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());;
return list;
}
}).handle(request);
}
@LogAnnotation
@DeleteMapping("/{id}")
@ApiOperation(value = "文件删除")
@PreAuthorize("hasAuthority('sys:file:del')")
public void delete(@PathVariable String id) {
fileService.delete(id);
}
}
package com.boot.security.server.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
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 com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dto.BeanField;
import com.boot.security.server.dto.GenerateDetail;
import com.boot.security.server.dto.GenerateInput;
import com.boot.security.server.service.GenerateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 代码生成接口
*
*
*
*/
@Api(tags = "代码生成")
@RestController
@RequestMapping("/generate")
public class GenerateController {
@Autowired
private GenerateService generateService;
@ApiOperation("根据表名显示表信息")
@GetMapping(params = { "tableName" })
@PreAuthorize("hasAuthority('generate:edit')")
public GenerateDetail generateByTableName(String tableName) {
GenerateDetail detail = new GenerateDetail();
detail.setBeanName(generateService.upperFirstChar(tableName));
List<BeanField> fields = generateService.listBeanField(tableName);
detail.setFields(fields);
return detail;
}
@LogAnnotation
@ApiOperation("生成代码")
@PostMapping
@PreAuthorize("hasAuthority('generate:edit')")
public void save(@RequestBody GenerateInput input) {
generateService.saveCode(input);
}
}
package com.boot.security.server.controller;
import com.boot.security.server.dao.AbstractDao;
import com.boot.security.server.model.GolfHabit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/golfHabits")
public class GolfHabitController extends AbstractController<GolfHabit>{
@Autowired
private AbstractDao<GolfHabit> golfHabitDao;
@Override
protected AbstractDao<GolfHabit> getAbstractDao() {
return golfHabitDao;
}
}
package com.boot.security.server.controller;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.JobDao;
import com.boot.security.server.model.JobModel;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.dto.PageTableResponse;
import com.boot.security.server.service.JobService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.quartz.CronExpression;
import org.quartz.SchedulerException;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.*;
@Api(tags = "定时任务")
@RestController
@RequestMapping("/jobs")
public class JobController {
@Autowired
private JobService jobService;
@Autowired
private JobDao jobDao;
@LogAnnotation
@ApiOperation("添加定时任务")
@PostMapping
@PreAuthorize("hasAuthority('job:add')")
public void add(@RequestBody JobModel jobModel) {
JobModel model = jobDao.getByName(jobModel.getJobName());
if (model != null) {
throw new IllegalArgumentException(jobModel.getJobName() + "已存在");
}
jobModel.setIsSysJob(false);
jobService.saveJob(jobModel);
}
@LogAnnotation
@ApiOperation("修改定时任务")
@PutMapping
@PreAuthorize("hasAuthority('job:add')")
public void update(@RequestBody JobModel jobModel) {
jobModel.setStatus(1);
jobService.saveJob(jobModel);
}
@LogAnnotation
@ApiOperation("删除定时任务")
@DeleteMapping("/{id}")
@PreAuthorize("hasAuthority('job:del')")
public void delete(@PathVariable Long id) throws SchedulerException {
jobService.deleteJob(id);
}
@ApiOperation("根据id获取定时任务")
@GetMapping("/{id}")
@PreAuthorize("hasAuthority('job:query')")
public JobModel getById(@PathVariable Long id) {
return jobDao.getById(id);
}
@GetMapping
@ApiOperation(value = "定时任务列表")
@PreAuthorize("hasAuthority('job:query')")
public PageTableResponse list(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return jobDao.count(request.getParams());
}
}, new ListHandler() {
@Override
public List<JobModel> list(PageTableRequest request) {
List<JobModel> list = jobDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());;
return list;
}
}).handle(request);
}
@ApiOperation(value = "校验cron表达式")
@GetMapping(params = "cron")
public boolean checkCron(String cron) {
return CronExpression.isValidExpression(cron);
}
@Autowired
private ApplicationContext applicationContext;
@ApiOperation(value = "springBean名字")
@GetMapping("/beans")
public List<String> listAllBeanName() {
String[] strings = applicationContext.getBeanDefinitionNames();
List<String> list = new ArrayList<>();
for (String str : strings) {
if (str.contains(".")) {
continue;
}
Class<?> clazz = getClass(str);
// if (clazz.isAssignableFrom(Controller.class) || clazz.isAnnotationPresent(RestController.class)) {
// continue;
// }
//
// list.add(str);
// 2018.07.26修改 上面注释的add添加了太多不认识的bean,改为下面的判断我们只添加service,bean少了不少
if (clazz.isAnnotationPresent(Service.class) && str.toLowerCase().contains("service")) {
list.add(str);
}
}
// list.sort((l1, l2) -> l1.compareTo(l2));
Collections.sort(list);// 2018.07.26修改排序
return list;
}
@ApiOperation(value = "springBean的无参方法")
@GetMapping("/beans/{name}")
public Set<String> listMethodName(@PathVariable String name) {
Class<?> clazz = getClass(name);
Method[] methods = clazz.getDeclaredMethods();
Set<String> names = new HashSet<>();
Arrays.asList(methods).forEach(m -> {
int b = m.getModifiers();// public 1 static 8 final 16
// if (b == 1 || b == 9 || b == 17 || b == 25) {
if (Modifier.isPublic(b)) { // 2018.07.26修改public方法的判断
Class<?>[] classes = m.getParameterTypes();
if (classes.length == 0) {
names.add(m.getName());
}
}
});
return names;
}
private Class<?> getClass(String name) {
Object object = applicationContext.getBean(name);
Class<?> clazz = object.getClass();
if (AopUtils.isAopProxy(object)) {
clazz = clazz.getSuperclass();
}
return clazz;
}
}
package com.boot.security.server.controller;
import java.util.List;
import com.boot.security.server.model.AdmUsers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.NoticeDao;
import com.boot.security.server.dto.NoticeReadVO;
import com.boot.security.server.dto.NoticeVO;
import com.boot.security.server.model.Notice;
import com.boot.security.server.model.SysUser;
import com.boot.security.server.model.Notice.Status;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.dto.PageTableResponse;
import com.boot.security.server.utils.UserUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(tags = "公告")
@RestController
@RequestMapping("/notices")
public class NoticeController {
@Autowired
private NoticeDao noticeDao;
@LogAnnotation
@PostMapping
@ApiOperation(value = "保存公告")
@PreAuthorize("hasAuthority('notice:add')")
public Notice saveNotice(@RequestBody Notice notice) {
noticeDao.save(notice);
return notice;
}
@GetMapping("/{id}")
@ApiOperation(value = "根据id获取公告")
@PreAuthorize("hasAuthority('notice:query')")
public Notice get(@PathVariable Long id) {
return noticeDao.getById(id);
}
@GetMapping(params = "id")
public NoticeVO readNotice(Long id) {
NoticeVO vo = new NoticeVO();
Notice notice = noticeDao.getById(id);
if (notice == null || notice.getStatus() == Status.DRAFT) {
return vo;
}
vo.setNotice(notice);
noticeDao.saveReadRecord(notice.getId(), UserUtil.getLoginUser().getId());
List<SysUser> users = noticeDao.listReadUsers(id);
vo.setUsers(users);
return vo;
}
@LogAnnotation
@PutMapping
@ApiOperation(value = "修改公告")
@PreAuthorize("hasAuthority('notice:add')")
public Notice updateNotice(@RequestBody Notice notice) {
Notice no = noticeDao.getById(notice.getId());
if (no.getStatus() == Status.PUBLISH) {
throw new IllegalArgumentException("发布状态的不能修改");
}
noticeDao.update(notice);
return notice;
}
@GetMapping
@ApiOperation(value = "公告管理列表")
@PreAuthorize("hasAuthority('notice:query')")
public PageTableResponse listNotice(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return noticeDao.count(request.getParams());
}
}, new ListHandler() {
@Override
public List<Notice> list(PageTableRequest request) {
return noticeDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
}
}).handle(request);
}
@LogAnnotation
@DeleteMapping("/{id}")
@ApiOperation(value = "删除公告")
@PreAuthorize("hasAuthority('notice:del')")
public void delete(@PathVariable Long id) {
noticeDao.delete(id);
}
@ApiOperation(value = "未读公告数")
@GetMapping("/count-unread")
public Integer countUnread() {
AdmUsers user = UserUtil.getLoginUser();
return noticeDao.countUnread(user.getId());
}
@GetMapping("/published")
@ApiOperation(value = "公告列表")
public PageTableResponse listNoticeReadVO(PageTableRequest request) {
request.getParams().put("userId", UserUtil.getLoginUser().getId());
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return noticeDao.countNotice(request.getParams());
}
}, new ListHandler() {
@Override
public List<NoticeReadVO> list(PageTableRequest request) {
return noticeDao.listNotice(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
}
}).handle(request);
}
}
package com.boot.security.server.controller;
import java.util.ArrayList;
import java.util.List;
import com.boot.security.server.dao.AbstractDao;
import com.boot.security.server.dto.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.dao.OrderDao;
import com.boot.security.server.model.Order;
import io.swagger.annotations.ApiOperation;
@RestController
@RequestMapping("/orders")
public class OrderController extends AbstractController{
@Autowired
private OrderDao orderDao;
@Override
protected AbstractDao getAbstractDao() {
return orderDao;
}
@GetMapping
@ApiOperation(value = "列表")
public Response<PageData> list(PageTableRequest request) {
Response<PageData> response = new Response<PageData>(ResponseStatusEnum.SUCCESS,null);
int count = this.getAbstractDao().count(request.getParams());
List<Order> list = orderDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
List<OrderListBean> listBeans = new ArrayList<OrderListBean>();
for(Order order:list){
OrderListBean orderListBean = new OrderListBean();
BeanUtils.copyProperties(order,orderListBean);
OrderStatusEnum orderStatusEnum = OrderStatusEnum.getOrderStatus(
orderListBean.getOrderType(), orderListBean.getPayMode(),
orderListBean.getConfirmType(), orderListBean.getProcessStatus(),
false);
orderListBean.setOrderStatusDesc(orderStatusEnum.getShowStatusName());
listBeans.add(orderListBean);
}
Pagination pagination = new Pagination(count,request.getCurrent(), request.getPageSize());
PageData<OrderListBean> pageData = new PageData<OrderListBean>(listBeans,pagination);
response.setData(pageData);
return response;
}
}
package com.boot.security.server.controller;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.PermissionDao;
import com.boot.security.server.dto.LoginUser;
import com.boot.security.server.model.Permission;
import com.boot.security.server.service.PermissionService;
import com.boot.security.server.utils.UserUtil;
import com.google.common.collect.Lists;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 权限相关接口
*
*
*
*/
@Api(tags = "权限")
@RestController
@RequestMapping("/permissions")
public class PermissionController {
@Autowired
private PermissionDao permissionDao;
@Autowired
private PermissionService permissionService;
@ApiOperation(value = "当前登录用户拥有的权限")
@GetMapping("/current")
public List<Permission> permissionsCurrent() {
LoginUser loginUser = UserUtil.getLoginUser();
List<Permission> list = loginUser.getPermissions();
final List<Permission> permissions = list.stream().filter(l -> l.getType().equals(1))
.collect(Collectors.toList());
// setChild(permissions);
//
// return permissions.stream().filter(p -> p.getParentId().equals(0L)).collect(Collectors.toList());
// 2018.06.09 支持多级菜单
List<Permission> firstLevel = permissions.stream().filter(p -> p.getParentId().equals(0L)).collect(Collectors.toList());
firstLevel.parallelStream().forEach(p -> {
setChild(p, permissions);
});
return firstLevel;
}
/**
* 设置子元素
* 2018.06.09
*
* @param p
* @param permissions
*/
private void setChild(Permission p, List<Permission> permissions) {
List<Permission> child = permissions.parallelStream().filter(a -> a.getParentId().equals(p.getId())).collect(Collectors.toList());
p.setChild(child);
if (!CollectionUtils.isEmpty(child)) {
child.parallelStream().forEach(c -> {
//递归设置子元素,多级菜单支持
setChild(c, permissions);
});
}
}
// private void setChild(List<Permission> permissions) {
// permissions.parallelStream().forEach(per -> {
// List<Permission> child = permissions.stream().filter(p -> p.getParentId().equals(per.getId()))
// .collect(Collectors.toList());
// per.setChild(child);
// });
// }
/**
* 菜单列表
*
* @param pId
* @param permissionsAll
* @param list
*/
private void setPermissionsList(Long pId, List<Permission> permissionsAll, List<Permission> list) {
for (Permission per : permissionsAll) {
if (per.getParentId().equals(pId)) {
list.add(per);
if (permissionsAll.stream().filter(p -> p.getParentId().equals(per.getId())).findAny() != null) {
setPermissionsList(per.getId(), permissionsAll, list);
}
}
}
}
@GetMapping
@ApiOperation(value = "菜单列表")
@PreAuthorize("hasAuthority('sys:menu:query')")
public List<Permission> permissionsList() {
List<Permission> permissionsAll = permissionDao.listAll();
List<Permission> list = Lists.newArrayList();
setPermissionsList(0L, permissionsAll, list);
return list;
}
@GetMapping("/all")
@ApiOperation(value = "所有菜单")
@PreAuthorize("hasAuthority('sys:menu:query')")
public JSONArray permissionsAll() {
List<Permission> permissionsAll = permissionDao.listAll();
JSONArray array = new JSONArray();
setPermissionsTree(0L, permissionsAll, array);
return array;
}
@GetMapping("/parents")
@ApiOperation(value = "一级菜单")
@PreAuthorize("hasAuthority('sys:menu:query')")
public List<Permission> parentMenu() {
List<Permission> parents = permissionDao.listParents();
return parents;
}
/**
* 菜单树
*
* @param pId
* @param permissionsAll
* @param array
*/
private void setPermissionsTree(Long pId, List<Permission> permissionsAll, JSONArray array) {
for (Permission per : permissionsAll) {
if (per.getParentId().equals(pId)) {
String string = JSONObject.toJSONString(per);
JSONObject parent = (JSONObject) JSONObject.parse(string);
array.add(parent);
if (permissionsAll.stream().filter(p -> p.getParentId().equals(per.getId())).findAny() != null) {
JSONArray child = new JSONArray();
parent.put("child", child);
setPermissionsTree(per.getId(), permissionsAll, child);
}
}
}
}
@GetMapping(params = "roleId")
@ApiOperation(value = "根据角色id获取权限")
@PreAuthorize("hasAnyAuthority('sys:menu:query','sys:role:query')")
public List<Permission> listByRoleId(Long roleId) {
return permissionDao.listByRoleId(roleId);
}
@LogAnnotation
@PostMapping
@ApiOperation(value = "保存菜单")
@PreAuthorize("hasAuthority('sys:menu:add')")
public void save(@RequestBody Permission permission) {
permissionDao.save(permission);
}
@GetMapping("/{id}")
@ApiOperation(value = "根据菜单id获取菜单")
@PreAuthorize("hasAuthority('sys:menu:query')")
public Permission get(@PathVariable Long id) {
return permissionDao.getById(id);
}
@LogAnnotation
@PutMapping
@ApiOperation(value = "修改菜单")
@PreAuthorize("hasAuthority('sys:menu:add')")
public void update(@RequestBody Permission permission) {
permissionService.update(permission);
}
/**
* 校验权限
*
* @return
*/
@GetMapping("/owns")
@ApiOperation(value = "校验当前用户的权限")
public Set<String> ownsPermission() {
List<Permission> permissions = UserUtil.getLoginUser().getPermissions();
if (CollectionUtils.isEmpty(permissions)) {
return Collections.emptySet();
}
return permissions.parallelStream().filter(p -> !StringUtils.isEmpty(p.getPermission()))
.map(Permission::getPermission).collect(Collectors.toSet());
}
@LogAnnotation
@DeleteMapping("/{id}")
@ApiOperation(value = "删除菜单")
@PreAuthorize("hasAuthority('sys:menu:del')")
public void delete(@PathVariable Long id) {
permissionService.delete(id);
}
}
package com.boot.security.server.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.dto.PageTableResponse;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.dao.ProductDao;
import com.boot.security.server.model.Product;
import io.swagger.annotations.ApiOperation;
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductDao productDao;
@PostMapping
@ApiOperation(value = "保存")
public Product save(@RequestBody Product product) {
productDao.save(product);
return product;
}
@PostMapping("/hello")
public String hello() {
return "hello world!";
}
@GetMapping("/{id}")
@ApiOperation(value = "根据id获取")
public Product get(@PathVariable Long id) {
return productDao.getById(id);
}
@PutMapping
@ApiOperation(value = "修改")
public Product update(@RequestBody Product product) {
productDao.update(product);
return product;
}
@GetMapping
@ApiOperation(value = "列表")
public PageTableResponse list(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return productDao.count(request.getParams());
}
}, new ListHandler() {
@Override
public List<Product> list(PageTableRequest request) {
return productDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
}
}).handle(request);
}
@DeleteMapping("/{id}")
@ApiOperation(value = "删除")
public void delete(@PathVariable Long id) {
productDao.delete(id);
}
}
package com.boot.security.server.controller;
import com.boot.security.server.dao.AbstractDao;
import com.boot.security.server.model.PurchaseHabit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/purchaseHabits")
public class PurchaseHabitController extends AbstractController<PurchaseHabit> {
@Autowired
private AbstractDao<PurchaseHabit> purchaseHabitDao;
public AbstractDao<PurchaseHabit> getAbstractDao() {
return purchaseHabitDao;
}
}
\ No newline at end of file
package com.boot.security.server.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
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 com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.RoleDao;
import com.boot.security.server.dto.RoleDto;
import com.boot.security.server.model.Role;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.dto.PageTableResponse;
import com.boot.security.server.service.RoleService;
import com.google.common.collect.Maps;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 角色相关接口
*
*
*
*/
@Api(tags = "角色")
@RestController
@RequestMapping("/roles")
public class RoleController {
@Autowired
private RoleService roleService;
@Autowired
private RoleDao roleDao;
@LogAnnotation
@PostMapping
@ApiOperation(value = "保存角色")
@PreAuthorize("hasAuthority('sys:role:add')")
public void saveRole(@RequestBody RoleDto roleDto) {
roleService.saveRole(roleDto);
}
@GetMapping
@ApiOperation(value = "角色列表")
@PreAuthorize("hasAuthority('sys:role:query')")
public PageTableResponse listRoles(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return roleDao.count(request.getParams());
}
}, new ListHandler() {
@Override
public List<Role> list(PageTableRequest request) {
List<Role> list = roleDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
return list;
}
}).handle(request);
}
@GetMapping("/{id}")
@ApiOperation(value = "根据id获取角色")
@PreAuthorize("hasAuthority('sys:role:query')")
public Role get(@PathVariable Long id) {
return roleDao.getById(id);
}
@GetMapping("/all")
@ApiOperation(value = "所有角色")
@PreAuthorize("hasAnyAuthority('sys:user:query','sys:role:query')")
public List<Role> roles() {
return roleDao.list(Maps.newHashMap(), null, null);
}
@GetMapping(params = "userId")
@ApiOperation(value = "根据用户id获取拥有的角色")
@PreAuthorize("hasAnyAuthority('sys:user:query','sys:role:query')")
public List<Role> roles(Long userId) {
return roleDao.listByUserId(userId);
}
@LogAnnotation
@DeleteMapping("/{id}")
@ApiOperation(value = "删除角色")
@PreAuthorize("hasAuthority('sys:role:del')")
public void delete(@PathVariable Long id) {
roleService.deleteRole(id);
}
}
package com.boot.security.server.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.dao.SysLogsDao;
import com.boot.security.server.model.SysLogs;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.dto.PageTableResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(tags = "日志")
@RestController
@RequestMapping("/logs")
public class SysLogsController {
@Autowired
private SysLogsDao sysLogsDao;
@GetMapping
@PreAuthorize("hasAuthority('sys:log:query')")
@ApiOperation(value = "日志列表")
public PageTableResponse list(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return sysLogsDao.count(request.getParams());
}
}, new ListHandler() {
@Override
public List<SysLogs> list(PageTableRequest request) {
return sysLogsDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
}
}).handle(request);
}
}
package com.boot.security.server.controller;
import com.boot.security.server.dao.AbstractDao;
import com.boot.security.server.model.TravelHabit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/travelHabits")
public class TravelHabitController extends AbstractController<TravelHabit> {
@Autowired
private AbstractDao<TravelHabit> travelHabitDao;
public AbstractDao<TravelHabit> getAbstractDao() {
return travelHabitDao;
}
}
\ No newline at end of file
package com.boot.security.server.controller;
import java.util.List;
import com.boot.security.server.model.AdmUsers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.UserDao;
import com.boot.security.server.dto.UserDto;
import com.boot.security.server.model.SysUser;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.dto.PageTableResponse;
import com.boot.security.server.service.UserService;
import com.boot.security.server.utils.UserUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 用户相关接口
*
*
*
*/
@Api(tags = "用户")
@RestController
@RequestMapping("/users")
public class UserController {
private static final Logger log = LoggerFactory.getLogger("adminLogger");
@Autowired
private UserService userService;
@Autowired
private UserDao userDao;
@LogAnnotation
@PostMapping
@ApiOperation(value = "保存用户")
@PreAuthorize("hasAuthority('sys:user:add')")
public SysUser saveUser(@RequestBody UserDto userDto) {
SysUser u = userService.getUser(userDto.getUsername());
if (u != null) {
throw new IllegalArgumentException(userDto.getUsername() + "已存在");
}
return userService.saveUser(userDto);
}
@LogAnnotation
@PutMapping
@ApiOperation(value = "修改用户")
@PreAuthorize("hasAuthority('sys:user:add')")
public SysUser updateUser(@RequestBody UserDto userDto) {
return userService.updateUser(userDto);
}
@LogAnnotation
@PutMapping(params = "headImgUrl")
@ApiOperation(value = "修改头像")
public void updateHeadImgUrl(String headImgUrl) {
AdmUsers user = UserUtil.getLoginUser();
UserDto userDto = new UserDto();
BeanUtils.copyProperties(user, userDto);
userDto.setHeadImgUrl(headImgUrl);
userService.updateUser(userDto);
log.debug("{}修改了头像", user.getUsername());
}
@LogAnnotation
@PutMapping("/{username}")
@ApiOperation(value = "修改密码")
@PreAuthorize("hasAuthority('sys:user:password')")
public void changePassword(@PathVariable String username, String oldPassword, String newPassword) {
userService.changePassword(username, oldPassword, newPassword);
}
@GetMapping
@ApiOperation(value = "用户列表")
@PreAuthorize("hasAuthority('sys:user:query')")
public PageTableResponse listUsers(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return userDao.count(request.getParams());
}
}, new ListHandler() {
@Override
public List<SysUser> list(PageTableRequest request) {
List<SysUser> list = userDao.list(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
return list;
}
}).handle(request);
}
@ApiOperation(value = "当前登录用户")
@GetMapping("/current")
public AdmUsers currentUser() {
return UserUtil.getLoginUser();
}
@ApiOperation(value = "根据用户id获取用户")
@GetMapping("/{id}")
@PreAuthorize("hasAuthority('sys:user:query')")
public SysUser user(@PathVariable Long id) {
return userDao.getById(id);
}
}
package com.boot.security.server.controller;
import com.boot.security.server.dao.AbstractDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.model.UserInfo;
@RestController
@RequestMapping("/userInfos")
public class UserInfoController extends AbstractController<UserInfo> {
@Autowired
private AbstractDao<UserInfo> userInfoDao;
public AbstractDao<UserInfo> getAbstractDao() {
return userInfoDao;
}
}
\ No newline at end of file
package com.boot.security.server.controller;
import com.boot.security.server.dao.AbstractDao;
import com.boot.security.server.dto.*;
import com.boot.security.server.utils.UserUtil;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.dao.UsrCommuneExtDao;
import com.boot.security.server.model.UsrCommuneExt;
import io.swagger.annotations.ApiOperation;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
@RequestMapping("/usrCommuneExts")
public class UsrCommuneExtController extends AbstractController<UsrCommuneExt>{
@Autowired
private UsrCommuneExtDao usrCommuneExtDao;
@Override
protected AbstractDao<UsrCommuneExt> getAbstractDao() {
return usrCommuneExtDao;
}
@Override
public Response<Object> get(@PathVariable Long id) {
Response<Object> response = new Response<Object>(ResponseStatusEnum.SUCCESS,null);
response.setStatusEnum(ResponseStatusEnum.SUCCESS);
response.setData(usrCommuneExtDao.getBeanById(id));
return response;
}
@Override
public Response<PageData> list(PageTableRequest request){
Response<PageData> response = new Response<PageData>(ResponseStatusEnum.SUCCESS,null);
request.getParams().put("admUserId",UserUtil.getLoginUser().getId());
Object communeEndTimeStart = request.getParams().get("communeEndTimeStart");
Object communeEndTimeEnd = request.getParams().get("communeEndTimeEnd");
try {
if(communeEndTimeStart!=null){
request.getParams().put("communeAgainTimeStart",this.dateStringAddYears((String)communeEndTimeStart,-1));
}
if(communeEndTimeEnd!=null){
request.getParams().put("communeAgainTimeEnd",this.dateStringAddYears((String)communeEndTimeEnd,-1));
}
int count =usrCommuneExtDao.countBean(request.getParams());
List<UsrCommuneExtBean> list = usrCommuneExtDao.listBean(request.getParams(), (request.getCurrent()-1)*request.getPageSize(),request.getPageSize());
Pagination pagination = new Pagination(count,request.getCurrent(), request.getPageSize());
PageData<UsrCommuneExtBean> pageData = new PageData<UsrCommuneExtBean>(list,pagination);
response.setData(pageData);
return response;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
private String dateStringAddYears(String communeEndTimeStart,int years) throws Exception{
Date date = DateUtils.addYears(DateUtils.parseDate(communeEndTimeStart, "yyyy-MM-dd hh:mm:ss"), years);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(date);
return format;
}
//当天沟通 7天未沟通 30天未沟通 90天未沟通 从未沟通
@GetMapping("/lastCommunicationTime")
@ApiOperation(value = "根据id获取")
public Response<Map<String,Integer>> getLastCommunicationTime() {
Response<Map<String,Integer>> response = new Response<Map<String,Integer>>(ResponseStatusEnum.SUCCESS,null);
response.setStatusEnum(ResponseStatusEnum.SUCCESS);
Date todayStart = DateUtils.truncate(new Date(), Calendar.DATE);// 过滤时分秒
Date todayEnd =DateUtils.addSeconds(todayStart,86399);// 过滤时分秒
Map<String, Object> params_one = new HashMap<String, Object>();
params_one.put("admUserId",UserUtil.getLoginUser().getId());
params_one.put("lastCommunicationTimeStart",todayStart);
params_one.put("lastCommunicationTimeEnd",todayEnd);
int one =usrCommuneExtDao.countBean(params_one);//当天沟通
Map<String, Object> params_seven_non = new HashMap<String, Object>();
params_seven_non.put("admUserId",UserUtil.getLoginUser().getId());
params_seven_non.put("lastCommunicationTimeEnd",DateUtils.addDays(todayEnd,-7));
int seven_non =usrCommuneExtDao.countBean(params_seven_non);//一周未沟通
Map<String, Object> params_month_non = new HashMap<String, Object>();
params_month_non.put("admUserId",UserUtil.getLoginUser().getId());
params_month_non.put("lastCommunicationTimeEnd",DateUtils.addDays(todayEnd,-30));
int month_non =usrCommuneExtDao.countBean(params_seven_non);//一月未沟通
Map<String, Object> params_three_month_non = new HashMap<String, Object>();
params_three_month_non.put("admUserId",UserUtil.getLoginUser().getId());
params_three_month_non.put("lastCommunicationTimeEnd",DateUtils.addDays(todayEnd,-90));
int three_month_non =usrCommuneExtDao.countBean(params_three_month_non);//一月未沟通
Map<String, Object> params_all_non = new HashMap<String, Object>();
params_all_non.put("admUserId",UserUtil.getLoginUser().getId());
params_all_non.put("nonCommunication","nonCommunication");
int all_non =usrCommuneExtDao.countBean(params_all_non);//从未沟通
////当天沟通 一周未沟通 30天未沟通 90天未沟通 从未沟通
Map<String,Integer> counts = new HashMap<String,Integer>();
counts.put("one",one);
counts.put("seven_non",seven_non);
counts.put("month_non",month_non);
counts.put("three_month_non",three_month_non);
counts.put("all_non",all_non);
response.setData(counts);
return response;
}
public static void main(String[] args) {
System.out.println(DateUtils.ceiling(new Date(), Calendar.HOUR));
Date dateStart = DateUtils.truncate(new Date(), Calendar.DATE);// 过滤时分秒
Date dateEnd = DateUtils.addSeconds(dateStart,86399);// 过滤时分秒
printFormatDate(dateStart);
printFormatDate(dateEnd);
}
public static void printFormatDate(Date d) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(d));
}
}
package com.boot.security.server.dao;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
public interface AbstractDao<T> {
T getById(Long extId);
int delete(Long id);
int update(T entity);
int save(T entity);
int count(@Param("params") Map<String, Object> params);
List<T> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.AdmUsers;
@Mapper
public interface AdmUsersDao extends AbstractDao<AdmUsers>{
@Select("select * from adm_users t where t.id = #{id}")
AdmUsers getById(Long id);
@Delete("delete from adm_users where id = #{id}")
int delete(Long id);
int update(AdmUsers admUsers);
@Select("select * from adm_users t where t.username = #{username}")
AdmUsers getUser(String username);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into adm_users(username, nickName, password, enable, DataChange_LastTime) values(#{username}, #{nickName}, #{password}, #{enable}, #{DataChangeLastTime})")
int save(AdmUsers admUsers);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.BscUserext;
@Mapper
public interface BscUserextDao extends AbstractDao<BscUserext>{
@Select("select * from bsc_userext t where t.extId = #{extId}")
BscUserext getById(Long extId);
@Delete("delete from bsc_userext where id = #{id}")
int delete(Long id);
int update(BscUserext bscUserext);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into bsc_userext(ExtID, UID, PrePayCardAmount, lockedPrePayCardAmount, DataChange_LastTime, RecommendCode, RecommendByCode, UseVersion, TerminalType, DeviceID, OSVersion, Lng, Lat, CanUseRecommendCode, FirstLoginTime, LastLoginTime, RegisterTime, FillRecommendCodeTime, IsSendAmt, SendAmt, UserName, MobilePhone, BindedMobilePhone, BindedEmail, EMail, Gender, Birth, LoginFailTimes, UserGrade, ExpStartDate, ExpEndDate, UseTerminalType, ChannelNo, HistoryIntegral, CurrentIntegral, doubleIntegralTime, BlockFlag, address, zip, loginTimes, unionId, openId, miniAppOpenId, miniAppSessionKey, nickName, province, city, country, headImgUrl, privilege, vipGrade, vipStartTime, vipExpireTime, umNickName, sourceId, communeTime, currentWorkPoint, handicap, deviceToken, rongYunToken, communeAgainTime, communeYears, tee, familyName, school, industry, golfLevel, nativePlace, zodiac, constellation, occupation, hobby, vipmemberExpireTime, vipmemberSaveAmount, vipmemberDiscounted, inviterUid, hasMPRegisterVoucher) values(#{ExtID}, #{UID}, #{PrePayCardAmount}, #{lockedPrePayCardAmount}, #{DataChangeLastTime}, #{RecommendCode}, #{RecommendByCode}, #{UseVersion}, #{TerminalType}, #{DeviceID}, #{OSVersion}, #{Lng}, #{Lat}, #{CanUseRecommendCode}, #{FirstLoginTime}, #{LastLoginTime}, #{RegisterTime}, #{FillRecommendCodeTime}, #{IsSendAmt}, #{SendAmt}, #{UserName}, #{MobilePhone}, #{BindedMobilePhone}, #{BindedEmail}, #{EMail}, #{Gender}, #{Birth}, #{LoginFailTimes}, #{UserGrade}, #{ExpStartDate}, #{ExpEndDate}, #{UseTerminalType}, #{ChannelNo}, #{HistoryIntegral}, #{CurrentIntegral}, #{doubleIntegralTime}, #{BlockFlag}, #{address}, #{zip}, #{loginTimes}, #{unionId}, #{openId}, #{miniAppOpenId}, #{miniAppSessionKey}, #{nickName}, #{province}, #{city}, #{country}, #{headImgUrl}, #{privilege}, #{vipGrade}, #{vipStartTime}, #{vipExpireTime}, #{umNickName}, #{sourceId}, #{communeTime}, #{currentWorkPoint}, #{handicap}, #{deviceToken}, #{rongYunToken}, #{communeAgainTime}, #{communeYears}, #{tee}, #{familyName}, #{school}, #{industry}, #{golfLevel}, #{nativePlace}, #{zodiac}, #{constellation}, #{occupation}, #{hobby}, #{vipmemberExpireTime}, #{vipmemberSaveAmount}, #{vipmemberDiscounted}, #{inviterUid}, #{hasMPRegisterVoucher})")
int save(BscUserext bscUserext);
int count(@Param("params") Map<String, Object> params);
List<BscUserext> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.CommuneAdm;
@Mapper
public interface CommuneAdmDao {
@Select("select * from usr_commune_adm t where t.id = #{id}")
CommuneAdm getById(Long id);
@Select("select * from usr_commune_adm t where t.communeExtId = #{communeExtId}")
CommuneAdm getCommuneExtId(Long communeExtId);
@Delete("delete from usr_commune_adm where id = #{id}")
int delete(Long id);
int update(CommuneAdm communeAdm);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into usr_commune_adm(communeExtId, uid, admUserId, bindTime, wechatRemark, wechatRemarkTime, labels, unbindFlag, lastCommunicationTime) values(#{communeExtId}, #{uid}, #{admUserId}, #{bindTime}, #{wechatRemark}, #{wechatRemarkTime}, #{labels}, #{unbindFlag}, #{lastCommunicationTime})")
int save(CommuneAdm communeAdm);
int count(@Param("params") Map<String, Object> params);
List<CommuneAdm> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.CommuneRelation;
@Mapper
public interface CommuneRelationDao extends AbstractDao<CommuneRelation>{
@Select("select * from arc_communerelation t where t.id = #{id}")
CommuneRelation getById(Long id);
@Delete("delete from arc_communerelation where id = #{id}")
int delete(Long id);
int update(CommuneRelation communeRelation);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_communerelation(uid, relation, name, age, job, remark) values(#{uid}, #{relation}, #{name}, #{age}, #{job}, #{remark})")
int save(CommuneRelation communeRelation);
int count(@Param("params") Map<String, Object> params);
List<CommuneRelation> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.CommunicationRecord;
@Mapper
public interface CommunicationRecordDao extends AbstractDao<CommunicationRecord>{
@Select("select * from arc_communicationrecord t where t.id = #{id}")
CommunicationRecord getById(Long id);
@Delete("delete from arc_communicationrecord where id = #{id}")
int delete(Long id);
int update(CommunicationRecord communicationRecord);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_communicationrecord(uid, description, attachIds,communicationTime) values(#{uid}, #{description}, #{attachIds}, #{communicationTime})")
int save(CommunicationRecord communicationRecord);
int count(@Param("params") Map<String, Object> params);
List<CommunicationRecord> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.Dict;
@Mapper
public interface DictDao {
@Select("select * from arc_dict t where t.id = #{id}")
Dict getById(Long id);
@Delete("delete from arc_dict where id = #{id}")
int delete(Long id);
int update(Dict dict);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_dict(type, k, val, createTime, updateTime) values(#{type}, #{k}, #{val}, now(), now())")
int save(Dict dict);
int count(@Param("params") Map<String, Object> params);
List<Dict> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
@Select("select * from arc_dict t where t.type = #{type} and k = #{k}")
Dict getByTypeAndK(@Param("type") String type, @Param("k") String k);
@Select("select * from arc_dict t where t.type = #{type}")
List<Dict> listByType(String type);
}
package com.boot.security.server.dao;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* Created by pat on 14-5-21.
*
* @author: l_cheng@ctrip.com
* @date: 2014-05-21
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class EntityImageBean implements Serializable {
/**
* serialVersionUID
*/
private static final long serialVersionUID = -8885326833649081795L;
/**
* id
*/
private Integer id;
/**
* 实体类型
*/
private String entityType;
/**
* 实体id
*/
private Integer entityId;
/**
* 标题
*/
private String title;
private String path;
private String hash;
private String ext;
/**
* 排序
*/
private Integer sort;
/**
* 修改时间
*/
private Date dataChangeLastTime;
/**
* 创建时间
*/
private Date createdTime;
private String url;
/**
* 扩展标记
*/
private String mark;
public EntityImageBean(Integer id, String entityType, Integer entityId, Integer imageId, String title, String path, String hash, String ext, Integer sort) {
this.id = id;
this.entityType = entityType;
this.entityId = entityId;
this.title = title;
this.path = path;
this.hash = hash;
this.ext = ext;
this.sort = sort;
}
public EntityImageBean() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEntityType() {
return entityType;
}
public void setEntityType(String entityType) {
this.entityType = entityType;
}
public Integer getEntityId() {
return entityId;
}
public void setEntityId(Integer entityId) {
this.entityId = entityId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getDataChangeLastTime() {
return dataChangeLastTime;
}
public void setDataChangeLastTime(Date dataChangeLastTime) {
this.dataChangeLastTime = dataChangeLastTime;
}
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public String getPath() {
return path;
}
public String getHash() {
return hash;
}
public String getExt() {
return ext;
}
public void setPath(String path) {
this.path = path;
}
public void setHash(String hash) {
this.hash = hash;
}
public void setExt(String ext) {
this.ext = ext;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
/* public String getImagePath() {
if (null == this.path || null == this.hash || null == this.ext){
return "";
}
return String.format("%s/%s.%s", this.path, this.hash, this.ext);
}*/
/* public String getImagePath(int width, int height) {
if (null == this.path || null == this.hash || null == this.ext){
return "";
}
return String.format("%s/%s_%d_%d.%s", this.path, this.hash, width, height, this.ext);
}*/
public String getImagePath() {
if (null == this.path || null == this.hash || null == this.ext){
return "";
}
return String.format("%s%s.%s", this.path, this.hash, this.ext);
}
public String getImagePath(int width, int height) {
if (null == this.path || null == this.hash || null == this.ext) {
return "";
}
return String.format("%s%s.%s?imageView2/1/w/%d/h/%d", this.path, this.hash,this.ext,width,height);
}
public String getImagePathForJpg(int width, int height) {
if (null == this.path || null == this.hash || null == this.ext) {
return "";
}
if (ext.endsWith("jpg") || ext.endsWith("JPG")) {
return String.format("%s%s.%s?imageView2/1/w/%d/h/%d", this.path, this.hash, this.ext, width, height);
} else {
return String.format("%s%s.%s?imageView2/1/format/jpg/w/%d/h/%d", this.path, this.hash, this.ext, width, height);
}
}
public String getDynamicImagePath(int width, int height) {
if (null == this.path || null == this.hash || null == this.ext) {
return "";
}
return String.format("%s%s.%s?imageView2/1/w/%d/h/%d", this.path, this.hash,this.ext,width,height);
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
@Override
public String toString() {
return "EntityImageBean [id=" + id + ", entityType=" + entityType
+ ", entityId=" + entityId + ", title=" + title + ", path="
+ path + ", hash=" + hash + ", ext=" + ext + ", sort=" + sort
+ ", dataChangeLastTime=" + dataChangeLastTime
+ ", createdTime=" + createdTime + ", url=" + url + ", mark="
+ mark + "]";
}
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.Entityimage;
@Mapper
public interface EntityimageDao {
@Select("SELECT id,ext,hash from bsc_entityimage t where t.id = #{id}")
Entityimage getById(Long id);
@Delete("delete from bsc_entityimage where id = #{id}")
int delete(Long id);
int update(Entityimage entityimage);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into bsc_entityimage(id, EntityID, EntityType, ext, hash, path, Sort, title) values(#{id}, #{EntityID}, #{EntityType}, #{ext}, #{hash}, #{path}, #{Sort}, #{title})")
int save(Entityimage entityimage);
int count(@Param("params") Map<String, Object> params);
List<Entityimage> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.boot.security.server.model.FileInfo;
@Mapper
public interface FileInfoDao {
@Select("select * from arc_file_info t where t.id = #{id}")
FileInfo getById(String id);
@Insert("insert into arc_file_info(id, contentType, size, path, url, type, createTime, updateTime) values(#{id}, #{contentType}, #{size}, #{path}, #{url}, #{type}, now(), now())")
int save(FileInfo fileInfo);
@Update("update arc_file_info t set t.updateTime = now() where t.id = #{id}")
int update(FileInfo fileInfo);
@Delete("delete from arc_file_info where id = #{id}")
int delete(String id);
int count(@Param("params") Map<String, Object> params);
List<FileInfo> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.GolfHabit;
@Mapper
public interface GolfHabitDao extends AbstractDao<GolfHabit>{
@Select("select * from arc_golfhabit t where t.id = #{id}")
GolfHabit getById(Long id);
@Delete("delete from arc_golfhabit where id = #{id}")
int delete(Long id);
int update(GolfHabit golfHabit);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_golfhabit(uid, golfAge, parNumber, golfTime, hasPartner, usualStadium, favoriteCourseType, orderFunction, hasMemberShip, frequency, usualExStadium, rodType, gamblingRule, gamblingMoney, rodBrand, ballBrand, golfTeam, teamPosition) values(#{uid}, #{golfAge}, #{parNumber}, #{golfTime}, #{hasPartner}, #{usualStadium}, #{favoriteCourseType}, #{orderFunction}, #{hasMemberShip}, #{frequency}, #{usualExStadium}, #{rodType}, #{gamblingRule}, #{gamblingMoney}, #{rodBrand}, #{ballBrand}, #{golfTeam}, #{teamPosition})")
int save(GolfHabit golfHabit);
int count(@Param("params") Map<String, Object> params);
List<GolfHabit> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.JobModel;
@Mapper
public interface JobDao {
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_job(jobName, description, cron, springBeanName, methodName, isSysJob, status, createTime, updateTime) values(#{jobName}, #{description}, #{cron}, #{springBeanName}, #{methodName}, #{isSysJob}, 1, now(), now())")
int save(JobModel jobModel);
@Select("select * from arc_job t where t.id = #{id}")
JobModel getById(Long id);
@Select("select * from arc_job t where t.jobName = #{jobName}")
JobModel getByName(String jobName);
int update(JobModel jobModel);
int count(@Param("params") Map<String, Object> params);
List<JobModel> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.Mail;
import com.boot.security.server.model.MailTo;
@Mapper
public interface MailDao {
@Select("select * from arc_mail t where t.id = #{id}")
Mail getById(Long id);
// @Delete("delete from arc_mail where id = #{id}")
// int delete(Long id);
// @Update("update arc_mail t set subject = #{subject}, content = #{content}, updateTime = now() where t.id = #{id}")
// int update(Mail mail);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_mail(userId, subject, content, createTime, updateTime) values(#{userId}, #{subject}, #{content}, now(), now())")
int save(Mail mail);
@Insert("insert into arc_mail_to(mailId, toUser, status) values(#{mailId}, #{toUser}, #{status})")
int saveToUser(@Param("mailId") Long mailId, @Param("toUser") String toUser, @Param("status") int status);
@Select("select t.* from arc_mail_to t where t.mailId = #{mailId}")
List<MailTo> getToUsers(Long mailId);
int count(@Param("params") Map<String, Object> params);
List<Mail> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.boot.security.server.dto.NoticeReadVO;
import com.boot.security.server.model.Notice;
import com.boot.security.server.model.SysUser;
@Mapper
public interface NoticeDao {
@Select("select * from arc_notice t where t.id = #{id}")
Notice getById(Long id);
@Delete("delete from arc_notice where id = #{id}")
int delete(Long id);
@Update("update arc_notice t set title = #{title}, content = #{content}, status = #{status}, updateTime = #{updateTime} where t.id = #{id}")
int update(Notice notice);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_notice(title, content, status, createTime, updateTime) values(#{title}, #{content}, #{status}, #{createTime}, #{updateTime})")
int save(Notice notice);
int count(@Param("params") Map<String, Object> params);
List<Notice> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
@Insert("insert ignore into arc_notice_read(noticeId, userId, createTime) values(#{noticeId}, #{userId}, now())")
int saveReadRecord(@Param("noticeId") Long noticeId, @Param("userId") Long userId);
List<SysUser> listReadUsers(Long noticeId);
@Select("select count(1) from arc_notice t left join arc_notice_read r on r.noticeId = t.id and r.userId = #{userId} where t.status = 1 and r.userId is null")
int countUnread(Long userId);
int countNotice(@Param("params") Map<String, Object> params);
List<NoticeReadVO> listNotice(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.Order;
@Mapper
public interface OrderDao extends AbstractDao<Order>{
@Select("select * from ord_order t where t.id = #{id}")
Order getById(Long id);
@Delete("delete from ord_order where id = #{id}")
int delete(Long id);
int update(Order order);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into ord_order(OrderID, ActualAmount, AdjustAmount, Amount, ConfirmType, ContactAddress, ContactEMail, ContactMobile, ContactName, ContactTel, CtripCardNo, Currency, DiscountAmount, ExchangeRate, ExternalNo, FinishDate, FirstRiskStatus, LimitedEMoneyAmount, OnPayAmount, OrderDate, OrderName, OrderNo, OrderStatus, OrderType, OrderUserStatus, PayMode, PrePayAmount, PrePayCardAmount, ProcessStatus, ProvConfirmTime, Remark, RiskCheckStatus, SecondRiskStatus, TempOrderNo, Tmoney, TotalAmount, Uid, UnlimitedEMoneyAmount, DataChange_LastTime, OrderSource, PreAuthAmount, DeductByPreAuthAmount, PayDate, OrderCategory, GuaranteeAmount, DeductByGuaranteeAmount, PrePayCardRefundAmount, RefundAmount, ApplyTime, LaunchRefundTime, RefundTime, LaunchDeductByGuaranteeTime, DeductByGuaranteeTime, LaunchDeductByPreAuthTime, DeductByPreAuthTime, ApplyFailReason, RefundFailReason, DeductByGuaranteeFailReason, DeductByPreAuthFailReason, ReleasePreAuthFailReason, LaunchReleasePreAuthTime, ReleasePreAuthTime, LaunchRefundAmount, IsThird, VoucherAmount, VoucherRefundAmount, VoucherIDList, PrePayCardDeductFlag, VoucherCount, PaymentRequestID, CancelStatus, notifyFlag, CashRebate, CashRebateStatus, CampaignID, SponsorUnitAmount, actualSettleAmout, settleObj, settleDate, finComment, channel1, channel2, orderIntegralStatus, shareIntegralStatus, hasInvoice, GiftCardAmount, paymentVersion, platform, outTradeId, relationOrderNo, enable, useMemberPrice, memberUnitAmount, invoiceAmount, postageAmount, insuranceAmount, insuranceStatus, offlinePayType, deleteFlag, sendNotifyMsg, onlineOrderFlag, userType, tourCategory, orderWorkPointStatus, vipmemberDiscount, vipmemberDiscountRate) values(#{OrderID}, #{ActualAmount}, #{AdjustAmount}, #{Amount}, #{ConfirmType}, #{ContactAddress}, #{ContactEMail}, #{ContactMobile}, #{ContactName}, #{ContactTel}, #{CtripCardNo}, #{Currency}, #{DiscountAmount}, #{ExchangeRate}, #{ExternalNo}, #{FinishDate}, #{FirstRiskStatus}, #{LimitedEMoneyAmount}, #{OnPayAmount}, #{OrderDate}, #{OrderName}, #{OrderNo}, #{OrderStatus}, #{OrderType}, #{OrderUserStatus}, #{PayMode}, #{PrePayAmount}, #{PrePayCardAmount}, #{ProcessStatus}, #{ProvConfirmTime}, #{Remark}, #{RiskCheckStatus}, #{SecondRiskStatus}, #{TempOrderNo}, #{Tmoney}, #{TotalAmount}, #{Uid}, #{UnlimitedEMoneyAmount}, #{DataChangeLastTime}, #{OrderSource}, #{PreAuthAmount}, #{DeductByPreAuthAmount}, #{PayDate}, #{OrderCategory}, #{GuaranteeAmount}, #{DeductByGuaranteeAmount}, #{PrePayCardRefundAmount}, #{RefundAmount}, #{ApplyTime}, #{LaunchRefundTime}, #{RefundTime}, #{LaunchDeductByGuaranteeTime}, #{DeductByGuaranteeTime}, #{LaunchDeductByPreAuthTime}, #{DeductByPreAuthTime}, #{ApplyFailReason}, #{RefundFailReason}, #{DeductByGuaranteeFailReason}, #{DeductByPreAuthFailReason}, #{ReleasePreAuthFailReason}, #{LaunchReleasePreAuthTime}, #{ReleasePreAuthTime}, #{LaunchRefundAmount}, #{IsThird}, #{VoucherAmount}, #{VoucherRefundAmount}, #{VoucherIDList}, #{PrePayCardDeductFlag}, #{VoucherCount}, #{PaymentRequestID}, #{CancelStatus}, #{notifyFlag}, #{CashRebate}, #{CashRebateStatus}, #{CampaignID}, #{SponsorUnitAmount}, #{actualSettleAmout}, #{settleObj}, #{settleDate}, #{finComment}, #{channel1}, #{channel2}, #{orderIntegralStatus}, #{shareIntegralStatus}, #{hasInvoice}, #{GiftCardAmount}, #{paymentVersion}, #{platform}, #{outTradeId}, #{relationOrderNo}, #{enable}, #{useMemberPrice}, #{memberUnitAmount}, #{invoiceAmount}, #{postageAmount}, #{insuranceAmount}, #{insuranceStatus}, #{offlinePayType}, #{deleteFlag}, #{sendNotifyMsg}, #{onlineOrderFlag}, #{userType}, #{tourCategory}, #{orderWorkPointStatus}, #{vipmemberDiscount}, #{vipmemberDiscountRate})")
int save(Order order);
int count(@Param("params") Map<String, Object> params);
List<Order> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Set;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.boot.security.server.model.Permission;
@Mapper
public interface PermissionDao {
@Select("select * from arc_permission t order by t.sort")
List<Permission> listAll();
@Select("select * from arc_permission t where t.type = 1 order by t.sort")
List<Permission> listParents();
@Select("select distinct p.* from arc_permission p inner join arc_role_permission rp on p.id = rp.permissionId inner join arc_role_user ru on ru.roleId = rp.roleId where ru.userId = #{userId} order by p.sort")
List<Permission> listByUserId(Long userId);
@Select("select p.* from arc_permission p inner join arc_role_permission rp on p.id = rp.permissionId where rp.roleId = #{roleId} order by p.sort")
List<Permission> listByRoleId(Long roleId);
@Select("select * from arc_permission t where t.id = #{id}")
Permission getById(Long id);
@Insert("insert into arc_permission(parentId, name, css, href, type, permission, sort) values(#{parentId}, #{name}, #{css}, #{href}, #{type}, #{permission}, #{sort})")
int save(Permission permission);
@Update("update arc_permission t set parentId = #{parentId}, name = #{name}, css = #{css}, href = #{href}, type = #{type}, permission = #{permission}, sort = #{sort} where t.id = #{id}")
int update(Permission permission);
@Delete("delete from arc_permission where id = #{id}")
int delete(Long id);
@Delete("delete from arc_permission where parentId = #{id}")
int deleteByParentId(Long id);
@Delete("delete from arc_role_permission where permissionId = #{permissionId}")
int deleteRolePermission(Long permissionId);
@Select("select ru.userId from arc_role_permission rp inner join arc_role_user ru on ru.roleId = rp.roleId where rp.permissionId = #{permissionId}")
Set<Long> listUserIds(Long permissionId);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.Product;
@Mapper
public interface ProductDao {
@Select("select * from t_product t where t.id = #{id}")
Product getById(Long id);
@Delete("delete from t_product where id = #{id}")
int delete(Long id);
int update(Product product);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into t_product(productId, productName, image) values(#{productId}, #{productName}, #{image})")
int save(Product product);
int count(@Param("params") Map<String, Object> params);
List<Product> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import com.boot.security.server.model.BscUserext;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.PurchaseHabit;
@Mapper
public interface PurchaseHabitDao extends AbstractDao<PurchaseHabit>{
@Select("select * from arc_purchasehabit t where t.id = #{id}")
PurchaseHabit getById(Long id);
@Delete("delete from arc_purchasehabit where id = #{id}")
int delete(Long id);
int update(PurchaseHabit purchaseHabit);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_purchasehabit(uid, businessTour, businessDestination, airCompany, airSpace, airOrderPlatform, carBrand, drinkingHabits, smokeHabits) values(#{uid}, #{businessTour}, #{businessDestination}, #{airCompany}, #{airSpace}, #{airOrderPlatform}, #{carBrand}, #{drinkingHabits}, #{smokeHabits})")
int save(PurchaseHabit purchaseHabit);
int count(@Param("params") Map<String, Object> params);
List<PurchaseHabit> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.boot.security.server.model.Role;
@Mapper
public interface RoleDao {
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_role(name, description, createTime, updateTime) values(#{name}, #{description}, now(),now())")
int save(Role role);
int count(@Param("params") Map<String, Object> params);
List<Role> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
@Select("select * from arc_role t where t.id = #{id}")
Role getById(Long id);
@Select("select * from arc_role t where t.name = #{name}")
Role getRole(String name);
@Update("update arc_role t set t.name = #{name}, t.description = #{description}, updateTime = now() where t.id = #{id}")
int update(Role role);
@Select("select * from arc_role r inner join arc_role_user ru on r.id = ru.roleId where ru.userId = #{userId}")
List<Role> listByUserId(Long userId);
@Delete("delete from arc_role_permission where roleId = #{roleId}")
int deleteRolePermission(Long roleId);
int saveRolePermission(@Param("roleId") Long roleId, @Param("permissionIds") List<Long> permissionIds);
@Delete("delete from arc_role where id = #{id}")
int delete(Long id);
@Delete("delete from arc_role_user where roleId = #{roleId}")
int deleteRoleUser(Long roleId);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.boot.security.server.model.SysLogs;
@Mapper
public interface SysLogsDao {
@Insert("insert into arc_logs(userId, module, flag, remark, createTime) values(#{user.id}, #{module}, #{flag}, #{remark}, now())")
int save(SysLogs sysLogs);
int count(@Param("params") Map<String, Object> params);
List<SysLogs> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
@Delete("delete from arc_logs where createTime <= #{time}")
int deleteLogs(String time);
}
package com.boot.security.server.dao;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.boot.security.server.model.TokenModel;
@Mapper
public interface TokenDao {
@Insert("insert into arc_token(id, val, expireTime, createdTime, dataChangeLastTime) values (#{id}, #{val}, #{expireTime}, #{createdTime}, #{dataChangeLastTime})")
int save(TokenModel model);
@Select("select * from arc_token t where t.id = #{id}")
TokenModel getById(String id);
@Update("update arc_token t set t.val = #{val}, t.expireTime = #{expireTime}, t.dataChangeLastTime = #{dataChangeLastTime} where t.id = #{id}")
int update(TokenModel model);
@Delete("delete from arc_token where id = #{id}")
int delete(String id);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import com.boot.security.server.model.PurchaseHabit;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.TravelHabit;
@Mapper
public interface TravelHabitDao extends AbstractDao<TravelHabit>{
@Select("select * from arc_travelhabit t where t.id = #{id}")
TravelHabit getById(Long id);
@Delete("delete from arc_travelhabit where id = #{id}")
int delete(Long id);
int update(TravelHabit travelHabit);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_travelhabit(uid, tourFrequency, tourDestination, tourSeason, travelTime, hotelLevel, hotelBrand, carUse) values(#{uid}, #{tourFrequency}, #{tourDestination}, #{tourSeason}, #{travelTime}, #{hotelLevel}, #{hotelBrand}, #{carUse})")
int save(TravelHabit travelHabit);
int count(@Param("params") Map<String, Object> params);
List<TravelHabit> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.boot.security.server.model.SysUser;
@Mapper
public interface UserDao {
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_user(username, password, nickname, headImgUrl, phone, telephone, email, birthday, sex, status, createTime, updateTime) values(#{username}, #{password}, #{nickname}, #{headImgUrl}, #{phone}, #{telephone}, #{email}, #{birthday}, #{sex}, #{status}, now(), now())")
int save(SysUser user);
@Select("select * from arc_user t where t.id = #{id}")
SysUser getById(Long id);
@Select("select * from arc_user t where t.username = #{username}")
SysUser getUser(String username);
@Update("update arc_user t set t.password = #{password} where t.id = #{id}")
int changePassword(@Param("id") Long id, @Param("password") String password);
Integer count(@Param("params") Map<String, Object> params);
List<SysUser> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
@Delete("delete from arc_role_user where userId = #{userId}")
int deleteUserRole(Long userId);
int saveUserRoles(@Param("userId") Long userId, @Param("roleIds") List<Long> roleIds);
int update(SysUser user);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import com.boot.security.server.model.TravelHabit;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.UserInfo;
@Mapper
public interface UserInfoDao extends AbstractDao<UserInfo>{
@Select("select * from arc_userinfo t where t.id = #{id}")
UserInfo getById(Long id);
@Delete("delete from arc_userinfo where id = #{id}")
int delete(Long id);
int update(UserInfo userInfo);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into arc_userinfo(uid, birthDate, idCard, maritalStatus, birthplace, job, hobbies, concatAddress, concatPhone) values(#{uid}, #{birthDate}, #{idCard}, #{maritalStatus}, #{birthplace}, #{job}, #{hobbies}, #{concatAddress}, #{concatPhone})")
int save(UserInfo userInfo);
int count(@Param("params") Map<String, Object> params);
List<UserInfo> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dao;
import java.util.List;
import java.util.Map;
import com.boot.security.server.dto.UsrCommuneExtBean;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.boot.security.server.model.UsrCommuneExt;
@Mapper
public interface UsrCommuneExtDao extends AbstractDao<UsrCommuneExt> {
@Select("select * from usr_commune_ext t where t.id = #{id}")
UsrCommuneExt getById(Long id);
@Select("select * from usr_commune_ext t where t.uid = #{uid}")
UsrCommuneExt getByUid(String uid);
@Delete("delete from usr_commune_ext where id = #{id}")
int delete(Long id);
int update(UsrCommuneExt usrCommuneExt);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into usr_commune_ext(ID, UID, CommuneNo, MobilePhone, UserName, Gender, Birthday, CommuneTime, Score, Drawer, Recommender, PayType, CheckedRegion, CustomerRegion, Photo, PhotoState, Gift, Amount, CreatedTime, DataChange_LastTime, Remark, Operater, Renewer) values(#{ID}, #{UID}, #{CommuneNo}, #{MobilePhone}, #{UserName}, #{Gender}, #{Birthday}, #{CommuneTime}, #{Score}, #{Drawer}, #{Recommender}, #{PayType}, #{CheckedRegion}, #{CustomerRegion}, #{Photo}, #{PhotoState}, #{Gift}, #{Amount}, #{CreatedTime}, #{DataChangeLastTime}, #{Remark}, #{Operater}, #{Renewer})")
int save(UsrCommuneExt usrCommuneExt);
int count(@Param("params") Map<String, Object> params);
List<UsrCommuneExt> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
UsrCommuneExtBean getBeanById(@Param("id") Long id);
int countBean(@Param("params") Map<String, Object> params);
List<UsrCommuneExtBean> listBean(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}
package com.boot.security.server.dto;
import java.io.Serializable;
public class BeanField implements Serializable {
private static final long serialVersionUID = 4279960350136806659L;
private String columnName;
private String columnType;
private String columnComment;
private String columnDefault;
private String name;
private String type;
public String getColumnName() {
return columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
public String getColumnType() {
return columnType;
}
public void setColumnType(String columnType) {
this.columnType = columnType;
}
public String getColumnComment() {
return columnComment;
}
public void setColumnComment(String columnComment) {
this.columnComment = columnComment;
}
public String getColumnDefault() {
return columnDefault;
}
public void setColumnDefault(String columnDefault) {
this.columnDefault = columnDefault;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
package com.boot.security.server.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* Created by pat on 14-5-21.
*
* @author: l_cheng@ctrip.com
* @date: 2014-05-21
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class EntityImageBean implements Serializable {
/**
* serialVersionUID
*/
private static final long serialVersionUID = -8885326833649081795L;
/**
* id
*/
private Long id;
/**
* 实体类型
*/
private String entityType;
/**
* 实体id
*/
private Integer entityId;
/**
* 标题
*/
private String title;
private String path;
private String hash;
private String ext;
/**
* 排序
*/
private Integer sort;
/**
* 修改时间
*/
private Date dataChangeLastTime;
/**
* 创建时间
*/
private Date createdTime;
private String url;
/**
* 扩展标记
*/
private String mark;
public EntityImageBean(Long id, String entityType, Integer entityId, Integer imageId, String title, String path, String hash, String ext, Integer sort) {
this.id = id;
this.entityType = entityType;
this.entityId = entityId;
this.title = title;
this.path = path;
this.hash = hash;
this.ext = ext;
this.sort = sort;
}
public EntityImageBean() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEntityType() {
return entityType;
}
public void setEntityType(String entityType) {
this.entityType = entityType;
}
public Integer getEntityId() {
return entityId;
}
public void setEntityId(Integer entityId) {
this.entityId = entityId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getDataChangeLastTime() {
return dataChangeLastTime;
}
public void setDataChangeLastTime(Date dataChangeLastTime) {
this.dataChangeLastTime = dataChangeLastTime;
}
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public String getPath() {
return path;
}
public String getHash() {
return hash;
}
public String getExt() {
return ext;
}
public void setPath(String path) {
this.path = path;
}
public void setHash(String hash) {
this.hash = hash;
}
public void setExt(String ext) {
this.ext = ext;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
/* public String getImagePath() {
if (null == this.path || null == this.hash || null == this.ext){
return "";
}
return String.format("%s/%s.%s", this.path, this.hash, this.ext);
}*/
/* public String getImagePath(int width, int height) {
if (null == this.path || null == this.hash || null == this.ext){
return "";
}
return String.format("%s/%s_%d_%d.%s", this.path, this.hash, width, height, this.ext);
}*/
public String getImagePath() {
if (null == this.path || null == this.hash || null == this.ext){
return "";
}
return String.format("%s%s.%s", this.path, this.hash, this.ext);
}
public String getImagePath(int width, int height) {
if (null == this.path || null == this.hash || null == this.ext) {
return "";
}
return String.format("%s%s.%s?imageView2/1/w/%d/h/%d", this.path, this.hash,this.ext,width,height);
}
public String getImagePathForJpg(int width, int height) {
if (null == this.path || null == this.hash || null == this.ext) {
return "";
}
if (ext.endsWith("jpg") || ext.endsWith("JPG")) {
return String.format("%s%s.%s?imageView2/1/w/%d/h/%d", this.path, this.hash, this.ext, width, height);
} else {
return String.format("%s%s.%s?imageView2/1/format/jpg/w/%d/h/%d", this.path, this.hash, this.ext, width, height);
}
}
public String getDynamicImagePath(int width, int height) {
if (null == this.path || null == this.hash || null == this.ext) {
return "";
}
return String.format("%s%s.%s?imageView2/1/w/%d/h/%d", this.path, this.hash,this.ext,width,height);
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
@Override
public String toString() {
return "EntityImageBean [id=" + id + ", entityType=" + entityType
+ ", entityId=" + entityId + ", title=" + title + ", path="
+ path + ", hash=" + hash + ", ext=" + ext + ", sort=" + sort
+ ", dataChangeLastTime=" + dataChangeLastTime
+ ", createdTime=" + createdTime + ", url=" + url + ", mark="
+ mark + "]";
}
}
package com.boot.security.server.dto;
import java.io.Serializable;
import java.util.List;
public class GenerateDetail implements Serializable {
private static final long serialVersionUID = -164567294469931676L;
private String beanName;
private List<BeanField> fields;
public String getBeanName() {
return beanName;
}
public void setBeanName(String beanName) {
this.beanName = beanName;
}
public List<BeanField> getFields() {
return fields;
}
public void setFields(List<BeanField> fields) {
this.fields = fields;
}
}
package com.boot.security.server.dto;
import java.io.Serializable;
import java.util.List;
public class GenerateInput implements Serializable {
private static final long serialVersionUID = -2870071259702969061L;
/**
* 保存路径
*/
private String path;
private String tableName;
/**
* bean包名
*/
private String beanPackageName;
/**
* java类名
*/
private String beanName;
/**
* dao包名
*/
private String daoPackageName;
/**
* dao类名
*/
private String daoName;
/**
* controller包名
*/
private String controllerPkgName;
/**
* controller类名
*/
private String controllerName;
/**
* 字段名
*/
private List<String> columnNames;
/**
* 属性名
*/
private List<String> beanFieldName;
/**
* 成员变量类型
*/
private List<String> beanFieldType;
/**
* 默认值
*/
private List<String> beanFieldValue;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getBeanPackageName() {
return beanPackageName;
}
public void setBeanPackageName(String beanPackageName) {
this.beanPackageName = beanPackageName;
}
public String getBeanName() {
return beanName;
}
public void setBeanName(String beanName) {
this.beanName = beanName;
}
public String getDaoPackageName() {
return daoPackageName;
}
public void setDaoPackageName(String daoPackageName) {
this.daoPackageName = daoPackageName;
}
public String getDaoName() {
return daoName;
}
public void setDaoName(String daoName) {
this.daoName = daoName;
}
public String getControllerPkgName() {
return controllerPkgName;
}
public void setControllerPkgName(String controllerPkgName) {
this.controllerPkgName = controllerPkgName;
}
public String getControllerName() {
return controllerName;
}
public void setControllerName(String controllerName) {
this.controllerName = controllerName;
}
public List<String> getColumnNames() {
return columnNames;
}
public void setColumnNames(List<String> columnNames) {
this.columnNames = columnNames;
}
public List<String> getBeanFieldName() {
return beanFieldName;
}
public void setBeanFieldName(List<String> beanFieldName) {
this.beanFieldName = beanFieldName;
}
public List<String> getBeanFieldType() {
return beanFieldType;
}
public void setBeanFieldType(List<String> beanFieldType) {
this.beanFieldType = beanFieldType;
}
public List<String> getBeanFieldValue() {
return beanFieldValue;
}
public void setBeanFieldValue(List<String> beanFieldValue) {
this.beanFieldValue = beanFieldValue;
}
}
package com.boot.security.server.dto;
import java.io.Serializable;
public class LayuiFile implements Serializable {
private static final long serialVersionUID = 35435494737590569L;
private Integer code;
private String msg;
private LayuiFileData 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 LayuiFileData getData() {
return data;
}
public void setData(LayuiFileData data) {
this.data = data;
}
public static class LayuiFileData implements Serializable {
private static final long serialVersionUID = 7907356434695924597L;
private String src;
private String title;
public String getSrc() {
return src;
}
public void setSrc(String src) {
this.src = src;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
}
package com.boot.security.server.dto;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import com.boot.security.server.model.AdmUsers;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.util.StringUtils;
import com.boot.security.server.model.Permission;
import com.fasterxml.jackson.annotation.JsonIgnore;
public class LoginUser extends AdmUsers implements UserDetails {
private static final long serialVersionUID = -1379274258881257107L;
private List<Permission> permissions;
private String token;
/** 登陆时间戳(毫秒) */
private Long loginTime;
/** 过期时间戳 */
private Long expireTime;
public List<Permission> getPermissions() {
return permissions;
}
public void setPermissions(List<Permission> permissions) {
this.permissions = permissions;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
@Override
@JsonIgnore
public Collection<? extends GrantedAuthority> getAuthorities() {
return permissions.parallelStream().filter(p -> !StringUtils.isEmpty(p.getPermission()))
.map(p -> new SimpleGrantedAuthority(p.getPermission())).collect(Collectors.toSet());
}
public void setAuthorities(Collection<? extends GrantedAuthority> authorities) {
// do nothing
}
// 账户是否未过期
@JsonIgnore
@Override
public boolean isAccountNonExpired() {
return true;
}
// 账户是否未锁定
@JsonIgnore
@Override
public boolean isAccountNonLocked() {
return true;
}
// 密码是否未过期
@JsonIgnore
@Override
public boolean isCredentialsNonExpired() {
return true;
}
// 账户是否激活
@JsonIgnore
@Override
public boolean isEnabled() {
return true;
}
public Long getLoginTime() {
return loginTime;
}
public void setLoginTime(Long loginTime) {
this.loginTime = loginTime;
}
public Long getExpireTime() {
return expireTime;
}
public void setExpireTime(Long expireTime) {
this.expireTime = expireTime;
}
}
package com.boot.security.server.dto;
import java.util.Date;
import com.boot.security.server.model.Notice;
public class NoticeReadVO extends Notice {
private static final long serialVersionUID = -3842182350180882396L;
private Long userId;
private Date readTime;
private Boolean isRead;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Date getReadTime() {
return readTime;
}
public void setReadTime(Date readTime) {
this.readTime = readTime;
}
public Boolean getIsRead() {
return isRead;
}
public void setIsRead(Boolean isRead) {
this.isRead = isRead;
}
}
package com.boot.security.server.dto;
import java.io.Serializable;
import java.util.List;
import com.boot.security.server.model.Notice;
import com.boot.security.server.model.SysUser;
public class NoticeVO implements Serializable {
private static final long serialVersionUID = 7363353918096951799L;
private Notice notice;
private List<SysUser> users;
public Notice getNotice() {
return notice;
}
public void setNotice(Notice notice) {
this.notice = notice;
}
public List<SysUser> getUsers() {
return users;
}
public void setUsers(List<SysUser> users) {
this.users = users;
}
}
package com.boot.security.server.dto;
import com.boot.security.server.model.Order;
public class OrderListBean extends Order {
private String orderStatusDesc;
public String getOrderStatusDesc() {
return orderStatusDesc;
}
public void setOrderStatusDesc(String orderStatusDesc) {
this.orderStatusDesc = orderStatusDesc;
}
}
package com.boot.security.server.dto;
/**
* @author zgsong
* @version 1.0.0
*/
public enum OrderStatusBitEnum {
// 0--未操作
// 2^0=1 --确认产品
// 2^1=2--确认客户
// 2^2=4--扣款中
// 2^3=8--付款失败
// 2^4=16--已付款
// 2^5=32--取消中
// 2^6=64--已取消
// 2^7=128--退订中
// 2^8=256--退款中
// 2^9=512--退款失败
// 2^10=1024--已退款
// 2^11=2048--已退订
// 2^12=4096--成交部分退订
// 2^13=8192--成交全部退订
// 2^14=16384--担保转扣款中
// 2^15=32768--担保转扣款失败
// 2^16=65536--已担保转扣款
// 2^17=131072--预授权转扣款中
// 2^18=262144--预授权转扣款失败
// 2^19=524288--已预授权转扣款
// 2^20=1048576--解除预授权中
// 2^21=2097152--解除预授权失败
// 2^22=4194304 --已解除预授权
// 2^23=8388608 --确认打款
// 2^24=16777216 --发送发票
// 2^25=33554432 --待预授权处理
// 2^26=268435456 --成交
/**
* 未操作0
*/
UNOPERATION(0, "UNOPERATION", "未操作"),
/**
* 确认产品1
*/
CONFIRM_PRODUCT(1, "CONFIRM_PRODUCT", "确认产品"),
/**
* 确认客户2
*/
CONFIRM_CUSTOMER(2, "CONFIRM_CUSTOMER", "确认客户"),
/**
* 扣款中4
*/
DEDUCTING(4, "DEDUCTING", "扣款中"),
/**
* 扣款失败8
*/
DEDUCT_FAILED(8, "DEDUCT_FAILED", "扣款失败"),
/**
* 已扣款16
*/
DEDUCTED(16, "DEDUCTED", "已扣款"),
/**
* 取消中32
*/
CANCELING(32, "CANCELING", "取消中"),
/**
* 已取消64
*/
CANCELED(64, "CANCELED", "已取消"),
/**
* 退订中128
*/
UNSUBSCRIBING(128, "UNSUBSCRIBING", "退订中"),
/**
* 退款中256
*/
REFUNDING(256, "REFUNDING", "退款中"),
/**
* 退款失败512
*/
REFUND_FAILED(512, "REFUND_FAILED", "退款失败"),
/**
* 已退款1024
*/
REFUNDED(1024, "REFUNDED", "已退款"),
/**
* 已退订2048
*/
UNSUBSCRIBED(2048, "UNSUBSCRIBED", "已退订"),
/**
* 成交部分退订4096
*/
PART_UNSUBSCRIBED(4096, "PART_UNSUBSCRIBED", "成交部分退订"),
/**
* 成交全部退订8192
*/
ALL_UNSUBSCRIBED(8192, "ALL_UNSUBSCRIBED", "成交全部退订"),
/**
* 担保转扣款中16384
*/
GUARANTEE_TO_DEDUCTING(16384, "GUARANTEE_TO_DEDUCTING", "担保转扣款中"),
/**
* 担保转扣款失败 32768
*/
GUARANTEE_TO_DEDUCTION_FAILED(32768, "GUARANTEE_TO_DEDUCTION_FAILED", "担保转扣款失败"),
/**
* 已担保转扣款 65536
*/
GUARANTEE_TO_DEDUCTED(65536, "GUARANTEE_TO_DEDUCTED", "已担保转扣款"),
/**
* 预授权转扣款中131072
*/
PRE_AUTHORIZATION_DEDUCTING(131072, "PRE_AUTHORIZATION_DEDUCTING", "预授权转扣款中"),
/**
* 预授权转扣款失败262144
*/
PRE_AUTHORIZATION_DEDUCTION_FAILED(262144, "PRE_AUTHORIZATION_DEDUCTION_FAILED", "预授权转扣款失败"),
/**
* 已预授权转扣款524288
*/
PRE_AUTHORIZATION_DEDUCTED(524288, "PRE_AUTHORIZATION_DEDUCTED", "已预授权转扣款"),
/**
* 解除预授权中1048576
*/
UNFREEZE_PRE_AUTHORIZATING(1048576, "UNFREEZE_PRE_AUTHORIZATION", "解除预授权中"),
/**
* 解除预授权失败2097152
*/
UNFREEZE_PRE_AUTHORIZATE_FAILED(2097152, "UNFREEZE_PRE_AUTHORIZATE_FAILED", "解除预授权失败"),
/**
* 已解除预授权4194304
*/
UNFREEZE_PRE_AUTHORIZATED(4194304, "UNFREEZE_PRE_AUTHORIZATE_FAILED", "已解除预授权"),
/**
* 确认打款8388608
*/
CONFIRM_PAIED(8388608, "CONFIRM_PAIED", "确认打款"),
/**
* 确认发票16777216
*/
CONFIRM_INVOICE(16777216, "CONFIRM_INVOICE", "确认发票"),
/**
* 待预授权处理33554432
*/
WAIT_PREAUTH_HANDING(33554432, "WAIT_PREAUTH_HANDING", "待预授权处理"),
/**
* 成交268435456
*/
BARGAINED(268435456, "BARGAINED", "成交");
private int value;
private String name;
private String cname;
private OrderStatusBitEnum(int value, String name, String cname) {
this.value = value;
this.name = name;
this.cname = cname;
}
public static int getSumStatusValue() {
int value = 0;
for (OrderStatusBitEnum orderStatusBitEnum : OrderStatusBitEnum.values()) {
value = value + orderStatusBitEnum.getValue();
}
return value;
}
public int getValue() {
return value;
}
public String getName() {
return name;
}
public String getCname() {
return cname;
}
public void setValue(int value) {
this.value = value;
}
public void setName(String name) {
this.name = name;
}
public void setCname(String cname) {
this.cname = cname;
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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 sign in to comment