package com.matrix.system.shopXcx.action; import com.alibaba.fastjson.JSONObject; import com.matrix.core.anotations.RemoveRequestToken; import com.matrix.core.anotations.SaveRequestToken; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.constance.SystemErrorCode; import com.matrix.core.constance.SystemMessageCode; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.tools.ServiceUtil; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.shopXcx.bean.ShopAdvertis; import com.matrix.system.shopXcx.bean.ShopAdvertisType; import com.matrix.system.shopXcx.dao.ShopAdvertisDao; import com.matrix.system.shopXcx.dao.ShopAdvertisTypeDao; import com.matrix.system.shopXcx.shopEnum.ShopAdNodeType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * @author jiangyouyao * @description 广告分类表 * @date 2019-06-05 11:02 */ @Controller @RequestMapping(value = "admin/shopAdvertisType") public class ShopAdvertisTypeAction { @Autowired private ShopAdvertisTypeDao shopAdvertisTypeDao; @Autowired private ServiceUtil serviceUtil; //记录编辑前的值Before_Edit_Value public static final String BEV = "ShopAdvertisType_BEV"; @Autowired private ShopAdvertisDao shopAdvertisDao; /** * 列表显示 */ @RequestMapping(value = "/showList") public @ResponseBody AjaxResult showList(ShopAdvertisType shopAdvertisType, PaginationVO pageVo) { QueryUtil.setQueryLimitCom(shopAdvertisType); List dataList = shopAdvertisTypeDao.selectInPage(shopAdvertisType, pageVo); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, shopAdvertisTypeDao.selectTotalRecord(shopAdvertisType)); return result; } /** * 新增 */ @RemoveRequestToken @RequestMapping(value = "/addShopAdvertisType") public @ResponseBody AjaxResult addShopAdvertisType(ShopAdvertisType shopAdvertisType) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); shopAdvertisType.setCreateBy(user.getSuName()); shopAdvertisType.setUpdateBy(user.getSuName()); shopAdvertisType.setShopId(user.getShopId()); shopAdvertisType.setCompanyId(user.getCompanyId()); //检查广告类别编号是否重复 boolean b = serviceUtil.addCheckRepeat("shop_advertis_type", "adt_code", shopAdvertisType.getAdtCode()); if (b) { return new AjaxResult(AjaxResult.STATUS_FAIL, "广告类别编号已经存在"); } //检查广告类别名称是否重复 boolean c = serviceUtil.addCheckRepeat("shop_advertis_type", "adt_name", shopAdvertisType.getAdtName()); if (c) { return new AjaxResult(AjaxResult.STATUS_FAIL, "广告类别名称已经存在"); } int i = shopAdvertisTypeDao.insert(shopAdvertisType); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, "广告分类表"); } else { throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL); } } /** * TODO 完善本方法 */ @RemoveRequestToken @RequestMapping(value = "/modifyShopAdvertisType") public @ResponseBody AjaxResult modifyShopAdvertisType(@RequestBody ShopAdvertisType newShopAdvertisType) { SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); if (StringUtils.isNotBlank(newShopAdvertisType.getNodeStyle())) { String style = newShopAdvertisType.getNodeStyle(); style = style.replaceAll("px", "rpx") .replaceAll("\"", "") .replaceAll("\\{", "") .replaceAll("}", "") .replaceAll(",", ";"); newShopAdvertisType.setNodeStyle(style); } if (newShopAdvertisType.getAdtId() == null) { newShopAdvertisType.setCreateBy(user.getSuName()); newShopAdvertisType.setUpdateBy(user.getSuName()); newShopAdvertisType.setCompanyId(user.getCompanyId()); shopAdvertisTypeDao.insert(newShopAdvertisType); } else { shopAdvertisTypeDao.updateByModel(newShopAdvertisType); } if(CollectionUtils.isNotEmpty(newShopAdvertisType.getAds())){ if(newShopAdvertisType.getAdtId()!=null){ ShopAdvertis queryAd=new ShopAdvertis(); queryAd.setTypeId(newShopAdvertisType.getAdtId()); shopAdvertisDao.deleteByModel(queryAd); } List collect = newShopAdvertisType.getAds().stream() .filter(ad -> ad != null && StringUtils.isNotBlank(ad.getImgUrl())) .collect(Collectors.toList()); collect.forEach(ad -> { ad.setCreateBy(user.getSuName()); ad.setUpdateBy(user.getSuName()); ad.setCompanyId(user.getCompanyId()); ad.setTypeId(newShopAdvertisType.getAdtId()); }); shopAdvertisDao.batchInsert(collect); } return AjaxResult.buildSuccessInstance("修改成功"); } /** * 进入修改界面 */ @SaveRequestToken @RequestMapping(value = "/editForm") public ModelAndView editForm(Integer id) { ShopAdvertisType shopAdvertisType = new ShopAdvertisType(); ModelAndView modelAndView = new ModelAndView("admin/shop/shopAdvertisType-form"); if (id != null) { shopAdvertisType = shopAdvertisTypeDao.selectById(id); WebUtil.setSessionAttribute(BEV, shopAdvertisType); } modelAndView.addObject("obj", shopAdvertisType); return modelAndView; } /** * 删除 */ @RequestMapping(value = "/del") public @ResponseBody AjaxResult del(String keys) { List ids = StringUtils.strToCollToString(keys, ","); int i = shopAdvertisTypeDao.deleteByIds(ids); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.DELETE_SUCCES, i); } else { throw new GlobleException(SystemErrorCode.DATA_DELETE_FAIL); } } /** * 查询所有 */ @RequestMapping(value = "/getAll") public @ResponseBody AjaxResult getAll() { ShopAdvertisType advertisType=new ShopAdvertisType(); QueryUtil.setQueryLimitCom(advertisType); List typeList = shopAdvertisTypeDao.selectByModel(advertisType); return new AjaxResult(AjaxResult.STATUS_SUCCESS, typeList); } /** * 进入修改界面 */ @SaveRequestToken @RequestMapping(value = "/selectById") public @ResponseBody AjaxResult selectById(Integer id) { ShopAdvertisType shopAdvertisType = shopAdvertisTypeDao.selectById(id); if (ShopAdNodeType.NODE_TYPE_HUKUAI.equals(shopAdvertisType.getNodeType()) || ShopAdNodeType.NODE_TYPE_SWIPER.equals(shopAdvertisType.getNodeType())) { //查询子元素 //轮播图类型 List advertisingList = shopAdvertisDao.selectListByType(shopAdvertisType.getAdtCode(), shopAdvertisType.getAdtCapacity()); shopAdvertisType.setAds(advertisingList); } return AjaxResult.buildSuccessInstance(Arrays.asList(shopAdvertisType)); } /** * 获取节点类型 */ @RequestMapping(value = "/getShopAdvertisType") public @ResponseBody AjaxResult getShopAdvertisType() { return new AjaxResult(AjaxResult.STATUS_SUCCESS, ShopAdNodeType.getSelectValue()); } @RequestMapping("/getAdPage") @ResponseBody public AjaxResult getAdPage(@RequestBody ShopAdvertisType shopAdvertisType) { QueryUtil.setQueryLimitCom(shopAdvertisType); List shopAdvertisTypes = shopAdvertisTypeDao.selectByModel(shopAdvertisType); for (ShopAdvertisType advertisType : shopAdvertisTypes) { if (ShopAdNodeType.NODE_TYPE_SWIPER.getCode() == advertisType.getNodeType() || ShopAdNodeType.NODE_TYPE_HUKUAI.getCode() == advertisType.getNodeType() ) { //轮播图类型 List advertisingList = shopAdvertisDao.selectListByTypeId(advertisType.getAdtId(), advertisType.getAdtCapacity()); advertisType.setAds(advertisingList); } //样式转换 String nodeStyle = advertisType.getNodeStyle(); if (StringUtils.isNotBlank(nodeStyle)) { nodeStyle = nodeStyle.replaceAll(";", ","); nodeStyle = nodeStyle.replaceAll("rpx", "px").trim(); if (nodeStyle.endsWith(",")) { nodeStyle = nodeStyle.substring(0, nodeStyle.length() - 1); } LogUtil.debug(nodeStyle); JSONObject jsonObject = new JSONObject(); String[] obj = nodeStyle.split(","); for (String node : obj) { String[] nodes = node.split(":"); String value = nodes[1]; jsonObject.put(nodes[0], value); } advertisType.setNodeStyle(jsonObject.toJSONString()); } } return AjaxResult.buildSuccessInstance(shopAdvertisTypes); } }