Răsfoiți Sursa

fix 用户实物意愿列表

zoujiajian 3 ani în urmă
părinte
comite
47e795508b

+ 2 - 1
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelRealGoodsUserInterestData.java

@@ -24,7 +24,8 @@ import java.util.Date;
 		" left join goods_don_sku gdk on gdk.id = ru.sku_id" +
 		" left join user u on u.id = ru.user_id" +
 		" left join goods_don gd on gd.id = gdk.goods_id" +
-		" left join order_don_transport ot on ot.order_id = ru.order_id")
+		" left join order_don_transport ot on ot.order_id = ru.order_id",
+		where = "ru.order_created_time < DATE_ADD(CURRENT_TIMESTAMP,interval -1 day)")
 public class ExcelRealGoodsUserInterestData {
 
 	@DbField("ru.id")

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelRealGoodsUserInterestHasPaymentData.java

@@ -0,0 +1,22 @@
+package com.cyksj.model.excel;
+
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: ExcelRealGoodsUserInterestHasPaymentData
+ *创建者: JavaZou
+ *创建时间:2022/12/19 18:25
+ */
+@Getter
+@Setter
+@SearchBean(tables = "real_goods_interest_user ru " +
+		" left join goods_don_sku gdk on gdk.id = ru.sku_id" +
+		" left join user u on u.id = ru.user_id" +
+		" left join goods_don gd on gd.id = gdk.goods_id" +
+		" left join order_don_transport ot on ot.order_id = ru.order_id",
+		where = "ru.order_created_time < DATE_ADD(ru.pay_time,interval -1 day)")
+public class ExcelRealGoodsUserInterestHasPaymentData extends ExcelRealGoodsUserInterestData {
+}

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RealGoodsInterestUserHasPaymentView.java

@@ -0,0 +1,22 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: RealGoodsInterestUserHasPaymentView
+ *创建者: JavaZou
+ *创建时间:2022/12/19 17:51
+ */
+@Getter
+@Setter
+@SearchBean(tables = "real_goods_interest_user ru " +
+		" left join goods_don_sku gdk on gdk.id = ru.sku_id" +
+		" left join user u on u.id = ru.user_id" +
+		" left join goods_don gd on gd.id = gdk.goods_id",
+		where = "ru.order_created_time < DATE_ADD(ru.pay_time,interval -1 day)")
+public class RealGoodsInterestUserHasPaymentView extends RealGoodsInterestUserView{
+
+}

+ 2 - 1
netflix-dao/src/main/java/com/cyksj/model/views/RealGoodsInterestUserView.java

@@ -20,7 +20,8 @@ import java.util.Date;
 @SearchBean(tables = "real_goods_interest_user ru " +
 		" left join goods_don_sku gdk on gdk.id = ru.sku_id" +
 		" left join user u on u.id = ru.user_id" +
-		" left join goods_don gd on gd.id = gdk.goods_id")
+		" left join goods_don gd on gd.id = gdk.goods_id",
+		where = "ru.order_created_time < DATE_ADD(CURRENT_TIMESTAMP,interval -1 day)")
 public class RealGoodsInterestUserView {
 	@DbField("ru.id")
 	private Long id;

+ 2 - 2
netflix-dao/src/main/resources/mapper/OrderDonMapper.xml

@@ -15,8 +15,8 @@
 
     <update id="updateHasPaymentInterestRealGoodsPayTime">
         update real_goods_interest_user ru
-        set ru.pay_time= (select if(pay_time is null,created_time,pay_time) from `order_don` od where od.user_id = ru.user_id and od.goods_id = ru.goods_id order by money desc limit 1),
-            ru.sku_id = (select sku_id from `order_don` od where od.user_id = ru.user_id and od.goods_id = ru.goods_id order by money desc limit 1)
+        set ru.pay_time= (select if(pay_time is null,created_time,pay_time) from `order_don` od where od.user_id = ru.user_id and od.goods_id = ru.goods_id and od.status not in ('close','noPayment','refund') order by money desc limit 1),
+            ru.sku_id = (select sku_id from `order_don` od where od.user_id = ru.user_id and od.goods_id = ru.goods_id and od.status not in ('close','noPayment','refund')  order by money desc limit 1)
         where interest_status = 'hasPayment'
           and pay_time is null
     </update>

+ 60 - 46
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -14,11 +14,13 @@ import com.cyksj.model.entity.OrderDonWaybill;
 import com.cyksj.model.entity.RealGoodsInterestUser;
 import com.cyksj.model.entity.RealGoodsOrderHandle;
 import com.cyksj.model.excel.ExcelRealGoodsUserInterestData;
+import com.cyksj.model.excel.ExcelRealGoodsUserInterestHasPaymentData;
 import com.cyksj.model.manage.request.ReqSetLogisticsPost;
 import com.cyksj.model.manage.views.OrderDonView;
 import com.cyksj.model.request.RealGoodsServiceReq;
 import com.cyksj.model.request.UserRealGoodsInterestReq;
 import com.cyksj.model.views.OrderDonTransportView;
+import com.cyksj.model.views.RealGoodsInterestUserHasPaymentView;
 import com.cyksj.model.views.RealGoodsInterestUserView;
 import com.cyksj.service.mange.CmsOrderDonService;
 import com.cyksj.service.user.UserService;
@@ -36,6 +38,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 
@@ -104,29 +107,36 @@ public class CmsOrderController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(orderDonWaybill);
     }
 
