“mitao”
2025-12-26 6e3325a6906a0dcf9c2abcce5ef11d7ec9eed72f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?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.ruoyi.system.mapper.AppletOrderMapper">
 
    <select id="selectOrderList" resultType="com.ruoyi.system.vo.AppletOrderListVO">
        SELECT t.id, t.code, t.goodsName, t.goodsIntro, t.goodsCover, t.goodsPrice, t.createTime, t.orderType, t.status
        FROM (
            SELECT
                o.id,
                o.code,
                JSON_UNQUOTE(JSON_EXTRACT(o.big_gift_package, '$.name')) AS goodsName,
                JSON_UNQUOTE(JSON_EXTRACT(o.big_gift_package, '$.introduction')) AS goodsIntro,
                JSON_UNQUOTE(JSON_EXTRACT(o.big_gift_package, '$.coverImage')) AS goodsCover,
                JSON_UNQUOTE(JSON_EXTRACT(o.big_gift_package, '$.totalPrice')) AS goodsPrice,
                o.create_time AS createTime,
                1 AS orderType,
                o.status
            FROM t_big_gift_package_order o
            WHERE o.del_flag = 0 AND o.app_user_id = #{appUserId}
                AND o.status != 6
                AND NOT (o.status = 1 AND o.create_time &lt; DATE_SUB(NOW(), INTERVAL 1 HOUR))
 
            UNION ALL
 
            SELECT
                o.id,
                o.code,
                JSON_UNQUOTE(JSON_EXTRACT(o.physical_goods, '$.name')) AS goodsName,
                JSON_UNQUOTE(JSON_EXTRACT(o.physical_goods, '$.introduction')) AS goodsIntro,
                JSON_UNQUOTE(JSON_EXTRACT(o.physical_goods, '$.coverImage')) AS goodsCover,
                JSON_UNQUOTE(JSON_EXTRACT(o.physical_goods, '$.totalPrice')) AS goodsPrice,
                o.create_time AS createTime,
                2 AS orderType,
                CASE WHEN o.status = 2 THEN 3 ELSE o.status END AS status
            FROM t_physical_goods_order o
            WHERE o.del_flag = 0 AND o.app_user_id = #{appUserId}
                AND o.status != 5
                AND NOT (o.status = 1 AND o.create_time &lt; DATE_SUB(NOW(), INTERVAL 1 HOUR))
        ) t
        <where>
            <if test="query.status != null">
                <choose>
                    <when test="query.status == 3">
                        AND (t.status = 3 OR (t.orderType = 1 AND t.status = 4))
                    </when>
                    <otherwise>
                        AND t.status = #{query.status}
                    </otherwise>
                </choose>
            </if>
        </where>
        ORDER BY t.createTime DESC
    </select>
 
</mapper>