UsersMapper.xml 10.4 KB
Newer Older
licc's avatar
licc committed
1 2 3 4
<?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="cn.wisenergy.mapper.UsersMapper">
licc's avatar
licc committed
5
    <resultMap id="userMap" type="cn.wisenergy.model.app.Users">
licc's avatar
licc committed
6
        <id column="id" property="id"/>
licc's avatar
licc committed
7 8 9 10 11
        <result column="parent_id" property="parentId"/>
        <result column="path" property="path"/>
        <result column="rank" property="rank"/>
        <result column="country_code" property="countryCode"/>
        <result column="phone" property="phone"/>
licc's avatar
licc committed
12
        <result column="password" property="password"/>
licc's avatar
licc committed
13 14 15
        <result column="fund_pass" property="fundPass"/>
        <result column="nickname" property="nickname"/>
        <result column="avatar" property="avatar"/>
licc's avatar
licc committed
16
        <result column="invite_code" property="inviteCode"/>
licc's avatar
licc committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
        <result column="token" property="token"/>
        <result column="hash" property="hash"/>
        <result column="level" property="level"/>
        <result column="now_level" property="nowLevel"/>
        <result column="grade" property="grade"/>
        <result column="status" property="status"/>
        <result column="fund_status" property="fundStatus"/>
        <result column="active" property="active"/>
        <result column="note" property="note"/>
        <result column="reg_time" property="regTime"/>
        <result column="reg_ip" property="regIp"/>
        <result column="reg_address" property="regAddress"/>
        <result column="did" property="did"/>
        <result column="read_time" property="readTime"/>
        <result column="start_at" property="startAt"/>
        <result column="expire_at" property="expireAt"/>
        <result column="proxy" property="proxy"/>
        <result column="is_work" property="isWork"/>
        <result column="work_at" property="workAt"/>
        <result column="created_at" property="createdAt"/>
        <result column="updated_at" property="updatedAt"/>
licc's avatar
licc committed
38 39 40
    </resultMap>

    <sql id="table">
licc's avatar
licc committed
41
        users
licc's avatar
licc committed
42 43 44 45 46 47 48 49
    </sql>

    <sql id="cols_all">
        id,
        <include refid="cols_exclude_id"/>
    </sql>

    <sql id="cols_exclude_id">
licc's avatar
licc committed
50
        parent_id,path,rank,country_code,phone,password,fund_pass,nickname, avatar,invite_code,token,hash,`level`,now_level,
licc's avatar
licc committed
51 52
        grade,status,fund_status,active,note,reg_time,reg_ip,reg_address,did,read_time,start_at,expire_at,proxy,is_work,
        work_at,created_at,updated_at
licc's avatar
licc committed
53 54 55
    </sql>

    <sql id="vals">
licc's avatar
licc committed
56 57 58
        #{parentId},#{path},#{rank},#{countryCode},#{phone},#{password},#{fundPass},#{nickname},#{avatar},#{inviteCode},
        #{token},#{hash},#{level},#{nowLevel},#{grade},#{status},#{fundStatus},#{active},#{note},#{regTime},#{regIp},
        #{regAddress},#{did},#{readTime},#{startAt},#{expireAt},#{proxy},#{isWork},#{workAt},now(),now()
licc's avatar
licc committed
59 60 61
    </sql>

    <sql id="updateCondition">
licc's avatar
licc committed
62 63 64 65 66 67 68 69 70
        <if test="parentId != null">parent_id = #{parentId},</if>
        <if test="path != null">path =#{path},</if>
        <if test="rank != null">rank =#{rank},</if>
        <if test="countryCode != null">country_code =#{countryCode},</if>
        <if test="phone != null">phone =#{phone},</if>
        <if test="password != null">password = #{password},</if>
        <if test="fundPass != null">fund_pass =#{fundPass},</if>
        <if test="nickname != null">nickname =#{nickname},</if>
        <if test="avatar != null">avatar =#{avatar},</if>
licc's avatar
licc committed
71
        <if test="inviteCode != null">invite_code = #{inviteCode},</if>
