|
|
@@ -1,5 +1,6 @@
|
|
|
package com.fs.his.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@@ -10,6 +11,7 @@ import com.fs.his.mapper.FsUserProjectTagMapper;
|
|
|
import com.fs.his.service.IFsUserProjectTagService;
|
|
|
import com.fs.store.param.h5.TagListParam;
|
|
|
import com.fs.store.vo.h5.CompanyUserTagListVO;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.ListUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -20,6 +22,7 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class FsUserProjectTagServiceImpl extends ServiceImpl<FsUserProjectTagMapper, FsUserProjectTag> implements IFsUserProjectTagService {
|
|
|
|
|
|
@Resource
|
|
|
@@ -33,6 +36,12 @@ public class FsUserProjectTagServiceImpl extends ServiceImpl<FsUserProjectTagMap
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void addUserProjectTag(Long id, List<Long> tagIds) {
|
|
|
+ // 查询原有标签,用于日志对比
|
|
|
+ List<FsUserProjectTag> oldTags = list(Wrappers.<FsUserProjectTag>lambdaQuery()
|
|
|
+ .eq(FsUserProjectTag::getUserCompanyUserId, id));
|
|
|
+ List<Long> oldTagIds = oldTags.stream().map(FsUserProjectTag::getTagId).collect(Collectors.toList());
|
|
|
+ log.info("修改用户标签 userCompanyUserId={}, 旧标签ids={}, 新标签ids={}", id, oldTagIds, tagIds);
|
|
|
+
|
|
|
// 删除原有标签
|
|
|
LambdaUpdateWrapper<FsUserProjectTag> deleteWrapper = Wrappers.<FsUserProjectTag>lambdaUpdate()
|
|
|
.eq(FsUserProjectTag::getUserCompanyUserId, id);
|
|
|
@@ -60,10 +69,19 @@ public class FsUserProjectTagServiceImpl extends ServiceImpl<FsUserProjectTagMap
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void addUserProjectTag(List<Long> ids, List<Long> tagIds) {
|
|
|
+ // 查询原有标签,用于日志对比
|
|
|
+ List<FsUserProjectTag> oldTags = list(Wrappers.<FsUserProjectTag>lambdaQuery()
|
|
|
+ .in(FsUserProjectTag::getUserCompanyUserId, ids));
|
|
|
+ Map<Long, List<Long>> oldTagMap = oldTags.stream()
|
|
|
+ .collect(Collectors.groupingBy(FsUserProjectTag::getUserCompanyUserId,
|
|
|
+ Collectors.mapping(FsUserProjectTag::getTagId, Collectors.toList())));
|
|
|
+ log.info("批量修改用户标签 userCompanyUserIds={}, 旧标签映射={}, 新标签ids={}", ids, oldTagMap, tagIds);
|
|
|
+
|
|
|
// 删除原有标签
|
|
|
batchDeleteByUserIds(ids);
|
|
|
|
|
|
if (tagIds.isEmpty()) {
|
|
|
+ log.info("批量修改用户标签 新标签为空,仅删除旧标签 userCompanyUserIds={}", ids);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -80,6 +98,7 @@ public class FsUserProjectTagServiceImpl extends ServiceImpl<FsUserProjectTagMap
|
|
|
if (!tagList.isEmpty()) {
|
|
|
saveBatch(tagList);
|
|
|
}
|
|
|
+ log.info("批量修改用户标签完成 userCompanyUserIds={}, 新标签ids={}", ids, tagIds);
|
|
|
}
|
|
|
public void batchDeleteByUserIds(List<Long> ids) {
|
|
|
// 使用 ListUtils 自动分批
|