Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
2fe24821
Commit
2fe24821
authored
Nov 07, 2020
by
unset
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-tiande-member' into dev-tiande
parents
9f64d13f
cce34fc6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
183 additions
and
7 deletions
+183
-7
RabbitConstant.java
...wxiaoqi/security/common/config/rabbit/RabbitConstant.java
+1
-1
BaseUserMemberBiz.java
.../github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
+111
-6
RabbitAdminConfig.java
...thub/wxiaoqi/security/admin/config/RabbitAdminConfig.java
+4
-0
MemberChangeMQHandler.java
...wxiaoqi/security/admin/handler/MemberChangeMQHandler.java
+44
-0
BaseUserMemberMapper.java
...b/wxiaoqi/security/admin/mapper/BaseUserMemberMapper.java
+4
-0
BaseUserMemberController.java
...wxiaoqi/security/admin/rest/BaseUserMemberController.java
+14
-0
BaseUserMemberMapper.xml
...-admin/src/main/resources/mapper/BaseUserMemberMapper.xml
+5
-0
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/config/rabbit/RabbitConstant.java
View file @
2fe24821
...
...
@@ -25,7 +25,7 @@ public class RabbitConstant {
public
static
final
String
KEY_APPUSER_REGISTER
=
"appUser.register"
;
public
static
final
String
KEY_APPUSER_AUTH
=
"appUser.auth"
;
public
static
final
String
KEY_MEMBER_SHARE
=
"member.share"
;
public
static
final
String
KEY_MEMBER_CHANGE
=
"member.change"
;
//积分
public
static
final
String
INTEGRAL_ROUTING_KEY
=
"integral_routing_key"
;
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
View file @
2fe24821
...
...
@@ -2,8 +2,10 @@ package com.github.wxiaoqi.security.admin.biz;
import
com.ace.cache.annotation.Cache
;
import
com.ace.cache.annotation.CacheClear
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.entity.AppUserRelation
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMember
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
...
...
@@ -15,7 +17,11 @@ import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import
com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil
;
import
com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.universal.feign.MQSenderFeign
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
@@ -58,12 +64,18 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
@Autowired
private
UserAuthConfig
userAuthConfig
;
@Autowired
AppUserRelationBiz
appUserRelationBiz
;
@Autowired
private
BaseUserMemberExportBiz
baseUserMemberExportBiz
;
@Autowired
private
HttpServletRequest
request
;
@Autowired
MQSenderFeign
mqSenderFeign
;
// @Autowired
// private TaskExecutor taskExecutor;
//
...
...
@@ -144,12 +156,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
}
private
void
generateData
(
Integer
level
,
Long
userId
)
{
List
<
BaseUserMember
>
baseUserMemberList
=
getMyBiz
().
selectList
(
new
BaseUserMember
(){{
setIsBind
(
1
);
setIsDel
(
0
);
setMemberLevel
(
level
);}});
if
(
baseUserMemberList
!=
null
&&
baseUserMemberList
.
size
()
>
0
)
{
}
}
/**
* //
...
...
@@ -306,6 +312,105 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
}
/**
* 修改用户会员等级
* @param baseUserMember
* @return
*/
public
ObjectRestResponse
updateUserLevel
(
BaseUserMember
baseUserMember
)
{
if
(
baseUserMember
.
getId
()
==
null
||
baseUserMember
.
getMemberLevel
()
==
null
)
{
return
ObjectRestResponse
.
paramIsEmpty
();
}
BaseUserMember
old
=
selectById
(
baseUserMember
.
getId
());
if
(
old
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
NOTEXIST_CODE
,
ResultCode
.
getMsg
(
ResultCode
.
NOTEXIST_CODE
));
}
baseUserMember
.
setMemberLevel
(
baseUserMember
.
getMemberLevel
());
updateSelectiveByIdRe
(
baseUserMember
);
// todo 执行上级会员等级初始化操作
mqSenderFeign
.
sendMessage
(
RabbitConstant
.
ADMIN_TOPIC
,
RabbitConstant
.
KEY_MEMBER_CHANGE
,
JSONObject
.
toJSONString
(
baseUserMember
));
return
ObjectRestResponse
.
succ
();
}
//处理上级会员等级初始化
public
void
executeParentMemberLevel
(
BaseUserMember
baseUserMember
)
{
log
.
info
(
"【处理上级会员等级】: {}"
,
baseUserMember
);
Example
example
=
new
Example
(
BaseUserMemberLevel
.
class
);
example
.
createCriteria
().
andEqualTo
(
"isdel"
,
0
);
example
.
orderBy
(
"level"
);
List
<
BaseUserMemberLevel
>
userMemberLevelList
=
BaseUserMemberLevelMapper
.
selectByExample
(
example
);
if
(
userMemberLevelList
!=
null
&&
userMemberLevelList
.
size
()
>
0
)
{
generateParentLevel
(
baseUserMember
.
getUserId
(),
userMemberLevelList
);
}
}
private
void
generateParentLevel
(
Integer
userId
,
List
<
BaseUserMemberLevel
>
userMemberLevelList
)
{
AppUserRelation
appUserRelation
=
appUserRelationBiz
.
getRelationByUserId
(
userId
);
if
(
appUserRelation
!=
null
&&
appUserRelation
.
getIsDel
()
!=
1
)
{
//查询上级当前等级
Integer
parentId
=
appUserRelation
.
getParentId
();
BaseUserMemberVO
parentUser
=
findOneByUserId
(
parentId
);
log
.
info
(
"【上级会员信息】: {}"
,
parentUser
);
if
(
parentUser
!=
null
&&
parentId
!=
0
)
{
//查询当前会员需要变更到的级别
Integer
parentNewLevel
=
generateUserLevel
(
parentId
,
parentUser
.
getMemberLevel
(),
userMemberLevelList
);
//如果返回为空,或者当前级别和需要更新的级别相等,不做处理
log
.
info
(
"【上级需要修改等级为: {}】"
,
parentNewLevel
);
if
(
parentNewLevel
!=
null
&&
!
parentNewLevel
.
equals
(
parentUser
.
getMemberLevel
()))
{
Example
example1
=
new
Example
(
BaseUserMember
.
class
);
example1
.
createCriteria
().
andEqualTo
(
"userId"
,
parentId
).
andEqualTo
(
"isDel"
,
0
);
BaseUserMember
parent
=
mapper
.
selectOneByExample
(
example1
);
if
(
parent
!=
null
)
{
parent
.
setMemberLevel
(
parentNewLevel
);
updateSelectiveByIdRe
(
parent
);
}
generateParentLevel
(
parentId
,
userMemberLevelList
);
}
}
}
}
/**
* 获取用户需要修改的等级
* @param userId
* @param level
* @param userMemberLevelList
*/
private
Integer
generateUserLevel
(
Integer
userId
,
Integer
level
,
List
<
BaseUserMemberLevel
>
userMemberLevelList
)
{
BaseUserMemberLevel
currentLevel
=
null
;
BaseUserMemberLevel
subLevel
=
null
;
for
(
int
i
=
0
;
i
<
userMemberLevelList
.
size
();
i
++
)
{
if
(
level
.
equals
(
userMemberLevelList
.
get
(
i
).
getLevel
()))
{
currentLevel
=
userMemberLevelList
.
get
(
i
);
if
((
i
+
1
)
<
userMemberLevelList
.
size
())
{
subLevel
=
userMemberLevelList
.
get
(
i
+
1
);
}
}
}
//当前会员不存在,直接返回
if
(
currentLevel
==
null
)
{
return
null
;
}
//当前会员不分成且下一级也是不分成,直接返回
if
(
currentLevel
.
getIsShare
()
!=
null
&&
currentLevel
.
getIsShare
()
==
0
)
{
//下一级不存在、或者下一级不分成,就直接返回
if
(
subLevel
==
null
||
(
subLevel
!=
null
&&
subLevel
.
getIsShare
()
!=
null
&&
subLevel
.
getIsShare
()
==
0
))
{
return
currentLevel
.
getLevel
();
}
}
//需要分成,则查询当前用户的下级是否符合条件,符合条件level+1
List
<
BaseUserMember
>
baseUserMemberList
=
mapper
.
selectAllChildrenByLevel
(
userId
,
level
-
1
);
if
(
baseUserMemberList
!=
null
&&
baseUserMemberList
.
size
()
>
getLimitNumber
())
{
return
generateUserLevel
(
userId
,
level
+
1
,
userMemberLevelList
);
}
else
{
return
level
;
}
}
private
Integer
getLimitNumber
()
{
return
3
;
}
public
void
deleteByUserIds
(
Collection
<
Integer
>
userIds
)
{
Example
example
=
new
Example
(
BaseUserMember
.
class
);
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/RabbitAdminConfig.java
View file @
2fe24821
...
...
@@ -35,6 +35,8 @@ public class RabbitAdminConfig extends RabbitCommonConfig {
public
static
final
String
MEMBER_SHARE_QUEUE
=
"admin.member.share"
;
public
static
final
String
MEMBER_CHANGE_QUEUE
=
"admin.member.change"
;
static
{
myQueue
=
new
ArrayList
<
BindDTO
>()
{{
//支付完成后永久绑定关系
...
...
@@ -53,6 +55,8 @@ public class RabbitAdminConfig extends RabbitCommonConfig {
add
(
new
BindDTO
(
COMPANY_UPD_QUEUE
,
VEHICLE_TOPIC
,
KEY_COMPANY_UPD
));
add
(
new
BindDTO
(
MEMBER_SHARE_QUEUE
,
ADMIN_TOPIC
,
KEY_MEMBER_SHARE
));
add
(
new
BindDTO
(
MEMBER_CHANGE_QUEUE
,
ADMIN_TOPIC
,
KEY_MEMBER_CHANGE
));
}};
}
}
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/handler/MemberChangeMQHandler.java
0 → 100644
View file @
2fe24821
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
handler
;
import
cn.hutool.json.JSONUtil
;
import
com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMember
;
import
com.rabbitmq.client.Channel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.messaging.handler.annotation.Headers
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
import
static
com
.
github
.
wxiaoqi
.
security
.
admin
.
config
.
RabbitAdminConfig
.
MEMBER_CHANGE_QUEUE
;
/**
* @ClassName : MemberChangeMQHandler
* @Description : 修改会员等级
* @Author : jiaoruizhen
* @Date: 2020-11-07 11:10
*/
@Component
@Slf4j
public
class
MemberChangeMQHandler
{
@Autowired
BaseUserMemberBiz
baseUserMemberBiz
;
@RabbitListener
(
queues
=
MEMBER_CHANGE_QUEUE
)
public
void
integralHandler
(
Message
message
,
@Headers
Map
<
String
,
Object
>
headers
,
Channel
channel
)
{
try
{
Thread
.
sleep
(
2000
);
String
msg
=
new
String
(
message
.
getBody
(),
"UTF-8"
);
log
.
info
(
"接收到的消息-----msg===="
+
msg
);
BaseUserMember
baseUserMember
=
JSONUtil
.
toBean
(
msg
,
BaseUserMember
.
class
);
baseUserMemberBiz
.
executeParentMemberLevel
(
baseUserMember
);
}
catch
(
Exception
e
)
{
log
.
error
(
"接收消息失败:{}"
,
e
);
}
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/BaseUserMemberMapper.java
View file @
2fe24821
...
...
@@ -6,6 +6,8 @@ import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 用户会员表
*
...
...
@@ -19,4 +21,6 @@ public interface BaseUserMemberMapper extends Mapper<BaseUserMember> {
public
UserMemberVo
getInfoByUserId
(
@Param
(
"userId"
)
Integer
userId
);
BaseUserMemberVO
getBaseUserMemberVOByUserId
(
@Param
(
"userId"
)
Integer
userId
);
List
<
BaseUserMember
>
selectAllChildrenByLevel
(
@Param
(
"userId"
)
Integer
userId
,
@Param
(
"level"
)
Integer
level
);
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/BaseUserMemberController.java
View file @
2fe24821
...
...
@@ -133,4 +133,18 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz,
baseBiz
.
UpdateUserMember
(
userMemberDTO
);
return
ObjectRestResponse
.
succ
();
}
@PutMapping
(
value
=
"updateLevel"
)
@ApiOperation
(
value
=
"修改会员等级"
)
public
ObjectRestResponse
updateUserLevel
(
@RequestBody
BaseUserMember
baseUserMember
)
{
return
baseBiz
.
updateUserLevel
(
baseUserMember
);
}
@GetMapping
(
value
=
"/app/unauth/executeParentMemberLevel"
)
public
void
executeParentMemberLevel
(
BaseUserMember
baseUserMember
)
{
baseBiz
.
executeParentMemberLevel
(
baseUserMember
);
}
}
ace-modules/ace-admin/src/main/resources/mapper/BaseUserMemberMapper.xml
View file @
2fe24821
...
...
@@ -27,6 +27,11 @@
select * from base_user_member where user_id=#{userId} and is_del=0 limit 1
</select>
<select
id=
"selectAllChildrenByLevel"
resultType=
"com.github.wxiaoqi.security.admin.entity.BaseUserMember"
>
select bum.* from app_user_relation aur
LEFT JOIN base_user_member bum on bum.user_id = aur.user_id
where aur.parent_id = #{userId} and bum.member_level
>
= #{level}
</select>
<select
id=
"getBaseUserMemberVOByUserId"
parameterType=
"Integer"
resultType=
"com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO"
>
...
...
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