|
@@ -3,20 +3,25 @@ package com.qs.mp.web.controller.api.admin;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.qs.mp.admin.domain.excel.UserTicketOrderExcel;
|
|
|
+import com.qs.mp.admin.domain.excel.UserTicketOrderItemExcel;
|
|
|
import com.qs.mp.admin.domain.param.UserTicketOrderQueryParam;
|
|
|
import com.qs.mp.admin.domain.vo.UserTicketOrderDetailVO;
|
|
|
+import com.qs.mp.admin.domain.vo.UserTicketOrderItemVO;
|
|
|
import com.qs.mp.admin.domain.vo.UserTicketOrderListVO;
|
|
|
import com.qs.mp.common.annotation.Log;
|
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
|
import com.qs.mp.common.enums.BusinessType;
|
|
|
import com.qs.mp.common.enums.PayOrderStatusEnum;
|
|
|
+import com.qs.mp.common.enums.TicketPrizeTypeEnum;
|
|
|
import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
|
|
|
import com.qs.mp.common.utils.StringUtils;
|
|
|
import com.qs.mp.user.domain.UserTicketOrder;
|
|
|
+import com.qs.mp.user.domain.UserTicketOrderItem;
|
|
|
import com.qs.mp.user.domain.excel.DeliverOrderExcel;
|
|
|
import com.qs.mp.user.domain.vo.UserDeliverOrderItemVO;
|
|
|
import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
|
|
|
+import com.qs.mp.user.service.IUserTicketOrderItemService;
|
|
|
import com.qs.mp.user.service.IUserTicketOrderService;
|
|
|
import com.qs.mp.utils.ExcelUtil;
|
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
@@ -49,6 +54,10 @@ public class UserTicketOrderMgrController extends BaseApiController {
|
|
|
@Autowired
|
|
|
private IUserTicketOrderService userTicketOrderService;
|
|
|
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IUserTicketOrderItemService userTicketOrderItemService;
|
|
|
+
|
|
|
@PostMapping("/list")
|
|
|
@PreAuthorize("@ss.hasPermi('order:userTicket:list')")
|
|
|
@ApiOperation("用户盲票订单列表")
|
|
@@ -164,4 +173,83 @@ public class UserTicketOrderMgrController extends BaseApiController {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Log(title = "销售订单盲票导出", businessType = BusinessType.EXPORT)
|
|
|
+ @PostMapping("/ticket/export")
|
|
|
+ @PreAuthorize("@ss.hasPermi('order:userTicket:ticketExport')")
|
|
|
+ @ApiOperation("销售订单盲票导出")
|
|
|
+ public AjaxResult ticketExport(@RequestBody UserTicketOrderQueryParam userTicketOrderQueryParam) {
|
|
|
+ QueryWrapper<UserTicketOrderItem> queryWrapper = new QueryWrapper<>();
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderQueryParam.getBoxTitle())) {
|
|
|
+ queryWrapper.like("t2.title", userTicketOrderQueryParam.getBoxTitle());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getBoxType())) {
|
|
|
+ queryWrapper.eq("t2.resource", userTicketOrderQueryParam.getBoxType());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderQueryParam.getPhone())) {
|
|
|
+ queryWrapper.eq("t8.phonenumber", userTicketOrderQueryParam.getPhone());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getStatus())) {
|
|
|
+ queryWrapper.eq("t2.status", userTicketOrderQueryParam.getStatus());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getStartTime()) && Objects.nonNull(userTicketOrderQueryParam.getEndTime())) {
|
|
|
+ queryWrapper.between("t2.created_time", userTicketOrderQueryParam.getStartTime(), userTicketOrderQueryParam.getEndTime());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getChannelId()) && userTicketOrderQueryParam.getChannelId() != 0) {
|
|
|
+ queryWrapper.eq("t2.channel_id", userTicketOrderQueryParam.getChannelId());
|
|
|
+ }
|
|
|
+ queryWrapper.orderByDesc("t2.created_time");
|
|
|
+
|
|
|
+ int totalSize = userTicketOrderItemService.countUserTicketOrderItem(queryWrapper);
|
|
|
+ if (totalSize == 0) {
|
|
|
+ return AjaxResult.error("没有符合条件的用户订单");
|
|
|
+ }
|
|
|
+
|
|
|
+ int pageSize = 2000;
|
|
|
+ List<UserTicketOrderItemVO> userTicketOrderItemVOList = new ArrayList<>();
|
|
|
+ if (totalSize > pageSize) {
|
|
|
+ int totalPage = totalSize % pageSize == 0 ? totalSize / pageSize : totalSize / pageSize + 1;
|
|
|
+ for (int i = 0; i < totalPage; i++) {
|
|
|
+ queryWrapper.last("limit " + (i * pageSize) + ", " + pageSize);
|
|
|
+ List<UserTicketOrderItemVO> list = userTicketOrderItemService.listUserTicketOrderItem(queryWrapper);
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ userTicketOrderItemVOList.addAll(list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ userTicketOrderItemVOList = userTicketOrderItemService.listUserTicketOrderItem(queryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<UserTicketOrderItemExcel> excelList = userTicketOrderItemVOList.stream().map(userTicketOrderItemVO -> {
|
|
|
+ UserTicketOrderItemExcel userTicketOrderItemExcel = new UserTicketOrderItemExcel();
|
|
|
+ BeanUtils.copyProperties(userTicketOrderItemVO, userTicketOrderItemExcel);
|
|
|
+ if (Objects.nonNull(userTicketOrderItemVO.getSalePrice())) {
|
|
|
+ userTicketOrderItemExcel.setSalePrice(new BigDecimal(userTicketOrderItemVO.getSalePrice()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderItemVO.getTicketType())) {
|
|
|
+ userTicketOrderItemExcel.setTicketType(userTicketOrderItemVO.getTicketType().getDesc());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.nonNull(userTicketOrderItemVO.getTicketStatus())) {
|
|
|
+ userTicketOrderItemExcel.setTicketStatus(userTicketOrderItemVO.getTicketStatus().getDesc());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.nonNull(userTicketOrderItemVO.getOrderStatus())) {
|
|
|
+ userTicketOrderItemExcel.setOrderStatus(userTicketOrderItemVO.getOrderStatus().getDesc());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果为盲豆,拼接盲豆数量
|
|
|
+ if (Objects.nonNull(userTicketOrderItemVO.getPrizeType()) && TicketPrizeTypeEnum.COIN.equals(userTicketOrderItemVO.getPrizeType())) {
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderItemVO.getPrizeName()) && Objects.nonNull(userTicketOrderItemVO.getValue())) {
|
|
|
+ userTicketOrderItemVO.setPrizeName(userTicketOrderItemVO.getPrizeName() + userTicketOrderItemVO.getValue() + "颗");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return userTicketOrderItemExcel;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ ExcelUtil<UserTicketOrderItemExcel> util = new ExcelUtil<>(UserTicketOrderItemExcel.class);
|
|
|
+ return util.exportExcel(excelList, "销售订单盲票导出", false);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|