Ver Fonte

会员关联项目

Long há 3 semanas atrás
pai
commit
26181b7e32
23 ficheiros alterados com 168 adições e 106 exclusões
  1. 3 2
      fs-admin/src/main/java/com/fs/company/controller/CompanyUserController.java
  2. 1 1
      fs-company-app/src/main/java/com/fs/app/controller/CompanyUserController.java
  3. 2 6
      fs-company-app/src/main/java/com/fs/app/param/CompanyUserChangeApplyParam.java
  4. 0 4
      fs-service-system/src/main/java/com/fs/company/domain/CompanyUserChangeApply.java
  5. 4 0
      fs-service-system/src/main/java/com/fs/company/domain/CompanyUserChangeApplyUser.java
  6. 15 0
      fs-service-system/src/main/java/com/fs/company/dto/UserProjectDTO.java
  7. 2 2
      fs-service-system/src/main/java/com/fs/company/service/ICompanyUserChangeApplyService.java
  8. 3 2
      fs-service-system/src/main/java/com/fs/company/service/ICompanyUserService.java
  9. 14 10
      fs-service-system/src/main/java/com/fs/company/service/impl/CompanyUserChangeApplyServiceImpl.java
  10. 12 4
      fs-service-system/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java
  11. 4 0
      fs-service-system/src/main/java/com/fs/company/vo/CompanyUserChangeApplyUserVO.java
  12. 0 4
      fs-service-system/src/main/java/com/fs/company/vo/CompanyUserChangeApplyVO.java
  13. 35 24
      fs-service-system/src/main/java/com/fs/qw/service/impl/CustomerTransferApprovalServiceImpl.java
  14. 4 0
      fs-service-system/src/main/java/com/fs/qw/vo/TransferCustomDTO.java
  15. 13 0
      fs-service-system/src/main/java/com/fs/store/domain/FsUser.java
  16. 1 4
      fs-service-system/src/main/java/com/fs/store/domain/FsUserCompanyUser.java
  17. 2 1
      fs-service-system/src/main/java/com/fs/store/dto/FsUserTransferParamDTO.java
  18. 0 15
      fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java
  19. 4 2
      fs-service-system/src/main/java/com/fs/store/param/h5/FsUserPageListParam.java
  20. 9 0
      fs-service-system/src/main/java/com/fs/store/service/IFsUserCompanyUserService.java
  21. 22 0
      fs-service-system/src/main/java/com/fs/store/service/impl/FsUserCompanyUserServiceImpl.java
  22. 5 4
      fs-service-system/src/main/resources/mapper/company/CompanyUserChangeApplyUserMapper.xml
  23. 13 21
      fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

+ 3 - 2
fs-admin/src/main/java/com/fs/company/controller/CompanyUserController.java

@@ -9,6 +9,7 @@ import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
+import com.fs.company.dto.UserProjectDTO;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.his.vo.OptionsVO;
 import com.github.pagehelper.PageHelper;
@@ -163,9 +164,9 @@ public class CompanyUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('company:companyUser:change')")
     @Log(title = "更换会员归属", businessType = BusinessType.OTHER)
     @PostMapping("/changeCompanyUser")
-    public AjaxResult changeCompanyUser(@RequestBody List<Long> userIds, @RequestParam Long companyUserId, @RequestParam Long companyId)
+    public AjaxResult changeCompanyUser(@RequestBody List<UserProjectDTO> users, @RequestParam Long companyUserId, @RequestParam Long companyId)
     {
-        return toAjax(companyUserService.changeCompanyUser(userIds, companyUserId, companyId));
+        return toAjax(companyUserService.changeCompanyUser(users, companyUserId, companyId));
     }
 
 

+ 1 - 1
fs-company-app/src/main/java/com/fs/app/controller/CompanyUserController.java

@@ -252,7 +252,7 @@ public class CompanyUserController extends AppBaseController {
         CompanyUser companyUser = companyUserService.selectCompanyUserById(Long.parseLong(getUserId()));
 
         // 添加申请
-        companyUserChangeApplyService.apply(param.getFrom(), param.getTo(), param.getType(), param.getIds(), companyUser.getCompanyId(), companyUser.getUserName(), param.getProjectId());
+        companyUserChangeApplyService.apply(param.getFrom(), param.getTo(), param.getType(), param.getIds(), companyUser.getCompanyId(), companyUser.getUserName());
         return R.ok();
     }
 

