guomengjiao 21 часов назад
Родитель
Сommit
f13efdd5e1

+ 2 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/shop/business/BusinessCategoryRelationController.java

@@ -51,8 +51,8 @@ public class BusinessCategoryRelationController extends BaseController {
     @Log(title = "商家分类关联", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping("/add")
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody List<BusinessCategoryRelationBo> bos) {
-        return toAjax(iBusinessCategoryRelationService.insertByBo(bos) ? 1 : 0);
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody BusinessCategoryRelationBo bo) {
+        return toAjax(iBusinessCategoryRelationService.insertByBo(bo) ? 1 : 0);
     }
 
 }

+ 6 - 3
ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/BusinessCategoryRelationBo.java

@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode;
 import javax.validation.constraints.*;
 
 import java.util.Date;
+import java.util.List;
 
 import com.ruoyi.common.core.domain.BaseEntity;
 
@@ -27,7 +28,6 @@ public class BusinessCategoryRelationBo extends BaseEntity {
      * 商家ID
      */
     @ApiModelProperty(value = "商家ID", required = true)
-    @NotNull(message = "商家ID不能为空", groups = { EditGroup.class })
     private Long relationId;
 
     /**
@@ -41,8 +41,11 @@ public class BusinessCategoryRelationBo extends BaseEntity {
      * 分类ID
      */
     @ApiModelProperty(value = "分类ID", required = true)
-    @NotNull(message = "分类ID不能为空", groups = { AddGroup.class, EditGroup.class })
     private Long categoryId;
 
-
+    /**
+     * 分类ID
+     */
+    @ApiModelProperty(value = "分类ID", required = true)
+    private List<Long> categoryIds;
 }

+ 1 - 1
ruoyi-business/src/main/java/com/ruoyi/business/service/IBusinessCategoryRelationService.java

@@ -55,7 +55,7 @@ public interface IBusinessCategoryRelationService {
      * @param bo 商家分类关联
      * @return 结果
      */
-    Boolean insertByBo(List<BusinessCategoryRelationBo> bos);
+    Boolean insertByBo(BusinessCategoryRelationBo bo);
 
     /**
      * 修改商家分类关联

+ 15 - 13
ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BusinessCategoryRelationServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ruoyi.business.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -99,24 +100,25 @@ public class BusinessCategoryRelationServiceImpl implements IBusinessCategoryRel
     /**
      * 新增商家分类关联
      *
-     * @param bos 商家分类关联
+     * @param bo 商家分类关联
      * @return 结果
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public Boolean insertByBo(List<BusinessCategoryRelationBo> bos) {
-        //判断是不是同一个商家
-        Set<Long> businessIds = bos.stream()
-            .map(BusinessCategoryRelationBo::getBusinessId)
-            .collect(Collectors.toSet());
-        if (businessIds.size() > 1) {
-            throw new ServiceException("批量操作仅支持同一商家的分类关联");
-        }
-        Long businessId = businessIds.iterator().next();
+    public Boolean insertByBo(BusinessCategoryRelationBo bo) {
         //先删除
-        baseMapper.delete(new LambdaQueryWrapper<BusinessCategoryRelation>().eq(BusinessCategoryRelation::getBusinessId, businessId));
-        //在添加
-        return baseMapper.insertBatch(BeanCopyUtils.copyList(bos, BusinessCategoryRelation.class));
+        baseMapper.delete(new LambdaQueryWrapper<BusinessCategoryRelation>().eq(BusinessCategoryRelation::getBusinessId, bo.getBusinessId()));
+        if (CollUtil.isNotEmpty(bo.getCategoryIds())) {
+            List<BusinessCategoryRelation> list = bo.getCategoryIds().stream().map(categoryId -> {
+                BusinessCategoryRelation relation = new BusinessCategoryRelation();
+                relation.setBusinessId(bo.getBusinessId());
+                relation.setCategoryId(categoryId);
+                return relation;
+            }).collect(Collectors.toList());
+            //在添加
+            return baseMapper.insertBatch(list);
+        }
+        return true;
     }
 
     /**