From 1c20c8231980a8d4b91688ff8641a06d3b2f68ab Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 14 十月 2025 16:34:22 +0800 Subject: [PATCH] 改bug --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java | 79 +++++++++++++++++++++++++++++++++++---- 1 files changed, 71 insertions(+), 8 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java index 8eaa6f8..e357e36 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java @@ -2,9 +2,9 @@ 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.service.business.third.model.LoginUserInfo; +import com.doumee.service.business.third.model.PageData; +import com.doumee.service.business.third.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.CategoryMapper; @@ -14,11 +14,16 @@ 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.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindException; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; @@ -36,7 +41,8 @@ private CategoryMapper categoryMapper; @Override - public Integer create(Category category) { + @Transactional(rollbackFor = {Exception.class, BindException.class}) + public Integer create(Category category){ checkUnique(category); LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(loginUserInfo ==null){ @@ -52,10 +58,19 @@ insert.setRemark(category.getRemark()); insert.setStatus(Constants.ZERO); insert.setSortnum(category.getSortnum()); + insert.setBizType(category.getBizType()); insert.setImgurl(category.getImgurl()); insert.setType(category.getType()); insert.setParentId(category.getParentId()); categoryMapper.insert(insert); + if(insert.getBizType()!=null){ + //娓呯┖鍏朵粬bizType,鍙繚鐣欏綋鍓嶆柊澧炶褰曞敮涓�鏈夋晥 + categoryMapper.update(null,new UpdateWrapper<Category>().lambda() + .set(Category::getBizType,null) + .eq(Category::getBizType,insert.getType()) + .ne(Category::getId,insert.getId()) + ); + } return insert.getId(); } @@ -83,9 +98,18 @@ } @Override + @Transactional(rollbackFor = {Exception.class, BindException.class}) public void updateById(Category category) { checkUnique(category); categoryMapper.updateById(category); + if(category.getBizType()!=null){ + //娓呯┖鍏朵粬璇izType灞炴��,鍙繚鐣欏綋鍓嶈褰曞敮涓�鏈夋晥 + categoryMapper.update(null,new UpdateWrapper<Category>().lambda() + .set(Category::getBizType,null) + .eq(Category::getBizType,category.getBizType()) + .ne(Category::getId,category.getId()) + ); + } } @Override @@ -133,13 +157,15 @@ Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.lambda().eq(Category::getIsdeleted,Constants.ZERO) .eq(Objects.nonNull(pageWrap.getModel().getType()),Category::getType,pageWrap.getModel().getType()) - .isNull(Category::getParentId); + .like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Category::getName,pageWrap.getModel().getName()) + .isNull(Category::getParentId) + .orderByDesc(Category::getSortnum); PageData<Category> categoryPageData = PageData.from(categoryMapper.selectPage(page, queryWrapper)); //鏌ヨ鎵�鏈変簩绾ф暟鎹� List<Category> categoryList = categoryMapper.selectList( new QueryWrapper<Category>().lambda() .eq(Objects.nonNull(pageWrap.getModel().getType()),Category::getType,pageWrap.getModel().getType()) - .eq(Category::getIsdeleted,Constants.ZERO).isNotNull(Category::getParentId)); + .eq(Category::getIsdeleted,Constants.ZERO).isNotNull(Category::getParentId).orderByDesc(Category::getSortnum)); for (Category category:categoryPageData.getRecords()) { category.setChildCategoryList( @@ -155,16 +181,53 @@ QueryWrapper<Category> wrapper = new QueryWrapper<>(category); return categoryMapper.selectCount(wrapper); } + @Override + public List<Category> findChileList(Category model) { + if(Objects.isNull(model)){ + model = new Category(); + } + model.setIsdeleted(Constants.ZERO); + List<Category> list =findList(model); + List<Category> data = new ArrayList<>(); + if(list!=null){ + for(Category category : list){ + if(category.getParentId()!=null){ + Category pcate = getParentById(category.getParentId(),list); + if(pcate!=null){ + category.setParentName(StringUtils.defaultString(pcate.getName(),"")); + category.setName(StringUtils.defaultString(category.getName(),"")); + category.setGroupName( category.getParentName()+"/"+category.getName()); + data.add(category); + } + }else{ + data.add(category); + } + } + } + return data; + } + + private Category getParentById(Integer parentId, List<Category> list) { + if(list!=null){ + for(Category category : list){ + if(Constants.equalsInteger(parentId,category.getId())){ + return category; + } + } + } + return null; + } private void checkUnique(Category category){ QueryWrapper<Category> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(Category::getIsdeleted,Constants.ZERO) .eq(Category::getType,category.getType()) - .eq(Category::getName,category.getName()); + .eq(Category::getName,category.getName()) + .ne(category.getId()!=null, Category::getId,category.getId()) + ; List<Category> categories = categoryMapper.selectList(wrapper); - if (org.apache.commons.collections.CollectionUtils.isNotEmpty(categories)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍒嗙被淇℃伅宸插瓨鍦�"); } -- Gitblit v1.9.3