serviceImpl.java.vm 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. package ${packageName}.admin.service.${moduleName}.impl;
  2. #if(!$table.genTpl.equals("crud"))
  3. import com.alibaba.fastjson.JSONArray;
  4. #end
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.baomidou.mybatisplus.core.metadata.IPage;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.github.yulichang.query.MPJQueryWrapper;
  9. import ${packageName}.admin.service.${moduleName}.I${EntityName}Service;
  10. import ${packageName}.admin.validate.common.PageParam;
  11. import ${packageName}.admin.validate.${moduleName}.${EntityName}Param;
  12. import ${packageName}.admin.vo.${moduleName}.${EntityName}ListVo;
  13. import ${packageName}.admin.vo.${moduleName}.${EntityName}DetailVo;
  14. import ${packageName}.common.core.PageResult;
  15. import ${packageName}.common.entity.${moduleName}.${EntityName};
  16. import ${packageName}.common.mapper.${moduleName}.${EntityName}Mapper;
  17. import ${packageName}.common.utils.ArrayUtil;
  18. import ${packageName}.common.utils.TimeUtil;
  19. import ${packageName}.common.utils.UrlUtil;
  20. import ${packageName}.common.config.GlobalConfig;
  21. import org.springframework.beans.BeanUtils;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.util.Assert;
  24. import javax.annotation.Resource;
  25. import java.util.*;
  26. /**
  27. * ${functionName}实现类
  28. */
  29. @Service
  30. public class ${EntityName}ServiceImpl implements I${EntityName}Service {
  31. ## 设置模板方式的变量
  32. #if($table.genTpl.equals("crud"))
  33. #set($genTpl = "PageResult<${EntityName}ListVo>")
  34. #if($isSearch)
  35. #set($isSearchParam = true)
  36. #set($genParam = "PageParam pageParam, Map<String, String> params")
  37. #else
  38. #set($isSearchParam = false)
  39. #set($genParam = "PageParam pageParam")
  40. #end
  41. #else
  42. #set($genTpl = "JSONArray")
  43. #if($isSearch)
  44. #set($isSearchParam = true)
  45. #set($genParam = "Map<String, String> params")
  46. #else
  47. #set($isSearchParam = false)
  48. #set($genParam = "")
  49. #end
  50. #end
  51. ## 设置基本的参数变量
  52. #set($isAuthor = !$authorName.equals(""))
  53. #set($pageParam = "@param pageParam 分页参数")
  54. #set($searchparams = "@param params 搜索参数")
  55. @Resource
  56. ${EntityName}Mapper ${entityName}Mapper;
  57. /**
  58. * ${functionName}列表
  59. *
  60. #if($isAuthor)
  61. * @author ${authorName}
  62. #end
  63. #if($table.genTpl.equals("crud"))
  64. * ${pageParam}
  65. #end
  66. #if($isSearchParam)
  67. * ${searchparams}
  68. #end
  69. * @return $genTpl
  70. */
  71. @Override
  72. public $genTpl list($genParam) {
  73. #if($table.genTpl.equals("crud"))
  74. Integer page = pageParam.getPageNo();
  75. Integer limit = pageParam.getPageSize();
  76. #end
  77. #if(!$table.subTableName.equals("") && !$table.subTableFk.equals(""))
  78. #set($queryWrapper = "mpjQueryWrapper")
  79. MPJQueryWrapper<${EntityName}> mpjQueryWrapper = new MPJQueryWrapper<>();
  80. mpjQueryWrapper.innerJoin("?_$table.subTableName f ON f.$table.SubTableFk=t.id".replace("?_", GlobalConfig.tablePrefix));
  81. #if($allFields.contains("is_delete"))
  82. mpjQueryWrapper.eq("is_delete", 0);
  83. #end
  84. #if($allFields.contains("sort"))
  85. mpjQueryWrapper.orderByDesc(Arrays.asList("sort", "id"));
  86. #else
  87. mpjQueryWrapper.orderByDesc("id");
  88. #end
  89. #else
  90. #set($queryWrapper = "queryWrapper")
  91. QueryWrapper<${EntityName}> queryWrapper = new QueryWrapper<>();
  92. #if($allFields.contains("is_delete"))
  93. queryWrapper.eq("is_delete", 0);
  94. #end
  95. #if($allFields.contains("sort"))
  96. queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
  97. #else
  98. queryWrapper.orderByDesc("id");
  99. #end
  100. #end
  101. #if($isSearch)
  102. ${entityName}Mapper.setSearch($queryWrapper, params, new String[]{
  103. #foreach ($column in $columns)
  104. #if($column.isQuery)
  105. #if($dateFields.contains($column.columnName))
  106. "datetime:${column.javaField}Start-${column.javaField}End@${column.columnName}:str",
  107. #elseif($column.javaType=="Integer")
  108. #if($column.javaField.equals($column.columnName))
  109. "${column.queryType.toLowerCase()}:${column.javaField}:int",
  110. #else
  111. "${column.queryType.toLowerCase()}:${column.javaField}@${column.columnName}:int",
  112. #end
  113. #elseif($column.javaType=="Long")
  114. #if($column.javaField.equals($column.columnName))
  115. "${column.queryType.toLowerCase()}:${column.javaField}:long",
  116. #else
  117. "${column.queryType.toLowerCase()}:${column.javaField}@${column.columnName}:long",
  118. #end
  119. #else
  120. #if($column.javaField.equals($column.columnName))
  121. "${column.queryType.toLowerCase()}:${column.javaField}:str",
  122. #else
  123. "${column.queryType.toLowerCase()}:${column.javaField}@${column.columnName}:str",
  124. #end
  125. #end
  126. #end
  127. #end
  128. });
  129. #end
  130. #if(!$table.subTableName.equals("") && !$table.subTableFk.equals(""))
  131. #set($isJoin = true)
  132. #set($joinCrudList = "${EntityName}ListVo")
  133. #set($joinCrudName = "iPage.getRecords()")
  134. #if($table.genTpl.equals("crud"))
  135. IPage<${EntityName}ListVo> iPage = ${entityName}Mapper.selectJoinPage(
  136. new Page<>(page, limit),
  137. ${EntityName}ListVo.class,
  138. $queryWrapper);
  139. #else
  140. List<${EntityName}ListVo> iPage = ${entityName}Mapper.selectJoinList(
  141. ${EntityName}ListVo.class,
  142. $queryWrapper);
  143. #end
  144. #else
  145. #set($isJoin = false)
  146. #set($joinCrudList = "${EntityName}")
  147. #if($table.genTpl.equals("crud"))
  148. #set($joinCrudName = "iPage.getRecords()")
  149. IPage<${EntityName}> iPage = ${entityName}Mapper.selectPage(new Page<>(page, limit), $queryWrapper);
  150. #else
  151. #set($joinCrudName = "array")
  152. List<${EntityName}> array = ${entityName}Mapper.selectList($queryWrapper);
  153. #end
  154. #end
  155. #set($filter = false)
  156. #if($listFields.contains("create_time") || $listFields.contains("update_time") ||
  157. $listFields.contains("delete_time") || $listFields.contains("start_time") ||
  158. $listFields.contains("end_time") || $listFields.contains("image") ||
  159. $listFields.contains("avatar") || $listFields.contains("logo") ||
  160. $listFields.contains("img"))
  161. #set($filter = true)
  162. #if(!$isJoin)
  163. List<${EntityName}ListVo> list = new LinkedList<>();
  164. #end
  165. for($joinCrudList item : $joinCrudName) {
  166. #if(!$isJoin)
  167. ${EntityName}ListVo vo = new ${EntityName}ListVo();
  168. BeanUtils.copyProperties(item, vo);
  169. #if($listFields.contains("image"))
  170. vo.setImage(UrlUtil.toAbsoluteUrl(item.getImage()));
  171. #end
  172. #if($listFields.contains("avatar"))
  173. vo.setAvatar(UrlUtil.toAbsoluteUrl(item.getAvatar()));
  174. #end
  175. #if($listFields.contains("logo"))
  176. vo.setLogo(UrlUtil.toAbsoluteUrl(item.getLogo()));
  177. #end
  178. #if($listFields.contains("img"))
  179. vo.setImg(UrlUtil.toAbsoluteUrl(item.getImg()));
  180. #end
  181. #if($listFields.contains("create_time"))
  182. vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
  183. #end
  184. #if($listFields.contains("update_time"))
  185. vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
  186. #end
  187. #if($listFields.contains("delete_time"))
  188. vo.setDeleteTime(TimeUtil.timestampToDate(item.getDeleteTime()));
  189. #end
  190. #if($listFields.contains("start_time"))
  191. vo.setStartTime(TimeUtil.timestampToDate(item.getStartTime()));
  192. #end
  193. #if($listFields.contains("end_time"))
  194. vo.setEndTime(TimeUtil.timestampToDate(item.getEndTime()));
  195. #end
  196. list.add(vo);
  197. #else
  198. #if($listFields.contains("image"))
  199. item.setImage(UrlUtil.toAbsoluteUrl(item.getImage()));
  200. #end
  201. #if($listFields.contains("avatar"))
  202. item.setAvatar(UrlUtil.toAbsoluteUrl(item.getAvatar()));
  203. #end
  204. #if($listFields.contains("logo"))
  205. item.setLogo(UrlUtil.toAbsoluteUrl(item.getLogo()));
  206. #end
  207. #if($listFields.contains("img"))
  208. item.setImg(UrlUtil.toAbsoluteUrl(item.getImg()));
  209. #end
  210. #if($listFields.contains("create_time"))
  211. item.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
  212. #end
  213. #if($listFields.contains("update_time"))
  214. item.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
  215. #end
  216. #if($listFields.contains("delete_time"))
  217. item.setDeleteTime(TimeUtil.timestampToDate(item.getDeleteTime()));
  218. #end
  219. #if($listFields.contains("start_time"))
  220. item.setStartTime(TimeUtil.timestampToDate(item.getStartTime()));
  221. #end
  222. #if($listFields.contains("end_time"))
  223. item.setEndTime(TimeUtil.timestampToDate(item.getEndTime()));
  224. #end
  225. #end
  226. }
  227. #end
  228. #if($table.genTpl.equals("crud"))
  229. #if($isJoin)
  230. return PageResult.iPageHandle(iPage);
  231. #else
  232. return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
  233. #end
  234. #else
  235. #if($filter)
  236. JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(list));
  237. #else
  238. JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(array));
  239. #end
  240. return ArrayUtil.listToTree(jsonArray, "${table.treePrimary}", "${table.treeParent}", "children");
  241. #end
  242. }
  243. /**
  244. * ${functionName}详情
  245. *
  246. #if($isAuthor)
  247. * @author ${authorName}
  248. #end
  249. * @param id 主键参数
  250. * @return ${EntityName}
  251. */
  252. @Override
  253. public ${EntityName}DetailVo detail(Integer id) {
  254. ${EntityName} model = ${entityName}Mapper.selectOne(
  255. new QueryWrapper<${EntityName}>()
  256. .eq("id", id)
  257. #if($allFields.contains("is_delete"))
  258. .eq("is_delete", 0)
  259. #end
  260. .last("limit 1"));
  261. Assert.notNull(model, "数据不存在");
  262. ${EntityName}DetailVo vo = new ${EntityName}DetailVo();
  263. BeanUtils.copyProperties(model, vo);
  264. #if($detailFields.contains("create_time") || $detailFields.contains("update_time") ||
  265. $detailFields.contains("delete_time") || $detailFields.contains("start_time") ||
  266. $detailFields.contains("end_time") || $detailFields.contains("image") ||
  267. $detailFields.contains("avatar") || $detailFields.contains("logo") ||
  268. $detailFields.contains("img"))
  269. #if($detailFields.contains("image"))
  270. vo.setImage(UrlUtil.toAbsoluteUrl(model.getImage()));
  271. #end
  272. #if($detailFields.contains("avatar"))
  273. vo.setAvatar(UrlUtil.toAbsoluteUrl(model.getAvatar()));
  274. #end
  275. #if($detailFields.contains("logo"))
  276. vo.setLogo(UrlUtil.toAbsoluteUrl(model.getLogo()));
  277. #end
  278. #if($detailFields.contains("img"))
  279. vo.setImg(UrlUtil.toAbsoluteUrl(model.getImg()));
  280. #end
  281. #if($detailFields.contains("create_time"))
  282. vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime()));
  283. #end
  284. #if($detailFields.contains("update_time"))
  285. vo.setUpdateTime(TimeUtil.timestampToDate(model.getUpdateTime()));
  286. #end
  287. #if($detailFields.contains("delete_time"))
  288. vo.setDeleteTime(TimeUtil.timestampToDate(model.getDeleteTime()));
  289. #end
  290. #if($detailFields.contains("start_time"))
  291. vo.setStartTime(TimeUtil.timestampToDate(model.getStartTime()));
  292. #end
  293. #if($detailFields.contains("end_time"))
  294. vo.setEndTime(TimeUtil.timestampToDate(model.getEndTime()));
  295. #end
  296. #end
  297. return vo;
  298. }
  299. /**
  300. * ${functionName}新增
  301. *
  302. #if($isAuthor)
  303. * @author ${authorName}
  304. #end
  305. * @param ${entityName}Param 参数
  306. */
  307. @Override
  308. public void add(${EntityName}Param ${entityName}Param) {
  309. ${EntityName} model = new ${EntityName}();
  310. #foreach ($column in $columns)
  311. #if($column.isInsert)
  312. #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  313. #if($column.javaField.equals("image") || $column.javaField.equals("avatar") || $column.javaField.equals("logo") || $column.javaField.equals("img"))
  314. model.set${AttrName}(UrlUtil.toRelativeUrl(${entityName}Param.get${AttrName}()));
  315. #elseif(!$dateFields.contains($column.columnName) and !$column.javaField.equals("isDelete"))
  316. model.set${AttrName}(${entityName}Param.get${AttrName}());
  317. #elseif($column.htmlType=="datetime")
  318. model.set${AttrName}(TimeUtil.dateToTimestamp(${entityName}Param.get${AttrName}()));
  319. #end
  320. #end
  321. #end
  322. ${entityName}Mapper.insert(model);
  323. }
  324. /**
  325. * ${functionName}编辑
  326. *
  327. #if($isAuthor)
  328. * @author ${authorName}
  329. #end
  330. * @param ${entityName}Param 参数
  331. */
  332. @Override
  333. public void edit(${EntityName}Param ${entityName}Param) {
  334. ${EntityName} model = ${entityName}Mapper.selectOne(
  335. new QueryWrapper<${EntityName}>()
  336. .eq("id", ${entityName}Param.getId())
  337. #if($allFields.contains("is_delete"))
  338. .eq("is_delete", 0)
  339. #end
  340. .last("limit 1"));
  341. Assert.notNull(model, "数据不存在!");
  342. #foreach ($column in $columns)
  343. #if($column.isEdit==1)
  344. #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  345. #if($column.javaField.equals("image") || $column.javaField.equals("avatar") || $column.javaField.equals("logo") || $column.javaField.equals("img"))
  346. model.set${AttrName}(UrlUtil.toRelativeUrl(${entityName}Param.get${AttrName}()));
  347. #elseif(!$dateFields.contains($column.columnName) and !$column.javaField.equals("isDelete"))
  348. model.set${AttrName}(${entityName}Param.get${AttrName}());
  349. #elseif($column.htmlType=="datetime")
  350. model.set${AttrName}(TimeUtil.dateToTimestamp(${entityName}Param.get${AttrName}()));
  351. #end
  352. #end
  353. #end
  354. ${entityName}Mapper.updateById(model);
  355. }
  356. /**
  357. * ${functionName}删除
  358. *
  359. #if($isAuthor)
  360. * @author ${authorName}
  361. #end
  362. * @param id 主键ID
  363. */
  364. @Override
  365. public void del(Integer id) {
  366. ${EntityName} model = ${entityName}Mapper.selectOne(
  367. new QueryWrapper<${EntityName}>()
  368. .eq("id", id)
  369. #if($allFields.contains("is_delete"))
  370. .eq("is_delete", 0)
  371. #end
  372. .last("limit 1"));
  373. Assert.notNull(model, "数据不存在!");
  374. #if($allFields.contains("is_delete"))
  375. model.setIsDelete(1);
  376. #if($allFields.contains("delete_time"))
  377. model.setDeleteTime(System.currentTimeMillis() / 1000);
  378. #end
  379. ${entityName}Mapper.updateById(model);
  380. #else
  381. ${entityName}Mapper.delete(new QueryWrapper<${EntityName}>().eq("id", id));
  382. #end
  383. }
  384. }