manager.ftl 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <#import "function.ftl" as func>
  2. <#assign package=model.variables.package>
  3. <#assign comment=model.tabComment>
  4. <#assign class=model.variables.class>
  5. <#assign classVar=model.variables.classVar>
  6. <#assign system=vars.system>
  7. <#assign domain=vars.domain>
  8. <#assign pkType=func.getPkType(model)>
  9. <#assign subtables=model.subTableList>
  10. <#assign sub=model.sub>
  11. <#assign subSize=func.hasSubTable(model)>
  12. package ${domain}.${system}.${package}.service;
  13. import cn.hutool.core.bean.BeanUtil;
  14. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  15. import ${domain}.common.base.db.BaseDao;
  16. import ${domain}.common.base.db.BaseService;
  17. import ${domain}.common.tool.IdGenerator;
  18. import ${domain}.common.service.impl.SuperServiceImpl;
  19. import ${domain}.${system}.${package}.entity.${class};
  20. import ${domain}.${system}.${package}.mapper.${class}Mapper;
  21. import org.springframework.stereotype.Service;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. <#if (model.sub) >
  25. import ${domain}.${system}.${package}.entity.${model.getMainModel().variables.class};
  26. </#if>
  27. import javax.annotation.Resource;
  28. /**
  29. * [${comment}]业务服务类
  30. */
  31. @Service
  32. public class ${class}ServiceImpl extends SuperServiceImpl<${class}Mapper, ${class}> implements BaseService<${class}> {
  33. @Resource
  34. private ${class}Mapper ${classVar}Mapper;
  35. <#if (subSize?number gt 0) >
  36. <#assign subtables=model.subTableList>
  37. <#list subtables as subTable>
  38. @Resource
  39. private ${subTable.variables.class}ServiceImpl ${subTable.variables.classVar}ServiceImpl;
  40. </#list>
  41. </#if>
  42. @Override
  43. public BaseDao<${class}> getRepository() {
  44. return ${classVar}Mapper;
  45. }
  46. <#if (model.sub) >
  47. /**
  48. 根据子表外键删除子表数据
  49. */
  50. public void removeByFk(String pid){
  51. QueryWrapper wrapper=new QueryWrapper();
  52. wrapper.eq("${model.getForeignKey()}",pid);
  53. ${classVar}Mapper.delete(wrapper);
  54. }
  55. /**
  56. 插入子表数据,设定ID和外键
  57. */
  58. public void addList(${model.getMainModel().variables.class} entity){
  59. for(${class} ${classVar}:entity.get${class}()){
  60. ${classVar}.setId(IdGenerator.getIdStr());
  61. ${classVar}.set${func.convertUnderLine(model.getForeignKey())?cap_first}(entity.getId());
  62. ${classVar}Mapper.insert(${classVar});
  63. }
  64. }
  65. /**
  66. 根据子表外键获取数据
  67. */
  68. public List<${class}> getByFk(String fk){
  69. QueryWrapper wrapper=new QueryWrapper<${class}>();
  70. wrapper.eq("${model.getForeignKey()}",fk);
  71. return ${classVar}Mapper.selectList(wrapper);
  72. }
  73. <#elseif (subSize?number gt 0)>
  74. <#assign subtables=model.subTableList>
  75. /**
  76. 当主表数据为新增的情况下,子表也要根据外键同时添加数据
  77. */
  78. @Override
  79. public int insert(${class} entity) {
  80. if(BeanUtil.isEmpty(entity.getPkId())) {
  81. entity.setPkId(IdGenerator.getIdStr());
  82. }
  83. <#list subtables as subTable>
  84. ${subTable.variables.classVar}ServiceImpl.addList(entity);
  85. </#list>
  86. return getRepository().insert(entity);
  87. }
  88. /**
  89. 更新数据的情况下,先根据外键删除子表的数据,然后直接插入新增的数据
  90. */
  91. @Override
  92. public int update(${class} entity) {
  93. int rtn= ${classVar}Mapper.updateById(entity);
  94. <#list subtables as subTable>
  95. ${subTable.variables.classVar}ServiceImpl.removeByFk(entity.getPkId());
  96. ${subTable.variables.classVar}ServiceImpl.addList(entity);
  97. </#list>
  98. return rtn;
  99. }
  100. </#if>
  101. }