|
@@ -1,13 +1,16 @@
|
|
|
package com.qs.mp.web.controller.api.admin;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.qs.mp.admin.domain.TicketBox;
|
|
|
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.admin.service.ITicketBoxService;
|
|
|
import com.qs.mp.common.annotation.Log;
|
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
@@ -17,6 +20,8 @@ import com.qs.mp.common.enums.TicketPrizeTypeEnum;
|
|
|
import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
|
|
|
import com.qs.mp.common.utils.DateUtils;
|
|
|
import com.qs.mp.common.utils.StringUtils;
|
|
|
+import com.qs.mp.system.domain.SysUser;
|
|
|
+import com.qs.mp.system.service.ISysUserService;
|
|
|
import com.qs.mp.user.domain.UserTicketOrder;
|
|
|
import com.qs.mp.user.domain.UserTicketOrderItem;
|
|
|
import com.qs.mp.user.domain.excel.DeliverOrderExcel;
|
|
@@ -60,6 +65,12 @@ public class UserTicketOrderMgrController extends BaseApiController {
|
|
|
@Autowired
|
|
|
private IUserTicketOrderItemService userTicketOrderItemService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ISysUserService sysUserService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ITicketBoxService ticketBoxService;
|
|
|
+
|
|
|
@PostMapping("/list")
|
|
|
@PreAuthorize("@ss.hasPermi('order:userTicket:list')")
|
|
|
@ApiOperation("用户盲票订单列表")
|
|
@@ -67,31 +78,51 @@ public class UserTicketOrderMgrController extends BaseApiController {
|
|
|
@ApiResponse(code = 200, message = "成功", response = UserTicketOrderListVO.class)
|
|
|
)
|
|
|
public TableDataInfo list(@RequestBody UserTicketOrderQueryParam userTicketOrderQueryParam) {
|
|
|
- startPage();
|
|
|
- QueryWrapper<UserTicketOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+
|
|
|
+ LambdaQueryWrapper<UserTicketOrder> userTicketOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+
|
|
|
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());
|
|
|
+ userTicketOrderLambdaQueryWrapper.like(UserTicketOrder::getTitle, userTicketOrderQueryParam.getBoxTitle());
|
|
|
}
|
|
|
if (Objects.nonNull(userTicketOrderQueryParam.getStatus())) {
|
|
|
- queryWrapper.eq("t1.status", userTicketOrderQueryParam.getStatus());
|
|
|
+ userTicketOrderLambdaQueryWrapper.eq(UserTicketOrder::getStatus, userTicketOrderQueryParam.getStatus());
|
|
|
}
|
|
|
if (Objects.nonNull(userTicketOrderQueryParam.getStartTime()) && Objects.nonNull(userTicketOrderQueryParam.getEndTime())) {
|
|
|
- queryWrapper.between("t1.created_time", userTicketOrderQueryParam.getStartTime(), userTicketOrderQueryParam.getEndTime());
|
|
|
+ userTicketOrderLambdaQueryWrapper.between(UserTicketOrder::getCreatedTime, userTicketOrderQueryParam.getStartTime(), userTicketOrderQueryParam.getEndTime());
|
|
|
}
|
|
|
if (Objects.nonNull(userTicketOrderQueryParam.getChannelId()) && userTicketOrderQueryParam.getChannelId() != 0) {
|
|
|
- queryWrapper.eq("t1.channel_id", userTicketOrderQueryParam.getChannelId());
|
|
|
+ userTicketOrderLambdaQueryWrapper.eq(UserTicketOrder::getChannelId, userTicketOrderQueryParam.getChannelId());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderQueryParam.getPhone())) {
|
|
|
+ SysUser sysUser = sysUserService.selectUserByPhoneNumber(userTicketOrderQueryParam.getPhone());
|
|
|
+ if (sysUser != null) {
|
|
|
+ userTicketOrderLambdaQueryWrapper.eq(UserTicketOrder::getUserId, sysUser.getUserId());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- queryWrapper.orderByDesc("t1.created_time");
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getBoxType())) {
|
|
|
+ List<TicketBox> ticketBoxList = ticketBoxService.list(new LambdaQueryWrapper<TicketBox>().eq(TicketBox::getType, userTicketOrderQueryParam.getBoxType()));
|
|
|
+ if (CollectionUtils.isNotEmpty(ticketBoxList)) {
|
|
|
+ List<String> boxIds = ticketBoxList.stream().map(TicketBox::getBoxId).collect(Collectors.toList());
|
|
|
+ userTicketOrderLambdaQueryWrapper.in(UserTicketOrder::getBoxId, boxIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ userTicketOrderLambdaQueryWrapper.orderByDesc(UserTicketOrder::getCreatedTime);
|
|
|
+
|
|
|
+ startPage();
|
|
|
+ List<UserTicketOrder> userTicketOrderList = userTicketOrderService.list(userTicketOrderLambdaQueryWrapper);
|
|
|
+
|
|
|
|
|
|
- List<UserTicketOrderListVO> list = userTicketOrderService.listUserTicketOrder(queryWrapper);
|
|
|
- return getDataTable(list);
|
|
|
+ if (CollectionUtils.isNotEmpty(userTicketOrderList)) {
|
|
|
+ List<String> orderIds = userTicketOrderList.stream().map(UserTicketOrder::getOrderId).collect(Collectors.toList());
|
|
|
+ QueryWrapper<UserTicketOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.in("t1.order_id",orderIds);
|
|
|
+ queryWrapper.orderByDesc("t1.created_time");
|
|
|
+ List<UserTicketOrderListVO> list = userTicketOrderService.listUserTicketOrder(queryWrapper);
|
|
|
+ return getDataTable(list);
|
|
|
+ }
|
|
|
+ return getDataTable(userTicketOrderList);
|
|
|
}
|
|
|
|
|
|
@PostMapping("/detail/{orderId}")
|
|
@@ -121,44 +152,71 @@ public class UserTicketOrderMgrController extends BaseApiController {
|
|
|
return AjaxResult.error("导出的数据不能超过31天");
|
|
|
}
|
|
|
|
|
|
- QueryWrapper<UserTicketOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+
|
|
|
+
|
|
|
+ LambdaQueryWrapper<UserTicketOrder> userTicketOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+
|
|
|
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());
|
|
|
+ userTicketOrderLambdaQueryWrapper.like(UserTicketOrder::getTitle, userTicketOrderQueryParam.getBoxTitle());
|
|
|
}
|
|
|
if (Objects.nonNull(userTicketOrderQueryParam.getStatus())) {
|
|
|
- queryWrapper.eq("t1.status", userTicketOrderQueryParam.getStatus());
|
|
|
+ userTicketOrderLambdaQueryWrapper.eq(UserTicketOrder::getStatus, userTicketOrderQueryParam.getStatus());
|
|
|
}
|
|
|
if (Objects.nonNull(userTicketOrderQueryParam.getStartTime()) && Objects.nonNull(userTicketOrderQueryParam.getEndTime())) {
|
|
|
- queryWrapper.between("t1.created_time", userTicketOrderQueryParam.getStartTime(), userTicketOrderQueryParam.getEndTime());
|
|
|
+ userTicketOrderLambdaQueryWrapper.between(UserTicketOrder::getCreatedTime, userTicketOrderQueryParam.getStartTime(), userTicketOrderQueryParam.getEndTime());
|
|
|
}
|
|
|
if (Objects.nonNull(userTicketOrderQueryParam.getChannelId()) && userTicketOrderQueryParam.getChannelId() != 0) {
|
|
|
- queryWrapper.eq("t1.channel_id", userTicketOrderQueryParam.getChannelId());
|
|
|
+ userTicketOrderLambdaQueryWrapper.eq(UserTicketOrder::getChannelId, userTicketOrderQueryParam.getChannelId());
|
|
|
}
|
|
|
- queryWrapper.orderByDesc("t1.created_time");
|
|
|
- int totalSize = userTicketOrderService.countUserTicketOrder(queryWrapper);
|
|
|
+ if (StringUtils.isNotBlank(userTicketOrderQueryParam.getPhone())) {
|
|
|
+ SysUser sysUser = sysUserService.selectUserByPhoneNumber(userTicketOrderQueryParam.getPhone());
|
|
|
+ if (sysUser != null) {
|
|
|
+ userTicketOrderLambdaQueryWrapper.eq(UserTicketOrder::getUserId, sysUser.getUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.nonNull(userTicketOrderQueryParam.getBoxType())) {
|
|
|
+ List<TicketBox> ticketBoxList = ticketBoxService.list(new LambdaQueryWrapper<TicketBox>().eq(TicketBox::getType, userTicketOrderQueryParam.getBoxType()));
|
|
|
+ if (CollectionUtils.isNotEmpty(ticketBoxList)) {
|
|
|
+ List<String> boxIds = ticketBoxList.stream().map(TicketBox::getBoxId).collect(Collectors.toList());
|
|
|
+ userTicketOrderLambdaQueryWrapper.in(UserTicketOrder::getBoxId, boxIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ userTicketOrderLambdaQueryWrapper.orderByDesc(UserTicketOrder::getCreatedTime);
|
|
|
+
|
|
|
+ int totalSize = userTicketOrderService.count(userTicketOrderLambdaQueryWrapper);
|
|
|
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)) {
|
|
|
+ userTicketOrderLambdaQueryWrapper.last("limit " + (i * pageSize) + ", " + pageSize);
|
|
|
+ List<UserTicketOrder> userTicketOrderList = userTicketOrderService.list(userTicketOrderLambdaQueryWrapper);
|
|
|
+ if (CollectionUtils.isNotEmpty(userTicketOrderList)) {
|
|
|
+ List<String> orderIds = userTicketOrderList.stream().map(UserTicketOrder::getOrderId).collect(Collectors.toList());
|
|
|
+ QueryWrapper<UserTicketOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.in("t1.order_id",orderIds);
|
|
|
+ queryWrapper.orderByDesc("t1.created_time");
|
|
|
+ List<UserTicketOrderListVO> list = userTicketOrderService.listUserTicketOrder(queryWrapper);
|
|
|
userTicketOrderListVOList.addAll(list);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- userTicketOrderListVOList = userTicketOrderService.listUserTicketOrder(queryWrapper);
|
|
|
+ List<UserTicketOrder> userTicketOrderList = userTicketOrderService.list(userTicketOrderLambdaQueryWrapper);
|
|
|
+ if (CollectionUtils.isNotEmpty(userTicketOrderList)) {
|
|
|
+ List<String> orderIds = userTicketOrderList.stream().map(UserTicketOrder::getOrderId).collect(Collectors.toList());
|
|
|
+ QueryWrapper<UserTicketOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.in("t1.order_id", orderIds);
|
|
|
+ queryWrapper.orderByDesc("t1.created_time");
|
|
|
+ userTicketOrderListVOList = userTicketOrderService.listUserTicketOrder(queryWrapper);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
List<UserTicketOrderExcel> excelList = userTicketOrderListVOList.stream().map(userTicketOrderListVO -> {
|
|
|
UserTicketOrderExcel userTicketOrderExcel = new UserTicketOrderExcel();
|
|
|
BeanUtils.copyProperties(userTicketOrderListVO, userTicketOrderExcel);
|