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
bae1d6bb
Commit
bae1d6bb
authored
Nov 17, 2020
by
unset
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-tiande-member' into master-tiande
parents
1e0461cf
2b5e39e0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
92 additions
and
45 deletions
+92
-45
BaseUserMemberBiz.java
.../github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
+73
-26
MemberShareRecordBiz.java
...thub/wxiaoqi/security/admin/biz/MemberShareRecordBiz.java
+18
-19
OrderMemberDetailBiz.java
...ava/com/xxfc/platform/order/biz/OrderMemberDetailBiz.java
+1
-0
No files found.
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
View file @
bae1d6bb
...
...
@@ -5,10 +5,7 @@ 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
;
import
com.github.wxiaoqi.security.admin.entity.*
;
import
com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper
;
import
com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
...
...
@@ -35,8 +32,10 @@ import tk.mybatis.mapper.entity.Example;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
/**
* 用户会员表
...
...
@@ -311,6 +310,8 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
setModifyData
(
userMemberVo
,
baseUserMember
);
log
.
info
(
"保存成功"
);
// todo 执行上级会员等级初始化操作
mqSenderFeign
.
sendMessage
(
RabbitConstant
.
ADMIN_TOPIC
,
RabbitConstant
.
KEY_MEMBER_CHANGE
,
JSONObject
.
toJSONString
(
baseUserMember
));
}
/**
...
...
@@ -351,7 +352,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
Integer
parentId
=
appUserRelation
.
getParentId
();
BaseUserMemberVO
parentUser
=
findOneByUserId
(
parentId
);
log
.
info
(
"【上级会员信息】: {}"
,
parentUser
);
if
(
parentUser
!=
null
&&
parentId
!=
0
)
{
if
(
parentUser
!=
null
)
{
//查询当前会员需要变更到的级别
Integer
parentNewLevel
=
generateUserLevel
(
parentId
,
parentUser
.
getMemberLevel
(),
userMemberLevelList
);
//如果返回为空,或者当前级别和需要更新的级别相等,不做处理
...
...
@@ -366,6 +367,33 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
}
generateParentLevel
(
parentId
,
userMemberLevelList
);
}
}
else
{
//如果上级没有会员信息,查询上级是否符合条件,符合条件可以直接新增会员信息
List
<
BaseUserMemberLevel
>
newLevelList
=
userMemberLevelList
.
stream
().
filter
(
p
->
p
.
getIsShare
()
==
1
).
collect
(
Collectors
.
toList
());
BaseUserMemberLevel
parentLevel
=
null
;
for
(
int
i
=
0
;
i
<
newLevelList
.
size
();
i
++)
{
List
<
BaseUserMember
>
baseUserMemberList
=
mapper
.
selectAllChildrenByLevel
(
parentId
,
newLevelList
.
get
(
i
).
getLevel
()
-
1
);
if
(
baseUserMemberList
!=
null
&&
baseUserMemberList
.
size
()
>=
getLimitNumber
())
{
continue
;
}
else
{
if
(
i
>
0
)
{
parentLevel
=
newLevelList
.
get
(
i
-
1
);
}
break
;
}
}
if
(
parentLevel
!=
null
)
{
BaseUserMember
baseUserMember
=
new
BaseUserMember
();
baseUserMember
.
setMemberLevel
(
parentLevel
.
getLevel
());
baseUserMember
.
setMemberType
(
2
);
baseUserMember
.
setRentFreeDays
(
parentLevel
.
getNumber
());
baseUserMember
.
setTotalNumber
(
parentLevel
.
getNumber
());
baseUserMember
.
setUserId
(
parentId
);
baseUserMember
.
setIsBind
(
1
);
baseUserMember
.
setBuyCount
(
1
);
baseUserMember
.
setDiscount
(
parentLevel
.
getDiscount
());
baseUserMember
.
setMemberName
(
parentLevel
.
getName
());
insertSelectiveRe
(
baseUserMember
);
}
}
}
}
...
...
@@ -379,41 +407,60 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
*/
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
))
{
//当前会员为最终等级直接返回
if
(
currentLevel
.
getLevel
().
equals
(
userMemberLevelList
.
get
(
userMemberLevelList
.
size
()
-
1
).
getLevel
())
)
{
return
currentLevel
.
getLevel
();
}
}
Example
example
=
new
Example
(
BaseUserMemberLevel
.
class
);
example
.
createCriteria
().
andEqualTo
(
"isdel"
,
0
).
andEqualTo
(
"isShare"
,
1
);
example
.
orderBy
(
"level"
);
List
<
BaseUserMemberLevel
>
baseUserMemberLevelList
=
BaseUserMemberLevelMapper
.
selectByExample
(
example
);
//如果当前等级小于等于第一个分成等级的低一等级, 则直接查询大于等于第一个分成等级的低一等级的下级用户数量, 否则直接取当前等级的低一级会员数量
Integer
queryLevel
=
level
-
1
;
if
(
level
<=
(
baseUserMemberLevelList
.
get
(
0
).
getLevel
()
-
1
))
{
queryLevel
=
baseUserMemberLevelList
.
get
(
0
).
getLevel
()
-
1
;
}
//如果当前等级小于等于第一个分成等级的低二等级, 则直接查询大于等于第一个分成等级的低一等级的下级用户数量, 否则直接取当前等级的低一级会员数量
List
<
BaseUserMemberLevel
>
newLevelList
=
userMemberLevelList
.
stream
().
filter
(
p
->
p
.
getIsShare
()
==
1
).
collect
(
Collectors
.
toList
());
Integer
queryLevel
=
newLevelList
.
get
(
0
).
getLevel
()
-
2
;
Integer
result
=
level
;
//需要分成,则查询当前用户的下级是否符合条件,符合条件level+1
List
<
BaseUserMember
>
baseUserMemberList
=
mapper
.
selectAllChildrenByLevel
(
userId
,
queryLevel
);
if
(
baseUserMemberList
!=
null
&&
baseUserMemberList
.
size
()
>
getLimitNumber
())
{
return
generateUserLevel
(
userId
,
level
+
1
,
userMemberLevelList
);
if
(
baseUserMemberList
!=
null
&&
baseUserMemberList
.
size
()
>=
getLimitNumber
())
{
Map
<
Integer
,
List
<
BaseUserMember
>>
map
=
baseUserMemberList
.
stream
().
collect
(
Collectors
.
groupingBy
(
BaseUserMember:
:
getMemberLevel
));
if
(
map
.
get
(
3
)
!=
null
&&
map
.
get
(
3
).
size
()
>=
getLimitNumber
())
{
if
(
level
<
5
)
{
level
=
5
;
}
}
if
(
map
.
get
(
4
)
!=
null
&&
map
.
get
(
4
).
size
()
>=
getLimitNumber
())
{
if
(
level
<
5
)
{
level
=
5
;
}
}
if
(
map
.
get
(
5
)
!=
null
&&
map
.
get
(
5
).
size
()
>=
getLimitNumber
())
{
if
(
level
<
6
)
{
level
=
6
;
}
}
if
(
map
.
get
(
6
)
!=
null
&&
map
.
get
(
6
).
size
()
>=
getLimitNumber
())
{
if
(
level
<
7
)
{
level
=
7
;
}
}
if
(
map
.
get
(
7
)
!=
null
&&
map
.
get
(
7
).
size
()
>=
getLimitNumber
())
{
if
(
level
<
8
)
{
level
=
8
;
}
}
//等级没有改变
if
(!
level
.
equals
(
result
))
{
return
generateUserLevel
(
userId
,
level
,
userMemberLevelList
);
}
else
{
return
result
;
}
}
else
{
return
level
;
return
result
;
}
}
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/MemberShareRecordBiz.java
View file @
bae1d6bb
...
...
@@ -62,9 +62,9 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
* @param no
* @return
*/
public
MemberShareRecord
getOneByOrderNo
(
String
no
)
{
public
MemberShareRecord
getOneByOrderNo
(
String
no
,
Integer
level
)
{
Example
example
=
new
Example
(
MemberShareRecord
.
class
);
example
.
createCriteria
().
andEqualTo
(
"orderNo"
,
no
);
example
.
createCriteria
().
andEqualTo
(
"orderNo"
,
no
)
.
andEqualTo
(
"memberLevel"
,
level
)
;
return
mapper
.
selectOneByExample
(
example
);
}
...
...
@@ -75,7 +75,7 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
*/
public
void
addUpdate
(
MemberShareRecord
memberShareRecord
)
{
if
(
memberShareRecord
!=
null
)
{
MemberShareRecord
old
=
getOneByOrderNo
(
memberShareRecord
.
getOrderNo
());
MemberShareRecord
old
=
getOneByOrderNo
(
memberShareRecord
.
getOrderNo
()
,
memberShareRecord
.
getMemberLevel
()
);
if
(
old
==
null
)
{
insertSelectiveRe
(
memberShareRecord
);
updateAllLevelInfo
(
memberShareRecord
);
...
...
@@ -161,7 +161,7 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
* 统计分成信息
*/
public
void
generateData
()
{
DateTime
dateTime
=
DateTime
.
now
()
.
minusMonths
(
1
)
;
DateTime
dateTime
=
DateTime
.
now
();
Long
startDate
=
DateUtils
.
getStartOfDay
(
dateTime
.
toDate
());
Long
endDate
=
DateUtils
.
getEndOfDay
(
dateTime
.
toDate
());
List
<
MemberShareRecord
>
list
=
getAllByDate
(
startDate
,
endDate
);
...
...
@@ -188,7 +188,7 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
if
(
arr
!=
null
)
{
for
(
String
id
:
arr
)
{
if
(
StringUtils
.
isNotBlank
(
id
))
{
Long
userId
=
Long
.
parseLong
(
id
);
Long
userId
=
Long
.
parseLong
(
id
.
trim
()
);
if
(
amountMap
.
get
(
userId
)
!=
null
)
{
amountMap
.
put
(
userId
,
amountMap
.
get
(
userId
).
add
(
memberShareRecord
.
getAmount
()));
}
else
{
...
...
@@ -237,8 +237,8 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
example
.
orderBy
(
"level"
);
List
<
BaseUserMemberLevel
>
baseUserMemberLevelList
=
baseUserMemberLevelMapper
.
selectByExample
(
example
);
if
(
baseUserMemberLevelList
!=
null
&&
baseUserMemberLevelList
.
size
()
>
0
)
{
//如果购买会员是分成会员低
一
级会员以及分成会员,才参与分成
if
(
orderMemberDetail
.
getMemberLevel
().
compareTo
(
baseUserMemberLevelList
.
get
(
0
).
getLevel
()
-
1
)
>=
0
)
{
//如果购买会员是分成会员低
二
级会员以及分成会员,才参与分成
if
(
orderMemberDetail
.
getMemberLevel
().
compareTo
(
baseUserMemberLevelList
.
get
(
0
).
getLevel
()
-
2
)
>=
0
)
{
//所有分成会员都需要新增一条记录
for
(
BaseUserMemberLevel
baseUserMemberLevel
:
baseUserMemberLevelList
)
{
List
<
BaseUserMember
>
baseUserMemberList
=
baseUserMemberBiz
.
selectList
(
new
BaseUserMember
()
{{
...
...
@@ -256,14 +256,12 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
memberShareRecord
.
setMemberLevelId
(
baseUserMemberLevel
.
getId
());
memberShareRecord
.
setUserId
(
orderMemberDetail
.
getBaseOrder
().
getUserId
().
longValue
());
memberShareRecord
.
setOrderTime
(
orderMemberDetail
.
getCrtTime
());
memberShareRecord
.
setTotalAmount
(
orderMemberDetail
.
getBaseOrder
().
getOrderAmount
().
multiply
(
baseUserMemberLevel
.
getShareAmount
()).
divide
(
new
BigDecimal
(
100
)
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
memberShareRecord
.
setTotalAmount
(
orderMemberDetail
.
getBaseOrder
().
getOrderAmount
().
multiply
(
baseUserMemberLevel
.
getShareAmount
()).
divide
(
new
BigDecimal
(
100
)
,
2
,
BigDecimal
.
ROUND_HALF_UP
));
memberShareRecord
.
setMemberNum
(
userIds
.
size
());
memberShareRecord
.
setAmount
(
baseUserMemberLevel
.
getShareAmount
().
divide
(
new
BigDecimal
(
userIds
.
size
())
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
));
memberShareRecord
.
setAmount
(
baseUserMemberLevel
.
getShareAmount
().
divide
(
new
BigDecimal
(
userIds
.
size
())
,
2
,
BigDecimal
.
ROUND_HALF_UP
));
StringBuilder
stringBuilder
=
new
StringBuilder
();
userIds
.
parallelStream
().
forEach
(
id
->
{
stringBuilder
.
append
(
","
);
stringBuilder
.
append
(
id
);
stringBuilder
.
append
(
","
);
stringBuilder
.
append
(
","
+
id
+
","
);
});
memberShareRecord
.
setMemberIds
(
stringBuilder
.
toString
());
addUpdate
(
memberShareRecord
);
...
...
@@ -356,7 +354,7 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
}
}
public
ObjectRestResponse
selectCountList
(
MemberShareRecordDto
memberShareRecordDto
)
{
public
ObjectRestResponse
<
PageDataVO
<
MemberShareRecordVo
>>
selectCountList
(
MemberShareRecordDto
memberShareRecordDto
)
{
Query
query
=
new
Query
(
memberShareRecordDto
);
PageDataVO
<
MemberShareRecordVo
>
pageDataVO
=
PageDataVO
.
pageInfo
(
query
,
()
->
mapper
.
selectCountList
(
query
.
getSuper
()));
if
(
pageDataVO
!=
null
&&
pageDataVO
.
getData
()
!=
null
)
{
...
...
@@ -494,7 +492,8 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
* @throws Exception
*/
public
void
exportCountRecordList
(
HttpServletResponse
httpServletResponse
,
MemberShareRecordDto
memberShareRecordDto
)
throws
Exception
{
List
<
MemberShareRecordVo
>
memberShareRecordVoList
=
getAllCountRecord
(
memberShareRecordDto
).
getData
();
memberShareRecordDto
.
setLimit
(
Integer
.
MAX_VALUE
);
List
<
MemberShareRecordVo
>
memberShareRecordVoList
=
selectCountList
(
memberShareRecordDto
).
getData
().
getData
();
if
(
memberShareRecordVoList
!=
null
)
{
ExcelWriter
writer
=
null
;
try
{
...
...
@@ -507,12 +506,12 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
//处理数据
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<
Map
<
String
,
Object
>>();
if
(
memberShareRecordVoList
!=
null
&&
memberShareRecordVoList
.
size
()
>
0
)
{
for
(
MemberShareRecordVo
memberShareRecord
:
memberShareRecordVoList
)
{
for
(
MemberShareRecordVo
memberShareRecord
Vo
:
memberShareRecordVoList
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
();
map
.
put
(
"date"
,
memberShareRecord
.
getDate
());
map
.
put
(
"levelName"
,
memberShareRecord
.
getLevelName
());
map
.
put
(
"userNum"
,
memberShareRecord
.
getUserNum
());
map
.
put
(
"totalAmount"
,
memberShareRecord
.
getTotalAmount
());
map
.
put
(
"date"
,
memberShareRecord
Vo
.
getDate
());
map
.
put
(
"levelName"
,
memberShareRecord
Vo
.
getLevelName
());
map
.
put
(
"userNum"
,
memberShareRecord
Vo
.
getUserNum
());
map
.
put
(
"totalAmount"
,
memberShareRecord
Vo
.
getTotalAmount
());
list
.
add
(
map
);
}
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderMemberDetailBiz.java
View file @
bae1d6bb
...
...
@@ -149,6 +149,7 @@ public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderM
ObjectRestResponse
orr
=
userFeign
.
buyMember
(
userMemberDTO
);
log
.
info
(
"orr.getStatus() : "
+
orr
.
getStatus
());
//发送消息队列到admin,进行分成计算
orderMemberDetail
.
setBaseOrder
(
baseOrder
);
mqSenderFeign
.
sendMessage
(
RabbitConstant
.
ADMIN_TOPIC
,
RabbitConstant
.
KEY_MEMBER_SHARE
,
JSONUtil
.
toJsonStr
(
orderMemberDetail
));
}
...
...
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