| | |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.model.TVipOrder; |
| | | import com.ruoyi.order.api.model.TVipOrderRefund; |
| | | import com.ruoyi.order.api.query.ChargingOrderQuery; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.api.query.VipShoppingOrderQuery; |
| | | import com.ruoyi.order.api.vo.ChargingOrderVO; |
| | | import com.ruoyi.order.dto.TEnterpriseExport; |
| | | import com.ruoyi.order.export.EnterpriseChargingDetailExport; |
| | | import com.ruoyi.order.export.TVipOrderExport; |
| | | import com.ruoyi.order.service.TChargingOrderService; |
| | | import com.ruoyi.order.service.TVipOrderRefundService; |
| | | import com.ruoyi.order.service.TVipOrderService; |
| | | import com.ruoyi.other.api.domain.TEnterpriseUserApplication; |
| | |
| | | private OtherClient otherClient; |
| | | @Resource |
| | | private TVipOrderRefundService vipOrderRefundService; |
| | | @Resource |
| | | private TChargingOrderService chargingOrderService; |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | @RequiresPermissions(value = {"/vipList", "/vipList/export"}, logical = Logical.OR) |
| | | @ApiOperation(tags = {"管理后台-会员列表"}, value = "导出会员充值订单") |
| | | @ApiOperation(tags = {"管理后台-会员列表"}, value = "导出会员充电订单") |
| | | @PutMapping(value = "/exportVipOrderByVipUser") |
| | | @Log(title = "会员列表导出会员充值订单", businessType = BusinessType.EXPORT) |
| | | @Log(title = "会员列表导出会员充电订单", businessType = BusinessType.EXPORT) |
| | | public void exportVipOrderByVipUser(@RequestBody UserListQueryDto query) { |
| | | List<Long> userIds = appUserClient.getVipUserIds(query).getData(); |
| | | if (userIds == null || userIds.isEmpty()) { |
| | | writeVipOrderWorkbook(new ArrayList<>()); |
| | | writeVipChargingOrderWorkbook(new ArrayList<>()); |
| | | return; |
| | | } |
| | | VipShoppingOrderQuery orderQuery = new VipShoppingOrderQuery(); |
| | | ChargingOrderQuery orderQuery = new ChargingOrderQuery(); |
| | | orderQuery.setUserIds(userIds); |
| | | if (query != null) { |
| | | orderQuery.setVipId(query.getVipTypeId()); |
| | | } |
| | | orderQuery.setPageCurr(1); |
| | | orderQuery.setPageSize(100000); |
| | | List<TVipOrder> list = vipOrderService.pageList(orderQuery).getRecords(); |
| | | List<TVipOrderExport> exports = new ArrayList<>(); |
| | | for (TVipOrder vipOrder : list) { |
| | | TVipOrderExport export = new TVipOrderExport(); |
| | | BeanUtils.copyProperties(vipOrder, export); |
| | | export.setCreateTime(DateUtils.localDateTimeToString(vipOrder.getCreateTime())); |
| | | List<ChargingOrderVO> list = chargingOrderService.chargingOrderList(orderQuery).getRecords(); |
| | | List<EnterpriseChargingDetailExport> exports = new ArrayList<>(); |
| | | for (ChargingOrderVO order : list) { |
| | | EnterpriseChargingDetailExport export = new EnterpriseChargingDetailExport(); |
| | | export.setCode(order.getCode()); |
| | | export.setOrderType(Integer.valueOf(1).equals(order.getOrderType()) ? "小程序" : "刷卡"); |
| | | export.setOrderClassification("充电订单"); |
| | | export.setSiteName(order.getSiteName()); |
| | | export.setTerminalName(order.getTerminalName()); |
| | | export.setStatus(getChargingOrderStatus(order.getStatus())); |
| | | export.setChargingSecond(order.getChargingSecond()); |
| | | export.setTotalAmount(order.getOrderAmount()); |
| | | export.setCouponDiscountAmount(order.getCouponDiscountAmount()); |
| | | export.setVipDiscountAmount(order.getVipDiscountAmount()); |
| | | export.setPaymentAmount(order.getPaymentAmount()); |
| | | export.setRefundAmount(order.getRefundAmount()); |
| | | export.setPhone(order.getPhone()); |
| | | export.setOrderSource(getChargingOrderSource(order.getOrderSource())); |
| | | export.setStartTime(DateUtils.localDateTimeToString(order.getStartTime())); |
| | | export.setEndTime(DateUtils.localDateTimeToString(order.getEndTime())); |
| | | exports.add(export); |
| | | } |
| | | writeVipOrderWorkbook(exports); |
| | | writeVipChargingOrderWorkbook(exports); |
| | | } |
| | | |
| | | private String getChargingOrderStatus(Integer status) { |
| | | if (status == null) return "未知"; |
| | | String[] names = {"未知", "等待中", "启动中", "充电中", "停止中", "已结束"}; |
| | | return status >= 0 && status < names.length ? names[status] : "未知"; |
| | | } |
| | | |
| | | private String getChargingOrderSource(Integer source) { |
| | | if (Integer.valueOf(1).equals(source)) return "明星充电"; |
| | | if (Integer.valueOf(2).equals(source)) return "快电"; |
| | | if (Integer.valueOf(3).equals(source)) return "新电途"; |
| | | return ""; |
| | | } |
| | | |
| | | private void writeVipChargingOrderWorkbook(List<EnterpriseChargingDetailExport> exports) { |
| | | Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), EnterpriseChargingDetailExport.class, exports); |
| | | writeWorkbook(workbook, "会员充电订单导出.xls"); |
| | | } |
| | | |
| | | private void writeVipOrderWorkbook(List<TVipOrderExport> exports) { |
| | | Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TVipOrderExport.class, exports); |
| | | writeWorkbook(workbook, "会员订单导出.xls"); |
| | | } |
| | | |
| | | private void writeWorkbook(Workbook workbook, String exportFileName) { |
| | | HttpServletResponse response = WebUtils.response(); |
| | | response.setCharacterEncoding("utf-8"); |
| | | ServletOutputStream outputStream = null; |
| | | try { |
| | | String fileName = URLEncoder.encode("会员订单导出.xls", "utf-8"); |
| | | String fileName = URLEncoder.encode(exportFileName, "utf-8"); |
| | | response.setHeader("Content-Disposition", "attachment;filename=" + fileName); |
| | | response.setContentType("application/vnd.ms-excel;charset=UTF-8"); |
| | | response.setHeader("Pragma", "no-cache"); |