| 
									
										
										
										
											2025-04-24 19:02:08 +08:00
										 |  |  | <?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.bonus.bonus.mapper.CuMemberBonusRangeMapper"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 通用查询映射结果 --> | 
					
						
							|  |  |  |     <resultMap id="CuMemberBonusRange" type="com.hzs.common.domain.member.ext.CuMemberBonusRangeExt"> | 
					
						
							|  |  |  |         <id column="PK_ID" property="pkId"/> | 
					
						
							|  |  |  |         <result column="DEL_FLAG" property="delFlag"/> | 
					
						
							|  |  |  |         <result column="PK_COUNTRY" property="pkCountry"/> | 
					
						
							|  |  |  |         <result column="PK_CREATOR" property="pkCreator"/> | 
					
						
							|  |  |  |         <result column="CREATION_TIME" property="creationTime"/> | 
					
						
							|  |  |  |         <result column="PK_MODIFIED" property="pkModified"/> | 
					
						
							|  |  |  |         <result column="MODIFIED_TIME" property="modifiedTime"/> | 
					
						
							|  |  |  |         <result column="PK_BONUS" property="pkBonus"/> | 
					
						
							|  |  |  |         <result column="PK_ORDER" property="pkOrder"/> | 
					
						
							|  |  |  |         <result column="PK_ORDER_ITEMS" property="pkOrderItems"/> | 
					
						
							|  |  |  |         <result column="PK_BONUS_ITEMS" property="pkBonusItems"/> | 
					
						
							|  |  |  |         <result column="INCOME_STATUS" property="incomeStatus"/> | 
					
						
							|  |  |  |         <result column="CAL_TYPE" property="calType"/> | 
					
						
							|  |  |  |         <result column="CAL_ACHIEVE" property="calAchieve"/> | 
					
						
							|  |  |  |         <result column="CAL_VALUE" property="calValue"/> | 
					
						
							|  |  |  |         <result column="PK_RANGE" property="pkRange"/> | 
					
						
							|  |  |  |         <result column="PK_BEFORE_RANGE" property="pkBeforeRange"/> | 
					
						
							|  |  |  |         <result column="PRETAX_INCOME" property="pretaxIncome"/> | 
					
						
							|  |  |  |         <result column="INCOME_TAX" property="incomeTax"/> | 
					
						
							|  |  |  |         <result column="REAL_INCOME" property="realIncome"/> | 
					
						
							|  |  |  |         <result column="REMARK" property="remark"/> | 
					
						
							|  |  |  |         <result column="INCOME_RATIO" property="incomeRatio"/> | 
					
						
							|  |  |  |         <result column="INCOME_DIAL_RATIO" property="incomeDialRatio"/> | 
					
						
							|  |  |  |         <result column="ORDER_DIAL_RATIO" property="orderDialRatio"/> | 
					
						
							|  |  |  |         <result column="ORDER_CODE" property="orderCode"/> | 
					
						
							|  |  |  |         <result column="ORDER_TYPE" property="orderType"/> | 
					
						
							|  |  |  |         <result column="PK_SOURCE_COUNTRY" property="pkSourceCountry"/> | 
					
						
							|  |  |  |         <result column="SOURCE_COUNTRY_NAME" property="sourceCountryName"/> | 
					
						
							|  |  |  |         <result column="SOURCE_MEMBER_CODE" property="sourceMemberCode"/> | 
					
						
							|  |  |  |         <result column="SOURCE_MEMBER_NAME" property="sourceMemberName"/> | 
					
						
							|  |  |  |         <result column="PK_RATE" property="pkRate"/> | 
					
						
							|  |  |  |         <result column="ORDER_AMOUNT" property="orderAmount"/> | 
					
						
							|  |  |  |         <result column="ORDER_ACHIEVE" property="orderAchieve"/> | 
					
						
							|  |  |  |         <result column="MEMBER_CODE" property="memberCode"/> | 
					
						
							|  |  |  |         <result column="MEMBER_NAME" property="memberName"/> | 
					
						
							|  |  |  |         <result column="PK_SETTLE_GRADE" property="pkSettleGrade"/> | 
					
						
							|  |  |  |         <result column="PK_AWARDS" property="pkAwards"/> | 
					
						
							|  |  |  |         <result column="VERTEX_NAME" property="vertexName"/> | 
					
						
							|  |  |  |         <result column="TEAM_NAME" property="teamName"/> | 
					
						
							|  |  |  |         <result column="TEAM_CODE" property="teamCode"/> | 
					
						
							|  |  |  |         <result column="SETTLE_DATE" property="settleDate"/> | 
					
						
							|  |  |  |         <result column="SETTLE_COUNTRY" property="settleCountry"/> | 
					
						
							|  |  |  |         <result column="PERIOD" property="period"/> | 
					
						
							|  |  |  |         <result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         <result column="service_code" property="serviceCode"/> | 
					
						
							|  |  |  |         <result column="pk_vertex" property="pkVertex"/> | 
					
						
							|  |  |  |         <result column="nick_name" property="nickName"/> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     </resultMap> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <insert id="batchInsertCuMemberBonusRange"> | 
					
						
							|  |  |  |         insert ALL | 
					
						
							|  |  |  |         <foreach item="item" index="index" collection="cuMemberBonusRangeList" separator=" "> | 
					
						
							|  |  |  |             into cu_member_bonus_range(pk_bonus,pk_order,pk_order_items,pk_bonus_items,income_status, | 
					
						
							|  |  |  |             cal_type,cal_achieve,cal_value,pk_range,pk_before_range,pretax_income, | 
					
						
							|  |  |  |             income_tax,real_income,remark, | 
					
						
							|  |  |  |             income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator) | 
					
						
							|  |  |  |             values | 
					
						
							|  |  |  |             ( | 
					
						
							|  |  |  |             #{item.pkBonus},#{item.pkOrder},#{item.pkOrderItems},#{item.pkBonusItems},#{item.incomeStatus}, | 
					
						
							|  |  |  |             #{item.calType},#{item.calAchieve},#{item.calValue},#{item.pkRange},#{item.pkBeforeRange}, | 
					
						
							|  |  |  |             #{item.pretaxIncome},#{item.incomeTax},#{item.realIncome}, | 
					
						
							|  |  |  |             #{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio}, | 
					
						
							|  |  |  |             #{item.pkCountry},#{item.pkCreator} | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |         </foreach> | 
					
						
							|  |  |  |         SELECT 1 FROM dual | 
					
						
							|  |  |  |     </insert> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <delete id="deleteCuMemberBonusRange"> | 
					
						
							|  |  |  |         delete | 
					
						
							|  |  |  |         from CU_MEMBER_BONUS_RANGE | 
					
						
							|  |  |  |         where PK_BONUS in ( | 
					
						
							|  |  |  |             select pk_id | 
					
						
							|  |  |  |             from cu_member_bonus | 
					
						
							|  |  |  |             where period = #{period} and grant_status <= 2) | 
					
						
							|  |  |  |     </delete> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <select id="queryMemberBonusRangeByBonusItems" resultMap="CuMemberBonusRange"> | 
					
						
							|  |  |  |         select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name, | 
					
						
							|  |  |  |         cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount, | 
					
						
							|  |  |  |         so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status, | 
					
						
							|  |  |  |         tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name, | 
					
						
							|  |  |  |         b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio, | 
					
						
							|  |  |  |         cu.service_code, | 
					
						
							|  |  |  |         cu.pk_vertex, | 
					
						
							|  |  |  |         cu.nick_name from sa_order so | 
					
						
							|  |  |  |         inner join ( | 
					
						
							|  |  |  |         select cb.pk_member,cr.pk_order,cb.period,cb.pk_country,cr.pk_bonus_items,cr.income_status,cr.CAL_ACHIEVE,cr.pretax_income,cr.income_tax,cr.real_income, | 
					
						
							|  |  |  |         cr.remark,cr.income_ratio,cr.income_dial_ratio,cr.order_dial_ratio from cu_member_bonus cb | 
					
						
							|  |  |  |         inner join cu_member_bonus_range cr | 
					
						
							|  |  |  |         on cb.pk_id = cr.pk_bonus | 
					
						
							|  |  |  |         where cb.income_status=0 and cr.income_status = 0 | 
					
						
							|  |  |  |         and cr.pk_bonus_items = #{pkBonusItems} | 
					
						
							|  |  |  |         <if test="pkBonus != null"> | 
					
						
							|  |  |  |             and cr.pk_bonus = #{pkBonus} | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |         <if test="period != null"> | 
					
						
							|  |  |  |             and cb.period =#{period} | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |         ) b | 
					
						
							|  |  |  |         on so.pk_id = b.pk_order | 
					
						
							|  |  |  |         inner join cu_member tar | 
					
						
							|  |  |  |         on b.pk_member = tar.pk_id | 
					
						
							|  |  |  |         inner join cu_member cu | 
					
						
							|  |  |  |         on so.pk_member = cu.pk_id | 
					
						
							|  |  |  |         inner join cu_member_settle_period cp | 
					
						
							|  |  |  |         on b.period = cp.pk_id | 
					
						
							|  |  |  |         left join bd_vertex bv | 
					
						
							|  |  |  |         on bv.pk_id = tar.pk_vertex | 
					
						
							|  |  |  |         left join cu_member_team ct | 
					
						
							|  |  |  |         on ct.pk_id = tar.pk_team_code | 
					
						
							|  |  |  |         left join bd_currency bc | 
					
						
							|  |  |  |         on bc.pk_id=so.pk_rate | 
					
						
							|  |  |  |         left join bd_grade bg | 
					
						
							|  |  |  |         on bg.pk_id=tar.pk_settle_grade | 
					
						
							|  |  |  |         left join bd_awards ba | 
					
						
							|  |  |  |         on ba.pk_id=tar.pk_awards | 
					
						
							|  |  |  |         left join bd_country bt | 
					
						
							|  |  |  |         on bt.pk_id=so.pk_country | 
					
						
							|  |  |  |         <where> | 
					
						
							|  |  |  |             1=1 and b.pk_member=#{pkMember} | 
					
						
							|  |  |  |             <if test="orderCode != null and orderCode != ''"> | 
					
						
							|  |  |  |                 and so.order_code like #{orderCode}|| '%' | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="sourceMemberCode != null and sourceMemberCode != ''"> | 
					
						
							|  |  |  |                 and (cu.member_code = #{sourceMemberCode} or cu.service_code = #{sourceMemberCode}) | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="sourceMemberName != null and sourceMemberName != ''"> | 
					
						
							|  |  |  |                 and (cu.member_name = #{sourceMemberName} or cu.nick_name = #{sourceMemberName}) | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="startDate != null"> | 
					
						
							|  |  |  |                 and cp.settle_date >= #{startDate, jdbcType=DATE} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="endDate != null"> | 
					
						
							|  |  |  |                 and cp.settle_date < #{endDate, jdbcType=DATE} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |         </where> | 
					
						
							|  |  |  |         order by b.period,b.pk_bonus_items,b.real_income desc | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  |     <select id="queryMemberBonusRangeByBonusItemsForServer" resultMap="CuMemberBonusRange"> | 
					
						
							|  |  |  |         select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name, | 
					
						
							|  |  |  |         cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount, | 
					
						
							|  |  |  |         so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status, | 
					
						
							|  |  |  |         tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name, | 
					
						
							|  |  |  |         b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,bct.short_name settle_country from ( | 
					
						
							|  |  |  |         select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order | 
					
						
							|  |  |  |         ) so | 
					
						
							|  |  |  |         inner join ( | 
					
						
							| 
									
										
										
										
											2025-07-25 12:04:30 +08:00
										 |  |  |         select cb.pk_member,cr.pk_order,cb.period,cb.pk_country,cr.pk_bonus_items,cr.income_status, | 
					
						
							|  |  |  |         cr.CAL_ACHIEVE,cr.pretax_income,cr.income_tax,cr.real_income, | 
					
						
							|  |  |  |         cr.remark,cr.income_ratio,cr.income_dial_ratio,cr.order_dial_ratio | 
					
						
							|  |  |  |         from cu_member_bonus cb | 
					
						
							| 
									
										
										
										
											2025-04-24 19:02:08 +08:00
										 |  |  |         inner join CU_MEMBER_BONUS_RANGE cr | 
					
						
							|  |  |  |         on cb.pk_id = cr.pk_bonus | 
					
						
							|  |  |  |         where 1=1 | 
					
						
							|  |  |  |         <if test="bonusParam.period != null"> | 
					
						
							|  |  |  |             and cb.period =#{bonusParam.period} | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |         <if test="bonusParam.vertexList != null and bonusParam.vertexList.size >0"> | 
					
						
							|  |  |  |             and exists( | 
					
						
							|  |  |  |             select 1 from ( | 
					
						
							|  |  |  |             <foreach collection="bonusParam.vertexList" item="item" separator=" union "> | 
					
						
							|  |  |  |                 select pk_id from cu_member | 
					
						
							|  |  |  |                 where del_flag=0 and PAY_STATUS=1 | 
					
						
							|  |  |  |                 start with pk_id = #{item} | 
					
						
							|  |  |  |                 connect by pk_parent = prior pk_id | 
					
						
							|  |  |  |             </foreach> | 
					
						
							|  |  |  |             <if test="bonusParam.teamList != null and bonusParam.teamList.size >0"> | 
					
						
							|  |  |  |                 union | 
					
						
							|  |  |  |                 <foreach collection="bonusParam.teamList" item="item" separator=" union "> | 
					
						
							|  |  |  |                     select pk_id from cu_member | 
					
						
							|  |  |  |                     where del_flag=0 and PAY_STATUS=1 | 
					
						
							|  |  |  |                     start with pk_id = #{item} | 
					
						
							|  |  |  |                     connect by pk_parent = prior pk_id | 
					
						
							|  |  |  |                 </foreach> | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             ) a | 
					
						
							|  |  |  |             where a.pk_id = cb.pk_member | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |         ) b | 
					
						
							|  |  |  |         on so.pk_id = b.pk_order | 
					
						
							|  |  |  |         inner join cu_member tar | 
					
						
							|  |  |  |         on b.pk_member = tar.pk_id | 
					
						
							|  |  |  |         inner join cu_member cu | 
					
						
							|  |  |  |         on so.pk_member = cu.pk_id | 
					
						
							|  |  |  |         inner join cu_member_settle_period cp | 
					
						
							|  |  |  |         on b.period = cp.pk_id | 
					
						
							|  |  |  |         left join bd_vertex bv | 
					
						
							|  |  |  |         on bv.pk_id = tar.pk_vertex | 
					
						
							|  |  |  |         left join cu_member_team ct | 
					
						
							|  |  |  |         on ct.pk_id = tar.pk_team_code | 
					
						
							|  |  |  |         left join bd_currency bc | 
					
						
							|  |  |  |         on bc.pk_id=so.pk_rate | 
					
						
							|  |  |  |         left join bd_grade bg | 
					
						
							|  |  |  |         on bg.pk_id=tar.pk_settle_grade | 
					
						
							|  |  |  |         left join bd_awards ba | 
					
						
							|  |  |  |         on ba.pk_id=tar.pk_awards | 
					
						
							|  |  |  |         left join bd_country bt | 
					
						
							|  |  |  |         on bt.pk_id=so.pk_country | 
					
						
							|  |  |  |         left join bd_country bct | 
					
						
							|  |  |  |         on bct.pk_id=tar.pk_settle_country | 
					
						
							|  |  |  |         <where> | 
					
						
							|  |  |  |             1=1 | 
					
						
							|  |  |  |             <if test="bonusParam.pkCountry != null"> | 
					
						
							|  |  |  |                 and tar.pk_settle_country = #{bonusParam.pkCountry} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.orderType != null"> | 
					
						
							|  |  |  |                 and so.order_type = #{bonusParam.orderType} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.pkVertex != null"> | 
					
						
							|  |  |  |                 and bv.pk_id = #{bonusParam.pkVertex} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.pkTeamCode != null"> | 
					
						
							|  |  |  |                 and ct.pk_id =#{bonusParam.pkTeamCode} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.sourceCountry != null"> | 
					
						
							|  |  |  |                 and bt.pk_id = #{bonusParam.sourceCountry} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.incomeStatus != null"> | 
					
						
							|  |  |  |                 and b.income_status = #{bonusParam.incomeStatus} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.orderCode != null and bonusParam.orderCode != ''"> | 
					
						
							|  |  |  |                 and so.order_code like #{bonusParam.orderCode}|| '%' | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''"> | 
					
						
							|  |  |  |                 and cu.member_code = #{bonusParam.sourceMemberCode} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''"> | 
					
						
							|  |  |  |                 and cu.member_name = #{bonusParam.sourceMemberName} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.memberCode != null and bonusParam.memberCode != ''"> | 
					
						
							|  |  |  |                 and tar.member_code = #{bonusParam.memberCode} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.memberName != null and bonusParam.memberName != ''"> | 
					
						
							|  |  |  |                 and tar.member_name = #{bonusParam.memberName} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.settleCountry != null"> | 
					
						
							|  |  |  |                 and tar.pk_settle_country = #{bonusParam.settleCountry} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.startDate != null"> | 
					
						
							|  |  |  |                 and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |             <if test="bonusParam.endDate != null"> | 
					
						
							|  |  |  |                 and cp.settle_date <#{bonusParam.endDate, jdbcType=DATE} | 
					
						
							|  |  |  |             </if> | 
					
						
							|  |  |  |         </where> | 
					
						
							|  |  |  |         <choose> | 
					
						
							|  |  |  |             <when test="bonusParam.sort == null or bonusParam.sort ==1">order by cp.settle_date desc, b.real_income desc</when> | 
					
						
							|  |  |  |             <when test="bonusParam.sort ==2">order by tar.pk_vertex, b.real_income desc</when> | 
					
						
							|  |  |  |             <otherwise>order by tar.pk_teamcode</otherwise> | 
					
						
							|  |  |  |         </choose> | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | </mapper> |