Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
huhu-partner
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guanchen
huhu-partner
Commits
c1de7605
Commit
c1de7605
authored
Jun 27, 2019
by
guanchen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成接口 /user/relation
parent
46588105
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
185 additions
and
36 deletions
+185
-36
PartnerAccountMapper.java
...ava/com/lanren/huhu/partner/dao/PartnerAccountMapper.java
+5
-0
UserAgentMapper.java
...ain/java/com/lanren/huhu/partner/dao/UserAgentMapper.java
+13
-0
UserManager.java
...ain/java/com/lanren/huhu/partner/manager/UserManager.java
+87
-20
ParentAgent.java
src/main/java/com/lanren/huhu/partner/model/ParentAgent.java
+22
-0
ParentPartner.java
...ain/java/com/lanren/huhu/partner/model/ParentPartner.java
+22
-0
User.java
src/main/java/com/lanren/huhu/partner/model/User.java
+1
-15
UserAgentService.java
...ava/com/lanren/huhu/partner/service/UserAgentService.java
+12
-0
UserAgentServiceImpl.java
...anren/huhu/partner/service/impl/UserAgentServiceImpl.java
+23
-1
No files found.
src/main/java/com/lanren/huhu/partner/dao/PartnerAccountMapper.java
View file @
c1de7605
...
...
@@ -17,6 +17,11 @@ 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"
+
...
...
src/main/java/com/lanren/huhu/partner/dao/UserAgentMapper.java
View file @
c1de7605
...
...
@@ -5,6 +5,7 @@ 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
>
{
...
...
@@ -15,4 +16,15 @@ public interface UserAgentMapper extends BaseMapper<UserAgent> {
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
src/main/java/com/lanren/huhu/partner/manager/UserManager.java
View file @
c1de7605
package
com
.
lanren
.
huhu
.
partner
.
manager
;
import
com.lanren.huhu.partner.controller.AgentController
;
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
;
...
...
@@ -19,14 +22,16 @@ import java.util.ArrayList;
public
class
UserManager
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
UserManager
.
class
);
@Autowired
private
PartnerAccountService
partnerAccountService
;
@Autowired
private
UserAgentService
userAgentService
;
/**
* @description:
TODO
* @description:
根据用户id, 查找一个用户的全部合伙人上级 和 代理商上级
* @param user
* @return Result<
String
>
* @return Result<
User
>
* @throws
* @author chen
* @date 2019-06-26 20:01
...
...
@@ -40,17 +45,15 @@ public class UserManager {
}
/**
* @description:
找到一个用户邀请关系列表
, set到User对象的partnerList中
* @description:
查找一个用户的全部合伙人上级
, set到User对象的partnerList中
* @param user
* @return void
* @throws
* @author chen
* @date 2019-06-26 20:37
*/
private
void
setPartnerList
(
User
user
)
{
logger
.
info
(
"begin setPartnerList for user: {} ......"
,
user
.
getUserId
());
if
(
user
.
getPartnerList
()
==
null
)
{
ArrayList
<
User
.
ParentPartner
>
partnerList
=
new
ArrayList
<
User
.
ParentPartner
>();
if
(
null
==
user
.
getPartnerList
()
)
{
ArrayList
<
ParentPartner
>
partnerList
=
new
ArrayList
<
ParentPartner
>();
user
.
setPartnerList
(
partnerList
);
}
/**
...
...
@@ -59,34 +62,98 @@ public class UserManager {
int
loopUserId
=
user
.
getUserId
();
while
(
true
)
{
logger
.
info
(
"now loop uid is {}"
,
loopUserId
);
User
.
ParentPartner
parentPartner
=
getParentPartner
(
loopUserId
);
if
(
parentPartner
==
null
)
{
ParentPartner
parentPartner
=
getParentPartner
(
loopUserId
);
if
(
null
==
parentPartner
)
{
break
;
}
else
{
logger
.
info
(
"parent is {} "
,
parentPartner
.
getUserId
());
user
.
getPartnerList
().
add
(
parentPartner
);
loopUserId
=
parentPartner
.
getUserId
();
}
try
{
Thread
.
sleep
(
1000L
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
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
());
}
private
User
.
ParentPartner
getParentPartner
(
Integer
userId
)
{
/**
* 按userId查找上级合伙人的 userId 和 level
* @param userId
* @return
*/
private
ParentPartner
getParentPartner
(
Integer
userId
)
{
PartnerAccount
partnerAccount
=
partnerAccountService
.
getParentPartner
(
userId
);
User
.
ParentPartner
parentPartner
=
null
;
ParentPartner
parentPartner
=
null
;
if
(
null
!=
partnerAccount
)
{
int
partnerLevel
=
partnerAccount
.
getIsSuperPartner
()
==
1
?
30
:
partnerAccount
.
getPartnerLevel
();
parentPartner
=
new
User
.
ParentPartner
(
partnerAccount
.
getUserId
(),
partnerLevel
);
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
;
}
}
src/main/java/com/lanren/huhu/partner/model/ParentAgent.java
0 → 100644
View file @
c1de7605
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
;
}
}
src/main/java/com/lanren/huhu/partner/model/ParentPartner.java
0 → 100644
View file @
c1de7605
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
;
}
}
src/main/java/com/lanren/huhu/partner/model/User.java
View file @
c1de7605
...
...
@@ -10,7 +10,7 @@ import java.util.ArrayList;
* @author chen
* @title: User
* @projectName partner
* @description:
TODO
* @description:
用户输入/输出
* @package com.lanren.huhu.partner.model
* @date 2019-06-2619:56
*/
...
...
@@ -25,18 +25,4 @@ public class User {
private
ArrayList
<
ParentPartner
>
partnerList
;
private
ArrayList
<
ParentAgent
>
agentList
;
@Data
public
static
class
ParentPartner
{
int
userId
;
int
level
;
public
ParentPartner
(
int
userId
,
int
level
)
{
this
.
userId
=
userId
;
this
.
level
=
level
;
}
}
public
static
class
ParentAgent
{
int
agentId
;
int
agentLevel
;
}
}
src/main/java/com/lanren/huhu/partner/service/UserAgentService.java
View file @
c1de7605
...
...
@@ -23,4 +23,16 @@ public interface UserAgentService extends IService<UserAgent>{
* @return
*/
UserAgent
getOneByAgentId
(
Integer
agentId
);
/***
* 根据用户id查询账户信息
* @param userId
* @return
*/
UserAgent
getOneByUserId
(
Integer
userId
);
/**
* 根据代理商id找到上级代理商
*/
UserAgent
getParentAgent
(
Integer
agentId
);
}
src/main/java/com/lanren/huhu/partner/service/impl/UserAgentServiceImpl.java
View file @
c1de7605
...
...
@@ -2,6 +2,7 @@ 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
;
...
...
@@ -10,9 +11,16 @@ 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
);
...
...
@@ -33,9 +41,23 @@ public class UserAgentServiceImpl extends ServiceImpl<UserAgentMapper, UserAgent
@Override
public
UserAgent
getOneByAgentId
(
Integer
agentId
)
{
QueryWrapper
<
UserAgent
>
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"agent_id"
,
agentId
);
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
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment