|
@@ -5,42 +5,80 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.example.xiaoshiweixinback.business.utils.CacheUtil;
|
|
|
import com.example.xiaoshiweixinback.business.utils.LoginUtils;
|
|
|
import com.example.xiaoshiweixinback.domain.AssoPersonCategory;
|
|
|
+import com.example.xiaoshiweixinback.entity.dto.ConcernCategoryDTO;
|
|
|
import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
|
|
|
import com.example.xiaoshiweixinback.mapper.AssoPersonCategoryMapper;
|
|
|
+import io.swagger.v3.oas.models.security.SecurityScheme;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
-* @author admin
|
|
|
-* @description 针对表【asso_person_category(人员产品类别关联表)】的数据库操作Service实现
|
|
|
-* @createDate 2024-04-01 14:40:55
|
|
|
-*/
|
|
|
+ * @author admin
|
|
|
+ * @description 针对表【asso_person_category(人员产品类别关联表)】的数据库操作Service实现
|
|
|
+ * @createDate 2024-04-01 14:40:55
|
|
|
+ */
|
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
|
public class AssoPersonCategoryService extends ServiceImpl<AssoPersonCategoryMapper, AssoPersonCategory> {
|
|
|
private final CacheUtil cacheUtil;
|
|
|
private final LoginUtils loginUtils;
|
|
|
+
|
|
|
public List<Integer> getChoosedProductCategoryIds() {
|
|
|
List<Integer> ids = new ArrayList<>();
|
|
|
//PersonnelVO personnelVO =cacheUtil.getLoginUser(loginUtils.getId());
|
|
|
PersonnelVO personnelVO = new PersonnelVO();
|
|
|
personnelVO.setId(1);
|
|
|
personnelVO.setUuid("123");
|
|
|
- LambdaQueryWrapper<AssoPersonCategory> queryWrapper =new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(AssoPersonCategory::getPersonUuid,personnelVO.getUuid());
|
|
|
- List<AssoPersonCategory> assoPersonCategories =this.list(queryWrapper);
|
|
|
- if(assoPersonCategories.size()>0){
|
|
|
- ids =assoPersonCategories.stream().map(AssoPersonCategory::getProductCategoryId).collect(Collectors.toList());
|
|
|
+ LambdaQueryWrapper<AssoPersonCategory> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(AssoPersonCategory::getPersonUuid, personnelVO.getUuid());
|
|
|
+ List<AssoPersonCategory> assoPersonCategories = this.list(queryWrapper);
|
|
|
+ if (assoPersonCategories.size() > 0) {
|
|
|
+ ids = assoPersonCategories.stream().map(AssoPersonCategory::getProductCategoryId).collect(Collectors.toList());
|
|
|
}
|
|
|
-
|
|
|
return ids;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void concernCategory(ConcernCategoryDTO concernCategoryDTO) {
|
|
|
+ //PersonnelVO personnelVO =cacheUtil.getLoginUser(loginUtils.getId());
|
|
|
+ PersonnelVO personnelVO = new PersonnelVO();
|
|
|
+ personnelVO.setId(1);
|
|
|
+ personnelVO.setUuid("123");
|
|
|
+ List<Integer> ids = concernCategoryDTO.getCategoryIds();
|
|
|
+
|
|
|
+ LambdaQueryWrapper<AssoPersonCategory> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(AssoPersonCategory::getPersonUuid, personnelVO.getUuid());
|
|
|
+ List<AssoPersonCategory> assoPersonCategories = this.list(queryWrapper);
|
|
|
+ List<Integer> oldIds = new ArrayList<>();
|
|
|
+ if (assoPersonCategories.size() > 0) {
|
|
|
+ oldIds = assoPersonCategories.stream().map(AssoPersonCategory::getId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ List<Integer> addIds = new ArrayList<>(ids);
|
|
|
+ addIds.removeAll(oldIds);
|
|
|
+ List<Integer> remIds = new ArrayList<>(oldIds);
|
|
|
+ remIds.removeAll(ids);
|
|
|
+ this.removeBatchByIds(remIds);
|
|
|
|
|
|
+ List<AssoPersonCategory> assoPersonCategories1 = new ArrayList<>();
|
|
|
+ if (addIds.size() > 0) {
|
|
|
+ addIds.forEach(item -> {
|
|
|
+ AssoPersonCategory assoPersonCategory = new AssoPersonCategory();
|
|
|
+ assoPersonCategory.setPersonUuid(personnelVO.getUuid());
|
|
|
+ assoPersonCategory.setProductCategoryId(item);
|
|
|
+ assoPersonCategories1.add(assoPersonCategory);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (assoPersonCategories1.size() > 0) {
|
|
|
+ this.saveBatch(assoPersonCategories1);
|
|
|
+ }
|
|
|
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
|