Просмотр исходного кода

商品上架和下架接口开发

qizai 1 год назад
Родитель
Сommit
827d11d13d

+ 2 - 1
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CarouselImagesDTO.java

@@ -4,6 +4,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 
+import java.io.Serializable;
 import java.util.Date;
 
 /**
@@ -16,7 +17,7 @@ import java.util.Date;
 @SuperBuilder
 @NoArgsConstructor
 @AllArgsConstructor
-public class CarouselImagesDTO {
+public class CarouselImagesDTO implements Serializable {
     /**
      * 主键
      */

+ 9 - 4
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/GoodsPagingParam.java

@@ -1,9 +1,5 @@
 package com.chelvc.cloud.vehicle.api.param;
 
-import java.io.Serializable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
 import com.chelvc.cloud.vehicle.api.constant.GoodsStatus;
 import com.chelvc.framework.common.model.Paging;
 import lombok.AllArgsConstructor;
@@ -11,6 +7,10 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
 /**
  * 商品信息
  *
@@ -42,4 +42,9 @@ public class GoodsPagingParam implements Serializable {
      * 商品状态
      */
     private GoodsStatus status;
+    /**
+     * 商家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);
 }

+ 17 - 12
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/GoodsServiceImpl.java

@@ -1,24 +1,18 @@
 package com.chelvc.cloud.vehicle.server.service.impl;
 
-import java.util.List;
-
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.vehicle.api.constant.CategoryType;
 import com.chelvc.cloud.vehicle.api.constant.GoodsStatus;
-import com.chelvc.cloud.vehicle.api.constant.MerchantStatus;
-import com.chelvc.cloud.vehicle.api.dto.CouponDTO;
-import com.chelvc.cloud.vehicle.api.dto.FavoriteDTO;
 import com.chelvc.cloud.vehicle.api.dto.GoodsDTO;
 import com.chelvc.cloud.vehicle.api.dto.GoodsDetailDTO;
-import com.chelvc.cloud.vehicle.api.param.*;
-import com.chelvc.cloud.vehicle.server.copier.CouponCopier;
+import com.chelvc.cloud.vehicle.api.param.CommentQueryParam;
+import com.chelvc.cloud.vehicle.api.param.GoodsModifyParam;
+import com.chelvc.cloud.vehicle.api.param.GoodsPagingParam;
+import com.chelvc.cloud.vehicle.api.param.GoodsQueryParam;
 import com.chelvc.cloud.vehicle.server.copier.GoodsCopier;
 import com.chelvc.cloud.vehicle.server.dao.GoodsMapper;
-import com.chelvc.cloud.vehicle.server.entity.Coupon;
-import com.chelvc.cloud.vehicle.server.entity.Favorite;
 import com.chelvc.cloud.vehicle.server.entity.Goods;
-import com.chelvc.cloud.vehicle.server.entity.Merchant;
 import com.chelvc.cloud.vehicle.server.service.CommentService;
 import com.chelvc.cloud.vehicle.server.service.CouponService;
 import com.chelvc.cloud.vehicle.server.service.GoodsService;
@@ -26,7 +20,6 @@ import com.chelvc.framework.base.context.SessionContextHolder;
 import com.chelvc.framework.base.util.ResourceUtils;
 import com.chelvc.framework.common.model.Pagination;
 import com.chelvc.framework.common.util.StringUtils;
-import com.chelvc.framework.database.context.DatabaseContextHolder;
 import com.chelvc.framework.database.util.PagingUtils;
 import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
@@ -34,6 +27,10 @@ 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;
+
 /**
  * 商品业务操作实现
  *
@@ -112,8 +109,16 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
     @Override
     public Pagination<GoodsDTO> getGoodsPaging(@NonNull GoodsPagingParam param) {
         Page<Goods> page = this.lambdaQuery()
+                .eq(Objects.nonNull(param.getMerchantId()), Goods::getMerchantId, param.getMerchantId())
+                .eq(Objects.nonNull(param.getCategoryId()), Goods::getCategoryId, param.getCategoryId())
+                .eq(Objects.nonNull(param.getStatus()), Goods::getStatus, param.getStatus())
                 .like(StringUtils.nonEmpty(param.getName()), Goods::getName, param.getName())
-                .orderByAsc(Goods::getStatus).page(PagingUtils.convert(param.getPaging()));
+                .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);
+    }
 }