Commit 2dcd2caf by guanchen

添加接口: /user/relation/change

刷新缓存数据
parent 9af66f0c
...@@ -44,4 +44,18 @@ public class UserController { ...@@ -44,4 +44,18 @@ public class UserController {
result.setData("删除成功"); result.setData("删除成功");
return result; return result;
} }
@RequestMapping(value = "/relation/change", method = RequestMethod.POST)
public Result<String> changeRelation(@RequestBody @Valid User user, @RequestHeader HttpHeaders headers) {
if (logger.isInfoEnabled()) {
logger.info("changeRelation userId:{},header:{},time:{}", user.getUserId(), headers.keySet().toArray(), LocalDateTime.now());
}
Result<String> result = new Result<String>();
if (userManager.changeRelation(user.getUserId())) {
result.setData("用户刷新成功");
} else {
result.setCode(500);
}
return result;
}
} }
...@@ -2,11 +2,12 @@ package com.lanren.huhu.partner.dao; ...@@ -2,11 +2,12 @@ package com.lanren.huhu.partner.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lanren.huhu.partner.domain.PartnerAccount; import com.lanren.huhu.partner.domain.PartnerAccount;
import java.util.List;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper @Mapper
public interface PartnerAccountMapper extends BaseMapper<PartnerAccount> { public interface PartnerAccountMapper extends BaseMapper<PartnerAccount> {
int updateBatch(List<PartnerAccount> list); int updateBatch(List<PartnerAccount> list);
...@@ -22,9 +23,18 @@ public interface PartnerAccountMapper extends BaseMapper<PartnerAccount> { ...@@ -22,9 +23,18 @@ public interface PartnerAccountMapper extends BaseMapper<PartnerAccount> {
* @param userId * @param userId
* @return * @return
*/ */
@Select("SELECT b.* \n" + @Select("SELECT b.* " +
"FROM partner_invite_relation a\n" + "FROM partner_invite_relation a " +
"JOIN partner_account b on a.invite_user_id=b.user_id\n" + "JOIN partner_account b on a.invite_user_id=b.user_id " +
"WHERE a.user_id=#{userId}") "WHERE a.user_id=#{userId}")
PartnerAccount getParentByUserId(Integer userId); PartnerAccount getParentByUserId(Integer userId);
/**
* 按uid查找下级 PartnerAccount
*/
@Select("SELECT b.* " +
"FROM partner_invite_relation a " +
"JOIN partner_account b on a.user_id=b.user_id " +
"WHERE a.invite_user_id=#{userId}")
List<PartnerAccount> getChildrenByUserId(Integer userId);
} }
\ No newline at end of file
...@@ -26,9 +26,9 @@ public interface UserAgentMapper extends BaseMapper<UserAgent> { ...@@ -26,9 +26,9 @@ public interface UserAgentMapper extends BaseMapper<UserAgent> {
* @param agentId * @param agentId
* @return * @return
*/ */
@Select("SELECT b.*\n" + @Select("SELECT b.* " +
"FROM user_agent a \n" + "FROM user_agent a " +
"JOIN user_agent b on a.parent_agent_id=b.agent_id\n" + "JOIN user_agent b on a.parent_agent_id=b.agent_id " +
"WHERE a.agent_id=#{agentId} and b.agent_level<=4") "WHERE a.agent_id=#{agentId} and b.agent_level<=4")
UserAgent getParentAgent(Integer agentId); UserAgent getParentAgent(Integer agentId);
} }
\ 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.Partner;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<>(); PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); if (null != partnerAccount) { int partnerLevel; if (partnerAccount.getIsSuperPartner() == 1) { partnerLevel = 30; } else { partnerLevel = partnerAccount.getPartnerLevel(); } result.setData(new PartnerRsp(partnerLevel)); } else { result.setCode(601); } return result; }} 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); 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<>(); PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); if (null != partnerAccount) { int partnerLevel; if (partnerAccount.getIsSuperPartner() == 1) { partnerLevel = 30; } else { partnerLevel = partnerAccount.getPartnerLevel(); } result.setData(new PartnerRsp(partnerLevel)); } else { result.setCode(601); } return result; }}
\ No newline at end of file \ No newline at end of file
......
...@@ -5,9 +5,9 @@ import com.lanren.huhu.partner.domain.UserAgent; ...@@ -5,9 +5,9 @@ import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.ParentAgent; import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.model.ParentPartner; import com.lanren.huhu.partner.model.ParentPartner;
import com.lanren.huhu.partner.model.User; 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.PartnerAccountService;
import com.lanren.huhu.partner.service.UserAgentService; import com.lanren.huhu.partner.service.UserAgentService;
import com.lanren.huhu.partner.util.PartnerTreeUtil;
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;
...@@ -38,14 +38,16 @@ public class UserManager { ...@@ -38,14 +38,16 @@ public class UserManager {
* 缓存不能带有构造方法的Bean 所以只能返回User的Bean * 缓存不能带有构造方法的Bean 所以只能返回User的Bean
* 包装Result在Cacheable注解的方法之外进行操作 * 包装Result在Cacheable注解的方法之外进行操作
* @param userId * @param userId
* @return Result<User> * @return User
* @throws * @throws
* @author chen * @author chen
* @date 2019-06-26 20:01 * @date 2019-06-26 20:01
*/ */
@Cacheable @Cacheable
public User getRelationByUserId(Integer userId) { public User getRelationByUserId(Integer userId) {
if (logger.isDebugEnabled()) {
logger.info("new a user object "); logger.info("new a user object ");
}
User user = new User(); User user = new User();
user.setUserId(userId); user.setUserId(userId);
setPartnerList(user); setPartnerList(user);
...@@ -58,8 +60,10 @@ public class UserManager { ...@@ -58,8 +60,10 @@ public class UserManager {
*/ */
@CacheEvict(key = "#userId") @CacheEvict(key = "#userId")
public void deleteRalationByUserId(Integer userId) { public void deleteRalationByUserId(Integer userId) {
if (logger.isInfoEnabled()) {
logger.info("delete user relation cache, userId: {}", userId); logger.info("delete user relation cache, userId: {}", userId);
} }
}
/** /**
* @description: 查找一个用户的全部合伙人上级, set到User对象的partnerList中 * @description: 查找一个用户的全部合伙人上级, set到User对象的partnerList中
...@@ -68,7 +72,9 @@ public class UserManager { ...@@ -68,7 +72,9 @@ public class UserManager {
* @date 2019-06-26 20:37 * @date 2019-06-26 20:37
*/ */
private void setPartnerList(User user) { private void setPartnerList(User user) {
if (logger.isInfoEnabled()) {
logger.info("begin setPartnerList for user: {} ......", user.getUserId()); logger.info("begin setPartnerList for user: {} ......", user.getUserId());
}
if (null == user.getPartnerList()) { if (null == user.getPartnerList()) {
ArrayList<ParentPartner> partnerList = new ArrayList<ParentPartner>(); ArrayList<ParentPartner> partnerList = new ArrayList<ParentPartner>();
user.setPartnerList(partnerList); user.setPartnerList(partnerList);
...@@ -78,18 +84,24 @@ public class UserManager { ...@@ -78,18 +84,24 @@ public class UserManager {
*/ */
int loopUserId = user.getUserId(); int loopUserId = user.getUserId();
while (true) { while (true) {
if (logger.isDebugEnabled()) {
logger.info("now loop uid is {}", loopUserId); logger.info("now loop uid is {}", loopUserId);
}
ParentPartner parentPartner = getParentPartner(loopUserId); ParentPartner parentPartner = getParentPartner(loopUserId);
if (null == parentPartner) { if (null == parentPartner) {
break; break;
} else { } else {
if (logger.isDebugEnabled()) {
logger.info("parent is {} ", parentPartner.getUserId()); logger.info("parent is {} ", parentPartner.getUserId());
}
user.getPartnerList().add(parentPartner); user.getPartnerList().add(parentPartner);
loopUserId = parentPartner.getUserId(); loopUserId = parentPartner.getUserId();
} }
} }
if (logger.isInfoEnabled()) {
logger.info("setPartnerList for user: {} end", user.getUserId()); logger.info("setPartnerList for user: {} end", user.getUserId());
} }
}
/** /**
* @description: 查找一个用户的全部代理商上级 set到User对象的agentList中 * @description: 查找一个用户的全部代理商上级 set到User对象的agentList中
...@@ -97,7 +109,9 @@ public class UserManager { ...@@ -97,7 +109,9 @@ public class UserManager {
* @date 2019-06-27 11:16 * @date 2019-06-27 11:16
*/ */
private void setAgentList(User user) { private void setAgentList(User user) {
if (logger.isInfoEnabled()) {
logger.info("begin setAgentList for user: {} ......", user.getUserId()); logger.info("begin setAgentList for user: {} ......", user.getUserId());
}
if (null == user.getAgentList()) { if (null == user.getAgentList()) {
ArrayList<ParentAgent> agentList = new ArrayList<ParentAgent>(); ArrayList<ParentAgent> agentList = new ArrayList<ParentAgent>();
user.setAgentList(agentList); user.setAgentList(agentList);
...@@ -108,7 +122,9 @@ public class UserManager { ...@@ -108,7 +122,9 @@ public class UserManager {
*/ */
int loopUserId = user.getUserId(); int loopUserId = user.getUserId();
while (true) { while (true) {
if (logger.isDebugEnabled()) {
logger.info("now loop uid is {}", loopUserId); logger.info("now loop uid is {}", loopUserId);
}
ParentPartner parentPartner = getParentPartner(loopUserId); ParentPartner parentPartner = getParentPartner(loopUserId);
/** /**
* 有上级合伙人 * 有上级合伙人
...@@ -122,16 +138,22 @@ public class UserManager { ...@@ -122,16 +138,22 @@ public class UserManager {
/** /**
* 然后开始 无限找 这个人的上级代理商 * 然后开始 无限找 这个人的上级代理商
*/ */
if (logger.isDebugEnabled()) {
logger.info("find first agent({}) for user: {}", userAgent.getAgentId(), user.getUserId()); logger.info("find first agent({}) for user: {}", userAgent.getAgentId(), user.getUserId());
}
user.getAgentList().add(new ParentAgent(userAgent.getUserId(), userAgent.getAgentId(), userAgent.getAgentLevel())); user.getAgentList().add(new ParentAgent(userAgent.getUserId(), userAgent.getAgentId(), userAgent.getAgentLevel()));
if (logger.isDebugEnabled()) {
logger.info("loop find parent agent start ......"); logger.info("loop find parent agent start ......");
}
int loogAgentId = userAgent.getAgentId(); int loogAgentId = userAgent.getAgentId();
while (true) { while (true) {
ParentAgent loopUserAgent = getParentAgent(loogAgentId); ParentAgent loopUserAgent = getParentAgent(loogAgentId);
if (null == loopUserAgent) { if (null == loopUserAgent) {
break; break;
} else { } else {
if (logger.isDebugEnabled()) {
logger.info("parent agent is ", loopUserAgent.getAgentId()); logger.info("parent agent is ", loopUserAgent.getAgentId());
}
user.getAgentList().add(new ParentAgent(loopUserAgent.getUserId(), loopUserAgent.getAgentId(), loopUserAgent.getLevel())); user.getAgentList().add(new ParentAgent(loopUserAgent.getUserId(), loopUserAgent.getAgentId(), loopUserAgent.getLevel()));
loogAgentId = loopUserAgent.getAgentId(); loogAgentId = loopUserAgent.getAgentId();
} }
...@@ -139,7 +161,9 @@ public class UserManager { ...@@ -139,7 +161,9 @@ public class UserManager {
/** /**
* 找完 "第一个是代理商的合伙人" 的 全部上级代理后 退出while循环 * 找完 "第一个是代理商的合伙人" 的 全部上级代理后 退出while循环
*/ */
if (logger.isDebugEnabled()) {
logger.info("loop find parent agent end"); logger.info("loop find parent agent end");
}
break; break;
} else { } else {
/** /**
...@@ -151,12 +175,16 @@ public class UserManager { ...@@ -151,12 +175,16 @@ public class UserManager {
/** /**
* 没有上级合伙人 打印结束信息 跳出循环 * 没有上级合伙人 打印结束信息 跳出循环
*/ */
if (logger.isDebugEnabled()) {
logger.info("loop end with userId: {}", loopUserId); logger.info("loop end with userId: {}", loopUserId);
}
break; break;
} }
} }
if (logger.isInfoEnabled()) {
logger.info("setAgentList for user: {} end", user.getUserId()); logger.info("setAgentList for user: {} end", user.getUserId());
} }
}
/** /**
* 按userId查找上级合伙人的 userId 和 level * 按userId查找上级合伙人的 userId 和 level
...@@ -187,4 +215,14 @@ public class UserManager { ...@@ -187,4 +215,14 @@ public class UserManager {
} }
return parentAgent; return parentAgent;
} }
/**
* 根据输入的用户id, 刷新这个用户以及他邀请关系的所有下级的邀请关系
* @param userId
* @return
*/
public boolean changeRelation(int userId) {
PartnerTreeUtil partnerTreeUtil = new PartnerTreeUtil();
return partnerTreeUtil.findPartnerChiledren(userId, partnerAccountService, this);
}
} }
package com.lanren.huhu.partner.model;
import com.lanren.huhu.partner.model.base.BaseModel;
import lombok.Data;
import java.util.ArrayList;
/**
* @author chen
* @title: PartnerTree
* @projectName partner
* @description: 存储合伙人的关系树结构, childrenList为其直属下级, parentList为父级关系
* @package com.lanren.huhu.partner.model
* @date 2019-06-28 11:17
*/
@Data
public class PartnerTree extends BaseModel {
Integer userId;
Integer level;
ArrayList<ParentPartner> parentList;
ArrayList<PartnerTree> childrenList = new ArrayList<PartnerTree>();
public ArrayList<ParentPartner> cloneParent() {
ArrayList<ParentPartner> copyList = new ArrayList<ParentPartner>();
for (ParentPartner parentPartner : this.getParentList()) {
ParentPartner one = new ParentPartner(parentPartner.getUserId(), parentPartner.getLevel());
copyList.add(one);
}
return copyList;
}
}
...@@ -25,6 +25,8 @@ public class User extends BaseModel { ...@@ -25,6 +25,8 @@ public class User extends BaseModel {
@Min(value = 1, message = "userId 需要大于0") @Min(value = 1, message = "userId 需要大于0")
private int userId; private int userId;
private int level;
private ArrayList<ParentPartner> partnerList; private ArrayList<ParentPartner> partnerList;
private ArrayList<ParentAgent> agentList; private ArrayList<ParentAgent> agentList;
......
...@@ -59,4 +59,14 @@ public interface PartnerAccountService extends IService<PartnerAccount> { ...@@ -59,4 +59,14 @@ public interface PartnerAccountService extends IService<PartnerAccount> {
* @date 2019-06-26 20:13 * @date 2019-06-26 20:13
*/ */
PartnerAccount getParentPartner(Integer userId); PartnerAccount getParentPartner(Integer userId);
/**
* @description: TODO
* @param ${tags}
* @return ${return_type}
* @throws
* @author chen
* @date 2019-06-28 11:49
*/
List<PartnerAccount> getChildrenByUserId(Integer userId);
} }
...@@ -50,4 +50,9 @@ public class PartnerAccountServiceImpl extends ServiceImpl<PartnerAccountMapper, ...@@ -50,4 +50,9 @@ public class PartnerAccountServiceImpl extends ServiceImpl<PartnerAccountMapper,
public PartnerAccount getParentPartner(Integer userId) { public PartnerAccount getParentPartner(Integer userId) {
return partnerAccountMapper.getParentByUserId(userId); return partnerAccountMapper.getParentByUserId(userId);
} }
@Override
public List<PartnerAccount> getChildrenByUserId(Integer userId) {
return partnerAccountMapper.getChildrenByUserId(userId);
}
} }
package com.lanren.huhu.partner.util;
import com.lanren.huhu.partner.domain.PartnerAccount;
import com.lanren.huhu.partner.manager.UserManager;
import com.lanren.huhu.partner.model.ParentPartner;
import com.lanren.huhu.partner.model.PartnerTree;
import com.lanren.huhu.partner.service.PartnerAccountService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
/**
* @author chen
* @title: PartnerTreeUtil
* @projectName partner
* @description: 用于构建PartnerTree
* @package com.lanren.huhu.partner.util
* @date 2019-06-28 11:19
*/
public class PartnerTreeUtil {
private static Logger logger = LoggerFactory.getLogger(PartnerTreeUtil.class);
private PartnerAccountService partnerAccountService;
private UserManager userManager;
/**
* 根据输入的userId, 完成递归查找
* @param userId
*/
public boolean findPartnerChiledren(Integer userId, PartnerAccountService partnerAccountService, UserManager userManager) {
try{
logger.info("start findPartnerChiledren for userId: {} ...", userId);
logger.info("partnerAccountService is null ? : {}", partnerAccountService == null);
this.partnerAccountService = partnerAccountService;
this.userManager = userManager;
PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId);
int partnerLevel = partnerAccount.getIsSuperPartner() == 1 ? 30 : partnerAccount.getPartnerLevel();
PartnerTree root = new PartnerTree();
root.setUserId(partnerAccount.getUserId());
root.setLevel(partnerLevel);
root.setParentList(new ArrayList<ParentPartner>());
recursiveSet(root);
logger.info("done findPartnerChiledren for userId: {}", userId);
return true;
} catch (Exception e) {
logger.error(e.getMessage(), e);
return false;
}
}
/**
* 递归查找, 完成输入的tree的所有下级查找
* @param tree
*/
private void recursiveSet(PartnerTree tree) {
if (logger.isDebugEnabled()) {
logger.info("do recursiveSet for userId: {}", tree.getUserId());
}
/**
* 先找到直接下级
*/
setChildren(tree);
ArrayList<PartnerTree> children = tree.getChildrenList();
/**
* 如果没有下级了 那么直接输出结果
*/
if (children.size() == 0) {
outputTree(tree);
} else {
/**
* 如果有直接下级, 遍历下级, 对每个下级再执行recursiveSet
*/
for (PartnerTree child : children) {
recursiveSet(child);
/**
* 当完成 对每个下级再执行recursiveSet 之后
* 判断一下, 每个下级是否有直接下级
* 如果有 那么在各自的recursiveSet中 应该没有走到 line:52 的outputTree 方法
* 所以要在这里执行一次, 把他们自己输出
*/
if (child.getChildrenList().size() > 0) {
outputTree(child);
}
}
}
}
/**
* 完成刷新用户缓存数据
* @param tree
*/
private void outputTree(PartnerTree tree) {
StringBuilder sb = new StringBuilder();
ArrayList<ParentPartner> list = tree.getParentList();
for (ParentPartner p : list) {
sb.append(p.getUserId()).append(",");
}
if (logger.isDebugEnabled()) {
logger.info("begin to refresh cache......");
logger.info("userId: {}, parent is: {}", tree.getUserId(), sb.toString());
}
userManager.deleteRalationByUserId(tree.getUserId());
userManager.getRelationByUserId(tree.getUserId());
}
/**
* 无递归操作, 只往下查找一级
* 把下级的数据, 设置到输入的tree中的childrenList
* @param tree
*/
private void setChildren(PartnerTree tree) {
ArrayList<PartnerAccount> partnerAccountArrayList = (ArrayList<PartnerAccount>) partnerAccountService.getChildrenByUserId(tree.getUserId());
for (PartnerAccount partnerAccount : partnerAccountArrayList) {
Integer childId = partnerAccount.getUserId();
Integer childLevel = partnerAccount.getIsSuperPartner() == 1 ? 30 : partnerAccount.getPartnerLevel();
if (!tree.getParentList().contains(childId)) {
ArrayList<ParentPartner> parentList4Child = tree.cloneParent();
parentList4Child.add(new ParentPartner(tree.getUserId(), tree.getLevel()));
PartnerTree oneChild = new PartnerTree();
oneChild.setUserId(childId);
oneChild.setLevel(childLevel);
oneChild.setParentList(parentList4Child);
tree.getChildrenList().add(oneChild);
}
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lanren.huhu.partner.dao.UserAgentMapper">
<resultMap id="BaseResultMap" type="com.lanren.huhu.partner.domain.UserAgent">
<!--@mbg.generated-->
<id column="agent_id" property="agentId" />
<result column="user_id" property="userId" />
<result column="agent_name" property="agentName" />
<result column="agent_phone" property="agentPhone" />
<result column="agent_level" property="agentLevel" />
<result column="node_agent_level_name" property="nodeAgentLevelName" />
<result column="parent_agent_id" property="parentAgentId" />
<result column="parent_agent_list" property="parentAgentList" />
<result column="card_num" property="cardNum" />
<result column="card_activate_num" property="cardActivateNum" />
<result column="commission_rate" property="commissionRate" />
<result column="pid" property="pid" />
<result column="jd_pid" property="jdPid" />
<result column="identity" property="identity" />
<result column="account_type" property="accountType" />
<result column="account" property="account" />
<result column="have_card" property="haveCard" />
<result column="remark" property="remark" />
<result column="register_from" property="registerFrom" />
<result column="invite_time" property="inviteTime" />
<result column="active_time" property="activeTime" />
<result column="agent_state" property="agentState" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
<result column="deleted_at" property="deletedAt" />
<result column="agent_level_one" property="agentLevelOne" />
<result column="agent_level_two" property="agentLevelTwo" />
<result column="agent_level_three" property="agentLevelThree" />
<result column="agent_level_four" property="agentLevelFour" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
agent_id, user_id, agent_name, agent_phone, agent_level, node_agent_level_name, parent_agent_id,
parent_agent_list, card_num, card_activate_num, commission_rate, pid, jd_pid, `identity`,
account_type, account, have_card, remark, register_from, invite_time, active_time,
agent_state, created_at, updated_at, deleted_at, agent_level_one, agent_level_two,
agent_level_three, agent_level_four
</sql>
<update id="updateBatch" parameterType="java.util.List">
<!--@mbg.generated-->
update user_agent
<trim prefix="set" suffixOverrides=",">
<trim prefix="user_id = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.userId}
</foreach>
</trim>
<trim prefix="agent_name = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.agentName}
</foreach>
</trim>
<trim prefix="agent_phone = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.agentPhone}
</foreach>
</trim>
<trim prefix="agent_level = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.agentLevel}
</foreach>
</trim>
<trim prefix="node_agent_level_name = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.nodeAgentLevelName}
</foreach>
</trim>
<trim prefix="parent_agent_id = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.parentAgentId}
</foreach>
</trim>
<trim prefix="parent_agent_list = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.parentAgentList}
</foreach>
</trim>
<trim prefix="card_num = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.cardNum}
</foreach>
</trim>
<trim prefix="card_activate_num = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.cardActivateNum}
</foreach>
</trim>
<trim prefix="commission_rate = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.commissionRate}
</foreach>
</trim>
<trim prefix="pid = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.pid}
</foreach>
</trim>
<trim prefix="jd_pid = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.jdPid}
</foreach>
</trim>
<trim prefix="`identity` = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.identity}
</foreach>
</trim>
<trim prefix="account_type = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.accountType}
</foreach>
</trim>
<trim prefix="account = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.account}
</foreach>
</trim>
<trim prefix="have_card = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.haveCard}
</foreach>
</trim>
<trim prefix="remark = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.remark}
</foreach>
</trim>
<trim prefix="register_from = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.registerFrom}
</foreach>
</trim>
<trim prefix="invite_time = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.inviteTime}
</foreach>
</trim>
<trim prefix="active_time = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.activeTime}
</foreach>
</trim>
<trim prefix="agent_state = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.agentState}
</foreach>
</trim>
<trim prefix="created_at = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.createdAt}
</foreach>
</trim>
<trim prefix="updated_at = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.updatedAt}
</foreach>
</trim>
<trim prefix="deleted_at = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.deletedAt}
</foreach>
</trim>
<trim prefix="agent_level_one = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.agentLevelOne}
</foreach>
</trim>
<trim prefix="agent_level_two = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.agentLevelTwo}
</foreach>
</trim>
<trim prefix="agent_level_three = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.agentLevelThree}
</foreach>
</trim>
<trim prefix="agent_level_four = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when agent_id = #{item.agentId} then #{item.agentLevelFour}
</foreach>
</trim>
</trim>
where agent_id in
<foreach close=")" collection="list" item="item" open="(" separator=", ">
#{item.agentId}
</foreach>
</update>
<insert id="batchInsert" keyColumn="agent_id" keyProperty="agentId" parameterType="map" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into user_agent
(user_id, agent_name, agent_phone, agent_level, node_agent_level_name, parent_agent_id,
parent_agent_list, card_num, card_activate_num, commission_rate, pid, jd_pid, `identity`,
account_type, account, have_card, remark, register_from, invite_time, active_time,
agent_state, created_at, updated_at, deleted_at, agent_level_one, agent_level_two,
agent_level_three, agent_level_four)
values
<foreach collection="list" item="item" separator=",">
(#{item.userId}, #{item.agentName}, #{item.agentPhone}, #{item.agentLevel}, #{item.nodeAgentLevelName},
#{item.parentAgentId}, #{item.parentAgentList}, #{item.cardNum}, #{item.cardActivateNum},
#{item.commissionRate}, #{item.pid}, #{item.jdPid}, #{item.identity}, #{item.accountType},
#{item.account}, #{item.haveCard}, #{item.remark}, #{item.registerFrom}, #{item.inviteTime},
#{item.activeTime}, #{item.agentState}, #{item.createdAt}, #{item.updatedAt}, #{item.deletedAt},
#{item.agentLevelOne}, #{item.agentLevelTwo}, #{item.agentLevelThree}, #{item.agentLevelFour}
)
</foreach>
</insert>
<insert id="insertOrUpdate" keyColumn="agent_id" keyProperty="agentId" parameterType="com.lanren.huhu.partner.domain.UserAgent" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into user_agent
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="agentId != null">
agent_id,
</if>
user_id,
agent_name,
agent_phone,
agent_level,
node_agent_level_name,
parent_agent_id,
parent_agent_list,
card_num,
card_activate_num,
commission_rate,
pid,
jd_pid,
`identity`,
account_type,
account,
have_card,
remark,
register_from,
invite_time,
active_time,
agent_state,
created_at,
updated_at,
deleted_at,
agent_level_one,
agent_level_two,
agent_level_three,
agent_level_four,
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="agentId != null">
#{agentId},
</if>
#{userId},
#{agentName},
#{agentPhone},
#{agentLevel},
#{nodeAgentLevelName},
#{parentAgentId},
#{parentAgentList},
#{cardNum},
#{cardActivateNum},
#{commissionRate},
#{pid},
#{jdPid},
#{identity},
#{accountType},
#{account},
#{haveCard},
#{remark},
#{registerFrom},
#{inviteTime},
#{activeTime},
#{agentState},
#{createdAt},
#{updatedAt},
#{deletedAt},
#{agentLevelOne},
#{agentLevelTwo},
#{agentLevelThree},
#{agentLevelFour},
</trim>
on duplicate key update
<trim suffixOverrides=",">
<if test="agentId != null">
agent_id = #{agentId},
</if>
user_id = #{userId},
agent_name = #{agentName},
agent_phone = #{agentPhone},
agent_level = #{agentLevel},
node_agent_level_name = #{nodeAgentLevelName},
parent_agent_id = #{parentAgentId},
parent_agent_list = #{parentAgentList},
card_num = #{cardNum},
card_activate_num = #{cardActivateNum},
commission_rate = #{commissionRate},
pid = #{pid},
jd_pid = #{jdPid},
`identity` = #{identity},
account_type = #{accountType},
account = #{account},
have_card = #{haveCard},
remark = #{remark},
register_from = #{registerFrom},
invite_time = #{inviteTime},
active_time = #{activeTime},
agent_state = #{agentState},
created_at = #{createdAt},
updated_at = #{updatedAt},
deleted_at = #{deletedAt},
agent_level_one = #{agentLevelOne},
agent_level_two = #{agentLevelTwo},
agent_level_three = #{agentLevelThree},
agent_level_four = #{agentLevelFour},
</trim>
</insert>
<insert id="insertOrUpdateSelective" keyColumn="agent_id" keyProperty="agentId" parameterType="com.lanren.huhu.partner.domain.UserAgent" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into user_agent
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="agentId != null">
agent_id,
</if>
<if test="userId != null">
user_id,
</if>
<if test="agentName != null">
agent_name,
</if>
<if test="agentPhone != null">
agent_phone,
</if>
<if test="agentLevel != null">
agent_level,
</if>
<if test="nodeAgentLevelName != null">
node_agent_level_name,
</if>
<if test="parentAgentId != null">
parent_agent_id,
</if>
<if test="parentAgentList != null">
parent_agent_list,
</if>
<if test="cardNum != null">
card_num,
</if>
<if test="cardActivateNum != null">
card_activate_num,
</if>
<if test="commissionRate != null">
commission_rate,
</if>
<if test="pid != null">
pid,
</if>
<if test="jdPid != null">
jd_pid,
</if>
<if test="identity != null">
`identity`,
</if>
<if test="accountType != null">
account_type,
</if>
<if test="account != null">
account,
</if>
<if test="haveCard != null">
have_card,
</if>
<if test="remark != null">
remark,
</if>
<if test="registerFrom != null">
register_from,
</if>
<if test="inviteTime != null">
invite_time,
</if>
<if test="activeTime != null">
active_time,
</if>
<if test="agentState != null">
agent_state,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="deletedAt != null">
deleted_at,
</if>
<if test="agentLevelOne != null">
agent_level_one,
</if>
<if test="agentLevelTwo != null">
agent_level_two,
</if>
<if test="agentLevelThree != null">
agent_level_three,
</if>
<if test="agentLevelFour != null">
agent_level_four,
</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="agentId != null">
#{agentId},
</if>
<if test="userId != null">
#{userId},
</if>
<if test="agentName != null">
#{agentName},
</if>
<if test="agentPhone != null">
#{agentPhone},
</if>
<if test="agentLevel != null">
#{agentLevel},
</if>
<if test="nodeAgentLevelName != null">
#{nodeAgentLevelName},
</if>
<if test="parentAgentId != null">
#{parentAgentId},
</if>
<if test="parentAgentList != null">
#{parentAgentList},
</if>
<if test="cardNum != null">
#{cardNum},
</if>
<if test="cardActivateNum != null">
#{cardActivateNum},
</if>
<if test="commissionRate != null">
#{commissionRate},
</if>
<if test="pid != null">
#{pid},
</if>
<if test="jdPid != null">
#{jdPid},
</if>
<if test="identity != null">
#{identity},
</if>
<if test="accountType != null">
#{accountType},
</if>
<if test="account != null">
#{account},
</if>
<if test="haveCard != null">
#{haveCard},
</if>
<if test="remark != null">
#{remark},
</if>
<if test="registerFrom != null">
#{registerFrom},
</if>
<if test="inviteTime != null">
#{inviteTime},
</if>
<if test="activeTime != null">
#{activeTime},
</if>
<if test="agentState != null">
#{agentState},
</if>
<if test="createdAt != null">
#{createdAt},
</if>
<if test="updatedAt != null">
#{updatedAt},
</if>
<if test="deletedAt != null">
#{deletedAt},
</if>
<if test="agentLevelOne != null">
#{agentLevelOne},
</if>
<if test="agentLevelTwo != null">
#{agentLevelTwo},
</if>
<if test="agentLevelThree != null">
#{agentLevelThree},
</if>
<if test="agentLevelFour != null">
#{agentLevelFour},
</if>
</trim>
on duplicate key update
<trim suffixOverrides=",">
<if test="agentId != null">
agent_id = #{agentId},
</if>
<if test="userId != null">
user_id = #{userId},
</if>
<if test="agentName != null">
agent_name = #{agentName},
</if>
<if test="agentPhone != null">
agent_phone = #{agentPhone},
</if>
<if test="agentLevel != null">
agent_level = #{agentLevel},
</if>
<if test="nodeAgentLevelName != null">
node_agent_level_name = #{nodeAgentLevelName},
</if>
<if test="parentAgentId != null">
parent_agent_id = #{parentAgentId},
</if>
<if test="parentAgentList != null">
parent_agent_list = #{parentAgentList},
</if>
<if test="cardNum != null">
card_num = #{cardNum},
</if>
<if test="cardActivateNum != null">
card_activate_num = #{cardActivateNum},
</if>
<if test="commissionRate != null">
commission_rate = #{commissionRate},
</if>
<if test="pid != null">
pid = #{pid},
</if>
<if test="jdPid != null">
jd_pid = #{jdPid},
</if>
<if test="identity != null">
`identity` = #{identity},
</if>
<if test="accountType != null">
account_type = #{accountType},
</if>
<if test="account != null">
account = #{account},
</if>
<if test="haveCard != null">
have_card = #{haveCard},
</if>
<if test="remark != null">
remark = #{remark},
</if>
<if test="registerFrom != null">
register_from = #{registerFrom},
</if>
<if test="inviteTime != null">
invite_time = #{inviteTime},
</if>
<if test="activeTime != null">
active_time = #{activeTime},
</if>
<if test="agentState != null">
agent_state = #{agentState},
</if>
<if test="createdAt != null">
created_at = #{createdAt},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt},
</if>
<if test="deletedAt != null">
deleted_at = #{deletedAt},
</if>
<if test="agentLevelOne != null">
agent_level_one = #{agentLevelOne},
</if>
<if test="agentLevelTwo != null">
agent_level_two = #{agentLevelTwo},
</if>
<if test="agentLevelThree != null">
agent_level_three = #{agentLevelThree},
</if>
<if test="agentLevelFour != null">
agent_level_four = #{agentLevelFour},
</if>
</trim>
</insert>
</mapper>
\ 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