-    /**
-     * 用户购买实物商品意愿列表
-     */
-    @GetMapping("/get/realGooods/interest/users")
-    public Result<SearchResult<RealGoodsInterestUserView>> getInterestUserList(RealGoodsInterestUser.Status interestStatus,HttpServletRequest request) {
-        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
-        if (interestStatus == null) {
-            builder.field(RealGoodsInterestUserView::getInterestStatus, "hasPayment").op(Operator.NotEqual);
-        }
-        SearchResult<RealGoodsInterestUserView> search = beanSearcher.search(RealGoodsInterestUserView.class, builder.build());
-        search.getDataList().forEach(data->{
-            Long goodsId = data.getGoodsId();
-            OrderDon order = cmsOrderDonService.getOne(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, data.getUserId()).eq(OrderDon::getGoodsId, goodsId).ne(OrderDon::getId, data.getId()).gt(OrderDon::getMoney, data.getMoney()).eq(OrderDon::getStatus, "close").last("limit 1"));
-            if (order != null) {
-                data.setOrderId(order.getId());
-                data.setSkuId(order.getSkuId());
-                data.setMoney(order.getMoney());
-                data.setOrderCreatedTime(order.getCreatedTime());
-                realGoodsInterestUserMapper.updateData(data.getId(), data.getSkuId(), data.getOrderCreatedTime(), data.getOrderId());
-            }
-        });
-        return GatewayResponse.SUCCESS.newBuilder().toResult(search);
-    }
+	/**
+	 * 用户购买实物商品意愿列表
+	 */
+	@GetMapping("/get/realGooods/interest/users")
+	public Result<SearchResult> getInterestUserList(RealGoodsInterestUser.Status interestStatus, HttpServletRequest request) {
+		MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+		SearchResult<RealGoodsInterestUserView> search;
+		if (interestStatus == null) {
+			builder.field(RealGoodsInterestUserView::getInterestStatus, "hasPayment").op(Operator.NotEqual);
+			search = beanSearcher.search(RealGoodsInterestUserView.class, builder.build());
+		} else {
+			search = new SearchResult<>();
+			SearchResult<RealGoodsInterestUserHasPaymentView> search2 = beanSearcher.search(RealGoodsInterestUserHasPaymentView.class, builder.build());
+			search.setTotalCount(search2.getTotalCount());
+			List<RealGoodsInterestUserView> dataList = search.getDataList();
+			dataList.addAll(search2.getDataList());
+		}
+		search.getDataList().forEach(data -> {
+			Long goodsId = data.getGoodsId();
+			OrderDon order = cmsOrderDonService.getOne(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, data.getUserId()).eq(OrderDon::getGoodsId, goodsId).ne(OrderDon::getId, data.getId()).gt(OrderDon::getMoney, data.getMoney()).eq(OrderDon::getStatus, "close").last("limit 1"));
+			if (order != null) {
+				data.setOrderId(order.getId());
+				data.setSkuId(order.getSkuId());
+				data.setMoney(order.getMoney());
+				data.setOrderCreatedTime(order.getCreatedTime());
+				realGoodsInterestUserMapper.updateData(data.getId(), data.getSkuId(), data.getOrderCreatedTime(), data.getOrderId());
+			}
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
 
     /**
      * 修改购买意愿记录
@@ -146,29 +156,33 @@ public class CmsOrderController {
         return GatewayResponse.SUCCESS.newBuilder().toResult("修改成功");
     }
 
-    /**
-     * 导出用户意愿列表
-     */
-    @GetMapping("/export/interest")
-    public void exportInterest(RealGoodsInterestUser.Status interestStatus, HttpServletRequest request, HttpServletResponse response) {
-        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
-        if (interestStatus == null) {
-            builder.field(RealGoodsInterestUserView::getInterestStatus, "hasPayment").op(Operator.NotEqual);
-        }
-        List<ExcelRealGoodsUserInterestData> excelRealGoodsUserInterestData = beanSearcher.searchAll(ExcelRealGoodsUserInterestData.class, builder.build());
-        excelRealGoodsUserInterestData.forEach(data -> {
-            Long goodsId = data.getGoodsId();
-            OrderDon order = cmsOrderDonService.getOne(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, data.getUserId()).eq(OrderDon::getGoodsId, goodsId).ne(OrderDon::getId, data.getId()).gt(OrderDon::getMoney, data.getMoney()).eq(OrderDon::getStatus, "close").last("limit 1"));
-            if (order != null) {
-                data.setOrderId(order.getId());
-                data.setSkuId(order.getSkuId());
-                data.setMoney(order.getMoney());
-                data.setOrderCreatedTime(order.getCreatedTime());
-                realGoodsInterestUserMapper.updateData(data.getId(), data.getSkuId(), data.getOrderCreatedTime(), data.getOrderId());
-            }
-        });
-        EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelRealGoodsUserInterestData.class, excelRealGoodsUserInterestData, "用户意愿列表", "用户意愿列表", ExcelTypeEnum.XLSX, null);
-    }
+	/**
+	 * 导出用户意愿列表
+	 */
+	@GetMapping("/export/interest")
+	public void exportInterest(RealGoodsInterestUser.Status interestStatus, HttpServletRequest request, HttpServletResponse response) {
+		MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+		List<ExcelRealGoodsUserInterestData> excelRealGoodsUserInterestData;
+		if (interestStatus == null) {
+			builder.field(RealGoodsInterestUserView::getInterestStatus, "hasPayment").op(Operator.NotEqual);
+			excelRealGoodsUserInterestData = beanSearcher.searchAll(ExcelRealGoodsUserInterestData.class, builder.build());
+		} else {
+			List<ExcelRealGoodsUserInterestHasPaymentData> excelRealGoodsUserInterestData2 = beanSearcher.searchAll(ExcelRealGoodsUserInterestHasPaymentData.class, builder.build());
+			excelRealGoodsUserInterestData = new ArrayList<>(excelRealGoodsUserInterestData2);
+		}
+		excelRealGoodsUserInterestData.forEach(data -> {
+			Long goodsId = data.getGoodsId();
+			OrderDon order = cmsOrderDonService.getOne(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, data.getUserId()).eq(OrderDon::getGoodsId, goodsId).ne(OrderDon::getId, data.getId()).gt(OrderDon::getMoney, data.getMoney()).eq(OrderDon::getStatus, "close").last("limit 1"));
+			if (order != null) {
+				data.setOrderId(order.getId());
+				data.setSkuId(order.getSkuId());
+				data.setMoney(order.getMoney());
+				data.setOrderCreatedTime(order.getCreatedTime());
+				realGoodsInterestUserMapper.updateData(data.getId(), data.getSkuId(), data.getOrderCreatedTime(), data.getOrderId());
+			}
+		});
+		EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelRealGoodsUserInterestHasPaymentData.class, excelRealGoodsUserInterestData, "用户意愿列表", "用户意愿列表", ExcelTypeEnum.XLSX, null);
+	}
 
     /**
      * 实物订单配置售前售后客户