cgform_serviceImplTemplate.ftl 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <#if packageStyle == "service">
  2. package ${bussiPackage}.${entityPackage}.service.impl;
  3. import ${bussiPackage}.${entityPackage}.service.${entityName}ServiceI;
  4. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  5. import ${bussiPackage}.${entityPackage}.entity.${entityName}Entity;
  6. <#list subTab as sub>
  7. import ${bussiPackage}.${sub.entityPackage}.entity.${sub.entityName}Entity;
  8. </#list>
  9. <#else>
  10. package ${bussiPackage}.service.impl.${entityPackage};
  11. import ${bussiPackage}.service.${entityPackage}.${entityName}ServiceI;
  12. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  13. import ${bussiPackage}.entity.${entityPackage}.${entityName}Entity;
  14. <#list subTab as sub>
  15. import ${bussiPackage}.entity.${sub.entityPackage}.${sub.entityName}Entity;
  16. </#list>
  17. </#if>
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.transaction.annotation.Transactional;
  20. import java.util.List;
  21. import org.jeecgframework.core.common.exception.BusinessException;
  22. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  23. import org.jeecgframework.core.util.MyBeanUtils;
  24. import org.jeecgframework.core.util.StringUtil;
  25. import org.jeecgframework.core.util.oConvertUtils;
  26. import java.util.ArrayList;
  27. import java.util.UUID;
  28. import java.io.Serializable;
  29. @Service("${entityName?uncap_first}Service")
  30. @Transactional
  31. public class ${entityName}ServiceImpl extends CommonServiceImpl implements ${entityName}ServiceI {
  32. public <T> void delete(T entity) {
  33. super.delete(entity);
  34. //执行删除操作配置的sql增强
  35. this.doDelSql((${entityName}Entity)entity);
  36. }
  37. public void addMain(${entityName}Entity ${entityName?uncap_first},
  38. <#list subTab as sub>List<${sub.entityName}Entity> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>){
  39. //保存主信息
  40. this.save(${entityName?uncap_first});
  41. <#list subTab as sub>
  42. /**保存-${sub.ftlDescription}*/
  43. for(${sub.entityName}Entity ${sub.entityName?uncap_first}:${sub.entityName?uncap_first}List){
  44. <#list sub.foreignKeys as key>
  45. //外键设置
  46. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  47. ${sub.entityName?uncap_first}.set${subFieldMeta1[key]?cap_first}(${entityName?uncap_first}.get${jeecg_table_id?cap_first}());
  48. <#else>
  49. ${sub.entityName?uncap_first}.set${subFieldMeta1[key]?cap_first}(${entityName?uncap_first}.get${key}());
  50. </#if>
  51. </#list>
  52. this.save(${sub.entityName?uncap_first});
  53. }
  54. </#list>
  55. //执行新增操作配置的sql增强
  56. this.doAddSql(${entityName?uncap_first});
  57. }
  58. public void updateMain(${entityName}Entity ${entityName?uncap_first},
  59. <#list subTab as sub>List<${sub.entityName}Entity> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
  60. //保存主表信息
  61. <#-- update--begin--author:zhangjiaqiang date:20170601 for:service当中增加进行获取数据库当中的数据信息 -->
  62. if(StringUtil.isNotEmpty(${entityName?uncap_first}.get${jeecg_table_id?cap_first}())){
  63. try {
  64. ${entityName}Entity temp = findUniqueByProperty(${entityName}Entity.class, "${jeecg_table_id}", ${entityName?uncap_first}.get${jeecg_table_id?cap_first}());
  65. MyBeanUtils.copyBeanNotNull2Bean(${entityName?uncap_first}, temp);
  66. this.saveOrUpdate(temp);
  67. } catch (Exception e) {
  68. e.printStackTrace();
  69. }
  70. }else{
  71. this.saveOrUpdate(${entityName?uncap_first});
  72. }
  73. <#-- update--end--author:zhangjiaqiang date:20170601 for:service当中增加进行获取数据库当中的数据信息 -->
  74. //===================================================================================
  75. //获取参数
  76. <#list subTab as sub>
  77. <#list sub.foreignKeys as key>
  78. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  79. Object ${jeecg_table_id}${sub_index} = ${entityName?uncap_first}.get${jeecg_table_id?cap_first}();
  80. <#else>
  81. Object ${key?uncap_first}${sub_index} = ${entityName?uncap_first}.get${key}();
  82. </#if>
  83. </#list>
  84. </#list>
  85. <#list subTab as sub>
  86. //===================================================================================
  87. //1.查询出数据库的明细数据-${sub.ftlDescription}
  88. String hql${sub_index} = "from ${sub.entityName}Entity where 1 = 1<#list sub.foreignKeys as key> AND ${key?uncap_first} = ? </#list>";
  89. 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>);
  90. //2.筛选更新明细数据-${sub.ftlDescription}
  91. if(${sub.entityName?uncap_first}List!=null&&${sub.entityName?uncap_first}List.size()>0){
  92. for(${sub.entityName}Entity oldE:${sub.entityName?uncap_first}OldList){
  93. boolean isUpdate = false;
  94. for(${sub.entityName}Entity sendE:${sub.entityName?uncap_first}List){
  95. //需要更新的明细数据-${sub.ftlDescription}
  96. if(oldE.getId().equals(sendE.getId())){
  97. try {
  98. MyBeanUtils.copyBeanNotNull2Bean(sendE,oldE);
  99. this.saveOrUpdate(oldE);
  100. } catch (Exception e) {
  101. e.printStackTrace();
  102. throw new BusinessException(e.getMessage());
  103. }
  104. isUpdate= true;
  105. break;
  106. }
  107. }
  108. if(!isUpdate){
  109. //如果数据库存在的明细,前台没有传递过来则是删除-${sub.ftlDescription}
  110. super.delete(oldE);
  111. }
  112. }
  113. //3.持久化新增的数据-${sub.ftlDescription}
  114. for(${sub.entityName}Entity ${sub.entityName?uncap_first}:${sub.entityName?uncap_first}List){
  115. if(oConvertUtils.isEmpty(${sub.entityName?uncap_first}.getId())){
  116. //外键设置
  117. <#list sub.foreignKeys as key>
  118. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  119. ${sub.entityName?uncap_first}.set${subFieldMeta1[key]?cap_first}(${entityName?uncap_first}.get${jeecg_table_id?cap_first}());
  120. <#else>
  121. ${sub.entityName?uncap_first}.set${subFieldMeta1[key]?cap_first}(${entityName?uncap_first}.get${key}());
  122. </#if>
  123. </#list>
  124. this.save(${sub.entityName?uncap_first});
  125. }
  126. }
  127. }
  128. </#list>
  129. //执行更新操作配置的sql增强
  130. this.doUpdateSql(${entityName?uncap_first});
  131. }
  132. public void delMain(${entityName}Entity ${entityName?uncap_first}) {
  133. //删除主表信息
  134. this.delete(${entityName?uncap_first});
  135. //===================================================================================
  136. //获取参数
  137. <#list subTab as sub>
  138. <#list sub.foreignKeys as key>
  139. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  140. Object ${jeecg_table_id}${sub_index} = ${entityName?uncap_first}.get${jeecg_table_id?cap_first}();
  141. <#else>
  142. Object ${key?uncap_first}${sub_index} = ${entityName?uncap_first}.get${key}();
  143. </#if>
  144. </#list>
  145. </#list>
  146. <#list subTab as sub>
  147. //===================================================================================
  148. //删除-${sub.ftlDescription}
  149. String hql${sub_index} = "from ${sub.entityName}Entity where 1 = 1<#list sub.foreignKeys as key> AND ${key?uncap_first} = ? </#list>";
  150. 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>);
  151. this.deleteAllEntitie(${sub.entityName?uncap_first}OldList);
  152. </#list>
  153. }
  154. <#list buttons as btn>
  155. <#if btn.buttonStyle =='button' && btn.optType=='action'>
  156. /**
  157. * 自定义按钮-sql增强-${btn.buttonName}
  158. * @param id
  159. * @return
  160. */
  161. public boolean do${btn.buttonCode?cap_first}Sql(${entityName}Entity t){
  162. <#list buttonSqlMap[btn.buttonCode] as sql>
  163. //sql增强第${sql_index+1}条
  164. String sqlEnhance_${sql_index+1} ="${sql}";
  165. this.executeSql(replaceVal(sqlEnhance_${sql_index+1},t));
  166. </#list>
  167. return true;
  168. }
  169. </#if>
  170. </#list>
  171. /**
  172. * 默认按钮-sql增强-新增操作
  173. * @param id
  174. * @return
  175. */
  176. public boolean doAddSql(${entityName}Entity t){
  177. <#list buttonSqlMap['add'] as sql>
  178. //sql增强第${sql_index+1}条
  179. String sqlEnhance_${sql_index+1} ="${sql}";
  180. this.executeSql(replaceVal(sqlEnhance_${sql_index+1},t));
  181. </#list>
  182. return true;
  183. }
  184. /**
  185. * 默认按钮-sql增强-更新操作
  186. * @param id
  187. * @return
  188. */
  189. public boolean doUpdateSql(${entityName}Entity t){
  190. <#list buttonSqlMap['update'] as sql>
  191. //sql增强第${sql_index+1}条
  192. String sqlEnhance_${sql_index+1} ="${sql}";
  193. this.executeSql(replaceVal(sqlEnhance_${sql_index+1},t));
  194. </#list>
  195. return true;
  196. }
  197. /**
  198. * 默认按钮-sql增强-删除操作
  199. * @param id
  200. * @return
  201. */
  202. public boolean doDelSql(${entityName}Entity t){
  203. <#list buttonSqlMap['delete'] as sql>
  204. //sql增强第${sql_index+1}条
  205. String sqlEnhance_${sql_index+1} ="${sql}";
  206. this.executeSql(replaceVal(sqlEnhance_${sql_index+1},t));
  207. </#list>
  208. return true;
  209. }
  210. /**
  211. * 替换sql中的变量
  212. * @param sql
  213. * @return
  214. */
  215. public String replaceVal(String sql,${entityName}Entity t){
  216. <#list columns as po>
  217. sql = sql.replace("${'#'}{${fieldMeta[po.fieldName]?lower_case}}",String.valueOf(t.get${po.fieldName?cap_first}()));
  218. </#list>
  219. sql = sql.replace("${'#'}{UUID}",UUID.randomUUID().toString());
  220. return sql;
  221. }
  222. }