+ 2 - 6
fs-company-app/src/main/java/com/fs/app/param/CompanyUserChangeApplyParam.java

@@ -1,5 +1,6 @@
 package com.fs.app.param;
 
+import com.fs.company.dto.UserProjectDTO;
 import lombok.Data;
 
 import javax.validation.constraints.NotNull;
@@ -25,10 +26,5 @@ public class CompanyUserChangeApplyParam {
     /**
      * 需更换归属会员id集合
      */
-    private List<Long> ids;
-    /**
-     * 项目ID
-     */
-    @NotNull(message = "项目ID不能为空")
-    private Long projectId;
+    private List<UserProjectDTO> ids;
 }

+ 0 - 4
fs-service-system/src/main/java/com/fs/company/domain/CompanyUserChangeApply.java

@@ -54,8 +54,4 @@ public class CompanyUserChangeApply {
      * 被拒原因
      */
     private String reason;
-    /**
-     * 项目ID
-     */
-    private Long projectId;
 }

+ 4 - 0
fs-service-system/src/main/java/com/fs/company/domain/CompanyUserChangeApplyUser.java

@@ -21,4 +21,8 @@ public class CompanyUserChangeApplyUser {
      * 用户ID
      */
     private Long userId;
+    /**
+     * 项目ID
+     */
+    private Long projectId;
 }

+ 15 - 0
fs-service-system/src/main/java/com/fs/company/dto/UserProjectDTO.java

@@ -0,0 +1,15 @@
+package com.fs.company.dto;
+
+import lombok.Data;
+
+@Data
+public class UserProjectDTO {
+    /**
+     * 会员ID
+     */
+    private Long userId;
+    /**
+     * 项目ID
+     */
+    private Long projectId;
+}

+ 2 - 2
fs-service-system/src/main/java/com/fs/company/service/ICompanyUserChangeApplyService.java

@@ -2,6 +2,7 @@ package com.fs.company.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.company.domain.CompanyUserChangeApply;
+import com.fs.company.dto.UserProjectDTO;
 import com.fs.company.vo.CompanyUserChangeApplyVO;
 
 import java.util.List;
@@ -18,9 +19,8 @@ public interface ICompanyUserChangeApplyService extends IService<CompanyUserChan
      * @param ids       会员
      * @param companyId 公司ID
      * @param userName  操作用户
-     * @param projectId 项目ID
      */
-    void apply(Long from, Long to, Integer type, List<Long> ids, Long companyId, String userName, Long projectId);
+    void apply(Long from, Long to, Integer type, List<UserProjectDTO> ids, Long companyId, String userName);
 
     /**
      * 查询申请列表

+ 3 - 2
fs-service-system/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -2,6 +2,7 @@ package com.fs.company.service;
 
 import com.fs.common.core.domain.R;
 import com.fs.company.domain.CompanyUser;
+import com.fs.company.dto.UserProjectDTO;
 import com.fs.company.param.CompanyUserAreaParam;
 import com.fs.company.param.CompanyUserQwParam;
 import com.fs.company.vo.CompanyQwUserByIdsVo;
@@ -184,10 +185,10 @@ public interface ICompanyUserService {
 
     /**
      * 更改会员归属
-     * @param userIds
+     * @param users 需更换归属会员
      * @return
      */
