cgform_controllerTemplate.ftl 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591
  1. <#if packageStyle == "service">
  2. package ${bussiPackage}.${entityPackage}.controller;
  3. import ${bussiPackage}.${entityPackage}.entity.${entityName}Entity;
  4. import ${bussiPackage}.${entityPackage}.service.${entityName}ServiceI;
  5. <#else>
  6. package ${bussiPackage}.controller.${entityPackage};
  7. import ${bussiPackage}.entity.${entityPackage}.${entityName}Entity;
  8. import ${bussiPackage}.service.${entityPackage}.${entityName}ServiceI;
  9. </#if>
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. import java.text.SimpleDateFormat;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15. import org.apache.log4j.Logger;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Controller;
  18. import org.springframework.ui.ModelMap;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.ResponseBody;
  21. import org.springframework.web.servlet.ModelAndView;
  22. import org.apache.commons.collections.CollectionUtils;
  23. import org.jeecgframework.core.common.controller.BaseController;
  24. import org.jeecgframework.core.common.exception.BusinessException;
  25. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  26. import org.jeecgframework.core.common.model.common.TreeChildCount;
  27. import org.jeecgframework.core.common.model.json.AjaxJson;
  28. import org.jeecgframework.core.common.model.json.DataGrid;
  29. import org.jeecgframework.core.constant.Globals;
  30. import org.jeecgframework.core.util.StringUtil;
  31. import org.jeecgframework.tag.core.easyui.TagUtil;
  32. import org.jeecgframework.web.system.pojo.base.TSDepart;
  33. import org.jeecgframework.web.system.service.SystemService;
  34. import org.jeecgframework.core.util.MyBeanUtils;
  35. import java.io.OutputStream;
  36. import org.jeecgframework.core.util.BrowserUtils;
  37. import org.jeecgframework.poi.excel.ExcelExportUtil;
  38. import org.jeecgframework.poi.excel.ExcelImportUtil;
  39. import org.jeecgframework.poi.excel.entity.ExportParams;
  40. import org.jeecgframework.poi.excel.entity.ImportParams;
  41. import org.jeecgframework.poi.excel.entity.TemplateExportParams;
  42. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  43. import org.jeecgframework.poi.excel.entity.vo.TemplateExcelConstants;
  44. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  45. import org.jeecgframework.core.util.ResourceUtil;
  46. import java.io.IOException;
  47. import org.springframework.web.bind.annotation.RequestMethod;
  48. import org.springframework.web.multipart.MultipartFile;
  49. import org.springframework.web.multipart.MultipartHttpServletRequest;
  50. import java.util.Map;
  51. import java.util.HashMap;
  52. import org.jeecgframework.core.util.ExceptionUtil;
  53. <#-- restful 通用方法生成 -->
  54. import org.springframework.http.ResponseEntity;
  55. import org.springframework.stereotype.Controller;
  56. import org.springframework.web.bind.annotation.PathVariable;
  57. import org.springframework.web.bind.annotation.RequestBody;
  58. import org.springframework.web.bind.annotation.RequestMapping;
  59. import org.springframework.web.bind.annotation.RequestMethod;
  60. import org.springframework.web.bind.annotation.ResponseBody;
  61. import org.springframework.web.bind.annotation.ResponseStatus;
  62. import org.springframework.http.HttpHeaders;
  63. import org.springframework.http.HttpStatus;
  64. import org.jeecgframework.core.beanvalidator.BeanValidators;
  65. import java.util.Set;
  66. import javax.validation.ConstraintViolation;
  67. import javax.validation.Validator;
  68. import java.net.URI;
  69. import org.springframework.http.MediaType;
  70. import org.springframework.web.util.UriComponentsBuilder;
  71. <#-- restful 通用方法生成 -->
  72. <#-- 列为文件类型的文件代码生成 -->
  73. <#assign fileFlag = false />
  74. <#list columns as filePo>
  75. <#if filePo.showType=='file'>
  76. <#assign fileFlag = true />
  77. </#if>
  78. </#list>
  79. <#if fileFlag==true>
  80. import org.jeecgframework.web.cgform.entity.upload.CgUploadEntity;
  81. import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
  82. import java.util.HashMap;
  83. </#if>
  84. <#-- 列为文件类型的文件代码生成 -->
  85. /**
  86. * @Title: Controller
  87. * @Description: ${ftl_description}
  88. * @author onlineGenerator
  89. * @date ${ftl_create_time}
  90. * @version V1.0
  91. *
  92. */
  93. @Controller
  94. @RequestMapping("/${entityName?uncap_first}Controller")
  95. public class ${entityName}Controller extends BaseController {
  96. /**
  97. * Logger for this class
  98. */
  99. private static final Logger logger = Logger.getLogger(${entityName}Controller.class);
  100. @Autowired
  101. private ${entityName}ServiceI ${entityName?uncap_first}Service;
  102. @Autowired
  103. private SystemService systemService;
  104. <#-- restful 通用方法生成 -->
  105. @Autowired
  106. private Validator validator;
  107. <#-- restful 通用方法生成 -->
  108. <#-- 列为文件类型的文件代码生成 -->
  109. <#if fileFlag==true>
  110. @Autowired
  111. private CgFormFieldServiceI cgFormFieldService;
  112. </#if>
  113. <#-- 列为文件类型的文件代码生成 -->
  114. /**
  115. * ${ftl_description}列表 页面跳转
  116. *
  117. * @return
  118. */
  119. @RequestMapping(params = "list")
  120. public ModelAndView list(HttpServletRequest request) {
  121. return new ModelAndView("${bussiPackage?replace(".","/")}/${entityPackage}/${entityName?uncap_first}List");
  122. }
  123. /**
  124. * easyui AJAX请求数据
  125. *
  126. * @param request
  127. * @param response
  128. * @param dataGrid
  129. * @param user
  130. */
  131. @RequestMapping(params = "datagrid")
  132. public void datagrid(${entityName}Entity ${entityName?uncap_first},HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  133. CriteriaQuery cq = new CriteriaQuery(${entityName}Entity.class, dataGrid);
  134. <#if cgformConfig.cgFormHead.isTree == 'Y'>
  135. if(StringUtil.isEmpty(${entityName?uncap_first}.getId())){
  136. cq.isNull("${cgformConfig.cgFormHead.treeParentIdFieldNamePage}");
  137. }else{
  138. cq.eq("${cgformConfig.cgFormHead.treeParentIdFieldNamePage}", ${entityName?uncap_first}.getId());
  139. ${entityName?uncap_first}.setId(null);
  140. }
  141. </#if>
  142. //查询条件组装器
  143. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, ${entityName?uncap_first}, request.getParameterMap());
  144. try{
  145. //自定义追加查询条件
  146. <#list columns as po>
  147. <#if po.isQuery =='Y' && po.queryMode =='group'>
  148. String query_${po.fieldName}_begin = request.getParameter("${po.fieldName}_begin");
  149. String query_${po.fieldName}_end = request.getParameter("${po.fieldName}_end");
  150. if(StringUtil.isNotEmpty(query_${po.fieldName}_begin)){
  151. <#if po.type == "java.util.Date">
  152. cq.ge("${po.fieldName}", new SimpleDateFormat("yyyy-MM-dd").parse(query_${po.fieldName}_begin));
  153. <#else>
  154. cq.ge("${po.fieldName}", Integer.parseInt(query_${po.fieldName}_begin));
  155. </#if>
  156. }
  157. if(StringUtil.isNotEmpty(query_${po.fieldName}_end)){
  158. <#if po.type == "java.util.Date">
  159. cq.le("${po.fieldName}", new SimpleDateFormat("yyyy-MM-dd").parse(query_${po.fieldName}_end));
  160. <#else>
  161. cq.le("${po.fieldName}", Integer.parseInt(query_${po.fieldName}_end));
  162. </#if>
  163. }
  164. </#if>
  165. </#list>
  166. }catch (Exception e) {
  167. throw new BusinessException(e.getMessage());
  168. }
  169. cq.add();
  170. this.${entityName?uncap_first}Service.getDataGridReturn(cq, true);
  171. <#if cgformConfig.cgFormHead.isTree == 'Y'>
  172. TagUtil.treegrid(response, dataGrid);
  173. <#else>
  174. TagUtil.datagrid(response, dataGrid);
  175. </#if>
  176. }
  177. /**
  178. * 删除${ftl_description}
  179. *
  180. * @return
  181. */
  182. @RequestMapping(params = "doDel")
  183. @ResponseBody
  184. public AjaxJson doDel(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest request) {
  185. String message = null;
  186. AjaxJson j = new AjaxJson();
  187. ${entityName?uncap_first} = systemService.getEntity(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  188. message = "${ftl_description}删除成功";
  189. try{
  190. ${entityName?uncap_first}Service.delete(${entityName?uncap_first});
  191. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  192. }catch(Exception e){
  193. e.printStackTrace();
  194. message = "${ftl_description}删除失败";
  195. throw new BusinessException(e.getMessage());
  196. }
  197. j.setMsg(message);
  198. return j;
  199. }
  200. /**
  201. * 批量删除${ftl_description}
  202. *
  203. * @return
  204. */
  205. @RequestMapping(params = "doBatchDel")
  206. @ResponseBody
  207. public AjaxJson doBatchDel(String ids,HttpServletRequest request){
  208. String message = null;
  209. AjaxJson j = new AjaxJson();
  210. message = "${ftl_description}删除成功";
  211. try{
  212. for(String id:ids.split(",")){
  213. ${entityName}Entity ${entityName?uncap_first} = systemService.getEntity(${entityName}Entity.class,
  214. <#if cgformConfig.cgFormHead.jformPkType?if_exists?html == "UUID">
  215. id
  216. <#elseif cgformConfig.cgFormHead.jformPkType?if_exists?html == "NATIVE">
  217. Integer.parseInt(id)
  218. <#elseif cgformConfig.cgFormHead.jformPkType?if_exists?html == "SEQUENCE">
  219. Integer.parseInt(id)
  220. <#else>
  221. id
  222. </#if>
  223. );
  224. ${entityName?uncap_first}Service.delete(${entityName?uncap_first});
  225. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  226. }
  227. }catch(Exception e){
  228. e.printStackTrace();
  229. message = "${ftl_description}删除失败";
  230. throw new BusinessException(e.getMessage());
  231. }
  232. j.setMsg(message);
  233. return j;
  234. }
  235. /**
  236. * 添加${ftl_description}
  237. *
  238. * @param ids
  239. * @return
  240. */
  241. @RequestMapping(params = "doAdd")
  242. @ResponseBody
  243. public AjaxJson doAdd(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest request) {
  244. String message = null;
  245. AjaxJson j = new AjaxJson();
  246. message = "${ftl_description}添加成功";
  247. try{
  248. <#if cgformConfig.cgFormHead.isTree == 'Y'>
  249. if(StringUtil.isEmpty(${entityName?uncap_first}.get${cgformConfig.cgFormHead.treeParentIdFieldNamePage?cap_first}())){
  250. ${entityName?uncap_first}.set${cgformConfig.cgFormHead.treeParentIdFieldNamePage?cap_first}(null);
  251. }
  252. </#if>
  253. ${entityName?uncap_first}Service.save(${entityName?uncap_first});
  254. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  255. }catch(Exception e){
  256. e.printStackTrace();
  257. message = "${ftl_description}添加失败";
  258. throw new BusinessException(e.getMessage());
  259. }
  260. j.setMsg(message);
  261. <#-- 列为文件类型的文件代码生成 -->
  262. <#if fileFlag==true>
  263. j.setObj(${entityName?uncap_first});
  264. </#if>
  265. <#-- 列为文件类型的文件代码生成 -->
  266. return j;
  267. }
  268. /**
  269. * 保存新增/更新的行数据
  270. * @param page
  271. * @return
  272. */
  273. @RequestMapping(params = "saveRows")
  274. @ResponseBody
  275. public AjaxJson saveRows(${entityName}Entity page){
  276. String message = null;
  277. List<${entityName}Entity> ${entityName?uncap_first}List=page.get${entityName}List();
  278. AjaxJson j = new AjaxJson();
  279. if(CollectionUtils.isNotEmpty(${entityName?uncap_first}List)){
  280. for(${entityName}Entity ${entityName?uncap_first}:${entityName?uncap_first}List){
  281. if (StringUtil.isNotEmpty(${entityName?uncap_first}.getId())) {
  282. ${entityName}Entity t =${entityName?uncap_first}Service.get(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  283. try {
  284. message = "${entityName}例子更新成功";
  285. MyBeanUtils.copyBeanNotNull2Bean(${entityName?uncap_first}, t);
  286. ${entityName?uncap_first}Service.saveOrUpdate(t);
  287. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  288. } catch (Exception e) {
  289. e.printStackTrace();
  290. }
  291. } else {
  292. try {
  293. message = "${entityName}例子添加成功";
  294. //jeecgDemo.setStatus("0");
  295. ${entityName?uncap_first}Service.save(${entityName?uncap_first});
  296. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  297. } catch (Exception e) {
  298. e.printStackTrace();
  299. }
  300. }
  301. }
  302. }
  303. return j;
  304. }
  305. /**
  306. * 更新${ftl_description}
  307. *
  308. * @param ids
  309. * @return
  310. */
  311. @RequestMapping(params = "doUpdate")
  312. @ResponseBody
  313. public AjaxJson doUpdate(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest request) {
  314. String message = null;
  315. AjaxJson j = new AjaxJson();
  316. message = "${ftl_description}更新成功";
  317. ${entityName}Entity t = ${entityName?uncap_first}Service.get(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  318. try {
  319. MyBeanUtils.copyBeanNotNull2Bean(${entityName?uncap_first}, t);
  320. <#if cgformConfig.cgFormHead.isTree == 'Y'>
  321. if(StringUtil.isEmpty(t.get${cgformConfig.cgFormHead.treeParentIdFieldNamePage?cap_first}())){
  322. t.set${cgformConfig.cgFormHead.treeParentIdFieldNamePage?cap_first}(null);
  323. }
  324. </#if>
  325. ${entityName?uncap_first}Service.saveOrUpdate(t);
  326. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  327. } catch (Exception e) {
  328. e.printStackTrace();
  329. message = "${ftl_description}更新失败";
  330. throw new BusinessException(e.getMessage());
  331. }
  332. j.setMsg(message);
  333. return j;
  334. }
  335. <#list buttons as btn>
  336. <#if btn.optType=='action'>
  337. /**
  338. * 自定义按钮-[${btn.buttonName}]业务
  339. * @param ids
  340. * @return
  341. */
  342. @RequestMapping(params = "do${btn.buttonCode?cap_first}")
  343. @ResponseBody
  344. public AjaxJson do${btn.buttonCode?cap_first}(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest request) {
  345. String message = null;
  346. AjaxJson j = new AjaxJson();
  347. message = "${btn.buttonName}成功";
  348. ${entityName}Entity t = ${entityName?uncap_first}Service.get(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  349. try{
  350. ${entityName?uncap_first}Service.do${btn.buttonCode?cap_first}Bus(t);
  351. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  352. }catch(Exception e){
  353. e.printStackTrace();
  354. message = "${btn.buttonName}失败";
  355. }
  356. j.setMsg(message);
  357. return j;
  358. }
  359. </#if>
  360. </#list>
  361. /**
  362. * ${ftl_description}新增页面跳转
  363. *
  364. * @return
  365. */
  366. @RequestMapping(params = "goAdd")
  367. public ModelAndView goAdd(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest req) {
  368. if (StringUtil.isNotEmpty(${entityName?uncap_first}.getId())) {
  369. ${entityName?uncap_first} = ${entityName?uncap_first}Service.getEntity(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  370. req.setAttribute("${entityName?uncap_first}Page", ${entityName?uncap_first});
  371. }
  372. return new ModelAndView("${bussiPackage?replace(".","/")}/${entityPackage}/${entityName?uncap_first}-add");
  373. }
  374. /**
  375. * ${ftl_description}编辑页面跳转
  376. *
  377. * @return
  378. */
  379. @RequestMapping(params = "goUpdate")
  380. public ModelAndView goUpdate(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest req) {
  381. if (StringUtil.isNotEmpty(${entityName?uncap_first}.getId())) {
  382. ${entityName?uncap_first} = ${entityName?uncap_first}Service.getEntity(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  383. req.setAttribute("${entityName?uncap_first}Page", ${entityName?uncap_first});
  384. }
  385. return new ModelAndView("${bussiPackage?replace(".","/")}/${entityPackage}/${entityName?uncap_first}-update");
  386. }
  387. /**
  388. * 导入功能跳转
  389. *
  390. * @return
  391. */
  392. @RequestMapping(params = "upload")
  393. public ModelAndView upload(HttpServletRequest req) {
  394. req.setAttribute("controller_name","${entityName?uncap_first}Controller");
  395. return new ModelAndView("common/upload/pub_excel_upload");
  396. }
  397. /**
  398. * 导出excel
  399. *
  400. * @param request
  401. * @param response
  402. */
  403. @RequestMapping(params = "exportXls")
  404. public String exportXls(${entityName}Entity ${entityName?uncap_first},HttpServletRequest request,HttpServletResponse response
  405. , DataGrid dataGrid,ModelMap modelMap) {
  406. CriteriaQuery cq = new CriteriaQuery(${entityName}Entity.class, dataGrid);
  407. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, ${entityName?uncap_first}, request.getParameterMap());
  408. List<${entityName}Entity> ${entityName?uncap_first}s = this.${entityName?uncap_first}Service.getListByCriteriaQuery(cq,false);
  409. modelMap.put(NormalExcelConstants.FILE_NAME,"${ftl_description}");
  410. modelMap.put(NormalExcelConstants.CLASS,${entityName}Entity.class);
  411. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("${ftl_description}列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  412. "导出信息"));
  413. modelMap.put(NormalExcelConstants.DATA_LIST,${entityName?uncap_first}s);
  414. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  415. }
  416. /**
  417. * 导出excel 使模板
  418. *
  419. * @param request
  420. * @param response
  421. */
  422. @RequestMapping(params = "exportXlsByT")
  423. public String exportXlsByT(${entityName}Entity ${entityName?uncap_first},HttpServletRequest request,HttpServletResponse response
  424. , DataGrid dataGrid,ModelMap modelMap) {
  425. modelMap.put(NormalExcelConstants.FILE_NAME,"${ftl_description}");
  426. modelMap.put(NormalExcelConstants.CLASS,${entityName}Entity.class);
  427. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("${ftl_description}列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  428. "导出信息"));
  429. modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList());
  430. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  431. }
  432. @SuppressWarnings("unchecked")
  433. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  434. @ResponseBody
  435. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  436. AjaxJson j = new AjaxJson();
  437. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  438. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  439. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  440. MultipartFile file = entity.getValue();// 获取上传文件对象
  441. ImportParams params = new ImportParams();
  442. params.setTitleRows(2);
  443. params.setHeadRows(1);
  444. params.setNeedSave(true);
  445. try {
  446. List<${entityName}Entity> list${entityName}Entitys = ExcelImportUtil.importExcel(file.getInputStream(),${entityName}Entity.class,params);
  447. for (${entityName}Entity ${entityName?uncap_first} : list${entityName}Entitys) {
  448. ${entityName?uncap_first}Service.save(${entityName?uncap_first});
  449. }
  450. j.setMsg("文件导入成功!");
  451. } catch (Exception e) {
  452. j.setMsg("文件导入失败!");
  453. logger.error(ExceptionUtil.getExceptionMessage(e));
  454. }finally{
  455. try {
  456. file.getInputStream().close();
  457. } catch (IOException e) {
  458. e.printStackTrace();
  459. }
  460. }
  461. }
  462. return j;
  463. }
  464. <#-- 列为文件类型的文件代码生成 -->
  465. <#if fileFlag==true>
  466. /**
  467. * 获取文件附件信息
  468. *
  469. * @param id ${entityName?uncap_first}主键id
  470. */
  471. @RequestMapping(params = "getFiles")
  472. @ResponseBody
  473. public AjaxJson getFiles(String id){
  474. List<CgUploadEntity> uploadBeans = cgFormFieldService.findByProperty(CgUploadEntity.class, "cgformId", id);
  475. List<Map<String,Object>> files = new ArrayList<Map<String,Object>>(0);
  476. for(CgUploadEntity b:uploadBeans){
  477. String title = b.getAttachmenttitle();//附件名
  478. String fileKey = b.getId();//附件主键
  479. String path = b.getRealpath();//附件路径
  480. String field = b.getCgformField();//表单中作为附件控件的字段
  481. Map<String, Object> file = new HashMap<String, Object>();
  482. file.put("title", title);
  483. file.put("fileKey", fileKey);
  484. file.put("path", path);
  485. file.put("field", field==null?"":field);
  486. files.add(file);
  487. }
  488. AjaxJson j = new AjaxJson();
  489. j.setObj(files);
  490. return j;
  491. }
  492. </#if>
  493. <#-- 列为文件类型的文件代码生成 -->
  494. <#-- restful 通用方法生成 -->
  495. @RequestMapping(method = RequestMethod.GET)
  496. @ResponseBody
  497. public List<${entityName}Entity> list() {
  498. List<${entityName}Entity> list${entityName}s=${entityName?uncap_first}Service.getList(${entityName}Entity.class);
  499. return list${entityName}s;
  500. }
  501. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  502. @ResponseBody
  503. public ResponseEntity<?> get(@PathVariable("id") String id) {
  504. ${entityName}Entity task = ${entityName?uncap_first}Service.get(${entityName}Entity.class, id);
  505. if (task == null) {
  506. return new ResponseEntity(HttpStatus.NOT_FOUND);
  507. }
  508. return new ResponseEntity(task, HttpStatus.OK);
  509. }
  510. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  511. @ResponseBody
  512. public ResponseEntity<?> create(@RequestBody ${entityName}Entity ${entityName?uncap_first}, UriComponentsBuilder uriBuilder) {
  513. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  514. Set<ConstraintViolation<${entityName}Entity>> failures = validator.validate(${entityName?uncap_first});
  515. if (!failures.isEmpty()) {
  516. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  517. }
  518. //保存
  519. try{
  520. ${entityName?uncap_first}Service.save(${entityName?uncap_first});
  521. } catch (Exception e) {
  522. e.printStackTrace();
  523. return new ResponseEntity(HttpStatus.NO_CONTENT);
  524. }
  525. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  526. String id = ${entityName?uncap_first}.getId();
  527. URI uri = uriBuilder.path("/rest/${entityName?uncap_first}Controller/" + id).build().toUri();
  528. HttpHeaders headers = new HttpHeaders();
  529. headers.setLocation(uri);
  530. return new ResponseEntity(headers, HttpStatus.CREATED);
  531. }
  532. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  533. public ResponseEntity<?> update(@RequestBody ${entityName}Entity ${entityName?uncap_first}) {
  534. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  535. Set<ConstraintViolation<${entityName}Entity>> failures = validator.validate(${entityName?uncap_first});
  536. if (!failures.isEmpty()) {
  537. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  538. }
  539. //保存
  540. try{
  541. ${entityName?uncap_first}Service.saveOrUpdate(${entityName?uncap_first});
  542. } catch (Exception e) {
  543. e.printStackTrace();
  544. return new ResponseEntity(HttpStatus.NO_CONTENT);
  545. }
  546. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  547. return new ResponseEntity(HttpStatus.NO_CONTENT);
  548. }
  549. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  550. @ResponseStatus(HttpStatus.NO_CONTENT)
  551. public void delete(@PathVariable("id") String id) {
  552. ${entityName?uncap_first}Service.deleteEntityById(${entityName}Entity.class, id);
  553. }
  554. <#-- restful 通用方法生成 -->
  555. }