package com.matrix.system.shopXcx.action; 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.constance.AppConstance; import com.matrix.system.common.tools.ServiceUtil; import com.matrix.system.hive.action.BaseController; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.shopXcx.bean.ShopProductAttribute; import com.matrix.system.shopXcx.dao.ShopProductAttributeDao; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import java.util.*; /** * @description 商品属性管理 * @author pengliang * @date 2019-06-04 16:10 */ @Controller @RequestMapping(value = "admin/shopProductAttribute") public class ShopProductAttributeAction extends BaseController { @Autowired private ShopProductAttributeDao shopProductAttributeDao; @Autowired private ServiceUtil serviceUtil; //记录编辑前的值Before_Edit_Value public static final String BEV="ShopProductAttribute_BEV"; /** * 列表显示 */ @RequestMapping(value = "/showList") public @ResponseBody AjaxResult showList(ShopProductAttribute shopProductAttribute, PaginationVO pageVo) { List dataList = shopProductAttributeDao.selectInPage(shopProductAttribute, pageVo); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, shopProductAttributeDao.selectTotalRecord(shopProductAttribute)); return result; } //显示所有属性 @RequestMapping(value = "/all") @ResponseBody public AjaxResult showAll(ShopProductAttribute shopProductAttribute){ // SysUsers sysUsers = getMe(); // shopProductAttribute.setShopId(sysUsers.getShopId()); QueryUtil.setQueryLimitCom(shopProductAttribute); List list = shopProductAttributeDao.selectByModel(shopProductAttribute); return new AjaxResult(AjaxResult.STATUS_SUCCESS,list); } /** * 过滤属性 * @param attrCode * @return */ @RequestMapping(value = "/showSonAttribute") @ResponseBody public AjaxResult showSonAttribute(String attrCode,String status){ SysUsers sysUsers = getMe(); ShopProductAttribute shopProductAttribute = shopProductAttributeDao.selectByIdAsTree(attrCode,sysUsers.getCompanyId()); if(null == shopProductAttribute){ return new AjaxResult(AjaxResult.STATUS_FAIL,"未找到属性"); } if(StringUtils.isNotBlank(status)){ List list = new ArrayList<>(); getList(list, shopProductAttribute); list.remove(shopProductAttribute); return new AjaxResult(AjaxResult.STATUS_SUCCESS,list); }else{ List list = new ArrayList<>(); getList(list, shopProductAttribute); ShopProductAttribute productAttribute = new ShopProductAttribute(); productAttribute.setShopId(sysUsers.getShopId()); List allAttributeList = shopProductAttributeDao.selectByModel(productAttribute); Iterator iterator = allAttributeList.iterator(); while (iterator.hasNext()){ ShopProductAttribute attribute = iterator.next(); if(!list.contains(attribute)){ iterator.remove(); } if(AppConstance.PARENTID_ATTRIBUTE.equals(attribute.getParentId()) && list.contains(attribute)){ iterator.remove(); } } return new AjaxResult(AjaxResult.STATUS_SUCCESS,allAttributeList); } } /** * 递归调用获取子节点 * @param sourceList * @param targetAttr */ public void getList(List sourceList,ShopProductAttribute targetAttr){ sourceList.add(targetAttr); if(targetAttr != null && CollectionUtils.isNotEmpty(targetAttr.getChild())){ for (ShopProductAttribute childAttr:targetAttr.getChild() ) { getList(sourceList,childAttr); } } } /** * 新增 */ @RemoveRequestToken @RequestMapping(value = "/addShopProductAttribute") public @ResponseBody AjaxResult addShopProductAttribute(ShopProductAttribute shopProductAttribute) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); shopProductAttribute.setCreateBy(user.getSuName()); shopProductAttribute.setUpdateBy(user.getSuName()); shopProductAttribute.setShopId(user.getShopId()); shopProductAttribute.setCompanyId(user.getCompanyId()); boolean isRepetition = serviceUtil.addCheckRepeatTowColumn("shop_product_attribute", "attr_code", shopProductAttribute.getAttrCode(), "company_id",shopProductAttribute.getCompanyId()); if(isRepetition){ return new AjaxResult(AjaxResult.STATUS_FAIL,"属性编码不能重复"); } shopProductAttribute.setShopId(user.getShopId()); int i=shopProductAttributeDao.insert(shopProductAttribute); if(i > 0){ return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, "商品属性管理"); }else { throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL); } } @RequestMapping(value = "/findById") @ResponseBody public AjaxResult findById(ShopProductAttribute shopProductAttribute){ shopProductAttribute = shopProductAttributeDao.selectById(shopProductAttribute.getAttrId()); return new AjaxResult(AjaxResult.STATUS_SUCCESS, Arrays.asList(shopProductAttribute)); } /** * 修改 */ @RemoveRequestToken @RequestMapping(value = "/modifyShopProductAttribute") public @ResponseBody AjaxResult modifyShopProductAttribute(ShopProductAttribute shopProductAttribute) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); shopProductAttribute.setUpdateBy(user.getSuName()); shopProductAttribute.setUpdateTime(new Date()); ShopProductAttribute newShopProductAttribute = shopProductAttributeDao.selectById(shopProductAttribute.getAttrId()); boolean isRepetition; if(shopProductAttribute.getAttrCode().equals(newShopProductAttribute.getAttrCode())){ isRepetition = serviceUtil.updateCheckRepeatTowColumn("shop_product_attribute", "attr_code", newShopProductAttribute.getAttrCode() ,"company_id", newShopProductAttribute.getCompanyId() ,"attr_code",shopProductAttribute.getAttrCode()); }else{ isRepetition = serviceUtil.addCheckRepeatTowColumn("shop_product_attribute", "attr_code", shopProductAttribute.getAttrCode(), "company_id",shopProductAttribute.getCompanyId()); } if(isRepetition){ return new AjaxResult(AjaxResult.STATUS_FAIL,"属性编码不能重复"); } int i = shopProductAttributeDao.updateByModel(shopProductAttribute); if(i>0){ return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "商品属性管理"); }else{ throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL); } } /** * 进入修改界面 */ @SaveRequestToken @RequestMapping(value = "/editForm") public ModelAndView editForm(Integer id) { SysUsers sysUsers = getMe(); ShopProductAttribute shopProductAttribute = new ShopProductAttribute(); shopProductAttribute.setShopId(sysUsers.getShopId()); List list = shopProductAttributeDao.selectByModel(shopProductAttribute); ModelAndView modelAndView = new ModelAndView("admin/shop/shopProductAttribute-form"); modelAndView.addObject("obj",list); return modelAndView; } /** * 删除 */ @RequestMapping(value = "/del") public @ResponseBody AjaxResult del(Integer attrId) { String id = shopProductAttributeDao.selectForById(attrId); List ids = new ArrayList(); if(StringUtils.isNotBlank(id)){ ids = StringUtils.strToCollToString(id, ","); } ids.add(String.valueOf(attrId)); int i = shopProductAttributeDao.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() { SysUsers sysUsers = getMe(); ShopProductAttribute shopProductAttribute = new ShopProductAttribute(); shopProductAttribute.setShopId(sysUsers.getShopId()); shopProductAttribute.setCompanyId(sysUsers.getCompanyId()); List attrList= shopProductAttributeDao.selectByModel(shopProductAttribute); return new AjaxResult(AjaxResult.STATUS_SUCCESS, attrList, attrList.size()); } }