Commit 478bfc0d by houseme

Merge branch 'master' of http://gitlab.jntmedia.cn/guanchen/huhu-partner

* 'master' of http://gitlab.jntmedia.cn/guanchen/huhu-partner: 完成接口 /user/relation 补充 添加参数校验 添加查找上级合伙人 添加参数校验 添加查找上级合伙人 # Conflicts: # src/main/java/com/lanren/huhu/partner/controller/PartnerController.java # src/main/java/com/lanren/huhu/partner/manager/PartnerAccountManager.java # src/main/java/com/lanren/huhu/partner/model/Partner.java
parents c0acc456 c1de7605
package com.lanren.huhu.partner.controller;
import com.lanren.huhu.partner.manager.UserAgentManager;
import com.lanren.huhu.partner.model.Agent;
import com.lanren.huhu.partner.model.AgentRsp;
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 chen
*/
@RestController
@RequestMapping("/v1/agent")
public class AgentController {
private static Logger logger = LoggerFactory.getLogger(AgentController.class);
@Autowired
UserAgentManager userAgentManager;
@RequestMapping(value = "/level", method = RequestMethod.POST)
public Result<AgentRsp> getAgentLevel(@RequestBody @Valid Agent agent, @RequestHeader HttpHeaders headers) {
if (logger.isInfoEnabled()) {
logger.info("getLevel agentId:{},header:{},time:{}", agent.getAgentId(), headers.keySet().toArray(), LocalDateTime.now());
}
return userAgentManager.getAgentLevel(agent.getAgentId());
}
}
package com.lanren.huhu.partner.controller; import com.lanren.huhu.partner.domain.PartnerAccount;import com.lanren.huhu.partner.manager.PartnerAccountManager;import com.lanren.huhu.partner.model.Partner;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.validation.BindingResult;import org.springframework.validation.ObjectError;import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime;import java.util.ArrayList;import java.util.List;import java.util.Map; /** * @Author houseme * @Date 2019-06-26 11:00 * @Project partner * @Package com.lanren.huhu.partner.controller * @File: PartnerController */@RestController@RequestMapping("/v1/partner")public class PartnerController { private static Logger logger = LoggerFactory.getLogger(PartnerController.class); @Autowired private PartnerAccountManager partnerAccountManager; @RequestMapping(value = "/{id}", method = RequestMethod.GET) public Result<PartnerAccount> one(@PathVariable("id") Integer id, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("partner one userId:{},header:{},time:{}", id, headers.entrySet().toString(), LocalDateTime.now()); } return partnerAccountManager.findByUserId(id); } @RequestMapping(value = "/level", method = RequestMethod.POST) public Result<Map<String, Integer>> getPartnerLevel(@RequestParam Integer userId, @RequestBody Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("getPartnerLevel userId:{},header:{},time:{}", userId, headers.entrySet().toArray(), LocalDateTime.now()); } return partnerAccountManager.getPartnerLevel(partner.getUserId()); } @RequestMapping(value = "/userId/{id}", method = RequestMethod.POST) public Result<PartnerAccount> getOne(@PathVariable("id") Integer id, @RequestBody Partner partner, @RequestHeader HttpHeaders headers, BindingResult result) { if (logger.isInfoEnabled()) { List<String> list = new ArrayList<>(); if (result.hasErrors()) { List<ObjectError> errors = result.getAllErrors(); for (ObjectError objectError : errors) { list.add(objectError.getDefaultMessage()); } Result<PartnerAccount> objectResult = new Result<>(); objectResult.setMessage(list.toString()); return objectResult; } logger.info("partner one userId:{},header:{},time:{}", id, headers.entrySet().toString(), LocalDateTime.now()); } return partnerAccountManager.findByUserId(id); }}
\ No newline at end of file
package com.lanren.huhu.partner.controller; import com.lanren.huhu.partner.domain.PartnerAccount;import com.lanren.huhu.partner.manager.PartnerAccountManager;import com.lanren.huhu.partner.model.Partner;import com.lanren.huhu.partner.model.PartnerRsp;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.validation.BindingResult;import org.springframework.validation.ObjectError;import org.springframework.validation.annotation.Validated;import org.springframework.web.bind.annotation.*; import javax.validation.Valid;import java.time.LocalDateTime;import java.util.ArrayList;import java.util.List; /** * @Author houseme * @Date 2019-06-26 11:00 * @Project partner * @Package com.lanren.huhu.partner.controller * @File: PartnerController */@RestController@RequestMapping("/v1/partner")public class PartnerController { private static Logger logger = LoggerFactory.getLogger(PartnerController.class); @Autowired private PartnerAccountManager partnerAccountManager; @RequestMapping(value = "/{id}", method = RequestMethod.GET) public Result<PartnerAccount> one(@PathVariable("id") Integer id, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("partner one userId:{},header:{},time:{}", id, headers.entrySet().toString(), LocalDateTime.now()); } return partnerAccountManager.findByUserId(id); } @RequestMapping(value = "/userId/{id}", method = RequestMethod.POST) public Result<PartnerAccount> getOne(@PathVariable("id") Integer id, @RequestBody @Validated Partner partner, @RequestHeader HttpHeaders headers, BindingResult result) { if (logger.isInfoEnabled()) { List<String> list = new ArrayList<>(); if (result.hasErrors()) { List<ObjectError> errors = result.getAllErrors(); for (ObjectError objectError : errors) { list.add(objectError.getDefaultMessage()); } Result<PartnerAccount> objectResult = new Result<>(); objectResult.setMessage(list.toString()); return objectResult; } logger.info("partner one userId:{},header:{},time:{}", id, headers.entrySet().toString(), LocalDateTime.now()); } return partnerAccountManager.findByUserId(id); } @RequestMapping(value = "/level", method = RequestMethod.POST) public Result<PartnerRsp> 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 partnerAccountManager.getPartnerLevel(partner.getUserId()); }}
\ No newline at end of file
......
package com.lanren.huhu.partner.controller;
import com.lanren.huhu.partner.domain.PartnerAccount;
import com.lanren.huhu.partner.manager.PartnerAccountManager;
import com.lanren.huhu.partner.manager.UserManager;
import com.lanren.huhu.partner.model.User;
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 chen
*/
@RestController
@RequestMapping("/v1/user")
public class UserController {
private static Logger logger = LoggerFactory.getLogger(UserController.class);
@Autowired
private UserManager userManager;
@Autowired
private PartnerAccountManager partnerAccountManager;
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Result<PartnerAccount> getUserName(@PathVariable("id") Integer id, @RequestHeader HttpHeaders headers) {
return partnerAccountManager.findByUserId(id);
@RequestMapping(value = "/relation", method = RequestMethod.POST)
public Result<User> getRelation(@RequestBody @Valid User user, @RequestHeader HttpHeaders headers) {
if (logger.isInfoEnabled()) {
logger.info("getPartnerLevel userId:{ },header:{},time:{}", user.getUserId(), headers.keySet().toArray(), LocalDateTime.now());
}
return userManager.getRelation(user);
}
}
......@@ -17,4 +17,14 @@ public interface PartnerAccountMapper extends BaseMapper<PartnerAccount> {
int insertOrUpdateSelective(PartnerAccount record);
/**
* 按uid查找上级 PartnerAccount
* @param userId
* @return
*/
@Select("SELECT b.* \n" +
"FROM partner_invite_relation a\n" +
"JOIN partner_account b on a.invite_user_id=b.user_id\n" +
"WHERE a.user_id=#{userId}")
PartnerAccount getParentByUserId(Integer userId);
}
\ No newline at end of file
package com.lanren.huhu.partner.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lanren.huhu.partner.domain.UserAgent;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface UserAgentMapper extends BaseMapper<UserAgent> {
int updateBatch(List<UserAgent> list);
int batchInsert(@Param("list") List<UserAgent> list);
int insertOrUpdate(UserAgent record);
int insertOrUpdateSelective(UserAgent record);
/**
* 按agentId查找上级 UserAgent
* @param agentId
* @return
*/
@Select("SELECT b.*\n" +
"FROM user_agent a \n" +
"JOIN user_agent b on a.parent_agent_id=b.agent_id\n" +
"WHERE a.agent_id=#{agentId} and b.agent_level<=4")
UserAgent getParentAgent(Integer agentId);
}
\ No newline at end of file
package com.lanren.huhu.partner.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
@Data
@TableName(value = "user_agent")
public class UserAgent implements Serializable {
@TableId(value = "agent_id", type = IdType.AUTO)
private Integer agentId;
@TableField(value = "user_id")
private Integer userId;
@TableField(value = "agent_name")
private String agentName;
@TableField(value = "agent_phone")
private String agentPhone;
@TableField(value = "agent_level")
private Integer agentLevel;
@TableField(value = "node_agent_level_name")
private String nodeAgentLevelName;
@TableField(value = "parent_agent_id")
private Integer parentAgentId;
@TableField(value = "parent_agent_list")
private String parentAgentList;
@TableField(value = "card_num")
private Integer cardNum;
@TableField(value = "card_activate_num")
private Integer cardActivateNum;
@TableField(value = "commission_rate")
private BigDecimal commissionRate;
@TableField(value = "pid")
private String pid;
@TableField(value = "jd_pid")
private String jdPid;
@TableField(value = "identity")
private String identity;
@TableField(value = "account_type")
private Integer accountType;
@TableField(value = "account")
private String account;
/**
* 默认 99 无卡 100 有卡
*/
@TableField(value = "have_card")
private Integer haveCard;
@TableField(value = "remark")
private String remark;
/**
* 默认1 后台添加 2代理商邀请
*/
@TableField(value = "register_from")
private Integer registerFrom;
/**
* 邀请时间
*/
@TableField(value = "invite_time")
private Integer inviteTime;
/**
* 激活时间
*/
@TableField(value = "active_time")
private Integer activeTime;
@TableField(value = "agent_state")
private Integer agentState;
@TableField(value = "created_at")
private Integer createdAt;
@TableField(value = "updated_at")
private Integer updatedAt;
@TableField(value = "deleted_at")
private Integer deletedAt;
/**
* level1 id
*/
@TableField(value = "agent_level_one")
private Integer agentLevelOne;
/**
* level2 id
*/
@TableField(value = "agent_level_two")
private Integer agentLevelTwo;
/**
* level3 id
*/
@TableField(value = "agent_level_three")
private Integer agentLevelThree;
/**
* level4 id
*/
@TableField(value = "agent_level_four")
private Integer agentLevelFour;
private static final long serialVersionUID = 1L;
public static final String COL_USER_ID = "user_id";
public static final String COL_AGENT_NAME = "agent_name";
public static final String COL_AGENT_PHONE = "agent_phone";
public static final String COL_AGENT_LEVEL = "agent_level";
public static final String COL_NODE_AGENT_LEVEL_NAME = "node_agent_level_name";
public static final String COL_PARENT_AGENT_ID = "parent_agent_id";
public static final String COL_PARENT_AGENT_LIST = "parent_agent_list";
public static final String COL_CARD_NUM = "card_num";
public static final String COL_CARD_ACTIVATE_NUM = "card_activate_num";
public static final String COL_COMMISSION_RATE = "commission_rate";
public static final String COL_PID = "pid";
public static final String COL_JD_PID = "jd_pid";
public static final String COL_IDENTITY = "identity";
public static final String COL_ACCOUNT_TYPE = "account_type";
public static final String COL_ACCOUNT = "account";
public static final String COL_HAVE_CARD = "have_card";
public static final String COL_REMARK = "remark";
public static final String COL_REGISTER_FROM = "register_from";
public static final String COL_INVITE_TIME = "invite_time";
public static final String COL_ACTIVE_TIME = "active_time";
public static final String COL_AGENT_STATE = "agent_state";
public static final String COL_CREATED_AT = "created_at";
public static final String COL_UPDATED_AT = "updated_at";
public static final String COL_DELETED_AT = "deleted_at";
public static final String COL_AGENT_LEVEL_ONE = "agent_level_one";
public static final String COL_AGENT_LEVEL_TWO = "agent_level_two";
public static final String COL_AGENT_LEVEL_THREE = "agent_level_three";
public static final String COL_AGENT_LEVEL_FOUR = "agent_level_four";
}
\ No newline at end of file
package com.lanren.huhu.partner.manager; import com.lanren.huhu.partner.domain.PartnerAccount;import com.lanren.huhu.partner.result.Result;import com.lanren.huhu.partner.service.PartnerAccountService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component; import java.time.LocalDateTime;import java.util.HashMap;import java.util.Map; /** * @author houseme * @date 2019-06-26 10:56 * @Project partner * @Package com.lanren.huhu.partner.manager * @File: PartnerAccountManager */@Componentpublic class PartnerAccountManager { private static Logger logger = LoggerFactory.getLogger(PartnerAccountManager.class); @Autowired private PartnerAccountService partnerAccountService; /*** * 获取合伙人账户信息 * @param userId * @return */ public Result<PartnerAccount> findByUserId(Integer userId) { Result<PartnerAccount> result = new Result<>(); if (logger.isDebugEnabled()) { logger.info("PartnerAccountManager findByUserId userId:{},time:{}", userId, LocalDateTime.now()); } PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); logger.info("findByUserId {}", partnerAccount); result.setData(partnerAccount); return result; } public Result<Map<String, Integer>> getPartnerLevel(Integer userId) { if (logger.isDebugEnabled()) { logger.info("PartnerAccountManager getPartnerLevel userId:{},time:{}", userId, LocalDateTime.now()); } Result<Map<String, Integer>> result = new Result<>(); Map<String, Integer> map = new HashMap<String, Integer>(); int partnerLevel; PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); if (null != partnerAccount) { if (partnerAccount.getIsSuperPartner() == 1) { partnerLevel = 30; } else { partnerLevel = partnerAccount.getPartnerLevel(); } } else { partnerLevel = -1; result.setCode(601); } map.put("level", partnerLevel); result.setData(map); return result; }}
\ No newline at end of file
package com.lanren.huhu.partner.manager; import com.lanren.huhu.partner.domain.PartnerAccount;import com.lanren.huhu.partner.model.PartnerRsp;import com.lanren.huhu.partner.result.Result;import com.lanren.huhu.partner.service.PartnerAccountService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component; import java.time.LocalDateTime; /** * @author houseme * @date 2019-06-26 10:56 * @Project partner * @Package com.lanren.huhu.partner.manager * @File: PartnerAccountManager */@Componentpublic class PartnerAccountManager { private static Logger logger = LoggerFactory.getLogger(PartnerAccountManager.class); @Autowired private PartnerAccountService partnerAccountService; /*** * 获取合伙人账户信息 * @param userId * @return */ public Result<PartnerAccount> findByUserId(Integer userId) { Result<PartnerAccount> result = new Result<>(); if (logger.isDebugEnabled()) { logger.info("PartnerAccountManager findByUserId userId:{},time:{}", userId, LocalDateTime.now()); } PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); logger.info("findByUserId {}", partnerAccount); result.setData(partnerAccount); return result; } /*** * 获取合伙人等级 10 普通, 20 高级, 30 超级 * @param userId * @return */ public Result<PartnerRsp> getPartnerLevel(Integer userId) { if (logger.isDebugEnabled()) { logger.info("PartnerAccountManager getPartnerLevel userId:{},time:{}", userId, LocalDateTime.now()); } Result<PartnerRsp> result = new Result<>(); int partnerLevel; PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); if (null != partnerAccount) { if (partnerAccount.getIsSuperPartner() == 1) { partnerLevel = 30; } else { partnerLevel = partnerAccount.getPartnerLevel(); } } else { partnerLevel = -1; result.setCode(60404); } result.setData(new PartnerRsp(partnerLevel)); return result; }}
\ No newline at end of file
......
package com.lanren.huhu.partner.manager;
import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.AgentRsp;
import com.lanren.huhu.partner.model.PartnerRsp;
import com.lanren.huhu.partner.result.Result;
import com.lanren.huhu.partner.service.UserAgentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* @author chen
*/
@Component
public class UserAgentManager {
private static Logger logger = LoggerFactory.getLogger(UserAgentManager.class);
@Autowired
UserAgentService userAgentService;
/***
* * 获取代理商等级 1 总代, 2 大区, 3 省, 4 市
* @param agentId
* @return
*/
public Result<AgentRsp> getAgentLevel(Integer agentId) {
if (logger.isDebugEnabled()) {
logger.info("UserAgentManager getLevel agentId:{},time:{}", agentId, LocalDateTime.now());
}
Result<AgentRsp> result = new Result<>();
UserAgent userAgent = userAgentService.getOneByAgentId(agentId);
int agentLevel;
if (null != userAgent) {
agentLevel = userAgent.getAgentLevel();
} else {
agentLevel = -1;
result.setCode(601);
}
result.setData(new AgentRsp(agentLevel));
return result;
}
}
package com.lanren.huhu.partner.manager;
import com.lanren.huhu.partner.domain.PartnerAccount;
import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.model.ParentPartner;
import com.lanren.huhu.partner.model.User;
import com.lanren.huhu.partner.result.Result;
import com.lanren.huhu.partner.service.PartnerAccountService;
import com.lanren.huhu.partner.service.UserAgentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
/**
* @author houseme
*/
@Component
public class UserManager {
private static Logger logger = LoggerFactory.getLogger(UserManager.class);
@Autowired
private PartnerAccountService partnerAccountService;
@Autowired
private UserAgentService userAgentService;
/**
* @description: 根据用户id, 查找一个用户的全部合伙人上级 和 代理商上级
* @param user
* @return Result<User>
* @throws
* @author chen
* @date 2019-06-26 20:01
*/
public Result<User> getRelation(User user) {
setPartnerList(user);
setAgentList(user);
Result<User> result = new Result<User>();
result.setData(user);
return result;
}
/**
* @description: 查找一个用户的全部合伙人上级, set到User对象的partnerList中
* @param user
* @author chen
* @date 2019-06-26 20:37
*/
private void setPartnerList(User user) {
logger.info("begin setPartnerList for user: {} ......", user.getUserId());
if (null == user.getPartnerList()) {
ArrayList<ParentPartner> partnerList = new ArrayList<ParentPartner>();
user.setPartnerList(partnerList);
}
/**
* 无限找
*/
int loopUserId = user.getUserId();
while (true) {
logger.info("now loop uid is {}", loopUserId);
ParentPartner parentPartner = getParentPartner(loopUserId);
if (null == parentPartner) {
break;
} else {
logger.info("parent is {} ", parentPartner.getUserId());
user.getPartnerList().add(parentPartner);
loopUserId = parentPartner.getUserId();
}
}
logger.info("setPartnerList for user: {} end", user.getUserId());
}
/**
* @description: 查找一个用户的全部代理商上级 set到User对象的agentList中
* @param user
* @date 2019-06-27 11:16
*/
private void setAgentList(User user) {
logger.info("begin setAgentList for user: {} ......", user.getUserId());
if (null == user.getAgentList()) {
ArrayList<ParentAgent> agentList = new ArrayList<ParentAgent>();
user.setAgentList(agentList);
}
/**
* 无限找
* 先无限找上级合伙人, 直到找到第一个是代理商的合伙人
*/
int loopUserId = user.getUserId();
while (true) {
logger.info("now loop uid is {}", loopUserId);
ParentPartner parentPartner = getParentPartner(loopUserId);
if (null != parentPartner) {
UserAgent userAgent = userAgentService.getOneByUserId(parentPartner.getUserId());
if (null != userAgent) {
/**
* 然后开始 无限找 这个人的上级代理商
*/
logger.info("find first agent({}) for user: {}", userAgent.getAgentId(), user.getUserId());
user.getAgentList().add(new ParentAgent(userAgent.getAgentId(), userAgent.getAgentLevel()));
logger.info("loop find parent agent start ......");
int loogAgentId = userAgent.getAgentId();
while (true) {
ParentAgent loopUserAgent = getParentAgent(loogAgentId);
if (null == loopUserAgent) {
break;
} else {
logger.info("parent agent is ", loopUserAgent.getAgentId());
user.getAgentList().add(new ParentAgent(loopUserAgent.getAgentId(), loopUserAgent.getLevel()));
loogAgentId = loopUserAgent.getAgentId();
}
}
logger.info("loop find parent agent end");
break;
} else {
break;
}
} else {
logger.info("parent is {} ", parentPartner.getUserId());
user.getPartnerList().add(parentPartner);
loopUserId = parentPartner.getUserId();
}
}
logger.info("setAgentList for user: {} end", user.getUserId());
}
/**
* 按userId查找上级合伙人的 userId 和 level
* @param userId
* @return
*/
private ParentPartner getParentPartner(Integer userId) {
PartnerAccount partnerAccount = partnerAccountService.getParentPartner(userId);
ParentPartner parentPartner = null;
if (null != partnerAccount) {
int partnerLevel = partnerAccount.getIsSuperPartner() == 1 ? 30 : partnerAccount.getPartnerLevel();
parentPartner = new ParentPartner(partnerAccount.getUserId(),partnerLevel);
}
return parentPartner;
}
/**
* 按agentId 查找上级代理商的 agentId 和 level
* @param agentId
* @return
*/
private ParentAgent getParentAgent(Integer agentId) {
UserAgent userAgent = userAgentService.getParentAgent(agentId);
ParentAgent parentAgent = null;
if (null != userAgent) {
int agentLevel = userAgent.getAgentLevel();
parentAgent = new ParentAgent(userAgent.getAgentId(), agentLevel);
}
return parentAgent;
}
}
package com.lanren.huhu.partner.model;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @author chen
* @title: Agent
* @projectName partner
* @description: TODO
* @package com.lanren.huhu.partner.model
* @date 2019-06-2619:33
*/
@Data
public class Agent {
private static final long serialVersionUID = 1L;
@NotNull(message = "agentId 不能为空")
@Min(value = 1, message = "agentId 需要大于0")
int agentId;
int level;
}
package com.lanren.huhu.partner.model;
import lombok.Data;
@Data
public class AgentRsp {
private static final long serialVersionUID = 1L;
int level;
public AgentRsp(int level) {
this.level = level;
}
}
package com.lanren.huhu.partner.model;
import lombok.Data;
/**
* @author chen
* @title: ParentAgent
* @projectName partner
* @description: TODO
* @package com.lanren.huhu.partner.model
* @date 2019-06-2711:20
*/
@Data
public class ParentAgent {
int agentId;
int level;
public ParentAgent(int agentId, int level) {
this.agentId = agentId;
this.level = level;
}
}
package com.lanren.huhu.partner.model;
import lombok.Data;
/**
* @author chen
* @title: ParentPartner
* @projectName partner
* @description: TODO
* @package com.lanren.huhu.partner.model
* @date 2019-06-2711:20
*/
@Data
public class ParentPartner {
int userId;
int level;
public ParentPartner(int userId, int level) {
this.userId = userId;
this.level = level;
}
}
package com.lanren.huhu.partner.model; import lombok.Data; import javax.validation.constraints.DecimalMax;import javax.validation.constraints.DecimalMin;import java.io.Serializable; /** * @author houseme * @date 2019-06-26 11:47 * @Project partner * @Package com.lanren.huhu.partner.model * @File: Partner */@Datapublic class Partner implements Serializable { private static final long serialVersionUID = 1L; @DecimalMin(value = "1", message = "{partner.level.min}") @DecimalMax(value = "5", message = "{partner.level.max}") private Integer level; @DecimalMin(value = "1", message = "{partner.user.id}") private Integer userId;}
\ No newline at end of file
package com.lanren.huhu.partner.model; import lombok.Data; import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;import java.io.Serializable; /** * @author houseme * @date 2019-06-26 11:47 * @Project partner * @Package com.lanren.huhu.partner.model * @File: Partner */@Datapublic class Partner implements Serializable { private static final long serialVersionUID = 1L; @NotNull(message = "userId 不能为空") @Min(value = 1, message = "userId 需要大于0") private int userId; private int level;}
\ No newline at end of file
......
package com.lanren.huhu.partner.model;
import lombok.Data;
@Data
public class PartnerRsp {
private static final long serialVersionUID = 1L;
int level;
public PartnerRsp(int level) {
this.level = level;
}
}
package com.lanren.huhu.partner.model;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
/**
* @author chen
* @title: User
* @projectName partner
* @description: 用户输入/输出
* @package com.lanren.huhu.partner.model
* @date 2019-06-2619:56
*/
@Data
public class User {
private static final long serialVersionUID = 1L;
@NotNull(message = "userId 不能为空")
@Min(value = 1, message = "userId 需要大于0")
private int userId;
private ArrayList<ParentPartner> partnerList;
private ArrayList<ParentAgent> agentList;
}
......@@ -49,4 +49,14 @@ public interface PartnerAccountService extends IService<PartnerAccount> {
* @return
*/
PartnerAccount getOneByUserId(Integer userId);
/**
* @description: TODO
* @param userId
* @return PartnerAccount
* @throws
* @author chen
* @date 2019-06-26 20:13
*/
PartnerAccount getParentPartner(Integer userId);
}
package com.lanren.huhu.partner.service;
import java.util.List;
import com.lanren.huhu.partner.dao.PartnerAccountMapper;
import com.lanren.huhu.partner.domain.UserAgent;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
public interface UserAgentService extends IService<UserAgent>{
int updateBatch(List<UserAgent> list);
int batchInsert(List<UserAgent> list);
int insertOrUpdate(UserAgent record);
int insertOrUpdateSelective(UserAgent record);
/***
* 根据代理商id查询账户信息
* @param agentId
* @return
*/
UserAgent getOneByAgentId(Integer agentId);
/***
* 根据用户id查询账户信息
* @param userId
* @return
*/
UserAgent getOneByUserId(Integer userId);
/**
* 根据代理商id找到上级代理商
*/
UserAgent getParentAgent(Integer agentId);
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.PartnerAccountMapper;
import com.lanren.huhu.partner.domain.PartnerAccount;
import com.lanren.huhu.partner.service.PartnerAccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
......@@ -14,6 +15,8 @@ import java.util.List;
*/
@Service
public class PartnerAccountServiceImpl extends ServiceImpl<PartnerAccountMapper, PartnerAccount> implements PartnerAccountService {
@Autowired
PartnerAccountMapper partnerAccountMapper;
@Override
public int updateBatch(List<PartnerAccount> list) {
......@@ -42,4 +45,9 @@ public class PartnerAccountServiceImpl extends ServiceImpl<PartnerAccountMapper,
queryWrapper.eq("user_id", userId);
return baseMapper.selectOne(queryWrapper);
}
@Override
public PartnerAccount getParentPartner(Integer userId) {
return partnerAccountMapper.getParentByUserId(userId);
}
}
package com.lanren.huhu.partner.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lanren.huhu.partner.domain.PartnerAccount;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.dao.UserAgentMapper;
import com.lanren.huhu.partner.service.UserAgentService;
/**
* @author chen
*/
@Service
public class UserAgentServiceImpl extends ServiceImpl<UserAgentMapper, UserAgent> implements UserAgentService{
@Autowired
UserAgentMapper userAgentMapper;
@Override
public int updateBatch(List<UserAgent> list) {
return baseMapper.updateBatch(list);
}
@Override
public int batchInsert(List<UserAgent> list) {
return baseMapper.batchInsert(list);
}
@Override
public int insertOrUpdate(UserAgent record) {
return baseMapper.insertOrUpdate(record);
}
@Override
public int insertOrUpdateSelective(UserAgent record) {
return baseMapper.insertOrUpdateSelective(record);
}
@Override
public UserAgent getOneByAgentId(Integer agentId) {
QueryWrapper<UserAgent> queryWrapper = new QueryWrapper();
queryWrapper.eq("agent_id", agentId)
.le("agent_level", 4)
;
return baseMapper.selectOne(queryWrapper);
}
@Override
public UserAgent getOneByUserId(Integer userId) {
QueryWrapper<UserAgent> queryWrapper = new QueryWrapper();
queryWrapper.eq("user_id", userId).le("agent_level", 4);
return baseMapper.selectOne(queryWrapper);
}
@Override
public UserAgent getParentAgent(Integer agentId) {
return userAgentMapper.getParentAgent(agentId);
}
}
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