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<ShopAdvertisType> 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()); 
 | 
  
 | 
            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<ShopAdvertis> 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.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<String> 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<ShopAdvertisType> 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<ShopAdvertis> 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<ShopAdvertisType> shopAdvertisTypes = shopAdvertisTypeDao.selectByModel(shopAdvertisType); 
 | 
        for (ShopAdvertisType advertisType : shopAdvertisTypes) { 
 | 
            if (ShopAdNodeType.NODE_TYPE_SWIPER.getCode() == advertisType.getNodeType() 
 | 
                    || ShopAdNodeType.NODE_TYPE_HUKUAI.getCode() == advertisType.getNodeType() 
 | 
            ) { 
 | 
                //轮播图类型 
 | 
                List<ShopAdvertis> 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); 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |