Merge branch 'master' of http://git.picaiba.com/why/ym
Conflicts: ym-gateway/pom.xml
This commit is contained in:
commit
3b7b592a16
@ -1,9 +1,25 @@
|
|||||||
package com.cnbm.admin.config;
|
package com.cnbm.admin.config;
|
||||||
|
|
||||||
|
import com.cnbm.common.utils.DateUtils;
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.ResourceHttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
|
||||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author weihongyang
|
* @Author weihongyang
|
||||||
* @Date 2022/6/8 10:47 AM
|
* @Date 2022/6/8 10:47 AM
|
||||||
@ -27,4 +43,35 @@ public class CorsConfig implements WebMvcConfigurer {
|
|||||||
// 跨域允许时间
|
// 跨域允许时间
|
||||||
.maxAge(3600);
|
.maxAge(3600);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||||
|
converters.add(new ByteArrayHttpMessageConverter());
|
||||||
|
converters.add(new StringHttpMessageConverter());
|
||||||
|
converters.add(new ResourceHttpMessageConverter());
|
||||||
|
converters.add(new AllEncompassingFormHttpMessageConverter());
|
||||||
|
converters.add(new StringHttpMessageConverter());
|
||||||
|
converters.add(jackson2HttpMessageConverter());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
|
||||||
|
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
|
||||||
|
//日期格式转换
|
||||||
|
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||||
|
mapper.setDateFormat(new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN));
|
||||||
|
mapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
|
||||||
|
|
||||||
|
//Long类型转String类型
|
||||||
|
SimpleModule simpleModule = new SimpleModule();
|
||||||
|
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
|
||||||
|
simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
|
||||||
|
mapper.registerModule(simpleModule);
|
||||||
|
|
||||||
|
converter.setObjectMapper(mapper);
|
||||||
|
return converter;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
package com.cnbm.admin.config;
|
package com.cnbm.admin.config;
|
||||||
|
|
||||||
import com.cnbm.admin.filter.JwtAuthenticationTokenFilter;
|
import com.cnbm.admin.filter.JwtAuthenticationTokenFilter;
|
||||||
|
import com.cnbm.admin.service.impl.UserDetailsServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
|
import org.springframework.security.authentication.AuthenticationProvider;
|
||||||
|
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
|
||||||
|
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||||
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
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.builders.HttpSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||||
@ -38,6 +42,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AccessDeniedHandler accessDeniedHandler;
|
private AccessDeniedHandler accessDeniedHandler;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserDetailsServiceImpl userDetailsService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure(HttpSecurity http) throws Exception {
|
protected void configure(HttpSecurity http) throws Exception {
|
||||||
http
|
http
|
||||||
@ -48,7 +56,11 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
.and()
|
.and()
|
||||||
.authorizeRequests()
|
.authorizeRequests()
|
||||||
// 对于登录接口 允许匿名访问
|
// 对于登录接口 允许匿名访问
|
||||||
.antMatchers("/login").anonymous()
|
.antMatchers("/login","/swagger/**","/v2/**",
|
||||||
|
"/doc.html",
|
||||||
|
"/swagger-resources/**",
|
||||||
|
"/swagger-ui/**",
|
||||||
|
"/webjars/**").anonymous()
|
||||||
// .antMatchers("/testCors").hasAuthority("system:dept:list222")
|
// .antMatchers("/testCors").hasAuthority("system:dept:list222")
|
||||||
// 除上面外的所有请求全部需要鉴权认证
|
// 除上面外的所有请求全部需要鉴权认证
|
||||||
.anyRequest().authenticated();
|
.anyRequest().authenticated();
|
||||||
@ -71,4 +83,22 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
public AuthenticationManager authenticationManagerBean() throws Exception {
|
public AuthenticationManager authenticationManagerBean() throws Exception {
|
||||||
return super.authenticationManagerBean();
|
return super.authenticationManagerBean();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public AuthenticationProvider daoAuthenticationProvider() {
|
||||||
|
DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider();
|
||||||
|
daoAuthenticationProvider.setUserDetailsService(userDetailsService);
|
||||||
|
daoAuthenticationProvider.setPasswordEncoder(passwordEncoder());
|
||||||
|
daoAuthenticationProvider.setHideUserNotFoundExceptions(false);
|
||||||
|
return daoAuthenticationProvider;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
|
||||||
|
// 加入自定义认证, 无需配置userDetailsService,否则会执行默认的provider
|
||||||
|
// auth.authenticationProvider(myAuthenticationProvider());
|
||||||
|
/* auth.userDetailsService(userService)
|
||||||
|
.passwordEncoder(passwordEncoder());*/
|
||||||
|
auth.authenticationProvider(daoAuthenticationProvider());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,12 +36,12 @@ public class SysDictDataController {
|
|||||||
@GetMapping("page")
|
@GetMapping("page")
|
||||||
@ApiOperation("字典数据")
|
@ApiOperation("字典数据")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = "dictLabel", value = "字典标签", paramType = "query", dataType="String"),
|
@ApiImplicitParam(name = "dictLabel", value = "字典标签", paramType = "query", dataTypeClass=String.class),
|
||||||
@ApiImplicitParam(name = "dictValue", value = "字典值", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = "dictValue", value = "字典值", paramType = "query", dataTypeClass=String.class)
|
||||||
})
|
})
|
||||||
@PreAuthorize("@ex.hasAuthority('sys:dept:page')")
|
@PreAuthorize("@ex.hasAuthority('sys:dept:page')")
|
||||||
public Result<PageData<SysDictDataDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
public Result<PageData<SysDictDataDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||||
|
@ -38,12 +38,12 @@ public class SysDictTypeController {
|
|||||||
@GetMapping("page")
|
@GetMapping("page")
|
||||||
@ApiOperation("字典类型")
|
@ApiOperation("字典类型")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = "dictType", value = "字典类型", paramType = "query", dataType="String"),
|
@ApiImplicitParam(name = "dictType", value = "字典类型", paramType = "query", dataTypeClass=String.class),
|
||||||
@ApiImplicitParam(name = "dictName", value = "字典名称", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = "dictName", value = "字典名称", paramType = "query", dataTypeClass=String.class)
|
||||||
})
|
})
|
||||||
@PreAuthorize("@ex.hasAuthority('sys:dict:page')")
|
@PreAuthorize("@ex.hasAuthority('sys:dict:page')")
|
||||||
public Result<PageData<SysDictTypeDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
public Result<PageData<SysDictTypeDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||||
|
@ -38,10 +38,10 @@ public class SysLogErrorController {
|
|||||||
@GetMapping("page")
|
@GetMapping("page")
|
||||||
@ApiOperation("分页")
|
@ApiOperation("分页")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class)
|
||||||
})
|
})
|
||||||
public Result<PageData<SysLogErrorDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
public Result<PageData<SysLogErrorDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||||
PageData<SysLogErrorDTO> page = sysLogErrorService.page(params);
|
PageData<SysLogErrorDTO> page = sysLogErrorService.page(params);
|
||||||
|
@ -38,11 +38,11 @@ public class SysLogOperationController {
|
|||||||
@GetMapping("page")
|
@GetMapping("page")
|
||||||
@ApiOperation("分页")
|
@ApiOperation("分页")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = "status", value = "状态 0:失败 1:成功", paramType = "query", dataType="int")
|
@ApiImplicitParam(name = "status", value = "状态 0:失败 1:成功", paramType = "query", dataTypeClass=String.class)
|
||||||
})
|
})
|
||||||
public Result<PageData<SysLogOperationDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
public Result<PageData<SysLogOperationDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||||
PageData<SysLogOperationDTO> page = sysLogOperationService.page(params);
|
PageData<SysLogOperationDTO> page = sysLogOperationService.page(params);
|
||||||
|
@ -60,7 +60,7 @@ public class SysMenuController {
|
|||||||
|
|
||||||
@GetMapping("list")
|
@GetMapping("list")
|
||||||
@ApiOperation("列表")
|
@ApiOperation("列表")
|
||||||
@ApiImplicitParam(name = "type", value = "菜单类型 0:菜单 1:按钮 null:全部", paramType = "query", dataType="int")
|
@ApiImplicitParam(name = "type", value = "菜单类型 0:菜单 1:按钮 null:全部", paramType = "query", dataTypeClass=Integer.class)
|
||||||
@PreAuthorize("@ex.hasAuthority('sys:menu:list')")
|
@PreAuthorize("@ex.hasAuthority('sys:menu:list')")
|
||||||
public Result<List<SysMenuDTO>> list(Integer type){
|
public Result<List<SysMenuDTO>> list(Integer type){
|
||||||
List<SysMenuDTO> list = sysMenuService.getAllMenuList(type);
|
List<SysMenuDTO> list = sysMenuService.getAllMenuList(type);
|
||||||
|
@ -41,11 +41,11 @@ public class SysParamsController {
|
|||||||
@GetMapping("page")
|
@GetMapping("page")
|
||||||
@ApiOperation("分页")
|
@ApiOperation("分页")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = "paramCode", value = "参数编码", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = "paramCode", value = "参数编码", paramType = "query", dataTypeClass=String.class)
|
||||||
})
|
})
|
||||||
@PreAuthorize("@ex.hasAuthority('sys:params:page')")
|
@PreAuthorize("@ex.hasAuthority('sys:params:page')")
|
||||||
public Result<PageData<SysParamsDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
public Result<PageData<SysParamsDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||||
@ -105,7 +105,7 @@ public class SysParamsController {
|
|||||||
@GetMapping("export")
|
@GetMapping("export")
|
||||||
@ApiOperation("导出")
|
@ApiOperation("导出")
|
||||||
@LogOperation("导出")
|
@LogOperation("导出")
|
||||||
@ApiImplicitParam(name = "paramCode", value = "参数编码", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = "paramCode", value = "参数编码", paramType = "query", dataTypeClass=String.class)
|
||||||
@PreAuthorize("@ex.hasAuthority('sys:params:export')")
|
@PreAuthorize("@ex.hasAuthority('sys:params:export')")
|
||||||
public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
|
public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
|
||||||
List<SysParamsDTO> list = sysParamsService.list(params);
|
List<SysParamsDTO> list = sysParamsService.list(params);
|
||||||
|
@ -45,11 +45,11 @@ public class SysRoleController {
|
|||||||
@GetMapping("page")
|
@GetMapping("page")
|
||||||
@ApiOperation("分页")
|
@ApiOperation("分页")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = "name", value = "角色名", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = "name", value = "角色名", paramType = "query", dataTypeClass=String.class)
|
||||||
})
|
})
|
||||||
@PreAuthorize("@ex.hasAuthority('sys:role:page')")
|
@PreAuthorize("@ex.hasAuthority('sys:role:page')")
|
||||||
public Result<PageData<SysRoleDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
public Result<PageData<SysRoleDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||||
|
@ -53,13 +53,13 @@ public class SysUserController {
|
|||||||
@GetMapping("page")
|
@GetMapping("page")
|
||||||
@ApiOperation("分页")
|
@ApiOperation("分页")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType="String"),
|
@ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataTypeClass=String.class),
|
||||||
@ApiImplicitParam(name = "gender", value = "性别", paramType = "query", dataType="String"),
|
@ApiImplicitParam(name = "gender", value = "性别", paramType = "query", dataTypeClass=String.class),
|
||||||
@ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataTypeClass=String.class)
|
||||||
})
|
})
|
||||||
@PreAuthorize("@ex.hasAuthority('sys:user:page')")
|
@PreAuthorize("@ex.hasAuthority('sys:user:page')")
|
||||||
public Result<PageData<SysUserDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
public Result<PageData<SysUserDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||||
@ -153,7 +153,7 @@ public class SysUserController {
|
|||||||
@GetMapping("export")
|
@GetMapping("export")
|
||||||
@ApiOperation("导出")
|
@ApiOperation("导出")
|
||||||
@LogOperation("导出")
|
@LogOperation("导出")
|
||||||
@ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataTypeClass=String.class)
|
||||||
@PreAuthorize("@ex.hasAuthority('sys:user:export')")
|
@PreAuthorize("@ex.hasAuthority('sys:user:export')")
|
||||||
public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
|
public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
|
||||||
List<SysUserDTO> list = sysUserService.list(params);
|
List<SysUserDTO> list = sysUserService.list(params);
|
||||||
|
@ -26,40 +26,40 @@ import java.util.Map;
|
|||||||
* @Date 2022/6/10 2:05 PM
|
* @Date 2022/6/10 2:05 PM
|
||||||
* @Version 1.0
|
* @Version 1.0
|
||||||
*/
|
*/
|
||||||
//@RestControllerAdvice
|
@RestControllerAdvice
|
||||||
//public class RenExceptionHandler {
|
public class RenExceptionHandler {
|
||||||
// private static final Logger logger = LoggerFactory.getLogger(RenExceptionHandler.class);
|
private static final Logger logger = LoggerFactory.getLogger(RenExceptionHandler.class);
|
||||||
//
|
|
||||||
// @Autowired
|
@Autowired
|
||||||
// private SysLogErrorService sysLogErrorService;
|
private SysLogErrorService sysLogErrorService;
|
||||||
//
|
|
||||||
// /**
|
/**
|
||||||
// * 处理自定义异常
|
* 处理自定义异常
|
||||||
// */
|
*/
|
||||||
// @ExceptionHandler(RenException.class)
|
@ExceptionHandler(RenException.class)
|
||||||
// public Result handleRenException(RenException ex){
|
public Result handleRenException(RenException ex){
|
||||||
// Result result = new Result();
|
Result result = new Result();
|
||||||
// result.error(ex.getCode(), ex.getMsg());
|
result.error(ex.getCode(), ex.getMsg());
|
||||||
//
|
|
||||||
// return result;
|
return result;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @ExceptionHandler(DuplicateKeyException.class)
|
@ExceptionHandler(DuplicateKeyException.class)
|
||||||
// public Result handleDuplicateKeyException(DuplicateKeyException ex){
|
public Result handleDuplicateKeyException(DuplicateKeyException ex){
|
||||||
// Result result = new Result();
|
Result result = new Result();
|
||||||
// result.error(ErrorCode.DB_RECORD_EXISTS);
|
result.error(ErrorCode.DB_RECORD_EXISTS);
|
||||||
//
|
|
||||||
// return result;
|
return result;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @ExceptionHandler(Exception.class)
|
@ExceptionHandler(Exception.class)
|
||||||
// public Result handleException(Exception ex){
|
public Result handleException(Exception ex){
|
||||||
// logger.error(ex.getMessage(), ex);
|
logger.error(ex.getMessage(), ex);
|
||||||
//
|
|
||||||
// saveLog(ex);
|
// saveLog(ex);
|
||||||
//
|
|
||||||
// return new Result().error();
|
return new Result().error();
|
||||||
// }
|
}
|
||||||
//
|
//
|
||||||
// /**
|
// /**
|
||||||
// * 保存异常日志
|
// * 保存异常日志
|
||||||
@ -84,4 +84,4 @@ import java.util.Map;
|
|||||||
// //保存
|
// //保存
|
||||||
// sysLogErrorService.save(log);
|
// sysLogErrorService.save(log);
|
||||||
// }
|
// }
|
||||||
//}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import com.cnbm.admin.service.SysMenuService;
|
|||||||
import com.cnbm.common.utils.ConvertUtils;
|
import com.cnbm.common.utils.ConvertUtils;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.security.authentication.DisabledException;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
@ -46,6 +47,9 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
|||||||
if (Objects.isNull(sysUserEntity)) {
|
if (Objects.isNull(sysUserEntity)) {
|
||||||
throw new UsernameNotFoundException("用户名不存在");
|
throw new UsernameNotFoundException("用户名不存在");
|
||||||
}
|
}
|
||||||
|
if (sysUserEntity.getStatus() == 0) {
|
||||||
|
throw new DisabledException("该账户已被禁用,请联系管理员");
|
||||||
|
}
|
||||||
log.info("sysUserEntity的值是"+sysUserEntity.toString());
|
log.info("sysUserEntity的值是"+sysUserEntity.toString());
|
||||||
log.info("sysUserEntity.getSuperAdmin()=="+sysUserEntity.getSuperAdmin());
|
log.info("sysUserEntity.getSuperAdmin()=="+sysUserEntity.getSuperAdmin());
|
||||||
Set<String> userPermissions = sysMenuService.getUserPermissions(sysUserEntity);
|
Set<String> userPermissions = sysMenuService.getUserPermissions(sysUserEntity);
|
||||||
|
@ -5,6 +5,7 @@ import com.github.kwhat.jnativehook.NativeHookException;
|
|||||||
import com.github.kwhat.jnativehook.keyboard.NativeKeyEvent;
|
import com.github.kwhat.jnativehook.keyboard.NativeKeyEvent;
|
||||||
import com.github.kwhat.jnativehook.keyboard.NativeKeyListener;
|
import com.github.kwhat.jnativehook.keyboard.NativeKeyListener;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -19,6 +20,7 @@ import java.util.stream.Collectors;
|
|||||||
*/
|
*/
|
||||||
@Log4j2
|
@Log4j2
|
||||||
@Component
|
@Component
|
||||||
|
@Profile("prod")
|
||||||
public class GlobalKeyListenerExample implements NativeKeyListener {
|
public class GlobalKeyListenerExample implements NativeKeyListener {
|
||||||
|
|
||||||
static {
|
static {
|
||||||
@ -48,14 +50,17 @@ public class GlobalKeyListenerExample implements NativeKeyListener {
|
|||||||
return NativeKeyEvent.getKeyText(n);
|
return NativeKeyEvent.getKeyText(n);
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
for (String s : collect) {
|
|
||||||
result = result + s;
|
|
||||||
}
|
|
||||||
if (queue.size() == 5) {
|
if (queue.size() == 5) {
|
||||||
log.info("符合标准的扫码是:"+ result.replace("Enter",""));
|
for (String s : collect) {
|
||||||
|
result = result + s;
|
||||||
|
}
|
||||||
}else {
|
}else {
|
||||||
log.info("符合标准的扫码是:"+ result.substring(1).replace("Enter",""));
|
for (int i = 1; i < collect.size(); i++) {
|
||||||
|
result = result + collect.get(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info("符合标准的扫码是:"+ result.replace("Enter",""));
|
||||||
queue.clear();
|
queue.clear();
|
||||||
}
|
}
|
||||||
if (queue.size() == 6){
|
if (queue.size() == 6){
|
||||||
|
@ -32,6 +32,27 @@
|
|||||||
<artifactId>ym-barcode</artifactId>
|
<artifactId>ym-barcode</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.cnbm</groupId>
|
||||||
|
<artifactId>ym-basic</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.springfox</groupId>
|
||||||
|
<artifactId>springfox-boot-starter</artifactId>
|
||||||
|
<version>3.0.0</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>io.swagger</groupId>
|
||||||
|
<artifactId>swagger-models</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.swagger</groupId>
|
||||||
|
<artifactId>swagger-models</artifactId>
|
||||||
|
<version>1.5.21</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
@ -2,6 +2,7 @@ package com.cnbm;
|
|||||||
|
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import springfox.documentation.oas.annotations.EnableOpenApi;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author weihongyang
|
* @Author weihongyang
|
||||||
@ -9,9 +10,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||||||
* @Version 1.0
|
* @Version 1.0
|
||||||
*/
|
*/
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
|
@EnableOpenApi
|
||||||
public class AdminApplication {
|
public class YmApplication {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(AdminApplication.class,args);
|
SpringApplication.run(YmApplication.class,args);
|
||||||
}
|
}
|
||||||
}
|
}
|
87
ym-gateway/src/main/java/com/cnbm/config/SwaggerConfig.java
Normal file
87
ym-gateway/src/main/java/com/cnbm/config/SwaggerConfig.java
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
package com.cnbm.config;
|
||||||
|
|
||||||
|
import com.cnbm.common.constant.Constant;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
|
import springfox.documentation.builders.ApiInfoBuilder;
|
||||||
|
import springfox.documentation.builders.PathSelectors;
|
||||||
|
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||||
|
import springfox.documentation.oas.annotations.EnableOpenApi;
|
||||||
|
import springfox.documentation.service.*;
|
||||||
|
import springfox.documentation.spi.DocumentationType;
|
||||||
|
import springfox.documentation.spi.service.contexts.SecurityContext;
|
||||||
|
import springfox.documentation.spring.web.plugins.Docket;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.google.common.collect.Lists.newArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author weihongyang
|
||||||
|
* @Date 2022/6/21 10:56 AM
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
@EnableOpenApi
|
||||||
|
@Profile("dev")
|
||||||
|
public class SwaggerConfig {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建API应用
|
||||||
|
* apiInfo() 增加API相关信息
|
||||||
|
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
|
||||||
|
* 本例采用指定扫描的包路径来定义指定要建立API的目录。
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public Docket restApi() {
|
||||||
|
return new Docket(DocumentationType.SWAGGER_2)
|
||||||
|
.groupName("标准接口")
|
||||||
|
.apiInfo(apiInfo("Spring Boot中使用Swagger2构建RESTful APIs", "1.0"))
|
||||||
|
.useDefaultResponseMessages(true)
|
||||||
|
.forCodeGeneration(false)
|
||||||
|
.select()
|
||||||
|
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
||||||
|
.paths(PathSelectors.any())
|
||||||
|
.build()
|
||||||
|
.securityContexts(Arrays.asList(securityContext()))
|
||||||
|
// ApiKey的name需与SecurityReference的reference保持一致
|
||||||
|
.securitySchemes(Arrays.asList(new ApiKey("token", "token", "header")));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
|
||||||
|
* 访问地址:http://ip:port/swagger-ui.html
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private ApiInfo apiInfo(String title, String version) {
|
||||||
|
return new ApiInfoBuilder()
|
||||||
|
.title(title)
|
||||||
|
.description("ym-pass文档")
|
||||||
|
.termsOfServiceUrl("https://www.baidu.com/")
|
||||||
|
.version(version)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private SecurityContext securityContext() {
|
||||||
|
return SecurityContext.builder()
|
||||||
|
.securityReferences(defaultAuth())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SecurityReference> defaultAuth() {
|
||||||
|
AuthorizationScope authorizationScope
|
||||||
|
= new AuthorizationScope("global", "accessEverything");
|
||||||
|
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
|
||||||
|
authorizationScopes[0] = authorizationScope;
|
||||||
|
return Lists.newArrayList(
|
||||||
|
new SecurityReference(Constant.TOKEN_HEADER, authorizationScopes));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
40
ym-gateway/src/main/resources/application-prod.yml
Normal file
40
ym-gateway/src/main/resources/application-prod.yml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
#MySQL
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://mysql.picaiba.com:30307/ym_pass?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
|
||||||
|
username: root
|
||||||
|
password: 1qaz@WSX3edc$RFV
|
||||||
|
# #Oracle
|
||||||
|
# driver-class-name: oracle.jdbc.OracleDriver
|
||||||
|
# url: jdbc:oracle:thin:@192.168.10.10:1521:xe
|
||||||
|
# username: renren_security
|
||||||
|
# password: 123456
|
||||||
|
# #SQLServer
|
||||||
|
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||||
|
# url: jdbc:sqlserver://localhost:1433;DatabaseName=renren_security
|
||||||
|
# username: sa
|
||||||
|
# password: 123456
|
||||||
|
# #postgresql
|
||||||
|
# driver-class-name: org.postgresql.Driver
|
||||||
|
# url: jdbc:postgresql://192.168.10.10:5432/postgres
|
||||||
|
# username: postgres
|
||||||
|
# password: 123456
|
||||||
|
hikari:
|
||||||
|
pool-name: GrowUpHikariCP
|
||||||
|
minimum-idle: 1
|
||||||
|
maximum-pool-size: 10
|
||||||
|
|
||||||
|
##多数据源的配置,需要引用renren-dynamic-datasource
|
||||||
|
#dynamic:
|
||||||
|
# datasource:
|
||||||
|
# slave1:
|
||||||
|
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||||
|
# url: jdbc:sqlserver://123456:1433;DatabaseName=renren_security
|
||||||
|
# username: sa
|
||||||
|
# password: 123456
|
||||||
|
# slave2:
|
||||||
|
# driver-class-name: org.postgresql.Driver
|
||||||
|
# url: jdbc:postgresql://123456:5432/renren_security
|
||||||
|
# username: postgres
|
||||||
|
# password: 123456
|
@ -7,14 +7,14 @@ server:
|
|||||||
min-spare: 30
|
min-spare: 30
|
||||||
port: 8080
|
port: 8080
|
||||||
servlet:
|
servlet:
|
||||||
context-path: /ym-admin
|
context-path: /ym-pass
|
||||||
session:
|
session:
|
||||||
cookie:
|
cookie:
|
||||||
http-only: true
|
http-only: true
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
application:
|
application:
|
||||||
name: ym-admin
|
name: ym-pass
|
||||||
# 环境 dev|test|prod
|
# 环境 dev|test|prod
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: dev
|
||||||
@ -31,9 +31,9 @@ spring:
|
|||||||
enabled: true
|
enabled: true
|
||||||
redis:
|
redis:
|
||||||
database: 0
|
database: 0
|
||||||
host: 124.221.241.144
|
host: redis.picaiba.com
|
||||||
port: 6379
|
port: 6380
|
||||||
password: why123456 # 密码(默认为空)
|
password: '@WSXcde3' # 密码(默认为空)
|
||||||
timeout: 6000ms # 连接超时时长(毫秒)
|
timeout: 6000ms # 连接超时时长(毫秒)
|
||||||
jedis:
|
jedis:
|
||||||
pool:
|
pool:
|
||||||
|
@ -48,8 +48,8 @@ public class CodeGenerator {
|
|||||||
})
|
})
|
||||||
.packageConfig(builder -> {
|
.packageConfig(builder -> {
|
||||||
//设置父包名
|
//设置父包名
|
||||||
builder.parent("com.cnbm")
|
builder.parent("com.cnbm.generator")
|
||||||
.moduleName("generator")
|
.moduleName("code")
|
||||||
.service("service")
|
.service("service")
|
||||||
.serviceImpl("service.impl")
|
.serviceImpl("service.impl")
|
||||||
.entity("entity")
|
.entity("entity")
|
||||||
|
@ -24,10 +24,10 @@ public class EnhanceVelocityTemplateEngine extends VelocityTemplateEngine {
|
|||||||
customFile.forEach((key, value) -> {
|
customFile.forEach((key, value) -> {
|
||||||
String fileName = "";
|
String fileName = "";
|
||||||
if ("DTO".equals(key)) {
|
if ("DTO".equals(key)) {
|
||||||
fileName = String.format((path+ File.separator +"src/main/java/com/cnbm/generator"+ File.separator + "dto" + File.separator + entityName + "%s" + ".java"), key);
|
fileName = String.format((path+ File.separator +"src/main/java/com/cnbm/generator/code"+ File.separator + "dto" + File.separator + entityName + "%s" + ".java"), key);
|
||||||
}
|
}
|
||||||
if ("Excel".equals(key)) {
|
if ("Excel".equals(key)) {
|
||||||
fileName = String.format((path+ File.separator +"src/main/java/com/cnbm/generator"+ File.separator + "excel" + File.separator + entityName + "%s" + ".java"), key);
|
fileName = String.format((path+ File.separator +"src/main/java/com/cnbm/generator/code"+ File.separator + "excel" + File.separator + entityName + "%s" + ".java"), key);
|
||||||
}
|
}
|
||||||
this.outputFile(new File(fileName), objectMap, value);
|
this.outputFile(new File(fileName), objectMap, value);
|
||||||
});
|
});
|
||||||
|
@ -43,10 +43,10 @@ public class ${table.controllerName} {
|
|||||||
@GetMapping("page")
|
@GetMapping("page")
|
||||||
@ApiOperation("分页")
|
@ApiOperation("分页")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
|
||||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String")
|
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class)
|
||||||
})
|
})
|
||||||
@PreAuthorize("@ex.hasAuthority('${package.ModuleName}:${table.entityPath}:page')")
|
@PreAuthorize("@ex.hasAuthority('${package.ModuleName}:${table.entityPath}:page')")
|
||||||
public Result<PageData<${entity}DTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
public Result<PageData<${entity}DTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||||
|
Loading…
Reference in New Issue
Block a user