Commit 97e19480 by guanchen

预付款订单按rewad中记录的原始佣金

按比例分别结算定金 和 尾款奖励
parent 2608110a
......@@ -214,6 +214,24 @@ public class AgentReward implements Serializable {
@TableField(value = "settle_in_advance")
private Integer settleInAdvance;
/**
* 失效时间 针对各种失效状态
*/
@TableField(value = "invalid_time")
private Date invalidTime;
/**
* 二次激活订单号
*/
@TableField(value = "tail_order_sn")
private String tailOrderSn;
/**
* 二次激活订单 定金和尾款订单 的 分成比例
*/
@TableField(value = "deposite_tail_rate")
private BigDecimal depositeTailRate;
private static final long serialVersionUID = 1L;
public static final String COL_AGENT_ID = "agent_id";
......@@ -283,4 +301,10 @@ public class AgentReward implements Serializable {
public static final String COL_SETTLE_TIME = "settle_time";
public static final String COL_SETTLE_IN_ADVANCE = "settle_in_advance";
public static final String COL_INVALID_TIME = "invalid_time";
public static final String COL_TAIL_ORDER_SN = "tail_order_sn";
public static final String COL_DEPOSITE_TAIL_RATE = "deposite_tail_rate";
}
\ No newline at end of file
......@@ -38,7 +38,7 @@ public class PartnerReward implements Serializable {
private Integer userPartnerLevel;
/**
* 合伙人奖励类型 60 用户在线充值 70 升高开户充值,80邀请奖励,90下单奖励,100购买超级VIP会员,110购物奖励
* 合伙人奖励类型 60 用户在线充值 70 升高开户充值,80邀请奖励,90下单奖励,100购买超级VIP会员,110购物奖励,120分享赚,130平台额外奖励
*/
@TableField(value = "reward_type")
private Integer rewardType;
......@@ -209,11 +209,29 @@ public class PartnerReward implements Serializable {
private Date settleTime;
/**
* 失效时间 针对各种失效订单
*/
@TableField(value = "invalid_time")
private Date invalidTime;
/**
* 是否提前结算: 1是,0否
*/
@TableField(value = "settle_in_advance")
private Integer settleInAdvance;
/**
* 二次激活订单号
*/
@TableField(value = "tail_order_sn")
private String tailOrderSn;
/**
* 二次激活订单 定金和尾款订单 的 分成比例
*/
@TableField(value = "deposite_tail_rate")
private BigDecimal depositeTailRate;
private static final long serialVersionUID = 1L;
public static final String COL_USER_ID = "user_id";
......@@ -282,5 +300,11 @@ public class PartnerReward implements Serializable {
public static final String COL_SETTLE_TIME = "settle_time";
public static final String COL_INVALID_TIME = "invalid_time";
public static final String COL_SETTLE_IN_ADVANCE = "settle_in_advance";
public static final String COL_TAIL_ORDER_SN = "tail_order_sn";
public static final String COL_DEPOSITE_TAIL_RATE = "deposite_tail_rate";
}
\ No newline at end of file
......@@ -395,7 +395,13 @@ public class AgentSettleTask {
private void add2UpdateRewardCommission(AgentReward agentReward, BigDecimal allMoney, List<AgentReward> updateCommisionList) {
String ratioAllStr = "";
try {
agentReward.setAllMoneyOri(allMoney);
BigDecimal allMoneyOri;
if (agentReward.getDepositeTailRate().compareTo(BigDecimal.ZERO) > 0) {
allMoneyOri = allMoney.multiply(agentReward.getDepositeTailRate());
} else {
allMoneyOri = allMoney;
}
agentReward.setAllMoneyOri(allMoneyOri);
ratioAllStr = agentReward.getRatioAll().replaceAll("[\\[\\]\"]", "");
/**
* 时间点之前的 需要乘比例数组 之后 再乘commission_rate
......@@ -405,7 +411,7 @@ public class AgentSettleTask {
if (!isEmpty(ratioAllStr)) {
String[] strs = ratioAllStr.split(",");
if (strs.length > 0) {
BigDecimal cash = allMoney;
BigDecimal cash = allMoneyOri;
for (String s : strs) {
BigDecimal ratio = new BigDecimal(s);
cash = cash.multiply(ratio);
......@@ -421,9 +427,9 @@ public class AgentSettleTask {
}
}
} else {
agentReward.setMoney(allMoney);
agentReward.setCommissionAcount(allMoney);
BigDecimal commission = allMoney.multiply(agentReward.getCommissionRate());
agentReward.setMoney(allMoneyOri);
agentReward.setCommissionAcount(allMoneyOri);
BigDecimal commission = allMoneyOri.multiply(agentReward.getCommissionRate());
agentReward.setAmount(commission);
agentReward.setCommission(commission);
agentReward.setSettleState(Constants.SETTLE_STATE_DONE);
......
......@@ -346,7 +346,13 @@ public class PartnerSettleTask {
private void add2UpdateRewardCommission(PartnerReward partnerReward, BigDecimal allMoney, List<PartnerReward> updateCommisionList) {
try {
partnerReward.setAllMoneyOri(allMoney);
BigDecimal allMoneyOri;
if (partnerReward.getDepositeTailRate().compareTo(BigDecimal.ZERO) > 0) {
allMoneyOri = allMoney.multiply(partnerReward.getDepositeTailRate());
} else {
allMoneyOri = allMoney;
}
partnerReward.setAllMoneyOri(allMoneyOri);
String ratioAllStr = partnerReward.getRatioAll().replaceAll("[\\[\\]\"]", "");
/**
* 时间点之前的 需要乘比例数组 之后 再乘commission_rate
......@@ -356,7 +362,7 @@ public class PartnerSettleTask {
if (! isEmpty(ratioAllStr)) {
String[] strs = ratioAllStr.split(",");
if (strs.length > 0) {
BigDecimal cash = allMoney;
BigDecimal cash = allMoneyOri;
for (String s : strs) {
BigDecimal ratio = new BigDecimal(s);
cash = cash.multiply(ratio);
......@@ -371,8 +377,8 @@ public class PartnerSettleTask {
}
}
} else {
partnerReward.setCash(allMoney);
BigDecimal commission = allMoney.multiply(partnerReward.getCommissionRate());
partnerReward.setCash(allMoneyOri);
BigDecimal commission = allMoneyOri.multiply(partnerReward.getCommissionRate());
partnerReward.setCommissionAcount(commission);
partnerReward.setSettleState(Constants.SETTLE_STATE_DONE);
partnerReward.setUpdatedAt(System.currentTimeMillis() / 1000L);
......
......@@ -38,6 +38,9 @@
<result column="ratio_all" property="ratioAll" />
<result column="settle_time" property="settleTime" />
<result column="settle_in_advance" property="settleInAdvance" />
<result column="invalid_time" property="invalidTime" />
<result column="tail_order_sn" property="tailOrderSn" />
<result column="deposite_tail_rate" property="depositeTailRate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
......@@ -46,7 +49,7 @@
commission_rate, commission, reference_id, settle_state, source_order, source_user_id,
source_user_level, goods_id, title, order_type, order_sn, sub_order_sn, reward_extend,
created_at, updated_at, deleted_at, create_time, all_money_ori, ratio_all, settle_time,
settle_in_advance
settle_in_advance, invalid_time, tail_order_sn, deposite_tail_rate
</sql>
<update id="updateBatch" parameterType="java.util.List">
<!--@mbg.generated-->
......@@ -222,6 +225,21 @@
when id = #{item.id} then #{item.settleInAdvance}
</foreach>
</trim>
<trim prefix="invalid_time = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.invalidTime}
</foreach>
</trim>
<trim prefix="tail_order_sn = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.tailOrderSn}
</foreach>
</trim>
<trim prefix="deposite_tail_rate = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.depositeTailRate}
</foreach>
</trim>
</trim>
where id in
<foreach close=")" collection="list" item="item" open="(" separator=", ">
......@@ -235,8 +253,8 @@
reward_status, money, amount, cash_code, recharge_time, commission_acount, commission_rate,
commission, reference_id, settle_state, source_order, source_user_id, source_user_level,
goods_id, title, order_type, order_sn, sub_order_sn, reward_extend, created_at,
updated_at, deleted_at, create_time, all_money_ori, ratio_all, settle_time, settle_in_advance
)
updated_at, deleted_at, create_time, all_money_ori, ratio_all, settle_time, settle_in_advance,
invalid_time, tail_order_sn, deposite_tail_rate)
values
<foreach collection="list" item="item" separator=",">
(#{item.agentId}, #{item.agentLevel}, #{item.userId}, #{item.rewardType}, #{item.rewardTypeChild},
......@@ -246,7 +264,8 @@
#{item.sourceOrder}, #{item.sourceUserId}, #{item.sourceUserLevel}, #{item.goodsId},
#{item.title}, #{item.orderType}, #{item.orderSn}, #{item.subOrderSn}, #{item.rewardExtend},
#{item.createdAt}, #{item.updatedAt}, #{item.deletedAt}, #{item.createTime}, #{item.allMoneyOri},
#{item.ratioAll}, #{item.settleTime}, #{item.settleInAdvance})
#{item.ratioAll}, #{item.settleTime}, #{item.settleInAdvance}, #{item.invalidTime},
#{item.tailOrderSn}, #{item.depositeTailRate})
</foreach>
</insert>
<insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentReward" useGeneratedKeys="true">
......@@ -290,6 +309,9 @@
ratio_all,
settle_time,
settle_in_advance,
invalid_time,
tail_order_sn,
deposite_tail_rate,
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -330,6 +352,9 @@
#{ratioAll},
#{settleTime},
#{settleInAdvance},
#{invalidTime},
#{tailOrderSn},
#{depositeTailRate},
</trim>
on duplicate key update
<trim suffixOverrides=",">
......@@ -370,6 +395,9 @@
ratio_all = #{ratioAll},
settle_time = #{settleTime},
settle_in_advance = #{settleInAdvance},
invalid_time = #{invalidTime},
tail_order_sn = #{tailOrderSn},
deposite_tail_rate = #{depositeTailRate},
</trim>
</insert>
<insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentReward" useGeneratedKeys="true">
......@@ -481,6 +509,15 @@
<if test="settleInAdvance != null">
settle_in_advance,
</if>
<if test="invalidTime != null">
invalid_time,
</if>
<if test="tailOrderSn != null">
tail_order_sn,
</if>
<if test="depositeTailRate != null">
deposite_tail_rate,
</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -589,6 +626,15 @@
<if test="settleInAdvance != null">
#{settleInAdvance},
</if>
<if test="invalidTime != null">
#{invalidTime},
</if>
<if test="tailOrderSn != null">
#{tailOrderSn},
</if>
<if test="depositeTailRate != null">
#{depositeTailRate},
</if>
</trim>
on duplicate key update
<trim suffixOverrides=",">
......@@ -697,6 +743,15 @@
<if test="settleInAdvance != null">
settle_in_advance = #{settleInAdvance},
</if>
<if test="invalidTime != null">
invalid_time = #{invalidTime},
</if>
<if test="tailOrderSn != null">
tail_order_sn = #{tailOrderSn},
</if>
<if test="depositeTailRate != null">
deposite_tail_rate = #{depositeTailRate},
</if>
</trim>
</insert>
<select id="selectAgentSettlePageByTs" resultType="com.lanren.huhu.partner.model.AgentSettle">
......@@ -862,7 +917,10 @@
all_money_ori,
ratio_all,
settle_time,
settle_in_advance
settle_in_advance,
invalid_time,
tail_order_sn,
deposite_tail_rate
FROM agent_reward
WHERE settle_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
......@@ -906,7 +964,10 @@
all_money_ori,
ratio_all,
settle_time,
settle_in_advance
settle_in_advance,
invalid_time,
tail_order_sn,
deposite_tail_rate
FROM agent_reward
WHERE settle_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
......@@ -917,7 +978,7 @@
</select>
<update id="updateRewardStatusByAgentIdAndTs">
UPDATE agent_reward
SET reward_status=120, settle_state=CASE WHEN settle_state>0 THEN 300 WHEN settle_state&lt;0 THEN settle_state ELSE 0 END
SET reward_status=120, settle_state=CASE WHEN settle_state&gt;0 THEN 300 WHEN settle_state&lt;0 THEN settle_state ELSE 0 END
WHERE settle_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND agent_id = #{agentId}
......
......@@ -37,7 +37,10 @@
<result column="is_show_on_client" property="isShowOnClient" />
<result column="tech_fee_rate" property="techFeeRate" />
<result column="settle_time" property="settleTime" />
<result column="invalid_time" property="invalidTime" />
<result column="settle_in_advance" property="settleInAdvance" />
<result column="tail_order_sn" property="tailOrderSn" />
<result column="deposite_tail_rate" property="depositeTailRate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
......@@ -46,7 +49,7 @@
source_user_level, invite_user_id, invite_user_level, invite_user_is_super, created_at,
updated_at, create_time, source_type, reward_times, settle_state, goods_id, title,
order_type, order_sn, sub_order_sn, all_money_ori, ratio_all, is_show_on_client,
tech_fee_rate, settle_time, settle_in_advance
tech_fee_rate, settle_time, invalid_time, settle_in_advance, tail_order_sn, deposite_tail_rate
</sql>
<update id="updateBatch" parameterType="java.util.List">
<!--@mbg.generated-->
......@@ -217,11 +220,26 @@
when id = #{item.id} then #{item.settleTime}
</foreach>
</trim>
<trim prefix="invalid_time = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.invalidTime}
</foreach>
</trim>
<trim prefix="settle_in_advance = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.settleInAdvance}
</foreach>
</trim>
<trim prefix="tail_order_sn = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.tailOrderSn}
</foreach>
</trim>
<trim prefix="deposite_tail_rate = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.depositeTailRate}
</foreach>
</trim>
</trim>
where id in
<foreach close=")" collection="list" item="item" open="(" separator=", ">
......@@ -236,7 +254,8 @@
source_user_level, invite_user_id, invite_user_level, invite_user_is_super, created_at,
updated_at, create_time, source_type, reward_times, settle_state, goods_id, title,
order_type, order_sn, sub_order_sn, all_money_ori, ratio_all, is_show_on_client,
tech_fee_rate, settle_time, settle_in_advance)
tech_fee_rate, settle_time, invalid_time, settle_in_advance, tail_order_sn, deposite_tail_rate
)
values
<foreach collection="list" item="item" separator=",">
(#{item.userId}, #{item.userIsSuper}, #{item.userPartnerLevel}, #{item.rewardType},
......@@ -246,7 +265,8 @@
#{item.createdAt}, #{item.updatedAt}, #{item.createTime}, #{item.sourceType}, #{item.rewardTimes},
#{item.settleState}, #{item.goodsId}, #{item.title}, #{item.orderType}, #{item.orderSn},
#{item.subOrderSn}, #{item.allMoneyOri}, #{item.ratioAll}, #{item.isShowOnClient},
#{item.techFeeRate}, #{item.settleTime}, #{item.settleInAdvance})
#{item.techFeeRate}, #{item.settleTime}, #{item.invalidTime}, #{item.settleInAdvance},
#{item.tailOrderSn}, #{item.depositeTailRate})
</foreach>
</insert>
<insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.PartnerReward" useGeneratedKeys="true">
......@@ -289,7 +309,10 @@
is_show_on_client,
tech_fee_rate,
settle_time,
invalid_time,
settle_in_advance,
tail_order_sn,
deposite_tail_rate,
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -329,7 +352,10 @@
#{isShowOnClient},
#{techFeeRate},
#{settleTime},
#{invalidTime},
#{settleInAdvance},
#{tailOrderSn},
#{depositeTailRate},
</trim>
on duplicate key update
<trim suffixOverrides=",">
......@@ -369,7 +395,10 @@
is_show_on_client = #{isShowOnClient},
tech_fee_rate = #{techFeeRate},
settle_time = #{settleTime},
invalid_time = #{invalidTime},
settle_in_advance = #{settleInAdvance},
tail_order_sn = #{tailOrderSn},
deposite_tail_rate = #{depositeTailRate},
</trim>
</insert>
<insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.PartnerReward" useGeneratedKeys="true">
......@@ -478,9 +507,18 @@
<if test="settleTime != null">
settle_time,
</if>
<if test="invalidTime != null">
invalid_time,
</if>
<if test="settleInAdvance != null">
settle_in_advance,
</if>
<if test="tailOrderSn != null">
tail_order_sn,
</if>
<if test="depositeTailRate != null">
deposite_tail_rate,
</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -586,9 +624,18 @@
<if test="settleTime != null">
#{settleTime},
</if>
<if test="invalidTime != null">
#{invalidTime},
</if>
<if test="settleInAdvance != null">
#{settleInAdvance},
</if>
<if test="tailOrderSn != null">
#{tailOrderSn},
</if>
<if test="depositeTailRate != null">
#{depositeTailRate},
</if>
</trim>
on duplicate key update
<trim suffixOverrides=",">
......@@ -694,9 +741,18 @@
<if test="settleTime != null">
settle_time = #{settleTime},
</if>
<if test="invalidTime != null">
invalid_time = #{invalidTime},
</if>
<if test="settleInAdvance != null">
settle_in_advance = #{settleInAdvance},
</if>
<if test="tailOrderSn != null">
tail_order_sn = #{tailOrderSn},
</if>
<if test="depositeTailRate != null">
deposite_tail_rate = #{depositeTailRate},
</if>
</trim>
</insert>
<select id="selectOrderRewardPageByTs" resultType="com.lanren.huhu.partner.domain.PartnerReward">
......@@ -735,7 +791,10 @@
is_show_on_client,
tech_fee_rate,
settle_time,
settle_in_advance
invalid_time,
settle_in_advance,
tail_order_sn,
deposite_tail_rate
FROM partner_reward
WHERE settle_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
......@@ -779,7 +838,10 @@
is_show_on_client,
tech_fee_rate,
settle_time,
settle_in_advance
invalid_time,
settle_in_advance,
tail_order_sn,
deposite_tail_rate
FROM partner_reward
WHERE settle_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
......@@ -793,7 +855,7 @@
user_id,
SUM(CASE WHEN reward_type IN (110,120) THEN commission_acount ELSE 0 END) -
SUM(CASE WHEN reward_type IN (110, 120) AND recharge_time &lt; '2019-08-16 12:03:50' THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
WHEN reward_type IN (110, 120) AND tech_fee_rate > 0 THEN all_money_ori * tech_fee_rate
WHEN reward_type IN (110, 120) AND tech_fee_rate &gt; 0 THEN all_money_ori * tech_fee_rate
ELSE 0
END) sum_order_commission,
SUM(CASE WHEN reward_type=60 THEN commission_acount ELSE 0 END) -
......@@ -803,7 +865,7 @@
SUM(CASE WHEN recharge_time &lt; '2019-08-16 12:03:50' AND reward_type IN (60) THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
ELSE 0 END) tech_charge_redpack,
SUM(CASE WHEN reward_type IN (110, 120) AND recharge_time &lt; '2019-08-16 12:03:50' THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
WHEN reward_type IN (110, 120) AND tech_fee_rate > 0 THEN all_money_ori * tech_fee_rate
WHEN reward_type IN (110, 120) AND tech_fee_rate &gt; 0 THEN all_money_ori * tech_fee_rate
ELSE 0
END) tech_charge_order,
0 wx_income,
......@@ -835,7 +897,7 @@
user_id,
SUM(CASE WHEN reward_type IN (110,120) THEN commission_acount ELSE 0 END) -
SUM(CASE WHEN reward_type IN (110, 120) AND recharge_time &lt; '2019-08-16 12:03:50' THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
WHEN reward_type IN (110, 120) AND tech_fee_rate > 0 THEN all_money_ori * tech_fee_rate
WHEN reward_type IN (110, 120) AND tech_fee_rate &gt; 0 THEN all_money_ori * tech_fee_rate
ELSE 0
END) sum_order_commission,
SUM(CASE WHEN reward_type=60 THEN commission_acount ELSE 0 END) -
......@@ -845,7 +907,7 @@
SUM(CASE WHEN recharge_time &lt; '2019-08-16 12:03:50' AND reward_type IN (60) THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
ELSE 0 END) tech_charge_redpack,
SUM(CASE WHEN reward_type IN (110, 120) AND recharge_time &lt; '2019-08-16 12:03:50' THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
WHEN reward_type IN (110, 120) AND tech_fee_rate > 0 THEN all_money_ori * tech_fee_rate
WHEN reward_type IN (110, 120) AND tech_fee_rate &gt; 0 THEN all_money_ori * tech_fee_rate
ELSE 0
END) tech_charge_order,
0 wx_income,
......@@ -883,7 +945,7 @@
AND reward_type != 130
AND settle_in_advance = 0
</update>
<!--&lt;select id="getPartnerSummaryContentByUidAndTime" resultType="com.lanren.huhu.partner.model.PartnerSummaryContent"&gt;-->
<!--&amp;amp;lt;select id="getPartnerSummaryContentByUidAndTime" resultType="com.lanren.huhu.partner.model.PartnerSummaryContent"&amp;amp;gt;-->
<!--SELECT-->
<!--SUM(if(reward_type=60 AND is_show_on_client=1, commission_acount, 0)) AS cash,-->
<!--COUNT(reward_type=60 OR NULL) AS num,-->
......@@ -901,5 +963,5 @@
<!--AND reward_status=120-->
<!--AND reward_type != 130-->
<!--AND user_id=#{userId}-->
<!--&lt;/select&gt;-->
<!--&amp;amp;lt;/select&amp;amp;gt;-->
</mapper>
\ No newline at end of file
......@@ -248,3 +248,137 @@ where settle_time>='2019-09-01 00:00:00'
and ratio_all like '%0.03]'
and ratio_all not like ',0.03]'
and ratio_all='["1","0.04500000","0.01"0.03]';
结算前洗数据
ALTER TABLE `huhu_finance`.`agent_reward`
ADD COLUMN `tail_order_sn` varchar(64) NULL DEFAULT '' COMMENT '二次激活订单号' AFTER `invalid_time`;
ALTER TABLE `huhu_finance`.`agent_reward`
ADD COLUMN `deposite_tail_rate` decimal(11, 8) NULL DEFAULT 0 COMMENT '二次激活订单 定金和尾款订单 的 分成比例' AFTER `tail_order_sn`;
ALTER TABLE `huhu_finance`.`partner_reward`
ADD COLUMN `tail_order_sn` varchar(64) NULL DEFAULT '' COMMENT '二次激活订单号' AFTER `settle_in_advance`;
ALTER TABLE `huhu_finance`.`partner_reward`
ADD COLUMN `deposite_tail_rate` decimal(11, 8) NULL DEFAULT 0 COMMENT '二次激活订单 定金和尾款订单 的 分成比例' AFTER `tail_order_sn`;
ALTER TABLE `huhu_finance`.`agent_reward`
ADD INDEX `idx_ref`(`reference_id`) USING BTREE;
create table update_partner_agent_tail_order_reward(
type varchar(12),
order_type varchar(32),
order_sn varchar(64),
tail_order_sn varchar(64),
order_id varchar(32),
cnt_tail_order_sn int(11),
all_money decimal(20,6),
sum_all_money decimal(20,6),
deposite_tail_rate decimal(11,8)
);
ALTER TABLE `huhu_finance`.`update_partner_agent_tail_order_reward`
ADD PRIMARY KEY (`type`, `order_type`, `order_sn`, `tail_order_sn`, `order_id`);
INSERT INTO update_partner_agent_tail_order_reward(type,order_type,order_sn,tail_order_sn,order_id,all_money)
SELECT
DISTINCT
'partner',
a.order_type,
a.order_sn,
b.tail_order_sn_,
a.reference_id,
a.all_money_ori
FROM partner_reward a
JOIN
(SELECT
order_id,
max(REPLACE(order_sn,CONCAT(SUBSTRING_INDEX(order_sn,'_',1),'_'),'')) order_sn_,
max(type) order_type_,
max(order_sn) tail_order_sn_
FROM orders_active
WHERE order_sn like '%\_%' and settle_time between '2019-11-01 00:00:00' and '2019-11-30 23:59:59'
GROUP BY 1
) b on a.reference_id=b.order_id
WHERE a.reward_type=110 and a.settle_time between '2019-11-01 00:00:00' and '2019-11-30 23:59:59';
INSERT INTO update_partner_agent_tail_order_reward(type,order_type,order_sn,tail_order_sn,order_id,all_money)
SELECT
DISTINCT
'partner',
a.order_type,
a.order_sn,
'' tail_order_sn_,
a.reference_id,
a.all_money_ori
FROM partner_reward a
JOIN update_partner_agent_tail_order_reward b on a.reward_type=110 and a.order_type=b.order_type and a.order_sn=b.order_sn and b.type='partner'
WHERE a.reference_id<>b.order_id;
INSERT INTO update_partner_agent_tail_order_reward(type,order_type,order_sn,tail_order_sn,order_id,all_money)
SELECT
DISTINCT
'agent',
a.order_type,
a.order_sn,
b.tail_order_sn_,
a.reference_id,
a.all_money_ori
FROM agent_reward a
JOIN
(SELECT
order_id,
max(REPLACE(order_sn,CONCAT(SUBSTRING_INDEX(order_sn,'_',1),'_'),'')) order_sn_,
max(type) order_type_,
max(order_sn) tail_order_sn_
FROM orders_active
WHERE order_sn like '%\_%' and settle_time between '2019-11-01 00:00:00' and '2019-11-30 23:59:59'
GROUP BY 1
) b on a.reference_id=b.order_id
WHERE a.reward_type in (300,750) and a.settle_time between '2019-11-01 00:00:00' and '2019-11-30 23:59:59';
INSERT INTO update_partner_agent_tail_order_reward(type,order_type,order_sn,tail_order_sn,order_id,all_money)
SELECT
DISTINCT
'agent',
a.order_type,
a.order_sn,
'' tail_order_sn_,
a.reference_id,
a.all_money_ori
FROM agent_reward a
JOIN update_partner_agent_tail_order_reward b on a.reward_type in (300,750) and a.order_type=b.order_type and a.order_sn=b.order_sn and b.type='agent'
WHERE a.reference_id<>b.order_id;
UPDATE update_partner_agent_tail_order_reward a
JOIN
(SELECT
type,
order_type,
order_sn,
count(distinct tail_order_sn) cnt_tail_order_sn_,
sum(all_money) sum_all_money_
FROM update_partner_agent_tail_order_reward
GROUP BY 1,2,3
) b on a.type=b.type and a.order_type=b.order_type and a.order_sn=b.order_sn
SET a.cnt_tail_order_sn=b.cnt_tail_order_sn_,a.sum_all_money=b.sum_all_money_;
DELETE FROM update_partner_agent_tail_order_reward WHERE cnt_tail_order_sn=1;
UPDATE update_partner_agent_tail_order_reward SET deposite_tail_rate=all_money/sum_all_money;
UPDATE partner_reward a
JOIN update_partner_agent_tail_order_reward b on a.reward_type=110 and a.reference_id=b.order_id
SET a.tail_order_sn=b.tail_order_sn,a.deposite_tail_rate=b.deposite_tail_rate;
UPDATE agent_reward a
JOIN update_partner_agent_tail_order_reward b on a.reward_type in (300,750) and a.reference_id=b.order_id
SET a.tail_order_sn=b.tail_order_sn,a.deposite_tail_rate=b.deposite_tail_rate;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment