xuhy
2024-12-25 54a46698ddf52e65484afb225e3c61c1ffbb9aa0
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?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.stylefeng.guns.modular.system.dao.TComplaintMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TComplaint">
        <id column="id" property="id" />
        <result column="userId" property="userId" />
        <result column="reason" property="reason" />
        <result column="driverId" property="driverId" />
        <result column="description" property="description" />
        <result column="isHandle" property="isHandle" />
        <result column="insert_time" property="insertTime" />
        <result column="handleResult" property="handleResult" />
        <result column="handleUserId" property="handleUserId" />
    </resultMap>
 
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, userId, reason, driverId, description, isHandle, insert_time, handleResult, handleUserId
    </sql>
 
    <!--根据条件查询投诉列表-->
    <select id="getComplaintDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
        SELECT * FROM (SELECT di.companyId,di.franchiseeId,CONCAT(ui.nickName,'/',ui.phone)
        as userName,ui.phone as userPhone,CONCAT(di.`name`,'/',di.phone)
        as driverName,di.phone as driverPhone,si.`name` as handleUserName,
        ccc.count as `count`,
        cc.*
        FROM t_complaint as cc
        LEFT JOIN (select * from t_user where flag != 3) as ui on ui.id = cc.userId
        LEFT JOIN (select * from t_driver where flag != 3) as di on di.id = cc.driverId
        LEFT JOIN
        (SELECT COUNT(*) as `count`, userId FROM t_complaint where type =2 GROUP BY userId) as ccc ON ccc.userId = ui.id
 
        LEFT JOIN sys_user as si on si.id = cc.handleUserId
        ) as o
        <where>
            1 = 1
            <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
                AND (o.insert_time between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
            </if>
            <if test="userName != null and userName != ''">
                and o.userName  LIKE CONCAT('%',#{userName},'%')
            </if>
            <if test="userPhone != null and userPhone != ''">
                and o.userPhone  LIKE CONCAT('%',#{userPhone},'%')
            </if>
            <if test="driverPhone != null and driverPhone != ''">
                and o.driverName  LIKE CONCAT('%',#{driverPhone},'%')
            </if>
            <if test="isHandle != null and isHandle != '' and isHandle == 2">
                and o.isHandle = 0
            </if>
            <if test="isHandle != null and isHandle != '' and isHandle == 1">
                and o.isHandle = 1
            </if>
            <if test="roleType != null and roleType != '' and roleType == 2">
                and o.companyId = #{nowUserId} and (o.franchiseeId = 0 or o.franchiseeId is null)
            </if>
            <if test="roleType != null and roleType != '' and roleType == 3">
                and o.franchiseeId = #{nowUserId}
            </if>
            and o.type =2
        </where>
        order by o.id desc
    </select>
    <select id="getComplaintList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
        SELECT * FROM (SELECT di.companyId,di.franchiseeId,ui.nickName as userName,ui.phone as userPhone,di.`name` as driverName,di.phone as driverPhone,si.`name` as handleUserName,cc.* FROM t_complaint as cc
        LEFT JOIN (select * from t_user where flag != 3) as ui on ui.id = cc.userId
        LEFT JOIN (select * from t_driver where flag != 3) as di on di.id = cc.driverId
        LEFT JOIN sys_user as si on si.id = cc.handleUserId
        ) as o
        <where>
            1 = 1
            <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
                AND (o.insert_time between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
            </if>
            <if test="userName != null and userName != ''">
                and o.userName  LIKE CONCAT('%',#{userName},'%')
            </if>
            <if test="userPhone != null and userPhone != ''">
                and o.userPhone  LIKE CONCAT('%',#{userPhone},'%')
            </if>
            <if test="driverPhone != null and driverPhone != ''">
                and o.driverPhone  LIKE CONCAT('%',#{driverPhone},'%')
            </if>
            <if test="isHandle != null and isHandle != '' and isHandle == 2">
                and o.isHandle = 0
            </if>
            <if test="isHandle != null and isHandle != '' and isHandle == 1">
                and o.isHandle = 1
            </if>
            <if test="roleType != null and roleType != '' and roleType == 2">
                and o.companyId = #{nowUserId} and (o.franchiseeId = 0 or o.franchiseeId is null)
            </if>
            <if test="roleType != null and roleType != '' and roleType == 3">
                and o.franchiseeId = #{nowUserId}
            </if>
                 and o.type =1
        </where>
        order by o.id desc
    </select>
    <select id="getBlackList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
        SELECT * FROM (SELECT
        di.companyId,di.franchiseeId,
        si.`name` as handleUserName,
        COALESCE(ccc.count, 0) as `count`,
        cc.id,
        cc.nickName as userName,cc.phone as phone ,cc.blackTime as blackTime
        FROM t_user as cc
        LEFT JOIN (select * from t_complaint where type =2 ) as ui on ui.userId = cc.id
        LEFT JOIN (select * from t_driver where flag != 3) as di on di.id = ui.driverId
        LEFT JOIN
        (SELECT COUNT(*) as `count`, userId FROM t_complaint where type =2 GROUP BY userId) as ccc ON ccc.userId = cc.id
        LEFT JOIN sys_user as si on si.id = ui.handleUserId
        where cc.isBlack =1  and cc.flag != 3
        ) as o
        <where>
            1 = 1
            <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
                AND (o.blackTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
            </if>
            <if test="userName != null and userName != ''">
                and o.userName  LIKE CONCAT('%',#{userName},'%')
            </if>
            <if test="phone != null and phone != ''">
                and o.phone  LIKE CONCAT('%',#{phone},'%')
            </if>
            <if test="roleType != null and roleType != '' and roleType == 2">
                and o.companyId = #{nowUserId} and (o.franchiseeId = 0 or o.franchiseeId is null)
            </if>
            <if test="roleType != null and roleType != '' and roleType == 3">
                and o.franchiseeId = #{nowUserId}
            </if>
 
        </where>
        order by o.id desc
    </select>
 
</mapper>