浏览代码

fix 增值订单开发票

zoujiajian 10 月之前
父节点
当前提交
1058062acc

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UpgradeOrderDonMapper.java

@@ -2,10 +2,14 @@ package com.cyksj.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.UpgradeOrderDon;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author zwhui
  * @date 2024/4/24 17:29
  */
 public interface UpgradeOrderDonMapper extends BaseMapper<UpgradeOrderDon> {
+	List<Long> selectUpgradeDistinctGoodsId(@Param("userIds") List<Long> userIdList);
 }

+ 13 - 0
netflix-dao/src/main/resources/mapper/UpgradeOrderDonMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.cyksj.mapper.UpgradeOrderDonMapper">
+
+    <select id="selectUpgradeDistinctGoodsId" resultType="java.lang.Long">
+        select distinct goods_id from upgrade_order_don where user_id in
+        <foreach collection="userIds" item="userId" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+        and status not in ('close','noPayment','refund')
+    </select>
+</mapper>

+ 2 - 1
netflix-web/src/main/java/com/cyksj/web/controller/invoice/UserInvoiceFrontController.java

@@ -102,8 +102,9 @@ public class UserInvoiceFrontController {
 				.in(UpgradeOrderDon::getUserId, userIdList)
 				.notIn(UpgradeOrderDon::getStatus, Constant.noOrderAllStatus));
 		if (upgradeOrders > 0) {
+			List<Long> goodsIds = upgradeOrderDonMapper.selectUpgradeDistinctGoodsId(userIdList);
 			//增值订单
-			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')";
+			String upgrade_order_sql = String.format("(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 in (%s) and money > 0 and status not in ('close','noPayment','refund') and type = 'ALI_PAY')", goodsIds.stream().map(v -> v.toString()).collect(Collectors.joining(",")));
 			List<UserInvoiceChoseOrderViews> upgradeOrderList = beanSearcher.searchAll(UserInvoiceChoseOrderViews.class, builder.put("order", upgrade_order_sql).build());
 			if (CollUtil.isNotEmpty(upgradeOrderList)) {
 				list.addAll(upgradeOrderList);