Explorar el Código

fix 实物导出

zoujiajian hace 2 años
padre
commit
06aa49dea6

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

@@ -0,0 +1,153 @@
+package com.cyksj.model.excel;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.cyksj.model.entity.OrderDon;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: ExcelRealGoodsMOrderData
+ * 创建者: JavaZou
+ * 创建时间:2023/10/19 15:42
+ */
+@Getter
+@Setter
+@ExcelIgnoreUnannotated
+@SearchBean(tables = "order_master_don o" +
+		" inner join order_don os on os.m_oid = o.id" +
+		" left join goods_don g on g.id = os.goods_id" +
+		" left join user u on o.user_id = u.id" +
+		" inner join order_don_transport odt on odt.order_id = o.id",
+		where = ":condition:"
+)
+public class ExcelRealGoodsMOrderData {
+
+	@DbField("o.popularize_id")
+	@ExcelIgnore
+	private Long popularizeId;
+
+	@DbField("g.type")
+	private Integer goodsDonType;
+
+	@DbField("os.goods_id")
+	private Long goodsId;
+
+	@DbField("os.sku_id")
+	private Long skuId;
+
+	@DbField("o.order_no")
+	@ExcelIgnore
+	private String orderNo;
+
+	@DbField("o.transaction_id")
+	@ExcelIgnore
+	private String transactionId;
+
+	@DbField("u.id")
+	@ExcelIgnore
+	private Long userId;
+
+	@DbField("case when u.login_phone != '' then 'phone' when u.email != '' then 'email' when u.open_id != '' then 'wechat' else 'wechat' end")
+	@ExcelIgnore
+	private String register;
+
+	@DbField("os.status")
+	@ExcelIgnore
+	private OrderDon.Status status;
+
+	@DbField("os.type")
+	@ExcelIgnore
+	private OrderDon.Type type;
+
+	@DbField("os.order_type")
+	@ExcelIgnore
+	private Integer orderType;
+
+	@DbField("os.num")
+	@ExcelIgnore
+	private Integer num;
+
+	@DbField("os.created_time")
+	@ExcelIgnore
+	private Date createdTime;
+
+	@DbField("os.ex_code")
+	@ExcelIgnore
+	private String exCode;
+
+	/**
+	 * 收货人
+	 */
+	@ExcelProperty("姓名")
+	@DbField("odt.receiver")
+	private String receiver;
+
+	/**
+	 * 手机号
+	 */
+	@ExcelProperty("手机号码")
+	@DbField("odt.phone")
+	private String phone;
+
+	@ExcelProperty("座机号")
+	private String landLine;
+
+	@ExcelProperty("公司名称")
+	private String company;
+
+	/**
+	 * 省份
+	 */
+	@ExcelProperty("省")
+	@DbField("odt.province")
+	private String province;
+
+	/**
+	 * 城市
+	 */
+	@ExcelProperty("市")
+	@DbField("odt.city")
+	private String city;
+
+	/**
+	 * 区/县
+	 */
+	@ExcelProperty("区")
+	@DbField("odt.district")
+	private String district;
+
+	/**
+	 * 详细地址
+	 */
+	@ExcelProperty("详细地址")
+	@DbField("odt.address")
+	private String address;
+
+	@ExcelProperty("付款方式")
+	private String payType;
+
+	@ExcelProperty("月结卡号")
+	private String monthCardNo;
+
+	@ExcelProperty("托寄物名称")
+	private String realGoodName;
+
+	@ExcelProperty("代收卡号(可选增加服务)")
+	private String toMoneyCardNumber;
+
+	@ExcelProperty("代收金额(可选增值服务)")
+	private String toMoney;
+
+	@ExcelProperty("收件统编")
+	private String deliveryNumber;
+
+	@ExcelProperty("备注")
+	private String remark;
+}

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

@@ -383,6 +383,66 @@ public class CmsOrderController {
 				.doWrite(collect);
 	}
 
+	/**
+	 * 导出实物模板 订单excel
+	 */
+	@GetMapping("/export/mOrder/realGoods")
+	public void exportMorderRealGoods(HttpServletResponse response, Long channelId, String account, String showId, Boolean isNoBind, Integer dsType, @RequestParam(value = "orderStatus", required = false) List<String> orderStatus) throws Exception {
+		StringBuilder conditionSb = new StringBuilder();
+		if (isNoBind != null) {
+			String f = isNoBind ? "=" : "!=";
+			conditionSb.append(String.format(" and os.ex_code != '' and os.user_id %s 0", f));
+		}
+		if (dsType != null) {
+			//默认优惠券
+			String dsTypeField = "coupon_user_id";
+			if (dsType == 2) {
+				dsTypeField = "balance";
+			} else if (dsType == 3) {
+				dsTypeField = "galaxycoin";
+			}
+			conditionSb.append(String.format(" and os.%s != 0", dsTypeField));
+		}
+		if (orderStatus != null) {
+			conditionSb.append(String.format(" and os.status in %s", Jsons.toJson(orderStatus).replaceAll("\\[", "(").replaceAll("]", ")")));
+		}
+		String conditionSql = null;
+
+		//主订单
+		MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+		if (channelId != null) {
+			List<Long> popularizeIds = channelPopularizeMapper.getPopularizeIdByChannelId(channelId);
+			builder.field(ExcelRealGoodsMOrderData::getPopularizeId, popularizeIds).op(Operator.InList);
+		}
+		if (StrUtil.isNotBlank(account)) {
+			GroupsRelation relation = relationMapper.selectOne(Wrappers.lambdaQuery(GroupsRelation.class)
+					.eq(GroupsRelation::getAccount, account).last("limit 1"));
+			if (relation != null) {
+				builder.field(ExcelRealGoodsMOrderData::getUserId, relation.getUserId());
+			} else {
+				builder.field(ExcelRealGoodsMOrderData::getUserId).op(Operator.IsNull);
+			}
+		}
+		if (StrUtil.isNotBlank(showId)) {
+			builder.field(ExcelRealGoodsMOrderData::getUserId, userService.getUserIdByShowId(showId));
+		}
+		if (StrUtil.isNotBlank(conditionSql)) {
+			builder.put("condition", conditionSql);
+		}
+		List<ExcelRealGoodsMOrderData> list = beanSearcher.searchAll(ExcelRealGoodsMOrderData.class, builder
+				.field(ExcelRealGoodsMOrderData::getGoodsDonType, Constant.realGoodsType).op(Operator.InList)
+				.build());
+		list.forEach(data -> {
+			data.setPayType("寄付现结");
+			if (data.getGoodsDonType() == Constant.realGoodsType.get(0)) {
+				data.setRealGoodName("路由器");
+			} else if (data.getGoodsDonType() == Constant.realGoodsType.get(1)) {
+				data.setRealGoodName("银河潮玩");
+			}
+		});
+		EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelRealGoodsOrderData.class, list, "实物订单列表", "实物订单列表", ExcelTypeEnum.XLSX, null);
+	}
+
 	/**
 	 * 导出实物模板 订单excel
 	 */