controller.ftl 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <#include "../function.ftl">
  2. <#include "../variable.ftl">
  3. <#assign pkVar=convertUnderLine(pk) >
  4. package com.${cAlias}.${cPlatform}.${app}.${module}.controller;
  5. import javax.annotation.Resource;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11. import org.springframework.web.servlet.ModelAndView;
  12. import com.${scAlias}.${scPlatform}.base.core.util.string.StringUtil;
  13. import com.${scAlias}.${scPlatform}.base.core.entity.ResultMessage;
  14. import com.${scAlias}.${scPlatform}.base.framework.page.PageList;
  15. import com.${scAlias}.${scPlatform}.api.base.query.QueryFilter;
  16. import com.${scAlias}.${scPlatform}.base.web.controller.GenericController;
  17. import com.${scAlias}.${scPlatform}.base.web.json.PageJson;
  18. import com.${scAlias}.${scPlatform}.base.web.util.RequestUtil;
  19. <#if isBaseModule = 'true'>
  20. import com.${cAlias}.${cPlatform}.${sys}.repository.${class}Repository;
  21. import com.${cAlias}.${cPlatform}.${sys}.persistence.entity.${class}Po;
  22. <#if hasSub?exists && hasSub==true>
  23. <#list model.subTableList as subTable>
  24. import com.${cAlias}.${cPlatform}.${sys}.persistence.entity.${subTable.variables.class}Po;
  25. </#list>
  26. </#if>
  27. import com.${cAlias}.${cPlatform}.${sys}.domain.${class};
  28. <#else>
  29. import com.${cAlias}.${cPlatform}.${sys}.${module}.repository.${class}Repository;
  30. import com.${cAlias}.${cPlatform}.${sys}.${module}.persistence.entity.${class}Po;
  31. <#if hasSub?exists && hasSub==true>
  32. <#list model.subTableList as subTable>
  33. import com.${cAlias}.${cPlatform}.${sys}.${module}.persistence.entity.${subTable.variables.class}Po;
  34. </#list>
  35. </#if>
  36. import com.${cAlias}.${cPlatform}.${sys}.${module}.domain.${class};
  37. </#if>
  38. import com.${scAlias}.${scPlatform}.base.core.util.json.JsonUtil;
  39. import net.sf.json.JSONObject;
  40. <#if hasSub?exists && hasSub==true>
  41. import java.util.List;
  42. </#if>
  43. /**
  44. * ${comment} 控制类
  45. *
  46. *<pre>
  47. <#if vars.company?exists>
  48. * 开发公司:${vars.company}
  49. </#if>
  50. <#if vars.developer?exists>
  51. * 开发人员:${vars.developer}
  52. </#if>
  53. <#if vars.email?exists>
  54. * 邮箱地址:${vars.email}
  55. </#if>
  56. * 创建时间:${date?string("yyyy-MM-dd HH:mm:ss")}
  57. *</pre>
  58. */
  59. @Controller
  60. @RequestMapping("/${app}/${module}/${classVar}/")
  61. public class ${class}Controller extends GenericController{
  62. @Resource
  63. private ${class}Repository ${classVar}Repository;
  64. /**
  65. * 【${comment}】列表(分页条件查询)数据
  66. *
  67. * @param request
  68. * @param reponse
  69. * @return
  70. * @throws Exception
  71. */
  72. @RequestMapping("listJson")
  73. public @ResponseBody PageJson listJson(HttpServletRequest request,HttpServletResponse reponse) throws Exception{
  74. QueryFilter queryFilter=getQueryFilter(request);
  75. PageList<${class}Po> ${classVar}List=(PageList<${class}Po>)${classVar}Repository.query(queryFilter);
  76. return new PageJson(${classVar}List);
  77. }
  78. /**
  79. * 编辑【${comment}】信息页面
  80. *
  81. * @param request
  82. * @param response
  83. * @return
  84. * @throws Exception
  85. */
  86. @RequestMapping("edit")
  87. public ModelAndView edit(HttpServletRequest request,HttpServletResponse response) throws Exception{
  88. String preUrl= RequestUtil.getPrePage(request);
  89. ${pkType} ${pkVar}=RequestUtil.get${pkType}(request, "${pkVar}");
  90. ${class}Po ${classVar}=null;
  91. if(StringUtil.isNotEmpty(${pkVar})){
  92. <#if hasSub?exists && hasSub==true>
  93. ${classVar}=${classVar}Repository.loadCascade(${pkVar});
  94. <#else>
  95. ${classVar}=${classVar}Repository.get(${pkVar});
  96. </#if>
  97. }
  98. return getAutoView().addObject("${classVar}", ${classVar}).addObject("returnUrl", preUrl);
  99. }
  100. /**
  101. * 编辑【${comment}】信息页面
  102. *
  103. * @param request
  104. * @param response
  105. * @return
  106. * @throws Exception
  107. */
  108. @RequestMapping("flowEdit")
  109. public ModelAndView flowEdit(HttpServletRequest request,HttpServletResponse response) throws Exception{
  110. String preUrl= RequestUtil.getPrePage(request);
  111. ${pkType} ${pkVar}=RequestUtil.get${pkType}(request, "${pkVar}");
  112. ${class}Po ${classVar}=null;
  113. if(StringUtil.isNotEmpty(${pkVar})){
  114. <#if hasSub?exists && hasSub==true>
  115. ${classVar}=${classVar}Repository.loadCascade(${pkVar});
  116. <#else>
  117. ${classVar}=${classVar}Repository.get(${pkVar});
  118. </#if>
  119. }
  120. return getAutoView().addObject("${classVar}", ${classVar}).addObject("returnUrl", preUrl);
  121. }
  122. /**
  123. * 【${comment}】明细页面
  124. *
  125. * @param request
  126. * @param response
  127. * @return
  128. * @throws Exception
  129. */
  130. @RequestMapping("get")
  131. public ModelAndView get(HttpServletRequest request,HttpServletResponse response) throws Exception{
  132. String preUrl= RequestUtil.getPrePage(request);
  133. ${pkType} ${pkVar}=RequestUtil.get${pkType}(request, "${pkVar}");
  134. ${class}Po ${classVar}=null;
  135. if(StringUtil.isNotEmpty(${pkVar})){
  136. <#if hasSub?exists && hasSub==true>
  137. ${classVar}=${classVar}Repository.loadCascade(${pkVar});
  138. <#else>
  139. ${classVar}=${classVar}Repository.get(${pkVar});
  140. </#if>
  141. }
  142. return getAutoView().addObject("${classVar}", ${classVar}).addObject("returnUrl", preUrl);
  143. }
  144. /**
  145. * 保存【${comment}】信息
  146. *
  147. * @param request
  148. * @param response
  149. * @param ${classVar}
  150. * @throws Exception
  151. */
  152. @RequestMapping("save")
  153. public void save(HttpServletRequest request,HttpServletResponse response) throws Exception{
  154. ResultMessage message=null;
  155. try {
  156. ${class}Po ${classVar}Po = getFromRequest(request);
  157. //构造领域对象和保存数据
  158. ${class} ${classVar} =${classVar}Repository.newInstance(${classVar}Po);
  159. <#if hasSub?exists && hasSub==true>
  160. ${classVar}.saveCascade();
  161. <#else>
  162. ${classVar}.save();
  163. </#if>
  164. message=new ResultMessage(ResultMessage.SUCCESS, "保存${comment}成功");
  165. } catch (Exception e) {
  166. message=new ResultMessage(ResultMessage.FAIL, "对${comment}操作失败,"+e.getMessage());
  167. logger.error("对${comment}操作失败," + e.getMessage(),e);
  168. }
  169. writeResultMessage(response.getWriter(), message);
  170. }
  171. /**
  172. * 获取表单数据
  173. *
  174. * @param request
  175. */
  176. private ${class}Po getFromRequest(HttpServletRequest request){
  177. String json = RequestUtil.getString(request, "json");
  178. JSONObject jsonObj = JSONObject.fromObject(json);
  179. <#if hasSub?exists && hasSub==true>
  180. <#list model.subTableList as subTable>
  181. List<${subTable.variables.class}Po> ${subTable.variables.classVar}PoList = get${subTable.variables.class}PoList(jsonObj);
  182. </#list>
  183. </#if>
  184. ${class}Po ${classVar}Po = get${class}Po(jsonObj);
  185. <#if hasSub?exists && hasSub==true>
  186. <#list model.subTableList as subTable>
  187. ${classVar}Po.set${subTable.variables.class}PoList(${subTable.variables.classVar}PoList);
  188. </#list>
  189. </#if>
  190. return ${classVar}Po;
  191. }
  192. /**
  193. * 获取${comment}数据
  194. *
  195. * @param jsonObj
  196. */
  197. private ${class}Po get${class}Po(JSONObject jsonObj){
  198. ${class}Po ${classVar}Po = (${class}Po) JsonUtil.getDTO(jsonObj.toString(), ${class}Po.class);
  199. return ${classVar}Po;
  200. }
  201. <#if hasSub?exists && hasSub==true>
  202. <#list model.subTableList as subTable>
  203. /**
  204. * 获取${subTable.tabComment}数据
  205. *
  206. * @param jsonObj
  207. */
  208. @SuppressWarnings("unchecked")
  209. private List<${subTable.variables.class}Po> get${subTable.variables.class}PoList(JSONObject jsonObj){
  210. if(!jsonObj.containsKey("${subTable.variables.classVar}PoList")){
  211. return null;
  212. }
  213. List<${subTable.variables.class}Po> rs = JsonUtil.getDTOList(
  214. jsonObj.getJSONArray("${subTable.variables.classVar}PoList").toString(),
  215. ${subTable.variables.class}Po.class);
  216. jsonObj.discard("${subTable.variables.classVar}PoList");
  217. return rs;
  218. }
  219. </#list>
  220. </#if>
  221. /**
  222. * 批量删除【${comment}】记录
  223. *
  224. * @param request
  225. * @param response
  226. * @throws Exception
  227. */
  228. @RequestMapping("remove")
  229. public void remove(HttpServletRequest request,HttpServletResponse response) throws Exception{
  230. ResultMessage message=null;
  231. try {
  232. //获得待删除的id
  233. ${pkType}[] ids=RequestUtil.get${pkType}AryByStr(request, "${pkVar}");
  234. //构造领域对象和保存数据
  235. ${class} ${classVar} =${classVar}Repository.newInstance();
  236. <#if hasSub?exists && hasSub==true>
  237. ${classVar}.deleteByIdsCascade(ids);
  238. <#else>
  239. ${classVar}.deleteByIds(ids);
  240. </#if>
  241. message=new ResultMessage(ResultMessage.SUCCESS, "删除${comment}成功");
  242. } catch (Exception e) {
  243. message=new ResultMessage(ResultMessage.FAIL, "删除${comment}失败," + e.getMessage());
  244. logger.error("删除${comment}失败," + e.getMessage(),e);
  245. }
  246. writeResultMessage(response.getWriter(), message);
  247. }
  248. }