From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 16 十月 2024 15:59:38 +0800
Subject: [PATCH] 代码初始化

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java |  137 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 128 insertions(+), 9 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java
index 0932412..b3b0653 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java
@@ -1,20 +1,33 @@
 package com.doumee.service.business.impl;
 
+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.ApproveParamMapper;
 import com.doumee.dao.business.ApproveTemplMapper;
-import com.doumee.dao.business.model.ApproveTempl;
+import com.doumee.dao.business.PlatformReasonMapper;
+import com.doumee.dao.business.join.MemberJoinMapper;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.ApproveTemplService;
 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 com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+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;
 
 /**
  * 瀹℃壒妯$増淇℃伅琛⊿ervice瀹炵幇
@@ -26,16 +39,101 @@
 
     @Autowired
     private ApproveTemplMapper approveTemplMapper;
+    @Autowired
+    private ApproveParamMapper approveParamMapper;
+    @Autowired
+    private MemberJoinMapper memberJoinMapper;
+    @Autowired
+    private PlatformReasonMapper platformReasonMapper;
 
     @Override
-    public Integer create(ApproveTempl approveTempl) {
-        approveTemplMapper.insert(approveTempl);
-        return approveTempl.getId();
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public int save(ApproveTempl model) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(loginUserInfo == null){
+            loginUserInfo = model.getLoginUserInfo();
+        }
+        if(model.getType() == null || Constants.ApproveTmplType.getName(model.getType()) == null){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        PlatformReason reason = null;
+        if(Constants.equalsInteger(model.getType(),Constants.ApproveTmplType.PLATFROM_REASON.getKey())){
+            if(model.getReasonId() ==null){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST);
+            }
+            reason = platformReasonMapper.selectById(model.getReasonId());
+            if(reason ==null){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍏ュ洯鍘熷洜淇℃伅涓嶅瓨鍦紝璇疯繑鍥炲埛鏂伴〉闈㈤噸璇曪紒");
+            }
+        }
+        ApproveTempl template = approveTemplMapper.selectOne(new QueryWrapper<ApproveTempl>().lambda()
+                .eq(ApproveTempl::getType,model.getType() )
+                .eq(ApproveTempl::getIsdeleted,Constants.ZERO)
+                //濡傛灉鏄叆鍥師鍥犻厤缃紝鏍规嵁ID鏌ヨ瀵瑰簲鐨勬ā鐗堜俊鎭�
+                .eq(Constants.equalsInteger(model.getType(),Constants.ApproveTmplType.PLATFROM_REASON.getKey()),ApproveTempl::getId,model.getReasonId())
+                .last("limit 1"));
+        Date date =new Date();
+        if(template == null){
+            //濡傛灉妯$増娌℃湁锛屽垯鏂板
+            template = new ApproveTempl();
+            template.setType(model.getType());
+            template.setCreateDate(date);
+            template.setCreator(loginUserInfo.getId());
+            template.setEditDate(date);
+            template.setIsdeleted(Constants.ZERO);
+            template.setEditor(loginUserInfo.getId());
+            template.setName(Constants.ApproveTmplType.getName(model.getType()));
+            approveTemplMapper.insert(template);
+        }
+        int level = 0;
+        if(model.getParamList()!=null && model.getParamList().size()>0){
+            for(ApproveParam param : model.getParamList()){
+                param.setCreateDate(date);
+                param.setId(null);
+                param.setCreator(loginUserInfo.getId());
+                param.setEditDate(date);
+                param.setEditor(loginUserInfo.getId());
+                param.setIsdeleted(Constants.ZERO);
+//                param.setLevel(level);
+                param.setMemberType(Constants.formatIntegerNum(param.getMemberType()));
+                param.setTemplId(template.getId());
+                param.setType(Constants.formatIntegerNum(param.getType()));
+                param.setAddrParam(Constants.formatIntegerNum(param.getAddrParam()));
+                param.setDriverParam(Constants.formatIntegerNum(param.getDriverParam()));
+                param.setApproveType(Objects.isNull(param.getApproveType())?Constants.TWO:param.getApproveType());
+                level ++ ;
+            }
+            //鍏堟竻闄ゅ師鏉ユ墍鏈夌殑灏遍櫔閰嶇疆
+            approveParamMapper.delete(new UpdateWrapper<ApproveParam>().lambda()
+                    .eq(ApproveParam::getTemplId,template.getId()));
+            //鎵归噺鎻掑叆鏂扮殑閰嶇疆
+            approveParamMapper.insert(model.getParamList());
+        }
+        if(Constants.equalsInteger(model.getType(),Constants.ApproveTmplType.PLATFROM_REASON.getKey())){
+            PlatformReason r = new PlatformReason();
+            r.setApproveTemplId(template.getId());
+            r.setId(model.getReasonId());
+            r.setEditor(template.getEditor());
+            r.setEditDate(new Date());
+            platformReasonMapper.updateById(r);
+        }
+        return 1;
     }
 
     @Override
-    public void deleteById(Integer id) {
-        approveTemplMapper.deleteById(id);
+    public Integer create(ApproveTempl model) {
+        approveTemplMapper.insert(model);
+        return model.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id, LoginUserInfo userInfo) {
+        ApproveTempl model = new ApproveTempl();
+        model.setEditDate(new Date());
+        model.setEditor(userInfo.getId());
+        model.setId(id);
+        model.setIsdeleted(Constants.ONE);
+        approveTemplMapper.updateById(model);
     }
 
     @Override
@@ -45,11 +143,13 @@
     }
 
     @Override
-    public void deleteByIdInBatch(List<Integer> ids) {
+    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
-        approveTemplMapper.deleteBatchIds(ids);
+        for(Integer id:ids){
+            deleteById(id,user);
+        }
     }
 
     @Override
@@ -75,7 +175,26 @@
     @Override
     public ApproveTempl findOne(ApproveTempl approveTempl) {
         QueryWrapper<ApproveTempl> wrapper = new QueryWrapper<>(approveTempl);
-        return approveTemplMapper.selectOne(wrapper);
+        ApproveTempl model =  approveTemplMapper.selectOne(wrapper.lambda().last("limit 1"));
+        if(model!=null){
+            List<ApproveParam> approveParamList = approveParamMapper.selectList(new QueryWrapper<ApproveParam>()
+                    .lambda().eq(ApproveParam::getIsdeleted,Constants.ZERO)
+                    .eq(ApproveParam::getTemplId,model.getId())
+                    .orderByAsc(ApproveParam::getLevel)
+            );
+            for (ApproveParam approveParam :approveParamList) {
+                if(StringUtils.isNotBlank(approveParam.getObjIds())){
+                    approveParam.setMemberList(memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                            .selectAll(Member.class)
+                            .selectAs(Company::getName,Member::getCompanyName)
+                            .leftJoin(Company.class,Company::getId,Member::getCompanyId)
+                            .eq(Member::getIsdeleted,Constants.ZERO)
+                            .in(Member::getId,approveParam.getObjIds().split(","))));
+                }
+            }
+            model.setParamList(approveParamList);
+        }
+        return model;
     }
 
     @Override

--
Gitblit v1.9.3