From 5506edbe54883b31db3cc8e4a1d9d0795a18a3c9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 27 十二月 2024 14:37:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java |   84 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 75 insertions(+), 9 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java
index ecff560..b6741d2 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java
@@ -1,6 +1,5 @@
 package com.doumee.service.business.impl;
 
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
@@ -9,9 +8,9 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.CompanyDepartmentMapper;
+import com.doumee.dao.business.dto.UpdateSortDTO;
 import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.CompanyDepartment;
-import com.doumee.dao.business.model.Member;
 import com.doumee.dao.system.SystemUserMapper;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.system.vo.DepartmentTree;
@@ -29,7 +28,7 @@
 
 import java.util.Date;
 import java.util.List;
-import java.util.UUID;
+import java.util.Objects;
 
 /**
  * 浼佷笟淇℃伅琛⊿ervice瀹炵幇
@@ -43,11 +42,13 @@
     private CompanyDepartmentMapper companyDepartmentMapper;
     @Autowired
     private SystemUserMapper systemUserMapper;
+
     @Override
     public  List<CompanyDepartment> departTree(Integer type){
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         MPJLambdaWrapper<CompanyDepartment> queryWrapper = new MPJLambdaWrapper<>();
-        queryWrapper.selectAll(Company.class);
-        queryWrapper.select("t2.realname",CompanyDepartment::getEditorName);
+        queryWrapper.selectAll(CompanyDepartment.class);
+        queryWrapper.select("t3.realname",CompanyDepartment::getEditorName);
         queryWrapper.select("t2.realname",CompanyDepartment::getHeadName);
         queryWrapper.select("t2.mobile",CompanyDepartment::getHeadPhone);
         queryWrapper.select("t1.name",CompanyDepartment::getParentName);
@@ -58,12 +59,76 @@
         queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,CompanyDepartment::getEditor);
         queryWrapper.eq(CompanyDepartment::getIsdeleted,Constants.ZERO);
         queryWrapper.eq(type!=null,CompanyDepartment::getType,type);
-        queryWrapper.orderByAsc(true,"t.sortnum");
+        //濡傛灉鏄紒涓�/鍟嗘埛 鍙煡璇㈣嚜韬粍缁囦笅鐨勬暟鎹�
+        if( !Constants.equalsInteger(type,Constants.ZERO)){
+            queryWrapper.eq(CompanyDepartment::getCompanyId,loginUserInfo.getCompanyId());
+        }else{
+            queryWrapper.eq(CompanyDepartment::getType,type);
+        }
+        queryWrapper.last(" order by  t.sortnum asc  ");
         List<CompanyDepartment> companyList = companyDepartmentMapper.selectJoinList(CompanyDepartment.class,queryWrapper);
         DepartmentTree treeBuild = new DepartmentTree(companyList);
         companyList = treeBuild.buildTree();
         return companyList;
     }
+
+
+    @Override
+    public void updateSort(UpdateSortDTO dto) {
+        CompanyDepartment companyDepartment = companyDepartmentMapper.selectById(dto.getId());
+        if(Objects.isNull(companyDepartment)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+
+        List<CompanyDepartment> companyDepartmentPool;
+        if (companyDepartment.getParentId() == null) {
+            companyDepartmentPool = companyDepartmentMapper.selectList(new QueryWrapper<CompanyDepartment>().lambda()
+                    .eq(CompanyDepartment::getIsdeleted,Constants.ZERO)
+                    .isNull(CompanyDepartment::getParentId)
+                    .orderByAsc(CompanyDepartment::getSortnum)
+            );
+        } else {
+            companyDepartmentPool = companyDepartmentMapper.selectList(new QueryWrapper<CompanyDepartment>().lambda()
+                    .eq(CompanyDepartment::getIsdeleted,Constants.ZERO)
+                    .eq(CompanyDepartment::getParentId,companyDepartment.getParentId())
+                    .orderByAsc(CompanyDepartment::getSortnum)
+            );
+        }
+        int currentMenuIndex = 0;
+        for (int i = 0; i < companyDepartmentPool.size(); i++) {
+            if (companyDepartmentPool.get(i).getId().equals(dto.getId())) {
+                currentMenuIndex = i;
+                break;
+            }
+        }
+        // 涓婄Щ
+        if ("top".equals(dto.getDirection())) {
+            if (currentMenuIndex - 1 < 0) {
+                return;
+            }
+            CompanyDepartment preMenu = companyDepartmentPool.get(currentMenuIndex - 1);
+            companyDepartmentPool.remove(currentMenuIndex - 1);
+            companyDepartmentPool.add(currentMenuIndex, preMenu);
+        }
+        // 涓嬬Щ
+        else {
+            if (currentMenuIndex + 1 > companyDepartmentPool.size() - 1) {
+                return;
+            }
+            CompanyDepartment nextMenu = companyDepartmentPool.remove(currentMenuIndex + 1);
+            companyDepartmentPool.add(currentMenuIndex, nextMenu);
+        }
+        for (int i = 0; i < companyDepartmentPool.size(); i++) {
+            companyDepartmentPool.get(i).setSortnum(i);
+        }
+
+        for (CompanyDepartment updCompanyDepartment:companyDepartmentPool) {
+            companyDepartmentMapper.updateById(updCompanyDepartment);
+        }
+
+    }
+
+
     @Override
     public Integer create(CompanyDepartment company) {
 
@@ -71,7 +136,7 @@
         if(StringUtils.isBlank(company.getName())){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-        if(company.getType()==null || !(company.getType() ==0 || company.getType() ==1)){
+        if(company.getType()==null || !(company.getType() ==0 || company.getType() ==1 || company.getType() ==2)){
             throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "瀵逛笉璧凤紝缁勭粐绫诲瀷涓嶆纭紝璇锋寜瑕佹眰濉啓~");
         }
         int type = Constants.ZERO;//榛樿骞冲彴缁勭粐
@@ -247,9 +312,8 @@
         //鏇存柊鐨刢ompanyPath
         String newName = model.getNamePath().replace(model.getName(),company.getName());
         companyDepartmentMapper.update(null,new UpdateWrapper<CompanyDepartment>().lambda()
-                .setSql("company_name_path=REPLACE(name_path,'"+ model.getNamePath()+"','"+newName+"')")
+                .setSql("name_path = REPLACE(name_path,'"+ model.getNamePath()+"','"+newName+"')")
                 .likeRight(CompanyDepartment::getIdPath,model.getIdPath()));
-
 
     }
 
@@ -362,4 +426,6 @@
         QueryWrapper<CompanyDepartment> wrapper = new QueryWrapper<>(companyDepartment);
         return companyDepartmentMapper.selectCount(wrapper);
     }
+
+
 }

--
Gitblit v1.9.3