licc's avatar
licc committed
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
        <if test="token != null">token = #{token},</if>
        <if test="hash != null">hash =#{hash},</if>
        <if test="level != null">`level` =#{level},</if>
        <if test="nowLevel != null">now_level =#{nowLevel},</if>
        <if test="grade != null">grade =#{grade},</if>
        <if test="status != null">status = #{status},</if>
        <if test="fundStatus != null">fund_status =#{fundStatus},</if>
        <if test="active != null">active =#{active},</if>
        <if test="note != null">note =#{note},</if>
        <if test="regTime != null">reg_time = #{regTime},</if>
        <if test="regIp != null">reg_ip = #{regIp},</if>
        <if test="regAddress != null">reg_address =#{regAddress},</if>
        <if test="did != null">did = #{did},</if>
        <if test="readTime != null">read_time =#{readTime},</if>
        <if test="startAt != null">start_at =#{startAt},</if>
        <if test="expireAt != null">expire_at =#{expireAt},</if>
        <if test="proxy != null">proxy = #{proxy},</if>
        <if test="isWork != null">is_work = #{isWork},</if>
        <if test="workAt != null">work_at = #{workAt},</if>
licc's avatar
licc committed
91 92 93 94 95
        update_time =now()
    </sql>

    <sql id="criteria">
        <if test="id != null">id = #{id}</if>
licc's avatar
licc committed
96 97 98 99 100 101 102 103 104
        <if test="parentId != null">and parent_id = #{parentId}</if>
        <if test="path != null">and path =#{path}</if>
        <if test="rank != null">and rank =#{rank}</if>
        <if test="countryCode != null">and country_code =#{countryCode}</if>
        <if test="phone != null">and phone =#{phone}</if>
        <if test="password != null">and password = #{password}</if>
        <if test="fundPass != null">and fund_pass =#{fundPass}</if>
        <if test="nickname != null">and nickname =#{nickname}</if>
        <if test="avatar != null">and avatar =#{avatar}</if>
licc's avatar
licc committed
105
        <if test="inviteCode != null">and invite_code = #{inviteCode}</if>
licc's avatar
licc committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
        <if test="token != null">and token = #{token}</if>
        <if test="hash != null">and hash =#{hash}</if>
        <if test="level != null">and `level` =#{level}</if>
        <if test="nowLevel != null">and now_level =#{nowLevel}</if>
        <if test="grade != null">and grade =#{grade}</if>
        <if test="status != null">and status = #{status}</if>
        <if test="fundStatus != null">and fund_status =#{fundStatus}</if>
        <if test="active != null">and active =#{active}</if>
        <if test="note != null">and note =#{note}</if>
        <if test="regTime != null">and reg_time = #{regTime}</if>
        <if test="regIp != null">and reg_ip = #{regIp}</if>
        <if test="regAddress != null">and reg_address =#{regAddress}</if>
        <if test="did != null">and did = #{did}</if>
        <if test="readTime != null">and read_time =#{readTime}</if>
        <if test="startAt != null">and start_at =#{startAt}</if>
        <if test="expireAt != null">and expire_at =#{expireAt}</if>
        <if test="proxy != null">and proxy = #{proxy}</if>
        <if test="isWork != null">and is_work = #{isWork}</if>
        <if test="workAt != null">and work_at = #{workAt}</if>
        <if test="createdAt != null">and created_at &gt;= #{createdAt}</if>
        <if test="updatedAt != null">and #{updatedAt} &gt;= updated_at</if>
licc's avatar
licc committed
127 128
    </sql>

129

licc's avatar
licc committed
130
    <insert id="add" parameterType="cn.wisenergy.model.app.Users" keyProperty="id" useGeneratedKeys="true">
licc's avatar
licc committed
131 132 133 134 135 136 137 138
        insert into
        <include refid="table"/>
        (<include refid="cols_exclude_id"/>)
        value(
        <include refid="vals"/>
        )
    </insert>

licc's avatar
licc committed
139
    <update id="edit" parameterType="cn.wisenergy.model.app.Users">
licc's avatar
licc committed
140 141 142 143 144
        UPDATE
        <include refid="table"/>
        <set>
            <include refid="updateCondition"/>
        </set>
licc's avatar
licc committed
145 146 147
        <where>
            id = #{id}
        </where>
licc's avatar
licc committed
148 149 150 151 152 153 154 155
    </update>

    <delete id="delById" parameterType="java.lang.Integer">
        delete from
        <include refid="table"/>
        where id = #{id}
    </delete>