-    int changeCompanyUser(List<Long> userIds, Long companyUserId, Long companyId);
+    int changeCompanyUser(List<UserProjectDTO> users, Long companyUserId, Long companyId);
 
     /**
      * 查询销售选项列表

+ 14 - 10
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyUserChangeApplyServiceImpl.java

@@ -4,12 +4,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.common.exception.ServiceException;
 import com.fs.company.domain.CompanyUserChangeApply;
 import com.fs.company.domain.CompanyUserChangeApplyUser;
+import com.fs.company.dto.UserProjectDTO;
 import com.fs.company.mapper.CompanyUserChangeApplyMapper;
 import com.fs.company.service.ICompanyUserChangeApplyService;
 import com.fs.company.service.ICompanyUserChangeApplyUserService;
 import com.fs.company.vo.CompanyUserChangeApplyVO;
-import com.fs.store.domain.FsUser;
-import com.fs.store.mapper.FsUserMapper;
+import com.fs.store.domain.FsUserCompanyUser;
+import com.fs.store.service.IFsUserCompanyUserService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -25,7 +26,7 @@ import java.util.Objects;
 public class CompanyUserChangeApplyServiceImpl extends ServiceImpl<CompanyUserChangeApplyMapper, CompanyUserChangeApply> implements ICompanyUserChangeApplyService {
 
     private final ICompanyUserChangeApplyUserService companyUserChangeApplyUserService;
-    private final FsUserMapper userMapper;
+    private final IFsUserCompanyUserService userCompanyUserService;
 
     /**
      * 申请更换会员归属
@@ -36,32 +37,35 @@ public class CompanyUserChangeApplyServiceImpl extends ServiceImpl<CompanyUserCh
      * @param ids       会员
      * @param companyId 公司ID
      * @param userName  操作用户
-     * @param projectId 项目ID
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void apply(Long from, Long to, Integer type, List<Long> ids, Long companyId, String userName, Long projectId) {
+    public void apply(Long from, Long to, Integer type, List<UserProjectDTO> ids, Long companyId, String userName) {
         List<CompanyUserChangeApplyUser> users = new ArrayList<>();
 
         // 全部
         if (type == 0) {
-            List<FsUser> userList = userMapper.selectByCompanyUserAndProjectId(from, projectId);
-            for (FsUser user : userList) {
+            FsUserCompanyUser params = new FsUserCompanyUser();
+            params.setCompanyUserId(from);
+            List<FsUserCompanyUser> userList = userCompanyUserService.selectFsUserCompanyUserList(params);
+            for (FsUserCompanyUser user : userList) {
                 CompanyUserChangeApplyUser uu = new CompanyUserChangeApplyUser();
                 uu.setUserId(user.getUserId());
+                uu.setProjectId(user.getProjectId());
                 users.add(uu);
             }
         }
         // 部分
         else {
-            for (Long id : ids) {
-                FsUser user = userMapper.selectByUserIdAndProjectId(id, projectId);
+            for (UserProjectDTO id : ids) {
+                FsUserCompanyUser user = userCompanyUserService.selectByUserIdAndProjectId(id.getUserId(), id.getProjectId());
                 if (Objects.isNull(user)) {
-                    throw new ServiceException("会员不存在");
+                    throw new ServiceException("会员关系不存在");
                 }
 
                 CompanyUserChangeApplyUser uu = new CompanyUserChangeApplyUser();
                 uu.setUserId(user.getUserId());
+                uu.setProjectId(user.getProjectId());
                 users.add(uu);
             }
         }

+ 12 - 4
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -8,6 +8,7 @@ import com.fs.common.exception.file.OssException;
 import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.company.domain.*;
+import com.fs.company.dto.UserProjectDTO;
 import com.fs.company.mapper.*;
 import com.fs.company.param.CompanyUserAreaParam;
 import com.fs.company.param.CompanyUserQwParam;
@@ -22,6 +23,7 @@ import com.fs.qw.vo.CompanyUserQwVO;
 import com.fs.qw.vo.QwUserVO;
 import com.fs.store.mapper.FsUserMapper;
 import com.fs.store.service.IFsCityService;
+import com.fs.store.service.IFsUserCompanyUserService;
 import com.fs.system.oss.CloudStorageService;
 import com.fs.system.oss.OSSFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -64,6 +66,8 @@ public class CompanyUserServiceImpl implements ICompanyUserService
 
     @Autowired
     private FsUserMapper fsUserMapper;
+    @Autowired
+    private IFsUserCompanyUserService userCompanyUserService;
 
     /**
      * 查询物业公司管理员信息
@@ -495,15 +499,19 @@ public class CompanyUserServiceImpl implements ICompanyUserService
 
     @Override
     @Transactional
-    public int changeCompanyUser(List<Long> userIds, Long companyUserId, Long companyId) {
+    public int changeCompanyUser(List<UserProjectDTO> users, Long companyUserId, Long companyId) {
 
         CompanyUser toUser = companyUserMapper.selectCompanyUserById(companyUserId);
         if (Objects.isNull(toUser)) {
             throw new ServiceException("需要更换归属的销售不存在");
         }
-       fsUserMapper.batchUpdateUserCompanyUser(userIds, companyUserId, companyId);
-        // 修改中间表
-        fsUserMapper.batchUpdateCompanyUserRelation(userIds, companyUserId, companyId);
+
+        for (UserProjectDTO u : users) {
+            userCompanyUserService.changeRelationship(u.getUserId(), u.getProjectId(), toUser.getCompanyId(), toUser.getCompanyId());
+        }
+//       fsUserMapper.batchUpdateUserCompanyUser(userIds, companyUserId, companyId);
+//        // 修改中间表
+//        fsUserMapper.batchUpdateCompanyUserRelation(userIds, companyUserId, companyId);
         return 1;
     }
 

+ 4 - 0
fs-service-system/src/main/java/com/fs/company/vo/CompanyUserChangeApplyUserVO.java

@@ -8,6 +8,10 @@ public class CompanyUserChangeApplyUserVO {
      * 用户ID
      */
     private Long userId;
