| package com.doumee.service.business.impl; | 
|   | 
| import com.doumee.biz.system.SystemDictDataBiz; | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| import com.doumee.core.model.LoginUserInfo; | 
| import com.doumee.core.model.PageData; | 
| import com.doumee.core.model.PageWrap; | 
| import com.doumee.core.utils.Constants; | 
| import com.doumee.core.utils.PinYinUtil; | 
| import com.doumee.core.utils.Utils; | 
| import com.doumee.dao.business.CateAttrMapper; | 
| import com.doumee.dao.business.CateParamMapper; | 
| import com.doumee.dao.business.CateParamSelectMapper; | 
| import com.doumee.dao.business.CategoryMapper; | 
| import com.doumee.dao.business.model.*; | 
| import com.doumee.service.business.CategoryService; | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | 
| import com.baomidou.mybatisplus.core.metadata.IPage; | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import org.apache.shiro.SecurityUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.util.CollectionUtils; | 
|   | 
| import java.util.*; | 
|   | 
| /** | 
|  * 品类信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @date 2023/05/12 13:58 | 
|  */ | 
| @Service | 
| public class CategoryServiceImpl implements CategoryService { | 
|   | 
|     @Autowired | 
|     private CategoryMapper categoryMapper; | 
|   | 
|     @Autowired | 
|     private CateParamMapper cateParamMapper; | 
|   | 
|     @Autowired | 
|     private CateAttrMapper cateAttrMapper; | 
|   | 
|     @Autowired | 
|     private CateBudgetMapper cateBudgetMapper; | 
|   | 
|     @Autowired | 
|     private SystemDictDataBiz systemDictDataBiz; | 
|   | 
|     @Autowired | 
|     private CateParamSelectMapper cateParamSelectMapper; | 
|   | 
|     @Override | 
|     public Integer create(Category category) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(categoryMapper.selectCount(new QueryWrapper<Category>().eq("ISDELETED",Constants.ZERO).eq("name",category.getName()))>0){ | 
|             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+category.getName()+"】已存在"); | 
|         }; | 
|         category.setStatus(Constants.ZERO); | 
|         category.setCreateDate(new Date()); | 
|         category.setCreator(user.getId()); | 
|         category.setIsdeleted(Constants.ZERO); | 
|         //处理拼音问题 | 
|         category.setPinyin(PinYinUtil.getFullSpell(category.getName())); | 
|         category.setShortPinyin(PinYinUtil.getFirstSpell(category.getName())); | 
|         categoryMapper.insert(category); | 
|         List<CateParam> paramList = category.getParamList(); | 
|         if(!Objects.isNull(paramList)&¶mList.size()> Constants.ZERO){ | 
|             for (int i = 0; i < paramList.size(); i++) { | 
|                 CateParam cateParam = paramList.get(i); | 
|                 cateParam.setCreator(user.getId()); | 
|                 cateParam.setCreateDate(new Date()); | 
|                 cateParam.setIsdeleted(Constants.ZERO); | 
|                 cateParam.setSortnum(i+Constants.ONE); | 
|                 cateParam.setStatus(Constants.ZERO); | 
|                 cateParam.setCategoryId(category.getId()); | 
|                 cateParamMapper.insert(cateParam); | 
|             } | 
|         } | 
|         List<CateAttr>  attrFirst = category.getAttrFirstList(); | 
|         if(!Objects.isNull(attrFirst)&&attrFirst.size()> Constants.ZERO){ | 
|             for (int i = 0; i < attrFirst.size(); i++) { | 
|                 CateAttr cateAttr = attrFirst.get(i); | 
|                 cateAttr.setCreator(user.getId()); | 
|                 cateAttr.setCreateDate(new Date()); | 
|                 cateAttr.setIsdeleted(Constants.ZERO); | 
|                 cateAttr.setSortnum(i+Constants.ONE); | 
|                 cateAttr.setStatus(Constants.ZERO); | 
|                 cateAttr.setCategoryId(category.getId()); | 
|                 cateAttr.setType(Constants.ZERO); | 
|                 cateAttrMapper.insert(cateAttr); | 
|             } | 
|         } | 
|         List<CateAttr>  attrSecond = category.getAttrSecondList(); | 
|         if(!Objects.isNull(attrSecond)&&attrSecond.size()> Constants.ZERO){ | 
|             for (int i = 0; i < attrSecond.size(); i++) { | 
|                 CateAttr cateAttr = attrSecond.get(i); | 
|                 cateAttr.setCreator(user.getId()); | 
|                 cateAttr.setCreateDate(new Date()); | 
|                 cateAttr.setIsdeleted(Constants.ZERO); | 
|                 cateAttr.setSortnum(i+Constants.ONE); | 
|                 cateAttr.setStatus(Constants.ZERO); | 
|                 cateAttr.setCategoryId(category.getId()); | 
|                 cateAttr.setType(Constants.ONE); | 
|                 cateAttrMapper.insert(cateAttr); | 
|             } | 
|         } | 
|         List<CateBudget>  budgetList = category.getBudgetList(); | 
|         if(!Objects.isNull(budgetList)&&budgetList.size()> Constants.ZERO){ | 
|             for (int i = 0; i < budgetList.size(); i++) { | 
|                 CateBudget cateBudget = budgetList.get(i); | 
|                 cateBudget.setCreator(user.getId()); | 
|                 cateBudget.setCreateDate(new Date()); | 
|                 cateBudget.setIsdeleted(Constants.ZERO); | 
|                 cateBudget.setSortnum(i+Constants.ONE); | 
|                 cateBudget.setStatus(Constants.ZERO); | 
|                 cateBudget.setCategoryId(category.getId()); | 
|                 cateBudgetMapper.insert(cateBudget); | 
|             } | 
|         } | 
|         return category.getId(); | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public Integer companyCreate(Category category) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(categoryMapper.selectCount(new QueryWrapper<Category>().eq("ISDELETED",Constants.ZERO) | 
|                 .eq("COMPANY_ID",user.getCompanyId()).eq("name",category.getName()))>0){ | 
|             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+category.getName()+"】已存在"); | 
|         }; | 
|         category.setStatus(Constants.ZERO); | 
|         category.setCreateDate(new Date()); | 
|         category.setCreator(user.getId()); | 
|         category.setIsdeleted(Constants.ZERO); | 
|         category.setCompanyId(user.getCompanyId()); | 
|         //处理拼音问题 | 
|         category.setPinyin(PinYinUtil.getFullSpell(category.getName())); | 
|         category.setShortPinyin(PinYinUtil.getFirstSpell(category.getName())); | 
|         categoryMapper.insert(category); | 
|         List<CateParam> paramList = category.getParamList(); | 
|         if(!Objects.isNull(paramList)&¶mList.size()> Constants.ZERO){ | 
|             for (int i = 0; i < paramList.size(); i++) { | 
|                 CateParam cateParam = paramList.get(i); | 
|                 cateParam.setCreator(user.getId()); | 
|                 cateParam.setCreateDate(new Date()); | 
|                 cateParam.setIsdeleted(Constants.ZERO); | 
|                 cateParam.setSortnum(i+Constants.ONE); | 
|                 cateParam.setStatus(Constants.ZERO); | 
|                 cateParam.setCategoryId(category.getId()); | 
|                 cateParamMapper.insert(cateParam); | 
|             } | 
|         } | 
|         List<CateBudget>  budgetList = category.getBudgetList(); | 
|         if(!Objects.isNull(budgetList)&&budgetList.size()> Constants.ZERO){ | 
|             for (int i = 0; i < budgetList.size(); i++) { | 
|                 CateBudget cateBudget = budgetList.get(i); | 
|                 cateBudget.setCreator(user.getId()); | 
|                 cateBudget.setCreateDate(new Date()); | 
|                 cateBudget.setIsdeleted(Constants.ZERO); | 
|                 cateBudget.setSortnum(i+Constants.ONE); | 
|                 cateBudget.setStatus(Constants.ZERO); | 
|                 cateBudget.setCategoryId(category.getId()); | 
|                 cateBudgetMapper.insert(cateBudget); | 
|             } | 
|         } | 
|         return category.getId(); | 
|     } | 
|   | 
|   | 
|   | 
|     @Override | 
|     public void deleteById(Integer id) { | 
|         Category category = categoryMapper.selectById(id); | 
|         if(Objects.isNull(category)){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到对象信息"); | 
|         } | 
|         category.setIsdeleted(Constants.ONE); | 
|         categoryMapper.updateById(category); | 
|     } | 
|   | 
|   | 
|   | 
|     @Override | 
|     public void delete(Category category) { | 
|         UpdateWrapper<Category> deleteWrapper = new UpdateWrapper<>(category); | 
|         categoryMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         categoryMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(Category category) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(categoryMapper.selectCount(new QueryWrapper<Category>().eq("ISDELETED",Constants.ZERO).ne("id",category.getId()).eq("name",category.getName()))>0){ | 
|             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+category.getName()+"】已存在"); | 
|         }; | 
|         category.setStatus(Constants.ZERO); | 
|         category.setEditDate(new Date()); | 
|         category.setEditor(user.getId()); | 
|         category.setIsdeleted(Constants.ZERO); | 
|         //处理拼音问题 | 
|         category.setPinyin(PinYinUtil.getFullSpell(category.getName())); | 
|         category.setShortPinyin(PinYinUtil.getFirstSpell(category.getName())); | 
|         categoryMapper.updateById(category); | 
|         //处理属性1数据 | 
|         cateParamMapper.delete(new QueryWrapper<CateParam>().eq("CATEGORY_ID",category.getId())); | 
|         List<CateParam> paramList = category.getParamList(); | 
|         if(!Objects.isNull(paramList)&¶mList.size()> Constants.ZERO){ | 
|             for (int i = 0; i < paramList.size(); i++) { | 
|                 CateParam cateParam = paramList.get(i); | 
|                 cateParam.setCreator(user.getId()); | 
|                 cateParam.setCreateDate(new Date()); | 
|                 cateParam.setIsdeleted(Constants.ZERO); | 
|                 cateParam.setSortnum(i+Constants.ONE); | 
|                 cateParam.setStatus(Constants.ZERO); | 
|                 cateParam.setCategoryId(category.getId()); | 
|                 cateParamMapper.insert(cateParam); | 
|             } | 
|         } | 
|   | 
| //        this.dealCateAttr(category.getAttrFirstList(),Constants.ZERO,category.getId(),user); | 
| //        this.dealCateAttr(category.getAttrSecondList(),Constants.ONE,category.getId(),user); | 
| //        cateAttrMapper.delete(new QueryWrapper<CateAttr>().eq("CATEGORY_ID",category.getId())); | 
| //        List<CateAttr>  attrFirst = category.getAttrFirstList(); | 
| //        if(!Objects.isNull(attrFirst)&&attrFirst.size()> Constants.ZERO){ | 
| //            for (int i = 0; i < attrFirst.size(); i++) { | 
| //                CateAttr cateAttr = attrFirst.get(i); | 
| //                cateAttr.setCreator(user.getId()); | 
| //                cateAttr.setCreateDate(new Date()); | 
| //                cateAttr.setIsdeleted(Constants.ZERO); | 
| //                cateAttr.setSortnum(i+Constants.ONE); | 
| //                cateAttr.setStatus(Constants.ZERO); | 
| //                cateAttr.setCategoryId(category.getId()); | 
| //                cateAttr.setType(Constants.ZERO); | 
| //                cateAttrMapper.insert(cateAttr); | 
| //            } | 
| //        } | 
| //        List<CateAttr>  attrSecond = category.getAttrSecondList(); | 
| //        if(!Objects.isNull(attrSecond)&&attrSecond.size()> Constants.ZERO){ | 
| //            for (int i = 0; i < attrSecond.size(); i++) { | 
| //                CateAttr cateAttr = attrSecond.get(i); | 
| //                cateAttr.setCreator(user.getId()); | 
| //                cateAttr.setCreateDate(new Date()); | 
| //                cateAttr.setIsdeleted(Constants.ZERO); | 
| //                cateAttr.setSortnum(i+Constants.ONE); | 
| //                cateAttr.setStatus(Constants.ZERO); | 
| //                cateAttr.setCategoryId(category.getId()); | 
| //                cateAttr.setType(Constants.ONE); | 
| //                cateAttrMapper.insert(cateAttr); | 
| //            } | 
| //        } | 
|   | 
|         cateBudgetMapper.delete(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",category.getId())); | 
|         List<CateBudget>  budgetList = category.getBudgetList(); | 
|         if(!Objects.isNull(budgetList)&&budgetList.size()> Constants.ZERO){ | 
|             for (int i = 0; i < budgetList.size(); i++) { | 
|                 CateBudget cateBudget = budgetList.get(i); | 
|                 cateBudget.setCreator(user.getId()); | 
|                 cateBudget.setCreateDate(new Date()); | 
|                 cateBudget.setIsdeleted(Constants.ZERO); | 
|                 cateBudget.setSortnum(i+Constants.ONE); | 
|                 cateBudget.setStatus(Constants.ZERO); | 
|                 cateBudget.setCategoryId(category.getId()); | 
|                 cateBudgetMapper.insert(cateBudget); | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public void companyUpdateById(Category category) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(categoryMapper.selectCount(new QueryWrapper<Category>().eq("ISDELETED",Constants.ZERO).eq("COMPANY_ID",user.getCompanyId()) | 
|                 .ne("id",category.getId()).eq("name",category.getName()))>0){ | 
|             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+category.getName()+"】已存在"); | 
|         }; | 
|         category.setStatus(Constants.ZERO); | 
|         category.setEditDate(new Date()); | 
|         category.setEditor(user.getId()); | 
|         category.setIsdeleted(Constants.ZERO); | 
|         //处理拼音问题 | 
|         category.setPinyin(PinYinUtil.getFullSpell(category.getName())); | 
|         category.setShortPinyin(PinYinUtil.getFirstSpell(category.getName())); | 
|         categoryMapper.updateById(category); | 
|         //处理属性配置 | 
|         this.dealCateParam(category.getParamList(),category.getId(),user); | 
|         cateBudgetMapper.delete(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",category.getId())); | 
|         List<CateBudget>  budgetList = category.getBudgetList(); | 
|         if(!Objects.isNull(budgetList)&&budgetList.size()> Constants.ZERO){ | 
|             for (int i = 0; i < budgetList.size(); i++) { | 
|                 CateBudget cateBudget = budgetList.get(i); | 
|                 cateBudget.setCreator(user.getId()); | 
|                 cateBudget.setCreateDate(new Date()); | 
|                 cateBudget.setIsdeleted(Constants.ZERO); | 
|                 cateBudget.setSortnum(i+Constants.ONE); | 
|                 cateBudget.setStatus(Constants.ZERO); | 
|                 cateBudget.setCategoryId(category.getId()); | 
|                 cateBudgetMapper.insert(cateBudget); | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|     public void dealCateParam(List<CateParam> cateParamList,Integer categoryId,LoginUserInfo userInfo ){ | 
|         List<CateParam> oldCateParamList = cateParamMapper.selectList(new QueryWrapper<CateParam>() | 
|                 .eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",categoryId)); | 
|         List<CateParam> updCateParam = new ArrayList<>(); | 
|         List<CateParam> delCateParam = new ArrayList<>(); | 
|         for (CateParam oldCateParam:oldCateParamList) { | 
|             Boolean flag = false; | 
|             for (CateParam cateParam:cateParamList) { | 
|                 if(oldCateParam.getId().equals(cateParam.getId())){ | 
|                     updCateParam.add(cateParam); | 
|                     flag = true; | 
|                     break; | 
|                 } | 
|             } | 
|             if(!flag){ | 
|                 delCateParam.add(oldCateParam); | 
|             } | 
|         } | 
|         CateParam maxCateParam = cateParamMapper.selectOne(new QueryWrapper<CateParam>().eq("ISDELETED",Constants.ZERO) | 
|                 .eq("CATEGORY_ID",categoryId).orderByDesc(" SORTNUM ").last(" limit 1  ")); | 
|         Integer nextSortNum = 0; | 
|         if(!Objects.isNull(maxCateParam)){ | 
|             nextSortNum = maxCateParam.getSortnum(); | 
|         } | 
|         for (CateParam cateParam:cateParamList) { | 
|             if(Objects.isNull(cateParam.getId())){ | 
|                 nextSortNum ++ ; | 
|                 cateParam.setCreator(userInfo.getId()); | 
|                 cateParam.setCreateDate(new Date()); | 
|                 cateParam.setIsdeleted(Constants.ZERO); | 
|                 cateParam.setSortnum(nextSortNum); | 
|                 cateParam.setStatus(Constants.ZERO); | 
|                 cateParam.setCategoryId(categoryId); | 
|                 cateParamMapper.insert(cateParam); | 
|             } | 
|         } | 
|         delCateParam.forEach(i->{ | 
|             cateParamMapper.deleteById(i.getId()); | 
|         }); | 
|         updCateParam.forEach(i->{ | 
|             i.setEditDate(new Date()); | 
|             i.setEditor(userInfo.getId()); | 
|             cateParamMapper.updateById(i); | 
|         }); | 
|   | 
|   | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public void updateDisableById(Category category) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         category.setEditDate(new Date()); | 
|         category.setEditor(user.getId()); | 
|         categoryMapper.updateById(category); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<Category> categorys) { | 
|         if (CollectionUtils.isEmpty(categorys)) { | 
|             return; | 
|         } | 
|         for (Category category: categorys) { | 
|             this.updateById(category); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public Category findById(Integer id) { | 
|         Category category = categoryMapper.selectById(id); | 
|         String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() | 
|                 + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode(); | 
|         category.setPrefixUrl(prefixUrl); | 
|         category.setParamList(cateParamMapper.selectList(new QueryWrapper<CateParam>().eq("CATEGORY_ID",id).eq("ISDELETED",Constants.ZERO).orderByAsc(" SORTNUM "))); | 
|          category.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",id).eq("ISDELETED",Constants.ZERO).orderByAsc(" SORTNUM "))); | 
|         return category; | 
|     } | 
|   | 
|     @Override | 
|     public Category findOne(Category category) { | 
|         QueryWrapper<Category> wrapper = new QueryWrapper<>(category); | 
|         return categoryMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<Category> findList(Category category) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         QueryWrapper<Category> wrapper = new QueryWrapper<>(category) | 
|                 .eq("STATUS",Constants.ZERO) | 
|                 .eq("ISDELETED",Constants.ZERO) | 
|                 .eq("COMPANY_ID",user.getCompanyId()) | 
|                 .orderByAsc(" SORTNUM "); | 
|         List<Category> list = categoryMapper.selectList(wrapper); | 
| //        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() | 
| //                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode(); | 
| //        for (Category c:list) { | 
| //            c.setPrefixUrl(prefixUrl); | 
| //            c.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM "))); | 
| //            c.setAttrSecondList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ONE).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM "))); | 
| //            c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM "))); | 
| //        } | 
|         return list; | 
|     } | 
|   | 
|   | 
|   | 
|     @Override | 
|     public List<Category> findListSaaS(Category category) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(!user.getType().equals(Constants.UserType.ZHUBO.getKey())){ | 
|             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户类别错误,非主播用户!"); | 
|         } | 
|         QueryWrapper<Category> wrapper = new QueryWrapper<>(category) | 
|                 .eq("STATUS",Constants.ZERO) | 
|                 .eq("ISDELETED",Constants.ZERO) | 
|                 .eq("COMPANY_ID",user.getCompanyId()) | 
|                 .orderByAsc(" SORTNUM "); | 
|         List<Category> list = categoryMapper.selectList(wrapper); | 
|         String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() | 
|                 + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode(); | 
|         for (Category c:list) { | 
|             c.setPrefixUrl(prefixUrl); | 
|             c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",c.getId()) | 
|                     .orderByAsc(" SORTNUM "))); | 
|             this.getParamSelect(c); | 
|         } | 
|         return list; | 
|     } | 
|   | 
|   | 
|     public void getParamSelect(Category category){ | 
|         List<CateParam> cateParamList =  cateParamMapper.selectList(new QueryWrapper<CateParam>() | 
|                 .eq("CATEGORY_ID",category.getId()) | 
|                 .eq("ISSELECT",Constants.ONE) | 
|                 .eq("ISDELETED",Constants.ZERO) | 
|                 .eq("ISSHOW",Constants.ONE) | 
|                 .orderByAsc(" SORTNUM ") | 
|                 .last(" limit 2 ") | 
|         ); | 
|         if(!Objects.isNull(cateParamList)&&cateParamList.size()>Constants.ZERO){ | 
|             for (int i = 0; i < cateParamList.size(); i++) { | 
|                 CateParam cateParam = cateParamList.get(i); | 
|                 List<CateParamSelect> cateParamSelectList = cateParamSelectMapper.selectList(new QueryWrapper<CateParamSelect>() | 
|                         .eq("PARAM_ID",cateParam.getId()) | 
|                         .eq("ISDELETED",Constants.ZERO)); | 
|                 if(i==0){ | 
|                     category.setAttrFirst(cateParam.getName()); | 
|                     category.setCateParamFirstList(cateParamSelectList); | 
|                 }else if(i==1){ | 
|                     category.setAttrSecond(cateParam.getName()); | 
|                     category.setCateParamSecondList(cateParamSelectList); | 
|                 } | 
|   | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
|     @Override | 
|     public List<Category> findListForGoods(Integer goodsId) { | 
|         LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); | 
|         QueryWrapper<Category> wrapper = new QueryWrapper<Category>() | 
|                 .eq("STATUS",Constants.ZERO) | 
|                 .eq("ISDELETED",Constants.ZERO) | 
|                 .eq("COMPANY_ID",loginUserInfo.getCompanyId()) | 
|                 .orderByAsc(" SORTNUM "); | 
|         List<Category> list = categoryMapper.selectList(wrapper); | 
|         String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() | 
|                 + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode(); | 
|         for (Category c:list) { | 
|             c.setPrefixUrl(prefixUrl); | 
|             c.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM "))); | 
|             c.setAttrSecondList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ONE).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM "))); | 
|             c.setParamList(cateParamMapper.selectList(new QueryWrapper<CateParam>() | 
|                         .select(" * , ( select gp.VAL from goods_param gp where gp.GOODS_ID = "+goodsId+" and gp.PRAMA_ID = cate_param.id limit 1 )  as val ") | 
|                     .eq("CATEGORY_ID",c.getId()) | 
|                     .eq("ISSHOW",Constants.ONE) | 
|                     .eq("STATUS",Constants.ZERO) | 
|                     .eq("ISDELETED",Constants.ZERO) | 
|                     .orderByAsc(" SORTNUM "))); | 
|         } | 
|         return list; | 
|     } | 
|   | 
|   | 
|    | 
|     @Override | 
|     public PageData<Category> findPage(PageWrap<Category> pageWrap) { | 
|         IPage<Category> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         QueryWrapper<Category> queryWrapper = new QueryWrapper<>(); | 
|         Utils.MP.blankToNull(pageWrap.getModel()); | 
|         queryWrapper.lambda().eq(Category::getIsdeleted, Constants.ZERO); | 
|         if (pageWrap.getModel().getName() != null) { | 
|             queryWrapper.lambda().like(Category::getName, pageWrap.getModel().getName()); | 
|         } | 
|         if (pageWrap.getModel().getStatus() != null) { | 
|             queryWrapper.lambda().eq(Category::getStatus, pageWrap.getModel().getStatus()); | 
|         } | 
|         if (pageWrap.getModel().getType() != null) { | 
|             queryWrapper.lambda().eq(Category::getType, pageWrap.getModel().getType()); | 
|         } | 
|         if (pageWrap.getModel().getCompanyId() != null) { | 
|             queryWrapper.lambda().eq(Category::getCompanyId, pageWrap.getModel().getCompanyId()); | 
|         } | 
|         queryWrapper.lambda().orderByAsc(Category::getSortnum); | 
|         IPage<Category> categoryIPage = categoryMapper.selectPage(page, queryWrapper); | 
|         String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() | 
|                 + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode(); | 
|         categoryIPage.getRecords().forEach(i->{ | 
|             i.setPrefixUrl(prefixUrl); | 
|         }); | 
|         return PageData.from(categoryIPage); | 
|     } | 
|   | 
|     @Override | 
|     public long count(Category category) { | 
|         QueryWrapper<Category> wrapper = new QueryWrapper<>(category); | 
|         return categoryMapper.selectCount(wrapper); | 
|     } | 
|   | 
|   | 
|     /**********************************************************************************/ | 
|   | 
|     @Override | 
|     public List<Category> companyFindList(Category category) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         QueryWrapper<Category> wrapper = new QueryWrapper<>(category) | 
|                 .eq("STATUS",Constants.ZERO) | 
|                 .eq("COMPANY_ID",user.getCompanyId()) | 
|                 .eq("ISDELETED",Constants.ZERO) | 
|                 .orderByAsc(" SORTNUM "); | 
|         List<Category> list = categoryMapper.selectList(wrapper); | 
|         String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() | 
|                 + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode(); | 
|         for (Category c:list) { | 
|             c.setPrefixUrl(prefixUrl); | 
|             c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("STATUS",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM "))); | 
|             c.setParamList(cateParamMapper.selectList(new QueryWrapper<CateParam>().eq("STATUS",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc("SORTNUM"))); | 
|         } | 
|         return list; | 
|     } | 
|   | 
|   | 
|   | 
| } |