java-base-app/bd-business/bd-business-member/src/main/resources/mapper/member/statis/MemberStatisticsMapper.xml

82 lines
3.2 KiB
XML

<?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.hzs.member.statis.mapper.MemberStatisticsMapper">
<select id="getDirectStatisticsNumberOfPeople"
resultType="com.hzs.common.domain.member.statis.DirectStatisticsTop30VO">
SELECT
*
FROM
(
SELECT
PK_ID memberId,
MEMBER_CODE memberCode,
member_name memberName,
numberOfPeople,
numberOfAmount
FROM
(
SELECT
o.PK_REFERENCE,
count( DISTINCT o.PK_MEMBER ) numberOfPeople,
sum( order_amount ) numberOfAmount
FROM
sa_order o
RIGHT JOIN cu_member m ON m.PK_ID = o.pk_member
AND m.DEL_FLAG = 0
AND m.CATEGORY = 0
WHERE
o.del_flag = 0
AND order_status = 1
AND ( order_type IN ( 1, 2 ) OR ( order_Type = 3 AND ORDER_TYPE_EXTEND = 1 ) )
and o.pay_time between #{param.startDate} and #{param.endDate}
GROUP BY PK_REFERENCE
ORDER BY numberOfAmount DESC
) r
LEFT JOIN cu_member cm ON r.PK_REFERENCE = cm.pk_id
WHERE cm.PK_SETTLE_GRADE IN ( SELECT pk_id FROM BD_GRADE WHERE ( grade_value >= 30 ) )
ORDER BY numberOfPeople DESC
)
WHERE ROWNUM <![CDATA[ <=]]> 30
</select>
<select id="getDirectStatisticsNumberOfAmount"
resultType="com.hzs.common.domain.member.statis.DirectStatisticsTop30VO">
SELECT
*
FROM
(
SELECT
PK_ID memberId,
MEMBER_CODE memberCode,
member_name memberName,
numberOfPeople,
numberOfAmount
FROM
(
SELECT
o.PK_REFERENCE,
count( DISTINCT o.PK_MEMBER ) numberOfPeople,
sum( order_amount ) numberOfAmount
FROM
sa_order o
RIGHT JOIN cu_member m ON m.PK_ID = o.pk_member
AND m.DEL_FLAG = 0
AND m.CATEGORY = 0
WHERE
o.del_flag = 0
AND order_status = 1
AND ( order_type IN ( 1, 2 ) OR ( order_Type = 3 AND ORDER_TYPE_EXTEND = 1 ) )
and o.pay_time between #{param.startDate} and #{param.endDate}
GROUP BY PK_REFERENCE
ORDER BY numberOfAmount DESC
) r
LEFT JOIN cu_member cm ON r.PK_REFERENCE = cm.pk_id
WHERE cm.PK_SETTLE_GRADE IN ( SELECT pk_id FROM BD_GRADE WHERE ( grade_value >= 30 ) )
ORDER BY numberOfAmount DESC
)
WHERE ROWNUM <![CDATA[ <=]]> 30
</select>
</mapper>