+    /**
+     * 项目ID
+     */
+    private Long projectId;
     /**
      * 用户名称
      */

+ 0 - 4
fs-service-system/src/main/java/com/fs/company/vo/CompanyUserChangeApplyVO.java

@@ -66,8 +66,4 @@ public class CompanyUserChangeApplyVO {
      * 需更换用户
      */
     private List<CompanyUserChangeApplyUserVO> users;
-    /**
-     * 项目ID
-     */
-    private Long projectId;
 }

+ 35 - 24
fs-service-system/src/main/java/com/fs/qw/service/impl/CustomerTransferApprovalServiceImpl.java

@@ -1,8 +1,5 @@
 package com.fs.qw.service.impl;
 
-import java.util.*;
-
-import cn.hutool.core.lang.Pair;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -11,16 +8,19 @@ import com.fs.company.cache.ICompanyCacheService;
 import com.fs.company.cache.ICompanyUserCacheService;
 import com.fs.company.domain.Company;
 import com.fs.company.domain.CompanyUser;
+import com.fs.company.dto.UserProjectDTO;
 import com.fs.qw.domain.CustomerTransferApproval;
 import com.fs.qw.mapper.CustomerTransferApprovalMapper;
 import com.fs.qw.service.ICustomerTransferApprovalService;
 import com.fs.qw.vo.TransferCustomDTO;
 import com.fs.store.domain.FsUser;
+import com.fs.store.domain.FsUserCompanyUser;
 import com.fs.store.dto.FsUserTransferParamDTO;
+import com.fs.store.service.IFsUserCompanyUserService;
 import com.fs.store.service.IFsUserService;
 import com.fs.store.service.cache.IFsUserCacheService;
 import com.hc.openapi.tool.util.StringUtils;
-import org.apache.http.util.Asserts;
+import org.apache.hc.core5.util.Asserts;
 import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
