|
@@ -1,13 +1,18 @@
|
|
|
package com.cyksj.web.controller.invoice;
|
|
package com.cyksj.web.controller.invoice;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.constant.Constant;
|
|
import com.cyksj.common.constant.Constant;
|
|
|
import com.cyksj.dto.Result;
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
|
|
+import com.cyksj.mapper.OrderDonMapper;
|
|
|
import com.cyksj.mapper.UpgradeOrderDonMapper;
|
|
import com.cyksj.mapper.UpgradeOrderDonMapper;
|
|
|
|
|
+import com.cyksj.mapper.vip.VipOrderDonMapper;
|
|
|
|
|
+import com.cyksj.model.entity.OrderDon;
|
|
|
import com.cyksj.model.entity.UpgradeOrderDon;
|
|
import com.cyksj.model.entity.UpgradeOrderDon;
|
|
|
|
|
+import com.cyksj.model.entity.VipOrderDon;
|
|
|
import com.cyksj.model.request.UserInvoiceOrderReq;
|
|
import com.cyksj.model.request.UserInvoiceOrderReq;
|
|
|
import com.cyksj.model.views.UserInvoiceChoseOrderViews;
|
|
import com.cyksj.model.views.UserInvoiceChoseOrderViews;
|
|
|
import com.cyksj.model.views.UserInvoiceFrontView;
|
|
import com.cyksj.model.views.UserInvoiceFrontView;
|
|
@@ -27,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
@@ -50,11 +56,15 @@ public class UserInvoiceFrontController {
|
|
|
|
|
|
|
|
private final UpgradeOrderDonMapper upgradeOrderDonMapper;
|
|
private final UpgradeOrderDonMapper upgradeOrderDonMapper;
|
|
|
|
|
|
|
|
|
|
+ private final VipOrderDonMapper vipOrderDonMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final OrderDonMapper orderDonMapper;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 发票 用户可选AI车票订单
|
|
* 发票 用户可选AI车票订单
|
|
|
*/
|
|
*/
|
|
|
@GetMapping("/get/orders")
|
|
@GetMapping("/get/orders")
|
|
|
- public Result<SearchResult<UserInvoiceChoseOrderViews>> getOrders() {
|
|
|
|
|
|
|
+ public Result<List<UserInvoiceChoseOrderViews>> getOrders() {
|
|
|
long userId = StpUserUtil.getLoginIdAsLong();
|
|
long userId = StpUserUtil.getLoginIdAsLong();
|
|
|
List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
|
|
List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
|
|
|
String dateCondition;
|
|
String dateCondition;
|
|
@@ -73,19 +83,47 @@ public class UserInvoiceFrontController {
|
|
|
if (now.isAfter(DateUtil.parse("2025-02-01"))) {
|
|
if (now.isAfter(DateUtil.parse("2025-02-01"))) {
|
|
|
appIds.add("2021003171697073");
|
|
appIds.add("2021003171697073");
|
|
|
}
|
|
}
|
|
|
- String upgrade_sql = "(select id,goods_id,sku_id,order_no,money,user_id,pay_time,shop_id,created_time,2 as type from upgrade_order_don where goods_id = 26 and money > 0 and status not in ('close','noPayment','refund') and type = 'ALI_PAY') union all ";
|
|
|
|
|
|
|
+ Integer orderCount = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
|
|
+ .in(OrderDon::getUserId, userIdList)
|
|
|
|
|
+ .notIn(OrderDon::getStatus, Constant.noOrderAllStatus));
|
|
|
|
|
+ builder.field(UserInvoiceChoseOrderViews::getShopId, appIds).op(Operator.NotIn)
|
|
|
|
|
+ .put("dc", dateCondition)
|
|
|
|
|
+ .field(UserInvoiceChoseOrderViews::getUserId, userIdList).op(Operator.InList);
|
|
|
|
|
+ List<UserInvoiceChoseOrderViews> list = new ArrayList<>();
|
|
|
|
|
+ if (orderCount > 0) {
|
|
|
|
|
+ //普通订单
|
|
|
|
|
+ String order_sql = "(select id,goods_id,sku_id,order_no,money,user_id,pay_time,shop_id,created_time,1 as type from order_don where money > 0 and status not in ('close','noPayment','refund') and type = 'ALI_PAY')";
|
|
|
|
|
+ List<UserInvoiceChoseOrderViews> orderViewsList = beanSearcher.searchAll(UserInvoiceChoseOrderViews.class, builder.put("order", order_sql).build());
|
|
|
|
|
+ if (CollUtil.isNotEmpty(orderViewsList)) {
|
|
|
|
|
+ list.addAll(orderViewsList);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
Integer upgradeOrders = upgradeOrderDonMapper.selectCount(Wrappers.lambdaQuery(UpgradeOrderDon.class)
|
|
Integer upgradeOrders = upgradeOrderDonMapper.selectCount(Wrappers.lambdaQuery(UpgradeOrderDon.class)
|
|
|
.in(UpgradeOrderDon::getUserId, userIdList)
|
|
.in(UpgradeOrderDon::getUserId, userIdList)
|
|
|
.notIn(UpgradeOrderDon::getStatus, Constant.noOrderAllStatus));
|
|
.notIn(UpgradeOrderDon::getStatus, Constant.noOrderAllStatus));
|
|
|
if (upgradeOrders > 0) {
|
|
if (upgradeOrders > 0) {
|
|
|
- builder.put("uq", upgrade_sql);
|
|
|
|
|
|
|
+ //增值订单
|
|
|
|
|
+ String upgrade_order_sql = "(select id,goods_id,sku_id,order_no,money,user_id,pay_time,shop_id,created_time,2 as type from upgrade_order_don where goods_id = 26 and money > 0 and status not in ('close','noPayment','refund') and type = 'ALI_PAY')";
|
|
|
|
|
+ List<UserInvoiceChoseOrderViews> upgradeOrderList = beanSearcher.searchAll(UserInvoiceChoseOrderViews.class, builder.put("order", upgrade_order_sql).build());
|
|
|
|
|
+ if (CollUtil.isNotEmpty(upgradeOrderList)) {
|
|
|
|
|
+ list.addAll(upgradeOrderList);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- builder.field(UserInvoiceChoseOrderViews::getShopId, appIds).op(Operator.NotIn);
|
|
|
|
|
- SearchResult<UserInvoiceChoseOrderViews> search = beanSearcher.search(UserInvoiceChoseOrderViews.class, builder
|
|
|
|
|
- .put("dc", dateCondition)
|
|
|
|
|
- .field(UserInvoiceChoseOrderViews::getUserId, userIdList).op(Operator.InList)
|
|
|
|
|
- .build());
|
|
|
|
|
- return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
|
|
|
|
+ Integer vipOrderCount = vipOrderDonMapper.selectCount(Wrappers.lambdaQuery(VipOrderDon.class)
|
|
|
|
|
+ .in(VipOrderDon::getUserId, userIdList)
|
|
|
|
|
+ .notIn(VipOrderDon::getStatus, Constant.noOrderAllStatus));
|
|
|
|
|
+ if (vipOrderCount > 0) {
|
|
|
|
|
+ //会员订单
|
|
|
|
|
+ String vip_order_sql = "(select id,goods_id,0 as sku_id,order_no,money,user_id,pay_time,shop_id,created_time,3 as type from vip_order_don where money > 0 and status not in ('close','noPayment','refund') and type = 'ALI_PAY')";
|
|
|
|
|
+ List<UserInvoiceChoseOrderViews> vipOrderList = beanSearcher.searchAll(UserInvoiceChoseOrderViews.class, builder.put("order", vip_order_sql).build());
|
|
|
|
|
+ if (CollUtil.isNotEmpty(vipOrderList)) {
|
|
|
|
|
+ list.addAll(vipOrderList);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (CollUtil.isNotEmpty(list)) {
|
|
|
|
|
+ list.sort(Comparator.comparing(UserInvoiceChoseOrderViews::getPayTime).reversed());
|
|
|
|
|
+ }
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(list);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|