Helius
2020-12-23 c554c7ad5405bafa149dbb6429e8245f78b33ffc
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?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.matrix.system.hive.dao.AllotedAndInstoredDao">
     
    <resultMap type="com.matrix.system.hive.pojo.AllotedAndInstored" id="AllotedAndInstoredMap">
       <id property="iaId" column="iaId" />
       <result property="skuId" column="skuId" />
        <result property="createTime" column="create_time" />
        <result property="total" column="total" />
        <result property="priceTotal" column="priceTotal" />
         <result property="type" column="type" />
       
        <result property="skuPrice" column="skuPrice" />
        <result property="goodsId" column="goodsId" />
        <result property="skuName" column="skuName" />
        <result property="goodsName" column="goodsName" />
        
    </resultMap>
    <!-- 分页查询 -->
    
    <select id="selectInPage" resultMap="AllotedAndInstoredMap">
        <if test="record.type==null or record.type=='' ">
            SELECT t1.*,t3.name skuName,t3.price skuPrice,t3.id goodsId,t3.name goodsName FROM(SELECT d.INSTORE_DATE create_Time,a.INSTORE_ID iaId,a.SKU_ID skuId,a.AMOUNT total,a.PRICE_TOTAL priceTotal,1 type FROM sys_instore_detail a
            LEFT JOIN sys_instore_info d ON d.ID=a.INSTORE_ID 
            UNION
            SELECT c.ALLOTTED_DATE createTime,b.ALLOT_ID iaId,b.SKU_ID skuId,IFNULL(-b.REAL_TOTAL,0) total,NULL priceTotal,2 type FROM sys_allot_detail b 
            LEFT JOIN sys_allotted_info c ON b.ALLOT_ID =c.ID AND c.ALLOTTED_INSTORE_ID =13
            UNION
            SELECT e.ALLOTTED_DATE createTime, b.ALLOT_ID iaid,b.SKU_ID skuid,IFNULL(-b.receive_total,0) total,NULL priceTotal,2 type FROM sys_allot_detail b 
            LEFT JOIN sys_allotted_info e ON b.ALLOT_ID =e.ID AND e.ALLOTTED_OUTSTORE_ID =13)t1
        </if>
        
        <if test="record.type!=null and record.type!='' ">
            SELECT t1.*,t3.name skuName,t3.price skuPrice,t3.id goodsId,t3.name goodsName FROM(
            <if test="record.type==1">
            SELECT d.INSTORE_DATE create_Time,a.INSTORE_ID iaId,a.SKU_ID skuId,a.AMOUNT total,a.PRICE_TOTAL priceTotal,1 type FROM sys_instore_detail a
            LEFT JOIN sys_instore_info d ON d.ID=a.INSTORE_ID 
            </if>
            <if test="record.type==2">
            SELECT c.ALLOTTED_DATE create_Time,b.ALLOT_ID iaId,b.SKU_ID skuId,IFNULL(-b.REAL_TOTAL,0) total,NULL priceTotal,2 type FROM sys_allot_detail b 
            LEFT JOIN sys_allotted_info c ON b.ALLOT_ID =c.ID AND c.ALLOTTED_INSTORE_ID =13
            UNION
            SELECT e.ALLOTTED_DATE create_Time, b.ALLOT_ID iaid,b.SKU_ID skuid,IFNULL(-b.receive_total,0) total,NULL priceTotal,2 type FROM sys_allot_detail b 
            LEFT JOIN sys_allotted_info e ON b.ALLOT_ID =e.ID AND e.ALLOTTED_OUTSTORE_ID =13
            </if>
            )t1
        </if>
        LEFT JOIN sys_goods t3  on t1.skuid = t3.id
        where 1=1
        <if test="record!=null">
             
            <if test="record.startTime != null  ">
                and t1.create_Time >= #{record.startTime}
            </if>
            <if test="record.endTime != null ">
                and t1.create_Time &lt;= #{record.endTime}
            </if>  
 
            <if test="record.goodsName != null and record.goodsName!='' ">
                and t3.name like CONCAT('%',#{record.goodsName},'%') 
            </if>
            
        </if>
        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
            <if test="pageVo.sort !=null  and pageVo.order !=null">
                order by
                ${pageVo.sort} ${pageVo.order}
            </if>
            <if test="pageVo.offset >=0  and pageVo.limit >0">
                limit
                #{pageVo.offset},#{pageVo.limit}
            </if>
        </if>
    </select>
    
    <!-- 查询总条数 -->
    <select id="selectTotalRecord"    resultType="java.lang.Integer">
       <if test="record.type==null or record.type=='' ">
            SELECT count(*) FROM(SELECT d.INSTORE_DATE create_Time,a.INSTORE_ID iaId,a.SKU_ID skuId,a.AMOUNT total,a.PRICE_TOTAL priceTotal,1 type FROM sys_instore_detail a
            LEFT JOIN sys_instore_info d ON d.ID=a.INSTORE_ID 
            UNION
            SELECT c.ALLOTTED_DATE createTime,b.ALLOT_ID iaId,b.SKU_ID skuId,IFNULL(-b.REAL_TOTAL,0) total,NULL priceTotal,2 type FROM sys_allot_detail b 
            LEFT JOIN sys_allotted_info c ON b.ALLOT_ID =c.ID AND c.ALLOTTED_INSTORE_ID =13
            UNION
            SELECT e.ALLOTTED_DATE createTime, b.ALLOT_ID iaid,b.SKU_ID skuid,IFNULL(-b.receive_total,0) total,NULL priceTotal,2 type FROM sys_allot_detail b 
            LEFT JOIN sys_allotted_info e ON b.ALLOT_ID =e.ID AND e.ALLOTTED_OUTSTORE_ID =13)t1
        </if>
        
        <if test="record.type!=null and record.type!='' ">
            SELECT count(*) FROM(
            <if test="record.type==1">
            SELECT d.INSTORE_DATE create_Time,a.INSTORE_ID iaId,a.SKU_ID skuId,a.AMOUNT total,a.PRICE_TOTAL priceTotal,1 type FROM sys_instore_detail a
            LEFT JOIN sys_instore_info d ON d.ID=a.INSTORE_ID 
            </if>
            <if test="record.type==2">
            SELECT c.ALLOTTED_DATE create_Time,b.ALLOT_ID iaId,b.SKU_ID skuId,IFNULL(-b.REAL_TOTAL,0) total,NULL priceTotal,2 type FROM sys_allot_detail b 
            LEFT JOIN sys_allotted_info c ON b.ALLOT_ID =c.ID AND c.ALLOTTED_INSTORE_ID =13
            UNION
            SELECT e.ALLOTTED_DATE create_Time, b.ALLOT_ID iaid,b.SKU_ID skuid,IFNULL(-b.receive_total,0) total,NULL priceTotal,2 type FROM sys_allot_detail b 
            LEFT JOIN sys_allotted_info e ON b.ALLOT_ID =e.ID AND e.ALLOTTED_OUTSTORE_ID =13
            </if>
            )t1
        </if>
 
        LEFT JOIN sys_goods t3  on t1.skuid = t3.id
        where 1=1
        <if test="record!=null">
            <if test="record.startTime != null  ">
                and t1.create_Time >= #{record.startTime}
            </if>
            <if test="record.endTime != null  ">
                and t1.create_Time &lt;= #{record.endTime}
            </if>  
 
            <if test="record.goodsName != null and record.goodsName!='' ">
                and t3.name like CONCAT('%',#{record.goodsName},'%') 
            </if>
            
        </if>
    </select>
 
    
</mapper>