@@ -28,6 +28,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
 /**
  * 客户转移审批Service业务层处理
  *
@@ -52,6 +57,8 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp
 
     @Autowired
     private IFsUserService fsUserService;
+    @Autowired
+    private IFsUserCompanyUserService userCompanyUserService;
 
     /**
      * 查询客户转移审批
@@ -107,7 +114,7 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp
         }
 
         if(StringUtils.isBlank(item.getTransferBefore()) && StringUtils.isNotBlank(item.getCustomerIds())){
-            List<Long> customerIds = JSON.parseArray(item.getCustomerIds(), Long.class);
+            List<UserProjectDTO> customerIds = JSON.parseArray(item.getCustomerIds(), UserProjectDTO.class);
             List<TransferCustomDTO> customerList = getCustomerList(customerIds, item);
             item.setCustomerList(customerList);
         } else {
@@ -134,27 +141,28 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp
         }
     }
 
-    private List<TransferCustomDTO> getCustomerList(List<Long> customerIds, CustomerTransferApproval item) {
+    private List<TransferCustomDTO> getCustomerList(List<UserProjectDTO> customerIds, CustomerTransferApproval item) {
         List<TransferCustomDTO> customerList = new ArrayList<>();
 
-        for (Long customerId : customerIds) {
+        for (UserProjectDTO customerId : customerIds) {
 
-            FsUser fsUser = fsUserCacheService.selectFsUserById(customerId);
+            FsUser fsUser = fsUserCacheService.selectFsUserById(customerId.getUserId());
             if(ObjectUtils.isNotNull(fsUser)){
-                String companyUserName = "无";
-                if(ObjectUtils.isNotNull(fsUser.getCompanyUserId())){
-                    CompanyUser companyUser = companyUserCacheService.selectCompanyUserById(fsUser.getCompanyUserId());
-                    companyUserName = String.format("%s_%d", companyUser.getUserName(), companyUser.getUserId());
-                }
+                FsUserCompanyUser userCompanyUser = userCompanyUserService.selectByUserIdAndProjectId(customerId.getUserId(), customerId.getProjectId());
+                if(Objects.nonNull(userCompanyUser)){
+                    CompanyUser companyUser = companyUserCacheService.selectCompanyUserById(userCompanyUser.getCompanyUserId());
+                    String companyUserName = String.format("%s_%d", companyUser.getUserName(), companyUser.getUserId());
 
-                customerList.add(TransferCustomDTO.builder()
-                        .userName(String.format("%s_%d", fsUser.getNickname(), fsUser.getUserId()))
-                        .userId(fsUser.getUserId())
-                        .beforeCompanyUserName(companyUserName)
-                        .beforeCompanyUserId(fsUser.getCompanyUserId())
-                        .afterCompanyUserName(item.getTargetUserName())
-                        .afterCompanyUserId(item.getTargetUserId())
-                        .build());
+                    customerList.add(TransferCustomDTO.builder()
+                            .userName(String.format("%s_%d", fsUser.getNickname(), fsUser.getUserId()))
+                            .userId(fsUser.getUserId())
+                            .projectId(customerId.getProjectId())
+                            .beforeCompanyUserName(companyUserName)
+                            .beforeCompanyUserId(companyUser.getUserId())
+                            .afterCompanyUserName(item.getTargetUserName())
+                            .afterCompanyUserId(item.getTargetUserId())
+                            .build());
+                }
             }
         }
         return customerList;
@@ -239,7 +247,7 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp
         item.setProcessedAt(new Date());
 //        审批状态: 0=待审批, 1=审批通过, 2=审批驳回, 3=已撤销
         // 如果审批通过 进行转移
-        List<Long> customerIds1 = JSON.parseArray(item.getCustomerIds(), Long.class);
+        List<UserProjectDTO> customerIds1 = JSON.parseArray(item.getCustomerIds(), UserProjectDTO.class);
         List<TransferCustomDTO> customerList = getCustomerList(customerIds1, item);
         item.setTransferBefore(JSON.toJSONString(customerList));
 
@@ -249,11 +257,14 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp
             transferParam.setTargetCompanyUserId(item.getTargetUserId());
 
             Asserts.check(StringUtils.isNotBlank(item.getCustomerIds()),"转移客户不能为空!");
-            List<Long> customerIds = JSON.parseArray(item.getCustomerIds(), Long.class);
+            List<UserProjectDTO> customerIds = JSON.parseArray(item.getCustomerIds(), UserProjectDTO.class);
             transferParam.setUserIds(customerIds);
             transferParam.setSourceCompanyUserId(item.getOriginalUserId());
 
-            fsUserService.transfer(transferParam);
+            for (UserProjectDTO customerId : customerIds) {
+                CompanyUser companyUser = companyUserCacheService.selectCompanyUserById(item.getTargetUserId());
+                userCompanyUserService.changeRelationship(customerId.getUserId(), customerId.getProjectId(), companyUser.getCompanyId(), companyUser.getUserId());
+            }
         }
 
         return customerTransferApprovalMapper.updateCustomerTransferApproval(item);

+ 4 - 0
fs-service-system/src/main/java/com/fs/qw/vo/TransferCustomDTO.java

@@ -17,6 +17,10 @@ public class TransferCustomDTO implements Serializable {
      */
     private String userName;
     private Long userId;
+    /**
+     * 项目ID
+     */
+    private Long projectId;
     /**
      * 转移前销售
      */

+ 13 - 0
fs-service-system/src/main/java/com/fs/store/domain/FsUser.java

@@ -160,6 +160,19 @@ public class FsUser extends BaseEntity
     @Excel(name = "所属公司", sort = 9)
     private String companyName;
 
+    /**
+     * 项目ID
+     */
+    private Long projectId;
+
+    public Long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Long projectId) {
+        this.projectId = projectId;
+    }
+
     public Integer getQwRepeat() {
         return qwRepeat;
     }

