serviceImplTemplate.ftl 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package ${bussiPackage}.service.impl.${entityPackage};
  2. import org.springframework.stereotype.Service;
  3. import org.springframework.transaction.annotation.Transactional;
  4. import java.util.List;
  5. import ${bussiPackage}.service.${entityPackage}.${entityName}ServiceI;
  6. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  7. import org.jeecgframework.core.common.exception.BusinessException;
  8. import org.jeecgframework.core.util.MyBeanUtils;
  9. import ${bussiPackage}.entity.${entityPackage}.${entityName}Entity;
  10. <#list subTab as sub>
  11. import ${bussiPackage}.entity.${sub.entityPackage}.${sub.entityName}Entity;
  12. </#list>
  13. @Service("${entityName?uncap_first}Service")
  14. @Transactional
  15. public class ${entityName}ServiceImpl extends CommonServiceImpl implements ${entityName}ServiceI {
  16. public void addMain(${entityName}Entity ${entityName?uncap_first},
  17. <#list subTab as sub>List<${sub.entityName}Entity> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>){
  18. //保存主信息
  19. this.save(${entityName?uncap_first});
  20. <#list subTab as sub>
  21. /**保存-${sub.ftlDescription}*/
  22. for(${sub.entityName}Entity ${sub.entityName?uncap_first}:${sub.entityName?uncap_first}List){
  23. <#list sub.foreignKeys as key>
  24. //外键设置
  25. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  26. ${sub.entityName?uncap_first}.set${key}(${entityName?uncap_first}.get${jeecg_table_id?cap_first}());
  27. <#else>
  28. ${sub.entityName?uncap_first}.set${key}(${entityName?uncap_first}.get${key}());
  29. </#if>
  30. </#list>
  31. this.save(${sub.entityName?uncap_first});
  32. }
  33. </#list>
  34. }
  35. public void updateMain(${entityName}Entity ${entityName?uncap_first},
  36. <#list subTab as sub>List<${sub.entityName}Entity> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
  37. //保存订单主信息
  38. this.saveOrUpdate(${entityName?uncap_first});
  39. //===================================================================================
  40. //获取参数
  41. <#list subTab as sub>
  42. <#list sub.foreignKeys as key>
  43. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  44. Object ${jeecg_table_id}${sub_index} = ${entityName?uncap_first}.get${jeecg_table_id?cap_first}();
  45. <#else>
  46. Object ${key?uncap_first}${sub_index} = ${entityName?uncap_first}.get${key}();
  47. </#if>
  48. </#list>
  49. </#list>
  50. <#list subTab as sub>
  51. //===================================================================================
  52. //1.查询出数据库的明细数据-${sub.ftlDescription}
  53. String hql${sub_index} = "from ${sub.entityName}Entity where 1 = 1<#list sub.foreignKeys as key> AND ${key?uncap_first} = ? </#list>";
  54. List<${sub.entityName}Entity> ${sub.entityName?uncap_first}OldList = this.findHql(hql${sub_index},<#list sub.foreignKeys as key><#if key?lower_case?index_of("${jeecg_table_id}")!=-1>${jeecg_table_id}${sub_index}<#else>${key?uncap_first}${sub_index}</#if><#if key_has_next>,</#if></#list>);
  55. //2.筛选更新明细数据-${sub.ftlDescription}
  56. for(${sub.entityName}Entity oldE:${sub.entityName?uncap_first}OldList){
  57. boolean isUpdate = false;
  58. for(${sub.entityName}Entity sendE:${sub.entityName?uncap_first}List){
  59. //需要更新的明细数据-${sub.ftlDescription}
  60. if(oldE.getId().equals(sendE.getId())){
  61. try {
  62. MyBeanUtils.copyBeanNotNull2Bean(sendE,oldE);
  63. this.saveOrUpdate(oldE);
  64. } catch (Exception e) {
  65. e.printStackTrace();
  66. throw new BusinessException(e.getMessage());
  67. }
  68. isUpdate= true;
  69. break;
  70. }
  71. }
  72. if(!isUpdate){
  73. //如果数据库存在的明细,前台没有传递过来则是删除-${sub.ftlDescription}
  74. super.delete(oldE);
  75. }
  76. }
  77. //3.持久化新增的数据-${sub.ftlDescription}
  78. for(${sub.entityName}Entity ${sub.entityName?uncap_first}:${sub.entityName?uncap_first}List){
  79. if(${sub.entityName?uncap_first}.getId()==null){
  80. //外键设置
  81. <#list sub.foreignKeys as key>
  82. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  83. ${sub.entityName?uncap_first}.set${key}(${entityName?uncap_first}.get${jeecg_table_id?cap_first}());
  84. <#else>
  85. ${sub.entityName?uncap_first}.set${key}(${entityName?uncap_first}.get${key}());
  86. </#if>
  87. </#list>
  88. this.save(${sub.entityName?uncap_first});
  89. }
  90. }
  91. </#list>
  92. }
  93. public void delMain(${entityName}Entity ${entityName?uncap_first}) {
  94. //删除主表信息
  95. this.delete(${entityName?uncap_first});
  96. //===================================================================================
  97. //获取参数
  98. <#list subTab as sub>
  99. <#list sub.foreignKeys as key>
  100. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  101. Object ${jeecg_table_id}${sub_index} = ${entityName?uncap_first}.get${jeecg_table_id?cap_first}();
  102. <#else>
  103. Object ${key?uncap_first}${sub_index} = ${entityName?uncap_first}.get${key}();
  104. </#if>
  105. </#list>
  106. </#list>
  107. <#list subTab as sub>
  108. //===================================================================================
  109. //删除-${sub.ftlDescription}
  110. String hql${sub_index} = "from ${sub.entityName}Entity where 1 = 1<#list sub.foreignKeys as key> AND ${key?uncap_first} = ? </#list>";
  111. List<${sub.entityName}Entity> ${sub.entityName?uncap_first}OldList = this.findHql(hql${sub_index},<#list sub.foreignKeys as key><#if key?lower_case?index_of("${jeecg_table_id}")!=-1>${jeecg_table_id}${sub_index}<#else>${key?uncap_first}${sub_index}</#if><#if key_has_next>,</#if></#list>);
  112. this.deleteAllEntitie(${sub.entityName?uncap_first}OldList);
  113. </#list>
  114. }
  115. }