CmPageController.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. package com.caimei.modules.cmpage.web;
  2. import com.caimei.constants.common.RedisKeyUtil;
  3. import com.caimei.modules.cmpage.entity.CmPage;
  4. import com.caimei.modules.cmpage.entity.CmPageFreedom;
  5. import com.caimei.modules.cmpage.entity.CmPageHotSearch;
  6. import com.caimei.modules.cmpage.entity.PageNameContent;
  7. import com.caimei.modules.cmpage.service.CmPageDocSynService;
  8. import com.caimei.modules.cmpage.service.CmPageFreedomService;
  9. import com.caimei.modules.cmpage.service.CmPageService;
  10. import com.caimei.modules.opensearch.SearchUitls;
  11. import com.caimei.redis.RedisService;
  12. import com.caimei.utils.StringUtil;
  13. import com.caimei.utils.StringUtils;
  14. import com.google.common.collect.Maps;
  15. import com.thinkgem.jeesite.common.config.Global;
  16. import com.thinkgem.jeesite.common.persistence.Page;
  17. import com.thinkgem.jeesite.common.web.BaseController;
  18. import org.apache.commons.collections.CollectionUtils;
  19. import org.apache.shiro.authz.annotation.RequiresPermissions;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.ui.Model;
  23. import org.springframework.web.bind.annotation.ModelAttribute;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.RequestParam;
  26. import org.springframework.web.bind.annotation.ResponseBody;
  27. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  28. import javax.servlet.http.HttpServletRequest;
  29. import javax.servlet.http.HttpServletResponse;
  30. import java.util.ArrayList;
  31. import java.util.List;
  32. import java.util.Map;
  33. /**
  34. * 网页列表Controller
  35. *
  36. * @author 网页列表
  37. * @version 2017-04-25
  38. */
  39. @Controller
  40. @RequestMapping(value = "${adminPath}/cmpage/cmPage")
  41. public class CmPageController extends BaseController {
  42. @Autowired
  43. private CmPageService cmPageService;
  44. @Autowired
  45. private SearchUitls searchUitls;
  46. @Autowired
  47. private RedisService redisService;
  48. @ModelAttribute
  49. public CmPage get(@RequestParam(required = false) String id) {
  50. CmPage entity = null;
  51. if (com.thinkgem.jeesite.common.utils.StringUtils.isNotBlank(id)) {
  52. entity = cmPageService.get(id);
  53. }
  54. if (entity == null) {
  55. entity = new CmPage();
  56. }
  57. return entity;
  58. }
  59. @RequiresPermissions("cmpage:cmPage:view")
  60. @RequestMapping(value = {"list", ""})
  61. public String list(CmPage cmPage, HttpServletRequest request, HttpServletResponse response, Model model) {
  62. if (StringUtils.equals("2", cmPage.getFlag())) {// 2网页列表(1项目详情/2二级列表/4自由页面/5分类详情/6活动专题)
  63. cmPage.getSqlMap().put("pageType", " AND (a.type=1 OR a.type=2 OR a.type=4 OR a.type=5 OR a.type=6)");
  64. }
  65. Page<CmPage> page = cmPageService.findPage(new Page<CmPage>(request, response), cmPage);
  66. model.addAttribute("page", page);
  67. if (StringUtils.equals("2", cmPage.getFlag())) {
  68. return "modules/cmpage/cmPageList";
  69. }
  70. return "modules/cmpage/cmLecturerPageList";
  71. }
  72. @RequiresPermissions("cmpage:cmPage:view")
  73. @RequestMapping(value = "form")
  74. public String form(CmPage cmPage, Model model) {
  75. model.addAttribute("cmPage", cmPage);
  76. if (StringUtils.equals("21", cmPage.getFlag()) || StringUtils.equals("2", cmPage.getType())) {// 网页列表中的项目详情
  77. return "modules/cmpage/cmPageProjectDetailForm";
  78. }
  79. if (StringUtils.equals("22", cmPage.getFlag()) || StringUtils.equals("1", cmPage.getType())) {// 网页列表中的二级列表
  80. return "modules/cmpage/cmPageSecondaryForm";
  81. }
  82. if (StringUtils.equals("24", cmPage.getFlag()) || StringUtils.equals("4", cmPage.getType())) {// 网页列表中的自由页面
  83. return "modules/cmpage/cmPageFreedomForm";
  84. }
  85. // 网页列表中的分页详情
  86. if (StringUtils.equals("25", cmPage.getFlag()) || StringUtils.equals("5", cmPage.getType())) {
  87. if (StringUtil.isNotBlank(cmPage.getId())) {
  88. List<CmPageHotSearch> hotSearchList = cmPageService.findHotSearch(cmPage.getId());
  89. cmPage.setHotSearchList(hotSearchList);
  90. }
  91. return "modules/cmpage/cmPageDetailsForm";
  92. }
  93. // 网页列表中的活动专题
  94. if (StringUtils.equals("26", cmPage.getFlag()) || StringUtils.equals("6", cmPage.getType())) {
  95. return "modules/cmpage/cmPageActivityForm";
  96. }
  97. return "modules/cmpage/cmLecturerPageForm";
  98. }
  99. @RequiresPermissions("cmpage:cmPage:edit")
  100. @RequestMapping(value = "save")
  101. public String save(CmPage cmPage, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request) {
  102. if (!beanValidator(model, cmPage)) {
  103. return form(cmPage, model);
  104. }
  105. boolean saveFlag = cmPageService.save(cmPage, request);
  106. List<PageNameContent> pageNameContents = cmPage.getPageNameContents();
  107. if (CollectionUtils.isNotEmpty(pageNameContents)) {
  108. for (PageNameContent content : pageNameContents) {
  109. String type = content.getType();
  110. int intType = Integer.parseInt(type);
  111. String content1 = content.getContent();
  112. int stringLengthByUtf8 = StringUtils.getStringLengthByUtf8(content1);
  113. if (intType == 3) {
  114. //富文本数量超过text保存最大数
  115. if (!saveFlag) {
  116. List<String> list = new ArrayList<String>();
  117. list.add(0, "内容编辑框输入字数过多");
  118. addMessage(model, list.toArray(new String[]{}));
  119. return form(cmPage, model);
  120. }
  121. }
  122. }
  123. }
  124. List<CmPageFreedom> cmPageFreedoms = cmPage.getCmPageFreedoms();
  125. if (CollectionUtils.isNotEmpty(cmPageFreedoms)) {
  126. for (CmPageFreedom cmPageFreedom : cmPageFreedoms) {
  127. String type = cmPageFreedom.getType();
  128. int intType = Integer.parseInt(type);
  129. String content = cmPageFreedom.getContent();
  130. int stringLengthByUtf8 = StringUtils.getStringLengthByUtf8(content);
  131. if (intType == 1) {
  132. //富文本数量超过text保存最大数
  133. if (!saveFlag) {
  134. List<String> list = new ArrayList<String>();
  135. list.add(0, "内容编辑框输入字数过多");
  136. addMessage(model, list.toArray(new String[]{}));
  137. return form(cmPage, model);
  138. }
  139. }
  140. }
  141. }
  142. addMessage(redirectAttributes, "保存成功");
  143. if ("2".equals(cmPage.getType())) {
  144. // 更新索引
  145. searchUitls.updateEquipmentIndex(Integer.parseInt(cmPage.getId()));
  146. } else if ("6".equals(cmPage.getType())) {
  147. //清除活动专题缓存
  148. redisService.removePattern("activityData*");
  149. }
  150. if (StringUtils.equals("1", cmPage.getFlag())) { // 1讲师设置页面
  151. return "redirect:" + Global.getAdminPath() + "/cmpage/cmPage/form?id=1";
  152. }
  153. if (StringUtils.equals("2", cmPage.getFlag())) { // 2网页列表(项目详情,二级列表,自由页面)
  154. return "redirect:" + Global.getAdminPath() + "/cmpage/cmPage/?flag=2";
  155. }
  156. return "redirect:" + Global.getAdminPath() + "/cmpage/cmPage/?repage";
  157. }
  158. @RequiresPermissions("cmpage:cmPage:delete")
  159. @RequestMapping(value = "delete")
  160. public String delete(CmPage cmPage, RedirectAttributes redirectAttributes) {
  161. cmPageService.delete(cmPage);
  162. addMessage(redirectAttributes, "删除成功");
  163. return "redirect:" + Global.getAdminPath() + "/cmpage/cmPage?flag=2";
  164. }
  165. @RequiresPermissions("cmpage:cmPage:edit")
  166. @ResponseBody
  167. @RequestMapping(value = "updateEnabledStatus")
  168. public Map<String, Object> updateEnabledStatus(String enabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
  169. Map<String, Object> map = Maps.newLinkedHashMap();
  170. try {
  171. cmPageService.updateEnabledStatusByIds(enabledStatus, ids);
  172. map.put("success", true);
  173. map.put("msg", "修改成功");
  174. } catch (Exception e) {
  175. logger.debug(e.toString(), e);
  176. map.put("success", false);
  177. map.put("msg", "修改失败");
  178. }
  179. return map;
  180. }
  181. /**
  182. * 添加热搜词
  183. */
  184. @RequestMapping("/hotSearchForm")
  185. public String hotSearchForm(CmPageHotSearch cmPageHotSearch, Model model) {
  186. if (cmPageHotSearch.getId() != null) {
  187. cmPageHotSearch = cmPageService.getHotSearch(cmPageHotSearch.getId());
  188. }
  189. model.addAttribute("cmPageHotSearch", cmPageHotSearch);
  190. return "modules/cmpage/cmPageHotSearchForm";
  191. }
  192. /**
  193. * 保存分页详情
  194. */
  195. @RequestMapping("/savePageDetails")
  196. public String savePageDetails(CmPage cmPage, RedirectAttributes redirectAttributes, HttpServletRequest request) {
  197. cmPageService.savePageDetails(cmPage);
  198. cleanRedisCache();
  199. addMessage(redirectAttributes, "保存成功");
  200. return "redirect:" + Global.getAdminPath() + "/cmpage/cmPage/?flag=2";
  201. }
  202. /**
  203. * 有数据变动时需要清除缓存
  204. */
  205. public void cleanRedisCache() {
  206. //热搜词缓存
  207. String getSearchHotWord = "getSearchHotWord::spi";
  208. if (redisService.exists(getSearchHotWord)) {
  209. redisService.remove(getSearchHotWord);
  210. }
  211. }
  212. }