NewPageQualitySupplierController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. package com.caimei.modules.newhome.web;
  2. import javax.annotation.Resource;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import com.caimei.constants.common.RedisKeyUtil;
  6. import com.caimei.modules.newhome.entity.NewPageQualitySupplierImage;
  7. import com.caimei.modules.opensearch.GenerateUtils;
  8. import com.caimei.modules.product.entity.CmBigtype;
  9. import com.caimei.modules.product.entity.CmProductCombination;
  10. import com.caimei.modules.product.entity.Product;
  11. import com.caimei.redis.RedisService;
  12. import com.caimei.utils.AppUtils;
  13. import com.google.common.collect.Maps;
  14. import org.apache.commons.collections.CollectionUtils;
  15. import org.apache.shiro.authz.annotation.RequiresPermissions;
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.ui.Model;
  18. import org.springframework.web.bind.annotation.ModelAttribute;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RequestParam;
  21. import org.springframework.web.bind.annotation.ResponseBody;
  22. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  23. import com.thinkgem.jeesite.common.config.Global;
  24. import com.thinkgem.jeesite.common.persistence.Page;
  25. import com.thinkgem.jeesite.common.web.BaseController;
  26. import com.thinkgem.jeesite.common.utils.StringUtils;
  27. import com.caimei.modules.newhome.entity.NewPageQualitySupplier;
  28. import com.caimei.modules.newhome.service.NewPageQualitySupplierService;
  29. import java.util.List;
  30. import java.util.Map;
  31. import java.util.regex.Pattern;
  32. /**
  33. * 优质供应商Controller
  34. *
  35. * @author ye.qiin
  36. * @version 2019-03-18
  37. */
  38. @Controller
  39. @RequestMapping(value = "${adminPath}/newhome/newPageQualitySupplier")
  40. public class NewPageQualitySupplierController extends BaseController {
  41. @Resource
  42. private NewPageQualitySupplierService newPageQualitySupplierService;
  43. @Resource
  44. private RedisService redisService;
  45. @Resource
  46. private GenerateUtils generateUtils;
  47. @ModelAttribute
  48. public NewPageQualitySupplier get(@RequestParam(required = false) String id) {
  49. NewPageQualitySupplier entity = null;
  50. if (StringUtils.isNotBlank(id)) {
  51. entity = newPageQualitySupplierService.get(id);
  52. }
  53. if (entity == null) {
  54. entity = new NewPageQualitySupplier();
  55. }
  56. return entity;
  57. }
  58. @RequiresPermissions("newhome:newPageQualitySupplier:view")
  59. @RequestMapping(value = {"list", ""})
  60. public String list(NewPageQualitySupplier newPageQualitySupplier, HttpServletRequest request, HttpServletResponse response, Model model) {
  61. Page<NewPageQualitySupplier> page = newPageQualitySupplierService.findPage(new Page<NewPageQualitySupplier>(request, response), newPageQualitySupplier);
  62. model.addAttribute("page", page);
  63. return "modules/newhome/newPageQualitySupplierList";
  64. }
  65. @RequiresPermissions("newhome:newPageQualitySupplier:view")
  66. @RequestMapping(value = "form")
  67. public String form(NewPageQualitySupplier newPageQualitySupplier, Model model) {
  68. model.addAttribute("newPageQualitySupplier", newPageQualitySupplier);
  69. return "modules/newhome/newPageQualitySupplierForm";
  70. }
  71. @RequiresPermissions("newhome:newPageQualitySupplier:view")
  72. @RequestMapping(value = "product")
  73. public String productList(NewPageQualitySupplier newPageQualitySupplier, Model model) {
  74. List<Product> productList = newPageQualitySupplierService.findSupplierProducts(newPageQualitySupplier);
  75. model.addAttribute("productList", productList);
  76. model.addAttribute("newPageQualitySupplier", newPageQualitySupplier);
  77. return "modules/newhome/newPageProductList";
  78. }
  79. @RequestMapping(value = "batchSaveSorts")
  80. @ResponseBody
  81. public Map<String, Object> batchSaveSorts(String newProducSorttList, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) {
  82. Map<String, Object> map = Maps.newLinkedHashMap();
  83. try {
  84. String[] newPageLists = newProducSorttList.split(",");
  85. for(String list:newPageLists){
  86. String[] split = list.split("-");
  87. if(split.length == 1 || split.length < 1){
  88. map.put("success",false);
  89. map.put("msg", "排序值不能为空!");
  90. return map;
  91. }
  92. String s = split[1];
  93. //判断是否是数字,或者为空
  94. if(StringUtils.isNotEmpty(s)){
  95. if( isInteger(s)){
  96. String id = split[0];
  97. String sort = split[1];
  98. //保存数据,
  99. newPageQualitySupplierService.saveBatchSort(sort,id);
  100. }else{
  101. map.put("success",false);
  102. map.put("msg", "排序值只能为数字");
  103. return map;
  104. }
  105. }else{
  106. map.put("success",false);
  107. map.put("msg", "排序值不能为空!");
  108. return map;
  109. }
  110. }
  111. map.put("success",true);
  112. map.put("msg", "更新排序成功");
  113. return map;
  114. } catch (Exception e) {
  115. map.put("success",false);
  116. map.put("msg", "更新排序失败");
  117. return map;
  118. }
  119. }
  120. @RequiresPermissions("newhome:newPageQualitySupplier:view")
  121. @RequestMapping(value = "productDel")
  122. public String productDel(NewPageQualitySupplier newPageQualitySupplier, RedirectAttributes redirectAttributes) {
  123. newPageQualitySupplierService.productDel(Integer.valueOf(newPageQualitySupplier.getId()),newPageQualitySupplier.getProductId());
  124. addMessage(redirectAttributes, "删除成功");
  125. return "redirect:" + Global.getAdminPath() + "/newhome/newPageQualitySupplier/product?id=" + newPageQualitySupplier.getId();
  126. }
  127. @RequestMapping(value = "toAddProduct")
  128. public String toAddProduct(Product product, Page page, Model model) {
  129. //获取采美所有商品
  130. if (0 == page.getPageSize() || -1 == page.getPageSize()) page.setPageSize(30);
  131. if (0 == page.getPageNo()) page.setPageNo(1);
  132. product.setPage(page);
  133. List<Product> productList = newPageQualitySupplierService.findProductList(product);
  134. if (CollectionUtils.isNotEmpty(productList)) {
  135. for (Product p : productList) {
  136. p.setMainImage(AppUtils.getProductImageURL(p.getMainImage(), 0, Global.getConfig("wwwServer")));
  137. }
  138. }
  139. page.setList(productList);
  140. model.addAttribute("page", page);
  141. model.addAttribute("Product", product);
  142. return "modules/newhome/toSelectProduct";
  143. }
  144. @ResponseBody
  145. @RequestMapping(value = "saveAddProduct")
  146. public Map<String, Object> saveAddProduct(String productIds,Integer id) {
  147. Map<String, Object> map = Maps.newLinkedHashMap();
  148. try {
  149. String[] split = productIds.split(",");
  150. //保存商品添加的组合
  151. newPageQualitySupplierService.addProducts(id,split);
  152. map.put("success", true);
  153. map.put("msg", "添加成功");
  154. } catch (Exception e) {
  155. logger.debug(e.toString(), e);
  156. map.put("success", false);
  157. map.put("msg", "添加失败");
  158. }
  159. return map;
  160. }
  161. @RequiresPermissions("newhome:newPageQualitySupplier:view")
  162. @RequestMapping(value = "formImage")
  163. public String formImage(NewPageQualitySupplierImage newPageQualitySupplierImage, Model model) {
  164. NewPageQualitySupplierImage image = newPageQualitySupplierService.getImage();
  165. model.addAttribute("NewPageQualitySupplierImage", image);
  166. return "modules/newhome/newPageQualitySupplierImage";
  167. }
  168. @RequiresPermissions("newhome:newPageQualitySupplier:edit")
  169. @RequestMapping(value = "saveImage")
  170. public String saveImage(NewPageQualitySupplierImage newPageQualitySupplierImage, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) {
  171. if (!beanValidator(model, newPageQualitySupplierImage)) {
  172. return formImage(newPageQualitySupplierImage, model);
  173. }
  174. if (checkValidator(model, newPageQualitySupplierImage)) {
  175. return formImage(newPageQualitySupplierImage, model);
  176. }
  177. newPageQualitySupplierService.saveImage(newPageQualitySupplierImage, request);
  178. cleanRedisCache();
  179. addMessage(redirectAttributes, "保存供应商广告图成功");
  180. return "redirect:" + Global.getAdminPath() + "/newhome/newPageQualitySupplier/";
  181. }
  182. private boolean checkValidator(Model model, NewPageQualitySupplierImage image) {
  183. if (!beanValidator(model, image)) {
  184. return true;
  185. }
  186. if (StringUtils.isEmpty(image.getWwwImage())) {
  187. model.addAttribute("errorMsg", "请上传网站端图!");
  188. return true;
  189. }
  190. if (StringUtils.isEmpty(image.getCrmImage())) {
  191. model.addAttribute("errorMsg", "请上传小程序端图!");
  192. return true;
  193. }
  194. return false;
  195. }
  196. @RequiresPermissions("newhome:newPageQualitySupplier:edit")
  197. @RequestMapping(value = "batchSaveSort")
  198. @ResponseBody
  199. public Map<String, Object> batchSaveSort(String newPageList, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) {
  200. Map<String, Object> map = Maps.newLinkedHashMap();
  201. try {
  202. String[] newPageLists = newPageList.split(",");
  203. for (String list : newPageLists) {
  204. String[] split = list.split("-");
  205. String s = split[1];//判断是否是数字,或者为空
  206. if (StringUtils.isNotEmpty(s)) {
  207. if (isInteger(s)) {
  208. NewPageQualitySupplier newPageQualitySupplier = new NewPageQualitySupplier();
  209. newPageQualitySupplier.setId(split[0]);
  210. newPageQualitySupplier.setSort(split[1]);
  211. newPageQualitySupplierService.saveSort(newPageQualitySupplier, request);
  212. } else {
  213. map.put("success", false);
  214. map.put("msg", "排序值只能为数字");
  215. return map;
  216. }
  217. } else {
  218. map.put("success", false);
  219. map.put("msg", "排序不能为空");
  220. return map;
  221. }
  222. }
  223. cleanRedisCache();
  224. map.put("success", true);
  225. map.put("msg", "保存排序成功");
  226. return map;
  227. } catch (Exception e) {
  228. map.put("success", false);
  229. map.put("msg", "更新排序失败,排序不能为空");
  230. return map;
  231. }
  232. }
  233. public static boolean isInteger(String str) {
  234. Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
  235. return pattern.matcher(str).matches();
  236. }
  237. @RequiresPermissions("newhome:newPageQualitySupplier:edit")
  238. @RequestMapping(value = "save")
  239. public String save(NewPageQualitySupplier newPageQualitySupplier, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) {
  240. if (!beanValidator(model, newPageQualitySupplier)) {
  241. return form(newPageQualitySupplier, model);
  242. }
  243. newPageQualitySupplierService.save(newPageQualitySupplier, request);
  244. cleanRedisCache();
  245. addMessage(redirectAttributes, "保存优质供应商成功");
  246. return "redirect:" + Global.getAdminPath() + "/newhome/newPageQualitySupplier/?repage";
  247. }
  248. @RequiresPermissions("newhome:newPageQualitySupplier:delete")
  249. @RequestMapping(value = "delete")
  250. public String delete(NewPageQualitySupplier newPageQualitySupplier, RedirectAttributes redirectAttributes) {
  251. newPageQualitySupplierService.delete(newPageQualitySupplier);
  252. cleanRedisCache();
  253. addMessage(redirectAttributes, "删除优质供应商成功");
  254. return "redirect:" + Global.getAdminPath() + "/newhome/newPageQualitySupplier/?repage";
  255. }
  256. @RequiresPermissions("newhome:newPageHomeimage:edit")
  257. @ResponseBody
  258. @RequestMapping(value = "updateEnabledStatus")
  259. public Map<String, Object> updateEnabledStatus(String enabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
  260. Map<String, Object> map = Maps.newLinkedHashMap();
  261. try {
  262. newPageQualitySupplierService.updateEnabledStatusByIds(enabledStatus, ids);
  263. cleanRedisCache();
  264. map.put("success", true);
  265. map.put("msg", "修改成功");
  266. } catch (Exception e) {
  267. logger.debug(e.toString(), e);
  268. map.put("success", false);
  269. map.put("msg", "修改失败");
  270. }
  271. return map;
  272. }
  273. @RequiresPermissions("newhome:newPageHomeimage:edit")
  274. @ResponseBody
  275. @RequestMapping(value = "updateCrmEnabledStatusByIds")
  276. public Map<String, Object> updateCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
  277. Map<String, Object> map = Maps.newLinkedHashMap();
  278. try {
  279. newPageQualitySupplierService.updateCrmEnabledStatusByIds(crmEnabledStatus, ids);
  280. cleanRedisCache();
  281. map.put("success", true);
  282. map.put("msg", "修改成功");
  283. } catch (Exception e) {
  284. logger.debug(e.toString(), e);
  285. map.put("success", false);
  286. map.put("msg", "修改失败");
  287. }
  288. return map;
  289. }
  290. /**
  291. * 有数据变动时需要清除缓存
  292. */
  293. public void cleanRedisCache() {
  294. //首页缓存
  295. String homeData = "getHomeData*";
  296. redisService.removePattern(homeData);
  297. redisService.removePattern("getHomeCommodityData*");
  298. // 重新生成静态首页
  299. generateUtils.generateHome();
  300. }
  301. }