Commit 14660b73 by guanchen

Merge commit '85eecee3' into guanchen

# Conflicts: # src/main/java/com/lanren/huhu/partner/controller/UserController.java # src/main/java/com/lanren/huhu/partner/dao/PartnerAccountMapper.java # src/main/java/com/lanren/huhu/partner/dao/UserAgentMapper.java # src/main/java/com/lanren/huhu/partner/service/impl/UserServiceImpl.java # src/main/resources/mapper/PartnerAccountMapper.xml # src/main/resources/mapper/UserAgentMapper.xml
parents 228eadd4 141b898f
......@@ -8,6 +8,7 @@ import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.result.Result;
import com.lanren.huhu.partner.schedule.AgentSettleTask;
import com.lanren.huhu.partner.service.UserAgentService;
import com.lanren.huhu.partner.service.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -34,6 +35,8 @@ public class AgentManager {
StringRedisTemplate redisTemplate;
@Autowired
AgentSettleTask agentSettleTask;
@Autowired
UserService userService;
/***
* * 获取代理商等级 1 总代, 2 大区, 3 省, 4 市
......@@ -85,7 +88,8 @@ public class AgentManager {
* @date 2019-07-04 14:48
*/
public Result<ArrayList<ParentAgent>> getHierarchyParentList(Integer agentId) {
ArrayList<ParentAgent> parentAgents = (ArrayList<ParentAgent>) userAgentService.getParentAgentListByAgentId(agentId, PARENT_COLUMN_NAME_CENGJI);
UserAgent userAgent = userAgentService.getOneByAgentId(agentId);
ArrayList<ParentAgent> parentAgents = (ArrayList<ParentAgent>) userService.getAgentListByUserId(userAgent.getUserId(), PARENT_COLUMN_NAME_CENGJI);
Result<ArrayList<ParentAgent>> result = new Result<ArrayList<ParentAgent>>();
result.setData(parentAgents);
return result;
......@@ -96,7 +100,8 @@ public class AgentManager {
* @date 2019-07-04 14:48
*/
public Result<ArrayList<ParentAgent>> getPingtuiParentList(Integer agentId) {
ArrayList<ParentAgent> parentAgents = (ArrayList<ParentAgent>) userAgentService.getParentAgentListByAgentId(agentId, PARENT_COLUMN_NAME_PINGTUI);
UserAgent userAgent = userAgentService.getOneByAgentId(agentId);
ArrayList<ParentAgent> parentAgents = (ArrayList<ParentAgent>) userService.getAgentListByUserId(userAgent.getUserId(), PARENT_COLUMN_NAME_PINGTUI);
Result<ArrayList<ParentAgent>> result = new Result<ArrayList<ParentAgent>>();
result.setData(parentAgents);
return result;
......
......@@ -115,16 +115,11 @@ public class AgentRewardQueueTask {
logger.info("代理商id: {} 不存在, 跳过不处理", message);
return;
}
if (userAgent.getAgentLevel() != AGENT_LEVEL_4) {
logger.info("代理商id: {} 不是城市代理, 跳过不处理", message);
return;
}
/**
* 这里的逻辑有问题, 不能用这个接口找上级, 因为会先找一次直接邀请人,
* 只能按message.getAgentId()的代理商id, 找user_agent表里的平推关系
*/
ArrayList<ParentAgent> parentList = (ArrayList<ParentAgent>) userAgentService.getParentAgentListByAgentId(userAgent.getAgentId(), PARENT_COLUMN_NAME_PINGTUI);
ArrayList<ParentAgent> level4List = new ArrayList<ParentAgent>();
ArrayList<ParentAgent> parentList = (ArrayList<ParentAgent>) userService.getAgentListByUserId(userAgent.getUserId(), PARENT_COLUMN_NAME_PINGTUI);
if (parentList.size() > 0) {
/**
* 扫描agentlist中的平推城市代理
......@@ -134,28 +129,22 @@ public class AgentRewardQueueTask {
ArrayList<ParentAgent> rewardList = new ArrayList<ParentAgent>();
for (ParentAgent agent : parentList) {
/**
* 先扫描平推代理, 写到level4List
* 如果不是平推, 奖励次数还不够3, 写到rewardList
* 奖励次数不够3, 写到rewardList
*/
if (agent.getLevel() == AGENT_LEVEL_4 && rewardCnt < 3) {
level4List.add(agent);
rewardList.add(agent);
rewardCnt++;
} else if (rewardCnt < 3){
if (rewardCnt < 3){
rewardList.add(agent);
rewardCnt++;
/**
* 如果找到总代 就不再往上找了 都给总代
*/
if (agent.getLevel() == AGENT_LEVEL_1) {
break;
}
} else {
break;
}
}
/**
* 如果平推层级小于3, 又没有上级代理, 报错不处理
*/
if (level4List.size() < 3 && level4List.size() == rewardList.size()) {
logger.error("代理商关系错误, 只有平推, 没有上级. {}", message);
return;
}
/**
* 如果上面检查通过, 证明代理商关系没问题, 后面处理只看rewardList的size
* 决定比例怎么分: 1个人-拿3份; 2个人-第二个拿后2份; 3个人-各1份
*/
......
......@@ -2,7 +2,6 @@ package com.lanren.huhu.partner.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.ParentAgent;
import java.util.List;
......@@ -22,17 +21,4 @@ public interface UserAgentService extends IService<UserAgent> {
* @return
*/
UserAgent getOneByAgentId(Integer agentId);
/**
* @description: 查找一个用户的直接代理商上级, 根据字段presenter_id
* @param agentId
* @return ParentAgent
*/
ParentAgent getParentAgentByAgentId(Integer agentId, String parentColumnName);
/**
* @description: 查找一个用户的全部直属代理商上级, 根据字段presenter_id
* @param agentId
* @return List<ParentAgent>
*/
List<ParentAgent> getParentAgentListByAgentId(Integer agentId, String parentColumnName);
}
......@@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.UserAgentMapper;
import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.service.UserAgentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -51,42 +49,4 @@ public class UserAgentServiceImpl extends ServiceImpl<UserAgentMapper, UserAgent
;
return baseMapper.selectOne(queryWrapper);
}
@Override
public List<ParentAgent> getParentAgentListByAgentId(Integer agentId, String parentColumnName) {
List<ParentAgent> parentList = new ArrayList<ParentAgent>();
int loogAgentId = agentId;
int loopTimes = 0;
while (true) {
ParentAgent parentAgent = getParentAgentByAgentId(loogAgentId, parentColumnName);
if (null == parentAgent) {
break;
} else {
if (parentList.contains(parentAgent) || parentAgent.getAgentId() == agentId) {
logger.info("发现互为上级的代理关系 代理商({})", parentAgent.getAgentId());
logger.info("退出循环, 不再继续查找");
break;
}
parentList.add(parentAgent);
loogAgentId = parentAgent.getAgentId();
loopTimes++;
if (loopTimes > 500) {
parentList.clear();
logger.error("代理商:{} 邀请关系异常, 已超500层", agentId);
break;
}
}
}
return parentList;
}
@Override
public ParentAgent getParentAgentByAgentId(Integer agentId, String parentColumnName) {
UserAgent userAgent = baseMapper.getParentAgent(agentId, parentColumnName);
if (userAgent != null) {
return new ParentAgent(userAgent.getUserId(), userAgent.getAgentId(), userAgent.getAgentLevel());
} else {
return null;
}
}
}
......@@ -346,6 +346,9 @@ public class UserServiceImpl implements UserService {
if (logger.isInfoEnabled()) {
logger.info("setAgentList for user: {} end", userId);
}
if (parentColumnName.equals(PARENT_COLUMN_NAME_PINGTUI) && selfAgent != null && agentList.size() > 1) {
agentList.remove(0);
}
return agentList;
}
}
}
\ 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