+ 1 - 4
fs-service-system/src/main/java/com/fs/store/domain/FsUserCompanyUser.java

@@ -2,10 +2,8 @@ package com.fs.store.domain;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fs.common.annotation.Excel;
-import com.fs.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 /**
  * 微信用户和销售关系对象 fs_user_company_user
@@ -14,8 +12,7 @@ import lombok.EqualsAndHashCode;
  * @date 2025-05-09
  */
 @Data
-@EqualsAndHashCode(callSuper = true)
-public class FsUserCompanyUser extends BaseEntity{
+public class FsUserCompanyUser {
 
     /** id */
     private Long id;

+ 2 - 1
fs-service-system/src/main/java/com/fs/store/dto/FsUserTransferParamDTO.java

@@ -1,5 +1,6 @@
 package com.fs.store.dto;
 
+import com.fs.company.dto.UserProjectDTO;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -22,7 +23,7 @@ public class FsUserTransferParamDTO implements Serializable {
     /**
      * 客户id
      */
-    private List<Long> userIds;
+    private List<UserProjectDTO> userIds;
 
     /**
      * 转移提示内容/原因

+ 0 - 15
fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java

@@ -318,19 +318,4 @@ public interface FsUserMapper
     List<FsUserWatchCourseStatistics> selectFsUserDetail();
 
     List<FsUser> selectFsUserListByJointUserNameKey(String userNameKey);
-    /**
-     * 根据销售ID和项目ID查询会员列表
-     * @param companyUserId 销售ID
-     * @param projectId     项目ID
-     * @return  list
-     */
-    List<FsUser> selectByCompanyUserAndProjectId(@Param("companyUserId") Long companyUserId, @Param("projectId") Long projectId);
-
-    /**
-     * 根据会员ID和项目ID查询会员
-     * @param userId        会员ID
-     * @param projectId     项目ID
-     * @return  FsUser
-     */
-    FsUser selectByUserIdAndProjectId(@Param("userId") Long userId, @Param("projectId") Long projectId);
 }

+ 4 - 2
fs-service-system/src/main/java/com/fs/store/param/h5/FsUserPageListParam.java

@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.List;
 import java.util.Set;
 
 
@@ -74,7 +73,10 @@ public class FsUserPageListParam implements Serializable {
 
     private Boolean isAdmin;
 
-
+    /**
+     * 项目ID
+     */
+    private Long projectId;
 
 
 }

+ 9 - 0
fs-service-system/src/main/java/com/fs/store/service/IFsUserCompanyUserService.java

@@ -98,4 +98,13 @@ public interface IFsUserCompanyUserService extends IService<FsUserCompanyUser>{
      * @param companyUserId 销售ID
      */
     void bindRelationship(Long userId, Long projectId, Long companyId, Long companyUserId);
+
+    /**
+     * 修改会员-项目-销售关系
+     * @param userId        会员ID
+     * @param projectId     项目ID
+     * @param companyId     公司ID
+     * @param companyUserId 销售ID
+     */
+    void changeRelationship(Long userId, Long projectId, Long companyId, Long companyUserId);
 }

+ 22 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsUserCompanyUserServiceImpl.java

@@ -9,6 +9,7 @@ import com.fs.store.service.IFsUserCompanyUserService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 微信用户和销售关系Service业务层处理
@@ -157,4 +158,25 @@ public class FsUserCompanyUserServiceImpl extends ServiceImpl<FsUserCompanyUserM
         userCompanyUser.setIsRepeatFans(hasBind ? 1 : 0);
         insertFsUserCompanyUser(userCompanyUser);
     }
+
+    /**
+     * 修改会员-项目-销售关系
+     * @param userId        会员ID
+     * @param projectId     项目ID
+     * @param companyId     公司ID
+     * @param companyUserId 销售ID
+     */
+    @Override
+    public void changeRelationship(Long userId, Long projectId, Long companyId, Long companyUserId) {
+        LambdaQueryWrapper<FsUserCompanyUser> queryWrapper = Wrappers.<FsUserCompanyUser>lambdaQuery()
+                .eq(FsUserCompanyUser::getUserId, userId)
+                .eq(FsUserCompanyUser::getProjectId, projectId)
+                .last("limit 1");
+        FsUserCompanyUser userCompanyUser = getOne(queryWrapper);
+        if (Objects.nonNull(userCompanyUser)) {
+            userCompanyUser.setCompanyId(companyId);
+            userCompanyUser.setCompanyUserId(companyUserId);
+            updateFsUserCompanyUser(userCompanyUser);
+        }
+    }
 }

