MPersonalMessageController.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. package cn.com.lzt.message.personal.controller;
  2. import java.io.IOException;
  3. import java.net.URI;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.Set;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import javax.validation.ConstraintViolation;
  12. import javax.validation.Validator;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.apache.log4j.Logger;
  15. import org.hibernate.criterion.Restrictions;
  16. import org.jeecgframework.core.beanvalidator.BeanValidators;
  17. import org.jeecgframework.core.common.controller.BaseController;
  18. import org.jeecgframework.core.common.exception.BusinessException;
  19. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  20. import org.jeecgframework.core.common.model.json.AjaxJson;
  21. import org.jeecgframework.core.common.model.json.DataGrid;
  22. import org.jeecgframework.core.constant.Globals;
  23. import org.jeecgframework.core.util.ExceptionUtil;
  24. import org.jeecgframework.core.util.MyBeanUtils;
  25. import org.jeecgframework.core.util.ResourceUtil;
  26. import org.jeecgframework.core.util.StringUtil;
  27. import org.jeecgframework.poi.excel.ExcelImportUtil;
  28. import org.jeecgframework.poi.excel.entity.ExportParams;
  29. import org.jeecgframework.poi.excel.entity.ImportParams;
  30. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  31. import org.jeecgframework.tag.core.easyui.TagUtil;
  32. import org.jeecgframework.tag.vo.datatable.SortDirection;
  33. import org.jeecgframework.web.system.pojo.base.TSUser;
  34. import org.jeecgframework.web.system.service.SystemService;
  35. import org.springframework.beans.factory.annotation.Autowired;
  36. import org.springframework.http.HttpHeaders;
  37. import org.springframework.http.HttpStatus;
  38. import org.springframework.http.MediaType;
  39. import org.springframework.http.ResponseEntity;
  40. import org.springframework.stereotype.Controller;
  41. import org.springframework.ui.ModelMap;
  42. import org.springframework.web.bind.annotation.PathVariable;
  43. import org.springframework.web.bind.annotation.RequestBody;
  44. import org.springframework.web.bind.annotation.RequestMapping;
  45. import org.springframework.web.bind.annotation.RequestMethod;
  46. import org.springframework.web.bind.annotation.ResponseBody;
  47. import org.springframework.web.bind.annotation.ResponseStatus;
  48. import org.springframework.web.multipart.MultipartFile;
  49. import org.springframework.web.multipart.MultipartHttpServletRequest;
  50. import org.springframework.web.servlet.ModelAndView;
  51. import org.springframework.web.util.UriComponentsBuilder;
  52. import cn.com.lzt.message.personal.entity.MPersonalMessageEntity;
  53. import cn.com.lzt.message.personal.service.MPersonalMessageServiceI;
  54. /**
  55. * @Title: Controller
  56. * @Description: 个人消息
  57. * @author onlineGenerator
  58. * @date 2019-06-09 14:03:36
  59. * @version V1.0
  60. *
  61. */
  62. @Controller
  63. @RequestMapping("/mPersonalMessageController")
  64. public class MPersonalMessageController extends BaseController {
  65. /**
  66. * Logger for this class
  67. */
  68. private static final Logger logger = Logger.getLogger(MPersonalMessageController.class);
  69. @Autowired
  70. private MPersonalMessageServiceI mPersonalMessageService;
  71. @Autowired
  72. private SystemService systemService;
  73. @Autowired
  74. private Validator validator;
  75. /**
  76. * 个人消息列表 页面跳转
  77. *
  78. * @return
  79. */
  80. @RequestMapping(params = "list")
  81. public ModelAndView list(HttpServletRequest request) {
  82. return new ModelAndView("cn/com/lzt/message/personal/mPersonalMessageList");
  83. }
  84. /**
  85. * easyui AJAX请求数据
  86. *
  87. * @param request
  88. * @param response
  89. * @param dataGrid
  90. */
  91. @RequestMapping(params = "datagrid")
  92. public void datagrid(MPersonalMessageEntity mPersonalMessage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  93. CriteriaQuery cq = new CriteriaQuery(MPersonalMessageEntity.class, dataGrid);
  94. //查询条件组装器
  95. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, mPersonalMessage, request.getParameterMap());
  96. try{
  97. TSUser user = ResourceUtil.getSessionUser();
  98. cq.add(Restrictions.eq("userId",user.getId()));
  99. //自定义追加查询条件
  100. }catch (Exception e) {
  101. throw new BusinessException(e.getMessage());
  102. }
  103. cq.add();
  104. cq.addOrder("createTime",SortDirection.desc);
  105. this.mPersonalMessageService.getDataGridReturn(cq, true);
  106. List<MPersonalMessageEntity> msgList = dataGrid.getResults();
  107. if(msgList != null && msgList.size() > 0) {
  108. ArrayList<String> ids = new ArrayList<String>();
  109. for (MPersonalMessageEntity msg : msgList) {
  110. ids.add(msg.getMessageId());
  111. }
  112. String idstr = "'"+StringUtils.join(ids,"','")+"'";
  113. String attrSql = "select distinct busi_id from t_sys_file where busi_id in("+idstr+") ";
  114. List<String> exsitID = systemService.findListbySql(attrSql);
  115. HashMap<String,String> exsitIDMap = new HashMap<String, String>();
  116. for (String id : exsitID) {
  117. exsitIDMap.put(id, id);
  118. }
  119. for (MPersonalMessageEntity msg : msgList) {
  120. if(exsitIDMap.containsKey(msg.getMessageId())) {
  121. msg.setUploadattr("有附件");
  122. }
  123. }
  124. }
  125. TagUtil.datagrid(response, dataGrid);
  126. }
  127. /**
  128. * 删除个人消息
  129. *
  130. * @return
  131. */
  132. @RequestMapping(params = "doDel")
  133. @ResponseBody
  134. public AjaxJson doDel(MPersonalMessageEntity mPersonalMessage, HttpServletRequest request) {
  135. String message = null;
  136. AjaxJson j = new AjaxJson();
  137. mPersonalMessage = systemService.getEntity(MPersonalMessageEntity.class, mPersonalMessage.getId());
  138. message = "个人消息删除成功";
  139. try{
  140. mPersonalMessageService.delete(mPersonalMessage);
  141. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  142. }catch(Exception e){
  143. e.printStackTrace();
  144. message = "个人消息删除失败";
  145. throw new BusinessException(e.getMessage());
  146. }
  147. j.setMsg(message);
  148. return j;
  149. }
  150. /**
  151. * 批量删除个人消息
  152. *
  153. * @return
  154. */
  155. @RequestMapping(params = "doBatchDel")
  156. @ResponseBody
  157. public AjaxJson doBatchDel(String ids,HttpServletRequest request){
  158. String message = null;
  159. AjaxJson j = new AjaxJson();
  160. message = "个人消息删除成功";
  161. try{
  162. for(String id:ids.split(",")){
  163. MPersonalMessageEntity mPersonalMessage = systemService.getEntity(MPersonalMessageEntity.class,
  164. id
  165. );
  166. mPersonalMessageService.delete(mPersonalMessage);
  167. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  168. }
  169. }catch(Exception e){
  170. e.printStackTrace();
  171. message = "个人消息删除失败";
  172. throw new BusinessException(e.getMessage());
  173. }
  174. j.setMsg(message);
  175. return j;
  176. }
  177. /**
  178. * 添加个人消息
  179. *
  180. * @return
  181. */
  182. @RequestMapping(params = "doAdd")
  183. @ResponseBody
  184. public AjaxJson doAdd(MPersonalMessageEntity mPersonalMessage, HttpServletRequest request) {
  185. String message = null;
  186. AjaxJson j = new AjaxJson();
  187. message = "个人消息添加成功";
  188. try{
  189. mPersonalMessageService.save(mPersonalMessage);
  190. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  191. }catch(Exception e){
  192. e.printStackTrace();
  193. message = "个人消息添加失败";
  194. throw new BusinessException(e.getMessage());
  195. }
  196. j.setMsg(message);
  197. return j;
  198. }
  199. /**
  200. * 更新个人消息
  201. *
  202. * @return
  203. */
  204. @RequestMapping(params = "doUpdate")
  205. @ResponseBody
  206. public AjaxJson doUpdate(MPersonalMessageEntity mPersonalMessage, HttpServletRequest request) {
  207. String message = null;
  208. AjaxJson j = new AjaxJson();
  209. message = "个人消息更新成功";
  210. MPersonalMessageEntity t = mPersonalMessageService.get(MPersonalMessageEntity.class, mPersonalMessage.getId());
  211. try {
  212. MyBeanUtils.copyBeanNotNull2Bean(mPersonalMessage, t);
  213. mPersonalMessageService.saveOrUpdate(t);
  214. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  215. } catch (Exception e) {
  216. e.printStackTrace();
  217. message = "个人消息更新失败";
  218. throw new BusinessException(e.getMessage());
  219. }
  220. j.setMsg(message);
  221. return j;
  222. }
  223. /**
  224. * 个人消息新增页面跳转
  225. *
  226. * @return
  227. */
  228. @RequestMapping(params = "goAdd")
  229. public ModelAndView goAdd(MPersonalMessageEntity mPersonalMessage, HttpServletRequest req) {
  230. if (StringUtil.isNotEmpty(mPersonalMessage.getId())) {
  231. mPersonalMessage = mPersonalMessageService.getEntity(MPersonalMessageEntity.class, mPersonalMessage.getId());
  232. req.setAttribute("mPersonalMessagePage", mPersonalMessage);
  233. }
  234. return new ModelAndView("cn/com/lzt/message/personal/mPersonalMessage-add");
  235. }
  236. /**
  237. * 个人消息编辑页面跳转
  238. *
  239. * @return
  240. */
  241. @RequestMapping(params = "goUpdate")
  242. public ModelAndView goUpdate(MPersonalMessageEntity mPersonalMessage, HttpServletRequest req) {
  243. if (StringUtil.isNotEmpty(mPersonalMessage.getId())) {
  244. mPersonalMessage = mPersonalMessageService.getEntity(MPersonalMessageEntity.class, mPersonalMessage.getId());
  245. req.setAttribute("mPersonalMessagePage", mPersonalMessage);
  246. }
  247. return new ModelAndView("cn/com/lzt/message/personal/mPersonalMessage-update");
  248. }
  249. /**
  250. * 导入功能跳转
  251. *
  252. * @return
  253. */
  254. @RequestMapping(params = "upload")
  255. public ModelAndView upload(HttpServletRequest req) {
  256. req.setAttribute("controller_name","mPersonalMessageController");
  257. return new ModelAndView("common/upload/pub_excel_upload");
  258. }
  259. /**
  260. * 导出excel
  261. *
  262. * @param request
  263. * @param response
  264. */
  265. @RequestMapping(params = "exportXls")
  266. public String exportXls(MPersonalMessageEntity mPersonalMessage,HttpServletRequest request,HttpServletResponse response
  267. , DataGrid dataGrid,ModelMap modelMap) {
  268. CriteriaQuery cq = new CriteriaQuery(MPersonalMessageEntity.class, dataGrid);
  269. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, mPersonalMessage, request.getParameterMap());
  270. List<MPersonalMessageEntity> mPersonalMessages = this.mPersonalMessageService.getListByCriteriaQuery(cq,false);
  271. modelMap.put(NormalExcelConstants.FILE_NAME,"个人消息");
  272. modelMap.put(NormalExcelConstants.CLASS,MPersonalMessageEntity.class);
  273. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("个人消息列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  274. "导出信息"));
  275. modelMap.put(NormalExcelConstants.DATA_LIST,mPersonalMessages);
  276. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  277. }
  278. /**
  279. * 导出excel 使模板
  280. *
  281. * @param request
  282. * @param response
  283. */
  284. @RequestMapping(params = "exportXlsByT")
  285. public String exportXlsByT(MPersonalMessageEntity mPersonalMessage,HttpServletRequest request,HttpServletResponse response
  286. , DataGrid dataGrid,ModelMap modelMap) {
  287. modelMap.put(NormalExcelConstants.FILE_NAME,"个人消息");
  288. modelMap.put(NormalExcelConstants.CLASS,MPersonalMessageEntity.class);
  289. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("个人消息列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  290. "导出信息"));
  291. modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList());
  292. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  293. }
  294. @SuppressWarnings("unchecked")
  295. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  296. @ResponseBody
  297. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  298. AjaxJson j = new AjaxJson();
  299. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  300. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  301. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  302. MultipartFile file = entity.getValue();// 获取上传文件对象
  303. ImportParams params = new ImportParams();
  304. params.setTitleRows(2);
  305. params.setHeadRows(1);
  306. params.setNeedSave(true);
  307. try {
  308. List<MPersonalMessageEntity> listMPersonalMessageEntitys = ExcelImportUtil.importExcel(file.getInputStream(),MPersonalMessageEntity.class,params);
  309. for (MPersonalMessageEntity mPersonalMessage : listMPersonalMessageEntitys) {
  310. mPersonalMessageService.save(mPersonalMessage);
  311. }
  312. j.setMsg("文件导入成功!");
  313. } catch (Exception e) {
  314. j.setMsg("文件导入失败!");
  315. logger.error(ExceptionUtil.getExceptionMessage(e));
  316. }finally{
  317. try {
  318. file.getInputStream().close();
  319. } catch (IOException e) {
  320. e.printStackTrace();
  321. }
  322. }
  323. }
  324. return j;
  325. }
  326. @RequestMapping(method = RequestMethod.GET)
  327. @ResponseBody
  328. public List<MPersonalMessageEntity> list() {
  329. List<MPersonalMessageEntity> listMPersonalMessages=mPersonalMessageService.getList(MPersonalMessageEntity.class);
  330. return listMPersonalMessages;
  331. }
  332. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  333. @ResponseBody
  334. public ResponseEntity<?> get(@PathVariable("id") String id) {
  335. MPersonalMessageEntity task = mPersonalMessageService.get(MPersonalMessageEntity.class, id);
  336. if (task == null) {
  337. return new ResponseEntity(HttpStatus.NOT_FOUND);
  338. }
  339. return new ResponseEntity(task, HttpStatus.OK);
  340. }
  341. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  342. @ResponseBody
  343. public ResponseEntity<?> create(@RequestBody MPersonalMessageEntity mPersonalMessage, UriComponentsBuilder uriBuilder) {
  344. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  345. Set<ConstraintViolation<MPersonalMessageEntity>> failures = validator.validate(mPersonalMessage);
  346. if (!failures.isEmpty()) {
  347. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  348. }
  349. //保存
  350. try{
  351. mPersonalMessageService.save(mPersonalMessage);
  352. } catch (Exception e) {
  353. e.printStackTrace();
  354. return new ResponseEntity(HttpStatus.NO_CONTENT);
  355. }
  356. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  357. String id = mPersonalMessage.getId();
  358. URI uri = uriBuilder.path("/rest/mPersonalMessageController/" + id).build().toUri();
  359. HttpHeaders headers = new HttpHeaders();
  360. headers.setLocation(uri);
  361. return new ResponseEntity(headers, HttpStatus.CREATED);
  362. }
  363. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  364. public ResponseEntity<?> update(@RequestBody MPersonalMessageEntity mPersonalMessage) {
  365. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  366. Set<ConstraintViolation<MPersonalMessageEntity>> failures = validator.validate(mPersonalMessage);
  367. if (!failures.isEmpty()) {
  368. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  369. }
  370. //保存
  371. try{
  372. mPersonalMessageService.saveOrUpdate(mPersonalMessage);
  373. } catch (Exception e) {
  374. e.printStackTrace();
  375. return new ResponseEntity(HttpStatus.NO_CONTENT);
  376. }
  377. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  378. return new ResponseEntity(HttpStatus.NO_CONTENT);
  379. }
  380. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  381. @ResponseStatus(HttpStatus.NO_CONTENT)
  382. public void delete(@PathVariable("id") String id) {
  383. mPersonalMessageService.deleteEntityById(MPersonalMessageEntity.class, id);
  384. }
  385. }