licc's avatar
licc committed
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
    <select id="getLastUser" resultType="cn.wisenergy.model.vo.UserVo">
        select u.id as userId,u.parent_id as parentId,a.real_name as realName
        from users u left join actives a
        on u.id=a.user_id
		where u.parent_id =#{parentId}
    </select>

    <select id="getById" resultType="cn.wisenergy.model.app.Users">
        select
        <include refid="cols_all"/>
        from
        <include refid="table"/>
        <where>
            id=#{id}
        </where>
    </select>
172 173


174
    <select id="getLevelAndTotal" resultType="cn.wisenergy.model.dto.UsersInfoDto">
licc's avatar
licc committed
175 176 177 178 179 180 181
	    SELECT u1.rank,u2.count
        FROM
        users u1,(select count(*) 'count',max(LENGTH(path)) 'maxrank'
        from users
        where  path like CONCAT((SELECT path FROM users WHERE id=#{userId}), '%')) u2
        WHERE  path like CONCAT((SELECT path FROM users WHERE id=#{userId}), '%')
                    and LENGTH(path) = u2.maxrank LIMIT 1
licc's avatar
licc committed
182
    </select>
183

licc's avatar
licc committed
184 185 186 187 188
    <select id="getTotal" resultType="java.lang.Integer">
        select count(*)
        from
        <include refid="table"/>
        <where>
189
            FIND_IN_SET(#{id},path)
licc's avatar
licc committed
190
        </where>
191 192
    </select>

193 194 195

    <!--*****************************************chenqi***************************************-->
    <select id="getDownLevelAndTotalPeopleByUserId" resultType="cn.wisenergy.model.dto.UsersInfoDto">
cq990612's avatar
cq990612 committed
196
         SELECT
cq990612's avatar
cq990612 committed
197
	MAX(rank) 'bottom',
198 199 200 201
	count(*)-1 'totalPeople'
FROM
	users
WHERE
202 203
	path like CONCAT((SELECT path FROM users WHERE id=#{userId}), '%')

204 205 206 207 208 209 210 211 212


    </select>

    <select id="getDownUsersById" resultType="cn.wisenergy.model.dto.UserSimpleInfoDto">
    SELECT
	u.id 'userId',
	a.real_name ,
	u.rank,
cq990612's avatar
cq990612 committed
213 214
	a.id_number,
	u.phone,
cq990612's avatar
cq990612 committed
215 216
	if(ur.totalRecharge is NULL,0, round(ur.totalRecharge,2)) 'totalRecharge',
	if(uw.totalWithdrawal is NULL,0,round(uw.totalWithdrawal,2)) 'totalWithdrawal',
217 218 219 220 221
	u.parent_id,
	aa.real_name 'parentName'
	FROM users u
	LEFT JOIN actives a ON u.id = a.user_id
	LEFT JOIN actives aa ON u.parent_id = aa.user_id
cq990612's avatar
cq990612 committed
222 223 224 225 226 227 228 229 230 231 232 233
	LEFT JOIN (
            SELECT user_id,round(SUM(amount),2) 'totalRecharge'
FROM user_recharge
WHERE user_id in (SELECT id from users WHERE parent_id = #{userId}) and status = 1
GROUP BY user_id
        ) ur ON ur.user_id=u.id
    LEFT JOIN (
            SELECT user_id,round(SUM(amount),2) 'totalWithdrawal'
FROM user_withdraws
WHERE user_id in (SELECT id from users WHERE parent_id = #{userId}) and status = 1
GROUP BY user_id
        ) uw ON uw.user_id=u.id
234
        WHERE
235
            u.parent_id = #{userId} or u.id = #{userId}
cq990612's avatar
cq990612 committed
236
        ORDER BY u.id
237 238
    </select>

239
    <select id="getAllUserData" resultType="cn.wisenergy.model.dto.UserDto">
licc's avatar
licc committed
240 241 242 243
        select id as userId,rank,phone
        from
        <include refid="table"/>
        limit #{startNo},#{endNo}
244 245
    </select>

licc's avatar
licc committed
246 247 248 249 250 251 252 253 254 255 256
    <select id="getUserData" resultType="cn.wisenergy.model.vo.UserVo">
        select u.id as userId,u.parent_id as parentId,a.real_name as realName
        from users u left join actives a
        on u.id=a.user_id
        where u.id IN
        <foreach collection="list" index="index" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
        order by u.id
    </select>

licc's avatar
licc committed
257
</mapper>