|
|
@@ -298,7 +298,7 @@ public class FsUserAdminController extends BaseController {
|
|
|
|
|
|
// 3. 查询该营期和销售下的会员ID列表
|
|
|
List<Long> userIds = fsUserCompanyUserMapper
|
|
|
- .selectUserIdsByPeriodIdAndCompanyUserId(sourcePeriodId, sourceCompanyUserId);
|
|
|
+ .selectUserIdsByPeriodIdAndCompanyUserId(sourcePeriodId, sourceCompanyUserId, companyId);
|
|
|
|
|
|
log.info("查询营期ID:{}, 销售ID:{} 下的会员数量:{}",
|
|
|
sourcePeriodId, sourceCompanyUserId, userIds.size());
|
|
|
@@ -384,6 +384,14 @@ public class FsUserAdminController extends BaseController {
|
|
|
return R.error("目标销售不存在");
|
|
|
}
|
|
|
|
|
|
+ if (!companyId.equals(sourceCompanyUser.getCompanyId())) {
|
|
|
+ return R.error("源销售不属于当前公司");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!companyId.equals(targetCompanyUser.getCompanyId())) {
|
|
|
+ return R.error("目标销售不属于当前公司");
|
|
|
+ }
|
|
|
+
|
|
|
// 5. 批量转移会员营期关系
|
|
|
int successCount = 0;
|
|
|
int failCount = 0;
|
|
|
@@ -391,7 +399,8 @@ public class FsUserAdminController extends BaseController {
|
|
|
|
|
|
// 先查询源营期和源销售下的所有有效会员ID(通过观看记录表关联)
|
|
|
List<Long> validUserIds = fsUserCompanyUserMapper
|
|
|
- .selectUserIdsByPeriodIdAndCompanyUserId(param.getSourcePeriodId(), param.getSourceCompanyUserId());
|
|
|
+ .selectUserIdsByPeriodIdAndCompanyUserId(
|
|
|
+ param.getSourcePeriodId(), param.getSourceCompanyUserId(), companyId);
|
|
|
|
|
|
log.info("源营期ID:{}, 源销售ID:{} 下查询到有效会员数:{}",
|
|
|
param.getSourcePeriodId(), param.getSourceCompanyUserId(), validUserIds.size());
|
|
|
@@ -405,25 +414,43 @@ public class FsUserAdminController extends BaseController {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- // 先删除该会员的所有fs_user_company_user记录(不管哪个营期)
|
|
|
+ // 仅删除当前公司下源营期+源销售的关系,不影响其他营期/销售/公司
|
|
|
FsUserCompanyUser deleteParam = new FsUserCompanyUser();
|
|
|
deleteParam.setUserId(userId);
|
|
|
- List<FsUserCompanyUser> existingRecords = fsUserCompanyUserService.selectFsUserCompanyUserList(deleteParam);
|
|
|
- for (FsUserCompanyUser record : existingRecords) {
|
|
|
+ deleteParam.setProjectId(param.getSourcePeriodId());
|
|
|
+ deleteParam.setCompanyUserId(param.getSourceCompanyUserId());
|
|
|
+ deleteParam.setCompanyId(companyId);
|
|
|
+ List<FsUserCompanyUser> sourceRecords = fsUserCompanyUserService.selectFsUserCompanyUserList(deleteParam);
|
|
|
+ if (sourceRecords.isEmpty()) {
|
|
|
+ failReasons.append("会员ID:").append(userId).append("在源营期和源销售下不存在; ");
|
|
|
+ failCount++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ for (FsUserCompanyUser record : sourceRecords) {
|
|
|
fsUserCompanyUserService.deleteFsUserCompanyUserById(record.getId());
|
|
|
- log.info("删除旧的fs_user_company_user记录 - 会员ID:{}, 记录ID:{}, 营期ID:{}, 销售ID:{}",
|
|
|
+ log.info("删除源营期关系 - 会员ID:{}, 记录ID:{}, 营期ID:{}, 销售ID:{}",
|
|
|
userId, record.getId(), record.getProjectId(), record.getCompanyUserId());
|
|
|
}
|
|
|
|
|
|
- // 创建新的目标营期记录
|
|
|
- fsUserCompanyUserService.bindRelationship(userId, param.getTargetPeriodId(), companyId, param.getTargetCompanyUserId(), 1);
|
|
|
- log.info("创建目标营期新记录 - 会员ID:{}, 营期ID:{}, 公司ID:{}, 销售ID:{}",
|
|
|
- userId, param.getTargetPeriodId(), companyId, param.getTargetCompanyUserId());
|
|
|
+ // 创建目标营期记录(已存在则跳过,避免重复绑定)
|
|
|
+ FsUserCompanyUser targetQuery = new FsUserCompanyUser();
|
|
|
+ targetQuery.setUserId(userId);
|
|
|
+ targetQuery.setProjectId(param.getTargetPeriodId());
|
|
|
+ targetQuery.setCompanyUserId(param.getTargetCompanyUserId());
|
|
|
+ targetQuery.setCompanyId(companyId);
|
|
|
+ List<FsUserCompanyUser> targetRecords = fsUserCompanyUserService.selectFsUserCompanyUserList(targetQuery);
|
|
|
+ if (targetRecords.isEmpty()) {
|
|
|
+ fsUserCompanyUserService.bindRelationship(userId, param.getTargetPeriodId(), companyId, param.getTargetCompanyUserId(), 1);
|
|
|
+ log.info("创建目标营期新记录 - 会员ID:{}, 营期ID:{}, 公司ID:{}, 销售ID:{}",
|
|
|
+ userId, param.getTargetPeriodId(), companyId, param.getTargetCompanyUserId());
|
|
|
+ } else {
|
|
|
+ log.info("目标营期关系已存在,跳过创建 - 会员ID:{}, 营期ID:{}, 销售ID:{}",
|
|
|
+ userId, param.getTargetPeriodId(), param.getTargetCompanyUserId());
|
|
|
+ }
|
|
|
|
|
|
- // 更新fs_user表的companyId和companyUserId
|
|
|
+ // 仅当会员主归属属于当前公司时,更新fs_user表
|
|
|
FsUser fsUser = fsUserService.selectFsUserById(userId);
|
|
|
- if (fsUser != null) {
|
|
|
- fsUser.setCompanyId(companyId);
|
|
|
+ if (fsUser != null && Objects.equals(fsUser.getCompanyId(), companyId)) {
|
|
|
fsUser.setCompanyUserId(param.getTargetCompanyUserId());
|
|
|
fsUserService.updateFsUser(fsUser);
|
|
|
log.info("更新fs_user表 - 会员ID:{}, 公司ID:{}, 销售ID:{}",
|