cgform_serviceImplTemplate.ftl 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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. <#else>
  7. package ${bussiPackage}.service.impl.${entityPackage};
  8. import ${bussiPackage}.service.${entityPackage}.${entityName}ServiceI;
  9. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  10. import ${bussiPackage}.entity.${entityPackage}.${entityName}Entity;
  11. </#if>
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import java.util.HashMap;
  15. import java.util.Map;
  16. import java.util.UUID;
  17. import java.io.Serializable;
  18. import org.jeecgframework.core.util.ApplicationContextUtil;
  19. import org.jeecgframework.core.util.MyClassLoader;
  20. import org.jeecgframework.core.util.StringUtil;
  21. import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
  22. @Service("${entityName?uncap_first}Service")
  23. @Transactional
  24. public class ${entityName}ServiceImpl extends CommonServiceImpl implements ${entityName}ServiceI {
  25. public void delete(${entityName}Entity entity) throws Exception{
  26. super.delete(entity);
  27. //执行删除操作增强业务
  28. this.doDelBus(entity);
  29. }
  30. public Serializable save(${entityName}Entity entity) throws Exception{
  31. Serializable t = super.save(entity);
  32. //执行新增操作增强业务
  33. this.doAddBus(entity);
  34. return t;
  35. }
  36. public void saveOrUpdate(${entityName}Entity entity) throws Exception{
  37. super.saveOrUpdate(entity);
  38. //执行更新操作增强业务
  39. this.doUpdateBus(entity);
  40. }
  41. <#list buttons as btn>
  42. <#if btn.optType=='action'>
  43. /**
  44. * 自定义按钮-[${btn.buttonName}]业务处理
  45. * @param id
  46. * @return
  47. */
  48. public void do${btn.buttonCode?cap_first}Bus(${entityName}Entity t) throws Exception{
  49. //-----------------sql增强 start----------------------------
  50. <#list buttonSqlMap[btn.buttonCode] as sql>
  51. //sql增强第${sql_index+1}条
  52. String sqlEnhance_${sql_index+1} ="${sql}";
  53. this.executeSql(replaceVal(sqlEnhance_${sql_index+1},t));
  54. </#list>
  55. //-----------------sql增强 end------------------------------
  56. //-----------------java增强 start---------------------------
  57. <#if buttonJavaMap??&&buttonJavaMap[btn.buttonCode]?? >
  58. Map<String,Object> data = populationMap(t);
  59. executeJavaExtend("${buttonJavaMap[btn.buttonCode].cgJavaType}","${buttonJavaMap[btn.buttonCode].cgJavaValue}",data);
  60. </#if>
  61. //-----------------java增强 end-----------------------------
  62. }
  63. </#if>
  64. </#list>
  65. /**
  66. * 新增操作增强业务
  67. * @param t
  68. * @return
  69. */
  70. private void doAddBus(${entityName}Entity t) throws Exception{
  71. //-----------------sql增强 start----------------------------
  72. <#list buttonSqlMap['add'] as sql>
  73. //sql增强第${sql_index+1}条
  74. String sqlEnhance_${sql_index+1} ="${sql}";
  75. this.executeSql(replaceVal(sqlEnhance_${sql_index+1},t));
  76. </#list>
  77. //-----------------sql增强 end------------------------------
  78. //-----------------java增强 start---------------------------
  79. <#if buttonJavaMap??&&buttonJavaMap['add']?? >
  80. Map<String,Object> data = populationMap(t);
  81. executeJavaExtend("${buttonJavaMap['add'].cgJavaType}","${buttonJavaMap['add'].cgJavaValue}",data);
  82. </#if>
  83. //-----------------java增强 end-----------------------------
  84. }
  85. /**
  86. * 更新操作增强业务
  87. * @param t
  88. * @return
  89. */
  90. private void doUpdateBus(${entityName}Entity t) throws Exception{
  91. //-----------------sql增强 start----------------------------
  92. <#list buttonSqlMap['update'] as sql>
  93. //sql增强第${sql_index+1}条
  94. String sqlEnhance_${sql_index+1} ="${sql}";
  95. this.executeSql(replaceVal(sqlEnhance_${sql_index+1},t));
  96. </#list>
  97. //-----------------sql增强 end------------------------------
  98. //-----------------java增强 start---------------------------
  99. <#if buttonJavaMap??&&buttonJavaMap['update']?? >
  100. Map<String,Object> data = populationMap(t);
  101. executeJavaExtend("${buttonJavaMap['update'].cgJavaType}","${buttonJavaMap['update'].cgJavaValue}",data);
  102. </#if>
  103. //-----------------java增强 end-----------------------------
  104. }
  105. /**
  106. * 删除操作增强业务
  107. * @param id
  108. * @return
  109. */
  110. private void doDelBus(${entityName}Entity t) throws Exception{
  111. //-----------------sql增强 start----------------------------
  112. <#list buttonSqlMap['delete'] as sql>
  113. //sql增强第${sql_index+1}条
  114. String sqlEnhance_${sql_index+1} ="${sql}";
  115. this.executeSql(replaceVal(sqlEnhance_${sql_index+1},t));
  116. </#list>
  117. //-----------------sql增强 end------------------------------
  118. //-----------------java增强 start---------------------------
  119. <#if buttonJavaMap??&&buttonJavaMap['delete']?? >
  120. Map<String,Object> data = populationMap(t);
  121. executeJavaExtend("${buttonJavaMap['delete'].cgJavaType}","${buttonJavaMap['delete'].cgJavaValue}",data);
  122. </#if>
  123. //-----------------java增强 end-----------------------------
  124. }
  125. private Map<String,Object> populationMap(${entityName}Entity t){
  126. Map<String,Object> map = new HashMap<String,Object>();
  127. <#list columns as po>
  128. map.put("${fieldMeta[po.fieldName]?lower_case}", t.get${po.fieldName?cap_first}());
  129. </#list>
  130. return map;
  131. }
  132. /**
  133. * 替换sql中的变量
  134. * @param sql
  135. * @param t
  136. * @return
  137. */
  138. public String replaceVal(String sql,${entityName}Entity t){
  139. <#list columns as po>
  140. sql = sql.replace("${'#'}{${fieldMeta[po.fieldName]?lower_case}}",String.valueOf(t.get${po.fieldName?cap_first}()));
  141. </#list>
  142. sql = sql.replace("${'#'}{UUID}",UUID.randomUUID().toString());
  143. return sql;
  144. }
  145. /**
  146. * 执行JAVA增强
  147. */
  148. private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
  149. if(StringUtil.isNotEmpty(cgJavaValue)){
  150. Object obj = null;
  151. try {
  152. if("class".equals(cgJavaType)){
  153. //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
  154. obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
  155. }else if("spring".equals(cgJavaType)){
  156. obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
  157. }
  158. if(obj instanceof CgformEnhanceJavaInter){
  159. CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
  160. javaInter.execute("${tableName}",data);
  161. }
  162. } catch (Exception e) {
  163. e.printStackTrace();
  164. throw new Exception("执行JAVA增强出现异常!");
  165. }
  166. }
  167. }
  168. }