From cdd6551b190b981b807a3b95e9635c559ccc769d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 19 五月 2025 09:45:07 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 96 insertions(+), 8 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java b/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
index 1e0c554..45e92a2 100644
--- a/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -2,13 +2,23 @@
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 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.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.model.Company;
+import com.doumee.dao.business.model.CompanyDepartment;
+import com.doumee.dao.business.CompanyDepartmentMapper;
+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.SystemUserJoinMapper;
 import com.doumee.dao.system.SystemUserMapper;
 import com.doumee.dao.system.dto.QuerySystemUserDTO;
@@ -25,6 +35,7 @@
 import com.github.pagehelper.PageInfo;
 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;
@@ -62,6 +73,9 @@
 
     @Autowired
     private DepartmentDataPermissionAware departmentDataPermissionAware;
+
+    @Autowired
+    private CompanyDepartmentMapper companyDepartmentMapper;
 
     @Override
     public Integer create(SystemUser systemUser) {
@@ -102,9 +116,16 @@
 
     @Override
     public SystemUser findById(Integer id) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+
         MPJLambdaWrapper<SystemUser> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper.selectAll(SystemUser.class);
         queryWrapper.eq(SystemUser::getId,id );
+        queryWrapper.eq(SystemUser::getType,loginUserInfo.getType() );
+        if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){
+            //濡傛灉鏄紒涓氳处鍙�
+            queryWrapper.eq(SystemUser::getCompanyId,loginUserInfo.getCompanyId() );
+        }
         queryWrapper.orderByDesc(SystemUser::getCreateTime);
         SystemUser  result = systemUserJoinMapper.selectJoinOne( SystemUser.class, queryWrapper);
         return result;
@@ -112,12 +133,18 @@
 
     @Override
     public SystemUser findOne(SystemUser systemUser) {
-        Wrapper<SystemUser> wrapper = new QueryWrapper<>(systemUser);
+        Wrapper<SystemUser> wrapper = new QueryWrapper<SystemUser>(systemUser).last("limit 1");
         return systemUserMapper.selectOne(wrapper);
     }
 
     @Override
     public List<SystemUser> findList(SystemUser systemUser) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        systemUser.setType(loginUserInfo.getType());
+        if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){
+            //濡傛灉鏄紒涓氳处鍙�
+            systemUser.setCompanyId(loginUserInfo.getCompanyId());
+        }
         Wrapper<SystemUser> wrapper = new QueryWrapper<>(systemUser);
         return systemUserMapper.selectList(wrapper);
     }
@@ -132,6 +159,12 @@
 //            List<Integer> collect = list.stream().map(s -> s.getId()).collect(Collectors.toList());
 //            pageWrap.getModel().setDepartmentIds(collect);
         }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+//        pageWrap.getModel().setType(loginUserInfo.getType());
+        if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){
+            //濡傛灉鏄紒涓氳处鍙�
+            pageWrap.getModel().setCompanyId(loginUserInfo.getCompanyId());
+        }
         // 鎵ц鏌ヨ
         PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
         List<SystemUserListVO> userList = systemUserMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause());
@@ -145,6 +178,29 @@
             user.setZhuboRoomUrl(zhuboRoomUrl);
         }
         return PageData.from(new PageInfo<>(userList));
+    }
+    @Override
+    public PageData<SystemUserListVO> findPageCompany(PageWrap<QuerySystemUserDTO> pageWrap) {
+        // 鏍归儴闂ㄦ潯浠跺鐞嗭紙闇�鏌ヨ鏍归儴闂ㄤ笅鎵�鏈夐儴闂ㄧ殑鐢ㄦ埛锛�
+        IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setType(Constants.UserType.COMPANY.getKey());//鏌ヨ浼佷笟绫诲瀷
+        // 鎵ц鏌ヨ
+        MPJLambdaWrapper<SystemUser> wrapper = new MPJLambdaWrapper<>();
+        wrapper .selectAll(SystemUser.class)
+                .select("(select count(distinct(a.company_id) from company_permisson a where a.user_id=t.id and a.ideleted=0 and a.type=1)",SystemUser::getAuthNum)
+                .selectAs(Company::getName,SystemUser::getCompanyName)
+                .selectAs(CompanyDepartment::getName,SystemUser::getDepartmentName)
+                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                .leftJoin(CompanyDepartment.class,CompanyDepartment::getId,SystemUser::getDepartmentId)
+                .eq( pageWrap.getModel().getDepartmentId() !=null,SystemUser::getDepartmentId, pageWrap.getModel().getDepartmentId())
+                .eq( pageWrap.getModel().getStatus() !=null,SystemUser::getStatus, pageWrap.getModel().getStatus())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getMobile()),SystemUser::getMobile, pageWrap.getModel().getMobile())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getRealname()),SystemUser::getRealname, pageWrap.getModel().getRealname())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getUsername()),SystemUser::getUsername, pageWrap.getModel().getUsername())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),SystemUser::getCompanyName, pageWrap.getModel().getCompanyName());
+        IPage<SystemUserListVO> result =  systemUserMapper.selectJoinPage(page,SystemUserListVO.class,wrapper);
+        return  PageData.from(result);
     }
 
     @Override
