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
cdf13700
...
cdf13700e7b76d8b38e3f850cf09f48b958136bc
authored
2022-03-08 09:20:30 +0800
by
xianghan
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1.优化、规范会员接口
1 parent
4042c6ad
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
118 additions
and
91 deletions
member-service-impl/src/main/java/com/topdraw/business/common/CreateGroup.java
member-service-impl/src/main/java/com/topdraw/business/common/UpdateGroup.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/group/rest/MemberGroupController.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/domain/UserTv.java
member-service-impl/src/main/java/com/topdraw/business/common/CreateGroup.java
0 → 100644
View file @
cdf1370
package
com
.
topdraw
.
business
.
common
;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/3/7 21:20
* @version: :
* @modified By:
* @since : modified in 2022/3/7 21:20
*/
public
interface
CreateGroup
{
}
member-service-impl/src/main/java/com/topdraw/business/common/UpdateGroup.java
0 → 100644
View file @
cdf1370
package
com
.
topdraw
.
business
.
common
;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/3/7 21:20
* @version: :
* @modified By:
* @since : modified in 2022/3/7 21:20
*/
public
interface
UpdateGroup
{
}
member-service-impl/src/main/java/com/topdraw/business/module/member/domain/Member.java
View file @
cdf1370
...
...
@@ -2,6 +2,7 @@ package com.topdraw.business.module.member.domain;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
com.topdraw.business.module.member.relatedinfo.domain.UpdateGroup
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.springframework.data.annotation.CreatedDate
;
...
...
@@ -9,6 +10,7 @@ import org.springframework.data.annotation.LastModifiedDate;
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
;
...
...
@@ -40,6 +42,7 @@ public class Member implements Serializable {
/** 标识 */
@Column
(
name
=
"code"
,
nullable
=
false
)
@NotNull
(
message
=
"code can't be null!!"
,
groups
=
{
UpdateGroup
.
class
})
private
String
code
;
/** 类型 1:大屏;2:小屏 */
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/group/rest/MemberGroupController.java
View file @
cdf1370
...
...
@@ -14,9 +14,9 @@ import io.swagger.annotations.*;
* @author XiangHan
* @date 2021-11-17
*/
@Api
(
tags
=
"
MemberGroup
管理"
)
@Api
(
tags
=
"
会员分组
管理"
)
@RestController
@RequestMapping
(
"/
api/M
emberGroup"
)
@RequestMapping
(
"/
ucEngine/api/m
emberGroup"
)
public
class
MemberGroupController
{
@Autowired
...
...
@@ -29,27 +29,27 @@ public class MemberGroupController {
}
@GetMapping
(
value
=
"/all"
)
@ApiOperation
(
"查询所有
MemberGroup
"
)
@ApiOperation
(
"查询所有
会员分组
"
)
public
ResultInfo
getMemberGroups
(
MemberGroupQueryCriteria
criteria
)
{
return
ResultInfo
.
success
(
MemberGroupService
.
queryAll
(
criteria
));
}
@PostMapping
@ApiOperation
(
"新增
MemberGroup
"
)
@ApiOperation
(
"新增
会员分组
"
)
public
ResultInfo
create
(
@Validated
@RequestBody
MemberGroup
resources
)
{
MemberGroupService
.
create
(
resources
);
return
ResultInfo
.
success
();
}
@PutMapping
@ApiOperation
(
"修改
MemberGroup
"
)
@ApiOperation
(
"修改
会员分组
"
)
public
ResultInfo
update
(
@Validated
@RequestBody
MemberGroup
resources
)
{
MemberGroupService
.
update
(
resources
);
return
ResultInfo
.
success
();
}
@DeleteMapping
(
value
=
"/{id}"
)
@ApiOperation
(
"删除
MemberGroup
"
)
@ApiOperation
(
"删除
会员分组
"
)
public
ResultInfo
delete
(
@PathVariable
Long
id
)
{
MemberGroupService
.
delete
(
id
);
return
ResultInfo
.
success
();
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/rest/MemberController.java
View file @
cdf1370
package
com
.
topdraw
.
business
.
module
.
member
.
rest
;
import
com.topdraw.annotation.AnonymousAccess
;
import
com.topdraw.aop.log.Log
;
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
;
import
com.topdraw.util.Base64Util
;
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.util.StringUtils
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -24,7 +24,7 @@ import java.util.Objects;
* @author XiangHan
* @date 2021-10-22
*/
@Api
(
tags
=
"
Member
管理"
)
@Api
(
tags
=
"
会员
管理"
)
@RestController
@RequestMapping
(
"/ucEngine/api/member"
)
@CrossOrigin
...
...
@@ -33,66 +33,80 @@ public class MemberController {
@Autowired
private
MemberService
memberService
;
@Autowired
private
UserOperationService
userTvOperationService
;
@Log
(
"通过id查询会员"
)
@GetMapping
(
value
=
"/findById/{id}"
)
@ApiOperation
(
"新增UserTv会员"
)
public
ResultInfo
findById
(
@PathVariable
Long
id
)
{
MemberDTO
memberDTO
=
this
.
memberService
.
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
(
"为大屏账户创建会员"
)
@PostMapping
(
value
=
"/createMemberByUserTv"
)
@ApiOperation
(
"新增UserTv会员"
)
public
ResultInfo
createMemberByUserTv
(
@Validated
@RequestBody
UserTv
resources
)
{
@ApiOperation
(
"为大屏账户创建会员"
)
public
ResultInfo
createMemberByUserTv
(
@Validated
(
value
=
{
CreateGroup
.
class
})
@RequestBody
UserTv
resources
)
{
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
);
}
@Log
(
"新增会员"
)
@PostMapping
(
value
=
"/create"
)
@ApiOperation
(
"新增Member"
)
@AnonymousAccess
@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"
)
@PostMapping
(
value
=
"/doUpdateVip"
)
@ApiOperation
(
"修改Member等级"
)
public
ResultInfo
doUpdateVip
(
@RequestBody
Member
member
)
{
memberService
.
update
(
member
);
@ApiOperation
(
"手动修改vip"
)
public
ResultInfo
doUpdateVip
(
@Validated
@RequestBody
Member
resources
)
{
// TODO mall-service需要修改
log
.
info
(
"member ==>> create ==>> param ==>> [{}]"
,
resources
);
memberService
.
update
(
resources
);
return
ResultInfo
.
success
();
}
@Log
(
"修改会员"
)
@PutMapping
(
value
=
"/update"
)
@ApiOperation
(
"修改Member"
)
@AnonymousAccess
public
ResultInfo
update
(
@Validated
@RequestBody
Member
resources
)
{
log
.
info
(
"member ==>> update =>> [{}]"
,
resources
);
@ApiOperation
(
"修改会员"
)
public
ResultInfo
update
(
@Validated
(
value
=
{
UpdateGroup
.
class
})
@RequestBody
Member
resources
)
{
Long
memberId
=
resources
.
getId
();
String
code1
=
resources
.
getCode
(
);
MemberDTO
memberDTO
=
null
;
if
(
StringUtils
.
hasText
(
code1
))
{
memberDTO
=
this
.
memberService
.
getByCode
(
code1
);
if
(
Objects
.
isNull
(
memberDTO
.
getCode
())
&&
Objects
.
nonNull
(
memberId
))
{
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
}
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
);
}
String
code
=
memberDTO
.
getCode
();
log
.
info
(
"member ==>> memberDTO =>> [{}]"
,
memberDTO
);
Assert
.
notNull
(
code
,
"code can't be null"
);
resources
.
setCode
(
code
);
memberService
.
update
(
resources
);
return
ResultInfo
.
success
();
}
@Log
(
"根据标识查询"
)
@GetMapping
(
value
=
"/getByCode/{code}"
)
@ApiOperation
(
value
=
"根据标识查询"
)
public
ResultInfo
getByCode
(
@PathVariable
String
code
)
{
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/service/MemberService.java
View file @
cdf1370
package
com
.
topdraw
.
business
.
module
.
member
.
service
;
import
com.topdraw.aspect.AsyncMqSend
;
import
com.topdraw.business.module.member.domain.Member
;
import
com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO
;
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
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -18,15 +15,7 @@ import java.util.Map;
public
interface
MemberService
{
/**
* 查询数据分页
* @param criteria 条件参数
* @param pageable 分页参数
* @return Map<String,Object>
*/
Map
<
String
,
Object
>
queryAll
(
MemberQueryCriteria
criteria
,
Pageable
pageable
);
/**
* 查询所有数据不分页
* 数据不分页
* @param criteria 条件参数
* @return List<MemberDTO>
*/
...
...
@@ -40,25 +29,34 @@ public interface MemberService {
MemberDTO
findById
(
Long
id
);
/**
*
*
保存
* @param resources
* @return
* @return
Long id
*/
Long
create
(
Member
resources
);
/**
* 创建并返回会员
* @param resources 会员
* @return Member
*/
Member
createAndReturnMember
(
Member
resources
);
/**
*
*
修改会员
* @param resources
*/
void
update
(
Member
resources
);
/**
* 解绑
* @param resources 会员
* @return Map<String,Object>
*/
void
unbind
(
Member
resources
);
/**
*
*
删除
* @param id
*/
void
delete
(
Long
id
);
...
...
@@ -76,5 +74,10 @@ public interface MemberService {
*/
void
doUpdateMemberPoints
(
Member
member
);
/**
* 查询数据分页
* @param id 条件参数
* @return Map<String,Object>
*/
List
<
MemberDTO
>
findByUserIptvId
(
Long
id
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/service/impl/MemberServiceImpl.java
View file @
cdf1370
...
...
@@ -9,7 +9,6 @@ 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.util.RedissonUtil
;
import
com.topdraw.utils.PageUtil
;
import
com.topdraw.utils.QueryHelp
;
import
com.topdraw.utils.StringUtils
;
import
com.topdraw.utils.ValidationUtil
;
...
...
@@ -17,15 +16,10 @@ 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.cache.annotation.CacheEvict
;
import
org.springframework.dao.EmptyResultDataAccessException
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.PlatformTransactionManager
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.Assert
;
import
java.nio.charset.StandardCharsets
;
import
java.util.*
;
...
...
@@ -40,26 +34,11 @@ import java.util.*;
public
class
MemberServiceImpl
implements
MemberService
{
@Autowired
private
MemberRepository
memberRepository
;
@Autowired
private
MemberMapper
memberMapper
;
@Autowired
private
RedissonClient
redissonClient
;
@Autowired
PlatformTransactionManager
platformTransactionManager
;
@Autowired
private
com
.
topdraw
.
business
.
module
.
user
.
iptv
.
service
.
UserTvService
UserTvService
;
@Override
public
Map
<
String
,
Object
>
queryAll
(
MemberQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
Member
>
page
=
memberRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
memberMapper:
:
toDto
));
}
private
MemberRepository
memberRepository
;
@Override
public
List
<
MemberDTO
>
queryAll
(
MemberQueryCriteria
criteria
)
{
...
...
@@ -71,12 +50,11 @@ public class MemberServiceImpl implements MemberService {
Member
member
=
memberRepository
.
findById
(
id
).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"Member"
,
"id"
,
id
);
return
memberMapper
.
toDto
(
member
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
@AsyncMqSend
()
public
Long
create
(
Member
resources
)
{
Member
member
=
this
.
checkMemberData
(
resources
);
memberRepository
.
save
(
member
);
...
...
@@ -85,8 +63,9 @@ public class MemberServiceImpl implements MemberService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
@AsyncMqSend
()
public
Member
createAndReturnMember
(
Member
resources
)
{
// 检查并初始化数据
Member
member
=
this
.
checkMemberData
(
resources
);
memberRepository
.
save
(
member
);
return
resources
;
...
...
@@ -127,8 +106,7 @@ public class MemberServiceImpl implements MemberService {
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::code"
+
resources
.
getCode
().
toString
());
try
{
RedissonUtil
.
lock
(
rLock
);
// Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new);
Member
member
=
memberRepository
.
findFirstByCode
(
resources
.
getCode
()).
orElseGet
(
Member:
:
new
);
Member
member
=
memberRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Member:
:
new
);
ValidationUtil
.
isNull
(
member
.
getId
(),
"Member"
,
"id"
,
resources
.
getId
());
member
.
copy
(
resources
);
this
.
save
(
member
);
...
...
@@ -144,7 +122,7 @@ public class MemberServiceImpl implements MemberService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
unbind
(
Member
resources
)
{
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::
id
"
+
resources
.
getId
().
toString
());
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::
code
"
+
resources
.
getId
().
toString
());
try
{
RedissonUtil
.
lock
(
rLock
);
Member
member
=
memberRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Member:
:
new
);
...
...
@@ -167,13 +145,12 @@ public class MemberServiceImpl implements MemberService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
delete
(
Long
id
)
{
Assert
.
notNull
(
id
,
"The given id must not be null!"
);
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::delete::id"
+
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
);
//
memberRepository.delete(member);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
e
;
...
...
@@ -182,7 +159,6 @@ public class MemberServiceImpl implements MemberService {
}
}
@Override
public
MemberDTO
getByCode
(
String
code
)
{
return
StringUtils
.
isNotEmpty
(
code
)
?
memberMapper
.
toDto
(
memberRepository
.
findFirstByCode
(
code
).
orElseGet
(
Member:
:
new
))
...
...
@@ -190,9 +166,10 @@ public class MemberServiceImpl implements MemberService {
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@AsyncMqSend
()
public
void
doUpdateMemberPoints
(
Member
resources
)
{
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::
id
"
+
resources
.
getId
().
toString
());
RLock
rLock
=
this
.
redissonClient
.
getLock
(
"member::update::
code
"
+
resources
.
getId
().
toString
());
try
{
RedissonUtil
.
lock
(
rLock
);
Member
member
=
memberRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Member:
:
new
);
...
...
@@ -213,5 +190,4 @@ public class MemberServiceImpl implements MemberService {
return
memberMapper
.
toDto
(
memberList
);
}
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/user/iptv/domain/UserTv.java
View file @
cdf1370
package
com
.
topdraw
.
business
.
module
.
user
.
iptv
.
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.NotNull
;
import
org.springframework.data.annotation.CreatedDate
;
import
org.springframework.data.annotation.LastModifiedDate
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
...
...
@@ -46,6 +50,7 @@ public class UserTv implements Serializable {
// 运营商平台账号
@Column
(
name
=
"platform_account"
)
@NotNull
(
message
=
"platformAccount can't be null !"
,
groups
=
{
CreateGroup
.
class
})
private
String
platformAccount
;
// 手机号
...
...
Please
register
or
sign in
to post a comment