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
59567d98
Commit
59567d98
authored
Jul 18, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
推广*邀请
parent
74295ba6
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
385 additions
and
154 deletions
+385
-154
InviteMemberBO.java
.../com/github/wxiaoqi/security/admin/bo/InviteMemberBO.java
+17
-0
PromoteBO.java
.../java/com/github/wxiaoqi/security/admin/bo/PromoteBO.java
+40
-0
UserTeamMemberBo.java
...om/github/wxiaoqi/security/admin/bo/UserTeamMemberBo.java
+4
-0
InviteMemberVo.java
.../com/github/wxiaoqi/security/admin/vo/InviteMemberVo.java
+27
-0
AppUserRelationBiz.java
...github/wxiaoqi/security/admin/biz/AppUserRelationBiz.java
+77
-1
AppUserSellingWaterBiz.java
...ub/wxiaoqi/security/admin/biz/AppUserSellingWaterBiz.java
+147
-143
UserBusinessBiz.java
...om/github/wxiaoqi/security/admin/biz/UserBusinessBiz.java
+22
-3
AppUserSellingWaterMapper.java
...aoqi/security/admin/mapper/AppUserSellingWaterMapper.java
+3
-0
AppUserRelationController.java
...xiaoqi/security/admin/rest/AppUserRelationController.java
+31
-5
UserBussinessController.java
.../wxiaoqi/security/admin/rest/UserBussinessController.java
+13
-2
AppUserSellingWaterMapper.xml
...n/src/main/resources/mapper/AppUserSellingWaterMapper.xml
+4
-0
No files found.
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/bo/InviteMemberBO.java
0 → 100644
View file @
59567d98
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
bo
;
import
lombok.Data
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 19:25
*/
@Data
public
class
InviteMemberBO
{
private
String
username
;
private
String
headUrl
;
private
Long
joinTime
;
private
Long
bindTime
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/bo/PromoteBO.java
0 → 100644
View file @
59567d98
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
bo
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 20:11
*/
@Data
public
class
PromoteBO
{
/**
* 累计收益
*/
private
BigDecimal
totalIncome
;
/**
* 已邀请人数
*/
private
Integer
inviteNumber
;
/**
* 已激活人数
*/
private
Integer
activatedNumber
;
/**
* 上级用户名
*/
private
String
leaderUsername
;
/**
* 上级头像
*/
private
String
leaderHeadUrl
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/bo/UserTeamMemberBo.java
View file @
59567d98
...
...
@@ -45,4 +45,8 @@ public class UserTeamMemberBo {
* 收入
*/
private
BigDecimal
income
;
private
BigDecimal
orderAmount
;
private
Integer
recordedState
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/vo/InviteMemberVo.java
0 → 100644
View file @
59567d98
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
vo
;
import
com.github.wxiaoqi.security.admin.bo.InviteMemberBO
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 19:57
*/
@Data
public
class
InviteMemberVo
{
private
Long
failureTime
;
private
List
<
InviteMemberBO
>
inviteMembers
;
private
Integer
page
;
private
Integer
limit
;
private
Integer
totalCount
;
private
Integer
totalPage
;
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserRelationBiz.java
View file @
59567d98
...
...
@@ -2,20 +2,28 @@ package com.github.wxiaoqi.security.admin.biz;
import
com.ace.cache.annotation.Cache
;
import
com.ace.cache.annotation.CacheClear
;
import
com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo
;
import
com.github.wxiaoqi.security.admin.entity.AppUserDetail
;
import
com.github.wxiaoqi.security.admin.entity.AppUserLogin
;
import
com.github.wxiaoqi.security.admin.entity.AppUserRelationTemp
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
import
com.github.wxiaoqi.security.admin.bo.InviteMemberBO
;
import
com.github.wxiaoqi.security.admin.vo.InviteMemberVo
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.aop.framework.AopContext
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
com.github.wxiaoqi.security.admin.entity.AppUserRelation
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserRelationMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
tk.mybatis.mapper.entity.Example
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 用户关系表
*
...
...
@@ -32,6 +40,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
@Autowired
AppUserDetailBiz
userDetailBiz
;
@Autowired
private
AppUserLoginBiz
appUserLoginBiz
;
@Value
(
"${temamember.failureTime:60}"
)
private
Long
failureTime
;
/**
* 关系绑定
* @param userId
...
...
@@ -153,4 +167,66 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
public
PageDataVO
<
AppUserRelation
>
findMemberPageByLeaderId
(
Integer
leaderId
,
Integer
pageNo
,
Integer
pageSize
)
{
return
PageDataVO
.
pageInfo
(
pageNo
,
pageSize
,
()
->
mapper
.
selectByLeaderId
(
leaderId
));
}
public
InviteMemberVo
findInviteMemberByActivitState
(
Integer
leaderId
,
Integer
state
,
Integer
page
,
Integer
limit
)
{
InviteMemberVo
inviteMemberVo
=
new
InviteMemberVo
();
inviteMemberVo
.
setPage
(
page
);
inviteMemberVo
.
setLimit
(
limit
);
inviteMemberVo
.
setFailureTime
(
failureTime
*
24
*
60
*
60
);
Example
example
=
new
Example
(
AppUserRelation
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
if
(
state
!=
null
)
{
criteria
.
andEqualTo
(
"isForever"
,
state
);
}
criteria
.
andEqualTo
(
"parentId"
,
leaderId
);
PageDataVO
<
AppUserRelation
>
pageDataVO
=
PageDataVO
.
pageInfo
(
page
,
limit
,
()
->
mapper
.
selectByExample
(
example
));
List
<
AppUserRelation
>
appUserRelations
=
pageDataVO
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
appUserRelations
)){
inviteMemberVo
.
setInviteMembers
(
Collections
.
EMPTY_LIST
);
return
inviteMemberVo
;
}
List
<
Integer
>
memberIds
=
appUserRelations
.
stream
().
map
(
AppUserRelation:
:
getUserId
).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
AppUserLogin
>
userIdAndUserLoginMap
=
appUserLoginBiz
.
findUserIdAndUserLoginMapByMemberIds
(
memberIds
);
Map
<
Integer
,
AppUserDetail
>
userIdAndUserDetailMap
=
userDetailBiz
.
findUserIdAndUserDetailMapByMemberIds
(
memberIds
);
List
<
InviteMemberBO
>
inviteMemberBOS
=
new
ArrayList
<>();
InviteMemberBO
inviteMemberBO
;
for
(
AppUserRelation
appUserRelation
:
appUserRelations
)
{
inviteMemberBO
=
new
InviteMemberBO
();
inviteMemberBO
.
setBindTime
(
appUserRelation
.
getBindTime
());
inviteMemberBO
.
setJoinTime
(
appUserRelation
.
getBindTime
());
inviteMemberBO
.
setUsername
(
userIdAndUserLoginMap
.
get
(
appUserRelation
.
getUserId
()).
getUsername
());
inviteMemberBO
.
setHeadUrl
(
userIdAndUserDetailMap
.
get
(
appUserRelation
.
getUserId
()).
getHeadimgurl
());
inviteMemberBOS
.
add
(
inviteMemberBO
);
}
inviteMemberVo
.
setTotalCount
(
pageDataVO
.
getTotalCount
().
intValue
());
inviteMemberVo
.
setTotalPage
(
pageDataVO
.
getTotalPage
());
inviteMemberVo
.
setInviteMembers
(
inviteMemberBOS
);
return
inviteMemberVo
;
}
public
Integer
findLeaderIdByMemberId
(
Integer
userId
)
{
Example
example
=
new
Example
(
AppUserRelation
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"userId"
,
userId
);
List
<
AppUserRelation
>
appUserRelations
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isEmpty
(
appUserRelations
)){
return
0
;
}
return
appUserRelations
.
get
(
0
).
getParentId
();
}
public
Map
<
Integer
,
Integer
>
findMemberSateAndCountMapByLeaderId
(
Integer
userId
)
{
Map
<
Integer
,
Integer
>
memberSateAndCountMap
=
new
HashMap
<>();
AppUserRelation
appUserRelation
=
new
AppUserRelation
();
appUserRelation
.
setParentId
(
userId
);
int
totalCount
=
mapper
.
selectCount
(
appUserRelation
);
appUserRelation
.
setIsForever
(
1
);
int
activityCount
=
mapper
.
selectCount
(
appUserRelation
);
memberSateAndCountMap
.
put
(
0
,
totalCount
);
memberSateAndCountMap
.
put
(
1
,
activityCount
);
return
memberSateAndCountMap
;
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserSellingWaterBiz.java
View file @
59567d98
...
...
@@ -34,7 +34,7 @@ import java.util.stream.Stream;
*/
@Service
@Slf4j
public
class
AppUserSellingWaterBiz
extends
BaseBiz
<
AppUserSellingWaterMapper
,
AppUserSellingWater
>
{
public
class
AppUserSellingWaterBiz
extends
BaseBiz
<
AppUserSellingWaterMapper
,
AppUserSellingWater
>
{
@Autowired
...
...
@@ -44,10 +44,10 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
BaseGoodCommissionBiz
commissionBiz
;
@Autowired
AppUserPositionBiz
positionBiz
;
AppUserPositionBiz
positionBiz
;
@Autowired
AppUserDetailBiz
detailBiz
;
AppUserDetailBiz
detailBiz
;
@Autowired
private
AppUserLoginBiz
appUserLoginBiz
;
...
...
@@ -56,195 +56,195 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
private
AppUserDetailBiz
appUserDetailBiz
;
@Autowired
MyWaterBiz
myWaterBiz
;
MyWaterBiz
myWaterBiz
;
//计算用户拥金
public
void
orderWater
(
OrderWaterDTO
orderWaterDTO
)
{
if
(
orderWaterDTO
==
null
)
{
public
void
orderWater
(
OrderWaterDTO
orderWaterDTO
)
{
if
(
orderWaterDTO
==
null
)
{
log
.
info
(
"计算用户拥金----orderWater----次数不能为空----"
);
return
;
}
//订单状态
Integer
status
=
orderWaterDTO
.
getStatus
();
if
(
status
==
null
||
status
==
0
)
{
log
.
info
(
"购买计算用户拥金----payOrderWater----参数不能为空----status==="
+
status
);
Integer
status
=
orderWaterDTO
.
getStatus
();
if
(
status
==
null
||
status
==
0
)
{
log
.
info
(
"购买计算用户拥金----payOrderWater----参数不能为空----status==="
+
status
);
return
;
}
if
(
status
==
1
)
{
if
(
status
==
1
)
{
payOrderWater
(
orderWaterDTO
);
}
else
if
(
status
==
2
)
{
}
else
if
(
status
==
2
)
{
finishOrderWater
(
orderWaterDTO
);
}
else
{
}
else
{
refundOrderWater
(
orderWaterDTO
);
}
}
//购买计算用户拥金
public
void
payOrderWater
(
OrderWaterDTO
orderWaterDTO
)
{
//订单id
Integer
orderId
=
orderWaterDTO
.
getOrderId
();
//订单号
String
orderNo
=
orderWaterDTO
.
getOrderNo
();
//用户id
Integer
userId
=
orderWaterDTO
.
getUserId
();
List
<
OrderGoodsDTO
>
goodsDTOList
=
orderWaterDTO
.
getGoodsDTOList
();
log
.
info
(
"购买计算用户拥金----payOrderWater----userId===="
+
userId
+
"---orderId==="
+
orderId
+
"---orderNo==="
+
orderNo
);
if
(
orderId
==
null
||
orderId
==
0
||
userId
==
null
||
userId
==
0
|
CollectionUtils
.
isEmpty
(
goodsDTOList
))
{
log
.
info
(
"购买计算用户拥金----payOrderWater----参数不能为空----orderId==="
+
orderId
);
//购买计算用户拥金
public
void
payOrderWater
(
OrderWaterDTO
orderWaterDTO
)
{
//订单id
Integer
orderId
=
orderWaterDTO
.
getOrderId
();
//订单号
String
orderNo
=
orderWaterDTO
.
getOrderNo
();
//用户id
Integer
userId
=
orderWaterDTO
.
getUserId
();
List
<
OrderGoodsDTO
>
goodsDTOList
=
orderWaterDTO
.
getGoodsDTOList
();
log
.
info
(
"购买计算用户拥金----payOrderWater----userId===="
+
userId
+
"---orderId==="
+
orderId
+
"---orderNo==="
+
orderNo
);
if
(
orderId
==
null
||
orderId
==
0
||
userId
==
null
||
userId
==
0
|
CollectionUtils
.
isEmpty
(
goodsDTOList
))
{
log
.
info
(
"购买计算用户拥金----payOrderWater----参数不能为空----orderId==="
+
orderId
);
return
;
}
AppUserRelation
relation
=
relationBiz
.
getRelationByUserId
(
userId
);
if
(
relation
==
null
||
relation
.
getParentId
()==
null
||
relation
.
getParentId
()==
0
)
{
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---无上线"
);
}
AppUserRelation
relation
=
relationBiz
.
getRelationByUserId
(
userId
);
if
(
relation
==
null
||
relation
.
getParentId
()
==
null
||
relation
.
getParentId
()
==
0
)
{
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---无上线"
);
return
;
}
Integer
parentId
=
relation
.
getParentId
();
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---parentId==="
+
parentId
);
for
(
OrderGoodsDTO
goodsDto:
goodsDTOList
){
//商品id
Integer
goodId
=
goodsDto
.
getGoodId
();
//商品价格
BigDecimal
price
=
goodsDto
.
getPrice
();
//商品类型
Integer
type
=
goodsDto
.
getType
();
//商品比例
Integer
extract
=
commissionBiz
.
getExtract
(
type
,
goodId
);
AppUserVo
userVo
=
detailBiz
.
getUserInfoById
(
parentId
);
Integer
positionId
=
6
;
if
(
userVo
!=
null
){
positionId
=
userVo
.
getPositionId
();
}
if
(
extract
==
null
||
extract
==
0
){
extract
=
positionBiz
.
getExtract
(
parentId
);
}
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---extract==="
+
extract
);
if
(
extract
!=
null
&&
extract
>
0
){
AppUserSellingWater
sellingWater
=
new
AppUserSellingWater
();
sellingWater
.
setOrderId
(
orderId
);
sellingWater
.
setGoodId
(
goodId
);
sellingWater
=
selectOne
(
sellingWater
);
if
(
sellingWater
!=
null
){
continue
;
}
BigDecimal
commission
=
price
.
multiply
(
new
BigDecimal
(
extract
+
""
)).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_HALF_UP
);
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---commission==="
+
commission
);
sellingWater
=
new
AppUserSellingWater
();
sellingWater
.
setUserId
(
parentId
);
sellingWater
.
setSourceId
(
userId
);
sellingWater
.
setPositionId
(
positionId
);
sellingWater
.
setOrderId
(
orderId
);
sellingWater
.
setOrderNo
(
orderNo
);
sellingWater
.
setGoodId
(
goodId
);
sellingWater
.
setTitle
(
goodsDto
.
getTitle
());
sellingWater
.
setImg
(
goodsDto
.
getImg
());
sellingWater
.
setPrice
(
price
);
sellingWater
.
setExtract
(
extract
);
sellingWater
.
setGoodNumber
(
goodsDto
.
getGoodNumber
());
sellingWater
.
setCommission
(
commission
);
insertSelective
(
sellingWater
);
log
.
info
(
"购买计算用户拥成功----payOrderWater--------userId==="
+
userId
);
}
}
}
}
Integer
parentId
=
relation
.
getParentId
();
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---parentId==="
+
parentId
);
for
(
OrderGoodsDTO
goodsDto
:
goodsDTOList
)
{
//商品id
Integer
goodId
=
goodsDto
.
getGoodId
();
//商品价格
BigDecimal
price
=
goodsDto
.
getPrice
();
//商品类型
Integer
type
=
goodsDto
.
getType
();
//商品比例
Integer
extract
=
commissionBiz
.
getExtract
(
type
,
goodId
);
AppUserVo
userVo
=
detailBiz
.
getUserInfoById
(
parentId
);
Integer
positionId
=
6
;
if
(
userVo
!=
null
)
{
positionId
=
userVo
.
getPositionId
();
}
if
(
extract
==
null
||
extract
==
0
)
{
extract
=
positionBiz
.
getExtract
(
parentId
);
}
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---extract==="
+
extract
);
if
(
extract
!=
null
&&
extract
>
0
)
{
AppUserSellingWater
sellingWater
=
new
AppUserSellingWater
();
sellingWater
.
setOrderId
(
orderId
);
sellingWater
.
setGoodId
(
goodId
);
sellingWater
=
selectOne
(
sellingWater
);
if
(
sellingWater
!=
null
)
{
continue
;
}
BigDecimal
commission
=
price
.
multiply
(
new
BigDecimal
(
extract
+
""
)).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_HALF_UP
);
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---commission==="
+
commission
);
sellingWater
=
new
AppUserSellingWater
();
sellingWater
.
setUserId
(
parentId
);
sellingWater
.
setSourceId
(
userId
);
sellingWater
.
setPositionId
(
positionId
);
sellingWater
.
setOrderId
(
orderId
);
sellingWater
.
setOrderNo
(
orderNo
);
sellingWater
.
setGoodId
(
goodId
);
sellingWater
.
setTitle
(
goodsDto
.
getTitle
());
sellingWater
.
setImg
(
goodsDto
.
getImg
());
sellingWater
.
setPrice
(
price
);
sellingWater
.
setExtract
(
extract
);
sellingWater
.
setGoodNumber
(
goodsDto
.
getGoodNumber
());
sellingWater
.
setCommission
(
commission
);
insertSelective
(
sellingWater
);
log
.
info
(
"购买计算用户拥成功----payOrderWater--------userId==="
+
userId
);
}
}
}
//订单完成计算用户拥金
public
void
finishOrderWater
(
OrderWaterDTO
orderWaterDTO
)
{
public
void
finishOrderWater
(
OrderWaterDTO
orderWaterDTO
)
{
//订单id
Integer
orderId
=
orderWaterDTO
.
getOrderId
();
log
.
info
(
"订单完成计算用户拥金----finishOrderWater----orderId===="
+
orderId
);
if
(
orderId
==
null
||
orderId
==
0
)
{
return
;
Integer
orderId
=
orderWaterDTO
.
getOrderId
();
log
.
info
(
"订单完成计算用户拥金----finishOrderWater----orderId===="
+
orderId
);
if
(
orderId
==
null
||
orderId
==
0
)
{
return
;
}
List
<
AppUserSellingWater
>
list
=
getWaterList
(
orderId
);
BigDecimal
amount
=
new
BigDecimal
(
"0.00"
);
Integer
userId
=
0
;
if
(
list
.
size
()
>
0
)
{
for
(
AppUserSellingWater
sellingWater
:
list
)
{
Integer
id
=
sellingWater
.
getId
();
userId
=
sellingWater
.
getUserId
();
List
<
AppUserSellingWater
>
list
=
getWaterList
(
orderId
);
BigDecimal
amount
=
new
BigDecimal
(
"0.00"
);
Integer
userId
=
0
;
if
(
list
.
size
()
>
0
)
{
for
(
AppUserSellingWater
sellingWater
:
list
)
{
Integer
id
=
sellingWater
.
getId
();
userId
=
sellingWater
.
getUserId
();
sellingWater
.
setWaiting
(
1
);
updateById
(
sellingWater
);
BigDecimal
commission
=
sellingWater
.
getCommission
();
log
.
info
(
"订单完成计算用户拥金----finishOrderWater----id===="
+
id
+
"---commission=="
+
commission
);
amount
=
amount
.
add
(
commission
);
BigDecimal
commission
=
sellingWater
.
getCommission
();
log
.
info
(
"订单完成计算用户拥金----finishOrderWater----id===="
+
id
+
"---commission=="
+
commission
);
amount
=
amount
.
add
(
commission
);
}
}
log
.
info
(
"订单完成计算用户拥金----finishOrderWater----orderId===="
+
orderId
+
"---amount=="
+
amount
);
int
r
=
amount
.
compareTo
(
BigDecimal
.
ZERO
);
log
.
info
(
"订单完成计算用户拥金----finishOrderWater----orderId===="
+
orderId
+
"---amount=="
+
amount
);
int
r
=
amount
.
compareTo
(
BigDecimal
.
ZERO
);
//更新钱包
if
(
r
==
1
&&
userId
>
0
)
{
myWaterBiz
.
updMyWater
(
userId
,
orderId
,
amount
);
if
(
r
==
1
&&
userId
>
0
)
{
myWaterBiz
.
updMyWater
(
userId
,
orderId
,
amount
);
}
}
//订单退款计算用户拥金
public
void
refundOrderWater
(
OrderWaterDTO
orderWaterDTO
)
{
public
void
refundOrderWater
(
OrderWaterDTO
orderWaterDTO
)
{
//订单id
Integer
orderId
=
orderWaterDTO
.
getOrderId
();
log
.
info
(
"订单完成计算用户拥金----refundOrderWater----orderId===="
+
orderId
);
if
(
orderId
==
null
||
orderId
==
0
)
{
Integer
orderId
=
orderWaterDTO
.
getOrderId
();
log
.
info
(
"订单完成计算用户拥金----refundOrderWater----orderId===="
+
orderId
);
if
(
orderId
==
null
||
orderId
==
0
)
{
return
;
}
List
<
AppUserSellingWater
>
list
=
getWaterList
(
orderId
);
BigDecimal
amount
=
new
BigDecimal
(
"0.00"
);
Integer
userId
=
0
;
if
(
list
.
size
()
>
0
)
{
for
(
AppUserSellingWater
sellingWater
:
list
)
{
Integer
id
=
sellingWater
.
getId
();
userId
=
sellingWater
.
getUserId
();
List
<
AppUserSellingWater
>
list
=
getWaterList
(
orderId
);
BigDecimal
amount
=
new
BigDecimal
(
"0.00"
);
Integer
userId
=
0
;
if
(
list
.
size
()
>
0
)
{
for
(
AppUserSellingWater
sellingWater
:
list
)
{
Integer
id
=
sellingWater
.
getId
();
userId
=
sellingWater
.
getUserId
();
sellingWater
.
setWaiting
(
1
);
updateById
(
sellingWater
);
sellingWater
.
setId
(
null
);
sellingWater
.
setStatus
(
1
);
insertSelective
(
sellingWater
);
BigDecimal
commission
=
sellingWater
.
getCommission
();
log
.
info
(
"订单完成计算用户拥金----refundOrderWater----id===="
+
id
+
"---commission=="
+
commission
);
BigDecimal
commission
=
sellingWater
.
getCommission
();
log
.
info
(
"订单完成计算用户拥金----refundOrderWater----id===="
+
id
+
"---commission=="
+
commission
);
}
}
log
.
info
(
"订单完成计算用户拥金----refundOrderWater----orderId===="
+
orderId
+
"---amount=="
+
amount
);
int
r
=
amount
.
compareTo
(
BigDecimal
.
ZERO
);
log
.
info
(
"订单完成计算用户拥金----refundOrderWater----orderId===="
+
orderId
+
"---amount=="
+
amount
);
int
r
=
amount
.
compareTo
(
BigDecimal
.
ZERO
);
//更新钱包
if
(
r
==
1
&&
userId
>
0
)
{
myWaterBiz
.
updMyWater
(
userId
,
orderId
,
amount
);
if
(
r
==
1
&&
userId
>
0
)
{
myWaterBiz
.
updMyWater
(
userId
,
orderId
,
amount
);
}
}
//获取拥金列表
public
List
<
AppUserSellingWater
>
getWaterList
(
Integer
orderId
)
{
Example
example
=
new
Example
(
AppUserSellingWater
.
class
);
example
.
createCriteria
().
andEqualTo
(
"orderId"
,
orderId
).
andEqualTo
(
"waiting"
,
0
).
andEqualTo
(
"status"
,
0
);
return
mapper
.
selectByExample
(
example
);
public
List
<
AppUserSellingWater
>
getWaterList
(
Integer
orderId
)
{
Example
example
=
new
Example
(
AppUserSellingWater
.
class
);
example
.
createCriteria
().
andEqualTo
(
"orderId"
,
orderId
).
andEqualTo
(
"waiting"
,
0
).
andEqualTo
(
"status"
,
0
);
return
mapper
.
selectByExample
(
example
);
}
public
Map
<
Integer
,
BigDecimal
>
findMemberIdAndIncomeMapByMemberIds
(
List
<
Integer
>
memberIds
)
{
Map
<
Integer
,
BigDecimal
>
memberIdAndIncomeMap
=
new
HashMap
<>();
List
<
UserIncomeBo
>
userIncomeBos
=
mapper
.
accquireIncomeByMemberIds
(
memberIds
);
if
(
CollectionUtils
.
isNotEmpty
(
userIncomeBos
))
{
memberIdAndIncomeMap
=
userIncomeBos
.
stream
().
collect
(
Collectors
.
toMap
(
UserIncomeBo:
:
getUserId
,
userIncomeBo
->
userIncomeBo
.
getIncome
()==
null
?
new
BigDecimal
(
0
):
userIncomeBo
.
getIncome
()));
}
Map
<
Integer
,
BigDecimal
>
memberIdAndIncomeMap
=
new
HashMap
<>();
List
<
UserIncomeBo
>
userIncomeBos
=
mapper
.
accquireIncomeByMemberIds
(
memberIds
);
if
(
CollectionUtils
.
isNotEmpty
(
userIncomeBos
))
{
memberIdAndIncomeMap
=
userIncomeBos
.
stream
().
collect
(
Collectors
.
toMap
(
UserIncomeBo:
:
getUserId
,
userIncomeBo
->
userIncomeBo
.
getIncome
()
==
null
?
new
BigDecimal
(
0
)
:
userIncomeBo
.
getIncome
()));
}
return
memberIdAndIncomeMap
;
}
public
SellingWalletPagVo
findSellingWaterPageByWaiting
(
Integer
waiting
,
Integer
userId
,
Integer
pageNo
,
Integer
pageSize
){
public
SellingWalletPagVo
findSellingWaterPageByWaiting
(
Integer
waiting
,
Integer
userId
,
Integer
pageNo
,
Integer
pageSize
)
{
SellingWalletPagVo
sellingWalletPagVo
=
new
SellingWalletPagVo
();
Example
example
=
new
Example
(
AppUserSellingWater
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
if
(
waiting
!=
null
)
{
criteria
.
andEqualTo
(
"waiting"
,
waiting
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
if
(
waiting
!=
null
)
{
criteria
.
andEqualTo
(
"waiting"
,
waiting
);
}
criteria
.
andEqualTo
(
"userId"
,
userId
);
PageDataVO
<
AppUserSellingWater
>
appUserSellingWaterPageDataVO
=
PageDataVO
.
pageInfo
(
pageNo
,
pageSize
,()->
mapper
.
selectByExample
(
example
));
criteria
.
andEqualTo
(
"userId"
,
userId
);
PageDataVO
<
AppUserSellingWater
>
appUserSellingWaterPageDataVO
=
PageDataVO
.
pageInfo
(
pageNo
,
pageSize
,
()
->
mapper
.
selectByExample
(
example
));
List
<
AppUserSellingWater
>
appUserSellingWaters
=
appUserSellingWaterPageDataVO
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
appUserSellingWaters
)){
if
(
CollectionUtils
.
isEmpty
(
appUserSellingWaters
))
{
sellingWalletPagVo
.
setPageNum
(
pageNo
);
sellingWalletPagVo
.
setPageSize
(
pageSize
);
sellingWalletPagVo
.
setTotalCount
(
0
);
...
...
@@ -256,29 +256,29 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
List
<
Integer
>
memberIds
=
appUserSellingWaters
.
stream
().
map
(
AppUserSellingWater:
:
getSourceId
).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
AppUserLogin
>
userIdAndAppUserLoginMap
=
appUserLoginBiz
.
findUserIdAndUserLoginMapByMemberIds
(
memberIds
);
Map
<
Integer
,
AppUserDetail
>
userIdAndAppUserDetailMap
=
appUserDetailBiz
.
findUserIdAndUserDetailMapByMemberIds
(
memberIds
);
Map
<
Integer
,
AppUserLogin
>
userIdAndAppUserLoginMap
=
appUserLoginBiz
.
findUserIdAndUserLoginMapByMemberIds
(
memberIds
);
Map
<
Integer
,
AppUserDetail
>
userIdAndAppUserDetailMap
=
appUserDetailBiz
.
findUserIdAndUserDetailMapByMemberIds
(
memberIds
);
List
<
SellingWalletVo
>
sellingWaterVos
=
new
ArrayList
<>();
List
<
SellingWalletVo
>
sellingWaterVos
=
new
ArrayList
<>();
SellingWalletVo
sellingWaterVo
;
BigDecimal
totalIncome
=
new
BigDecimal
(
0
);
BigDecimal
totalIncome
=
new
BigDecimal
(
0
);
for
(
AppUserSellingWater
appUserSellingWater
:
appUserSellingWaters
)
{
sellingWaterVo
=
new
SellingWalletVo
();
BeanUtils
.
copyProperties
(
appUserSellingWater
,
sellingWaterVo
);
BeanUtils
.
copyProperties
(
appUserSellingWater
,
sellingWaterVo
);
sellingWaterVo
.
setUsername
(
userIdAndAppUserLoginMap
.
get
(
appUserSellingWater
.
getSourceId
()).
getUsername
());
if
(
userIdAndAppUserDetailMap
!=
null
)
{
if
(
userIdAndAppUserDetailMap
!=
null
)
{
AppUserDetail
appUserDetail
=
userIdAndAppUserDetailMap
.
get
(
appUserSellingWater
.
getSourceId
());
sellingWaterVo
.
setNickName
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getNickname
());
sellingWaterVo
.
setHeadUrl
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getHeadimgurl
());
sellingWaterVo
.
setNickName
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getNickname
());
sellingWaterVo
.
setHeadUrl
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getHeadimgurl
());
}
totalIncome
=
totalIncome
.
add
(
sellingWaterVo
.
getCommission
());
sellingWaterVos
.
add
(
sellingWaterVo
);
}
if
(
waiting
==
null
)
{
Supplier
<
Stream
<
AppUserSellingWater
>>
commissionStream
=
()
->
appUserSellingWaters
.
stream
();
BigDecimal
total
=
commissionStream
.
get
().
filter
(
x
->
x
.
getStatus
()
==
0
).
map
(
AppUserSellingWater:
:
getCommission
).
reduce
(
new
BigDecimal
(
0
),(
x
,
y
)->
x
.
add
(
y
));
BigDecimal
refund
=
commissionStream
.
get
().
filter
(
x
->
x
.
getStatus
()
==
1
).
map
(
AppUserSellingWater:
:
getCommission
).
reduce
(
new
BigDecimal
(
0
),
(
x
,
y
)->
x
.
add
(
y
));
if
(
waiting
==
null
)
{
Supplier
<
Stream
<
AppUserSellingWater
>>
commissionStream
=
()
->
appUserSellingWaters
.
stream
();
BigDecimal
total
=
commissionStream
.
get
().
filter
(
x
->
x
.
getStatus
()
==
0
).
map
(
AppUserSellingWater:
:
getCommission
).
reduce
(
new
BigDecimal
(
0
),
(
x
,
y
)
->
x
.
add
(
y
));
BigDecimal
refund
=
commissionStream
.
get
().
filter
(
x
->
x
.
getStatus
()
==
1
).
map
(
AppUserSellingWater:
:
getCommission
).
reduce
(
new
BigDecimal
(
0
),
(
x
,
y
)
->
x
.
add
(
y
));
totalIncome
=
total
.
subtract
(
refund
);
}
...
...
@@ -291,4 +291,8 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
return
sellingWalletPagVo
;
}
public
BigDecimal
selectTotalIncomeByUserId
(
Integer
userId
)
{
return
mapper
.
selectTotalIncomeByUserId
(
userId
);
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/UserBusinessBiz.java
View file @
59567d98
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
import
com.github.wxiaoqi.security.admin.bo.PromoteBO
;
import
com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo
;
import
com.github.wxiaoqi.security.admin.entity.AppUserDetail
;
import
com.github.wxiaoqi.security.admin.entity.AppUserLogin
;
...
...
@@ -12,9 +13,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -89,4 +88,24 @@ public class UserBusinessBiz {
userTeamMemberVo
.
setTotalIncome
(
totalIncome
);
return
userTeamMemberVo
;
}
public
PromoteBO
getPromoteBoByUserId
(
Integer
userId
)
{
PromoteBO
promoteBO
=
new
PromoteBO
();
Integer
leaderId
=
appUserRelationBiz
.
findLeaderIdByMemberId
(
userId
);
Map
<
Integer
,
Integer
>
memberStateAndCountMap
=
appUserRelationBiz
.
findMemberSateAndCountMapByLeaderId
(
userId
);
if
(
leaderId
!=
0
)
{
Map
<
Integer
,
AppUserLogin
>
userIdAndUserLoginMap
=
appUserLoginBiz
.
findUserIdAndUserLoginMapByMemberIds
(
Arrays
.
asList
(
leaderId
));
Map
<
Integer
,
AppUserDetail
>
userIdAndUserDetailMap
=
appUserDetailBiz
.
findUserIdAndUserDetailMapByMemberIds
(
Arrays
.
asList
(
leaderId
));
promoteBO
.
setLeaderUsername
(
userIdAndUserLoginMap
.
get
(
leaderId
).
getUsername
());
promoteBO
.
setLeaderHeadUrl
(
userIdAndUserDetailMap
.
get
(
leaderId
).
getHeadimgurl
());
}
promoteBO
.
setInviteNumber
(
memberStateAndCountMap
.
get
(
0
));
promoteBO
.
setActivatedNumber
(
memberStateAndCountMap
.
get
(
1
));
BigDecimal
totalIncome
=
appUserSellingWaterBiz
.
selectTotalIncomeByUserId
(
userId
);
promoteBO
.
setTotalIncome
(
totalIncome
);
return
promoteBO
;
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/AppUserSellingWaterMapper.java
View file @
59567d98
...
...
@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
@@ -17,4 +18,6 @@ import java.util.List;
public
interface
AppUserSellingWaterMapper
extends
Mapper
<
AppUserSellingWater
>
{
List
<
UserIncomeBo
>
accquireIncomeByMemberIds
(
@Param
(
"memberIds"
)
List
<
Integer
>
memberIds
);
BigDecimal
selectTotalIncomeByUserId
(
@Param
(
"userId"
)
Integer
userId
);
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/AppUserRelationController.java
View file @
59567d98
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.github.wxiaoqi.security.admin.vo.InviteMemberVo
;
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.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.github.wxiaoqi.security.admin.biz.AppUserRelationBiz
;
import
com.github.wxiaoqi.security.admin.entity.AppUserRelation
;
import
io.swagger.annotations.ApiModelProperty
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.
web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.
RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.
beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.
*
;
import
javax.servlet.http.HttpServletRequest
;
@RestController
@RequestMapping
(
"relation"
)
public
class
AppUserRelationController
extends
BaseController
<
AppUserRelationBiz
,
AppUserRelation
>
{
@Autowired
private
UserAuthUtil
userAuthUtil
;
@Autowired
private
UserAuthConfig
userAuthConfig
;
@RequestMapping
(
value
=
"app/unauth/small/share"
,
method
=
RequestMethod
.
GET
)
@ApiModelProperty
(
"小程序分享绑定"
)
...
...
@@ -26,4 +37,19 @@ public class AppUserRelationController extends BaseController<AppUserRelationBiz
return
baseBiz
.
shareParentByUserId
(
userid
,
pid
,
platform_userid
);
}
@ApiOperation
(
"查询邀请的成员"
)
@GetMapping
(
"/page"
)
public
ObjectRestResponse
<
InviteMemberVo
>
findInviteMemberByActivitState
(
@RequestParam
(
value
=
"state"
,
required
=
false
)
Integer
state
,
@RequestParam
(
"page"
)
Integer
page
,
@RequestParam
(
"limit"
)
Integer
limit
,
HttpServletRequest
request
){
try
{
IJWTInfo
infoFromToken
=
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
));
InviteMemberVo
inviteMemberVo
=
baseBiz
.
findInviteMemberByActivitState
(
Integer
.
valueOf
(
infoFromToken
.
getId
()),
state
,
page
,
limit
);
return
ObjectRestResponse
.
succ
(
inviteMemberVo
);
}
catch
(
Exception
e
)
{
throw
new
BaseException
(
e
);
}
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/UserBussinessController.java
View file @
59567d98
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.github.wxiaoqi.security.admin.biz.UserBusinessBiz
;
import
com.github.wxiaoqi.security.admin.bo.PromoteBO
;
import
com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo
;
import
com.github.wxiaoqi.security.admin.vo.UserTeamMemberVo
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
...
...
@@ -45,6 +46,16 @@ public class UserBussinessController {
}
catch
(
Exception
e
)
{
throw
new
BaseException
(
e
);
}
}
}
@GetMapping
(
"/promote"
)
public
ObjectRestResponse
<
PromoteBO
>
findPromoteBo
(
HttpServletRequest
request
){
try
{
IJWTInfo
infoFromToken
=
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
));
PromoteBO
promoteBO
=
businessBiz
.
getPromoteBoByUserId
(
Integer
.
valueOf
(
infoFromToken
.
getId
()));
return
ObjectRestResponse
.
succ
(
promoteBO
);
}
catch
(
Exception
e
)
{
throw
new
BaseException
(
e
);
}
}
}
ace-modules/ace-admin/src/main/resources/mapper/AppUserSellingWaterMapper.xml
View file @
59567d98
...
...
@@ -16,4 +16,8 @@ WHERE
#{memberId}
</foreach>
</select>
<select
id=
"selectTotalIncomeByUserId"
>
SELECT SUM(commission) FROM app_user_selling_water WHERE `user_id`=#{userId}
</select>
</mapper>
\ No newline at end of file
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