cloudroam
2024-09-30 8476ed9710956ebb47a35370fb45184c46017a35
src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -51,6 +51,7 @@
import com.mzl.flower.service.system.CodeService;
import com.mzl.flower.service.system.WeChatService;
import com.mzl.flower.service.transport.TransportService;
import com.mzl.flower.utils.ExcelExportUtil;
import com.mzl.flower.utils.UUIDGenerator;
import com.wechat.pay.java.core.util.GsonUtil;
import io.micrometer.core.instrument.util.StringUtils;
@@ -63,8 +64,10 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -496,7 +499,7 @@
        order.setMemberName(p.getMemberName());
        order.setMemberDiscountType(p.getMemberDiscountType());
        order.setMemberDiscountRatio(p.getMemberDiscountRatio());
        order.setMemberCouponAmount(p.getMemberDiscountAmount());
        order.setMemberDiscountAmount(p.getMemberDiscountAmount());
        order.setFlowerAmount(p.getTotalMemberAmount());//使用会员价总价
        order.setPackingFee(p.getPacking());
@@ -1685,4 +1688,77 @@
        return sb.toString();
    }
    public void operationUpdate(OrderAddressUpdateDTO dto) {
        if (StringUtils.isBlank(dto.getId())) {
            throw new ValidationException("id不能为空");
        }
        Order order = orderMapper.selectById(dto.getId());
        if (ObjectUtils.isEmpty(order)) {
            throw new ValidationException("订单不存在");
        }
        if (StringUtils.isBlank(dto.getCustomerAddress()) || StringUtils.isBlank(dto.getCustomerCity()) || StringUtils.isBlank(dto.getCustomerProvince()) || StringUtils.isBlank(dto.getCustomerRegion())) {
            throw new ValidationException("地址信息不能为空");
        }
        if (StringUtils.isBlank(dto.getCustomerTel())) {
            throw new ValidationException("联系方式不能为空");
        }
        BeanUtils.copyProperties(dto, order);
        order.update(SecurityUtils.getUserId());
        orderMapper.updateById(order);
    }
    private List<OrderListExportDTO> getOrderExportListBase(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<OrderListExportDTO> ls = orderMapper.selectOrderExportList(dto);
        return ls;
    }
    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) {
            Object[] objs = new Object[rowsName.length];
            int a = 0;
            objs[a++] = sn;
            objs[a++] = o.getOrderNo();
            objs[a++] = o.getCreateName();
            objs[a++] = o.getCustomer();
            objs[a++] = o.getCustomerTel();
            objs[a++] = o.getCustomerAddress();
            objs[a++] = o.getTotalAmount();
            objs[a++] = o.getSupplierAmount();
            objs[a++] = o.getStatusBackendStr();
            objs[a++] = o.getCreateTime();
            objs[a++] = o.getPartnerName();
            objs[a++] = o.getWarehouseLocationCode();
            objs[a++] = o.getSpecialNeedsStr();
            objs[a++] = o.getRemarks();
            dataList.add(objs);
            sn++;
        }
        ExcelExportUtil excelExportUtil = new ExcelExportUtil("订单列表", rowsName, dataList, response);
        try {
            response.addHeader("filename", URLEncoder.encode("订单列表.xls", "UTF-8"));
            response.addHeader("Access-Control-Expose-Headers", "filename");
            excelExportUtil.export();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
    }
    public void exportPartnerOrderList(HttpServletResponse response, OrderQueryDTO dto) {
        Partner p = getCurrentPartner();
        dto.setPartnerId(p.getId());
        exportOrderDetail(response, dto);
    }
}