Commit e28d883e by guanchen

添加代理商推荐关系的循环奖励

parent ea68f2c1
...@@ -171,6 +171,7 @@ public class AgentRewardQueueTask { ...@@ -171,6 +171,7 @@ public class AgentRewardQueueTask {
TransactionStatus transactionStatus = null; TransactionStatus transactionStatus = null;
List<AgentReward> pushList = new ArrayList<AgentReward>(); List<AgentReward> pushList = new ArrayList<AgentReward>();
List<AgentReward> pushRewardList = new ArrayList<AgentReward>();
try { try {
/** /**
* 开启事务, 如果rewardList中的奖励 都插入成功, 才提交事务 * 开启事务, 如果rewardList中的奖励 都插入成功, 才提交事务
...@@ -182,8 +183,13 @@ public class AgentRewardQueueTask { ...@@ -182,8 +183,13 @@ public class AgentRewardQueueTask {
AgentReward reward = doInsert(commissionRate, rewardList.get(i), message.clone()); AgentReward reward = doInsert(commissionRate, rewardList.get(i), message.clone());
if (reward != null) { if (reward != null) {
pushList.add(reward); pushList.add(reward);
if (reward.getAgentLevel() == AGENT_LEVEL_4) { /**
pushRewardQueue(reward, message); * 如果是城市代理获得的佣金 或 红包奖励 需要 再往上分
*/
if (reward.getAgentLevel() == AGENT_LEVEL_4 &&
(rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER || rewardType == AGENT_REWARD_TYPE_REDPACK)
) {
pushRewardList.add(reward);
} }
} }
} }
...@@ -197,6 +203,9 @@ public class AgentRewardQueueTask { ...@@ -197,6 +203,9 @@ public class AgentRewardQueueTask {
for (AgentReward reward : pushList) { for (AgentReward reward : pushList) {
doPush(reward); doPush(reward);
} }
for (AgentReward reward : pushRewardList) {
pushRewardQueue(reward, message.clone());
}
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
logger.error("插入代理商分成奖励失败, 奖励 {}", message); logger.error("插入代理商分成奖励失败, 奖励 {}", message);
...@@ -223,10 +232,21 @@ public class AgentRewardQueueTask { ...@@ -223,10 +232,21 @@ public class AgentRewardQueueTask {
} }
private void pushRewardQueue(AgentReward reward, AgentRewardMessage message) { private void pushRewardQueue(AgentReward reward, AgentRewardMessage message) {
// message.setAgentId(reward.getAgentId()); logger.info("处理循环上供奖励.......");
// message.setAgentReward(reward.getAmount()); logger.info("reward is :{}", reward);
// message.setOrderRateArray(reward.getRatioAll()); logger.info("message is :{}", message);
return; message.setAgentId(reward.getAgentId());
message.setAgentReward(reward.getAmount());
String rateArray;
if (StringUtils.isEmpty(reward.getRatioAll())) {
rateArray = "[" + reward.getCommissionRate() + "]";
} else {
rateArray = reward.getRatioAll().replaceAll("\\]", "");
rateArray = rateArray + reward.getCommissionRate() + "]";
}
message.setOrderRateArray(rateArray);
logger.info("推送循环上供奖励: {}", message);
stringRedisTemplate.opsForList().leftPush(AGENT_REWARD_QUEUE_KEY, JSON.toJSONString(message));
} }
private AgentReward doInsert(BigDecimal commissionRate, ParentAgent agent, AgentRewardMessage message) { private AgentReward doInsert(BigDecimal commissionRate, ParentAgent agent, AgentRewardMessage message) {
......
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