NewPageFloorController.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. package com.caimei.modules.newhome.web;
  2. import com.caimei.modules.hehe.entity.CmHeheProduct;
  3. import com.caimei.modules.hehe.service.CmHeheProductService;
  4. import com.caimei.modules.newhome.entity.NewPageFloor;
  5. import com.caimei.modules.newhome.entity.NewPageFloorContent;
  6. import com.caimei.modules.newhome.entity.NewPageFloorImage;
  7. import com.caimei.modules.newhome.service.NewPageFloorService;
  8. import com.caimei.modules.opensearch.GenerateUtils;
  9. import com.caimei.modules.product.entity.Product;
  10. import com.caimei.modules.product.service.ProductService;
  11. import com.caimei.redis.RedisService;
  12. import com.google.common.collect.Maps;
  13. import com.thinkgem.jeesite.common.config.Global;
  14. import com.thinkgem.jeesite.common.persistence.Page;
  15. import com.thinkgem.jeesite.common.utils.StringUtils;
  16. import com.thinkgem.jeesite.common.web.BaseController;
  17. import org.apache.shiro.authz.annotation.RequiresPermissions;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Controller;
  20. import org.springframework.ui.Model;
  21. import org.springframework.web.bind.annotation.ModelAttribute;
  22. import org.springframework.web.bind.annotation.RequestMapping;
  23. import org.springframework.web.bind.annotation.RequestParam;
  24. import org.springframework.web.bind.annotation.ResponseBody;
  25. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  26. import javax.annotation.Resource;
  27. import javax.servlet.http.HttpServletRequest;
  28. import javax.servlet.http.HttpServletResponse;
  29. import java.text.SimpleDateFormat;
  30. import java.util.Calendar;
  31. import java.util.Date;
  32. import java.util.List;
  33. import java.util.Map;
  34. import static com.caimei.modules.newhome.web.NewPageQualitySupplierController.isInteger;
  35. /**
  36. * 楼层管理Controller
  37. *
  38. * @author ye.qin
  39. * @version 2019-03-14
  40. */
  41. @Controller
  42. @RequestMapping(value = "${adminPath}/newhome/newPageFloor")
  43. public class NewPageFloorController extends BaseController {
  44. @Autowired
  45. private NewPageFloorService newPageFloorService;
  46. @Autowired
  47. private ProductService productService;
  48. @Autowired
  49. private CmHeheProductService cmHeheProductService;
  50. @Autowired
  51. private RedisService redisService;
  52. @Resource
  53. private GenerateUtils generateUtils;
  54. @ModelAttribute
  55. public NewPageFloor get(@RequestParam(required = false) String id) {
  56. NewPageFloor entity = null;
  57. if (StringUtils.isNotBlank(id)) {
  58. entity = newPageFloorService.get(id);
  59. }
  60. if (entity == null) {
  61. entity = new NewPageFloor();
  62. }
  63. return entity;
  64. }
  65. @RequiresPermissions("newhome:newPageFloor:view")
  66. @RequestMapping(value = {"list", ""})
  67. public String list(NewPageFloor newPageFloor, HttpServletRequest request, HttpServletResponse response, Model model) {
  68. Page<NewPageFloor> page = newPageFloorService.findPage(new Page<NewPageFloor>(request, response), newPageFloor);
  69. model.addAttribute("page", page);
  70. return "modules/newhome/newPageFloorList";
  71. }
  72. @RequestMapping(value = {"lists"})
  73. public String lists(NewPageFloor newPageFloor, HttpServletRequest request, HttpServletResponse response, Model model) {
  74. Page<NewPageFloor> page = newPageFloorService.floorFindList(new Page<NewPageFloor>(request, response), newPageFloor);
  75. model.addAttribute("page", page);
  76. return "modules/newhome/newPageFloorLists";
  77. }
  78. @RequiresPermissions("newhome:newPageFloor:view")
  79. @RequestMapping(value = "form")
  80. public String form(NewPageFloor newPageFloor, Model model) {
  81. model.addAttribute("newPageFloor", newPageFloor);
  82. return "modules/newhome/newPageFloorForm";
  83. }
  84. @RequiresPermissions("newhome:newPageFloor:edit")
  85. @RequestMapping(value = "save")
  86. public String save(Integer floor,NewPageFloor newPageFloor, Model model, RedirectAttributes redirectAttributes) {
  87. if (!beanValidator(model, newPageFloor)) {
  88. return form(newPageFloor, model);
  89. }
  90. newPageFloorService.save(newPageFloor);
  91. cleanRedisCache();
  92. addMessage(redirectAttributes, "保存楼层管理成功");
  93. if(floor!=null){
  94. return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/lists";
  95. }else {
  96. return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor";
  97. }
  98. }
  99. @RequiresPermissions("newhome:newPageFloor:delete")
  100. @RequestMapping(value = "delete")
  101. public String delete(Integer floor,NewPageFloor newPageFloor, RedirectAttributes redirectAttributes) {
  102. newPageFloorService.delete(newPageFloor);
  103. cleanRedisCache();
  104. addMessage(redirectAttributes, "删除楼层管理成功");
  105. if(floor!=null){
  106. return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/lists";
  107. }else {
  108. return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/?repage";
  109. }
  110. }
  111. @RequiresPermissions("newhome:newPageHomeimage:edit")
  112. @ResponseBody
  113. @RequestMapping(value = "updateEnabledStatus")
  114. public Map<String, Object> updateEnabledStatus(String enabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
  115. Map<String, Object> map = Maps.newLinkedHashMap();
  116. try {
  117. newPageFloorService.updateEnabledStatusByIds(enabledStatus, ids);
  118. cleanRedisCache();
  119. map.put("success", true);
  120. map.put("msg", "修改成功");
  121. } catch (Exception e) {
  122. logger.debug(e.toString(), e);
  123. map.put("success", false);
  124. map.put("msg", "修改失败");
  125. }
  126. return map;
  127. }
  128. @RequiresPermissions("newhome:newPageHomeimage:edit")
  129. @ResponseBody
  130. @RequestMapping(value = "updateCrmEnabledStatusByIds")
  131. public Map<String, Object> updateCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
  132. Map<String, Object> map = Maps.newLinkedHashMap();
  133. try {
  134. newPageFloorService.updateCrmEnabledStatusByIds(crmEnabledStatus, ids);
  135. cleanRedisCache();
  136. map.put("success", true);
  137. map.put("msg", "修改成功");
  138. } catch (Exception e) {
  139. logger.debug(e.toString(), e);
  140. map.put("success", false);
  141. map.put("msg", "修改失败");
  142. }
  143. return map;
  144. }
  145. @RequestMapping(value = "goContentPage")
  146. public String goContentPage(NewPageFloorContent floorContent, Model model) {
  147. floorContent = newPageFloorService.findFloorContent(floorContent.getFloorId());
  148. model.addAttribute("floorContent", floorContent);
  149. return "modules/newhome/newPageFloorContentForm";
  150. }
  151. @RequestMapping(value = "ContentPage")
  152. public String ContentPage(NewPageFloor newPageFloor,Product product, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception{
  153. Page<Product> list =productService.newfindProductImage(new Page<Product>(request, response),product);
  154. Integer count= newPageFloorService.countrecommend();
  155. model.addAttribute("count",count);
  156. model.addAttribute("page", list);
  157. model.addAttribute("date", new Date());
  158. model.addAttribute("newPageFloor",newPageFloor);
  159. model.addAttribute("Product",product);
  160. return "modules/newhome/newFloorcontentForm";
  161. }
  162. /**
  163. * 批量更新排序值
  164. */
  165. @RequestMapping(value = "batchSaveSort")
  166. @ResponseBody
  167. public Map<String, Object> batchSaveSort(String sortList) {
  168. Map<String, Object> map = Maps.newLinkedHashMap();
  169. try {
  170. String[] newPageLists = sortList.split(",");
  171. for (String list : newPageLists) {
  172. String[] split = list.split("-");
  173. if (split.length == 1 || split.length < 1) {
  174. String id = split[0];
  175. String sort = null;
  176. newPageFloorService.saveSort(sort, id);
  177. } else {
  178. String id = split[0];
  179. String sort = split[1];
  180. if (isInteger(sort)) {
  181. if (StringUtils.equals("0", sort)) {
  182. map.put("success", false);
  183. map.put("msg", "排序值只能填写大于等于1的整数");
  184. return map;
  185. }
  186. newPageFloorService.saveSort(sort, id);
  187. } else {
  188. map.put("success", false);
  189. map.put("msg", "排序值只能为数字");
  190. return map;
  191. }
  192. }
  193. }
  194. cleanRedisCache();
  195. map.put("success", true);
  196. map.put("msg", "更新排序成功");
  197. return map;
  198. } catch (Exception e) {
  199. map.put("success", false);
  200. map.put("msg", "更新排序失败");
  201. return map;
  202. }
  203. }
  204. @RequestMapping(value = "batchSavesortIndex")
  205. @ResponseBody
  206. public Map<String, Object> batchSavesortIndex(String sortList) {
  207. Map<String, Object> map = Maps.newLinkedHashMap();
  208. try {
  209. String[] newPageLists = sortList.split(",");
  210. for (String list : newPageLists) {
  211. String[] split = list.split("-");
  212. if (split.length < 1) {
  213. String id = split[0];
  214. String sortIndex = null;
  215. newPageFloorService.savesortIndex(sortIndex, id);
  216. } else {
  217. String id = split[0];
  218. String sortIndex = split[1];
  219. if (isInteger(sortIndex)) {
  220. if (StringUtils.equals("0", sortIndex)) {
  221. map.put("success", false);
  222. map.put("msg", "排序值只能填写大于等于1的整数");
  223. return map;
  224. }
  225. newPageFloorService.savesortIndex(sortIndex, id);
  226. } else {
  227. map.put("success", false);
  228. map.put("msg", "排序值只能为数字");
  229. return map;
  230. }
  231. }
  232. }
  233. cleanRedisCache();
  234. map.put("success", true);
  235. map.put("msg", "更新排序成功");
  236. return map;
  237. } catch (Exception e) {
  238. map.put("success", false);
  239. map.put("msg", "更新排序失败");
  240. return map;
  241. }
  242. }
  243. /**
  244. * 添加商品
  245. */
  246. @RequestMapping("/addProductImage")
  247. public String addProductImage(Product product, Model model, HttpServletRequest request, HttpServletResponse response) {
  248. product.setValidFlag("2");
  249. Page<Product> page = productService.findProductImage(new Page<Product>(request, response), product);
  250. model.addAttribute("page", page);
  251. model.addAttribute("productCategory", product.getProductCategory());
  252. model.addAttribute("productIds", product.getProductIds());
  253. return "modules/newhome/addProductImage";
  254. }
  255. /**
  256. * 活动专题添加图片
  257. */
  258. @RequestMapping("/addActivityImage")
  259. public String addActivityImage(Product product, String type, Integer templateType, NewPageFloorImage newPageFloorImage, Model model, HttpServletRequest request, HttpServletResponse response) {
  260. if ("productImage".equals(type)) {
  261. product.setValidFlag("2");
  262. Page<Product> page = productService.findProductImage(new Page<Product>(request, response), product);
  263. model.addAttribute("page", page);
  264. model.addAttribute("productCategory", product.getProductCategory());
  265. model.addAttribute("productIds", product.getProductIds());
  266. return "modules/newhome/addProductImage";
  267. } else {
  268. //图片建议尺寸
  269. String pcImageSize = "";
  270. String appletsImageSize = "";
  271. if (templateType != null) {
  272. if (templateType > 50) {
  273. //移动端模板序号处理
  274. templateType = templateType - 50;
  275. }
  276. if (templateType == 1) {
  277. pcImageSize = "184px*184px";
  278. appletsImageSize = "164px*164px";
  279. } else if (templateType == 2) {
  280. pcImageSize = "370px*260px";
  281. appletsImageSize = "224px*156px";
  282. } else if (templateType == 3) {
  283. pcImageSize = "168px*168px";
  284. appletsImageSize = "202px*202px";
  285. } else if (templateType == 4) {
  286. pcImageSize = "560px*290px";
  287. appletsImageSize = "702px*360px";
  288. } else if (templateType == 5 || templateType == 6) {
  289. pcImageSize = "370px*210px";
  290. if (templateType == 5) {
  291. appletsImageSize = "310px*220px";
  292. } else if (templateType == 6) {
  293. appletsImageSize = "339px*240px";
  294. }
  295. } else if (templateType == 7) {
  296. pcImageSize = "270px*210px";
  297. appletsImageSize = "310px*240px";
  298. } else if (templateType == 8 || templateType == 9) {
  299. pcImageSize = "560px*350px";
  300. if (templateType == 8) {
  301. appletsImageSize = "702px*360px";
  302. } else {
  303. appletsImageSize = "339px*210px";
  304. }
  305. } else if (templateType == 10) {
  306. pcImageSize = "1140px*340px";
  307. appletsImageSize = "750px*342px";
  308. } else if (templateType == 22) {
  309. pcImageSize = "384px*260px";
  310. appletsImageSize = "339px*230px";
  311. } else if (templateType == 23) {
  312. pcImageSize = "284px*220px";
  313. appletsImageSize = "310px*240px";
  314. } else if (templateType == 24) {
  315. pcImageSize = "588px*360px";
  316. appletsImageSize = "339px*210px";
  317. } else if (templateType == 25) {
  318. pcImageSize = "588px*360px";
  319. appletsImageSize = "702px*360px";
  320. } else if (templateType == 26) {
  321. pcImageSize = "384px*260px";
  322. appletsImageSize = "339px*230px";
  323. } else if (templateType == 27) {
  324. pcImageSize = "282px*220px";
  325. appletsImageSize = "310px*240px";
  326. } else if (templateType == 28) {
  327. pcImageSize = "588px*320px";
  328. appletsImageSize = "339px*210px";
  329. } else if (templateType == 29) {
  330. pcImageSize = "588px*360px";
  331. appletsImageSize = "702px*360px";
  332. }
  333. pcImageSize = "建议图片尺寸" + pcImageSize;
  334. appletsImageSize = "建议图片尺寸" + appletsImageSize;
  335. }
  336. model.addAttribute("pcImageSize", pcImageSize);
  337. model.addAttribute("appletsImageSize", appletsImageSize);
  338. model.addAttribute("type", type);
  339. model.addAttribute("floorImage", newPageFloorImage);
  340. return "modules/newhome/addActivityAdsImage";
  341. }
  342. }
  343. /**
  344. * 呵呵商城首页楼层添加图片
  345. */
  346. @RequestMapping("/addHeheImage")
  347. public String addHeheImage(Product product, Model model, HttpServletRequest request, HttpServletResponse response) {
  348. Page<Product> page = cmHeheProductService.findHeheFloorProduct(new Page<Product>(request, response), product);
  349. model.addAttribute("page", page);
  350. model.addAttribute("productCategory", product.getProductCategory());
  351. model.addAttribute("productIds", product.getProductIds());
  352. return "modules/hehe/addHeheProductImage";
  353. }
  354. /**
  355. * 添加其他图片
  356. */
  357. @RequestMapping("/addOtherImage")
  358. public String addOtherImage(NewPageFloorImage floorImage, Model model) {
  359. model.addAttribute("floorImage", floorImage);
  360. return "modules/newhome/addOtherImage";
  361. }
  362. /**
  363. * 楼层内容保存
  364. */
  365. @RequestMapping("/saveFloorContent")
  366. public String saveFloorContent(NewPageFloorContent floorContent, RedirectAttributes redirectAttributes) {
  367. newPageFloorService.saveFloorContent(floorContent);
  368. cleanRedisCache();
  369. addMessage(redirectAttributes, "保存成功");
  370. if (floorContent.getFloorId() != null) {
  371. return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/?repage";
  372. } else if (StringUtils.isNotBlank(floorContent.getFormType())) {
  373. if (floorContent.getRedirectFlag() == 1) {
  374. return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/?pageId=" + floorContent.getPageId() + "&type=" + floorContent.getFormType();
  375. } else {
  376. return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/goContentPage?centreId=" + floorContent.getCentreId() + "&pageId=" + floorContent.getPageId() + "&type=" + floorContent.getFormType();
  377. }
  378. } else {
  379. return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/?pageId=" + floorContent.getPageId() + "&type=5";
  380. }
  381. }
  382. @RequestMapping("/showTemplate")
  383. public String showTemplate() {
  384. return "modules/newhome/showTemplate";
  385. }
  386. /**
  387. * 有数据变动时需要清除缓存
  388. */
  389. public void cleanRedisCache() {
  390. //清除活动专题缓存
  391. redisService.removePattern("getPageFloorData*");
  392. //清除活动专题缓存
  393. redisService.removePattern("activityData*");
  394. //清除产品仪器缓存
  395. redisService.removePattern("instrumentData*");
  396. redisService.removePattern("insCommodityData*");
  397. //首页缓存
  398. String homeData = "getHomeData*";
  399. redisService.removePattern(homeData);
  400. redisService.removePattern("getHomeCommodityData*");
  401. // 重新生成静态首页
  402. generateUtils.generateHome();
  403. }
  404. @RequestMapping(value = "updatshowFlag")
  405. public String updatshowFlag(Product product,String floorTitle,Integer floorType, Model model) {
  406. model.addAttribute("floorTitle",floorTitle);
  407. model.addAttribute("floorType",floorType);
  408. newPageFloorService.updatshowFlag(product);
  409. return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/ContentPage";
  410. }
  411. @RequestMapping(value = "updateshowTime")
  412. public String updateshowTime(Product product,String floorTitle,Integer floorType, Model model) {
  413. /**
  414. * 判断时间更改展示状态
  415. */
  416. newPageFloorService.updateshowTime(product);
  417. int num=0;
  418. int nums=0;
  419. if(product.getNewshowTime() !=null && product.getNewshowTime()!=""){
  420. num= product.getShowTime().compareTo(product.getNewshowTime());
  421. if(num>0){
  422. product.setShowFlag(1);
  423. }else {product.setShowFlag(2);}
  424. }else if (product.getAddTime()!=null && product.getAddTime()!=""){
  425. nums= product.getShowTime().compareTo(product.getAddTime());
  426. if ( nums>0){
  427. product.setShowFlag(1);
  428. }else {
  429. product.setShowFlag(2);
  430. }
  431. }
  432. newPageFloorService.updatshowFlag(product);
  433. model.addAttribute("floorTitle",floorTitle);
  434. model.addAttribute("floorType",floorType);
  435. return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/ContentPage";
  436. }
  437. @RequestMapping("/addrecommend")
  438. public String addrecommend(Product product,String floorTitle,Integer floorType, Model model) {
  439. model.addAttribute("floorTitle",floorTitle);
  440. model.addAttribute("floorType",floorType);
  441. newPageFloorService.updatrecommend(product);
  442. return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/ContentPage";
  443. }
  444. }