Commit aeff05da by guanchen

平推奖励只奖励一级

parent 112ad4b3
......@@ -26,14 +26,12 @@ public class Constants {
public static final String AGENT_REWARD_TYPE_HALF_YEAR_VIP_REMARK = "高级半年vip";
public static final int AGENT_REWARD_TYPE_SVIP = 730;
public static final String AGENT_REWARD_TYPE_SVIP_REMARK = "超级年vip";
public static final int AGENT_REWARD_TYPE_REDPACK = 740;
public static final String AGENT_REWARD_TYPE_REDPACK_REMARK = "推荐奖励-普通用户购买红包";
public static final int AGENT_REWARD_TYPE_SELF_ORDER = 750;
public static final String AGENT_REWARD_TYPE_SELF_ORDER_REMARK = "推荐奖励-自购省";
public static final int AGENT_REWARD_TYPE_SHARE_ORDER = 760;
public static final String AGENT_REWARD_TYPE_SHARE_ORDER_REMARK = "推荐奖励-分享赚";
public static final int AGENT_REWARD_TYPE_VIP_PACKAGE = 780;
public static final String AGENT_REWARD_TYPE_VIP_PACKAGE_REMARK = "购买vip礼包(不送会员)";
public static final String AGENT_REWARD_TYPE_VIP_PACKAGE_REMARK = "购买/分享 vip礼包(不送会员)";
public static final int AGENT_REWARD_TYPE_PACKAGE_WITH_VIP = 790;
public static final String AGENT_REWARD_TYPE_PACKAGE_WITH_VIP_REMARK = "购买vip礼包(送会员)";
public static final int AGENT_REWARD_TYPE_VIP_CARD = 800;
......@@ -111,76 +109,64 @@ public class Constants {
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SVIP_CARD, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_PACKAGE_WITH_VIP, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_REDPACK, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SELF_ORDER, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SELF_ORDER + JD_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER + JD_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SELF_ORDER + MT_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SELF_ORDER + TN_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SELF_ORDER + MTJD_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SELF_ORDER + ELM_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SELF_ORDER + KFC_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SELF_ORDER + HHYX_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER + JD_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER + MT_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER + TN_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER + MTJD_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER + ELM_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER + KFC_OFFSET, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SHARE_ORDER + HHYX_OFFSET, new HashMap<Integer, BigDecimal>());
// 710,720,730 - 表2 - 购买VIP会员-无礼包
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_YEAR_VIP).put(0, new BigDecimal("0.04040404"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_YEAR_VIP).put(1, new BigDecimal("0.02020202"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_HALF_YEAR_VIP).put(0, new BigDecimal("0.04040404"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_HALF_YEAR_VIP).put(1, new BigDecimal("0.02020202"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SVIP).put(0, new BigDecimal("0.04040404"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SVIP).put(1, new BigDecimal("0.02020202"));
// 780 购买vip礼包(不送会员), 800 购买vip卡, 810 购买svip卡 - 表3 - 购买V卡、超V卡、单独礼包
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_VIP_PACKAGE).put(0, new BigDecimal("0.04"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_VIP_PACKAGE).put(1, new BigDecimal("0.02"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_VIP_CARD).put(0, new BigDecimal("0.04040404"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_VIP_CARD).put(1, new BigDecimal("0.02020202"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SVIP_CARD).put(0, new BigDecimal("0.05050506"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SVIP_CARD).put(1, new BigDecimal("0.02525253"));
// 790 - 表1 - 购买礼包+送VIP会员
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_PACKAGE_WITH_VIP).put(0, new BigDecimal("0.04"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_PACKAGE_WITH_VIP).put(1, new BigDecimal("0.02"));
/**
* 红包
*/
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_REDPACK).put(0, new BigDecimal("0.03"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_REDPACK).put(1, new BigDecimal("0.02"));
/**
* 自购省
*/
// 表2-VIP会员+超V会员+礼包送VIP
// 710 VIP会员
// 720 VIP会员
// 730 超V会员
// 790 礼包送VIP
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_YEAR_VIP).put(0, new BigDecimal("0.03030303"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_HALF_YEAR_VIP).put(0, new BigDecimal("0.03030303"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SVIP).put(0, new BigDecimal("0.06060607"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_PACKAGE_WITH_VIP).put(0, new BigDecimal("0.03"));
// 表3-VIP卡+超V卡+礼包
// 800 VIP卡
// 810 超V卡
// 780 购买礼包 分享礼包
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_VIP_CARD).put(0, new BigDecimal("0.03030303"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SVIP_CARD).put(0, new BigDecimal("0.06060607"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_VIP_PACKAGE).put(0, new BigDecimal("0.03"));
// 表1-电商购物
// 750 自购省
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER).put(0, new BigDecimal("0.008"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER).put(1, new BigDecimal("0.008"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + JD_OFFSET).put(0, new BigDecimal("0.0087"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + JD_OFFSET).put(1, new BigDecimal("0.0087"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + HHYX_OFFSET).put(0, new BigDecimal("0.03"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + MT_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + MT_OFFSET).put(1, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + TN_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + TN_OFFSET).put(1, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + MTJD_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + MTJD_OFFSET).put(1, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + ELM_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + ELM_OFFSET).put(1, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + KFC_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + KFC_OFFSET).put(1, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + HHYX_OFFSET).put(0, new BigDecimal("0.07"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SELF_ORDER + HHYX_OFFSET).put(1, new BigDecimal("0.08"));
/**
* 分享赚
*/
// 760 分享赚
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER).put(0, new BigDecimal("0.008"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER).put(1, new BigDecimal("0.008"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + JD_OFFSET).put(0, new BigDecimal("0.0087"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + JD_OFFSET).put(1, new BigDecimal("0.0087"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + HHYX_OFFSET).put(0, new BigDecimal("0.07"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + HHYX_OFFSET).put(1, new BigDecimal("0.08"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + HHYX_OFFSET).put(0, new BigDecimal("0.03"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + MT_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + TN_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + MTJD_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + ELM_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_RATE_MAP.get(AGENT_REWARD_TYPE_SHARE_ORDER + KFC_OFFSET).put(0, new BigDecimal("0.01"));
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_YEAR_VIP, AGENT_REWARD_TYPE_YEAR_VIP_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_HALF_YEAR_VIP, AGENT_REWARD_TYPE_HALF_YEAR_VIP_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_SVIP, AGENT_REWARD_TYPE_SVIP_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_VIP_PACKAGE, AGENT_REWARD_TYPE_VIP_PACKAGE_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_PACKAGE_WITH_VIP, AGENT_REWARD_TYPE_PACKAGE_WITH_VIP_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_REDPACK, AGENT_REWARD_TYPE_REDPACK_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_SELF_ORDER, AGENT_REWARD_TYPE_SELF_ORDER_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_SHARE_ORDER, AGENT_REWARD_TYPE_SHARE_ORDER_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_VIP_CARD, AGENT_REWARD_TYPE_VIP_CARD_REMARK);
......
......@@ -20,8 +20,7 @@ import java.util.ArrayList;
* @author chen
*/
@RestController
@RequestMapping("/partner/v1/agent") //线上
//@RequestMapping("/v1/agent") //测试
@RequestMapping("/partner/v1/agent")
public class AgentController {
private static Logger logger = LoggerFactory.getLogger(AgentController.class);
......
package com.lanren.huhu.partner.controller; import com.lanren.huhu.partner.manager.PartnerManager;import com.lanren.huhu.partner.model.Partner;import com.lanren.huhu.partner.model.PartnerResponse;import com.lanren.huhu.partner.result.Result;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpHeaders;import org.springframework.web.bind.annotation.*; import javax.validation.Valid;import java.time.LocalDateTime; /** * @Author houseme * @Date 2019-06-26 11:00 * @Project partner * @Package com.lanren.huhu.partner.controller * @File: PartnerController */@RestController@RequestMapping("/partner/v1/partner") //线上 //@RequestMapping("/v1/partner") //测试 public class PartnerController { private static Logger logger = LoggerFactory.getLogger(PartnerController.class); @Autowired private PartnerManager partnerManager; @RequestMapping(value = "/level", method = RequestMethod.POST) public Result<PartnerResponse> getPartnerLevel(@RequestBody @Valid Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("getPartnerLevel userId:{},header:{},time:{}", partner.getUserId(), headers.keySet().toArray(), LocalDateTime.now()); } return partnerManager.getPartnerLevel(partner.getUserId()); } }
\ No newline at end of file
package com.lanren.huhu.partner.controller; import com.lanren.huhu.partner.manager.PartnerManager;import com.lanren.huhu.partner.model.Partner;import com.lanren.huhu.partner.model.PartnerResponse;import com.lanren.huhu.partner.result.Result;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpHeaders;import org.springframework.web.bind.annotation.*; import javax.validation.Valid;import java.time.LocalDateTime; /** * @Author houseme * @Date 2019-06-26 11:00 * @Project partner * @Package com.lanren.huhu.partner.controller * @File: PartnerController */@RestController@RequestMapping("/partner/v1/partner")public class PartnerController { private static Logger logger = LoggerFactory.getLogger(PartnerController.class); @Autowired private PartnerManager partnerManager; @RequestMapping(value = "/level", method = RequestMethod.POST) public Result<PartnerResponse> getPartnerLevel(@RequestBody @Valid Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("getPartnerLevel userId:{},header:{},time:{}", partner.getUserId(), headers.keySet().toArray(), LocalDateTime.now()); } return partnerManager.getPartnerLevel(partner.getUserId()); }}
\ No newline at end of file
......
......@@ -19,8 +19,7 @@ import java.time.LocalDateTime;
*/
@RestController
@EnableAsync
@RequestMapping("/partner/v1/user") //线上
//@RequestMapping("/v1/user") //测试
@RequestMapping("/partner/v1/user")
public class UserController {
private static Logger logger = LoggerFactory.getLogger(UserController.class);
......
......@@ -151,37 +151,39 @@ public class AgentRewardQueueTask {
*/
ArrayList<ParentAgent> parentList = (ArrayList<ParentAgent>) userService.getAgentListByUserId(userAgent.getUserId(), PARENT_COLUMN_NAME_PINGTUI);
if (parentList.size() > 0) {
// 此逻辑废弃, 平推奖励只找一个人, 比例只有一个
/**
* 扫描agentlist中的平推城市代理
* 最多只需要找2个
*/
int rewardCnt = 0;
// int rewardCnt = 0;
ArrayList<ParentAgent> rewardList = new ArrayList<ParentAgent>();
for (ParentAgent agent : parentList) {
/**
* 奖励次数不够2, 写到rewardList
*/
if (rewardCnt < 2){
rewardList.add(agent);
rewardCnt++;
/**
* 如果找到总代 就不再往上找了 都给总代
*/
if (agent.getLevel() == AGENT_LEVEL_1) {
break;
}
/**
* 如果是AGENT_LEVEL_2 奖励类型 750 或 760, 只奖励1个人 并且只拿1份
*/
if (userAgent.getAgentLevel() == AGENT_LEVEL_2 && (rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER)) {
break;
}
} else {
break;
}
}
if (rewardList.size() > 2) {
logger.error("代理商推荐奖励处理异常 奖励人数超出2人, 奖励消息: {}", message);
rewardList.add(parentList.get(0));
// for (ParentAgent agent : parentList) {
// /**
// * 奖励次数不够2, 写到rewardList
// */
// if (rewardCnt < 2){
// rewardList.add(agent);
// rewardCnt++;
// /**
// * 如果找到总代 就不再往上找了 都给总代
// */
// if (agent.getLevel() == AGENT_LEVEL_1) {
// break;
// }
// /**
// * 如果是AGENT_LEVEL_2 奖励类型 750 或 760, 只奖励1个人 并且只拿1份
// */
// if (userAgent.getAgentLevel() == AGENT_LEVEL_2 && (rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER)) {
// break;
// }
// } else {
// break;
// }
// }
if (rewardList.size() > 1) {
logger.error("代理商推荐奖励处理异常 奖励人数超出1人, 奖励消息: {}", message);
return;
}
/**
......@@ -189,25 +191,25 @@ public class AgentRewardQueueTask {
* 决定比例怎么分: 1个人-拿2份; 2个人-各1份
*/
List<BigDecimal> rateList = new ArrayList<BigDecimal>();
if (rewardList.size() == 1) {
/**
* 如果直属层级代理商是AGENT_LEVEL_2 奖励类型 750 或 760 只拿1份
*/
if (userAgent.getAgentLevel() == AGENT_LEVEL_2 &&
(rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER) ) {
rateList.add(rateMap.get(0));
} else {
rateList.add(rateMap.get(0).add(rateMap.get(1)));
}
} else if (rewardList.size() == 2) {
if (userAgent.getAgentLevel() == AGENT_LEVEL_2 &&
(rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER) ) {
logger.error("代理商推荐奖励逻辑处理错误, 直属代理商id: {}, rewardList[1]: {}", userAgent.getAgentId(), rewardList.get(1));
}
rateList.add(rateMap.get(0));
rateList.add(rateMap.get(1));
}
rateList.add(rateMap.get(0));
// if (rewardList.size() == 1) {
// /**
// * 如果直属层级代理商是AGENT_LEVEL_2 奖励类型 750 或 760 只拿1份
// */
// if (userAgent.getAgentLevel() == AGENT_LEVEL_2 &&
// (rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER) ) {
// rateList.add(rateMap.get(0));
// } else {
// rateList.add(rateMap.get(0).add(rateMap.get(1)));
// }
// } else if (rewardList.size() == 2) {
// if (userAgent.getAgentLevel() == AGENT_LEVEL_2 &&
// (rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER) ) {
// logger.error("代理商推荐奖励逻辑处理错误, 直属代理商id: {}, rewardList[1]: {}", userAgent.getAgentId(), rewardList.get(1));
// }
// rateList.add(rateMap.get(0));
// rateList.add(rateMap.get(1));
// }
TransactionStatus transactionStatus = null;
List<AgentReward> pushList = new ArrayList<AgentReward>();
// List<AgentReward> pushRewardList = new ArrayList<AgentReward>();
......@@ -331,7 +333,7 @@ public class AgentRewardQueueTask {
*/
BigDecimal rewardBasement;
if (rewardType == AGENT_REWARD_TYPE_YEAR_VIP || rewardType == AGENT_REWARD_TYPE_HALF_YEAR_VIP || rewardType == AGENT_REWARD_TYPE_SVIP
|| rewardType == AGENT_REWARD_TYPE_REDPACK || rewardType == AGENT_REWARD_TYPE_VIP_PACKAGE || rewardType == AGENT_REWARD_TYPE_PACKAGE_WITH_VIP
|| rewardType == AGENT_REWARD_TYPE_VIP_PACKAGE || rewardType == AGENT_REWARD_TYPE_PACKAGE_WITH_VIP
|| rewardType == AGENT_REWARD_TYPE_VIP_CARD || rewardType == AGENT_REWARD_TYPE_SVIP_CARD) {
rewardBasement = message.getSourceUserPayment();
} else {
......
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