主子Contoller.java 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. package ${package}.${moduleName}.controller;
  2. #if($queryList)
  3. import cn.hutool.core.util.StrUtil;
  4. #end
  5. import cn.hutool.core.util.ArrayUtil;
  6. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  8. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9. import ${package}.common.core.util.R;
  10. import ${package}.common.log.annotation.SysLog;
  11. #if($opensource)
  12. import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
  13. import com.pig4cloud.plugin.excel.annotation.RequestExcel;
  14. #else
  15. import ${package}.common.excel.annotation.ResponseExcel;
  16. import ${package}.common.excel.annotation.RequestExcel;
  17. #end
  18. import ${package}.${moduleName}.entity.${ClassName}Entity;
  19. import ${package}.${moduleName}.entity.${ChildClassName}Entity;
  20. import ${package}.${moduleName}.service.${ClassName}Service;
  21. import io.swagger.v3.oas.annotations.security.SecurityRequirement;
  22. #if($isSpringBoot3)
  23. import ${package}.common.security.annotation.HasPermission;
  24. import org.springdoc.core.annotations.ParameterObject;
  25. #else
  26. import org.springframework.security.access.prepost.PreAuthorize;
  27. import org.springdoc.api.annotations.ParameterObject;
  28. #end
  29. import org.springframework.http.HttpHeaders;
  30. import io.swagger.v3.oas.annotations.tags.Tag;
  31. import io.swagger.v3.oas.annotations.Operation;
  32. import lombok.RequiredArgsConstructor;
  33. import org.springframework.validation.BindingResult;
  34. import org.springframework.web.bind.annotation.*;
  35. import java.util.List;
  36. import java.util.Objects;
  37. /**
  38. * ${tableComment}
  39. *
  40. * @author ${author}
  41. * @date ${datetime}
  42. */
  43. @RestController
  44. @RequiredArgsConstructor
  45. @RequestMapping("/${functionName}" )
  46. @Tag(description = "${functionName}" , name = "${tableComment}管理" )
  47. @SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
  48. public class ${ClassName}Controller {
  49. private final ${ClassName}Service ${className}Service;
  50. /**
  51. * 分页查询
  52. * @param page 分页对象
  53. * @param ${className} ${tableComment}
  54. * @return
  55. */
  56. @Operation(summary = "分页查询" , description = "分页查询" )
  57. @GetMapping("/page" )
  58. #if($isSpringBoot3)
  59. @HasPermission("$str.lowerCase($moduleName)_$str.lowerCase($functionName)_view")
  60. #else
  61. @PreAuthorize("@pms.hasPermission('$str.lowerCase($moduleName)_$str.lowerCase($functionName)_view')" )
  62. #end
  63. public R get${ClassName}Page(@ParameterObject Page page, @ParameterObject ${ClassName}Entity ${className}) {
  64. LambdaQueryWrapper<${ClassName}Entity> wrapper = Wrappers.lambdaQuery();
  65. #foreach ($field in $queryList)
  66. #set($getAttrName=$str.getProperty($field.attrName))
  67. #set($var="${className}.$getAttrName()")
  68. #if($field.attrType == 'String')
  69. #set($expression="StrUtil.isNotBlank")
  70. #else
  71. #set($expression="Objects.nonNull")
  72. #end
  73. #if($field.queryFormType == 'daterange' || $field.queryFormType == 'datetimerange')
  74. if (ArrayUtil.isNotEmpty(${className}.${getAttrName}Range())) {
  75. wrapper.between(${ClassName}Entity::$getAttrName, ${className}.${getAttrName}Range()[0], ${className}.${getAttrName}Range()[1]);
  76. }
  77. #elseif($field.queryType == '=')
  78. wrapper.eq($expression($var),${ClassName}Entity::$getAttrName,$var);
  79. #elseif( $field.queryType == 'like' )
  80. wrapper.like($expression($var),${ClassName}Entity::$getAttrName,$var);
  81. #elseif( $field.queryType == '!-' )
  82. wrapper.ne($expression($var),${ClassName}Entity::$getAttrName,$var);
  83. #elseif( $field.queryType == '>' )
  84. wrapper.gt($expression($var),${ClassName}Entity::$getAttrName,$var);
  85. #elseif( $field.queryType == '<' )
  86. wrapper.lt($expression($var),${ClassName}Entity::$getAttrName,$var);
  87. #elseif( $field.queryType == '>=' )
  88. wrapper.ge($expression($var),${ClassName}Entity::$getAttrName,$var);
  89. #elseif( $field.queryType == '<=' )
  90. wrapper.le($expression($var),${ClassName}Entity::$getAttrName,$var);
  91. #elseif( $field.queryType == 'left like' )
  92. wrapper.likeLeft($expression($var),${ClassName}Entity::$getAttrName,$var);
  93. #elseif( $field.queryType == 'right like' )
  94. wrapper.likeRight($expression($var),${ClassName}Entity::$getAttrName,$var);
  95. #end
  96. #end
  97. return R.ok(${className}Service.page(page, wrapper));
  98. }
  99. /**
  100. * 通过条件查询${tableComment}
  101. * @param ${className} 查询条件
  102. * @return R 对象列表
  103. */
  104. @Operation(summary = "通过条件查询" , description = "通过条件查询对象" )
  105. @GetMapping("/details" )
  106. #if($isSpringBoot3)
  107. @HasPermission("$str.lowerCase($moduleName)_$str.lowerCase($functionName)_view")
  108. #else
  109. @PreAuthorize("@pms.hasPermission('$str.lowerCase($moduleName)_$str.lowerCase($functionName)_view')" )
  110. #end
  111. public R getDetails(@ParameterObject ${ClassName}Entity ${className}) {
  112. return R.ok(${className}Service.listDeep(Wrappers.query(${className})));
  113. }
  114. /**
  115. * 新增${tableComment}
  116. * @param ${className} ${tableComment}
  117. * @return R
  118. */
  119. @Operation(summary = "新增${tableComment}" , description = "新增${tableComment}" )
  120. @SysLog("新增${tableComment}" )
  121. @PostMapping
  122. #if($isSpringBoot3)
  123. @HasPermission("$str.lowerCase($moduleName)_$str.lowerCase($functionName)_add")
  124. #else
  125. @PreAuthorize("@pms.hasPermission('$str.lowerCase($moduleName)_$str.lowerCase($functionName)_add')" )
  126. #end
  127. public R save(@RequestBody ${ClassName}Entity ${className}) {
  128. return R.ok(${className}Service.saveDeep(${className}));
  129. }
  130. /**
  131. * 修改${tableComment}
  132. * @param ${className} ${tableComment}
  133. * @return R
  134. */
  135. @Operation(summary = "修改${tableComment}" , description = "修改${tableComment}" )
  136. @SysLog("修改${tableComment}" )
  137. @PutMapping
  138. #if($isSpringBoot3)
  139. @HasPermission("$str.lowerCase($moduleName)_$str.lowerCase($functionName)_edit")
  140. #else
  141. @PreAuthorize("@pms.hasPermission('$str.lowerCase($moduleName)_$str.lowerCase($functionName)_edit')" )
  142. #end
  143. public R updateById(@RequestBody ${ClassName}Entity ${className}) {
  144. return R.ok(${className}Service.updateDeep(${className}));
  145. }
  146. /**
  147. * 通过id删除${tableComment}
  148. * @param ids ${pk.attrName}列表
  149. * @return R
  150. */
  151. @Operation(summary = "通过id删除${tableComment}" , description = "通过id删除${tableComment}" )
  152. @SysLog("通过id删除${tableComment}" )
  153. @DeleteMapping
  154. #if($isSpringBoot3)
  155. @HasPermission("$str.lowerCase($moduleName)_$str.lowerCase($functionName)_del")
  156. #else
  157. @PreAuthorize("@pms.hasPermission('$str.lowerCase($moduleName)_$str.lowerCase($functionName)_del')" )
  158. #end
  159. public R removeById(@RequestBody ${pk.attrType}[] ids) {
  160. return R.ok(${className}Service.removeDeep(ids));
  161. }
  162. /**
  163. * 通过id删除${tableComment}子表数据
  164. * @param ids ${pk.attrName}列表
  165. * @return R
  166. */
  167. @Operation(summary = "通过id删除${tableComment}子表数据" , description = "通过id删除${tableComment}子表数据" )
  168. @SysLog("通过id删除${tableComment}子表数据" )
  169. @DeleteMapping("/child")
  170. #if($isSpringBoot3)
  171. @HasPermission("$str.lowerCase($moduleName)_$str.lowerCase($functionName)_del")
  172. #else
  173. @PreAuthorize("@pms.hasPermission('$str.lowerCase($moduleName)_$str.lowerCase($functionName)_del')" )
  174. #end
  175. public R removeChild(@RequestBody ${pk.attrType}[] ids) {
  176. return R.ok(${className}Service.removeChild(ids));
  177. }
  178. /**
  179. * 导出excel 表格
  180. * @param ${className} 查询条件
  181. * @param ids 导出指定ID
  182. * @return excel 文件流
  183. */
  184. @ResponseExcel
  185. @GetMapping("/export")
  186. #if($isSpringBoot3)
  187. @HasPermission("$str.lowerCase($moduleName)_$str.lowerCase($functionName)_export")
  188. #else
  189. @PreAuthorize("@pms.hasPermission('$str.lowerCase($moduleName)_$str.lowerCase($functionName)_export')" )
  190. #end
  191. public List<${ClassName}Entity> exportExcel(${ClassName}Entity ${className},${pk.attrType}[] ids) {
  192. return ${className}Service.list(Wrappers.lambdaQuery(${className}).in(ArrayUtil.isNotEmpty(ids), ${ClassName}Entity::$str.getProperty($pk.attrName), ids));
  193. }
  194. /**
  195. * 导入excel 表
  196. * @param ${className}List 对象实体列表
  197. * @param bindingResult 错误信息列表
  198. * @return ok fail
  199. */
  200. @PostMapping("/import")
  201. #if($isSpringBoot3)
  202. @HasPermission("$str.lowerCase($moduleName)_$str.lowerCase($functionName)_export")
  203. #else
  204. @PreAuthorize("@pms.hasPermission('$str.lowerCase($moduleName)_$str.lowerCase($functionName)_export')" )
  205. #end
  206. public R importExcel(@RequestExcel List<${ClassName}Entity> ${className}List, BindingResult bindingResult) {
  207. return R.ok(${className}Service.saveBatch(${className}List));
  208. }
  209. }