From cf9cdbbf7b78b1f56b3bac358245e9cf64806fe0 Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期二, 12 九月 2023 14:01:38 +0800
Subject: [PATCH] #主播管理 企业员工管理

---
 server/service/src/main/java/com/doumee/service/business/CompanyService.java              |    8 +
 server/service/src/main/java/com/doumee/service/business/CompanyUserService.java          |   41 ++++++++
 server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java     |   26 +++++
 server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyUserDTO.java        |   75 +++++++++++++++
 server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyUserQueryDTO.java   |   25 +++++
 server/service/src/main/java/com/doumee/service/business/impl/CompanyUserServiceImpl.java |   94 ++++++++++++++++++
 server/service/src/main/java/com/doumee/dao/system/dto/CompanyUserImportDTO.java          |    2 
 7 files changed, 269 insertions(+), 2 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyUserDTO.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyUserDTO.java
new file mode 100644
index 0000000..f2aade2
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyUserDTO.java
@@ -0,0 +1,75 @@
+package com.doumee.dao.business.model.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author T14
+ */
+
+@Data
+@ApiModel("鍏徃鍛樺伐")
+public class CompanyUserDTO {
+
+
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    private Integer id;
+
+    @ApiModelProperty(value = "鐢ㄦ埛鍚�")
+    private String username;
+
+    @ApiModelProperty(value = "鍛樺伐鍚嶇О")
+    private String realname;
+
+    @ApiModelProperty(value = "宸ュ彿")
+    private String empNo;
+
+    @ApiModelProperty(value = "鐢熸棩")
+    private Date birthday;
+
+    @ApiModelProperty(value = "鎬у埆")
+    private String sex;
+
+    @ApiModelProperty(value = "閭")
+    private String email;
+
+    @ApiModelProperty(value = "鎵嬫満鍙风爜")
+    private String mobile;
+
+    @ApiModelProperty(value = "澶村儚")
+    private String avatar;
+
+    @ApiModelProperty(value = "浼佷笟缂栫爜")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "浼佷笟缂栫爜")
+    private Integer companyName;
+
+    @ApiModelProperty(value = "绫诲瀷 0骞冲彴鐢ㄦ埛 1浼佷笟鐢ㄦ埛")
+    private Integer type;
+
+    @ApiModelProperty(value = "鏄惁涓哄浐瀹氱敤鎴�")
+    private Boolean fixed;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+    @ApiModelProperty(value = "0 鍚敤 1 绂佺敤")
+    private Integer status;
+
+    @ApiModelProperty(value = "瑙掕壊ID")
+    private Integer roleId;
+
+    @ApiModelProperty(value = "瑙掕壊缂栫爜")
+    private String roleCode;
+
+    @ApiModelProperty(value = "瑙掕壊鍚嶇О")
+    private String roleName;
+
+    @ApiModelProperty(value = "绫诲瀷 0骞冲彴鐢ㄦ埛 1浼佷笟鐢ㄦ埛")
+    private Integer roleType;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyUserQueryDTO.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyUserQueryDTO.java
new file mode 100644
index 0000000..85b25af
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyUserQueryDTO.java
@@ -0,0 +1,25 @@
+package com.doumee.dao.business.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author T14
+ */
+
+@Data
+@ApiModel("鍏徃鍛樺伐鏌ヨ")
+public class CompanyUserQueryDTO {
+
+    @ApiModelProperty(value = "浼佷笟缂栫爜")
+    private String companyName;
+
+
+    @ApiModelProperty(value = "杈撳叆鐧诲綍璐﹀彿鐢ㄦ埛鍚嶇О")
+    private String keyWords;
+
+    @ApiModelProperty(value = "0 鍚敤 1 绂佺敤")
+    private Integer status;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/system/dto/CompanyUserDTO.java b/server/service/src/main/java/com/doumee/dao/system/dto/CompanyUserImportDTO.java
similarity index 97%
rename from server/service/src/main/java/com/doumee/dao/system/dto/CompanyUserDTO.java
rename to server/service/src/main/java/com/doumee/dao/system/dto/CompanyUserImportDTO.java
index 9046a72..b76cce5 100644
--- a/server/service/src/main/java/com/doumee/dao/system/dto/CompanyUserDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/system/dto/CompanyUserImportDTO.java
@@ -12,7 +12,7 @@
 
 @Data
 @ApiModel("浼佷笟鐢ㄦ埛鎵归噺瀵煎叆")
-public class CompanyUserDTO {
+public class CompanyUserImportDTO {
 
     @ExcelColumn(name="浼佷笟鍚嶇О")
     @ApiModelProperty(value = "鍏徃鍚嶇О")
diff --git a/server/service/src/main/java/com/doumee/service/business/CompanyService.java b/server/service/src/main/java/com/doumee/service/business/CompanyService.java
index 6fd458a..fa602ba 100644
--- a/server/service/src/main/java/com/doumee/service/business/CompanyService.java
+++ b/server/service/src/main/java/com/doumee/service/business/CompanyService.java
@@ -76,6 +76,14 @@
     Company findById(Integer id);
 
     /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return Company
+     */
+    Company findPlatformById(Integer id);
+
+    /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
      *
      * @param company 瀹炰綋瀵硅薄
diff --git a/server/service/src/main/java/com/doumee/service/business/CompanyUserService.java b/server/service/src/main/java/com/doumee/service/business/CompanyUserService.java
new file mode 100644
index 0000000..8715fa4
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/CompanyUserService.java
@@ -0,0 +1,41 @@
+package com.doumee.service.business;
+
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.dto.CompanyUserDTO;
+import com.doumee.dao.business.model.dto.CompanyUserQueryDTO;
+
+import java.util.List;
+
+/**
+ * @author T14
+ */
+public interface CompanyUserService {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<Company>
+     */
+    PageData<CompanyUserDTO> findPage(PageWrap<CompanyUserQueryDTO> pageWrap);
+
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param company 瀹炰綋瀵硅薄
+     * @return Company
+     */
+    CompanyUserDTO findOne(CompanyUserDTO company);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param company 瀹炰綋瀵硅薄
+     * @return List<Company>
+     */
+    List<CompanyUserDTO> findListByCompanyID(CompanyUserDTO company);
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 1f1a2df..9d9bad5 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -16,6 +16,7 @@
 import com.doumee.dao.business.join.CompanyJoinMapper;
 import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.dto.CompanyCreatOrUpdateRequest;
+import com.doumee.dao.system.SystemUserMapper;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.CompanyService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -23,6 +24,7 @@
 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;
@@ -43,6 +45,10 @@
     @Autowired
     private CompanyJoinMapper companyJoinMapper;
 
+    @Autowired
+    private SystemUserMapper systemUserMapper;
+
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     @Override
     public Integer create(CompanyCreatOrUpdateRequest company) {
         LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -75,6 +81,12 @@
         insert.setOepnType(company.getOepnType());
         insert.setSalesmanId(company.getSalesmanId());
         companyMapper.insert(insert);
+
+        UpdateWrapper<SystemUser> systemUserQuery = new UpdateWrapper<>();
+        systemUserQuery.lambda()
+                        .eq(SystemUser::getId,company.getManagerId())
+                        .set(SystemUser::getCompanyId,insert.getId());
+        systemUserMapper.update(null,systemUserQuery);
         return company.getId();
     }
 
@@ -128,6 +140,18 @@
     @Override
     public Company findById(Integer id) {
         return companyMapper.selectById(id);
+    }
+
+
+    @Override
+    public Company findPlatformById(Integer id) {
+
+        QueryWrapper<Company> wrapper = new QueryWrapper<>();
+        wrapper.select("company.*," +
+                "(select su1.USERNAME from system_user su1 where  su1.id = company.MANAGER_ID) as managerUserName," +
+                "(select su2.REALNAME from system_user su2 where  su2.id = company.SALESMAN_ID) as salesmanRealName")
+                .lambda().eq(Company::getId,id);
+        return companyMapper.selectOne(wrapper);
     }
 
     @Override
@@ -198,7 +222,7 @@
                     .like(SystemUser::getUsername,pageWrap.getModel().getManagerUserName())
                     .eq(Company::getStatus,pageWrap.getModel().getStatus())
                     .between(Company::getOepnValidDate,pageWrap.getModel().getOepnValidDateStart(),pageWrap.getModel().getOepnValidDateEnd());
-        return PageData.from(companyMapper.selectPage(page, queryWrapper));
+        return PageData.from(companyJoinMapper.selectJoinPage(page,Company.class,queryWrapper));
     }
 
     @Override
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyUserServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyUserServiceImpl.java
new file mode 100644
index 0000000..fb23b03
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyUserServiceImpl.java
@@ -0,0 +1,94 @@
+package com.doumee.service.business.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.dto.CompanyUserDTO;
+import com.doumee.dao.business.model.dto.CompanyUserQueryDTO;
+import com.doumee.dao.system.SystemUserJoinMapper;
+import com.doumee.dao.system.model.SystemRole;
+import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.system.model.SystemUserRole;
+import com.doumee.service.business.CompanyUserService;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author T14
+ */
+@Service
+public class CompanyUserServiceImpl implements CompanyUserService {
+
+    @Autowired
+    private SystemUserJoinMapper systemUserJoinMapper;
+
+
+    @Override
+    public PageData<CompanyUserDTO> findPage(PageWrap<CompanyUserQueryDTO> pageWrap) {
+        IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+
+        MPJLambdaWrapper<SystemUser> mpjJoinMapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        mpjJoinMapper.selectAll(SystemUser.class)
+                    .selectAs(SystemRole::getId,CompanyUserDTO::getRoleId)
+                    .selectAs(SystemRole::getCode,CompanyUserDTO::getRoleCode)
+                    .selectAs(SystemRole::getName,CompanyUserDTO::getRoleName)
+                    .selectAs(SystemRole::getType,CompanyUserDTO::getRoleType)
+                    .leftJoin(SystemUserRole.class,SystemUserRole::getUserId,SystemUser::getId)
+                    .leftJoin(SystemRole.class,SystemRole::getId,SystemUserRole::getRoleId)
+                    .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                    .eq(SystemUser::getType, Constants.ONE)
+                    .eq(SystemUser::getStatus,pageWrap.getModel().getStatus())
+                    .like(Company::getName,pageWrap.getModel().getCompanyName())
+                    .like(SystemUser::getUsername,pageWrap.getModel().getKeyWords())
+                    .or()
+                    .like(SystemUser::getRealname,pageWrap.getModel().getKeyWords());
+
+        IPage<CompanyUserDTO> companyUserDTOIPage = systemUserJoinMapper.selectJoinPage(page, CompanyUserDTO.class, mpjJoinMapper);
+        return PageData.from(companyUserDTOIPage);
+    }
+
+    @Override
+    public CompanyUserDTO findOne(CompanyUserDTO companyUserDTO) {
+        MPJLambdaWrapper<SystemUser> mpjJoinMapper = new MPJLambdaWrapper<>();
+        mpjJoinMapper.selectAll(SystemUser.class)
+                .selectAs(SystemRole::getId,CompanyUserDTO::getRoleId)
+                .selectAs(SystemRole::getCode,CompanyUserDTO::getRoleCode)
+                .selectAs(SystemRole::getName,CompanyUserDTO::getRoleName)
+                .selectAs(SystemRole::getType,CompanyUserDTO::getRoleType)
+                .leftJoin(SystemUserRole.class,SystemUserRole::getUserId,SystemUser::getId)
+                .leftJoin(SystemRole.class,SystemRole::getId,SystemUserRole::getRoleId)
+                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                .eq(SystemUser::getType, Constants.ONE)
+                .eq(SystemUser::getId,companyUserDTO.getId());
+
+        CompanyUserDTO companyUserDTOIPage = systemUserJoinMapper.selectJoinOne(CompanyUserDTO.class, mpjJoinMapper);
+        return companyUserDTOIPage;
+    }
+
+    @Override
+    public List<CompanyUserDTO> findListByCompanyID(CompanyUserDTO companyUserDTO) {
+        MPJLambdaWrapper<SystemUser> mpjJoinMapper = new MPJLambdaWrapper<>();
+        mpjJoinMapper.selectAll(SystemUser.class)
+                .selectAs(SystemRole::getId,CompanyUserDTO::getRoleId)
+                .selectAs(SystemRole::getCode,CompanyUserDTO::getRoleCode)
+                .selectAs(SystemRole::getName,CompanyUserDTO::getRoleName)
+                .selectAs(SystemRole::getType,CompanyUserDTO::getRoleType)
+                .leftJoin(SystemUserRole.class,SystemUserRole::getUserId,SystemUser::getId)
+                .leftJoin(SystemRole.class,SystemRole::getId,SystemUserRole::getRoleId)
+                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                .eq(SystemUser::getType, Constants.ONE)
+                .eq(SystemUser::getId,companyUserDTO.getCompanyId());
+
+        List<CompanyUserDTO> companyUserDTOS = systemUserJoinMapper.selectJoinList(CompanyUserDTO.class, mpjJoinMapper);
+        return companyUserDTOS;
+    }
+}

--
Gitblit v1.9.3