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; ...@@ -8,6 +8,7 @@ import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.result.Result; import com.lanren.huhu.partner.result.Result;
import com.lanren.huhu.partner.schedule.AgentSettleTask; import com.lanren.huhu.partner.schedule.AgentSettleTask;
import com.lanren.huhu.partner.service.UserAgentService; import com.lanren.huhu.partner.service.UserAgentService;
import com.lanren.huhu.partner.service.UserService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -34,6 +35,8 @@ public class AgentManager { ...@@ -34,6 +35,8 @@ public class AgentManager {
StringRedisTemplate redisTemplate; StringRedisTemplate redisTemplate;
@Autowired @Autowired
AgentSettleTask agentSettleTask; AgentSettleTask agentSettleTask;
@Autowired
UserService userService;
/*** /***
* * 获取代理商等级 1 总代, 2 大区, 3 省, 4 市 * * 获取代理商等级 1 总代, 2 大区, 3 省, 4 市
...@@ -85,7 +88,8 @@ public class AgentManager { ...@@ -85,7 +88,8 @@ public class AgentManager {
* @date 2019-07-04 14:48 * @date 2019-07-04 14:48
*/ */
public Result<ArrayList<ParentAgent>> getHierarchyParentList(Integer agentId) { 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<ArrayList<ParentAgent>> result = new Result<ArrayList<ParentAgent>>();
result.setData(parentAgents); result.setData(parentAgents);
return result; return result;
...@@ -96,7 +100,8 @@ public class AgentManager { ...@@ -96,7 +100,8 @@ public class AgentManager {
* @date 2019-07-04 14:48 * @date 2019-07-04 14:48
*/ */
public Result<ArrayList<ParentAgent>> getPingtuiParentList(Integer agentId) { 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<ArrayList<ParentAgent>> result = new Result<ArrayList<ParentAgent>>();
result.setData(parentAgents); result.setData(parentAgents);
return result; return result;
......
...@@ -115,16 +115,11 @@ public class AgentRewardQueueTask { ...@@ -115,16 +115,11 @@ public class AgentRewardQueueTask {
logger.info("代理商id: {} 不存在, 跳过不处理", message); logger.info("代理商id: {} 不存在, 跳过不处理", message);
return; return;
} }
if (userAgent.getAgentLevel() != AGENT_LEVEL_4) {
logger.info("代理商id: {} 不是城市代理, 跳过不处理", message);
return;
}
/** /**
* 这里的逻辑有问题, 不能用这个接口找上级, 因为会先找一次直接邀请人, * 这里的逻辑有问题, 不能用这个接口找上级, 因为会先找一次直接邀请人,
* 只能按message.getAgentId()的代理商id, 找user_agent表里的平推关系 * 只能按message.getAgentId()的代理商id, 找user_agent表里的平推关系
*/ */
ArrayList<ParentAgent> parentList = (ArrayList<ParentAgent>) userAgentService.getParentAgentListByAgentId(userAgent.getAgentId(), PARENT_COLUMN_NAME_PINGTUI); ArrayList<ParentAgent> parentList = (ArrayList<ParentAgent>) userService.getAgentListByUserId(userAgent.getUserId(), PARENT_COLUMN_NAME_PINGTUI);
ArrayList<ParentAgent> level4List = new ArrayList<ParentAgent>();
if (parentList.size() > 0) { if (parentList.size() > 0) {
/** /**
* 扫描agentlist中的平推城市代理 * 扫描agentlist中的平推城市代理
...@@ -134,26 +129,20 @@ public class AgentRewardQueueTask { ...@@ -134,26 +129,20 @@ public class AgentRewardQueueTask {
ArrayList<ParentAgent> rewardList = new ArrayList<ParentAgent>(); ArrayList<ParentAgent> rewardList = new ArrayList<ParentAgent>();
for (ParentAgent agent : parentList) { for (ParentAgent agent : parentList) {
/** /**
* 先扫描平推代理, 写到level4List * 奖励次数不够3, 写到rewardList
* 如果不是平推, 奖励次数还不够3, 写到rewardList
*/ */
if (agent.getLevel() == AGENT_LEVEL_4 && rewardCnt < 3) { if (rewardCnt < 3){
level4List.add(agent);
rewardList.add(agent);
rewardCnt++;
} else if (rewardCnt < 3){
rewardList.add(agent); rewardList.add(agent);
rewardCnt++; rewardCnt++;
} else { /**
* 如果找到总代 就不再往上找了 都给总代
*/
if (agent.getLevel() == AGENT_LEVEL_1) {
break; break;
} }
} else {
break;
} }
/**
* 如果平推层级小于3, 又没有上级代理, 报错不处理
*/
if (level4List.size() < 3 && level4List.size() == rewardList.size()) {
logger.error("代理商关系错误, 只有平推, 没有上级. {}", message);
return;
} }
/** /**
* 如果上面检查通过, 证明代理商关系没问题, 后面处理只看rewardList的size * 如果上面检查通过, 证明代理商关系没问题, 后面处理只看rewardList的size
......
...@@ -2,7 +2,6 @@ package com.lanren.huhu.partner.service; ...@@ -2,7 +2,6 @@ package com.lanren.huhu.partner.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.UserAgent; import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.ParentAgent;
import java.util.List; import java.util.List;
...@@ -22,17 +21,4 @@ public interface UserAgentService extends IService<UserAgent> { ...@@ -22,17 +21,4 @@ public interface UserAgentService extends IService<UserAgent> {
* @return * @return
*/ */
UserAgent getOneByAgentId(Integer agentId); 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; ...@@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.UserAgentMapper; import com.lanren.huhu.partner.dao.UserAgentMapper;
import com.lanren.huhu.partner.domain.UserAgent; import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.service.UserAgentService; import com.lanren.huhu.partner.service.UserAgentService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -51,42 +49,4 @@ public class UserAgentServiceImpl extends ServiceImpl<UserAgentMapper, UserAgent ...@@ -51,42 +49,4 @@ public class UserAgentServiceImpl extends ServiceImpl<UserAgentMapper, UserAgent
; ;
return baseMapper.selectOne(queryWrapper); 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 { ...@@ -346,6 +346,9 @@ public class UserServiceImpl implements UserService {
if (logger.isInfoEnabled()) { if (logger.isInfoEnabled()) {
logger.info("setAgentList for user: {} end", userId); logger.info("setAgentList for user: {} end", userId);
} }
if (parentColumnName.equals(PARENT_COLUMN_NAME_PINGTUI) && selfAgent != null && agentList.size() > 1) {
agentList.remove(0);
}
return agentList; 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