From 47f9dffa729e76ae5d0f2f845f55d8cc7179e8ac Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期一, 11 九月 2023 17:01:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
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