图书馆智能管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

142 lines
5.6 KiB

5 months ago
  1. package ${package}.service.impl;
  2. import ${package}.domain.${className};
  3. <#if columns??>
  4. <#list columns as column>
  5. <#if column.columnKey = 'UNI'>
  6. <#if column_index = 1>
  7. import me.zhengjie.exception.EntityExistException;
  8. </#if>
  9. </#if>
  10. </#list>
  11. </#if>
  12. import com.yxkadmin.utils.ValidationUtil;
  13. import com.yxkadmin.utils.FileUtil;
  14. import lombok.RequiredArgsConstructor;
  15. import ${package}.repository.${className}Repository;
  16. import ${package}.service.${className}Service;
  17. import ${package}.service.dto.${className}Dto;
  18. import ${package}.service.dto.${className}QueryCriteria;
  19. import ${package}.service.mapstruct.${className}Mapper;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.transaction.annotation.Transactional;
  22. <#if !auto && pkColumnType = 'Long'>
  23. import cn.hutool.core.lang.Snowflake;
  24. import cn.hutool.core.util.IdUtil;
  25. </#if>
  26. <#if !auto && pkColumnType = 'String'>
  27. import cn.hutool.core.util.IdUtil;
  28. </#if>
  29. import org.springframework.data.domain.Page;
  30. import org.springframework.data.domain.Pageable;
  31. import com.yxkadmin.utils.PageUtil;
  32. import com.yxkadmin.utils.QueryHelp;
  33. import java.util.List;
  34. import java.util.Map;
  35. import java.io.IOException;
  36. import javax.servlet.http.HttpServletResponse;
  37. import java.util.ArrayList;
  38. import java.util.LinkedHashMap;
  39. /**
  40. * @website https://yxk-admin.vip
  41. * @description 服务实现
  42. * @author ${author}
  43. * @date ${date}
  44. **/
  45. @Service
  46. @RequiredArgsConstructor
  47. public class ${className}ServiceImpl implements ${className}Service {
  48. private final ${className}Repository ${changeClassName}Repository;
  49. private final ${className}Mapper ${changeClassName}Mapper;
  50. @Override
  51. public Map<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable){
  52. Page<${className}> page = ${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
  53. return PageUtil.toPage(page.map(${changeClassName}Mapper::toDto));
  54. }
  55. @Override
  56. public List<${className}Dto> queryAll(${className}QueryCriteria criteria){
  57. return ${changeClassName}Mapper.toDto(${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
  58. }
  59. @Override
  60. @Transactional
  61. public ${className}Dto findById(${pkColumnType} ${pkChangeColName}) {
  62. ${className} ${changeClassName} = ${changeClassName}Repository.findById(${pkChangeColName}).orElseGet(${className}::new);
  63. ValidationUtil.isNull(${changeClassName}.get${pkCapitalColName}(),"${className}","${pkChangeColName}",${pkChangeColName});
  64. return ${changeClassName}Mapper.toDto(${changeClassName});
  65. }
  66. @Override
  67. @Transactional(rollbackFor = Exception.class)
  68. public ${className}Dto create(${className} resources) {
  69. <#if !auto && pkColumnType = 'Long'>
  70. Snowflake snowflake = IdUtil.createSnowflake(1, 1);
  71. resources.set${pkCapitalColName}(snowflake.nextId());
  72. </#if>
  73. <#if !auto && pkColumnType = 'String'>
  74. resources.set${pkCapitalColName}(IdUtil.simpleUUID());
  75. </#if>
  76. <#if columns??>
  77. <#list columns as column>
  78. <#if column.columnKey = 'UNI'>
  79. if(${changeClassName}Repository.findBy${column.capitalColumnName}(resources.get${column.capitalColumnName}()) != null){
  80. throw new EntityExistException(${className}.class,"${column.columnName}",resources.get${column.capitalColumnName}());
  81. }
  82. </#if>
  83. </#list>
  84. </#if>
  85. return ${changeClassName}Mapper.toDto(${changeClassName}Repository.save(resources));
  86. }
  87. @Override
  88. @Transactional(rollbackFor = Exception.class)
  89. public void update(${className} resources) {
  90. ${className} ${changeClassName} = ${changeClassName}Repository.findById(resources.get${pkCapitalColName}()).orElseGet(${className}::new);
  91. ValidationUtil.isNull( ${changeClassName}.get${pkCapitalColName}(),"${className}","id",resources.get${pkCapitalColName}());
  92. <#if columns??>
  93. <#list columns as column>
  94. <#if column.columnKey = 'UNI'>
  95. <#if column_index = 1>
  96. ${className} ${changeClassName}1 = null;
  97. </#if>
  98. ${changeClassName}1 = ${changeClassName}Repository.findBy${column.capitalColumnName}(resources.get${column.capitalColumnName}());
  99. if(${changeClassName}1 != null && !${changeClassName}1.get${pkCapitalColName}().equals(${changeClassName}.get${pkCapitalColName}())){
  100. throw new EntityExistException(${className}.class,"${column.columnName}",resources.get${column.capitalColumnName}());
  101. }
  102. </#if>
  103. </#list>
  104. </#if>
  105. ${changeClassName}.copy(resources);
  106. ${changeClassName}Repository.save(${changeClassName});
  107. }
  108. @Override
  109. public void deleteAll(${pkColumnType}[] ids) {
  110. for (${pkColumnType} ${pkChangeColName} : ids) {
  111. ${changeClassName}Repository.deleteById(${pkChangeColName});
  112. }
  113. }
  114. @Override
  115. public void download(List<${className}Dto> all, HttpServletResponse response) throws IOException {
  116. List<Map<String, Object>> list = new ArrayList<>();
  117. for (${className}Dto ${changeClassName} : all) {
  118. Map<String,Object> map = new LinkedHashMap<>();
  119. <#list columns as column>
  120. <#if column.columnKey != 'PRI'>
  121. <#if column.remark != ''>
  122. map.put("${column.remark}", ${changeClassName}.get${column.capitalColumnName}());
  123. <#else>
  124. map.put(" ${column.changeColumnName}", ${changeClassName}.get${column.capitalColumnName}());
  125. </#if>
  126. </#if>
  127. </#list>
  128. list.add(map);
  129. }
  130. FileUtil.downloadExcel(list, response);
  131. }
  132. }