From cbf7bd4c7d62670b26292d4738cc062bf965591c Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期五, 08 九月 2023 18:13:42 +0800 Subject: [PATCH] #素材库提交 --- server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java | 154 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 143 insertions(+), 11 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java index efab03d..7b3b4f1 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java @@ -1,20 +1,34 @@ 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.Utils; +import com.doumee.dao.business.BaseCateParamMapper; import com.doumee.dao.business.BaseCategoryMapper; +import com.doumee.dao.business.model.BaseCateParam; import com.doumee.dao.business.model.BaseCategory; +import com.doumee.dao.business.model.dto.BaseCategoryRequest; +import com.doumee.service.business.BaseCateParamService; import com.doumee.service.business.BaseCategoryService; 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.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.Date; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * 绱犳潗搴�-鍝佺被淇℃伅琛⊿ervice瀹炵幇 @@ -27,10 +41,64 @@ @Autowired private BaseCategoryMapper baseCategoryMapper; + @Autowired + private BaseCateParamMapper baseCateParamMapper; + + @Autowired + private SystemDictDataBiz systemDictDataBiz; + + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) @Override - public Integer create(BaseCategory baseCategory) { - baseCategoryMapper.insert(baseCategory); - return baseCategory.getId(); + public Integer create(BaseCategoryRequest baseCategory) { + LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); + QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(BaseCategory::getName,baseCategory.getName()) + .eq(BaseCategory::getIsdeleted,Constants.ZERO); + + BaseCategory baseCategory1 = baseCategoryMapper.selectOne(wrapper); + if (Objects.nonNull(baseCategory1)){ + throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍝佺被淇℃伅琛�"); + } + BaseCategory baseCategory2 = new BaseCategory(); + baseCategory2.setCreator(loginUserInfo.getId()); + baseCategory2.setCreateDate(new Date()); + baseCategory2.setEditor(loginUserInfo.getId()); + baseCategory2.setEditDate(new Date()); + baseCategory2.setIsdeleted(Constants.ZERO); + baseCategory2.setName(baseCategory.getName()); + baseCategory2.setRemark(baseCategory.getRemark()); + baseCategory2.setAttrFirst(baseCategory.getAttrFirst()); + baseCategory2.setAttrSecond(baseCategory.getAttrSecond()); + baseCategory2.setStatus(baseCategory.getStatus()); + baseCategory2.setSortnum(baseCategory.getSortnum()); + baseCategory2.setImgurl(baseCategory.getImgurl()); + baseCategory2.setPinyin(baseCategory.getPinyin()); + baseCategory2.setShortPinyin(baseCategory.getShortPinyin()); + baseCategoryMapper.insert(baseCategory2); + + if (CollectionUtils.isEmpty(baseCategory.getBaseCategoryRequestParamList())){ + + long count = baseCategory.getBaseCategoryRequestParamList().stream().map(s -> s.getName().trim()).distinct().count(); + + if (baseCategory.getBaseCategoryRequestParamList().size() != count){ + throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"灞炴�у瓨鍦ㄩ噸澶�"); + } + baseCategory.getBaseCategoryRequestParamList().forEach(s->{ + BaseCateParam baseCateParam = new BaseCateParam(); + baseCateParam.setCreator(loginUserInfo.getId()); + baseCateParam.setCreateDate(new Date()); + baseCateParam.setEditor(loginUserInfo.getId()); + baseCateParam.setEditDate(new Date()); + baseCateParam.setIsdeleted(Constants.ZERO); + baseCateParam.setName(s.getName()); + baseCateParam.setRemark(s.getRemark()); + baseCateParam.setStatus(s.getStatus()); + baseCateParam.setSortnum(s.getSortnum()); + baseCateParam.setCategoryId(baseCategory2.getId()); + baseCateParamMapper.insert(baseCateParam); + }); + } + return baseCategory2.getId(); } @Override @@ -50,6 +118,64 @@ return; } baseCategoryMapper.deleteBatchIds(ids); + } + + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + @Override + public void updateById(BaseCategoryRequest baseCategory) { + + LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); + + if (Objects.nonNull(baseCategory.getId())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍝佺被涓婚敭缂哄け"); + } + + QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(BaseCategory::getName,baseCategory.getName()) + .eq(BaseCategory::getIsdeleted,Constants.ZERO); + + BaseCategory baseCategory1 = baseCategoryMapper.selectOne(wrapper); + if (Objects.nonNull(baseCategory1) && (!baseCategory1.getId().equals(baseCategory.getId()))){ + throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍝佺被淇℃伅琛�"); + } + + UpdateWrapper<BaseCategory> updateWrapper = new UpdateWrapper<>(); + updateWrapper.lambda() + .eq(BaseCategory::getId,baseCategory.getId()) + .set(BaseCategory::getName,baseCategory.getName()) + .set(BaseCategory::getImgurl,baseCategory.getImgurl()) + .set(BaseCategory::getSortnum,baseCategory.getSortnum()); + baseCategoryMapper.update(null,wrapper); + + if (CollectionUtils.isEmpty(baseCategory.getBaseCategoryRequestParamList())){ + + long count = baseCategory.getBaseCategoryRequestParamList().stream().map(s -> s.getName().trim()).distinct().count(); + if (baseCategory.getBaseCategoryRequestParamList().size() != count){ + throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"灞炴�у瓨鍦ㄩ噸澶�"); + } + + QueryWrapper<BaseCateParam> baseCateParamQuery = new QueryWrapper<>(); + baseCateParamQuery.lambda() + .eq(BaseCateParam::getCategoryId,baseCategory.getId()); + baseCateParamMapper.delete(baseCateParamQuery); + + baseCategory.getBaseCategoryRequestParamList().forEach(s->{ + BaseCateParam baseCateParam = new BaseCateParam(); + baseCateParam.setCreator(loginUserInfo.getId()); + baseCateParam.setCreateDate(new Date()); + baseCateParam.setEditor(loginUserInfo.getId()); + baseCateParam.setEditDate(new Date()); + baseCateParam.setIsdeleted(Constants.ZERO); + baseCateParam.setName(s.getName()); + baseCateParam.setRemark(s.getRemark()); + baseCateParam.setStatus(s.getStatus()); + baseCateParam.setSortnum(s.getSortnum()); + baseCateParam.setCategoryId(baseCategory.getId()); + baseCateParamMapper.insert(baseCateParam); + }); + + } + } @Override @@ -83,7 +209,7 @@ QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>(baseCategory); return baseCategoryMapper.selectList(wrapper); } - + @Override public PageData<BaseCategory> findPage(PageWrap<BaseCategory> pageWrap) { IPage<BaseCategory> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); @@ -136,14 +262,14 @@ if (pageWrap.getModel().getShortPinyin() != null) { queryWrapper.lambda().eq(BaseCategory::getShortPinyin, pageWrap.getModel().getShortPinyin()); } - for(PageWrap.SortData sortData: pageWrap.getSorts()) { - if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { - queryWrapper.orderByDesc(sortData.getProperty()); - } else { - queryWrapper.orderByAsc(sortData.getProperty()); - } + queryWrapper.lambda().orderByAsc(BaseCategory::getSortnum); + + IPage<BaseCategory> baseCategoryIPage = baseCategoryMapper.selectPage(page, queryWrapper); + if (!CollectionUtils.isEmpty(baseCategoryIPage.getRecords())){ + baseCategoryIPage.getRecords().forEach(s->s.setImgfullurl(getPreUrl()+s.getImgfullurl())); } - return PageData.from(baseCategoryMapper.selectPage(page, queryWrapper)); + + return PageData.from(baseCategoryIPage); } @Override @@ -151,4 +277,10 @@ QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>(baseCategory); return baseCategoryMapper.selectCount(wrapper); } + + private String getPreUrl(){ + String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode() + + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.CATEGORY_IMG).getCode(); + return prefixUrl; + } } -- Gitblit v1.9.3