Commit fd9fb2a6 authored by dqjdda's avatar dqjdda
Browse files

Merge branch '2.3dev'

parents 7895e547 1839ef8d
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.mapper.EntityMapper; import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.Dept; import me.zhengjie.modules.system.domain.Dept;
import me.zhengjie.modules.system.service.dto.DeptDTO; import me.zhengjie.modules.system.service.dto.DeptDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie * @author Zheng Jie
* @date 2019-03-25 * @date 2019-03-25
*/ */
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DeptMapper extends EntityMapper<DeptDTO, Dept> { public interface DeptMapper extends BaseMapper<DeptDTO, Dept> {
} }
\ No newline at end of file
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.mapper.EntityMapper; import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.Dept; import me.zhengjie.modules.system.domain.Dept;
import me.zhengjie.modules.system.service.dto.DeptSmallDTO; import me.zhengjie.modules.system.service.dto.DeptSmallDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie * @author Zheng Jie
* @date 2019-03-25 * @date 2019-03-25
*/ */
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DeptSmallMapper extends EntityMapper<DeptSmallDTO, Dept> { public interface DeptSmallMapper extends BaseMapper<DeptSmallDTO, Dept> {
} }
\ No newline at end of file
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.mapper.EntityMapper; import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.DictDetail; import me.zhengjie.modules.system.domain.DictDetail;
import me.zhengjie.modules.system.service.dto.DictDetailDTO; import me.zhengjie.modules.system.service.dto.DictDetailDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie * @author Zheng Jie
* @date 2019-04-10 * @date 2019-04-10
*/ */
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DictDetailMapper extends EntityMapper<DictDetailDTO, DictDetail> { public interface DictDetailMapper extends BaseMapper<DictDetailDTO, DictDetail> {
} }
\ No newline at end of file
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.mapper.EntityMapper; import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.Dict; import me.zhengjie.modules.system.domain.Dict;
import me.zhengjie.modules.system.service.dto.DictDTO; import me.zhengjie.modules.system.service.dto.DictDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie * @author Zheng Jie
* @date 2019-04-10 * @date 2019-04-10
*/ */
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DictMapper extends EntityMapper<DictDTO, Dict> { public interface DictMapper extends BaseMapper<DictDTO, Dict> {
} }
\ No newline at end of file
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.mapper.EntityMapper; import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.Job; import me.zhengjie.modules.system.domain.Job;
import me.zhengjie.modules.system.service.dto.JobDTO; import me.zhengjie.modules.system.service.dto.JobDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -12,7 +12,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -12,7 +12,7 @@ import org.mapstruct.ReportingPolicy;
* @date 2019-03-29 * @date 2019-03-29
*/ */
@Mapper(componentModel = "spring",uses = {DeptMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",uses = {DeptMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface JobMapper extends EntityMapper<JobDTO, Job> { public interface JobMapper extends BaseMapper<JobDTO, Job> {
@Mapping(source = "deptSuperiorName", target = "deptSuperiorName") @Mapping(source = "deptSuperiorName", target = "deptSuperiorName")
JobDTO toDto(Job job, String deptSuperiorName); JobDTO toDto(Job job, String deptSuperiorName);
......
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.mapper.EntityMapper; import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.Job; import me.zhengjie.modules.system.domain.Job;
import me.zhengjie.modules.system.service.dto.JobSmallDTO; import me.zhengjie.modules.system.service.dto.JobSmallDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie * @author Zheng Jie
* @date 2019-03-29 * @date 2019-03-29
*/ */
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface JobSmallMapper extends EntityMapper<JobSmallDTO, Job> { public interface JobSmallMapper extends BaseMapper<JobSmallDTO, Job> {
} }
\ No newline at end of file
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.Menu; import me.zhengjie.modules.system.domain.Menu;
import me.zhengjie.mapper.EntityMapper;
import me.zhengjie.modules.system.service.dto.MenuDTO; import me.zhengjie.modules.system.service.dto.MenuDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy; import org.mapstruct.ReportingPolicy;
...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie * @author Zheng Jie
* @date 2018-12-17 * @date 2018-12-17
*/ */
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MenuMapper extends EntityMapper<MenuDTO, Menu> { public interface MenuMapper extends BaseMapper<MenuDTO, Menu> {
} }
package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.modules.system.domain.Permission;
import me.zhengjie.mapper.EntityMapper;
import me.zhengjie.modules.system.service.dto.PermissionDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2018-11-23
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface PermissionMapper extends EntityMapper<PermissionDTO, Permission> {
}
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.Role; import me.zhengjie.modules.system.domain.Role;
import me.zhengjie.mapper.EntityMapper;
import me.zhengjie.modules.system.service.dto.RoleDTO; import me.zhengjie.modules.system.service.dto.RoleDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy; import org.mapstruct.ReportingPolicy;
...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie * @author Zheng Jie
* @date 2018-11-23 * @date 2018-11-23
*/ */
@Mapper(componentModel = "spring", uses = {PermissionMapper.class, MenuMapper.class, DeptMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring", uses = {MenuMapper.class, DeptMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface RoleMapper extends EntityMapper<RoleDTO, Role> { public interface RoleMapper extends BaseMapper<RoleDTO, Role> {
} }
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.mapper.EntityMapper; import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.Role; import me.zhengjie.modules.system.domain.Role;
import me.zhengjie.modules.system.service.dto.RoleDTO;
import me.zhengjie.modules.system.service.dto.RoleSmallDTO; import me.zhengjie.modules.system.service.dto.RoleSmallDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy; import org.mapstruct.ReportingPolicy;
...@@ -11,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -11,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie * @author Zheng Jie
* @date 2019-5-23 * @date 2019-5-23
*/ */
@Mapper(componentModel = "spring", uses = {}, unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface RoleSmallMapper extends EntityMapper<RoleSmallDTO, Role> { public interface RoleSmallMapper extends BaseMapper<RoleSmallDTO, Role> {
} }
package me.zhengjie.modules.system.service.mapper; package me.zhengjie.modules.system.service.mapper;
import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.system.domain.User; import me.zhengjie.modules.system.domain.User;
import me.zhengjie.mapper.EntityMapper;
import me.zhengjie.modules.system.service.dto.UserDTO; import me.zhengjie.modules.system.service.dto.UserDTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy; import org.mapstruct.ReportingPolicy;
import java.util.List;
/** /**
* @author Zheng Jie * @author Zheng Jie
* @date 2018-11-23 * @date 2018-11-23
*/ */
@Mapper(componentModel = "spring",uses = {RoleMapper.class, DeptMapper.class, JobMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring",uses = {RoleMapper.class, DeptMapper.class, JobMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface UserMapper extends EntityMapper<UserDTO, User> { public interface UserMapper extends BaseMapper<UserDTO, User> {
@Mapping(source = "user.userAvatar.realName",target = "avatar") @Mapping(source = "user.userAvatar.realName",target = "avatar")
UserDTO toDto(User user); UserDTO toDto(User user);
......
...@@ -45,13 +45,12 @@ spring: ...@@ -45,13 +45,12 @@ spring:
jwt: jwt:
header: Authorization header: Authorization
secret: mySecret secret: mySecret
# token 过期时间 6个小时 # token 过期时间/毫秒,6小时 1小时 = 3600000 毫秒
expiration: 21000000 expiration: 21600000
auth: # 在线用户key
# 授权路径 online: online-token
path: /login # 验证码
# 获取用户信息 codeKey: code-key
account: /info
#是否允许生成代码,生产环境设置为false #是否允许生成代码,生产环境设置为false
generator: generator:
......
...@@ -49,11 +49,10 @@ jwt: ...@@ -49,11 +49,10 @@ jwt:
secret: mySecret secret: mySecret
# token 过期时间 2个小时 # token 过期时间 2个小时
expiration: 7200000 expiration: 7200000
auth: # 在线用户key
# 授权路径 online: online-token
path: /login # 验证码
# 获取用户信息 codeKey: code-key
account: /info
#是否允许生成代码,生产环境设置为false #是否允许生成代码,生产环境设置为false
generator: generator:
......
...@@ -29,6 +29,17 @@ spring: ...@@ -29,6 +29,17 @@ spring:
#连接超时时间 #连接超时时间
timeout: 5000 timeout: 5000
task:
pool:
# 核心线程池大小
core-pool-size: 10
# 最大线程数
max-pool-size: 30
# 活跃时间
keep-alive-seconds: 60
# 队列容量
queue-capacity: 50
#七牛云 #七牛云
qiniu: qiniu:
# 文件大小 /M # 文件大小 /M
......
...@@ -4,7 +4,6 @@ import me.zhengjie.aop.log.Log; ...@@ -4,7 +4,6 @@ import me.zhengjie.aop.log.Log;
import ${package}.domain.${className}; import ${package}.domain.${className};
import ${package}.service.${className}Service; import ${package}.service.${className}Service;
import ${package}.service.dto.${className}QueryCriteria; import ${package}.service.dto.${className}QueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -12,6 +11,8 @@ import org.springframework.security.access.prepost.PreAuthorize; ...@@ -12,6 +11,8 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/** /**
* @author ${author} * @author ${author}
...@@ -19,41 +20,52 @@ import io.swagger.annotations.*; ...@@ -19,41 +20,52 @@ import io.swagger.annotations.*;
*/ */
@Api(tags = "${className}管理") @Api(tags = "${className}管理")
@RestController @RestController
@RequestMapping("api") @RequestMapping("/api/${changeClassName}")
public class ${className}Controller { public class ${className}Controller {
@Autowired private final ${className}Service ${changeClassName}Service;
private ${className}Service ${changeClassName}Service;
public ${className}Controller(${className}Service ${changeClassName}Service) {
this.${changeClassName}Service = ${changeClassName}Service;
}
@Log("导出数据")
@ApiOperation("导出数据")
@GetMapping(value = "/download")
@PreAuthorize("@el.check('${changeClassName}:list')")
public void download(HttpServletResponse response, ${className}QueryCriteria criteria) throws IOException {
${changeClassName}Service.download(${changeClassName}Service.queryAll(criteria), response);
}
@GetMapping
@Log("查询${className}") @Log("查询${className}")
@ApiOperation(value = "查询${className}") @ApiOperation("查询${className}")
@GetMapping(value = "/${changeClassName}") @PreAuthorize("@el.check('${changeClassName}:list')")
@PreAuthorize("hasAnyRole('ADMIN','${upperCaseClassName}_ALL','${upperCaseClassName}_SELECT')")
public ResponseEntity get${className}s(${className}QueryCriteria criteria, Pageable pageable){ public ResponseEntity get${className}s(${className}QueryCriteria criteria, Pageable pageable){
return new ResponseEntity(${changeClassName}Service.queryAll(criteria,pageable),HttpStatus.OK); return new ResponseEntity<>(${changeClassName}Service.queryAll(criteria,pageable),HttpStatus.OK);
} }
@PostMapping
@Log("新增${className}") @Log("新增${className}")
@ApiOperation(value = "新增${className}") @ApiOperation("新增${className}")
@PostMapping(value = "/${changeClassName}") @PreAuthorize("@el.check('${changeClassName}:add')")
@PreAuthorize("hasAnyRole('ADMIN','${upperCaseClassName}_ALL','${upperCaseClassName}_CREATE')")
public ResponseEntity create(@Validated @RequestBody ${className} resources){ public ResponseEntity create(@Validated @RequestBody ${className} resources){
return new ResponseEntity(${changeClassName}Service.create(resources),HttpStatus.CREATED); return new ResponseEntity<>(${changeClassName}Service.create(resources),HttpStatus.CREATED);
} }
@PutMapping
@Log("修改${className}") @Log("修改${className}")
@ApiOperation(value = "修改${className}") @ApiOperation("修改${className}")
@PutMapping(value = "/${changeClassName}") @PreAuthorize("@el.check('${changeClassName}:edit')")
@PreAuthorize("hasAnyRole('ADMIN','${upperCaseClassName}_ALL','${upperCaseClassName}_EDIT')")
public ResponseEntity update(@Validated @RequestBody ${className} resources){ public ResponseEntity update(@Validated @RequestBody ${className} resources){
${changeClassName}Service.update(resources); ${changeClassName}Service.update(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT); return new ResponseEntity(HttpStatus.NO_CONTENT);
} }
@DeleteMapping(value = "/{${pkChangeColName}}")
@Log("删除${className}") @Log("删除${className}")
@ApiOperation(value = "删除${className}") @ApiOperation("删除${className}")
@DeleteMapping(value = "/${changeClassName}/{${pkChangeColName}}") @PreAuthorize("@el.check('${changeClassName}:del')")
@PreAuthorize("hasAnyRole('ADMIN','${upperCaseClassName}_ALL','${upperCaseClassName}_DELETE')")
public ResponseEntity delete(@PathVariable ${pkColumnType} ${pkChangeColName}){ public ResponseEntity delete(@PathVariable ${pkColumnType} ${pkChangeColName}){
${changeClassName}Service.delete(${pkChangeColName}); ${changeClassName}Service.delete(${pkChangeColName});
return new ResponseEntity(HttpStatus.OK); return new ResponseEntity(HttpStatus.OK);
......
package ${package}.service.mapper; package ${package}.service.mapper;
import me.zhengjie.mapper.EntityMapper; import me.zhengjie.base.BaseMapper;
import ${package}.domain.${className}; import ${package}.domain.${className};
import ${package}.service.dto.${className}DTO; import ${package}.service.dto.${className}DTO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author ${author} * @author ${author}
* @date ${date} * @date ${date}
*/ */
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ${className}Mapper extends EntityMapper<${className}DTO, ${className}> { public interface ${className}Mapper extends BaseMapper<${className}DTO, ${className}> {
} }
\ No newline at end of file
package ${package}.service.dto; package ${package}.service.dto;
import lombok.Data; import lombok.Data;
<#if hasTimestamp> <#if queryHasTimestamp>
import java.sql.Timestamp; import java.sql.Timestamp;
</#if> </#if>
<#if hasBigDecimal> <#if queryHasBigDecimal>
import java.math.BigDecimal; import java.math.BigDecimal;
</#if> </#if>
<#if queryColumns??> <#if queryColumns??>
......
...@@ -8,16 +8,11 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; ...@@ -8,16 +8,11 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
* @author ${author} * @author ${author}
* @date ${date} * @date ${date}
*/ */
public interface ${className}Repository extends JpaRepository<${className}, ${pkColumnType}>, JpaSpecificationExecutor { public interface ${className}Repository extends JpaRepository<${className}, ${pkColumnType}>, JpaSpecificationExecutor<${className}> {
<#if columns??> <#if columns??>
<#list columns as column> <#list columns as column>
<#if column.columnKey = 'UNI'> <#if column.columnKey = 'UNI'>
/**
* findBy${column.capitalColumnName}
* @param ${column.columnName}
* @return
*/
${className} findBy${column.capitalColumnName}(${column.columnType} ${column.columnName}); ${className} findBy${column.capitalColumnName}(${column.columnType} ${column.columnName});
</#if> </#if>
</#list> </#list>
......
...@@ -3,64 +3,45 @@ package ${package}.service; ...@@ -3,64 +3,45 @@ package ${package}.service;
import ${package}.domain.${className}; import ${package}.domain.${className};
import ${package}.service.dto.${className}DTO; import ${package}.service.dto.${className}DTO;
import ${package}.service.dto.${className}QueryCriteria; import ${package}.service.dto.${className}QueryCriteria;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import java.util.Map; import java.util.Map;
import java.util.List; import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/** /**
* @author ${author} * @author ${author}
* @date ${date} * @date ${date}
*/ */
//@CacheConfig(cacheNames = "${changeClassName}")
public interface ${className}Service { public interface ${className}Service {
/** /**
* 查询数据分页 * 查询数据分页
* @param criteria * @param criteria 条件参数
* @param pageable * @param pageable 分页参数
* @return * @return Map<String,Object>
*/ */
//@Cacheable
Map<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable); Map<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable);
/** /**
* 查询所有数据不分页 * 查询所有数据不分页
* @param criteria * @param criteria 条件参数
* @return * @return List<${className}DTO>
*/ */
//@Cacheable
List<${className}DTO> queryAll(${className}QueryCriteria criteria); List<${className}DTO> queryAll(${className}QueryCriteria criteria);
/** /**
* 根据ID查询 * 根据ID查询
* @param ${pkChangeColName} * @param ${pkChangeColName} ID
* @return * @return ${className}DTO
*/ */
//@Cacheable(key = "#p0")
${className}DTO findById(${pkColumnType} ${pkChangeColName}); ${className}DTO findById(${pkColumnType} ${pkChangeColName});
/**
* 创建
* @param resources
* @return
*/
//@CacheEvict(allEntries = true)
${className}DTO create(${className} resources); ${className}DTO create(${className} resources);
/**
* 编辑
* @param resources
*/
//@CacheEvict(allEntries = true)
void update(${className} resources); void update(${className} resources);
/**
* 删除
* @param ${pkChangeColName}
*/
//@CacheEvict(allEntries = true)
void delete(${pkColumnType} ${pkChangeColName}); void delete(${pkColumnType} ${pkChangeColName});
void download(List<${className}DTO> all, HttpServletResponse response) throws IOException;
} }
\ No newline at end of file
...@@ -11,16 +11,15 @@ import me.zhengjie.exception.EntityExistException; ...@@ -11,16 +11,15 @@ import me.zhengjie.exception.EntityExistException;
</#list> </#list>
</#if> </#if>
import me.zhengjie.utils.ValidationUtil; import me.zhengjie.utils.ValidationUtil;
import me.zhengjie.utils.FileUtil;
import ${package}.repository.${className}Repository; import ${package}.repository.${className}Repository;
import ${package}.service.${className}Service; import ${package}.service.${className}Service;
import ${package}.service.dto.${className}DTO; import ${package}.service.dto.${className}DTO;
import ${package}.service.dto.${className}QueryCriteria; import ${package}.service.dto.${className}QueryCriteria;
import ${package}.service.mapper.${className}Mapper; import ${package}.service.mapper.${className}Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
<#if !auto && pkColumnType = 'Long'> <#if !auto && pkColumnType = 'Long'>
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
...@@ -28,46 +27,61 @@ import cn.hutool.core.util.IdUtil; ...@@ -28,46 +27,61 @@ import cn.hutool.core.util.IdUtil;
<#if !auto && pkColumnType = 'String'> <#if !auto && pkColumnType = 'String'>
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
</#if> </#if>
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.PageUtil;
import me.zhengjie.utils.QueryHelp; import me.zhengjie.utils.QueryHelp;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
/** /**
* @author ${author} * @author ${author}
* @date ${date} * @date ${date}
*/ */
@Service @Service
@CacheConfig(cacheNames = "${changeClassName}")
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class ${className}ServiceImpl implements ${className}Service { public class ${className}ServiceImpl implements ${className}Service {
@Autowired private final ${className}Repository ${changeClassName}Repository;
private ${className}Repository ${changeClassName}Repository;
@Autowired private final ${className}Mapper ${changeClassName}Mapper;
private ${className}Mapper ${changeClassName}Mapper;
public ${className}ServiceImpl(${className}Repository ${changeClassName}Repository, ${className}Mapper ${changeClassName}Mapper) {
this.${changeClassName}Repository = ${changeClassName}Repository;
this.${changeClassName}Mapper = ${changeClassName}Mapper;
}
@Override @Override
@Cacheable
public Map<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable){ public Map<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable){
Page<${className}> page = ${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); Page<${className}> page = ${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(${changeClassName}Mapper::toDto)); return PageUtil.toPage(page.map(${changeClassName}Mapper::toDto));
} }
@Override @Override
@Cacheable
public List<${className}DTO> queryAll(${className}QueryCriteria criteria){ public List<${className}DTO> queryAll(${className}QueryCriteria criteria){
return ${changeClassName}Mapper.toDto(${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); return ${changeClassName}Mapper.toDto(${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
} }
@Override @Override
@Cacheable(key = "#p0")
public ${className}DTO findById(${pkColumnType} ${pkChangeColName}) { public ${className}DTO findById(${pkColumnType} ${pkChangeColName}) {
Optional<${className}> ${changeClassName} = ${changeClassName}Repository.findById(${pkChangeColName}); ${className} ${changeClassName} = ${changeClassName}Repository.findById(${pkChangeColName}).orElseGet(${className}::new);
ValidationUtil.isNull(${changeClassName},"${className}","${pkChangeColName}",${pkChangeColName}); ValidationUtil.isNull(${changeClassName}.get${pkCapitalColName}(),"${className}","${pkChangeColName}",${pkChangeColName});
return ${changeClassName}Mapper.toDto(${changeClassName}.get()); return ${changeClassName}Mapper.toDto(${changeClassName});
} }
@Override @Override
@CacheEvict(allEntries = true)
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ${className}DTO create(${className} resources) { public ${className}DTO create(${className} resources) {
<#if !auto && pkColumnType = 'Long'> <#if !auto && pkColumnType = 'Long'>
...@@ -90,11 +104,11 @@ public class ${className}ServiceImpl implements ${className}Service { ...@@ -90,11 +104,11 @@ public class ${className}ServiceImpl implements ${className}Service {
} }
@Override @Override
@CacheEvict(allEntries = true)
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void update(${className} resources) { public void update(${className} resources) {
Optional<${className}> optional${className} = ${changeClassName}Repository.findById(resources.get${pkCapitalColName}()); ${className} ${changeClassName} = ${changeClassName}Repository.findById(resources.get${pkCapitalColName}()).orElseGet(${className}::new);
ValidationUtil.isNull( optional${className},"${className}","id",resources.get${pkCapitalColName}()); ValidationUtil.isNull( ${changeClassName}.get${pkCapitalColName}(),"${className}","id",resources.get${pkCapitalColName}());
${className} ${changeClassName} = optional${className}.get();
<#if columns??> <#if columns??>
<#list columns as column> <#list columns as column>
<#if column.columnKey = 'UNI'> <#if column.columnKey = 'UNI'>
...@@ -113,8 +127,29 @@ public class ${className}ServiceImpl implements ${className}Service { ...@@ -113,8 +127,29 @@ public class ${className}ServiceImpl implements ${className}Service {
} }
@Override @Override
@CacheEvict(allEntries = true)
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void delete(${pkColumnType} ${pkChangeColName}) { public void delete(${pkColumnType} ${pkChangeColName}) {
${changeClassName}Repository.deleteById(${pkChangeColName}); ${changeClassName}Repository.deleteById(${pkChangeColName});
} }
@Override
public void download(List<${className}DTO> all, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (${className}DTO ${changeClassName} : all) {
Map<String,Object> map = new LinkedHashMap<>();
<#list columns as column>
<#if column.columnKey != 'PRI'>
<#if column.columnComment != ''>
map.put("${column.columnComment}", ${changeClassName}.get${column.capitalColumnName}());
<#else>
map.put(" ${column.changeColumnName}", ${changeClassName}.get${column.capitalColumnName}());
</#if>
</#if>
</#list>
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
} }
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment