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; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
} 
 |