zoujiajian 3 жил өмнө
parent
commit
8d156a7140

+ 3 - 26
netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListView.java

@@ -19,7 +19,9 @@ import java.util.List;
  */
 @Getter
 @Setter
-@SearchBean(tables = "goods_don g")
+@SearchBean(tables = "goods_don g",
+		where = "g.deleted is true and g.status is true and g.type = 1",
+		orderBy = "g.sort_by desc, g.id")
 public class GoodsFrontListView {
 	@DbField("g.id")
 	private Long id;
@@ -48,27 +50,9 @@ public class GoodsFrontListView {
 	@DbField("g.img")
 	private String img;
 
-	@DbField("g.type")
-	@JsonIgnore
-	private Integer type;
-
 	@DbField("g.second_type")
 	private Integer secondType;
 
-	/**
-	 * true 上架 / false 下架
-	 */
-	@DbField("g.status")
-	@JsonIgnore
-	private Boolean status;
-
-	/**
-	 * true 存在 / false 删除
-	 */
-	@DbField("g.deleted")
-	@JsonIgnore
-	private Boolean deleted;
-
 	/**
 	 * 最低规格价格
 	 */
@@ -94,13 +78,6 @@ public class GoodsFrontListView {
 	@JsonIgnore
 	private Integer virtualSold;
 
-	/**
-	 * 排序
-	 */
-	@DbField("g.sort_by")
-	@JsonIgnore
-	private Integer sortBy;
-
 	/**
 	 * 购买通知信息
 	 */

+ 75 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsHomePageView.java

@@ -0,0 +1,75 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/*
+ *项目名: netflix
+ *文件名: GoodsHomePageView
+ *创建者: JavaZou
+ *创建时间:2023/4/14 11:12
+ */
+@Getter
+@Setter
+@SearchBean(tables = "goods_don g",
+		where = "g.deleted is true and g.status is true and g.type = 1",
+		orderBy = "g.sort_by desc, g.id")
+public class GoodsHomePageView {
+	@DbField("g.id")
+	private Long id;
+
+	/**
+	 * 商品名称
+	 */
+	@DbField("g.title")
+	private String title;
+
+	/**
+	 * 标签
+	 */
+	@DbField("g.tags")
+	private String tags;
+
+	/**
+	 * 缩略图
+	 */
+	@DbField("g.logo")
+	private String logo;
+
+	/**
+	 * 最低规格价格
+	 */
+	@DbIgnore
+	private BigDecimal price;
+
+	/**
+	 * 最低规格月份
+	 */
+	@DbIgnore
+	private Integer months;
+
+	/**
+	 * 已售
+	 */
+	@DbIgnore
+	private Integer sold;
+
+	/**
+	 * 虚拟销量
+	 */
+	@DbField("g.virtual_sold")
+	@JsonIgnore
+	private Integer virtualSold;
+
+	/**
+	 * 购买通知信息
+	 */
+	@DbIgnore
+	private String notifyMsg;
+}

+ 37 - 17
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -23,10 +23,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @author chan
@@ -98,10 +95,12 @@ public class GoodsDonController {
                             .build());
 
             Optional.ofNullable(data.getSkuList()).ifPresent(skuList -> {
-                GoodsDonSku goodsDonSku = skuList.get(0);
-                if (goodsDonSku != null) {
-                    data.setPrice(goodsDonSku.getPrice());
-                    data.setMonths(goodsDonSku.getMonths());
+                if (skuList.size() > 0) {
+                    GoodsDonSku goodsDonSku = skuList.get(0);
+                    if (goodsDonSku != null) {
+                        data.setPrice(goodsDonSku.getPrice());
+                        data.setMonths(goodsDonSku.getMonths());
+                    }
                 }
             });
             if (data.getPrice() != null && data.getPrice().compareTo(BigDecimal.ZERO) > 0) {
@@ -157,11 +156,6 @@ public class GoodsDonController {
     @GetMapping("/get/list")
     public Result<SearchResult<GoodsFrontListView>> getGoodsList() {
         SearchResult<GoodsFrontListView> search = beanSearcher.search(GoodsFrontListView.class, MapUtils.flatBuilder(request.getParameterMap())
-                .field(GoodsFrontListView::getStatus, true)
-                .field(GoodsFrontListView::getDeleted, true)
-                .field(GoodsFrontListView::getType, 1)
-                .orderBy(GoodsFrontListView::getSortBy).desc()
-                .orderBy(GoodsFrontListView::getId).asc()
                 .build());
         DateTime now = DateTime.now();
         LinkedList<GoodsFrontListView> collect = new LinkedList<>();
@@ -173,10 +167,12 @@ public class GoodsDonController {
             data.setSold(sold + data.getVirtualSold());
 
             Optional.ofNullable(data.getSkuList()).ifPresent(skuList -> {
-                GoodsDonFrontSkuView donFrontSkuView = skuList.get(0);
-                if (donFrontSkuView != null) {
-                    data.setPrice(donFrontSkuView.getPrice());
-                    data.setMonths(donFrontSkuView.getMonths());
+                if (skuList.size() > 0) {
+                    GoodsDonFrontSkuView donFrontSkuView = skuList.get(0);
+                    if (donFrontSkuView != null) {
+                        data.setPrice(donFrontSkuView.getPrice());
+                        data.setMonths(donFrontSkuView.getMonths());
+                    }
                 }
             });
             if (data.getPrice() != null && data.getPrice().compareTo(BigDecimal.ZERO) > 0) {
@@ -222,6 +218,30 @@ public class GoodsDonController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }
 
+    /**
+     * h5 银河首页平台展示
+     */
+    @GetMapping("/get/homePage")
+    public Result<List<GoodsHomePageView>> getGoodsHomePage() {
+        List<GoodsHomePageView> dataList = beanSearcher.searchAll(GoodsHomePageView.class, MapUtils.flatBuilder(request.getParameterMap())
+                .build());
+        List<GoodsHomePageView> collect = new ArrayList<>();
+        dataList.forEach(data -> {
+            Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
+                    .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
+            data.setSold(sold + data.getVirtualSold());
+            GoodsDonFrontSkuView skuView = beanSearcher.searchFirst(GoodsDonFrontSkuView.class, MapUtils.builder().field(GoodsDonFrontSkuView::getGoodsId, data.getId()).field(GoodsDonFrontSkuView::getStatus, true).orderBy(GoodsDonFrontSkuView::getPrice).asc().build());
+            if (skuView != null) {
+                data.setPrice(skuView.getPrice());
+                data.setMonths(skuView.getMonths());
+            }
+            if (data.getPrice() != null && data.getPrice().compareTo(BigDecimal.ZERO) > 0) {
+                collect.add(data);
+            }
+        });
+        return GatewayResponse.SUCCESS.newBuilder().toResult(collect);
+    }
+
 
     /**
      * 获取商品详情