Commit c596bcaa by guanchen

更新--9月份 结算 合伙人/代理商 收入

parent d9d3dd0a
......@@ -192,7 +192,8 @@
<redis.host>10.9.48.21</redis.host>
<redis.password>Ws_LrqD_20180319_REdis_MQLRd</redis.password>
<spring.profiles.active>prod</spring.profiles.active>
<logfile_path>/data/logs/huhu/lanren</logfile_path>
<!--<logfile_path>/data/logs/huhu/lanren</logfile_path>-->
<logfile_path>/Users/chen/Develop/workspace/partner/data/release/dev/logs</logfile_path>
<providers-path>/data/java/service</providers-path>
</properties>
......
package com.lanren.huhu.partner.constants;
import com.lanren.huhu.partner.util.DateUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
......@@ -132,6 +135,8 @@ public class Constants {
public static final int AGENT_REWARD_TYPE_PURCHASE = 300;
public static final int AGENT_REWARD_TYPE_SHARE = 60;
public static final Date NEW_SETTLE_RULE_TIME = DateUtils.parse("2019-08-16 12:03:50");
static {
/**
* 代理商平推奖励比例配置
......
......@@ -34,4 +34,18 @@ public class OrderParam extends BaseModel {
}
return false;
}
@Override
public int hashCode() {
StringBuilder sb = new StringBuilder();
sb.append(orderType);
sb.append(orderSn);
char[] charArr = sb.toString().toCharArray();
int hash = 0;
for(char c : charArr) {
hash = hash * 131 + c;
}
return hash;
}
}
......@@ -41,4 +41,17 @@ public class ParentAgent extends BaseModel {
}
return false;
}
@Override
public int hashCode() {
StringBuilder sb = new StringBuilder();
sb.append(agentId);
char[] charArr = sb.toString().toCharArray();
int hash = 0;
for(char c : charArr) {
hash = hash * 131 + c;
}
return hash;
}
}
......@@ -39,4 +39,17 @@ public class ParentPartner extends BaseModel {
}
return false;
}
@Override
public int hashCode() {
StringBuilder sb = new StringBuilder();
sb.append(userId);
char[] charArr = sb.toString().toCharArray();
int hash = 0;
for(char c : charArr) {
hash = hash * 131 + c;
}
return hash;
}
}
......@@ -36,4 +36,19 @@ public class SubOrderParam extends BaseModel {
}
return false;
}
@Override
public int hashCode() {
StringBuilder sb = new StringBuilder();
sb.append(orderType);
sb.append(orderSn);
sb.append(subOrderSn);
char[] charArr = sb.toString().toCharArray();
int hash = 0;
for(char c : charArr) {
hash = hash * 131 + c;
}
return hash;
}
}
......@@ -21,6 +21,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import static com.lanren.huhu.partner.constants.Constants.NEW_SETTLE_RULE_TIME;
import static org.springframework.util.StringUtils.isEmpty;
/**
......@@ -183,7 +184,8 @@ public class AgentSettleTask {
*/
if ( (agentReward.getRewardType() == Constants.AGENT_REWARD_TYPE_PURCHASE || agentReward.getRewardType() == Constants.AGENT_REWARD_TYPE_SELF_ORDER)
&& agentReward.getSettleState() != Constants.SETTLE_STATE_DONE) {
if (isEmpty(agentReward.getOrderType()) || isEmpty(agentReward.getOrderSn()) || isEmpty(agentReward.getRatioAll())) {
// if (isEmpty(agentReward.getOrderType()) || isEmpty(agentReward.getOrderSn()) || isEmpty(agentReward.getRatioAll())) {
if (isEmpty(agentReward.getOrderType()) || isEmpty(agentReward.getOrderSn())) {
/**
* 历史数据: 没有记录订单号 或者 没有记录比例 不更新奖励金额
*/
......@@ -251,8 +253,9 @@ public class AgentSettleTask {
if ( (agentReward.getRewardType() == Constants.AGENT_REWARD_TYPE_SHARE || agentReward.getRewardType() == Constants.AGENT_REWARD_TYPE_SHARE_ORDER)
&& agentReward.getSettleState() > 0
&& agentReward.getSettleState() != Constants.SETTLE_STATE_DONE) {
if (isEmpty(agentReward.getOrderType()) || isEmpty(agentReward.getOrderSn()) || isEmpty(agentReward.getSubOrderSn())
|| isEmpty(agentReward.getRatioAll())) {
// if (isEmpty(agentReward.getOrderType()) || isEmpty(agentReward.getOrderSn()) || isEmpty(agentReward.getSubOrderSn())
// || isEmpty(agentReward.getRatioAll())) {
if (isEmpty(agentReward.getOrderType()) || isEmpty(agentReward.getOrderSn()) || isEmpty(agentReward.getSubOrderSn())) {
/**
* 历史数据: 没有记录子订单号 或者 没有记录比例 不更新奖励金额
*/
......@@ -388,25 +391,43 @@ public class AgentSettleTask {
private void add2UpdateRewardCommission(AgentReward agentReward, BigDecimal allMoney, List<AgentReward> updateCommisionList) {
try {
if (agentReward.getId() == 336831) {
logger.info("336831 debug" );
}
agentReward.setAllMoneyOri(allMoney);
String ratioAllStr = agentReward.getRatioAll().replaceAll("[\\[\\]\"]", "");
if (!isEmpty(ratioAllStr)) {
String[] strs = ratioAllStr.split(",");
if (strs.length > 0) {
BigDecimal cash = allMoney;
for (String s : strs) {
BigDecimal ratio = new BigDecimal(s);
cash = cash.multiply(ratio);
/**
* 时间点之前的 需要乘比例数组 之后 再乘commission_rate
* 时间点之后的 直接乘commission_rate
*/
if (agentReward.getRechargeTime().compareTo(NEW_SETTLE_RULE_TIME) < 0) {
if (!isEmpty(ratioAllStr)) {
String[] strs = ratioAllStr.split(",");
if (strs.length > 0) {
BigDecimal cash = allMoney;
for (String s : strs) {
BigDecimal ratio = new BigDecimal(s);
cash = cash.multiply(ratio);
}
agentReward.setMoney(cash);
agentReward.setCommissionAcount(cash);
BigDecimal commission = cash.multiply(agentReward.getCommissionRate());
agentReward.setAmount(commission);
agentReward.setCommission(commission);
agentReward.setSettleState(Constants.SETTLE_STATE_DONE);
agentReward.setUpdatedAt(System.currentTimeMillis() / 1000L);
updateCommisionList.add(agentReward);
}
agentReward.setMoney(cash);
agentReward.setCommissionAcount(cash);
BigDecimal commission = cash.multiply(agentReward.getCommissionRate());
agentReward.setAmount(commission);
agentReward.setCommission(commission);
agentReward.setSettleState(Constants.SETTLE_STATE_DONE);
agentReward.setUpdatedAt(System.currentTimeMillis() / 1000L);
updateCommisionList.add(agentReward);
}
} else {
agentReward.setMoney(allMoney);
agentReward.setCommissionAcount(allMoney);
BigDecimal commission = allMoney.multiply(agentReward.getCommissionRate());
agentReward.setAmount(commission);
agentReward.setCommission(commission);
agentReward.setSettleState(Constants.SETTLE_STATE_DONE);
agentReward.setUpdatedAt(System.currentTimeMillis() / 1000L);
updateCommisionList.add(agentReward);
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
......@@ -463,7 +484,6 @@ public class AgentSettleTask {
private boolean doDbUpdate(AgentSettle agentSettle, long beginTs, long endTs) {
TransactionStatus transactionStatus = null;
try {
logger.info("agentSettle is {}", agentSettle);
/**
* 开启事务
*/
......@@ -538,6 +558,7 @@ public class AgentSettleTask {
}
private void insertAgentIncomeSummary(AgentSettle agentSettle, long beginTs, long endTs) {
logger.info("agentSettle is {} ", agentSettle);
Date dat = new Date(beginTs * 1000L);
int now = (int) (System.currentTimeMillis() / 1000L);
int yeartime = Integer.parseInt(DateUtils.getYear(dat));
......@@ -583,14 +604,14 @@ public class AgentSettleTask {
agentIncomeSummary.setCreatedAt(now);
agentIncomeSummary.setUpdatedAt(now);
agentIncomeSummary.setSettleTime(now);
agentIncomeSummary.setContent(JSON.toJSONString(agentSummaryContent));
agentIncomeSummary.setContent(JSON.toJSONString(agentSummaryContent).replaceAll("0E-[0-9]+", "0"));
agentIncomeSummary.setIncome(sum2);
agentIncomeSummaryService.save(agentIncomeSummary);
} else {
agentIncomeSummary.setState(20);
agentIncomeSummary.setSettleTime(now);
agentIncomeSummary.setUpdatedAt(now);
agentIncomeSummary.setContent(JSON.toJSONString(agentSummaryContent));
agentIncomeSummary.setContent(JSON.toJSONString(agentSummaryContent).replaceAll("0E-[0-9]+", "0"));
agentIncomeSummary.setIncome(sum2);
agentIncomeSummaryService.updateById(agentIncomeSummary);
}
......@@ -678,7 +699,7 @@ public class AgentSettleTask {
log.setYeartime(yeartime);
log.setMonthtime(monthtime);
log.setDaytime(daytime);
log.setSnapshot(snapshot);
log.setSnapshot(JSON.toJSONString(snapshot).replaceAll("0E-[0-9]+", "0"));
log.setChangeTime((int)(now.getTime() / 1000));
log.setPayState(20);
log.setPayPlatform("hupay");
......
......@@ -21,6 +21,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import static com.lanren.huhu.partner.constants.Constants.NEW_SETTLE_RULE_TIME;
import static org.springframework.util.StringUtils.isEmpty;
/**
......@@ -234,14 +235,14 @@ public class PartnerSettleTask {
partnerIncomeSummary.setCreatedAt(now);
partnerIncomeSummary.setUpdatedAt(now);
partnerIncomeSummary.setSettleTime(now);
partnerIncomeSummary.setContent(JSON.toJSONString(partnerSummaryContent));
partnerIncomeSummary.setContent(JSON.toJSONString(partnerSummaryContent).replaceAll("0E-[0-9]+", "0"));
partnerIncomeSummary.setIncome(sum2);
partnerIncomeSummaryService.save(partnerIncomeSummary);
} else {
partnerIncomeSummary.setState(20);
partnerIncomeSummary.setUpdatedAt(now);
partnerIncomeSummary.setSettleTime(now);
partnerIncomeSummary.setContent(JSON.toJSONString(partnerSummaryContent));
partnerIncomeSummary.setContent(JSON.toJSONString(partnerSummaryContent).replaceAll("0E-[0-9]+", "0"));
partnerIncomeSummary.setIncome(sum2);
partnerIncomeSummaryService.updateById(partnerIncomeSummary);
}
......@@ -335,7 +336,7 @@ public class PartnerSettleTask {
log.setYeartime(yeartime);
log.setMonthtime(monthtime);
log.setDaytime(daytime);
log.setSnapshot(snapshot.toString());
log.setSnapshot(JSON.toJSONString(snapshot).replaceAll("0E-[0-9]+", "0"));
log.setPayState(20);
log.setPayPlatform("hupay");
log.setPayInfo(payRemark);
......@@ -347,22 +348,36 @@ public class PartnerSettleTask {
try {
partnerReward.setAllMoneyOri(allMoney);
String ratioAllStr = partnerReward.getRatioAll().replaceAll("[\\[\\]\"]", "");
if (! isEmpty(ratioAllStr)) {
String[] strs = ratioAllStr.split(",");
if (strs.length > 0) {
BigDecimal cash = allMoney;
for (String s : strs) {
BigDecimal ratio = new BigDecimal(s);
cash = cash.multiply(ratio);
}
partnerReward.setCash(cash);
BigDecimal commission = cash.multiply(partnerReward.getCommissionRate());
partnerReward.setCommissionAcount(commission);
partnerReward.setSettleState(Constants.SETTLE_STATE_DONE);
partnerReward.setUpdatedAt(System.currentTimeMillis() / 1000L);
/**
* 时间点之前的 需要乘比例数组 之后 再乘commission_rate
* 时间点之后的 直接乘commission_rate
*/
if (partnerReward.getRechargeTime().compareTo(NEW_SETTLE_RULE_TIME) < 0) {
if (! isEmpty(ratioAllStr)) {
String[] strs = ratioAllStr.split(",");
if (strs.length > 0) {
BigDecimal cash = allMoney;
for (String s : strs) {
BigDecimal ratio = new BigDecimal(s);
cash = cash.multiply(ratio);
}
partnerReward.setCash(cash);
BigDecimal commission = cash.multiply(partnerReward.getCommissionRate());
partnerReward.setCommissionAcount(commission);
partnerReward.setSettleState(Constants.SETTLE_STATE_DONE);
partnerReward.setUpdatedAt(System.currentTimeMillis() / 1000L);
// partnerRewardService.updateById(partnerReward);
updateCommisionList.add(partnerReward);
updateCommisionList.add(partnerReward);
}
}
} else {
partnerReward.setCash(allMoney);
BigDecimal commission = allMoney.multiply(partnerReward.getCommissionRate());
partnerReward.setCommissionAcount(commission);
partnerReward.setSettleState(Constants.SETTLE_STATE_DONE);
partnerReward.setUpdatedAt(System.currentTimeMillis() / 1000L);
// partnerRewardService.updateById(partnerReward);
updateCommisionList.add(partnerReward);
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
......@@ -438,7 +453,8 @@ public class PartnerSettleTask {
*/
if (partnerReward.getRewardType() == Constants.PARTNER_REWARD_TYPE_PURCHASE && partnerReward.getSettleState() > 0
&& partnerReward.getSettleState() != Constants.SETTLE_STATE_DONE) {
if (isEmpty(partnerReward.getOrderType()) || isEmpty(partnerReward.getOrderSn()) || isEmpty(partnerReward.getRatioAll())) {
// if (isEmpty(partnerReward.getOrderType()) || isEmpty(partnerReward.getOrderSn()) || isEmpty(partnerReward.getRatioAll())) {
if (isEmpty(partnerReward.getOrderType()) || isEmpty(partnerReward.getOrderSn())) {
/**
* 历史数据: 没有记录订单号 或者 没有记录比例 不更新奖励金额
*/
......@@ -507,8 +523,9 @@ public class PartnerSettleTask {
*/
if (partnerReward.getRewardType() == Constants.PARTNER_REWARD_TYPE_SHARE && partnerReward.getSettleState() > 0
&& partnerReward.getSettleState() != Constants.SETTLE_STATE_DONE) {
if (isEmpty(partnerReward.getOrderType()) || isEmpty(partnerReward.getOrderSn()) || isEmpty(partnerReward.getSubOrderSn())
|| isEmpty(partnerReward.getRatioAll())) {
// if (isEmpty(partnerReward.getOrderType()) || isEmpty(partnerReward.getOrderSn()) || isEmpty(partnerReward.getSubOrderSn())
// || isEmpty(partnerReward.getRatioAll())) {
if (isEmpty(partnerReward.getOrderType()) || isEmpty(partnerReward.getOrderSn()) || isEmpty(partnerReward.getSubOrderSn())) {
/**
* 历史数据: 没有记录子订单号 或者 没有记录比例 不更新奖励金额
*/
......
......@@ -47,3 +47,5 @@ public interface AgentRewardService extends IService<AgentReward> {
......@@ -95,3 +95,5 @@ public class AgentRewardServiceImpl extends ServiceImpl<AgentRewardMapper, Agent
......@@ -731,9 +731,9 @@
SELECT
agent_id,
SUM(amount) balance,
SUM(case when agent_level=4 and reward_type in (50,740,60,760,300,750) then amount * 0.06 else 0 end) techCharge,
SUM(case when agent_level=4 and reward_type in (50,740) then amount * 0.06 else 0 end) techChargeRedpack,
SUM(case when agent_level=4 and reward_type in (60,760,300,750) then amount * 0.06 else 0 end) techChargeOrder,
SUM(case when recharge_time &lt; '2019-08-16 12:03:50' and agent_level=4 and reward_type in (50,740,60,760,300,750) then amount * 0.06 else 0 end) techCharge,
SUM(case when recharge_time &lt; '2019-08-16 12:03:50' and agent_level=4 and reward_type in (50,740) then amount * 0.06 else 0 end) techChargeRedpack,
SUM(case when recharge_time &lt; '2019-08-16 12:03:50' and agent_level=4 and reward_type in (60,760,300,750) then amount * 0.06 else 0 end) techChargeOrder,
SUM(case when reward_type in (40) then amount else 0 end) opencardBalance,
SUM(case when reward_type in (50,740) then amount else 0 end) rechargeBalance,
SUM(case when reward_type in (30,710,720) then amount else 0 end) upgradeBalance,
......@@ -781,8 +781,8 @@
0 tax,
a.place_cash,
a.place_num,
a.recharge_cash,
a.recharge_num,
a.onlinerechargeCash,
a.onlinerechargeNum,
a.open_card_cash,
a.open_card_num,
a.upgrade_partner_cash,
......@@ -794,9 +794,9 @@
SELECT
agent_id,
SUM(amount) balance,
SUM(case when agent_level=4 and reward_type in (50,740,60,760,300,750) then amount * 0.06 else 0 end) techCharge,
SUM(case when agent_level=4 and reward_type in (50,740) then amount * 0.06 else 0 end) techChargeRedpack,
SUM(case when agent_level=4 and reward_type in (60,760,300,750) then amount * 0.06 else 0 end) techChargeOrder,
SUM(case when recharge_time &lt; '2019-08-16 12:03:50' and agent_level=4 and reward_type in (50,740,60,760,300,750) then amount * 0.06 else 0 end) techCharge,
SUM(case when recharge_time &lt; '2019-08-16 12:03:50' and agent_level=4 and reward_type in (50,740) then amount * 0.06 else 0 end) techChargeRedpack,
SUM(case when recharge_time &lt; '2019-08-16 12:03:50' and agent_level=4 and reward_type in (60,760,300,750) then amount * 0.06 else 0 end) techChargeOrder,
SUM(case when reward_type in (40) then amount else 0 end) opencardBalance,
SUM(case when reward_type in (50,740) then amount else 0 end) rechargeBalance,
SUM(case when reward_type in (30,710,720) then amount else 0 end) upgradeBalance,
......@@ -806,8 +806,8 @@
SUM(0) pingtuiBalance,
SUM(if(reward_type IN (60, 750, 300, 760),amount, 0)) AS place_cash,
COUNT(reward_type IN (60, 750, 300, 760) OR NULL) AS place_num,
SUM(if(reward_type IN (50, 740),amount, 0)) AS recharge_cash,
COUNT(reward_type IN (50, 740) OR NULL) AS recharge_num,
SUM(if(reward_type IN (50, 740),amount, 0)) AS onlinerechargeCash,
COUNT(reward_type IN (50, 740) OR NULL) AS onlinerechargeNum,
SUM(if(reward_type=40, amount, 0)) AS open_card_cash,
COUNT(reward_type=40 OR NULL) AS open_card_num,
SUM(if(reward_type IN (30, 20, 710, 720, 730),amount, 0)) AS upgrade_partner_cash,
......@@ -860,7 +860,9 @@
deleted_at,
create_time,
all_money_ori,
ratio_all
ratio_all,
settle_time,
settle_in_advance
FROM agent_reward
WHERE settle_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
......@@ -902,7 +904,9 @@
deleted_at,
create_time,
all_money_ori,
ratio_all
ratio_all,
settle_time,
settle_in_advance
FROM agent_reward
WHERE settle_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
......@@ -913,7 +917,7 @@
</select>
<update id="updateRewardStatusByAgentIdAndTs">
UPDATE agent_reward
SET reward_status=120, settle_state=CASE WHEN settle_state&gt;0 THEN 300 WHEN settle_state&lt;0 THEN -300 ELSE 0 END
SET reward_status=120, settle_state=CASE WHEN settle_state>0 THEN 300 WHEN settle_state&lt;0 THEN -300 ELSE 0 END
WHERE settle_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND agent_id = #{agentId}
......
......@@ -732,7 +732,10 @@
sub_order_sn,
all_money_ori,
ratio_all,
is_show_on_client
is_show_on_client,
tech_fee_rate,
settle_time,
settle_in_advance
FROM partner_reward
WHERE settle_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
......@@ -773,7 +776,10 @@
sub_order_sn,
all_money_ori,
ratio_all,
is_show_on_client
is_show_on_client,
tech_fee_rate,
settle_time,
settle_in_advance
FROM partner_reward
WHERE settle_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
......@@ -785,15 +791,21 @@
<select id="selectPartnerSettlePageByTs" resultType="com.lanren.huhu.partner.model.PartnerSettle">
SELECT
user_id,
SUM(CASE WHEN reward_type IN (110,120) THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.97 WHEN user_partner_level=20 THEN 0.94 ELSE 1 END
ELSE 0 END) sum_order_commission,
SUM(CASE WHEN reward_type=60 THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.97 WHEN user_partner_level=20 THEN 0.94 ELSE 1 END
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
ELSE 0
END) sum_order_commission,
SUM(CASE WHEN reward_type=60 THEN commission_acount ELSE 0 END) -
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) sum_redpack,
SUM(CASE WHEN reward_type NOT IN (60,110,120) THEN commission_acount ELSE 0 END) sum_others,
SUM(CASE WHEN 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
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) 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_order,
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
ELSE 0
END) tech_charge_order,
0 wx_income,
0 wx_tax,
0 bank_income,
......@@ -821,17 +833,21 @@
<select id="selectPartnerSettleByTsAndUid" resultType="com.lanren.huhu.partner.model.PartnerSettle">
SELECT
user_id,
SUM(CASE WHEN reward_type IN (110,120) THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.97 WHEN user_partner_level=20 THEN 0.94 ELSE 1 END
ELSE 0 END) sum_order_commission,
SUM(CASE WHEN reward_type=60 THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.97 WHEN user_partner_level=20 THEN 0.94 ELSE 1 END
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
ELSE 0
END) sum_order_commission,
SUM(CASE WHEN reward_type=60 THEN commission_acount ELSE 0 END) -
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) sum_redpack,
SUM(CASE WHEN reward_type NOT IN (60,110,120) THEN commission_acount ELSE 0 END) sum_others,
SUM(CASE WHEN 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) 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_order,
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
ELSE 0
END) tech_charge_order,
0 wx_income,
0 wx_tax,
0 bank_income,
......
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