+ 5 - 4
fs-service-system/src/main/resources/mapper/company/CompanyUserChangeApplyUserMapper.xml

@@ -9,7 +9,8 @@
         select
             fu.user_id,
             fu.nickname as userName,
-            fu.avatar
+            fu.avatar,
+            cucau.project_id
         from company_user_change_apply_user cucau
         inner join fs_user fu on fu.user_id = cucau.user_id
         where cucau.apply_id = #{applyId}
@@ -18,9 +19,9 @@
     <!-- 修改申请记录关联用户销售 -->
     <update id="changeUser">
         update fs_user_company_user fu
-        inner join company_user_change_apply_user cucau on cucau.user_id = fu.user_id
-        left join company_user_change_apply cuca on cuca.id = cucau.apply_id
+        inner join company_user_change_apply_user cucau on cucau.user_id = fu.user_id  and cucau.project_id = fu.project_id
+        inner join company_user_change_apply cuca on cuca.id = cucau.apply_id
         set fu.company_user_id = cuca.`to`
-        where cuca.id = #{applyId} and fu.project_id = cuca.project_id
+        where cuca.id = #{applyId}
     </update>
 </mapper>

+ 13 - 21
fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

@@ -244,7 +244,8 @@
         b.total_amount,b.last_buy_time,p.pay_money as number,p.payment_id,p.pay_time,
         u.*,
         fcc.watch_course_count, fcc.part_course_count, company_user.nick_name AS companyUserNickName, fcc.last_watch_date
-        ,company.company_name
+        ,company.company_name,
+         ucu.project_id
         FROM
         fs_user u
         LEFT JOIN (
@@ -303,6 +304,9 @@
         <if test = "maps.isPromoter != null  and  maps.isPromoter !=''" >
         AND u.is_promoter = #{maps.isPromoter}
         </if >
+        <if test = "maps.projectId != null" >
+            AND ucu.project_id = #{maps.projectId}
+        </if >
         </where>
         ORDER BY
         user_id DESC
@@ -481,7 +485,8 @@
         fs_user.create_time,
         fs_user.remark,
         ucu.company_user_id,
-        ucu.company_id
+        ucu.company_id,
+        ucu.project_id
         FROM
         fs_user
         left join fs_user_company_user ucu on ucu.user_id = fs_user.user_id
@@ -511,6 +516,9 @@
             <if test="phone != null and phone != ''">
                 AND fs_user.phone like concat('%', #{phone},'%')
             </if>
+            <if test="projectId != null">
+                AND ucu.project_id = #{projectId}
+            </if>
         </where>
         limit ${(pageNum-1)*pageSize},${pageSize}
     </select>
@@ -1536,6 +1544,9 @@
             <if test="phone != null and phone!=''">
                 AND fs_user.phone like concat('%', #{phone},'%')
             </if>
+            <if test="projectId != null">
+                AND ucu.project_id = #{projectId}
+            </if>
         </where>
     </select>
 
@@ -1725,25 +1736,6 @@
             ucu.company_user_id, date(fs_user.create_time)
     </select>
 
-    <select id="selectByCompanyUserAndProjectId" resultType="com.fs.store.domain.FsUser">
-        select
-            u.*
-        from fs_user u
-        inner join fs_user_company_user ucu on ucu.user_id = u.user_id
-        inner join company_user cu on cu.user_id = ucu.company_user_id
-        where cu.user_id = #{companyUserId} and ucu.project_id = #{projectId}
-    </select>
-
-    <select id="selectByUserIdAndProjectId" resultType="com.fs.store.domain.FsUser">
-        select
-            u.*
-        from fs_user u
-        inner join fs_user_company_user ucu on ucu.user_id = u.user_id
-        inner join company_user cu on cu.user_id = ucu.company_user_id
-        where u.user_id = #{userId} and ucu.project_id = #{projectId}
-    </select>
-
-
     <select id="selectFsUserListByJointUserNameKey" parameterType="FsUser" resultMap="FsUserResult">
         <include refid="selectFsUserVo"/>
         <where>