|
@@ -1,20 +1,36 @@
|
|
|
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.param.UserTicketOrderQueryParam;
|
|
|
import com.qs.mp.admin.domain.vo.UserTicketOrderDetailVO;
|
|
|
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.utils.StringUtils;
|
|
|
+import com.qs.mp.user.domain.UserTicketOrder;
|
|
|
+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.IUserTicketOrderService;
|
|
|
+import com.qs.mp.utils.ExcelUtil;
|
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiResponse;
|
|
|
import io.swagger.annotations.ApiResponses;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author Cup
|
|
@@ -36,7 +52,22 @@ public class UserTicketOrderMgrController extends BaseApiController {
|
|
|
)
|
|
|
public TableDataInfo list(@RequestBody UserTicketOrderQueryParam userTicketOrderQueryParam) {
|
|
|
startPage();
|
|
|
- List<UserTicketOrderListVO> list = userTicketOrderService.listUserTicketOrder(userTicketOrderQueryParam);
|
|
|
+ QueryWrapper<UserTicketOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderQueryParam.getBoxTitle())) {
|
|
|
+ queryWrapper.like("t1.title", userTicketOrderQueryParam.getBoxTitle());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getBoxType())) {
|
|
|
+ queryWrapper.eq("t3.type", userTicketOrderQueryParam.getBoxType());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderQueryParam.getPhone())) {
|
|
|
+ queryWrapper.eq("t2.phonenumber", userTicketOrderQueryParam.getPhone());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getStartTime()) && Objects.nonNull(userTicketOrderQueryParam.getEndTime())) {
|
|
|
+ queryWrapper.between("t1.created_time", userTicketOrderQueryParam.getStartTime(), userTicketOrderQueryParam.getEndTime());
|
|
|
+ }
|
|
|
+ queryWrapper.orderByDesc("t1.created_time");
|
|
|
+
|
|
|
+ List<UserTicketOrderListVO> list = userTicketOrderService.listUserTicketOrder(queryWrapper);
|
|
|
return getDataTable(list);
|
|
|
}
|
|
|
|
|
@@ -50,5 +81,52 @@ public class UserTicketOrderMgrController extends BaseApiController {
|
|
|
return AjaxResult.success(userTicketOrderService.detail(orderId));
|
|
|
}
|
|
|
|
|
|
+// @Log(title = "用户订单导出", businessType = BusinessType.EXPORT)
|
|
|
+ @PostMapping("export")
|
|
|
+ @ApiOperation("用户订单导出")
|
|
|
+ public AjaxResult export(@RequestBody UserTicketOrderQueryParam userTicketOrderQueryParam) {
|
|
|
+ QueryWrapper<UserTicketOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderQueryParam.getBoxTitle())) {
|
|
|
+ queryWrapper.like("t1.title", userTicketOrderQueryParam.getBoxTitle());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getBoxType())) {
|
|
|
+ queryWrapper.eq("t3.type", userTicketOrderQueryParam.getBoxType());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderQueryParam.getPhone())) {
|
|
|
+ queryWrapper.eq("t2.phonenumber", userTicketOrderQueryParam.getPhone());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getStartTime()) && Objects.nonNull(userTicketOrderQueryParam.getEndTime())) {
|
|
|
+ queryWrapper.between("t1.created_time", userTicketOrderQueryParam.getStartTime(), userTicketOrderQueryParam.getEndTime());
|
|
|
+ }
|
|
|
+ queryWrapper.orderByDesc("t1.created_time");
|
|
|
+ int totalSize = userTicketOrderService.countUserTicketOrder(queryWrapper);
|
|
|
+ if (totalSize == 0) {
|
|
|
+ return AjaxResult.error("没有符合条件的用户订单");
|
|
|
+ }
|
|
|
+ int pageSize = 2000;
|
|
|
+ List<UserTicketOrderListVO> userTicketOrderListVOList = 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<UserTicketOrderListVO> list = userTicketOrderService.listUserTicketOrder(queryWrapper);
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ userTicketOrderListVOList.addAll(list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ userTicketOrderListVOList = userTicketOrderService.listUserTicketOrder(queryWrapper);
|
|
|
+ }
|
|
|
+ List<UserTicketOrderExcel> excelList = userTicketOrderListVOList.stream().map(userTicketOrderListVO -> {
|
|
|
+ UserTicketOrderExcel userTicketOrderExcel = new UserTicketOrderExcel();
|
|
|
+ BeanUtils.copyProperties(userTicketOrderListVO, userTicketOrderExcel);
|
|
|
+ userTicketOrderExcel.setBoxType(userTicketOrderListVO.getBoxType().getDesc());
|
|
|
+ return userTicketOrderExcel;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ ExcelUtil<UserTicketOrderExcel> util = new ExcelUtil<>(UserTicketOrderExcel.class);
|
|
|
+ return util.exportExcel(excelList, "用户盲票订单导出", false);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|