Procházet zdrojové kódy

商品上架和下架功能开发

WangChanghua před 1 rokem
rodič
revize
d31e339e99

+ 1 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/GoodsPagingParam.java

@@ -45,5 +45,6 @@ public class GoodsPagingParam implements Serializable {
     /**
      * 商家ID
      */
+    @NotNull(message = "商家ID不能为空")
     private Long merchantId;
 }

+ 10 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/GoodsService.java

@@ -1,5 +1,7 @@
 package com.chelvc.cloud.vehicle.api.service;
 import java.util.List;
+
+import com.chelvc.cloud.vehicle.api.constant.GoodsStatus;
 import com.chelvc.cloud.vehicle.api.dto.GoodsDTO;
 import com.chelvc.cloud.vehicle.api.dto.GoodsDetailDTO;
 import com.chelvc.cloud.vehicle.api.param.*;
@@ -60,4 +62,12 @@ public interface GoodsService {
      * @return 商品分页信息
      */
     Pagination<GoodsDTO> getGoodsPaging(GoodsPagingParam param);
+
+    /**
+     * 修改商品状态
+     *
+     * @param ids    商品ID集合
+     * @param status 商品状态
+     */
+    void updateGoodsStatus(List<Long> ids, GoodsStatus status);
 }

+ 10 - 2
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/MerchantService.java

@@ -71,7 +71,7 @@ public interface MerchantService {
     /**
      * 修改商家
      *
-     * @param id    分类主键
+     * @param id    商家主键
      * @param param 修改参数
      */
     void updateMerchant(Long id, MerchantModifyParam param);
@@ -79,7 +79,7 @@ public interface MerchantService {
     /**
      * 删除商家
      *
-     * @param id    分类主键
+     * @param id    商家主键
      */
     void deleteMerchant(Long id);
 
@@ -90,4 +90,12 @@ public interface MerchantService {
      * @return 商家分页信息
      */
     Pagination<MerchantDTO> getMerchantPaging(MerchantPagingParam param);
+
+    /**
+     * 查询商家信息
+     *
+     * @param id 商家主键
+     * @return 商家信息
+     */
+    MerchantDTO getMerchant(Long id);
 }

+ 6 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/GoodsServiceImpl.java

@@ -27,6 +27,7 @@ import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 
+import javax.validation.constraints.NotEmpty;
 import java.util.List;
 import java.util.Objects;
 
@@ -115,4 +116,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
                 .orderByDesc(Goods::getCreateTime).page(PagingUtils.convert(param.getPaging()));
         return PagingUtils.convert(page, GoodsCopier.INSTANCE::copying);
     }
+
+    @Override
+    public void updateGoodsStatus(@NotEmpty List<Long> ids, @NonNull GoodsStatus status) {
+        this.lambdaUpdate().set(Goods::getStatus, status).in(Goods::getId, ids).update();
+    }
 }

+ 20 - 8
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantServiceImpl.java

@@ -1,8 +1,5 @@
 package com.chelvc.cloud.vehicle.server.service.impl;
 
-import java.util.List;
-import java.util.Objects;
-
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.vehicle.api.constant.CategoryType;
@@ -10,11 +7,7 @@ import com.chelvc.cloud.vehicle.api.constant.MerchantStatus;
 import com.chelvc.cloud.vehicle.api.dto.GoodsDTO;
 import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
 import com.chelvc.cloud.vehicle.api.dto.MerchantDetailDTO;
-import com.chelvc.cloud.vehicle.api.param.GoodsQueryParam;
-import com.chelvc.cloud.vehicle.api.param.LocationQueryParam;
-import com.chelvc.cloud.vehicle.api.param.MerchantModifyParam;
-import com.chelvc.cloud.vehicle.api.param.MerchantPagingParam;
-import com.chelvc.cloud.vehicle.api.param.MerchantQueryParam;
+import com.chelvc.cloud.vehicle.api.param.*;
 import com.chelvc.cloud.vehicle.server.copier.MerchantCopier;
 import com.chelvc.cloud.vehicle.server.dao.MerchantMapper;
 import com.chelvc.cloud.vehicle.server.entity.Merchant;
@@ -29,6 +22,9 @@ import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+import java.util.Objects;
+
 /**
  * 商家业务操作实现
  *
@@ -128,4 +124,20 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
                 .orderByDesc(Merchant::getCreateTime).page(PagingUtils.convert(param.getPaging()));
         return PagingUtils.convert(page, MerchantCopier.INSTANCE::copying);
     }
+
+    @Override
+    public MerchantDTO getMerchant(@NonNull Long id) {
+        Merchant merchant = ResourceUtils.required(this.getById(id), "商家不存在");
+        return this.convert(merchant);
+    }
+
+    /**
+     * 转换商家信息
+     *
+     * @param merchant 商家实例
+     * @return 商家信息
+     */
+    private MerchantDTO convert(Merchant merchant) {
+        return MerchantCopier.INSTANCE.copying(merchant);
+    }
 }