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