陶杰
2024-12-31 dc885d07f9f62c60ac90dbd0c44c5fdbb0b00486
src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -44,7 +44,6 @@
import com.mzl.flower.mapper.supplier.StationMapper;
import com.mzl.flower.mapper.system.UserWechatMapper;
import com.mzl.flower.mapper.warehouse.WarehouseLocationMapper;
import com.mzl.flower.pay.SybPayService;
import com.mzl.flower.service.BaseService;
import com.mzl.flower.service.comment.FlowerCommentService;
import com.mzl.flower.service.coupon.CouponRecordService;
@@ -100,9 +99,6 @@
    @Autowired
    private UserPaymentV3Service paymentV3Service;
    @Autowired
    private UserPaymentSybService paymentSybService;
    @Autowired
    private SequenceNo sequenceNo;
@@ -499,6 +495,19 @@
        usePointGoods(order.getId(), goodsRecordIdList);//使用积分商品兑换券
        order.create(userId);
        // 根据当前的时间判断,如果时间大于当天的下午17:00 ,那么日期则为下一天的日期,否则为当天日期
        if(null!=order.getCreateTime()){
            LocalDateTime createDateTime = order.getCreateTime();
            LocalDate createDate = createDateTime.toLocalDate();
            LocalDateTime today1700 = createDateTime.with(LocalTime.of(17, 0));
            // 比较时间是否大于当天的 17:00
            if (createDateTime.isAfter(today1700)) {
                // 如果大于 17:00,设置为下一天的日期
                createDate = createDate.plusDays(1);
            }
            order.setCreateDateSta(createDate);
        }
//        order.setCreateDate();
        order.setRemarks(dto.getRemarks());
        order.setSpecialNeeds(dto.getSpecialNeeds());
        order.setStatusBackend(Constants.ORDER_STATUS_BACKEND.PENDING.name());
@@ -532,7 +541,7 @@
        }
        totalAmount = totalAmount.add(p.getPacking()).add(transportFee);
        if(totalAmount.doubleValue() <= 0){//假如总价小于等于0,则支付0.01元
            totalAmount = new BigDecimal(0.01);
            totalAmount = new BigDecimal("0.01");
        }
        order.setTotalAmount(totalAmount);
@@ -624,9 +633,8 @@
            }
        }
        Map map = paymentSybService.prepay(order);
        Map map = paymentV3Service.wxPrepay(order);
        map.put("_testV2OrderId", order.getId());
        return map;
    }
@@ -926,6 +934,10 @@
                orderIds.add(o.getId());
                OrderPlatformListDTO p = new OrderPlatformListDTO();
                //增加订单扎数
                Integer sumNumByOrderId = orderItemMapper.getSumNumByOrderId(o.getId());
                o.setSaleNum(sumNumByOrderId);
                BeanUtils.copyProperties(o, p);
                result.add(p);
            }
@@ -1471,7 +1483,7 @@
        transferId = "NoNeedRefund";
        if (deductAmount.doubleValue() > 0) {
            transferId = paymentSybService.refundOrderSub(o, deductAmount);
            transferId = paymentV3Service.refundOrderSub(o, deductAmount);
        }
        o.setTransferId(transferId);
        orderMapper.updateById(o);
@@ -1492,7 +1504,7 @@
        }
        BigDecimal amount = dto.getAmount();
        transferId = paymentSybService.refundOrderSub(o, amount);
        transferId = paymentV3Service.refundOrderSub(o, amount);
        o.setTransferId(transferId);
        o.setTransferTime(LocalDateTime.now());
        o.update(SecurityUtils.getUserId());
@@ -1757,7 +1769,7 @@
    public void exportOrderDetail(HttpServletResponse response, OrderQueryDTO dto) {
        List<OrderListExportDTO> ls = getOrderExportListBase( dto);
        String[] rowsName = new String[]{"序号","订单号", "用户账号", "收货人", "收货人电话", "收货地址", "订单金额"
                , "底价", "订单状态", "下单时间", "合伙人", "库位", "特殊需求", "备注"};
                , "底价","销售扎数", "订单状态", "下单时间", "合伙人", "库位", "特殊需求", "备注"};
        List<Object[]> dataList = new ArrayList<>();
        int sn = 1;
        for (OrderListExportDTO o : ls) {
@@ -1771,6 +1783,7 @@
            objs[a++] = o.getCustomerAddress();
            objs[a++] = o.getTotalAmount();
            objs[a++] = o.getSupplierAmount();
            objs[a++] = o.getSaleNum();
            objs[a++] = o.getStatusBackendStr();
            objs[a++] = o.getCreateTime();
            objs[a++] = o.getPartnerName();
@@ -1798,4 +1811,41 @@
        exportOrderDetail(response, dto);
    }
    public void refreshDate() {
       List<Order> allOrderList= orderMapper.selectAllDateList();
        allOrderList.forEach(order -> {
            orderMapper.updatePaymentCreateDate(order);
        });
    }
    public List<OrderStatusCountDTO> getAbnormalOrderStatusCount(OrderQueryDTO dto) {
         dto.setStartDate(parseLocalDateTime(dto.getStartDateStr(), true));
        dto.setEndDate(parseLocalDateTime(dto.getEndDateStr(), false));
        dto.setCreateStartDate(parseLocalDateTime(dto.getCreateStartDateStr(), 17, 0, 0, -1));
        dto.setCreateEndDate(parseLocalDateTime(dto.getCreateEndDateStr(), 17, 0, 0, 0));
        List<CodeValueDTO> ls = codeService.searchValue("ABNORMAL_ORDER_STATUS");
        List<OrderStatusCountDTO> ll = orderMapper.getAbnormalOrderStatusCount(dto);
        Map<String, Integer> llMap = new HashMap<>();
        if (ll != null && ll.size() > 0) {
            for (OrderStatusCountDTO c : ll) {
                llMap.put(c.getValue(), c.getOrderCount());
            }
        }
        List<OrderStatusCountDTO> rr = new ArrayList<>();
        for (CodeValueDTO c : ls) {
            OrderStatusCountDTO r = new OrderStatusCountDTO();
            r.setValue(c.getValue());
            r.setLabel(c.getLabel());
            Integer count = llMap.get(r.getValue());
            r.setOrderCount(count == null ? 0 : count);
            rr.add(r);
        }
        return rr;
    }
}