Files
chaozhanggui/pluss-dao-bundle/target/classes/mapper/AgentInfoMapper.xml
2023-01-28 15:57:27 +08:00

403 lines
15 KiB
XML

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.pluss.platform.mapper.AgentInfoMapper">
<resultMap id="AgentInfo" type="cn.pluss.platform.vo.AgentInfo" autoMapping="true">
</resultMap>
<select id="selectPage" resultMap="AgentInfo, cn.pluss.platform.mapper.CommonMapper.count">
SELECT SQL_CALC_FOUND_ROWS
ua.userId,
ui.loginName,
mr.rate,
ui.phone,
ui.STATUS,
ua.userName,
ui.createTime,
ui.updateTime,
ua.isFixedRate, ua.autoAudit, ua.payEcdemicSwitch, ua.isMarket, ua.isUnionPay,
sumPrice,
cashAmt,
t4.beforeMonthPrice,
t4.nowMonthPrice
FROM
tb_pluss_user_app ua
LEFT JOIN tb_pluss_user_info ui ON ua.userId = ui.id
LEFT JOIN tb_pluss_merchant_rate mr ON ua.userId = mr.userId
LEFT JOIN (
SELECT
SUM( mp.price ) sumPrice, mp.userId
FROM
tb_pluss_merchant_profit mp
GROUP BY mp.userId
) t2 ON ua.userId = t2.userId
LEFT JOIN (
SELECT SUM(pc.cashAmt) cashAmt, pc.userId
FROM tb_pluss_cash pc WHERE pc.`status` = '1'
GROUP BY pc.userId
) t3 ON ua.userId = t3.userId
LEFT JOIN (
SELECT
t.userId
, SUM(IF(recordMonth = DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL -1 MONTH), "%Y-%m"), monthPrice, 0)) beforeMonthPrice
, SUM(IF(recordMonth = DATE_FORMAT(CURRENT_DATE, "%Y-%m"), monthPrice, 0)) nowMonthPrice
FROM (
SELECT
ua.userId,
mp.recordMonth,
IFNULL( SUM( mp.price ), 0 ) monthPrice
FROM
tb_pluss_user_app ua
LEFT JOIN tb_pluss_merchant_profit mp ON ua.userId = mp.userId
AND mp.recordMonth IN ( DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL -1 MONTH), "%Y-%m"), DATE_FORMAT(CURRENT_DATE, "%Y-%m") )
WHERE
ua.userType = 'agent'
GROUP BY
ua.userId,
mp.recordMonth
) t GROUP BY t.userId
) t4 ON t4.userId = ua.userId
WHERE
ua.userType = 'agent'
AND ua.parentId IS NULL
<include refid="commonWhere"/>
ORDER BY
<foreach collection="page.orders" item="orderItem" separator=",">
${orderItem.column}
<if test="orderItem.asc == false">
DESC
</if>
</foreach>
LIMIT ${page.getIntValue('size') * (page.current - 1)}, ${page.getIntValue('size')};
SELECT found_rows() as count;
</select>
<select id="selectPermissionPage" resultMap="AgentInfo, cn.pluss.platform.mapper.CommonMapper.count">
SELECT SQL_CALC_FOUND_ROWS
ua.userId,
ui.loginName,
mr.rate,
ui.phone,
ui.STATUS,
ua.userName,
ui.createTime,
ui.updateTime,
tpcr.remark,
ua.isFixedRate, ua.autoAudit, ua.payEcdemicSwitch, ua.isMarket, ua.isUnionPay
FROM
tb_pluss_user_app ua
LEFT JOIN tb_pluss_user_info ui ON ua.userId = ui.id
LEFT JOIN tb_pluss_merchant_rate mr ON ua.userId = mr.userId
LEFT JOIN tb_pluss_common_remark tpcr on mr.userId = tpcr.userId AND tpcr.code = 'USER'
<where>
ui.loginName NOT LIKE '%@%'
AND ua.userType IN ('promoter', 'agent')
<include refid="commonWhere"/>
</where>
ORDER BY
<foreach collection="page.orders" item="orderItem" separator=",">
${orderItem.column}
<if test="orderItem.asc == false">
DESC
</if>
</foreach>
LIMIT ${page.getIntValue('size') * (page.current - 1)}, ${page.getIntValue('size')};
SELECT found_rows() as count;
</select>
<select id="selectPageCount" resultType="java.lang.Long">
SELECT
count(1)
FROM
tb_pluss_user_app ua
LEFT JOIN tb_pluss_user_info ui ON ua.userId = ui.id
LEFT JOIN tb_pluss_merchant_rate mr ON ua.userId = mr.userId
WHERE
ua.userType = 'agent'
AND ua.parentId IS NULL
<include refid="commonWhere"/>
ORDER BY ui.createTime desc
</select>
<select id="selectOne" resultType="cn.pluss.platform.vo.AgentInfo">
SELECT ua.userId, ui.loginName, mr.rate, ui.phone, ui.status, ua.userName, ui.createTime,
ui.updateTime,ua.isFixedRate, t3.cashAmt
FROM tb_pluss_user_app ua
LEFT JOIN tb_pluss_user_info ui ON ua.userId = ui.id
LEFT JOIN tb_pluss_merchant_rate mr ON ua.userId=mr.userId
LEFT JOIN tb_pluss_cash pc ON ua.userId = pc.userId
LEFT JOIN (
SELECT SUM(pc.cashAmt) cashAmt, pc.userId
FROM tb_pluss_cash pc
GROUP BY pc.userId
) t3 ON ua.userId = t3.userId
WHERE ua.userType = 'agent'
<include refid="commonWhere"/>
LIMIT 1
</select>
<select id="selectRecentMonthPrice" resultType="cn.pluss.platform.vo.AgentInfo">
SELECT
t.userId, t.userName
, SUM(IF(recordMonth = DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL -1 MONTH), "%Y-%m"), monthPrice, 0)) beforeMonthPrice
, SUM(IF(recordMonth = DATE_FORMAT(CURRENT_DATE, "%Y-%m"), monthPrice, 0)) nowMonthPrice
FROM (
SELECT
ua.userId,
ua.userName,
mp.recordMonth,
IFNULL( SUM( mp.price ), 0 ) monthPrice
FROM
tb_pluss_user_app ua
LEFT JOIN tb_pluss_merchant_profit mp ON ua.userId = mp.userId
AND mp.recordMonth IN ( DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL -1 MONTH), "%Y-%m"), DATE_FORMAT(CURRENT_DATE, "%Y-%m") )
WHERE
ua.userType = 'agent'
GROUP BY
ua.userId,
ua.userName,
mp.recordMonth
) t GROUP BY t.monthPrice, t.userId, t.userName;
</select>
<select id="selectSubAgentPage" resultMap="AgentInfo, cn.pluss.platform.mapper.CommonMapper.count">
SELECT SQL_CALC_FOUND_ROWS
ua.userId,
ua.parentId,
ui.loginName,
mr.rate,
ui.phone,
ui.STATUS,
ua.userName,
ui.createTime,
ui.updateTime,
ua.isFixedRate, ua.autoAudit, ua.payEcdemicSwitch, ua.isMarket, ua.isUnionPay,
sumPrice,
cashAmt,
t4.beforeMonthPrice,
t4.nowMonthPrice
FROM
tb_pluss_user_app ua
LEFT JOIN tb_pluss_user_info ui ON ua.userId = ui.id
LEFT JOIN tb_pluss_merchant_rate mr ON ua.userId = mr.userId
LEFT JOIN (
SELECT
SUM( mp.price ) sumPrice, mp.userId
FROM
tb_pluss_merchant_profit mp
GROUP BY mp.userId
) t2 ON ua.userId = t2.userId
LEFT JOIN (
SELECT SUM(pc.cashAmt) cashAmt, pc.userId
FROM tb_pluss_cash pc
WHERE pc.`status` = '1'
GROUP BY pc.userId
) t3 ON ua.userId = t3.userId
LEFT JOIN (
SELECT
t.userId
, SUM(IF(recordMonth = DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL -1 MONTH), "%Y-%m"), monthPrice, 0)) beforeMonthPrice
, SUM(IF(recordMonth = DATE_FORMAT(CURRENT_DATE, "%Y-%m"), monthPrice, 0)) nowMonthPrice
FROM (
SELECT
ua.userId,
mp.recordMonth,
IFNULL( SUM( mp.price ), 0 ) monthPrice
FROM
tb_pluss_user_app ua
LEFT JOIN tb_pluss_merchant_profit mp ON ua.userId = mp.userId
AND mp.recordMonth IN ( DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL -1 MONTH), "%Y-%m"), DATE_FORMAT(CURRENT_DATE, "%Y-%m") )
WHERE
ua.userType = 'agent'
GROUP BY
ua.userId,
mp.recordMonth
) t GROUP BY t.userId
) t4 ON t4.userId = ua.userId
WHERE
ua.userType = 'agent'
AND ua.parentId IS NOT NULL
<include refid="commonWhere"/>
ORDER BY
<foreach collection="page.orders" item="orderItem" separator=",">
${orderItem.column}
<if test="orderItem.asc == false">
DESC
</if>
</foreach>
LIMIT ${page.getIntValue('size') * (page.current - 1)}, ${page.getIntValue('size')};
SELECT found_rows() as count;
</select>
<!-- <select id="selectSubAgentPage" resultType="cn.pluss.platform.vo.AgentInfo">-->
<!-- SELECT-->
<!-- ua.userId,-->
<!-- ua.parentId,-->
<!-- ui.loginName,-->
<!-- mr.rate,-->
<!-- ui.phone,-->
<!-- ui.STATUS,-->
<!-- ua.userName,-->
<!-- ui.createTime,-->
<!-- ui.updateTime,-->
<!-- ua.isFixedRate, ua.autoAudit, ua.payEcdemicSwitch, ua.isMarket, ua.isUnionPay,-->
<!-- t2.sumPrice,-->
<!-- t3.cashAmt-->
<!-- FROM-->
<!-- tb_pluss_user_app ua-->
<!-- LEFT JOIN tb_pluss_user_info ui ON ua.userId = ui.id-->
<!-- LEFT JOIN tb_pluss_merchant_rate mr ON ua.userId = mr.userId-->
<!-- LEFT JOIN (-->
<!-- SELECT-->
<!-- SUM( mp.price ) sumPrice, mp.userId-->
<!-- FROM-->
<!-- tb_pluss_merchant_profit mp-->
<!-- GROUP BY mp.userId-->
<!-- ) t2 ON ua.userId = t2.userId-->
<!-- LEFT JOIN (-->
<!-- SELECT SUM(pc.cashAmt) cashAmt, pc.userId-->
<!-- FROM tb_pluss_cash pc-->
<!-- GROUP BY pc.userId-->
<!-- ) t3 ON ua.userId = t3.userId-->
<!-- WHERE-->
<!-- ua.userType = 'agent'-->
<!-- AND ua.parentId IS NOT NULL-->
<!-- <include refid="commonWhere"/>-->
<!-- <if test="agentInfo.parentId != null and agentInfo.parentId != ''">-->
<!-- and ua.parentId = #{agentInfo.parentId}-->
<!-- </if>-->
<!-- ORDER BY-->
<!-- ui.createTime-->
<!-- </select>-->
<select id="selectSubAgentPageCount" resultType="java.lang.Long">
SELECT
ua.userId,
ua.parentId,
ui.loginName,
mr.rate,
ui.phone,
ui.STATUS,
ua.userName,
ui.createTime,
ui.updateTime,
ua.isFixedRate,
t2.sumPrice,
t3.cashAmt
FROM
tb_pluss_user_app ua
LEFT JOIN tb_pluss_user_info ui ON ua.userId = ui.id
LEFT JOIN tb_pluss_merchant_rate mr ON ua.userId = mr.userId
WHERE
ua.userType = 'agent'
AND ua.parentId IS NOT NULL
<include refid="commonWhere"/>
<if test="agentInfo.parentId != null and agentInfo.parentId != ''">
and ua.parentId = #{agentInfo.parentId}
</if>
ORDER BY
ui.createTime
</select>
<select id="selectStaffPage" resultType="cn.pluss.platform.vo.AgentStaffVO">
SELECT loginName, userId, parentId, userName, createTime, phone, agentName, agentPhone FROM (
SELECT
ui.loginName, ua.userId, ua.parentId, ua.userName, ua.createDt createTime, ui.phone
, ua1.userName agentName, ui1.phone agentPhone
FROM tb_pluss_user_app ua
LEFT JOIN tb_pluss_user_info ui ON ua.userId = ui.id
LEFT JOIN tb_pluss_user_app ua1 ON ua.parentId = ua1.userId
LEFT JOIN tb_pluss_user_info ui1 ON ui1.id = ua1.userId
WHERE ua.userType = 'agent_staff'
) t
<where>
<if test="agentStaffVO.userId != null and agentStaffVO.userId != ''">
t.userId = #{agentStaffVO.userId}
</if>
<if test="agentStaffVO.loginName != null and agentStaffVO.loginName != ''">
t.loginName = #{agentStaffVO.loginName}
</if>
<if test="agentStaffVO.userName != null and agentStaffVO.userName != ''">
t.userName LIKE CONCAT('%', #{agentStaffVO.userName},'%')
</if>
<if test="agentStaffVO.phone != null and agentStaffVO.phone != ''">
t.phone LIKE CONCAT('%',#{agentStaffVO.phone},'%')
</if>
<if test="agentStaffVO.parentId != null and agentStaffVO.parentId != ''">
t.parentId =#{agentStaffVO.parentId}
</if>
<if test="agentStaffVO.agentName != null and agentStaffVO.agentName != ''">
t.agentName LIKE CONCAT('%', #{agentStaffVO.agentName},'%')
</if>
<if test="agentStaffVO.agentPhone != null and agentStaffVO.agentPhone != ''">
t.agentPhone LIKE CONCAT('%',#{agentStaffVO.agentPhone},'%')
</if>
</where>
</select>
<sql id="commonWhere">
<if test="agentInfo.userId != null and agentInfo.userId != ''">
AND ua.userId = #{agentInfo.userId}
</if>
<if test="agentInfo.loginName != null and agentInfo.loginName != ''">
AND ui.loginName LIKE CONCAT("%", #{agentInfo.loginName}, "%")
</if>
<if test="agentInfo.phone != null and agentInfo.phone != ''">
AND ui.phone LIKE CONCAT("%", #{agentInfo.phone}, "%")
</if>
<if test="agentInfo.userName != null and agentInfo.userName != ''">
AND ua.userName LIKE #{agentInfo.userName}
</if>
<if test="agentInfo.isFixedRate == '1'.toString() ">
AND ua.isFixedRate = '1'
</if>
<if test="agentInfo.isFixedRate == '0'.toString() ">
AND (ua.isFixedRate is null or ua.isFixedRate = '0')
</if>
<if test="agentInfo.rate != null and agentInfo.rate != ''">
AND mr.rate LIKE #{agentInfo.rate}
</if>
<if test="agentInfo.autoAudit != null and agentInfo.autoAudit != ''">
<choose>
<when test="agentInfo.autoAudit == '1'.toString()">
AND ua.autoAudit = '1'
</when>
<otherwise>
AND (ua.autoAudit = '0' OR ua.autoAudit IS NULL)
</otherwise>
</choose>
</if>
<if test="agentInfo.payEcdemicSwitch != null and agentInfo.payEcdemicSwitch != ''">
<choose>
<when test="agentInfo.payEcdemicSwitch == '1'.toString()">
AND ua.payEcdemicSwitch = '1'
</when>
<otherwise>
AND ua.payEcdemicSwitch = '0'
</otherwise>
</choose>
</if>
<if test="agentInfo.isMarket != null and agentInfo.isMarket != ''">
<choose>
<when test="agentInfo.isMarket == '1'.toString()">
AND ua.isMarket = '1'
</when>
<otherwise>
AND (ua.isMarket = '0' OR ua.isMarket IS NULL)
</otherwise>
</choose>
</if>
<if test="agentInfo.isUnionPay != null and agentInfo.isUnionPay != ''">
<choose>
<when test="agentInfo.isUnionPay == '1'.toString()">
AND ua.isUnionPay = '1'
</when>
<otherwise>
AND (ua.isUnionPay = '0' OR ua.isUnionPay IS NULL)
</otherwise>
</choose>
</if>
</sql>
</mapper>