zoujiajian 3 лет назад
Родитель
Сommit
ff40e143fb

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/OrderDon.java

@@ -115,7 +115,7 @@ public class OrderDon extends BaseEntity implements Serializable {
         /**
          * 订单状态
          */
-        close("关闭订单"),
+        close("关闭"),
         noPayment("待付款"),
         hasPayment("已付款"),
         transport("已发货"),

+ 153 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelOrderDonData.java

@@ -0,0 +1,153 @@
+package com.cyksj.model.excel;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.cyksj.model.entity.OrderDon;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: ExcelOrderDonData
+ *创建者: JavaZou
+ *创建时间:2022/12/29 10:25
+ */
+@Getter
+@Setter
+@SearchBean(tables = "order_don o left join goods_don_sku sku on o.sku_id = sku.id " +
+		"left join goods_don g on g.id = sku.goods_id " +
+		"left join user u on o.user_id = u.id " +
+		"left join groups_relation gr on gr.id = o.relation_id " +
+		"left join channel_popularize cp on o.popularize_id = cp.id " +
+		"left join channel c on c.id = cp.channel_id "
+)
+public class ExcelOrderDonData {
+
+	@DbField("o.id")
+	@ExcelIgnore
+	private Long id;
+
+	@DbField("c.id")
+	@ExcelIgnore
+	private Long channelId;
+
+	@DbField("o.relation_id")
+	@ExcelIgnore
+	private Long relationId;
+
+	@DbField("o.transaction_id")
+	@ExcelIgnore
+	private String transactionId;
+
+	@DbField("g.type")
+	@ExcelIgnore
+	private Integer goodsDonType;
+
+	@DbField("o.order_no")
+	@ExcelProperty("订单号")
+	private String orderNo;
+
+	@DbField("c.name")
+	@ExcelProperty("渠道")
+	private String channel;
+
+	@DbField("g.title")
+	@ExcelProperty("商品")
+	private String title;
+
+	@DbIgnore
+	@ExcelProperty("优惠券")
+	private String couponName;
+
+	@DbField("o.coupon_money")
+	@ExcelProperty("减免金额")
+	private BigDecimal couponMoney;
+
+	@DbField("sku.spec_val")
+	@ExcelProperty("规格")
+	private String specVal;
+
+	@DbField("o.money")
+	@ExcelProperty("金额")
+	private BigDecimal money;
+
+	@DbField("u.id")
+	@ExcelProperty("用户ID")
+	private Long userId;
+
+	@DbField("u.nickname")
+	@ExcelProperty("用户名")
+	private String nickname;
+
+	@DbField("gr.account")
+	@ExcelProperty("账号")
+	private String account;
+
+	@DbIgnore
+	@ExcelProperty("售前")
+	private String beforeServiceName;
+
+	@DbIgnore
+	@ExcelProperty("售后")
+	private String afterServiceName;
+
+	@DbField("o.status")
+	@ExcelIgnore
+	private OrderDon.Status status;
+
+	@ExcelProperty("状态")
+	private String statusStr;
+
+	@DbField("o.created_time")
+	@ExcelProperty("创建时间")
+	private Date createdTime;
+
+	@DbField("o.type")
+	@ExcelIgnore
+	private OrderDon.Type type;
+
+	@ExcelProperty("支付方式")
+	private String typeStr;
+
+	@ExcelProperty("收货地址")
+	@DbIgnore
+	private String transportStr;
+
+	@ExcelProperty("收货人")
+	@DbIgnore
+	private String receiver;
+
+	@ExcelProperty("手机号")
+	@DbIgnore
+	private String phone;
+
+	@ExcelProperty("物流公司")
+	@DbIgnore
+	private String codeCn;
+
+	@ExcelProperty("物流单号")
+	@DbIgnore
+	private String trackingNumber;
+
+	@DbField("o.order_type")
+	@ExcelIgnore
+	private Integer orderType;
+
+	@DbField("o.num")
+	@ExcelIgnore
+	private Integer num;
+
+	@DbField("o.coupon_user_id")
+	@ExcelIgnore
+	private Long couponUserId;
+
+	@DbField("cp.id")
+	@ExcelIgnore
+	private Long popularizeId;
+}

+ 42 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -13,6 +13,7 @@ import com.cyksj.model.entity.OrderDon;
 import com.cyksj.model.entity.OrderDonWaybill;
 import com.cyksj.model.entity.RealGoodsInterestUser;
 import com.cyksj.model.entity.RealGoodsOrderHandle;
+import com.cyksj.model.excel.ExcelOrderDonData;
 import com.cyksj.model.excel.ExcelRealGoodsUserInterestData;
 import com.cyksj.model.excel.ExcelRealGoodsUserInterestHasPaymentData;
 import com.cyksj.model.manage.request.ReqSetLogisticsPost;
@@ -72,7 +73,7 @@ public class CmsOrderController {
     public Result<SearchResult<OrderDonView>> get() {
         SearchResult<OrderDonView> search = beanSearcher.search(OrderDonView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
         search.getDataList().forEach(data -> {
-            if (data.getGoodsDonType() == 2) {
+	        if (data.getGoodsDonType() != null && data.getGoodsDonType() == 2) {
                 RealGoodsOrderHandle realGoodsOrderHandle = realGoodsOrderHandleMapper.selectOne(Wrappers.lambdaQuery(RealGoodsOrderHandle.class).eq(RealGoodsOrderHandle::getOrderId, data.getId()).last("limit 1"));
                 if (realGoodsOrderHandle != null) {
                     data.setBeforeServiceName(realGoodsOrderHandle.getBeforeServiceName());
@@ -87,7 +88,45 @@ public class CmsOrderController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }
 
-    @PutMapping("/update/status")
+	/**
+	 * 订单导出
+	 */
+	@GetMapping("/export")
+	public void exportOrders(HttpServletResponse response) {
+		List<ExcelOrderDonData> list = beanSearcher.searchAll(ExcelOrderDonData.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		list.forEach(data -> {
+			data.setMoney(data.getMoney().divide(BigDecimal.valueOf(100)));
+			OrderDon.Type type = data.getType();
+			data.setTypeStr(type != null ? type.getDesc() : "");
+			OrderDon.Status status = data.getStatus();
+			data.setStatusStr(status != null ? status.getDesc() : "");
+			if (data.getChannelId() == null) {
+				data.setChannel("自然流量渠道");
+			}
+			if (data.getGoodsDonType() != null && data.getGoodsDonType() == 2) {
+				OrderDonTransportView transportView = beanSearcher.searchFirst(OrderDonTransportView.class, MapUtils.builder().field(OrderDonTransportView::getOrderId, data.getId()).build());
+				if (transportView != null) {
+					data.setTransportStr(String.format("%s%s%s%s", transportView.getProvince(), transportView.getCity(), transportView.getDistrict(), transportView.getAddress()));
+					data.setPhone(transportView.getPhone());
+					data.setReceiver(transportView.getReceiver());
+					data.setCodeCn(transportView.getCodeCn());
+					data.setTrackingNumber(transportView.getTrackingNumber());
+				}
+				RealGoodsOrderHandle realGoodsOrderHandle = realGoodsOrderHandleMapper.selectOne(Wrappers.lambdaQuery(RealGoodsOrderHandle.class).eq(RealGoodsOrderHandle::getOrderId, data.getId()).last("limit 1"));
+				if (realGoodsOrderHandle != null) {
+					data.setBeforeServiceName(realGoodsOrderHandle.getBeforeServiceName());
+					data.setAfterServiceName(realGoodsOrderHandle.getAfterServiceName());
+				}
+			}
+			if (data.getCouponUserId() != 0) {
+				data.setCouponName(couponMapper.getCouponNameByCouponUserId(data.getCouponUserId()));
+				data.setCouponMoney(data.getCouponMoney() == null ? BigDecimal.ZERO : data.getCouponMoney().divide(BigDecimal.valueOf(100)));
+			}
+		});
+		EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelOrderDonData.class, list, "订单列表", "订单列表", ExcelTypeEnum.XLSX, null);
+	}
+
+	@PutMapping("/update/status")
     public Result<String> upStatus(@RequestBody OrderDon orderDon){
         cmsOrderDonService.update(Wrappers.lambdaUpdate(OrderDon.class).eq(OrderDon::getId,orderDon.getId()).set(OrderDon::getStatus,orderDon.getStatus()));
         return GatewayResponse.SUCCESS.newBuilder().toResult();
@@ -178,6 +217,7 @@ public class CmsOrderController {
 				data.setMoney(order.getMoney());
 				realGoodsInterestUserMapper.updateData(data.getId(), data.getSkuId(), data.getOrderCreatedTime(), data.getOrderId());
 			}
+			data.setMoney(data.getMoney().divide(BigDecimal.valueOf(100)));
 		});
 		EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelRealGoodsUserInterestHasPaymentData.class, excelRealGoodsUserInterestData, "用户意愿列表", "用户意愿列表", ExcelTypeEnum.XLSX, null);
 	}