|
|
@@ -223,10 +223,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
// 提交订单
|
|
|
eventPublisher.publishEvent(new SubmitOrderEvent(mergerOrder, orderList));
|
|
|
// 插入订单
|
|
|
- orderList.forEach(c->{
|
|
|
- if (c.getDvyType().equals(1) && c.getHbOrderStatus()!=0) {
|
|
|
+ orderList.forEach(c -> {
|
|
|
+ if (c.getDvyType().equals(1) && c.getHbOrderStatus() != 0) {
|
|
|
c.setHbOrderStatus(1);
|
|
|
}
|
|
|
+ c.setProdName("");
|
|
|
orderMapper.insert(c);
|
|
|
});
|
|
|
List<OrderItem> orderItems = orderList.stream()
|
|
|
@@ -266,6 +267,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
public List<Order> listUnRefundOrderAndOrderItems(Integer orderStatus, DateTime lessThanUpdateTime) {
|
|
|
return orderMapper.listUnRefundOrderAndOrderItems(orderStatus, lessThanUpdateTime);
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
public List<Order> selectCancelOrders(Integer orderStatus, DateTime lessThanUpdateTime) {
|
|
|
return orderMapper.selectCancelOrders(orderStatus, lessThanUpdateTime);
|
|
|
@@ -277,7 +279,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (CollectionUtil.isEmpty(orders)) {
|
|
|
return;
|
|
|
}
|
|
|
- orderMapper.cancelOrders(orders,cancelReason);
|
|
|
+ orderMapper.cancelOrders(orders, cancelReason);
|
|
|
List<OrderItem> allOrderItems = new ArrayList<>();
|
|
|
for (Order order : orders) {
|
|
|
List<OrderItem> orderItems = order.getOrderItems();
|
|
|
@@ -294,7 +296,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.isNull(PointsRecord::getExpiryDate)
|
|
|
));
|
|
|
for (PointsRecord pointsRecord : pointsRecords) {
|
|
|
- Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
|
+ Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), pointsRecord.getChannelId());
|
|
|
pointsRecord.setId(null);
|
|
|
pointsRecord.setCreationDate(new Date());
|
|
|
pointsRecord.setPoints(pointsRecord.getVariablePoints());
|
|
|
@@ -328,7 +330,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void receiptOrder(List<Order> orders) {
|
|
|
- orderMapper.cancelOrders(orders,"用户主动取消");
|
|
|
+ orderMapper.cancelOrders(orders, "用户主动取消");
|
|
|
for (Order order : orders) {
|
|
|
eventPublisher.publishEvent(new ReceiptOrderEvent(order));
|
|
|
}
|
|
|
@@ -959,7 +961,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 退货退款
|
|
|
*/
|
|
|
@@ -1028,7 +1029,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
npr.setPointsAudit(1);
|
|
|
npr.setPoints(pointsRecord.getVariablePoints());
|
|
|
npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
- Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
|
+ Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(),pointsRecord.getChannelId());
|
|
|
if (null == l) {
|
|
|
l = 0L;
|
|
|
}
|
|
|
@@ -1072,7 +1073,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
npr.setPointsAudit(1);
|
|
|
npr.setPoints(pointsRecord.getVariablePoints());
|
|
|
npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
- Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
|
+ Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), pointsRecord.getChannelId());
|
|
|
if (null == l) {
|
|
|
l = 0L;
|
|
|
}
|
|
|
@@ -1092,7 +1093,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
npr.setCreationDate(new Date());
|
|
|
pointsRecordMapper.insert(npr);
|
|
|
}
|
|
|
-// refundExpiredScore = order.getOffsetPoints() - refundScore;
|
|
|
+// refundExpiredScore = order.getOffsetPoints() - refundScore;
|
|
|
}
|
|
|
break;
|
|
|
case 2://2:单个物品退款
|
|
|
@@ -1136,150 +1137,151 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
log.info("退款积分:refundOffsetPoints:" + refundOffsetPoints + ";shoppingScore:" + shoppingScore + ";totalRefundScore:" + totalRefundScore);
|
|
|
- //退积分
|
|
|
- if (totalRefundScore > 0) {
|
|
|
- refundScore = (long) totalRefundScore;
|
|
|
- for (PointsRecord pointsRecord : pointsRecords) {
|
|
|
- //下单支付的金额
|
|
|
- int variablePoints = pointsRecord.getVariablePoints().intValue();//574
|
|
|
- PointsRecord npr = new PointsRecord();
|
|
|
- BeanUtils.copyProperties(pointsRecord, npr);
|
|
|
- npr.setId(null);
|
|
|
- npr.setPointsType(3);
|
|
|
- Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
|
- if (null == l) {
|
|
|
- l = 0L;
|
|
|
- }
|
|
|
- npr.setCreationDate(new Date());
|
|
|
- //574>188
|
|
|
- if (variablePoints < totalRefundScore) {//下单金额全退
|
|
|
- npr.setPoints(pointsRecord.getVariablePoints());
|
|
|
- npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
- npr.setPointsAudit(1);
|
|
|
- if (pointsRecord.getExpiryStatus() == 1) {//当过期状态等于1时才进行变更可用金额 否则不变更
|
|
|
- if (null != pointsRecord.getVariablePoints()) {
|
|
|
- npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
|
|
|
+ //退积分
|
|
|
+ if (totalRefundScore > 0) {
|
|
|
+ refundScore = (long) totalRefundScore;
|
|
|
+ for (PointsRecord pointsRecord : pointsRecords) {
|
|
|
+ //下单支付的金额
|
|
|
+ int variablePoints = pointsRecord.getVariablePoints().intValue();//574
|
|
|
+ PointsRecord npr = new PointsRecord();
|
|
|
+ BeanUtils.copyProperties(pointsRecord, npr);
|
|
|
+ npr.setId(null);
|
|
|
+ npr.setPointsType(3);
|
|
|
+ Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(),pointsRecord.getChannelId());
|
|
|
+ if (null == l) {
|
|
|
+ l = 0L;
|
|
|
+ }
|
|
|
+ npr.setCreationDate(new Date());
|
|
|
+ //574>188
|
|
|
+ if (variablePoints < totalRefundScore) {//下单金额全退
|
|
|
+ npr.setPoints(pointsRecord.getVariablePoints());
|
|
|
+ npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
+ npr.setPointsAudit(1);
|
|
|
+ if (pointsRecord.getExpiryStatus() == 1) {//当过期状态等于1时才进行变更可用金额 否则不变更
|
|
|
+ if (null != pointsRecord.getVariablePoints()) {
|
|
|
+ npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
|
|
|
+ } else {
|
|
|
+ npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
+ }
|
|
|
} else {
|
|
|
npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
}
|
|
|
- } else {
|
|
|
- npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
+ if (pointsRecord.getExpiryStatus() == 2) {
|
|
|
+ refundExpiredScore += variablePoints;
|
|
|
+ }
|
|
|
+ totalRefundScore -= variablePoints;
|
|
|
+ pointsRecordMapper.insert(npr);
|
|
|
+ } else if (totalRefundScore > 0) {//574>188,应退188
|
|
|
+ npr.setPoints(BigDecimal.valueOf(totalRefundScore));
|
|
|
+ npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
+ npr.setPointsAudit(1);
|
|
|
+ if (pointsRecord.getExpiryStatus() == 1) {//当过期状态等于1时才进行变更可用金额 否则不变更
|
|
|
+ BigDecimal bigDecimal = BigDecimal.valueOf(totalRefundScore);
|
|
|
+ npr.setCurrentlyAvailablePoints(bigDecimal.add(BigDecimal.valueOf(l)));
|
|
|
+ } else {
|
|
|
+ npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
+ }
|
|
|
+ if (pointsRecord.getExpiryStatus() == 2) {
|
|
|
+ refundExpiredScore += totalRefundScore;
|
|
|
+ }
|
|
|
+ totalRefundScore = 0;
|
|
|
+ pointsRecordMapper.insert(npr);
|
|
|
}
|
|
|
- if (pointsRecord.getExpiryStatus() == 2) {
|
|
|
- refundExpiredScore += variablePoints;
|
|
|
+ log.info("退积分:当前退款金额为:totalRefundScore:" + totalRefundScore);
|
|
|
+ if (totalRefundScore == 0 && shoppingScore >= refundOffsetPoints) {
|
|
|
+ orderRefund.setRefundAmount(refundActual.doubleValue());
|
|
|
+ orderRefund.setOffsetPoints(refundScore);
|
|
|
+ orderRefund.setHandler(Boolean.TRUE);
|
|
|
+ orderRefund.setRefundExpiredScore(refundExpiredScore);
|
|
|
+ log.info("仅退积分-退款单修改状态和积分{}", orderRefund);
|
|
|
+ orderRefundMapper.updateById(orderRefund);
|
|
|
+ return;
|
|
|
}
|
|
|
- totalRefundScore -= variablePoints;
|
|
|
- pointsRecordMapper.insert(npr);
|
|
|
- } else if (totalRefundScore > 0) {//574>188,应退188
|
|
|
- npr.setPoints(BigDecimal.valueOf(totalRefundScore));
|
|
|
- npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
- npr.setPointsAudit(1);
|
|
|
- if (pointsRecord.getExpiryStatus() == 1) {//当过期状态等于1时才进行变更可用金额 否则不变更
|
|
|
- BigDecimal bigDecimal = BigDecimal.valueOf(totalRefundScore);
|
|
|
- npr.setCurrentlyAvailablePoints(bigDecimal.add(BigDecimal.valueOf(l)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //退钱
|
|
|
+ if (totalRefundActual > 0) {
|
|
|
+ int refundMoney = 0;//需要退款的金额
|
|
|
+ if (totalRefundScore > 0) {
|
|
|
+ if (totalRefundActual >= totalRefundScore) {
|
|
|
+ refundMoney = totalRefundScore;
|
|
|
} else {
|
|
|
- npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
- }
|
|
|
- if (pointsRecord.getExpiryStatus() == 2) {
|
|
|
- refundExpiredScore += totalRefundScore;
|
|
|
+ System.out.println("退款金额大于支付金额");
|
|
|
}
|
|
|
- totalRefundScore = 0;
|
|
|
- pointsRecordMapper.insert(npr);
|
|
|
+ } else if (totalRefundScore == 0) {
|
|
|
+ refundMoney = (int) Arith.mul(totalRefundActual, 100);
|
|
|
+ } else {
|
|
|
+ System.out.println("单笔退款未知状态");
|
|
|
+ break;
|
|
|
}
|
|
|
- log.info("退积分:当前退款金额为:totalRefundScore:" + totalRefundScore);
|
|
|
- if (totalRefundScore == 0 && shoppingScore >= refundOffsetPoints) {
|
|
|
- orderRefund.setRefundAmount(refundActual.doubleValue());
|
|
|
- orderRefund.setOffsetPoints(refundScore);
|
|
|
- orderRefund.setHandler(Boolean.TRUE);
|
|
|
- orderRefund.setRefundExpiredScore(refundExpiredScore);
|
|
|
- log.info("仅退积分-退款单修改状态和积分{}", orderRefund);
|
|
|
- orderRefundMapper.updateById(orderRefund);
|
|
|
- return;
|
|
|
+ OrderSettlement orderSettlement = orderSettlementMapper.selectOne(new LambdaQueryWrapper<OrderSettlement>()
|
|
|
+ .eq(OrderSettlement::getOrderNumber, order.getOrderNumber())
|
|
|
+ .eq(OrderSettlement::getPayType, 1));
|
|
|
+ RefundInfoPo po = new RefundInfoPo();
|
|
|
+ po.setOutTradeNo(orderSettlement.getPayNo());
|
|
|
+ po.setTotal((int) Arith.mul(order.getActualTotal(), 100));
|
|
|
+ po.setRefundMoney(refundMoney);
|
|
|
+ if (refundMoney != 0) {
|
|
|
+ String s = wxProviderService.refundOrder(po);
|
|
|
+ System.out.println("微信退款结果:" + s);
|
|
|
}
|
|
|
+ refundActual = BigDecimal.valueOf(refundMoney);
|
|
|
}
|
|
|
+ break;
|
|
|
}
|
|
|
- //退钱
|
|
|
- if (totalRefundActual > 0) {
|
|
|
- int refundMoney = 0;//需要退款的金额
|
|
|
- if (totalRefundScore > 0) {
|
|
|
- if (totalRefundActual >= totalRefundScore) {
|
|
|
- refundMoney = totalRefundScore;
|
|
|
- } else {
|
|
|
- System.out.println("退款金额大于支付金额");
|
|
|
- }
|
|
|
- } else if (totalRefundScore == 0) {
|
|
|
- refundMoney = (int) Arith.mul(totalRefundActual, 100);
|
|
|
- } else {
|
|
|
- System.out.println("单笔退款未知状态");
|
|
|
- break;
|
|
|
- }
|
|
|
- OrderSettlement orderSettlement = orderSettlementMapper.selectOne(new LambdaQueryWrapper<OrderSettlement>()
|
|
|
- .eq(OrderSettlement::getOrderNumber, order.getOrderNumber())
|
|
|
- .eq(OrderSettlement::getPayType, 1));
|
|
|
- RefundInfoPo po = new RefundInfoPo();
|
|
|
- po.setOutTradeNo(orderSettlement.getPayNo());
|
|
|
- po.setTotal((int) Arith.mul(order.getActualTotal(), 100));
|
|
|
- po.setRefundMoney(refundMoney);
|
|
|
- if (refundMoney != 0) {
|
|
|
- String s = wxProviderService.refundOrder(po);
|
|
|
- System.out.println("微信退款结果:" + s);
|
|
|
+ if (1 == orderRefund.getRefundType()) {
|
|
|
+ order.setHbOrderStatus(OrderStatus.CLOSE.value());
|
|
|
+ } else {
|
|
|
+ List<OrderRefund> orderRefundList = orderRefundMapper.selectList(new LambdaQueryWrapper<OrderRefund>()
|
|
|
+ .eq(OrderRefund::getOrderNumber, orderNumber)
|
|
|
+ .eq(OrderRefund::getReturnMoneySts, 70)
|
|
|
+ );
|
|
|
+ //统计全部退货商品数量(goodsNum)
|
|
|
+ int goodsNum = orderRefundList.stream().mapToInt(OrderRefund::getGoodsNum).sum();
|
|
|
+ if (goodsNum == order.getProductNums()) {
|
|
|
+ order.setHbOrderStatus(OrderStatus.CLOSE.value());
|
|
|
}
|
|
|
- refundActual = BigDecimal.valueOf(refundMoney);
|
|
|
}
|
|
|
- break;
|
|
|
- }
|
|
|
- if (1 == orderRefund.getRefundType()) {
|
|
|
- order.setHbOrderStatus(OrderStatus.CLOSE.value());
|
|
|
- } else {
|
|
|
- List<OrderRefund> orderRefundList = orderRefundMapper.selectList(new LambdaQueryWrapper<OrderRefund>()
|
|
|
- .eq(OrderRefund::getOrderNumber, orderNumber)
|
|
|
- .eq(OrderRefund::getReturnMoneySts, 70)
|
|
|
- );
|
|
|
- //统计全部退货商品数量(goodsNum)
|
|
|
- int goodsNum = orderRefundList.stream().mapToInt(OrderRefund::getGoodsNum).sum();
|
|
|
- if (goodsNum == order.getProductNums()) {
|
|
|
- order.setHbOrderStatus(OrderStatus.CLOSE.value());
|
|
|
- }
|
|
|
- }
|
|
|
- orderMapper.updateById(order);
|
|
|
+ orderMapper.updateById(order);
|
|
|
|
|
|
- orderRefund.setRefundAmount(refundActual.doubleValue());
|
|
|
- orderRefund.setOffsetPoints(refundScore);
|
|
|
- orderRefund.setHandler(Boolean.TRUE);
|
|
|
- orderRefund.setRefundExpiredScore(refundExpiredScore);
|
|
|
- log.info("退款单修改状态和积分{}", orderRefund);
|
|
|
- orderRefundMapper.updateById(orderRefund);
|
|
|
+ orderRefund.setRefundAmount(refundActual.doubleValue());
|
|
|
+ orderRefund.setOffsetPoints(refundScore);
|
|
|
+ orderRefund.setHandler(Boolean.TRUE);
|
|
|
+ orderRefund.setRefundExpiredScore(refundExpiredScore);
|
|
|
+ log.info("退款单修改状态和积分{}", orderRefund);
|
|
|
+ orderRefundMapper.updateById(orderRefund);
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- * 退款成功后,修改订单状态
|
|
|
- * @param order 订单
|
|
|
- * 退款单
|
|
|
- */
|
|
|
- private void updateOrderStatus(Order order) {
|
|
|
- //定义变量是否需要通知海博改变订单状态
|
|
|
- boolean status = true;
|
|
|
- for (OrderItem orderItem : orderItemMapper.getListByOrderNumber(order.getOrderNumber())) {
|
|
|
- List<OrderRefundSku> orderRefundSkus = orderRefundSkuMapper.selectByOrderItemList(orderItem.getOrderItemId());
|
|
|
- if (ObjectUtils.isEmpty(orderRefundSkus)){
|
|
|
- status = false;
|
|
|
- break;
|
|
|
- }
|
|
|
- //统计orderRefundSkus里面商品数量
|
|
|
- int refundCount = orderRefundSkus.stream().mapToInt(OrderRefundSku::getProductCount).sum();
|
|
|
- if (!orderItem.getProdCount().equals(refundCount)) {
|
|
|
- status = false;
|
|
|
- break;
|
|
|
+ /**
|
|
|
+ * 退款成功后,修改订单状态
|
|
|
+ *
|
|
|
+ * @param order 订单
|
|
|
+ * 退款单
|
|
|
+ */
|
|
|
+ private void updateOrderStatus (Order order){
|
|
|
+ //定义变量是否需要通知海博改变订单状态
|
|
|
+ boolean status = true;
|
|
|
+ for (OrderItem orderItem : orderItemMapper.getListByOrderNumber(order.getOrderNumber())) {
|
|
|
+ List<OrderRefundSku> orderRefundSkus = orderRefundSkuMapper.selectByOrderItemList(orderItem.getOrderItemId());
|
|
|
+ if (ObjectUtils.isEmpty(orderRefundSkus)) {
|
|
|
+ status = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //统计orderRefundSkus里面商品数量
|
|
|
+ int refundCount = orderRefundSkus.stream().mapToInt(OrderRefundSku::getProductCount).sum();
|
|
|
+ if (!orderItem.getProdCount().equals(refundCount)) {
|
|
|
+ status = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if (status){
|
|
|
- order.setHbOrderStatus(OrderStatus.CLOSE.value());
|
|
|
- orderMapper.updateById(order);
|
|
|
- //通知海博改变订单状态
|
|
|
+ if (status) {
|
|
|
+ order.setHbOrderStatus(OrderStatus.CLOSE.value());
|
|
|
+ orderMapper.updateById(order);
|
|
|
+ //通知海博改变订单状态
|
|
|
HBBaseReq<Object> build = HBBaseReq.create();
|
|
|
build.setAppId(hbSignUtil.getAppId());
|
|
|
|
|
|
@@ -1298,295 +1300,313 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
log.info("post 订单推送单号参数:{}", JSON.toJSONString(build));
|
|
|
String post = post(hbSignUtil.getHBHost() + "/api/order/changeOrderStatus", build);
|
|
|
log.info("post 订单推送结果:{}", post);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- private void addOrderRefundRecord(Long refundId, Integer auditStatus, Integer sort, String instructions) {
|
|
|
- OrderRefundRecord orderRefundRecord = new OrderRefundRecord();
|
|
|
- orderRefundRecord.setOrderRefundId(refundId);
|
|
|
- orderRefundRecord.setInstructions(instructions);
|
|
|
- Date date = new Date();
|
|
|
- orderRefundRecord.setCreateTime(date);
|
|
|
- orderRefundRecord.setUpdateTime(date);
|
|
|
- orderRefundRecord.setAuditStatus(auditStatus);
|
|
|
- orderRefundRecord.setSort(sort);
|
|
|
- orderRefundRecordMapper.insert(orderRefundRecord);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public OrderRefundAmountDTO computeOrderRefundAmount(String orderNumber, List<OrderRefundAmountParam> suk) {
|
|
|
- BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
|
|
- Long offsetPoints = 0L;
|
|
|
- Order order = orderMapper.selectOne(new LambdaQueryWrapper<Order>()
|
|
|
- .eq(Order::getOrderNumber, orderNumber)
|
|
|
- .eq(Order::getDeleteStatus, 0));
|
|
|
- List<OrderItem> orderItems = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, orderNumber));
|
|
|
- return OrderRefundAmountDTO.builder().orderRefundAmount(orderRefundAmount).offsetPoints(offsetPoints).build();
|
|
|
- }
|
|
|
|
|
|
- @Override
|
|
|
- public Map<String, Integer> deliverListStatusNum() {
|
|
|
- Map<String, Integer> map = new LinkedTreeMap<>();
|
|
|
- map.put("all", orderMapper.statusCount(Lists.newArrayList(0, 1, 20, 30, 40, 50, 60, 70, 80)));
|
|
|
- map.put("paddingPay", orderMapper.statusCount(Lists.newArrayList(0)));
|
|
|
- map.put("paddingShipped", orderMapper.statusCount(Lists.newArrayList(1)));
|
|
|
- map.put("paddingReceived", orderMapper.statusCount(Lists.newArrayList(20, 30, 40, 70)));
|
|
|
- map.put("completed", orderMapper.statusCount(Lists.newArrayList(80)));
|
|
|
- map.put("cancel", orderMapper.statusCount(Lists.newArrayList(60,50)));
|
|
|
- return map;
|
|
|
- }
|
|
|
+ private void addOrderRefundRecord (Long refundId, Integer auditStatus, Integer sort, String instructions){
|
|
|
+ OrderRefundRecord orderRefundRecord = new OrderRefundRecord();
|
|
|
+ orderRefundRecord.setOrderRefundId(refundId);
|
|
|
+ orderRefundRecord.setInstructions(instructions);
|
|
|
+ Date date = new Date();
|
|
|
+ orderRefundRecord.setCreateTime(date);
|
|
|
+ orderRefundRecord.setUpdateTime(date);
|
|
|
+ orderRefundRecord.setAuditStatus(auditStatus);
|
|
|
+ orderRefundRecord.setSort(sort);
|
|
|
+ orderRefundRecordMapper.insert(orderRefundRecord);
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public OrderCountParam selectOrderCount(OrderParam orderParam) {
|
|
|
- return orderMapper.selectOrderCount(orderParam);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public OrderRefundAmountDTO computeOrderRefundAmount (String orderNumber, List < OrderRefundAmountParam > suk){
|
|
|
+ BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
|
|
+ Long offsetPoints = 0L;
|
|
|
+ Order order = orderMapper.selectOne(new LambdaQueryWrapper<Order>()
|
|
|
+ .eq(Order::getOrderNumber, orderNumber)
|
|
|
+ .eq(Order::getDeleteStatus, 0));
|
|
|
+ List<OrderItem> orderItems = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, orderNumber));
|
|
|
+ return OrderRefundAmountDTO.builder().orderRefundAmount(orderRefundAmount).offsetPoints(offsetPoints).build();
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public IPage<Order> deliveryOrder(PageParam<Order> page, OrderStatisticsParam orderParam) {
|
|
|
- IPage<Order> orderIPage = orderMapper.deliveryOrder(page, orderParam);
|
|
|
- orderIPage.getRecords().forEach(order -> {
|
|
|
- order.setOrderItems(orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber()));
|
|
|
- });
|
|
|
- return orderIPage;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public Map<String, Integer> deliverListStatusNum () {
|
|
|
+ Map<String, Integer> map = new LinkedTreeMap<>();
|
|
|
+ map.put("all", orderMapper.statusCount(Lists.newArrayList(0, 1, 20, 30, 40, 50, 60, 70, 80)));
|
|
|
+ map.put("paddingPay", orderMapper.statusCount(Lists.newArrayList(0)));
|
|
|
+ map.put("paddingShipped", orderMapper.statusCount(Lists.newArrayList(1)));
|
|
|
+ map.put("paddingReceived", orderMapper.statusCount(Lists.newArrayList(20, 30, 40, 70)));
|
|
|
+ map.put("completed", orderMapper.statusCount(Lists.newArrayList(80)));
|
|
|
+ map.put("cancel", orderMapper.statusCount(Lists.newArrayList(60, 50)));
|
|
|
+ return map;
|
|
|
+ }
|
|
|
|
|
|
- private boolean isPaymentOver7Days(Date paymentDate) {
|
|
|
- // 1. 将支付时间转换为 Instant
|
|
|
- Instant paymentInstant = paymentDate.toInstant();
|
|
|
- // 2. 增加 7 天(精确到毫秒,考虑时区)
|
|
|
- Instant expirationInstant = paymentInstant.plus(7, java.time.temporal.ChronoUnit.DAYS);
|
|
|
- // 3. 获取当前时间
|
|
|
- Instant nowInstant = Instant.now();
|
|
|
- // 4. 比较时间
|
|
|
- return nowInstant.isAfter(expirationInstant) || nowInstant.equals(expirationInstant);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public OrderCountParam selectOrderCount (OrderParam orderParam){
|
|
|
+ return orderMapper.selectOrderCount(orderParam);
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 导出正常订单
|
|
|
- * @param orderParam
|
|
|
- * @param response
|
|
|
- */
|
|
|
- @Override
|
|
|
- public void export(BackendOrderParam orderParam, HttpServletResponse response) {
|
|
|
- List<Order> orderList = orderMapper.findList(orderParam);
|
|
|
- if (!orderList.isEmpty()) {
|
|
|
- orderList.forEach(c -> {
|
|
|
- List<OrderItem> orderItems = orderItemMapper.getListByOrderNumber(c.getOrderNumber());
|
|
|
- c.setOrderItems(orderItems);
|
|
|
- c.setGoodsTotalCount(orderItems.stream().map(OrderItem::getProdCount).reduce(0, Integer::sum));
|
|
|
+ @Override
|
|
|
+ public IPage<Order> deliveryOrder (PageParam < Order > page, OrderStatisticsParam orderParam){
|
|
|
+ IPage<Order> orderIPage = orderMapper.deliveryOrder(page, orderParam);
|
|
|
+ orderIPage.getRecords().forEach(order -> {
|
|
|
+ order.setOrderItems(orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber()));
|
|
|
});
|
|
|
+ return orderIPage;
|
|
|
}
|
|
|
- if (orderList.isEmpty()){
|
|
|
- throw new GlobalException("该次导出未查询到数据,不允许导出");
|
|
|
+
|
|
|
+ private boolean isPaymentOver7Days (Date paymentDate){
|
|
|
+ // 1. 将支付时间转换为 Instant
|
|
|
+ Instant paymentInstant = paymentDate.toInstant();
|
|
|
+ // 2. 增加 7 天(精确到毫秒,考虑时区)
|
|
|
+ Instant expirationInstant = paymentInstant.plus(7, java.time.temporal.ChronoUnit.DAYS);
|
|
|
+ // 3. 获取当前时间
|
|
|
+ Instant nowInstant = Instant.now();
|
|
|
+ // 4. 比较时间
|
|
|
+ return nowInstant.isAfter(expirationInstant) || nowInstant.equals(expirationInstant);
|
|
|
}
|
|
|
- exportNormalOrders(orderList,response,"正常订单");
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- * 导出正常订单数据到Excel(直接输出到HttpServletResponse)
|
|
|
- */
|
|
|
- public void exportNormalOrders(List<Order> orderList,
|
|
|
- HttpServletResponse response,
|
|
|
- String fileName) {
|
|
|
- // 设置响应头
|
|
|
- ExportUtils.setupResponse(response, fileName);
|
|
|
+ /**
|
|
|
+ * 导出正常订单
|
|
|
+ *
|
|
|
+ * @param orderParam
|
|
|
+ * @param response
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void export (BackendOrderParam orderParam, HttpServletResponse response){
|
|
|
+ List<Order> orderList = orderMapper.findList(orderParam);
|
|
|
+ if (!orderList.isEmpty()) {
|
|
|
+ orderList.forEach(c -> {
|
|
|
+ List<OrderItem> orderItems = orderItemMapper.getListByOrderNumber(c.getOrderNumber());
|
|
|
+ c.setOrderItems(orderItems);
|
|
|
+ c.setGoodsTotalCount(orderItems.stream().map(OrderItem::getProdCount).reduce(0, Integer::sum));
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (orderList.isEmpty()) {
|
|
|
+ throw new GlobalException("该次导出未查询到数据,不允许导出");
|
|
|
+ }
|
|
|
+ exportNormalOrders(orderList, response, "正常订单");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 导出正常订单数据到Excel(直接输出到HttpServletResponse)
|
|
|
+ */
|
|
|
+ public void exportNormalOrders (List < Order > orderList,
|
|
|
+ HttpServletResponse response,
|
|
|
+ String fileName){
|
|
|
+ // 设置响应头
|
|
|
+ ExportUtils.setupResponse(response, fileName);
|
|
|
|
|
|
- try (Workbook workbook = new XSSFWorkbook()) {
|
|
|
- // 创建Sheet
|
|
|
- Sheet sheet = workbook.createSheet("正常订单");
|
|
|
+ try (Workbook workbook = new XSSFWorkbook()) {
|
|
|
+ // 创建Sheet
|
|
|
+ Sheet sheet = workbook.createSheet("正常订单");
|
|
|
|
|
|
- // 设置列宽
|
|
|
- setupColumnWidth(sheet);
|
|
|
+ // 设置列宽
|
|
|
+ setupColumnWidth(sheet);
|
|
|
|
|
|
- // 创建表头样式
|
|
|
- CellStyle headerStyle = ExportUtils.createHeaderStyle(workbook);
|
|
|
+ // 创建表头样式
|
|
|
+ CellStyle headerStyle = ExportUtils.createHeaderStyle(workbook);
|
|
|
|
|
|
- // 创建数据样式
|
|
|
- CellStyle dataStyle = ExportUtils.createDataStyle(workbook);
|
|
|
- CellStyle numberStyle = ExportUtils.createNumberStyle(workbook);
|
|
|
- CellStyle dateStyle = ExportUtils.createDateStyle(workbook);
|
|
|
+ // 创建数据样式
|
|
|
+ CellStyle dataStyle = ExportUtils.createDataStyle(workbook);
|
|
|
+ CellStyle numberStyle = ExportUtils.createNumberStyle(workbook);
|
|
|
+ CellStyle dateStyle = ExportUtils.createDateStyle(workbook);
|
|
|
|
|
|
|
|
|
- String[] headers = {
|
|
|
- "序号","订单编号", "下单时间", "付款时间", "订单状态", "订单类型",
|
|
|
- "商品名称", "规格", "单价(元)", "数量", "小计(元)",
|
|
|
- "商品总数量", "商品总额(元)", "运费(元)", "积分抵扣(元)",
|
|
|
- "实付金额", "所属企业", "买家姓名", "买家电话"
|
|
|
- };
|
|
|
- // 创建合并单元格的表头
|
|
|
- ExportUtils.createMergedHeader(sheet, headerStyle,"正常订单");
|
|
|
+ String[] headers = {
|
|
|
+ "序号", "订单编号", "下单时间", "付款时间", "订单状态", "订单类型",
|
|
|
+ "商品名称", "规格", "单价(元)", "数量", "小计(元)",
|
|
|
+ "商品总数量", "商品总额(元)", "运费(元)", "积分抵扣(元)",
|
|
|
+ "实付金额", "所属企业", "买家姓名", "买家电话"
|
|
|
+ };
|
|
|
+ // 创建合并单元格的表头
|
|
|
+ ExportUtils.createMergedHeader(sheet, headerStyle, "正常订单");
|
|
|
|
|
|
- // 创建列标题行
|
|
|
- ExportUtils.createColumnHeaders(sheet, headerStyle,headers);
|
|
|
+ // 创建列标题行
|
|
|
+ ExportUtils.createColumnHeaders(sheet, headerStyle, headers);
|
|
|
|
|
|
- // 填充数据
|
|
|
- fillOrderData(sheet, orderList, dataStyle, numberStyle, dateStyle);
|
|
|
+ // 填充数据
|
|
|
+ fillOrderData(sheet, orderList, dataStyle, numberStyle, dateStyle);
|
|
|
|
|
|
- // 写入响应流
|
|
|
- workbook.write(response.getOutputStream());
|
|
|
- response.getOutputStream().flush();
|
|
|
+ // 写入响应流
|
|
|
+ workbook.write(response.getOutputStream());
|
|
|
+ response.getOutputStream().flush();
|
|
|
|
|
|
- log.info("订单导出成功,文件:{},记录数:{}", fileName, orderList.size());
|
|
|
+ log.info("订单导出成功,文件:{},记录数:{}", fileName, orderList.size());
|
|
|
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("订单导出失败", e);
|
|
|
- throw new RuntimeException("导出失败:" + e.getMessage());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("订单导出失败", e);
|
|
|
+ throw new RuntimeException("导出失败:" + e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- * 设置列宽
|
|
|
- */
|
|
|
- private void setupColumnWidth(Sheet sheet) {
|
|
|
- // 根据模板设置列宽(单位:1/256字符宽度)
|
|
|
- sheet.setColumnWidth(0, 12 * 256); // 序号
|
|
|
- sheet.setColumnWidth(1, 12 * 256); // 订单编号
|
|
|
- sheet.setColumnWidth(2, 18 * 256); // 下单时间
|
|
|
- sheet.setColumnWidth(3, 18 * 256); // 付款时间
|
|
|
- sheet.setColumnWidth(4, 10 * 256); // 订单状态
|
|
|
- sheet.setColumnWidth(5, 8 * 256); // 订单类型
|
|
|
- sheet.setColumnWidth(6, 25 * 256); // 商品名称
|
|
|
- sheet.setColumnWidth(7, 20 * 256); // 规格
|
|
|
- sheet.setColumnWidth(8, 10 * 256); // 单价
|
|
|
- sheet.setColumnWidth(9, 8 * 256); // 数量
|
|
|
- sheet.setColumnWidth(10, 10 * 256); // 小计
|
|
|
- sheet.setColumnWidth(11, 12 * 256); // 商品总数量
|
|
|
- sheet.setColumnWidth(12, 12 * 256); // 商品总额
|
|
|
- sheet.setColumnWidth(13, 8 * 256); // 运费
|
|
|
- sheet.setColumnWidth(14, 12 * 256); // 积分抵扣
|
|
|
- sheet.setColumnWidth(15, 10 * 256); // 实付金额
|
|
|
- sheet.setColumnWidth(16, 15 * 256); // 所属企业
|
|
|
- sheet.setColumnWidth(17, 10 * 256); // 买家姓名
|
|
|
- sheet.setColumnWidth(18, 15 * 256); // 买家电话
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 设置列宽
|
|
|
+ */
|
|
|
+ private void setupColumnWidth (Sheet sheet){
|
|
|
+ // 根据模板设置列宽(单位:1/256字符宽度)
|
|
|
+ sheet.setColumnWidth(0, 12 * 256); // 序号
|
|
|
+ sheet.setColumnWidth(1, 12 * 256); // 订单编号
|
|
|
+ sheet.setColumnWidth(2, 18 * 256); // 下单时间
|
|
|
+ sheet.setColumnWidth(3, 18 * 256); // 付款时间
|
|
|
+ sheet.setColumnWidth(4, 10 * 256); // 订单状态
|
|
|
+ sheet.setColumnWidth(5, 8 * 256); // 订单类型
|
|
|
+ sheet.setColumnWidth(6, 25 * 256); // 商品名称
|
|
|
+ sheet.setColumnWidth(7, 20 * 256); // 规格
|
|
|
+ sheet.setColumnWidth(8, 10 * 256); // 单价
|
|
|
+ sheet.setColumnWidth(9, 8 * 256); // 数量
|
|
|
+ sheet.setColumnWidth(10, 10 * 256); // 小计
|
|
|
+ sheet.setColumnWidth(11, 12 * 256); // 商品总数量
|
|
|
+ sheet.setColumnWidth(12, 12 * 256); // 商品总额
|
|
|
+ sheet.setColumnWidth(13, 8 * 256); // 运费
|
|
|
+ sheet.setColumnWidth(14, 12 * 256); // 积分抵扣
|
|
|
+ sheet.setColumnWidth(15, 10 * 256); // 实付金额
|
|
|
+ sheet.setColumnWidth(16, 15 * 256); // 所属企业
|
|
|
+ sheet.setColumnWidth(17, 10 * 256); // 买家姓名
|
|
|
+ sheet.setColumnWidth(18, 15 * 256); // 买家电话
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 填充订单数据
|
|
|
+ */
|
|
|
+ private void fillOrderData (Sheet sheet, List < Order > orderList,
|
|
|
+ CellStyle dataStyle, CellStyle numberStyle, CellStyle dateStyle){
|
|
|
+ int rowNum = 2; // 从第3行开始(0-based索引)
|
|
|
+ int indexNum = 1; //序号
|
|
|
+ for (Order order : orderList) {
|
|
|
+ Row row = sheet.createRow(rowNum++);
|
|
|
+ row.setHeightInPoints(18);
|
|
|
+ // 订单编号
|
|
|
+ ExportUtils.createCell(sheet, row, 0, order.getOrderItems().size(), rowNum, indexNum, dataStyle);
|
|
|
+ fillOrderRowData(sheet, rowNum, row, order, dataStyle, numberStyle, dateStyle);
|
|
|
+ rowNum += order.getOrderItems().size() - 1;
|
|
|
+ indexNum++;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 填充订单数据
|
|
|
- */
|
|
|
- private void fillOrderData(Sheet sheet, List<Order> orderList,
|
|
|
- CellStyle dataStyle, CellStyle numberStyle, CellStyle dateStyle) {
|
|
|
- int rowNum = 2; // 从第3行开始(0-based索引)
|
|
|
- int indexNum= 1; //序号
|
|
|
- for (Order order : orderList) {
|
|
|
- Row row = sheet.createRow(rowNum++);
|
|
|
- row.setHeightInPoints(18);
|
|
|
- // 订单编号
|
|
|
- ExportUtils.createCell(sheet,row, 0,order.getOrderItems().size(),rowNum, indexNum, dataStyle);
|
|
|
- fillOrderRowData(sheet,rowNum,row, order, dataStyle, numberStyle, dateStyle);
|
|
|
- rowNum+=order.getOrderItems().size()-1;
|
|
|
- indexNum++;
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 填充单行订单数据
|
|
|
+ */
|
|
|
+ private void fillOrderRowData (Sheet sheet,int rowNum, Row row, Order order,
|
|
|
+ CellStyle dataStyle, CellStyle numberStyle, CellStyle dateStyle){
|
|
|
|
|
|
- /**
|
|
|
- * 填充单行订单数据
|
|
|
- */
|
|
|
- private void fillOrderRowData(Sheet sheet,int rowNum,Row row, Order order,
|
|
|
- CellStyle dataStyle, CellStyle numberStyle, CellStyle dateStyle) {
|
|
|
+ // 订单编号
|
|
|
+ ExportUtils.createCell(sheet, row, 1, order.getOrderItems().size(), rowNum, order.getOrderNumber(), dataStyle);
|
|
|
|
|
|
- // 订单编号
|
|
|
- ExportUtils.createCell(sheet,row, 1,order.getOrderItems().size(),rowNum, order.getOrderNumber(), dataStyle);
|
|
|
+ // 下单时间
|
|
|
+ ExportUtils.createCell(sheet, row, 2, order.getOrderItems().size(), rowNum, ExportUtils.formatDate(order.getCreateTime()), dateStyle);
|
|
|
|
|
|
- // 下单时间
|
|
|
- ExportUtils.createCell(sheet,row, 2,order.getOrderItems().size(),rowNum, ExportUtils.formatDate(order.getCreateTime()), dateStyle);
|
|
|
+ // 付款时间
|
|
|
+ ExportUtils.createCell(sheet, row, 3, order.getOrderItems().size(), rowNum, ExportUtils.formatDate(order.getPayTime()), dateStyle);
|
|
|
|
|
|
- // 付款时间
|
|
|
- ExportUtils.createCell(sheet,row, 3,order.getOrderItems().size(),rowNum, ExportUtils.formatDate(order.getPayTime()), dateStyle);
|
|
|
+ // 订单状态
|
|
|
+ ExportUtils.createCell(sheet, row, 4, order.getOrderItems().size(), rowNum, getHbOrderStatus(order.getHbOrderStatus()), dataStyle);
|
|
|
|
|
|
- // 订单状态
|
|
|
- ExportUtils.createCell(sheet,row, 4,order.getOrderItems().size(),rowNum,getHbOrderStatus(order.getHbOrderStatus()), dataStyle);
|
|
|
+ // 订单类型
|
|
|
+ ExportUtils.createCell(sheet, row, 5, order.getOrderItems().size(), rowNum, getDvyType(order.getDvyType()), dataStyle);
|
|
|
+ // 商品明细行(每个订单项一行)
|
|
|
+ fillOrderItems(sheet, rowNum, row, order, dataStyle, numberStyle);
|
|
|
|
|
|
- // 订单类型
|
|
|
- ExportUtils.createCell(sheet,row, 5,order.getOrderItems().size(),rowNum, getDvyType(order.getDvyType()), dataStyle);
|
|
|
- // 商品明细行(每个订单项一行)
|
|
|
- fillOrderItems(sheet, rowNum, row, order, dataStyle, numberStyle);
|
|
|
+ // 商品总数量
|
|
|
+ ExportUtils.createCell(sheet, row, 11, order.getOrderItems().size(), rowNum, order.getProductNums(), dataStyle);
|
|
|
|
|
|
- // 商品总数量
|
|
|
- ExportUtils.createCell(sheet,row, 11,order.getOrderItems().size(),rowNum, order.getProductNums(), dataStyle);
|
|
|
+ // 商品总额(元)
|
|
|
+ ExportUtils.createCell(sheet, row, 12, order.getOrderItems().size(), rowNum, order.getTotal(), numberStyle);
|
|
|
|
|
|
- // 商品总额(元)
|
|
|
- ExportUtils.createCell(sheet,row, 12,order.getOrderItems().size(),rowNum, order.getTotal(), numberStyle);
|
|
|
+ // 运费(元)
|
|
|
+ ExportUtils.createCell(sheet, row, 13, order.getOrderItems().size(), rowNum, order.getFreightAmount(), numberStyle);
|
|
|
|
|
|
- // 运费(元)
|
|
|
- ExportUtils.createCell(sheet,row, 13,order.getOrderItems().size(),rowNum, order.getFreightAmount(), numberStyle);
|
|
|
+ // 积分抵扣(元) - 显示为负数
|
|
|
+ ExportUtils.createCell(sheet, row, 14, order.getOrderItems().size(), rowNum, "-" + (order.getOffsetPoints() == null ? 0 : Arith.div(Double.valueOf(order.getOffsetPoints()), 100)), numberStyle);
|
|
|
|
|
|
- // 积分抵扣(元) - 显示为负数
|
|
|
- ExportUtils.createCell(sheet,row,14,order.getOrderItems().size(),rowNum,"-"+(order.getOffsetPoints()==null?0:Arith.div(Double.valueOf(order.getOffsetPoints()), 100)), numberStyle);
|
|
|
+ // 实付金额
|
|
|
+ ExportUtils.createCell(sheet, row, 15, order.getOrderItems().size(), rowNum, order.getActualTotal(), numberStyle);
|
|
|
|
|
|
- // 实付金额
|
|
|
- ExportUtils.createCell(sheet,row, 15,order.getOrderItems().size(),rowNum, order.getActualTotal(), numberStyle);
|
|
|
+ // 所属企业
|
|
|
+ ExportUtils.createCell(sheet, row, 16, order.getOrderItems().size(), rowNum, order.getChannelName(), dataStyle);
|
|
|
|
|
|
- // 所属企业
|
|
|
- ExportUtils.createCell(sheet,row, 16,order.getOrderItems().size(),rowNum, order.getChannelName(), dataStyle);
|
|
|
+ // 买家姓名
|
|
|
+ ExportUtils.createCell(sheet, row, 17, order.getOrderItems().size(), rowNum, order.getReceiver(), dataStyle);
|
|
|
|
|
|
- // 买家姓名
|
|
|
- ExportUtils.createCell(sheet,row, 17,order.getOrderItems().size(),rowNum, order.getReceiver(), dataStyle);
|
|
|
+ // 买家电话
|
|
|
+ ExportUtils.createCell(sheet, row, 18, order.getOrderItems().size(), rowNum, order.getUserMobile(), dataStyle);
|
|
|
+ }
|
|
|
|
|
|
- // 买家电话
|
|
|
- ExportUtils.createCell(sheet,row, 18,order.getOrderItems().size(),rowNum, order.getUserMobile(), dataStyle);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 填充订单项明细
|
|
|
- */
|
|
|
- private void fillOrderItems(Sheet sheet, int rowNum, Row row, Order order,
|
|
|
- CellStyle dataStyle, CellStyle numberStyle) {
|
|
|
- int itemSize = order.getOrderItems().size();
|
|
|
+ /**
|
|
|
+ * 填充订单项明细
|
|
|
+ */
|
|
|
+ private void fillOrderItems (Sheet sheet,int rowNum, Row row, Order order,
|
|
|
+ CellStyle dataStyle, CellStyle numberStyle){
|
|
|
+ int itemSize = order.getOrderItems().size();
|
|
|
|
|
|
- for (int i = 0; i < itemSize; i++) {
|
|
|
- Row currentRow = (i < 1) ? row : sheet.createRow(rowNum + (i-1));
|
|
|
- OrderItem item = order.getOrderItems().get(i);
|
|
|
+ for (int i = 0; i < itemSize; i++) {
|
|
|
+ Row currentRow = (i < 1) ? row : sheet.createRow(rowNum + (i - 1));
|
|
|
+ OrderItem item = order.getOrderItems().get(i);
|
|
|
|
|
|
- // 商品名称
|
|
|
- ExportUtils.createCell(sheet, currentRow, 6, 0, rowNum, item.getProdName(), dataStyle);
|
|
|
+ // 商品名称
|
|
|
+ ExportUtils.createCell(sheet, currentRow, 6, 0, rowNum, item.getProdName(), dataStyle);
|
|
|
|
|
|
- // 规格
|
|
|
- ExportUtils.createCell(sheet, currentRow, 7, 0, rowNum, item.getSpec(), dataStyle);
|
|
|
+ // 规格
|
|
|
+ ExportUtils.createCell(sheet, currentRow, 7, 0, rowNum, item.getSpec(), dataStyle);
|
|
|
|
|
|
- // 单价(元)
|
|
|
- ExportUtils.createCell(sheet, currentRow, 8, 0, rowNum, item.getPrice(), numberStyle);
|
|
|
+ // 单价(元)
|
|
|
+ ExportUtils.createCell(sheet, currentRow, 8, 0, rowNum, item.getPrice(), numberStyle);
|
|
|
|
|
|
- // 数量
|
|
|
- ExportUtils.createCell(sheet, currentRow, 9, 0, rowNum, item.getProdCount(), dataStyle);
|
|
|
+ // 数量
|
|
|
+ ExportUtils.createCell(sheet, currentRow, 9, 0, rowNum, item.getProdCount(), dataStyle);
|
|
|
|
|
|
- // 小计(元)
|
|
|
- ExportUtils.createCell(sheet, currentRow, 10, 0, rowNum, item.getProductTotalAmount(), numberStyle);
|
|
|
+ // 小计(元)
|
|
|
+ ExportUtils.createCell(sheet, currentRow, 10, 0, rowNum, item.getProductTotalAmount(), numberStyle);
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- *海博订单状态
|
|
|
- * @param status
|
|
|
- * @return
|
|
|
- */
|
|
|
- private String getHbOrderStatus(Integer status) {
|
|
|
- switch (status) {
|
|
|
- case 0: return "待支付";
|
|
|
- case 1: return "待发货";
|
|
|
- case 20: return "待收货";
|
|
|
- case 30: return "待收货";
|
|
|
- case 40: return "待收货";
|
|
|
- case 50: return "订单取消待审核";
|
|
|
- case 60: return "订单取消";
|
|
|
- case 70: return "待收货";
|
|
|
- case 80: return "订单完成";
|
|
|
- default: return "未知状态";
|
|
|
+ /**
|
|
|
+ * 海博订单状态
|
|
|
+ *
|
|
|
+ * @param status
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String getHbOrderStatus (Integer status){
|
|
|
+ switch (status) {
|
|
|
+ case 0:
|
|
|
+ return "待支付";
|
|
|
+ case 1:
|
|
|
+ return "待发货";
|
|
|
+ case 20:
|
|
|
+ return "待收货";
|
|
|
+ case 30:
|
|
|
+ return "待收货";
|
|
|
+ case 40:
|
|
|
+ return "待收货";
|
|
|
+ case 50:
|
|
|
+ return "订单取消待审核";
|
|
|
+ case 60:
|
|
|
+ return "订单取消";
|
|
|
+ case 70:
|
|
|
+ return "待收货";
|
|
|
+ case 80:
|
|
|
+ return "订单完成";
|
|
|
+ default:
|
|
|
+ return "未知状态";
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- * 订单类型
|
|
|
- * @param dvyType
|
|
|
- * @return
|
|
|
- */
|
|
|
- private String getDvyType(Integer dvyType) {
|
|
|
- switch (dvyType) {
|
|
|
- case 1: return "快递";
|
|
|
- case 2: return "自提";
|
|
|
- case 3: return "及时配送";
|
|
|
- default: return "未知类型";
|
|
|
+ /**
|
|
|
+ * 订单类型
|
|
|
+ *
|
|
|
+ * @param dvyType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String getDvyType (Integer dvyType){
|
|
|
+ switch (dvyType) {
|
|
|
+ case 1:
|
|
|
+ return "快递";
|
|
|
+ case 2:
|
|
|
+ return "自提";
|
|
|
+ case 3:
|
|
|
+ return "及时配送";
|
|
|
+ default:
|
|
|
+ return "未知类型";
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
-}
|
|
|
+ }
|