Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张云鹏
/
uc-engine
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
c83b7a48
...
c83b7a482a1a7295a0bd169d0b4a88efb06c4216
authored
2022-03-11 09:49:59 +0800
by
xianghan
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1.优化部分会员信息与会员属性逻辑
1 parent
384f3018
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
498 additions
and
442 deletions
member-service-impl/src/main/java/com/topdraw/business/module/common/domain/DefaultAsyncMqModule.java
member-service-impl/src/main/java/com/topdraw/business/module/member/address/domain/MemberAddress.java
member-service-impl/src/main/java/com/topdraw/business/module/member/address/rest/MemberAddressController.java
member-service-impl/src/main/java/com/topdraw/business/module/member/address/service/impl/MemberAddressServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/module/member/domain/Member.java
member-service-impl/src/main/java/com/topdraw/business/module/member/domain/MemberBuilder.java
member-service-impl/src/main/java/com/topdraw/business/module/member/group/rest/MemberGroupController.java
member-service-impl/src/main/java/com/topdraw/business/module/member/level/domain/MemberLevel.java
member-service-impl/src/main/java/com/topdraw/business/module/member/level/rest/MemberLevelController.java
member-service-impl/src/main/java/com/topdraw/business/module/member/level/service/MemberLevelService.java
member-service-impl/src/main/java/com/topdraw/business/module/member/level/service/impl/MemberLevelServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/domain/MemberProfile.java
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/domain/MemberProfileBuild.java
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/rest/MemberProfileController.java
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/service/MemberProfileService.java
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/service/dto/MemberProfileDTO.java
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/service/impl/MemberProfileServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/module/member/relatedinfo/domain/MemberRelatedInfo.java
member-service-impl/src/main/java/com/topdraw/business/module/member/relatedinfo/rest/MemberRelatedInfoController.java
member-service-impl/src/main/java/com/topdraw/business/module/member/repository/MemberRepository.java
member-service-impl/src/main/java/com/topdraw/business/module/member/rest/MemberController.java
member-service-impl/src/main/java/com/topdraw/business/module/member/service/MemberService.java
member-service-impl/src/main/java/com/topdraw/business/module/member/service/impl/MemberServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/module/user/iptv/service/impl/UserTvServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/process/rest/UserOperationController.java
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/MemberOperationServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/TaskOperationServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/UserOperationServiceImpl.java
member-service-impl/src/main/java/com/topdraw/exception/GlobeExceptionCode.java
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/MemberServiceTest.java
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/profile/MemberProfileServiceTest.java
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/rest/MemberAddressControllerTest.java
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/rest/MemberProfileControllerTest.java
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/rest/MemberRelatedInfoControllerTest.java
member-service-impl/src/main/java/com/topdraw/business/module/common/domain/DefaultAsyncMqModule.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
common
.
domain
;
import
com.topdraw.business.common.CreateGroup
;
import
com.topdraw.business.common.UpdateGroup
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
import
javax.persistence.Entity
;
import
javax.persistence.EntityListeners
;
import
javax.persistence.Transient
;
import
java
.io.Serializable
;
import
java
x.validation.constraints.NotNull
;
/**
* @author :
...
...
@@ -23,6 +22,7 @@ import java.io.Serializable;
public
class
DefaultAsyncMqModule
{
@Transient
@NotNull
(
message
=
"memberCode can't be null"
,
groups
=
{
CreateGroup
.
class
,
UpdateGroup
.
class
})
private
String
memberCode
;
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/address/domain/MemberAddress.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
address
.
domain
;
import
com.topdraw.business.common.CreateGroup
;
import
com.topdraw.business.common.UpdateGroup
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
cn.hutool.core.bean.BeanUtil
;
...
...
@@ -11,7 +12,6 @@ import javax.validation.constraints.NotNull;
import
org.springframework.data.annotation.CreatedDate
;
import
org.springframework.data.annotation.LastModifiedDate
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
import
java.sql.Timestamp
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
...
...
@@ -27,74 +27,74 @@ import java.time.LocalDateTime;
@Table
(
name
=
"uc_member_address"
)
public
class
MemberAddress
implements
Serializable
{
/
/ 主键
/
** 主键 */
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"id"
)
private
Long
id
;
/
/ 会员id
/
** 会员id */
@Column
(
name
=
"member_id"
,
nullable
=
false
)
@NotNull
(
message
=
""
,
groups
=
{
CreateGroup
.
class
})
private
Long
memberId
;
@Transient
@NotNull
(
message
=
"memberCode can't be null"
,
groups
=
{
CreateGroup
.
class
})
private
String
memberCode
;
/
/ 类型 1:家;2:公司;3:学校
/
** 类型 1:家;2:公司;3:学校 */
@Column
(
name
=
"type"
,
nullable
=
false
)
private
Integer
type
;
/
/ 是否默认地址
/
** 是否默认地址 */
@Column
(
name
=
"is_default"
,
nullable
=
false
)
private
Integer
isDefault
;
/
/ 显示顺序
/
** 显示顺序 */
@Column
(
name
=
"sequence"
)
private
Integer
sequence
;
/
/ 状态 0:不可用;1-可用
/
** 状态 0:不可用;1-可用 */
@Column
(
name
=
"status"
,
nullable
=
false
)
private
Integer
status
;
/
/ 联系人姓名
/
** 联系人姓名 */
@Column
(
name
=
"contactor"
,
nullable
=
false
)
private
String
contactor
;
/
/ 联系人电话
/
** 联系人电话 */
@Column
(
name
=
"cellphone"
,
nullable
=
false
)
private
String
cellphone
;
/
/ 国家
/
** 国家 */
@Column
(
name
=
"country"
,
nullable
=
false
)
private
String
country
;
/
/ 省份
/
** 省份 */
@Column
(
name
=
"province"
,
nullable
=
false
)
private
String
province
;
/
/ 城市
/
** 城市 */
@Column
(
name
=
"city"
,
nullable
=
false
)
private
String
city
;
/
/ 区县
/
** 区县 */
@Column
(
name
=
"district"
,
nullable
=
false
)
private
String
district
;
/
/ 地址
/
** 地址 */
@Column
(
name
=
"address"
,
nullable
=
false
)
private
String
address
;
/
/ 邮编
/
** 邮编 */
@Column
(
name
=
"zip_code"
)
private
String
zipCode
;
/
/ 创建时间
/
** 创建时间 */
@CreatedDate
@Column
(
name
=
"create_time"
)
private
LocalDateTime
createTime
;
/
/ 更新时间
/
** 更新时间 */
@LastModifiedDate
@Column
(
name
=
"update_time"
)
private
LocalDateTime
updateTime
;
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/address/rest/MemberAddressController.java
View file @
c83b7a4
...
...
@@ -2,20 +2,16 @@ package com.topdraw.business.module.member.address.rest;
import
com.topdraw.aop.log.Log
;
import
com.topdraw.business.common.CreateGroup
;
import
com.topdraw.business.module.member.service.MemberService
;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.business.common.UpdateGroup
;
import
com.topdraw.common.ResultInfo
;
import
com.topdraw.business.module.member.address.domain.MemberAddress
;
import
com.topdraw.business.module.member.address.service.MemberAddressService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.Assert
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
io.swagger.annotations.*
;
import
java.util.Objects
;
/**
* @author XiangHan
* @date 2021-10-22
...
...
@@ -28,47 +24,25 @@ import java.util.Objects;
public
class
MemberAddressController
{
@Autowired
private
MemberAddressService
MemberAddressService
;
@Autowired
private
MemberService
memberService
;
@Log
(
"查询指定会员地址"
)
@GetMapping
(
value
=
"/findById/{id}"
)
@ApiOperation
(
"查询指定会员地址"
)
public
ResultInfo
findById
(
@PathVariable
(
value
=
"id"
)
Long
resources
)
{
log
.
info
(
"MemberAddressController ==>> create ==>> param ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
(
MemberAddressService
.
findById
(
resources
));
}
private
MemberAddressService
memberAddressService
;
@Log
(
"
查询指定
会员地址"
)
@Log
(
"
新增
会员地址"
)
@RequestMapping
(
value
=
"/create"
)
@ApiOperation
(
"新增会员地址"
)
public
ResultInfo
create
(
@Validated
(
value
=
{
CreateGroup
.
class
})
@RequestBody
MemberAddress
resources
)
{
log
.
info
(
"MemberAddressController ==>> create ==> param ==>> [{}]"
,
resources
);
Long
memberId
=
resources
.
getMemberId
();
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
String
code
=
memberDTO
.
getCode
();
resources
.
setMemberCode
(
code
);
MemberAddressService
.
create
(
resources
);
log
.
info
(
"memberAddress ==>> create ==> param ==>> [{}]"
,
resources
);
this
.
memberAddressService
.
create
(
resources
);
log
.
info
(
"memberAddress ==>> create ==> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
@Log
(
"修改会员地址"
)
@RequestMapping
(
value
=
"/update"
)
@ApiOperation
(
"修改会员地址"
)
public
ResultInfo
update
(
@Validated
(
value
=
{
CreateGroup
.
class
})
@RequestBody
MemberAddress
resources
)
{
log
.
info
(
"MemberAddressController ==>> update ==> param ==>> [{}]"
,
resources
);
Long
memberId
=
resources
.
getMemberId
();
Integer
sequence
=
resources
.
getSequence
();
Assert
.
notNull
(
memberId
,
"memberId can't be null"
);
Assert
.
notNull
(
sequence
,
"sequence can't be null"
);
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
if
(
Objects
.
nonNull
(
memberDTO
))
{
String
code
=
memberDTO
.
getCode
();
Assert
.
notNull
(
code
,
"code can't be null"
);
resources
.
setMemberCode
(
code
);
MemberAddressService
.
update
(
resources
);
}
public
ResultInfo
update
(
@Validated
(
value
=
{
UpdateGroup
.
class
})
@RequestBody
MemberAddress
resources
)
{
log
.
info
(
"memberAddress ==>> update ==> param ==>> [{}]"
,
resources
);
this
.
memberAddressService
.
update
(
resources
);
log
.
info
(
"memberAddress ==>> update ==> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
...
...
@@ -76,8 +50,8 @@ public class MemberAddressController {
@RequestMapping
(
value
=
"/delete/{id}"
)
@ApiOperation
(
"删除会员地址"
)
public
ResultInfo
delete
(
@PathVariable
Long
resources
)
{
log
.
info
(
"
MemberAddressController
==>> delete ==> param ==>> [{}]"
,
resources
);
M
emberAddressService
.
delete
(
resources
);
log
.
info
(
"
memberAddress
==>> delete ==> param ==>> [{}]"
,
resources
);
this
.
m
emberAddressService
.
delete
(
resources
);
return
ResultInfo
.
success
();
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/address/service/impl/MemberAddressServiceImpl.java
View file @
c83b7a4
...
...
@@ -3,6 +3,7 @@ package com.topdraw.business.module.member.address.service.impl;
import
com.topdraw.aspect.AsyncMqSend
;
import
com.topdraw.business.module.member.address.domain.MemberAddress
;
import
com.topdraw.business.module.member.service.MemberService
;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.utils.ValidationUtil
;
import
com.topdraw.business.module.member.address.repository.MemberAddressRepository
;
import
com.topdraw.business.module.member.address.service.MemberAddressService
;
...
...
@@ -22,6 +23,7 @@ import com.topdraw.utils.QueryHelp;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
/**
* @author XiangHan
...
...
@@ -33,9 +35,10 @@ public class MemberAddressServiceImpl implements MemberAddressService {
@Autowired
private
MemberAddressRepository
MemberAddressRepository
;
@Autowired
private
MemberAddressMapper
MemberAddressMapper
;
@Autowired
private
MemberService
memberService
;
@Override
public
MemberAddressDTO
findById
(
Long
id
)
{
...
...
@@ -48,6 +51,10 @@ public class MemberAddressServiceImpl implements MemberAddressService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
create
(
MemberAddress
resources
)
{
Long
memberId
=
resources
.
getMemberId
();
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
String
code
=
memberDTO
.
getCode
();
resources
.
setMemberCode
(
code
);
MemberAddressRepository
.
save
(
resources
);
}
...
...
@@ -55,10 +62,22 @@ public class MemberAddressServiceImpl implements MemberAddressService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
update
(
MemberAddress
resources
)
{
MemberAddress
MemberAddress
=
MemberAddressRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
MemberAddress:
:
new
);
ValidationUtil
.
isNull
(
MemberAddress
.
getId
(),
"MemberAddress"
,
"id"
,
resources
.
getId
());
MemberAddress
.
copy
(
resources
);
MemberAddressRepository
.
save
(
MemberAddress
);
Long
memberId
=
resources
.
getMemberId
();
Integer
sequence
=
resources
.
getSequence
();
Assert
.
notNull
(
memberId
,
"memberId can't be null"
);
Assert
.
notNull
(
sequence
,
"sequence can't be null"
);
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
if
(
Objects
.
nonNull
(
memberDTO
))
{
String
code
=
memberDTO
.
getCode
();
Assert
.
notNull
(
code
,
"code can't be null"
);
resources
.
setMemberCode
(
code
);
MemberAddress
MemberAddress
=
MemberAddressRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
MemberAddress:
:
new
);
ValidationUtil
.
isNull
(
MemberAddress
.
getId
(),
"MemberAddress"
,
"id"
,
resources
.
getId
());
MemberAddress
.
copy
(
resources
);
MemberAddressRepository
.
save
(
MemberAddress
);
}
}
@Override
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/domain/Member.java
View file @
c83b7a4
...
...
@@ -12,7 +12,6 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.time.LocalDateTime
;
/**
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/domain/MemberBuilder.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
domain
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
com.topdraw.util.IdWorker
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.data.annotation.CreatedDate
;
import
org.springframework.data.annotation.LastModifiedDate
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.time.LocalDateTime
;
import
java.nio.charset.StandardCharsets
;
import
java.util.Base64
;
import
java.util.Objects
;
/**
...
...
@@ -22,20 +14,56 @@ import java.util.Objects;
*/
public
class
MemberBuilder
{
public
static
Member
build
(
Integer
type
,
String
avatarUrl
,
String
nickname
,
int
vip
){
private
static
final
Long
DEFAULT_VALUE
=
0L
;
private
static
final
Integer
DEFAULT_VALUE_1
=
1
;
private
static
final
Integer
DEFAULT_VALUE_
=
-
1
;
public
static
Member
build
(
Member
member
){
Member
_member
=
checkMemberData
(
member
);
return
_member
;
}
private
static
Member
checkMemberData
(
Member
member
)
{
String
code
=
member
.
getCode
();
member
.
setCode
(
StringUtils
.
isEmpty
(
code
)?
String
.
valueOf
(
IdWorker
.
generator
()):
code
);
Integer
gender
=
member
.
getGender
();
member
.
setGender
(
Objects
.
nonNull
(
gender
)
?
gender
:
0
);
Integer
type
=
member
.
getType
();
member
.
setType
(
Objects
.
nonNull
(
type
)
?
type:
-
1
);
Integer
status
=
member
.
getStatus
();
member
.
setStatus
(
Objects
.
nonNull
(
status
)
?
status:
1
);
Integer
vip
=
member
.
getVip
();
member
.
setVip
(
Objects
.
nonNull
(
vip
)
?
vip:
0
);
Integer
level
=
member
.
getLevel
();
member
.
setLevel
(
Objects
.
nonNull
(
level
)
?
level:
1
);
member
.
setExp
(
DEFAULT_VALUE
);
member
.
setPoints
(
DEFAULT_VALUE
);
member
.
setDuePoints
(
DEFAULT_VALUE
);
member
.
setCouponAmount
(
DEFAULT_VALUE
);
member
.
setDueCouponAmount
(
DEFAULT_VALUE
);
member
.
setBlackStatus
(
DEFAULT_VALUE
);
String
nickname
=
member
.
getNickname
();
if
(
com
.
topdraw
.
utils
.
StringUtils
.
isNotEmpty
(
nickname
))
{
String
base64Nickname
=
new
String
(
Base64
.
getEncoder
().
encode
(
nickname
.
getBytes
(
StandardCharsets
.
UTF_8
)));
member
.
setNickname
(
base64Nickname
);
}
return
member
;
}
public
static
Member
build
(
Integer
type
,
String
avatarUrl
,
String
nickname
,
int
vip
){
// todo 原型模式
Member
member
=
new
Member
();
member
.
setType
(
type
);
member
.
setBlackStatus
(
0L
);
member
.
setGender
(
-
1
);
member
.
setBlackStatus
(
DEFAULT_VALUE
);
member
.
setGender
(
DEFAULT_VALUE_
);
member
.
setVip
(
vip
);
member
.
setLevel
(
1
);
member
.
setStatus
(
1
);
member
.
setPoints
(
0L
);
member
.
setDuePoints
(
0L
);
member
.
setExp
(
0L
);
member
.
setCouponAmount
(
0L
);
member
.
setDueCouponAmount
(
0L
);
member
.
setLevel
(
DEFAULT_VALUE_
1
);
member
.
setStatus
(
DEFAULT_VALUE_
1
);
member
.
setPoints
(
DEFAULT_VALUE
);
member
.
setDuePoints
(
DEFAULT_VALUE
);
member
.
setExp
(
DEFAULT_VALUE
);
member
.
setCouponAmount
(
DEFAULT_VALUE
);
member
.
setDueCouponAmount
(
DEFAULT_VALUE
);
member
.
setAvatarUrl
(
StringUtils
.
isBlank
(
avatarUrl
)?
""
:
avatarUrl
);
member
.
setCode
(
IdWorker
.
generator
()
+
""
);
member
.
setNickname
(
StringUtils
.
isBlank
(
nickname
)?
""
:
nickname
);
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/group/rest/MemberGroupController.java
View file @
c83b7a4
...
...
@@ -4,10 +4,8 @@ import com.topdraw.aop.log.Log;
import
com.topdraw.common.ResultInfo
;
import
com.topdraw.business.module.member.group.domain.MemberGroup
;
import
com.topdraw.business.module.member.group.service.MemberGroupService
;
import
com.topdraw.business.module.member.group.service.dto.MemberGroupQueryCriteria
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
io.swagger.annotations.*
;
...
...
@@ -24,14 +22,15 @@ import io.swagger.annotations.*;
public
class
MemberGroupController
{
@Autowired
private
MemberGroupService
M
emberGroupService
;
private
MemberGroupService
m
emberGroupService
;
@Log
(
"新增会员分组"
)
@RequestMapping
(
value
=
"/create"
)
@ApiOperation
(
"新增会员分组"
)
public
ResultInfo
create
(
@Validated
@RequestBody
MemberGroup
resources
)
{
log
.
info
(
"MemberGroupController ==>> create ==>> param ==>> [{}]"
,
resources
);
MemberGroupService
.
create
(
resources
);
log
.
info
(
"memberGroup ==>> create ==>> param ==>> [{}]"
,
resources
);
this
.
memberGroupService
.
create
(
resources
);
log
.
info
(
"memberGroup ==>> create ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
...
...
@@ -39,8 +38,9 @@ public class MemberGroupController {
@RequestMapping
(
value
=
"/update"
)
@ApiOperation
(
"修改会员分组"
)
public
ResultInfo
update
(
@Validated
@RequestBody
MemberGroup
resources
)
{
log
.
info
(
"MemberGroupController ==>> update ==>> param ==>> [{}]"
,
resources
);
MemberGroupService
.
update
(
resources
);
log
.
info
(
"memberGroup ==>> update ==>> param ==>> [{}]"
,
resources
);
this
.
memberGroupService
.
update
(
resources
);
log
.
info
(
"memberGroup ==>> update ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
...
...
@@ -48,8 +48,9 @@ public class MemberGroupController {
@RequestMapping
(
value
=
"/{id}"
)
@ApiOperation
(
"删除会员分组"
)
public
ResultInfo
delete
(
@PathVariable
(
value
=
"id"
)
Long
resources
)
{
log
.
info
(
"MemberGroupController ==>> delete ==>> param ==>> [{}]"
,
resources
);
MemberGroupService
.
delete
(
resources
);
log
.
info
(
"memberGroup ==>> delete ==>> param ==>> [{}]"
,
resources
);
this
.
memberGroupService
.
delete
(
resources
);
log
.
info
(
"memberGroup ==>> delete ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/level/domain/MemberLevel.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
level
.
domain
;
import
com.topdraw.business.common.CreateGroup
;
import
com.topdraw.business.common.UpdateGroup
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
javax.persistence.*
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
import
org.springframework.data.annotation.CreatedDate
;
...
...
@@ -51,6 +53,8 @@ public class MemberLevel implements Serializable {
/** 等级(不可重复,数字越大等级越高) */
@Column
(
name
=
"level"
,
nullable
=
false
)
@Min
(
message
=
"level can't less then 1"
,
value
=
1
)
@NotNull
(
message
=
"level can't be null"
,
groups
=
{
CreateGroup
.
class
,
UpdateGroup
.
class
})
private
Integer
level
;
/** 会员徽标 */
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/level/rest/MemberLevelController.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
level
.
rest
;
import
com.topdraw.aop.log.Log
;
import
com.topdraw.business.common.CreateGroup
;
import
com.topdraw.business.common.UpdateGroup
;
import
com.topdraw.business.module.member.level.domain.MemberLevel
;
import
com.topdraw.common.ResultInfo
;
...
...
@@ -17,28 +18,41 @@ import io.swagger.annotations.*;
*/
@Api
(
tags
=
"等级管理"
)
@RestController
@RequestMapping
(
"/ucEngine/api/
M
emberLevel"
)
@RequestMapping
(
"/ucEngine/api/
m
emberLevel"
)
@CrossOrigin
@Slf4j
public
class
MemberLevelController
{
@Autowired
private
MemberLevelService
MemberLevelService
;
private
MemberLevelService
memberLevelService
;
@Log
(
"新增会员等级"
)
@RequestMapping
(
value
=
"/create"
)
@ApiOperation
(
"新增会员等级"
)
public
ResultInfo
create
(
@Validated
(
value
=
{
CreateGroup
.
class
})
@RequestBody
MemberLevel
resources
)
{
log
.
info
(
"memberLevel ==>> update ==>> param ==>> [{}]"
,
resources
);
this
.
memberLevelService
.
update
(
resources
);
log
.
info
(
"memberLevel ==>> update ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
@Log
(
"修改等级"
)
@RequestMapping
(
value
=
"/update"
)
@ApiOperation
(
"修改等级"
)
public
ResultInfo
update
(
@Validated
(
value
=
{
UpdateGroup
.
class
})
@RequestBody
MemberLevel
resources
)
{
log
.
info
(
"MemberLevelController ==>> update ==>> param ==>> [{}]"
,
resources
);
MemberLevelService
.
update
(
resources
);
log
.
info
(
"memberLevel ==>> update ==>> param ==>> [{}]"
,
resources
);
this
.
memberLevelService
.
update
(
resources
);
log
.
info
(
"memberLevel ==>> update ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
@Log
(
"根据标识查询"
)
@GetMapping
(
value
=
"/getByCode/{code}"
)
@ApiOperation
(
value
=
"根据标识查询"
)
public
ResultInfo
getByCode
(
@PathVariable
String
code
)
{
log
.
info
(
"MemberLevelController ==>> getByCode ==>> param ==>> [{}]"
,
code
);
return
ResultInfo
.
success
(
MemberLevelService
.
getByCode
(
code
));
@Log
(
"删除等级"
)
@DeleteMapping
(
value
=
"/delete/{id}"
)
@ApiOperation
(
"删除等级"
)
public
ResultInfo
delete
(
@PathVariable
Long
resources
)
{
log
.
info
(
"memberLevel ==>> delete ==>> param ==>> [{}]"
,
resources
);
this
.
memberLevelService
.
delete
(
resources
);
log
.
info
(
"memberLevel ==>> delete ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/level/service/MemberLevelService.java
View file @
c83b7a4
...
...
@@ -37,4 +37,7 @@ public interface MemberLevelService {
* @return
*/
List
<
MemberLevelDTO
>
findLevelAndStatus
(
Integer
i
,
Integer
status
);
void
delete
(
Long
resources
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/level/service/impl/MemberLevelServiceImpl.java
View file @
c83b7a4
...
...
@@ -64,4 +64,9 @@ public class MemberLevelServiceImpl implements MemberLevelService {
public
List
<
MemberLevelDTO
>
findLevelAndStatus
(
Integer
level
,
Integer
status
)
{
return
MemberLevelMapper
.
toDto
(
MemberLevelRepository
.
findByLevelAndStatus
(
level
,
status
));
}
@Override
public
void
delete
(
Long
resources
)
{
MemberLevelRepository
.
deleteById
(
resources
);
}
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/domain/MemberProfile.java
View file @
c83b7a4
...
...
@@ -15,6 +15,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import
java.sql.Timestamp
;
import
java.io.Serializable
;
import
java.time.LocalDate
;
/**
* @author XiangHan
...
...
@@ -28,7 +29,7 @@ import java.io.Serializable;
public
class
MemberProfile
implements
Serializable
{
@Transient
@NotNull
(
message
=
"memberCode not be null!!"
,
groups
=
CreateGroup
.
class
)
@NotNull
(
message
=
"memberCode not be null!!"
,
groups
=
{
CreateGroup
.
class
,
UpdateGroup
.
class
}
)
private
String
memberCode
;
// 主键
...
...
@@ -52,7 +53,7 @@ public class MemberProfile implements Serializable {
// 生日
@Column
(
name
=
"birthday"
,
nullable
=
false
)
private
Timestamp
birthday
;
private
String
birthday
;
// 手机号
@Column
(
name
=
"phone"
)
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/domain/MemberProfileBuild.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
profile
.
domain
;
import
com.topdraw.utils.StringUtils
;
import
com.topdraw.business.module.member.domain.Member
;
import
org.apache.commons.lang3.StringUtils
;
import
java.sql.Timestamp
;
import
java.util.Objects
;
public
class
MemberProfileBuild
{
public
static
MemberProfile
build
(
Long
memberId
,
String
realname
,
Integer
gender
,
Timestamp
birthday
){
public
static
MemberProfile
build
(
Member
member
){
MemberProfile
memberProfile
=
build
(
member
.
getId
(),
member
.
getNickname
(),
member
.
getGender
(),
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
member
.
getBirthday
());
return
memberProfile
;
}
public
static
MemberProfile
build
(
Long
memberId
){
MemberProfile
memberProfile
=
build
(
memberId
,
""
,-
1
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
);
return
memberProfile
;
}
public
static
MemberProfile
build
(
Long
memberId
,
String
realname
,
Integer
gender
,
String
birthday
){
MemberProfile
memberProfile
=
build
(
memberId
,
realname
,
gender
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
birthday
);
return
memberProfile
;
...
...
@@ -20,9 +32,9 @@ public class MemberProfileBuild {
}
public
static
MemberProfile
build
(
Long
memberId
,
String
realName
,
Integer
sex
,
String
contry
,
String
district
,
String
city
,
String
idCard
,
String
province
,
String
co
u
ntry
,
String
district
,
String
city
,
String
idCard
,
String
province
,
String
email
,
String
description
,
String
phone
,
String
constellation
,
Timestamp
timestamp
)
{
String
birthday
)
{
if
(
memberId
==
null
)
throw
new
NullPointerException
(
"memberId is null"
);
...
...
@@ -31,16 +43,16 @@ public class MemberProfileBuild {
memberProfile
.
setMemberId
(
memberId
);
memberProfile
.
setRealname
(
stringIsNull
(
realName
));
memberProfile
.
setGender
(
sex
==
null
?
0
:
sex
);
memberProfile
.
setCountry
(
stringIsNull
(
contry
));
memberProfile
.
setCountry
(
stringIsNull
(
co
u
ntry
));
memberProfile
.
setDistrict
(
stringIsNull
(
district
));
memberProfile
.
setCity
(
stringIsNull
(
city
));
memberProfile
.
setIdCard
(
stringIsNull
(
idCard
)
);
memberProfile
.
setIdCard
(
StringUtils
.
isBlank
(
idCard
)?
"000000000000000000"
:
idCard
);
memberProfile
.
setProvince
(
stringIsNull
(
province
));
memberProfile
.
setEmail
(
stringIsNull
(
email
));
memberProfile
.
setDescription
(
stringIsNull
(
description
));
memberProfile
.
setPhone
(
stringIsNull
(
phone
));
memberProfile
.
setConstellation
(
stringIsNull
(
constellation
));
memberProfile
.
setBirthday
(
timestamp
);
memberProfile
.
setBirthday
(
stringIsNull
(
birthday
)
);
return
memberProfile
;
}
...
...
@@ -53,4 +65,25 @@ public class MemberProfileBuild {
return
Objects
.
nonNull
(
s
)?
null
:
s
;
}
public
static
MemberProfile
build
(
MemberProfile
resources
)
{
if
(
resources
.
getMemberId
()
==
null
)
throw
new
NullPointerException
(
"memberId is null"
);
MemberProfile
memberProfile
=
new
MemberProfile
();
memberProfile
.
setId
(
resources
.
getId
());
memberProfile
.
setMemberId
(
resources
.
getMemberId
());
memberProfile
.
setRealname
(
stringIsNull
(
resources
.
getRealname
()));
memberProfile
.
setGender
(
resources
.
getGender
()
==
null
?
-
1
:
resources
.
getGender
());
memberProfile
.
setCountry
(
stringIsNull
(
resources
.
getCountry
()));
memberProfile
.
setDistrict
(
stringIsNull
(
resources
.
getDistrict
()));
memberProfile
.
setCity
(
stringIsNull
(
resources
.
getCity
()));
memberProfile
.
setIdCard
(
StringUtils
.
isBlank
(
resources
.
getIdCard
())?
"000000000000000000"
:
resources
.
getIdCard
());
memberProfile
.
setProvince
(
stringIsNull
(
resources
.
getProvince
()));
memberProfile
.
setEmail
(
stringIsNull
(
resources
.
getEmail
()));
memberProfile
.
setDescription
(
stringIsNull
(
resources
.
getDescription
()));
memberProfile
.
setPhone
(
stringIsNull
(
resources
.
getPhone
()));
memberProfile
.
setConstellation
(
stringIsNull
(
resources
.
getConstellation
()));
memberProfile
.
setBirthday
(
stringIsNull
(
resources
.
getBirthday
()));
return
memberProfile
;
}
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/rest/MemberProfileController.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
profile
.
rest
;
import
com.topdraw.aop.log.Log
;
import
com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO
;
import
com.topdraw.business.module.member.service.MemberService
;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.common.ResultInfo
;
import
com.topdraw.business.module.member.profile.domain.MemberProfile
;
import
com.topdraw.business.module.member.profile.service.MemberProfileService
;
import
com.topdraw.utils.StringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.Assert
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
io.swagger.annotations.*
;
import
java.util.Objects
;
/**
* @author XiangHan
* @date 2021-10-22
*/
@Api
(
tags
=
"会员
基础信息
管理"
)
@Api
(
tags
=
"会员
属性
管理"
)
@RestController
@RequestMapping
(
"/ucEngine/api/memberProfile"
)
@CrossOrigin
...
...
@@ -29,59 +22,17 @@ import java.util.Objects;
public
class
MemberProfileController
{
@Autowired
private
MemberProfileService
MemberProfileService
;
@Autowired
private
MemberService
memberService
;
@Log
(
"新增会员基础信息"
)
@RequestMapping
(
value
=
"/create"
)
@ApiOperation
(
"新增会员基础信息"
)
public
ResultInfo
create
(
@Validated
@RequestBody
MemberProfile
resources
)
{
log
.
info
(
"MemberProfileController ==>> create ==>> resources ===>> [{}]"
,
resources
);
MemberProfileService
.
create
(
resources
);
return
ResultInfo
.
success
();
}
private
MemberProfileService
memberProfileService
;
@Log
(
"修改会员
基础信息
"
)
@Log
(
"修改会员
属性
"
)
@RequestMapping
(
value
=
"/update"
)
@ApiOperation
(
"修改会员
基础信息
"
)
@ApiOperation
(
"修改会员
属性
"
)
public
ResultInfo
update
(
@Validated
@RequestBody
MemberProfile
resources
)
{
log
.
info
(
"MemberProfileController ==>> update ==>> resources ===>> [{}]"
,
resources
);
Long
memberId
=
resources
.
getMemberId
();
Assert
.
notNull
(
memberId
,
"memberId can't be null"
);
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
if
(
Objects
.
nonNull
(
memberDTO
))
{
String
code
=
memberDTO
.
getCode
();
if
(
StringUtils
.
isNotEmpty
(
code
))
{
resources
.
setMemberCode
(
code
);
MemberProfileDTO
memberProfile
=
this
.
MemberProfileService
.
findByMemberId
(
memberId
);
if
(
Objects
.
nonNull
(
memberProfile
))
{
resources
.
setId
(
memberProfile
.
getId
());
MemberProfileService
.
update
(
resources
);
}
else
{
resources
.
setId
(
null
);
this
.
create
(
resources
);
}
}
}
return
ResultInfo
.
success
();
}
@Log
(
"修改会员基础信息"
)
@RequestMapping
(
value
=
"/updateMemberProfileAndMember"
)
@ApiOperation
(
"修改会员基础信息"
)
public
ResultInfo
updateMemberProfileAndMember
(
@Validated
@RequestBody
MemberProfile
resources
)
{
log
.
info
(
"MemberProfileController ==>> updateMemberProfileAndMember ==>> resources ===>> [{}]"
,
resources
);
this
.
MemberProfileService
.
updateMemberProfileAndMember
(
resources
);
return
ResultInfo
.
success
();
}
log
.
info
(
"memberProfile ==>> update ==>> resources ===>> [{}]"
,
resources
);
this
.
memberProfileService
.
update
(
resources
);
log
.
info
(
"memberProfile ==>> update ==>> result ===>> [{}]"
,
resources
);
@Log
(
"删除会员基础信息"
)
@RequestMapping
(
value
=
"/delete/{id}"
)
@ApiOperation
(
"删除会员基础信息"
)
public
ResultInfo
delete
(
@PathVariable
Long
resources
)
{
log
.
info
(
"MemberProfileController ==>> delete ==>> resources ===>> [{}]"
,
resources
);
MemberProfileService
.
delete
(
resources
);
return
ResultInfo
.
success
();
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/service/MemberProfileService.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
profile
.
service
;
import
com.topdraw.business.module.member.domain.Member
;
import
com.topdraw.business.module.member.profile.domain.MemberProfile
;
import
com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO
;
import
com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria
;
...
...
@@ -28,33 +29,54 @@ public interface MemberProfileService {
MemberProfile
create
(
MemberProfile
resources
);
/**
*
保存默认会员基本信息
*
默认属性
* @param resources
* @return
*/
MemberProfile
createDefault
(
MemberProfile
resources
);
/**
*
* 通过会员创建默认属性
* @param resources
* @return
*/
MemberProfile
createDefault
(
Member
resources
);
/**
* 通过会员id创建默认属性
* @param resources
* @return
*/
MemberProfile
createDefaultByMemberId
(
Long
resources
);
/**
* 修改
* @param resources
*/
void
update
(
MemberProfile
resources
);
/**
*
*
删除
* @param id
*/
void
delete
(
Long
id
);
/**
*
*
通过会员id查询
* @param memberId
* @return
*/
MemberProfileDTO
findByMemberId
(
Long
memberId
);
/**
*
* 通过会员code查询
* @param memberCode
* @return
*/
MemberProfileDTO
findByMemberCode
(
String
memberCode
);
/**
* 修改会员属性并同步会员信息
* @param resources
*/
void
updateMemberProfileAndMember
(
MemberProfile
resources
);
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/service/dto/MemberProfileDTO.java
View file @
c83b7a4
...
...
@@ -27,10 +27,7 @@ public class MemberProfileDTO implements Serializable {
private
Integer
gender
;
// 生日
private
Timestamp
birthday
;
// 生日字符串
private
String
birthdayStr
;
private
String
birthday
;
// vip
private
Integer
vip
;
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/profile/service/impl/MemberProfileServiceImpl.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
profile
.
service
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.topdraw.aspect.AsyncMqSend
;
import
com.topdraw.business.module.member.domain.Member
;
import
com.topdraw.business.module.member.profile.domain.MemberProfile
;
import
com.topdraw.business.module.member.profile.domain.MemberProfileBuild
;
import
com.topdraw.business.module.member.repository.MemberRepository
;
import
com.topdraw.business.module.member.service.MemberService
;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.exception.BadRequestException
;
import
com.topdraw.util.RedissonUtil
;
import
com.topdraw.utils.StringUtils
;
import
com.topdraw.utils.ValidationUtil
;
import
com.topdraw.business.module.member.profile.repository.MemberProfileRepository
;
import
com.topdraw.business.module.member.profile.service.MemberProfileService
;
import
com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO
;
import
com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria
;
import
com.topdraw.business.module.member.profile.service.mapper.MemberProfileMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.dao.EmptyResultDataAccessException
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.util.Assert
;
import
com.topdraw.utils.PageUtil
;
import
com.topdraw.utils.QueryHelp
;
import
java.nio.charset.StandardCharsets
;
import
java.util.Base64
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.*
;
/**
* @author XiangHan
...
...
@@ -42,50 +39,120 @@ import java.util.Optional;
public
class
MemberProfileServiceImpl
implements
MemberProfileService
{
@Autowired
private
Member
ProfileRepository
MemberProfileRepository
;
private
Member
Service
memberService
;
@Autowired
private
MemberRepository
memberRepository
;
private
RedissonClient
redissonClient
;
@Autowired
private
MemberProfileMapper
M
emberProfileMapper
;
private
MemberProfileMapper
m
emberProfileMapper
;
@Autowired
private
MemberService
memberService
;
private
MemberProfileRepository
memberProfileRepository
;
@Override
public
MemberProfileDTO
findById
(
Long
id
)
{
MemberProfile
MemberProfile
=
M
emberProfileRepository
.
findById
(
id
).
orElseGet
(
MemberProfile:
:
new
);
MemberProfile
MemberProfile
=
this
.
m
emberProfileRepository
.
findById
(
id
).
orElseGet
(
MemberProfile:
:
new
);
ValidationUtil
.
isNull
(
MemberProfile
.
getId
(),
"MemberProfile"
,
"id"
,
id
);
return
MemberProfileMapper
.
toDto
(
MemberProfile
);
return
this
.
memberProfileMapper
.
toDto
(
MemberProfile
);
}
@Override
public
MemberProfileDTO
findByMemberId
(
Long
memberId
)
{
log
.
info
(
"MemberProfileDTO ==>> findByMemberId ==>> resources ===>> [{}]"
,
memberId
);
MemberProfile
memberProfile
=
this
.
memberProfileRepository
.
findByMemberId
(
memberId
).
orElseGet
(
MemberProfile:
:
new
);
ValidationUtil
.
isNull
(
memberProfile
.
getId
(),
"MemberProfile"
,
"memberId"
,
memberId
);
return
this
.
memberProfileMapper
.
toDto
(
memberProfile
);
}
@Override
public
MemberProfileDTO
findByMemberCode
(
String
memberCode
)
{
log
.
info
(
"MemberProfileDTO ==>> findByMemberCode ==>> resources ===>> [{}]"
,
memberCode
);
MemberDTO
memberDTO
=
this
.
memberService
.
findByCode
(
memberCode
);
log
.
info
(
"MemberProfileDTO ==>> findByMemberCode ==>> result ===>> [{}]"
,
memberDTO
);
return
this
.
findByMemberId
(
memberDTO
.
getId
());
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
MemberProfile
create
(
MemberProfile
resources
)
{
log
.
info
(
"MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]"
,
resources
);
MemberProfileRepository
.
save
(
resources
);
Long
memberId
=
resources
.
getMemberId
();
Assert
.
notNull
(
memberId
,
"memberId can't be null !!"
);
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
if
(
Objects
.
nonNull
(
memberDTO
.
getCode
()))
this
.
memberProfileRepository
.
save
(
resources
);
return
resources
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
MemberProfile
createDefault
(
MemberProfile
resources
)
{
MemberProfile
memberProfile
=
MemberProfileBuild
.
build
();
MemberProfile
memberProfile1
=
this
.
MemberProfileRepository
.
save
(
memberProfile
);
return
memberProfile1
;
return
this
.
create
(
memberProfile
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
MemberProfile
createDefault
(
Member
resources
)
{
MemberProfile
memberProfile
=
MemberProfileBuild
.
build
(
resources
);
return
this
.
create
(
memberProfile
);
}
@Override
public
MemberProfile
createDefaultByMemberId
(
Long
resources
)
{
MemberProfile
memberProfile
=
MemberProfileBuild
.
build
(
resources
);
return
this
.
create
(
memberProfile
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
update
(
MemberProfile
resources
)
{
log
.
info
(
"MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]"
,
resources
);
MemberProfile
MemberProfile
=
MemberProfileRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
MemberProfile:
:
new
);
ValidationUtil
.
isNull
(
MemberProfile
.
getId
(),
"MemberProfile"
,
"id"
,
resources
.
getId
());
MemberProfile
.
copy
(
resources
);
Long
memberId
=
resources
.
getMemberId
();
String
memberCode
=
resources
.
getMemberCode
();
if
(
Objects
.
isNull
(
memberId
)
&&
StringUtils
.
isBlank
(
memberCode
))
throw
new
BadRequestException
(
"memberId Or memberCode both null !!"
);
String
realName
=
resources
.
getRealname
();
if
(
StringUtils
.
isNotBlank
(
realName
))
{
resources
.
setRealname
(
new
String
(
Base64
.
getEncoder
().
encode
(
realName
.
getBytes
(
StandardCharsets
.
UTF_8
))));
}
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"memberProfile::update::id"
+
resources
.
getId
());
try
{
RedissonUtil
.
lock
(
rLock
);
this
.
memberService
.
findByIdOrCode
(
memberId
,
memberCode
);
MemberProfileDTO
memberProfile
=
this
.
findByMemberId
(
memberId
);
if
(
Objects
.
nonNull
(
memberProfile
))
{
resources
.
setId
(
memberProfile
.
getId
());
MemberProfile
memberProfile1
=
new
MemberProfile
();
BeanUtils
.
copyProperties
(
memberProfile
,
memberProfile1
);
this
.
memberProfileRepository
.
save
(
memberProfile1
);
// 同步会员信息
this
.
synchronizedMemberData
(
resources
);
}
else
{
resources
.
setId
(
null
);
MemberProfile
memberProfile1
=
MemberProfileBuild
.
build
(
resources
);
this
.
create
(
memberProfile1
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
e
;
}
finally
{
RedissonUtil
.
unlock
(
rLock
);
}
log
.
info
(
"MemberProfileServiceImpl ==>> update ==>> copy ===>> resources ===>> [{}]"
,
resources
);
MemberProfileRepository
.
save
(
MemberProfile
);
}
@Override
...
...
@@ -93,50 +160,56 @@ public class MemberProfileServiceImpl implements MemberProfileService {
@AsyncMqSend
()
public
void
delete
(
Long
id
)
{
Assert
.
notNull
(
id
,
"The given id must not be null!"
);
MemberProfile
MemberProfile
=
M
emberProfileRepository
.
findById
(
id
).
orElseThrow
(
MemberProfile
MemberProfile
=
this
.
m
emberProfileRepository
.
findById
(
id
).
orElseThrow
(
()
->
new
EmptyResultDataAccessException
(
String
.
format
(
"No %s entity "
+
"with id %s "
+
"exists!"
,
MemberProfile
.
class
,
id
),
1
));
MemberProfileRepository
.
delete
(
MemberProfile
);
}
@Override
public
MemberProfileDTO
findByMemberId
(
Long
memberId
)
{
Optional
<
MemberProfile
>
memberProfile
=
MemberProfileRepository
.
findByMemberId
(
memberId
);
if
(
memberProfile
.
isPresent
())
{
MemberProfile
memberProfile1
=
memberProfile
.
get
();
return
MemberProfileMapper
.
toDto
(
memberProfile1
);
}
return
null
;
this
.
memberProfileRepository
.
delete
(
MemberProfile
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateMemberProfileAndMember
(
MemberProfile
resources
)
{
log
.
info
(
"MemberProfileServiceImpl ==>> updateMemberProfileAndMember ==>> resources ===>> [{}]"
,
resources
);
String
realname
=
resources
.
getRealname
();
String
nickNameStr
=
""
;
if
(
StringUtils
.
isNotBlank
(
realname
))
{
byte
[]
encode
=
Base64
.
getEncoder
().
encode
(
realname
.
getBytes
(
StandardCharsets
.
UTF_8
));
nickNameStr
=
new
String
(
encode
);
resources
.
setRealname
(
nickNameStr
);
}
if
(
StringUtils
.
isNotBlank
(
resources
.
getIdCard
()))
{
resources
.
setIdCard
(
"000000000000000000"
);
}
this
.
update
(
resources
);
this
.
MemberProfileRepository
.
save
(
resources
);
}
//修改member相关信息
Long
memberId
=
resources
.
getMemberId
();
Member
member
=
memberRepository
.
findById
(
memberId
).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"member"
,
"id"
,
memberId
);
member
.
setNickname
(
nickNameStr
);
private
void
synchronizedMemberData
(
String
nickName
,
Integer
gender
,
String
birthday
,
String
avatarUrl
,
Member
member
)
{
MemberProfile
memberProfile
=
new
MemberProfile
();
memberProfile
.
setMemberId
(
member
.
getId
());
memberProfile
.
setMemberCode
(
member
.
getCode
());
memberProfile
.
setRealname
(
nickName
);
memberProfile
.
setGender
(
gender
);
memberProfile
.
setBirthday
(
birthday
);
memberProfile
.
setAvatarUrl
(
avatarUrl
);
this
.
synchronizedMemberData
(
memberProfile
);
}
private
void
synchronizedMemberData
(
String
nickName
,
Integer
gender
,
String
birthday
,
String
avatarUrl
,
Long
memberId
,
String
memberCode
)
{
MemberProfile
memberProfile
=
new
MemberProfile
();
memberProfile
.
setMemberId
(
memberId
);
memberProfile
.
setMemberCode
(
memberCode
);
memberProfile
.
setRealname
(
nickName
);
memberProfile
.
setGender
(
gender
);
memberProfile
.
setBirthday
(
birthday
);
memberProfile
.
setAvatarUrl
(
avatarUrl
);
this
.
synchronizedMemberData
(
memberProfile
);
}
private
void
synchronizedMemberData
(
MemberProfile
resources
)
{
MemberDTO
memberDTO
=
this
.
memberService
.
findByIdOrCode
(
resources
.
getMemberId
(),
resources
.
getMemberCode
());
Member
member
=
new
Member
();
BeanUtils
.
copyProperties
(
memberDTO
,
member
);
member
.
setNickname
(
resources
.
getRealname
());
member
.
setGender
(
resources
.
getGender
());
member
.
setBirthday
(
DateUtil
.
format
(
resources
.
getBirthday
(),
"yyyy-MM-dd"
));
member
.
setBirthday
(
resources
.
getBirthday
(
));
member
.
setAvatarUrl
(
resources
.
getAvatarUrl
());
// memberRepository.save(member);
log
.
info
(
"updateMemberProfileAndMember ==>> member ==>> [{}]"
,
member
);
memberService
.
update
(
member
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/relatedinfo/domain/MemberRelatedInfo.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
relatedinfo
.
domain
;
import
com.topdraw.business.module.common.domain.DefaultAsyncMqModule
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
cn.hutool.core.bean.BeanUtil
;
...
...
@@ -24,7 +25,7 @@ import java.time.LocalDate;
@EntityListeners
(
AuditingEntityListener
.
class
)
@Accessors
(
chain
=
true
)
@Table
(
name
=
"uc_member_related_info"
)
public
class
MemberRelatedInfo
implements
Serializable
{
public
class
MemberRelatedInfo
extends
DefaultAsyncMqModule
implements
Serializable
{
// ID
@Id
...
...
@@ -37,9 +38,6 @@ public class MemberRelatedInfo implements Serializable {
@Column
(
name
=
"member_id"
,
nullable
=
false
)
private
Long
memberId
;
@Transient
private
String
memberCode
;
// 人物关系 0:子女;1:父母
@Column
(
name
=
"type"
)
private
Integer
type
;
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/relatedinfo/rest/MemberRelatedInfoController.java
View file @
c83b7a4
package
com
.
topdraw
.
business
.
module
.
member
.
relatedinfo
.
rest
;
import
com.topdraw.aop.log.Log
;
import
com.topdraw.business.common.CreateGroup
;
import
com.topdraw.business.module.member.relatedinfo.domain.UpdateGroup
;
import
com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO
;
import
com.topdraw.business.module.member.service.MemberService
;
...
...
@@ -39,8 +40,8 @@ public class MemberRelatedInfoController {
@Log
(
"新增相关人员"
)
@RequestMapping
(
value
=
"/create"
)
@ApiOperation
(
"新增相关人员"
)
public
ResultInfo
create
(
@Validated
@RequestBody
MemberRelatedInfo
resources
)
{
log
.
info
(
"
MemberRelatedInfoController
==>> create ==>> resources ===>> [{}]"
,
resources
);
public
ResultInfo
create
(
@Validated
(
value
=
{
CreateGroup
.
class
})
@RequestBody
MemberRelatedInfo
resources
)
{
log
.
info
(
"
memberRelatedInfo
==>> create ==>> resources ===>> [{}]"
,
resources
);
String
name
=
resources
.
getName
();
if
(
StringUtils
.
hasText
(
name
))
{
String
nickNameEncode
=
Base64Util
.
encode
(
name
);
...
...
@@ -56,7 +57,7 @@ public class MemberRelatedInfoController {
@ApiOperation
(
"修改相关人员"
)
public
ResultInfo
update
(
@Validated
(
value
=
{
UpdateGroup
.
class
})
@RequestBody
MemberRelatedInfo
resources
)
{
log
.
info
(
"
MemberRelatedInfoController
==>> update ==>> resources ===>> [{}]"
,
resources
);
log
.
info
(
"
memberRelatedInfo
==>> update ==>> resources ===>> [{}]"
,
resources
);
String
name
=
resources
.
getName
();
if
(
StringUtils
.
hasText
(
name
))
{
...
...
@@ -85,18 +86,14 @@ public class MemberRelatedInfoController {
return
ResultInfo
.
success
();
}
@Log
(
"查询指定相关人员"
)
@GetMapping
(
value
=
"/findById/{id}"
)
@ApiOperation
(
"查询指定相关人员"
)
public
ResultInfo
findById
(
@PathVariable
(
"id"
)
Long
id
)
{
return
ResultInfo
.
success
(
this
.
memberRelatedInfoService
.
findById
(
id
));
}
@Log
(
"删除相关人员"
)
@RequestMapping
(
value
=
"/delete/{id}"
)
@ApiOperation
(
"删除相关人员"
)
public
ResultInfo
delete
(
@PathVariable
(
value
=
"id"
)
Long
id
)
{
this
.
memberRelatedInfoService
.
delete
(
id
);
public
ResultInfo
delete
(
@PathVariable
(
value
=
"id"
)
Long
resources
)
{
log
.
info
(
"memberRelatedInfo ==>> delete ==>> resources ===>> [{}]"
,
resources
);
this
.
memberRelatedInfoService
.
delete
(
resources
);
log
.
info
(
"memberRelatedInfo ==>> delete ==>> result ===>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/repository/MemberRepository.java
View file @
c83b7a4
...
...
@@ -16,4 +16,6 @@ public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecif
Optional
<
Member
>
findFirstByCode
(
String
code
);
List
<
Member
>
findByUserIptvId
(
Long
id
);
Optional
<
Member
>
findByIdOrCode
(
Long
id
,
String
code
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/rest/MemberController.java
View file @
c83b7a4
...
...
@@ -5,7 +5,6 @@ import com.topdraw.business.common.CreateGroup;
import
com.topdraw.business.common.UpdateGroup
;
import
com.topdraw.business.module.member.domain.Member
;
import
com.topdraw.business.module.member.service.MemberService
;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.business.module.user.iptv.domain.UserTv
;
import
com.topdraw.business.process.service.UserOperationService
;
import
com.topdraw.common.ResultInfo
;
...
...
@@ -13,13 +12,9 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.Assert
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Objects
;
/**
* @author XiangHan
* @date 2021-10-22
...
...
@@ -36,35 +31,14 @@ public class MemberController {
@Autowired
private
UserOperationService
userTvOperationService
;
@Log
(
"通过id查询会员"
)
@GetMapping
(
value
=
"/findById/{id}"
)
@ApiOperation
(
"通过id查询会员"
)
public
ResultInfo
findById
(
@PathVariable
Long
resources
)
{
log
.
info
(
"member ==>> findById ==>> param ==>> [{}]"
,
resources
);
Assert
.
notNull
(
resources
,
"id can't be null!!"
);
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
resources
);
log
.
info
(
"member ==>> findById ==>> memberDTO ==>> [{}]"
,
memberDTO
);
return
ResultInfo
.
success
(
memberDTO
);
}
@Log
(
"为大屏账户创建会员"
)
@RequestMapping
(
value
=
"/createMemberByUserTv"
)
@ApiOperation
(
"为大屏账户创建会员"
)
public
ResultInfo
createMemberByUserTv
(
@Validated
(
value
=
{
CreateGroup
.
class
})
@RequestBody
UserTv
resources
)
{
// todo 此接口废弃,将移动至UserTvController中,AppEngine也要同步修改
log
.
info
(
"member ==>> createMemberByUserTv ==>> param ==>> [{}]"
,
resources
);
String
platformAccount
=
resources
.
getPlatformAccount
();
Assert
.
notNull
(
platformAccount
,
"The given platformAccount must not be null!"
);
boolean
result
=
this
.
userTvOperationService
.
createMemberByUserTv
(
resources
);
log
.
info
(
"member ==>> createMemberByUserTv ==>> result ==>> [{}]"
,
result
);
return
ResultInfo
.
success
(
result
);
}
...
...
@@ -73,20 +47,18 @@ public class MemberController {
@ApiOperation
(
"新增会员"
)
public
ResultInfo
create
(
@Validated
@RequestBody
Member
resources
)
{
log
.
info
(
"member ==>> create ==>> param ==>> [{}]"
,
resources
);
Long
id
=
memberService
.
create
(
resources
);
log
.
info
(
"member ==>> create ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
(
id
);
}
@Log
(
"手动修改vip"
)
@RequestMapping
(
value
=
"/doUpdateVip"
)
@RequestMapping
(
value
=
"/doUpdateVip
ByCode
"
)
@ApiOperation
(
"手动修改vip"
)
public
ResultInfo
doUpdateVipByCode
(
@Validated
@RequestBody
Member
resources
)
{
// TODO mall-service需要修改
log
.
info
(
"member ==>> create ==>> param ==>> [{}]"
,
resources
);
public
ResultInfo
doUpdateVipByCode
(
@Validated
(
value
=
{
UpdateGroup
.
class
})
@RequestBody
Member
resources
)
{
log
.
info
(
"member ==>> doUpdateVipByCode ==>> param ==>> [{}]"
,
resources
);
memberService
.
update
(
resources
);
log
.
info
(
"member ==>> doUpdateVipByCode ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
...
...
@@ -94,22 +66,9 @@ public class MemberController {
@RequestMapping
(
value
=
"/update"
)
@ApiOperation
(
"修改会员"
)
public
ResultInfo
update
(
@Validated
(
value
=
{
UpdateGroup
.
class
})
@RequestBody
Member
resources
)
{
Long
memberId
=
resources
.
getId
();
Assert
.
notNull
(
memberId
,
"memberId can't be null"
);
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
if
(
Objects
.
nonNull
(
memberDTO
))
{
String
code
=
memberDTO
.
getCode
();
Assert
.
notNull
(
code
,
"code can't be null"
);
resources
.
setCode
(
code
);
memberService
.
update
(
resources
);
}
log
.
info
(
"member ==>> update ==>> param ==>> [{}]"
,
resources
);
memberService
.
update
(
resources
);
log
.
info
(
"member ==>> update ==>> result ==>> [{}]"
,
resources
);
return
ResultInfo
.
success
();
}
@Log
(
"根据标识查询"
)
@GetMapping
(
value
=
"/getByCode/{code}"
)
@ApiOperation
(
value
=
"根据标识查询"
)
public
ResultInfo
getByCode
(
@PathVariable
String
code
)
{
return
ResultInfo
.
success
(
memberService
.
getByCode
(
code
));
}
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/service/MemberService.java
View file @
c83b7a4
...
...
@@ -2,11 +2,8 @@ package com.topdraw.business.module.member.service;
import
com.topdraw.business.module.member.domain.Member
;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.business.module.member.service.dto.MemberQueryCriteria
;
import
org.springframework.data.domain.Pageable
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author XiangHan
...
...
@@ -15,13 +12,6 @@ import java.util.Map;
public
interface
MemberService
{
/**
* 数据不分页
* @param criteria 条件参数
* @return List<MemberDTO>
*/
List
<
MemberDTO
>
queryAll
(
MemberQueryCriteria
criteria
);
/**
* 根据ID查询
* @param id ID
* @return MemberDTO
...
...
@@ -29,6 +19,21 @@ public interface MemberService {
MemberDTO
findById
(
Long
id
);
/**
* 通过code查询会员
* @param code 会员编码
* @return MemberDTO
*/
MemberDTO
findByCode
(
String
code
);
/**
*
* @param id
* @param code
* @return
*/
MemberDTO
findByIdOrCode
(
Long
id
,
String
code
);
/**
* 保存
* @param resources
* @return Long id
...
...
@@ -56,26 +61,13 @@ public interface MemberService {
void
unbind
(
Member
resources
);
/**
* 删除
* @param id
*/
void
delete
(
Long
id
);
/**
* Code校验
* @param code
* @return MemberDTO
*/
MemberDTO
getByCode
(
String
code
);
/**
*
* @param member
* 修改会员积分
* @param member 会员
*/
void
doUpdateMemberPoints
(
Member
member
);
/**
* 查询
数据分页
* 查询
绑定了大屏会员列表
* @param id 条件参数
* @return Map<String,Object>
*/
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/service/impl/MemberServiceImpl.java
View file @
c83b7a4
...
...
@@ -2,26 +2,24 @@ package com.topdraw.business.module.member.service.impl;
import
com.topdraw.aspect.AsyncMqSend
;
import
com.topdraw.business.module.member.domain.Member
;
import
com.topdraw.business.module.member.domain.MemberBuilder
;
import
com.topdraw.business.module.member.profile.service.MemberProfileService
;
import
com.topdraw.business.module.member.repository.MemberRepository
;
import
com.topdraw.business.module.member.service.MemberService
;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.business.module.member.service.dto.MemberQueryCriteria
;
import
com.topdraw.business.module.member.service.mapper.MemberMapper
;
import
com.topdraw.
util.IdWorker
;
import
com.topdraw.
exception.BadRequestException
;
import
com.topdraw.util.RedissonUtil
;
import
com.topdraw.utils.QueryHelp
;
import
com.topdraw.utils.StringUtils
;
import
com.topdraw.utils.ValidationUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.dao.EmptyResultDataAccessException
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.nio.charset.StandardCharsets
;
import
java.util.*
;
/**
...
...
@@ -39,25 +37,47 @@ public class MemberServiceImpl implements MemberService {
private
RedissonClient
redissonClient
;
@Autowired
private
MemberRepository
memberRepository
;
@Autowired
private
MemberProfileService
memberProfileService
;
@Override
public
List
<
MemberDTO
>
queryAll
(
MemberQueryCriteria
criteria
)
{
return
memberMapper
.
toDto
(
memberRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
public
MemberDTO
findById
(
Long
id
)
{
Member
member
=
this
.
memberRepository
.
findById
(
id
).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"Member"
,
"id"
,
id
);
return
memberMapper
.
toDto
(
member
);
}
@Override
public
MemberDTO
findBy
Id
(
Long
id
)
{
Member
member
=
memberRepository
.
findById
(
id
).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"Member"
,
"id"
,
id
);
public
MemberDTO
findBy
Code
(
String
code
)
{
Member
member
=
this
.
memberRepository
.
findFirstByCode
(
code
).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"Member"
,
"id"
,
code
);
return
memberMapper
.
toDto
(
member
);
}
@Override
public
MemberDTO
findByIdOrCode
(
Long
id
,
String
code
)
{
Member
member
=
this
.
memberRepository
.
findByIdOrCode
(
id
,
code
).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"Member"
,
"param"
,
code
);
return
memberMapper
.
toDto
(
member
);
}
@Override
public
List
<
MemberDTO
>
findByUserIptvId
(
Long
id
)
{
List
<
Member
>
memberList
=
this
.
memberRepository
.
findByUserIptvId
(
id
);
return
memberMapper
.
toDto
(
memberList
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
Long
create
(
Member
resources
)
{
Member
member
=
this
.
checkMemberData
(
resources
);
memberRepository
.
save
(
member
);
Member
member
=
MemberBuilder
.
build
(
resources
);
Long
memberId
=
this
.
save
(
member
);
if
(
Objects
.
nonNull
(
memberId
))
// 保存会员属性
this
.
memberProfileService
.
createDefault
(
member
);
return
member
.
getId
();
}
...
...
@@ -65,50 +85,28 @@ public class MemberServiceImpl implements MemberService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
Member
createAndReturnMember
(
Member
resources
)
{
// 检查并初始化数据
Member
member
=
this
.
checkMemberData
(
resources
);
memberRepository
.
save
(
member
);
Member
member
=
MemberBuilder
.
build
(
resources
);
this
.
create
(
member
);
return
resources
;
}
private
Member
checkMemberData
(
Member
member
)
{
Long
defaultValue
=
0L
;
String
code
=
member
.
getCode
();
member
.
setCode
(
StringUtils
.
isEmpty
(
code
)?
String
.
valueOf
(
IdWorker
.
generator
()):
code
);
Integer
gender
=
member
.
getGender
();
member
.
setGender
(
Objects
.
nonNull
(
gender
)
?
gender
:
0
);
Integer
type
=
member
.
getType
();
member
.
setType
(
Objects
.
nonNull
(
type
)
?
type:
-
1
);
Integer
status
=
member
.
getStatus
();
member
.
setStatus
(
Objects
.
nonNull
(
status
)
?
status:
1
);
Integer
vip
=
member
.
getVip
();
member
.
setVip
(
Objects
.
nonNull
(
vip
)
?
vip:
0
);
Integer
level
=
member
.
getLevel
();
member
.
setLevel
(
Objects
.
nonNull
(
level
)
?
level:
1
);
member
.
setExp
(
defaultValue
);
member
.
setPoints
(
defaultValue
);
member
.
setDuePoints
(
defaultValue
);
member
.
setCouponAmount
(
defaultValue
);
member
.
setDueCouponAmount
(
defaultValue
);
member
.
setBlackStatus
(
0L
);
String
nickname
=
member
.
getNickname
();
if
(
StringUtils
.
isNotEmpty
(
nickname
))
{
String
base64Nickname
=
new
String
(
Base64
.
getEncoder
().
encode
(
nickname
.
getBytes
(
StandardCharsets
.
UTF_8
)));
member
.
setNickname
(
base64Nickname
);
}
return
member
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
update
(
Member
resources
)
{
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::code"
+
resources
.
getCode
().
toString
());
log
.
info
(
"MemberServiceImpl ==>> update ==>> resources ==>> [{}]"
,
resources
);
String
code
=
resources
.
getCode
();
if
(
StringUtils
.
isBlank
(
code
))
throw
new
BadRequestException
(
"memberCode can't be null!!"
);
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::code"
+
resources
.
getCode
());
try
{
RedissonUtil
.
lock
(
rLock
);
Member
member
=
memberRepository
.
findById
(
resources
.
getId
()
).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
get
Id
(),
"Member"
,
"id"
,
resources
.
getId
());
Member
member
=
this
.
memberRepository
.
findFirstByCode
(
code
).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
get
Code
(),
"Member"
,
"code"
,
resources
.
getCode
());
member
.
copy
(
resources
);
this
.
save
(
member
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -122,10 +120,10 @@ public class MemberServiceImpl implements MemberService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
unbind
(
Member
resources
)
{
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::code"
+
resources
.
get
Id
().
toString
());
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::code"
+
resources
.
get
Code
());
try
{
RedissonUtil
.
lock
(
rLock
);
Member
member
=
memberRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Member:
:
new
);
Member
member
=
this
.
memberRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"Member"
,
"id"
,
resources
.
getId
());
member
.
copy
(
resources
);
this
.
save
(
member
);
...
...
@@ -137,32 +135,10 @@ public class MemberServiceImpl implements MemberService {
}
}
private
void
save
(
Member
member
){
memberRepository
.
save
(
member
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
delete
(
Long
id
)
{
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::delete::code"
+
id
);
try
{
RedissonUtil
.
lock
(
rLock
);
Member
member
=
memberRepository
.
findById
(
id
).
orElseThrow
(
()
->
new
EmptyResultDataAccessException
(
String
.
format
(
"No %s entity "
+
"with id %s "
+
"exists!"
,
Member
.
class
,
id
),
1
));
//memberRepository.delete(member);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
e
;
}
finally
{
RedissonUtil
.
unlock
(
rLock
);
}
}
@Override
public
MemberDTO
getByCode
(
String
code
)
{
return
StringUtils
.
isNotEmpty
(
code
)
?
memberMapper
.
toDto
(
memberRepository
.
findFirstByCode
(
code
).
orElseGet
(
Member:
:
new
))
:
new
MemberDTO
();
@Transactional
(
propagation
=
Propagation
.
REQUIRES_NEW
)
public
Long
save
(
Member
member
){
this
.
memberRepository
.
save
(
member
);
return
member
.
getId
();
}
@Override
...
...
@@ -172,7 +148,7 @@ public class MemberServiceImpl implements MemberService {
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::code"
+
resources
.
getId
().
toString
());
try
{
RedissonUtil
.
lock
(
rLock
);
Member
member
=
memberRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Member:
:
new
);
Member
member
=
this
.
memberRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"Member"
,
"id"
,
resources
.
getId
());
member
.
copy
(
resources
);
this
.
save
(
member
);
...
...
@@ -184,10 +160,6 @@ public class MemberServiceImpl implements MemberService {
}
}
@Override
public
List
<
MemberDTO
>
findByUserIptvId
(
Long
id
)
{
List
<
Member
>
memberList
=
this
.
memberRepository
.
findByUserIptvId
(
id
);
return
memberMapper
.
toDto
(
memberList
);
}
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/user/iptv/service/impl/UserTvServiceImpl.java
View file @
c83b7a4
...
...
@@ -65,7 +65,7 @@ public class UserTvServiceImpl implements UserTvService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
public
Long
create
(
UserTv
resources
)
{
MemberDTO
memberDTO
=
memberService
.
get
ByCode
(
resources
.
getMemberCode
());
MemberDTO
memberDTO
=
memberService
.
find
ByCode
(
resources
.
getMemberCode
());
if
(
Objects
.
nonNull
(
memberDTO
))
{
Long
id
=
memberDTO
.
getId
();
resources
.
setMemberId
(
id
);
...
...
member-service-impl/src/main/java/com/topdraw/business/process/rest/UserOperationController.java
View file @
c83b7a4
...
...
@@ -163,7 +163,7 @@ public class UserOperationController {
String
memberCode1
=
resources
.
getMemberCode
();
if
(
Objects
.
nonNull
(
memberCode1
))
{
MemberDTO
memberDTO
=
this
.
memberService
.
get
ByCode
(
memberCode1
);
MemberDTO
memberDTO
=
this
.
memberService
.
find
ByCode
(
memberCode1
);
String
memberCode
=
memberDTO
.
getCode
();
if
(
StringUtils
.
isNotBlank
(
memberCode
))
{
userTv
.
setMemberCode
(
memberCode
);
...
...
@@ -188,7 +188,7 @@ public class UserOperationController {
String
memberCode1
=
resources
.
getMemberCode
();
if
(
Objects
.
nonNull
(
memberCode1
))
{
MemberDTO
memberDTO
=
this
.
memberService
.
get
ByCode
(
memberCode1
);
MemberDTO
memberDTO
=
this
.
memberService
.
find
ByCode
(
memberCode1
);
String
memberCode
=
memberDTO
.
getCode
();
if
(
StringUtils
.
isNotBlank
(
memberCode
))
{
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/MemberOperationServiceImpl.java
View file @
c83b7a4
...
...
@@ -232,7 +232,7 @@ public class MemberOperationServiceImpl implements MemberOperationService {
// 头像
memberProfileDTO
.
setAvatarUrl
(
memberDTO
.
getAvatarUrl
());
// 生日
memberProfileDTO
.
setBirthday
Str
(
memberDTO
.
getBirthday
());
memberProfileDTO
.
setBirthday
(
memberDTO
.
getBirthday
());
// 性别
memberProfileDTO
.
setGender
(
memberDTO
.
getGender
());
// 昵称
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/TaskOperationServiceImpl.java
View file @
c83b7a4
...
...
@@ -102,7 +102,7 @@ public class TaskOperationServiceImpl implements TaskOperationService {
String
memberCode
=
msgData
.
getMemberCode
();
Long
memberId
=
msgData
.
getMemberId
();
if
(
StringUtils
.
hasText
(
memberCode
))
{
MemberDTO
memberDTO
=
this
.
memberService
.
get
ByCode
(
memberCode
);
MemberDTO
memberDTO
=
this
.
memberService
.
find
ByCode
(
memberCode
);
memberId
=
memberDTO
.
getId
();
}
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/UserOperationServiceImpl.java
View file @
c83b7a4
...
...
@@ -912,7 +912,7 @@ public class UserOperationServiceImpl implements UserOperationService {
* @return
*/
private
MemberDTO
findMemberByMemberCode
(
String
memberCode
)
{
return
this
.
memberService
.
get
ByCode
(
memberCode
);
return
this
.
memberService
.
find
ByCode
(
memberCode
);
}
/**
...
...
@@ -929,7 +929,7 @@ public class UserOperationServiceImpl implements UserOperationService {
String
memberCode
=
resources
.
getMemberCode
();
// 大屏会员
List
<
MemberDTO
>
memberDTOS
=
this
.
findMemberByCodeAndUserIptvId
(
id
,
memberCode
);
MemberDTO
memberDTOS
=
this
.
findMemberByCodeAndUserIptvId
(
id
,
memberCode
);
// 解绑(置空大屏信息)
this
.
resetIptvColumn
(
memberDTOS
);
...
...
@@ -968,18 +968,16 @@ public class UserOperationServiceImpl implements UserOperationService {
* 解绑(置空大屏信息)
* @param memberDTOS
*/
private
void
resetIptvColumn
(
List
<
MemberDTO
>
memberDTOS
)
{
private
void
resetIptvColumn
(
MemberDTO
memberDTOS
)
{
// 若无关系,不做处理
if
(
CollUtil
.
isEmpty
(
memberDTOS
))
if
(
Objects
.
nonNull
(
memberDTOS
))
return
;
Member
member
=
new
Member
();
memberDTOS
.
get
(
0
).
setBindIptvTime
(
null
);
memberDTOS
.
get
(
0
).
setUserIptvId
(
null
);
memberDTOS
.
get
(
0
).
setBindIptvPlatformType
(
null
);
BeanUtils
.
copyProperties
(
memberDTOS
.
get
(
0
),
member
);
memberDTOS
.
setBindIptvTime
(
null
);
memberDTOS
.
setUserIptvId
(
null
);
memberDTOS
.
setBindIptvPlatformType
(
null
);
BeanUtils
.
copyProperties
(
memberDTOS
,
member
);
this
.
memberService
.
unbind
(
member
);
}
...
...
@@ -989,12 +987,9 @@ public class UserOperationServiceImpl implements UserOperationService {
* @param memberCode 会员编码
* @return
*/
private
List
<
MemberDTO
>
findMemberByCodeAndUserIptvId
(
Long
tvUserId
,
String
memberCode
)
{
MemberQueryCriteria
memberQueryCriteria
=
new
MemberQueryCriteria
();
memberQueryCriteria
.
setCode
(
memberCode
);
memberQueryCriteria
.
setUserIptvId
(
tvUserId
);
List
<
MemberDTO
>
memberDTOS
=
memberService
.
queryAll
(
memberQueryCriteria
);
return
memberDTOS
;
private
MemberDTO
findMemberByCodeAndUserIptvId
(
Long
tvUserId
,
String
memberCode
)
{
MemberDTO
memberDTO
=
memberService
.
findByCode
(
memberCode
);
return
memberDTO
;
}
/**
...
...
@@ -1567,7 +1562,7 @@ public class UserOperationServiceImpl implements UserOperationService {
@Override
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
void
bind
(
String
memberCode
,
String
platformAccount
)
{
MemberDTO
memberDTO
=
this
.
memberService
.
get
ByCode
(
memberCode
);
MemberDTO
memberDTO
=
this
.
memberService
.
find
ByCode
(
memberCode
);
this
.
bind
(
memberDTO
,
platformAccount
);
}
...
...
@@ -1582,7 +1577,7 @@ public class UserOperationServiceImpl implements UserOperationService {
@Override
public
UserTvDTO
bind
(
MemberDTO
memberDTO
,
String
platformAccount
)
{
MemberDTO
memberDTO1
=
this
.
memberService
.
get
ByCode
(
memberDTO
.
getCode
());
MemberDTO
memberDTO1
=
this
.
memberService
.
find
ByCode
(
memberDTO
.
getCode
());
if
(
Objects
.
nonNull
(
memberDTO1
.
getUserIptvId
()))
{
UserTvDTO
userTvDTO
=
this
.
userTvService
.
findById
(
memberDTO1
.
getUserIptvId
());
return
userTvDTO
;
...
...
member-service-impl/src/main/java/com/topdraw/exception/GlobeExceptionCode.java
0 → 100644
View file @
c83b7a4
package
com
.
topdraw
.
exception
;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/3/10 17:16
* @version: :
* @modified By:
* @since : modified in 2022/3/10 17:16
*/
public
interface
GlobeExceptionCode
{
// 会员信息
Integer
MEMBER_CODE_IS_NULL
=
000100001
;
}
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/MemberServiceTest.java
View file @
c83b7a4
...
...
@@ -16,9 +16,9 @@ public class MemberServiceTest extends BaseTest {
@Test
public
void
findById
(){
Long
memberId
=
1L
;
/*
Long memberId = 1L;
ResultInfo memberDTO = this.memberController.findById(memberId);
LOG
.
info
(
"=====>>>"
+
memberDTO
);
LOG.info("=====>>>" + memberDTO);
*/
}
}
...
...
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/profile/MemberProfileServiceTest.java
View file @
c83b7a4
...
...
@@ -19,7 +19,7 @@ public class MemberProfileServiceTest extends BaseTest {
MemberProfile
resources
=
new
MemberProfile
();
resources
.
setMemberId
(
memberId
);
resources
.
setIdCard
(
"422827199208010713"
);
resources
.
setBirthday
(
TimestampUtil
.
now
());
resources
.
setBirthday
(
TimestampUtil
.
now
()
.
toString
()
);
resources
.
setGender
(
1
);
resources
.
setDescription
(
""
);
resources
.
setRealname
(
""
);
...
...
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/rest/MemberAddressControllerTest.java
View file @
c83b7a4
...
...
@@ -57,14 +57,14 @@ public class MemberAddressControllerTest extends BaseTest {
memberAddress
.
setAddress
(
""
);
memberAddress
.
setZipCode
(
""
);
String
s
=
JSON
.
toJSONString
(
memberAddress
);
ResultInfo
byId
=
this
.
memberAddressController
.
create
(
memberAddress
);
LOG
.
info
(
"===>>>"
+
byId
);
//
ResultInfo byId = this.memberAddressController.create(memberAddress);
//
LOG.info("===>>>"+byId);
}
@Test
public
void
findById
(){
ResultInfo
byId
=
this
.
memberAddressController
.
findById
(
1L
);
LOG
.
info
(
"===>>>"
+
byId
);
//
ResultInfo byId = this.memberAddressController.findById(1L);
//
LOG.info("===>>>"+byId);
}
@Test
...
...
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/rest/MemberProfileControllerTest.java
View file @
c83b7a4
...
...
@@ -19,7 +19,7 @@ public class MemberProfileControllerTest extends BaseTest {
MemberProfile
resources
=
new
MemberProfile
();
resources
.
setMemberId
(
memberId
);
resources
.
setIdCard
(
"422827199208010713"
);
resources
.
setBirthday
(
TimestampUtil
.
now
());
resources
.
setBirthday
(
TimestampUtil
.
now
()
.
toString
()
);
resources
.
setGender
(
1
);
resources
.
setDescription
(
""
);
resources
.
setRealname
(
""
);
...
...
@@ -29,7 +29,7 @@ public class MemberProfileControllerTest extends BaseTest {
resources
.
setEmail
(
""
);
resources
.
setDistrict
(
""
);
String
s
=
JSON
.
toJSONString
(
resources
);
this
.
memberProfileController
.
create
(
resources
);
//
this.memberProfileController.create(resources);
LOG
.
info
(
"=====>>>"
+
s
);
}
...
...
@@ -48,7 +48,7 @@ public class MemberProfileControllerTest extends BaseTest {
@Test
public
void
delete
(){
Long
memberId
=
1L
;
this
.
memberProfileController
.
delete
(
memberId
);
//
this.memberProfileController.delete(memberId);
LOG
.
info
(
"=====>>>s=====>>>"
);
}
...
...
member-service-impl/src/test/java/com/topdraw/test/business/basicdata/member/rest/MemberRelatedInfoControllerTest.java
View file @
c83b7a4
...
...
@@ -60,8 +60,8 @@ public class MemberRelatedInfoControllerTest extends BaseTest {
@Test
public
void
findById
(){
ResultInfo
byId
=
this
.
memberRelatedInfoController
.
findById
(
1L
);
LOG
.
info
(
"===>>>"
+
byId
);
//
ResultInfo byId = this.memberRelatedInfoController.findById(1L);
//
LOG.info("===>>>"+byId);
}
@Test
...
...
Please
register
or
sign in
to post a comment