@@ -202,20 +258,23 @@
 
     @Override
     public PageData<SystemUser> findAllList(PageWrap<SystemUser> pageWrap) {
-
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        pageWrap.getModel().setType(loginUserInfo.getType());
+        if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){
+            //濡傛灉鏄紒涓氳处鍙�
+            pageWrap.getModel().setCompanyId(loginUserInfo.getCompanyId());
+        }
         IPage<SystemUser> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<SystemUser> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
         queryWrapper.selectAll(SystemUser.class);
         queryWrapper.eq(SystemUser::getDeleted, Constants.ZERO);
-        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getUsername()),ms->ms.like(SystemUser::getUsername,pageWrap.getModel().getUsername())
-        .or().like(SystemUser::getMobile,pageWrap.getModel().getUsername())
+        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getUsername()),
+                ms->ms.like(SystemUser::getUsername,pageWrap.getModel().getUsername())
+                    .or().like(SystemUser::getMobile,pageWrap.getModel().getUsername())
                 .or().like(SystemUser::getRealname,pageWrap.getModel().getUsername())
         );
         queryWrapper.orderByDesc(SystemUser::getCreateTime);
-
-
-
         IPage<SystemUser> result = systemUserJoinMapper.selectJoinPage(page, SystemUser.class, queryWrapper);
 
         return PageData.from(result);
@@ -224,17 +283,46 @@
 
     @Override
     public List<SystemUser> findAllList(SystemUser pageWrap){
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        pageWrap.setType(loginUserInfo.getType());
+        if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){
+            //濡傛灉鏄紒涓氳处鍙�
+            pageWrap.setCompanyId(loginUserInfo.getCompanyId());
+        }
         MPJLambdaWrapper<SystemUser> queryWrapper = new MPJLambdaWrapper<>();
 
         queryWrapper.selectAll(SystemUser.class);
         queryWrapper.eq(SystemUser::getDeleted, Constants.ZERO)
-                    .eq(SystemUser::getType,pageWrap.getType());
+                    .eq(SystemUser::getType,pageWrap.getType())
+                    .eq(SystemUser::getCompanyId,loginUserInfo.getCompanyId())
+               ;
         queryWrapper.orderByDesc(SystemUser::getCreateTime);
         List<SystemUser> result = systemUserJoinMapper.selectJoinList(SystemUser.class, queryWrapper);
 
         return result;
     }
 
+    @Override
+    public void updateHead(SystemUser systemUser) {
+        SystemUser model  =systemUserJoinMapper.selectById(systemUser.getId());
+        if(model ==null) {
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浜哄憳淇℃伅涓嶅瓨鍦紒");
+        }
+        if(model.getDepartmentId()!=null) {
+            if(Constants.equalsInteger(systemUser.getHeadStatus(),Constants.ONE)){
+                //濡傛灉鏄彇娑堜富绠�
+                companyDepartmentMapper.update(null,new UpdateWrapper<CompanyDepartment>().lambda()
+                        .eq(CompanyDepartment::getId,model.getDepartmentId())
+                        .set(CompanyDepartment::getHeadId,model.getId()));
+            }else{
+                //濡傛灉鏄涓轰富绠�
+                companyDepartmentMapper.update(null,new UpdateWrapper<CompanyDepartment>().lambda()
+                        .eq(CompanyDepartment::getId,model.getDepartmentId())
+                        .set(CompanyDepartment::getHeadId,null)
+                );
+            }
+        }
+    }
 
 
 

--
Gitblit v1.9.3