From dcdb0231034810232f2542f3865666ebf72daf11 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 30 四月 2025 16:45:34 +0800 Subject: [PATCH] sf --- server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java | 312 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 241 insertions(+), 71 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java index b3ed768..1497b58 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java @@ -11,6 +11,7 @@ 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; @@ -47,6 +48,9 @@ @Autowired private SystemDictDataBiz systemDictDataBiz; + + @Autowired + private CateParamSelectMapper cateParamSelectMapper; @Override public Integer create(Category category) { @@ -116,10 +120,56 @@ 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) { @@ -177,8 +227,8 @@ } } - this.dealCateAttr(category.getAttrFirstList(),Constants.ZERO,category.getId(),user); - this.dealCateAttr(category.getAttrSecondList(),Constants.ONE,category.getId(),user); +// 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){ @@ -226,60 +276,88 @@ } - public void dealCateAttr(List<CateAttr> cateAttrList,Integer type,Integer categoryId,LoginUserInfo user){ - List<CateAttr> oldCateAttrList = cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",categoryId).eq("TYPE",type)); - List<CateAttr> addCateAttr = new ArrayList<>(); - List<CateAttr> updCateAttr = new ArrayList<>(); - List<CateAttr> delCateAttr = new ArrayList<>(); - for (CateAttr oldCateAttr:oldCateAttrList) { - Boolean flag = false; - for (CateAttr cateAttr:cateAttrList) { - if(oldCateAttr.getName().equals(cateAttr.getName())){ - updCateAttr.add(oldCateAttr); - flag = true; - break; - } - } - if(!flag){ - delCateAttr.add(oldCateAttr); + @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); } } - CateAttr maxCateAttr = cateAttrMapper.selectOne(new QueryWrapper<CateAttr>().eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",categoryId).eq("TYPE",type).orderByDesc(" SORTNUM ").last(" limit 1 ")); - Integer nextSortNum = 0; - if(!Objects.isNull(maxCateAttr)){ - nextSortNum = maxCateAttr.getSortnum(); - } - //澶勭悊鏂板鏁版嵁 - for (CateAttr cateAttr:cateAttrList) { - Boolean flag = false; - for (CateAttr oldCateAttr:oldCateAttrList) { - if(cateAttr.getName().equals(oldCateAttr.getName())){ - flag = true; - break; - } - } - if(!flag){ - nextSortNum = nextSortNum + 1; - cateAttr.setCreator(user.getId()); - cateAttr.setCreateDate(new Date()); - cateAttr.setIsdeleted(Constants.ZERO); - cateAttr.setSortnum(nextSortNum); - cateAttr.setStatus(Constants.ZERO); - cateAttr.setCategoryId(categoryId); - cateAttr.setType(type); - addCateAttr.add(cateAttr); - } - } - addCateAttr.forEach(i->{ - cateAttrMapper.insert(i); - }); - delCateAttr.forEach(i->{ - i.setIsdeleted(Constants.ONE); - i.setEditDate(new Date()); - i.setEditor(user.getId()); - cateAttrMapper.updateById(i); - }); } + + + 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) { @@ -302,13 +380,11 @@ @Override public Category findById(Integer id) { Category category = categoryMapper.selectById(id); - String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode() - + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode(); + 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.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",id).orderByAsc(" SORTNUM "))); - category.setAttrSecondList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ONE).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",id).orderByAsc(" SORTNUM "))); - category.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().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; } @@ -320,38 +396,101 @@ @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.SYSTEM, Constants.FILE_DIR).getCode() - + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode(); +// 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.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 "))); + 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.SYSTEM, Constants.FILE_DIR).getCode() - + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode(); + 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()).orderByAsc(" SORTNUM "))); + .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; } @@ -370,10 +509,16 @@ 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.SYSTEM, Constants.FILE_DIR).getCode() - + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode(); + 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); }); @@ -385,4 +530,29 @@ 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; + } + + + } -- Gitblit v1.9.3