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
d90e60eb
...
d90e60ebfd0a195ba896c88d914be19c56310557
authored
2022-07-01 13:44:36 +0800
by
xianghan
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1.修复app登录逻辑
1 parent
650ef5bd
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
475 additions
and
23 deletions
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserApp.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppBind.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppBindBuilder.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppBindStatusConstant.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppBuilder.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppStatusConstant.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/repository/UserAppBindRepository.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/service/UserAppBindService.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/service/dto/UserAppBindDTO.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/service/impl/UserAppBindServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/module/user/iptv/domain/UserTvBuilder.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/UserOperationService.java
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/UserOperationServiceImpl.java
member-service-impl/src/main/java/com/topdraw/util/MsgUtil.java
member-service-impl/src/main/java/com/topdraw/util/RegexUtil.java
member-service-impl/src/test/java/com/topdraw/test/business/process/rest/UserOperationControllerTest.java
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserApp.java
View file @
d90e60e
...
...
@@ -23,6 +23,14 @@ import java.io.Serializable;
@Table
(
name
=
"uc_user_app"
)
public
class
UserApp
implements
Serializable
{
// 第三方账号类型 3:微信;4:QQ;5:微博;6:苹果账号
@Transient
private
Integer
accountType
;
// 第三方账号
@Transient
private
String
account
;
// ID
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
...
...
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppBind.java
View file @
d90e60e
...
...
@@ -41,6 +41,10 @@ public class UserAppBind implements Serializable {
@Column
(
name
=
"user_app_id"
,
nullable
=
false
)
private
Long
userAppId
;
// 绑定状态 0:解绑;1 绑定
@Column
(
name
=
"status"
,
nullable
=
false
)
private
Integer
status
;
// 创建时间
@CreatedDate
@Column
(
name
=
"create_time"
)
...
...
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppBindBuilder.java
0 → 100644
View file @
d90e60e
package
com
.
topdraw
.
business
.
module
.
user
.
app
.
domain
;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/6/30 13:18
* @version: :
* @modified By:
* @since : modified in 2022/6/30 13:18
*/
public
class
UserAppBindBuilder
{
public
static
UserAppBind
build
(
Long
userAppId
,
String
account
,
Integer
accountType
){
UserAppBind
userAppBind
=
new
UserAppBind
();
userAppBind
.
setAccount
(
account
);
userAppBind
.
setUserAppId
(
userAppId
);
userAppBind
.
setAccountType
(
accountType
);
userAppBind
.
setStatus
(
UserAppStatusConstant
.
VALID_STATUS
);
return
userAppBind
;
}
}
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppBindStatusConstant.java
0 → 100644
View file @
d90e60e
package
com
.
topdraw
.
business
.
module
.
user
.
app
.
domain
;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/6/30 11:42
* @version: :
* @modified By:
* @since : modified in 2022/6/30 11:42
*/
public
interface
UserAppBindStatusConstant
{
// 绑定状态 0:解绑;1 绑定
Integer
VALID_STATUS
=
1
;
Integer
INVALID_STATUS
=
0
;
}
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppBuilder.java
0 → 100644
View file @
d90e60e
package
com
.
topdraw
.
business
.
module
.
user
.
app
.
domain
;
import
com.topdraw.util.TimestampUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
java.util.Objects
;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/6/30 11:35
* @version: :
* @modified By:
* @since : modified in 2022/6/30 11:35
*/
public
class
UserAppBuilder
{
public
static
UserApp
build
(
Long
memberId
,
UserApp
resource
){
UserApp
userApp
=
new
UserApp
();
userApp
.
setId
(
null
);
userApp
.
setMemberId
(
memberId
);
userApp
.
setUsername
(
resource
.
getUsername
());
userApp
.
setTags
(
resource
.
getTags
());
userApp
.
setLastActiveTime
(
TimestampUtil
.
now
());
userApp
.
setEmail
(
resource
.
getEmail
());
userApp
.
setType
(
Objects
.
isNull
(
resource
.
getType
())
?
resource
.
getType
()
:
-
1
);
userApp
.
setNickname
(
StringUtils
.
isNotBlank
(
resource
.
getNickname
())
?
resource
.
getNickname
()
:
resource
.
getUsername
());
userApp
.
setPassword
(
resource
.
getPassword
());
userApp
.
setCellphone
(
StringUtils
.
isNotBlank
(
resource
.
getCellphone
())
?
resource
.
getCellphone
()
:
resource
.
getUsername
());
userApp
.
setBirthday
(
StringUtils
.
isNotBlank
(
resource
.
getBirthday
())
?
resource
.
getBirthday
()
:
"1900-01-01"
);
userApp
.
setGender
(
Objects
.
nonNull
(
resource
.
getGender
())
?
resource
.
getGender
()
:
0
);
userApp
.
setStatus
(
UserAppStatusConstant
.
VALID_STATUS
);
userApp
.
setCreateTime
(
null
);
userApp
.
setUpdateTime
(
null
);
return
userApp
;
}
}
member-service-impl/src/main/java/com/topdraw/business/module/user/app/domain/UserAppStatusConstant.java
0 → 100644
View file @
d90e60e
package
com
.
topdraw
.
business
.
module
.
user
.
app
.
domain
;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/6/30 11:42
* @version: :
* @modified By:
* @since : modified in 2022/6/30 11:42
*/
public
interface
UserAppStatusConstant
{
// 状态 0:禁用;1:生效;-1:注销
Integer
VALID_STATUS
=
1
;
Integer
FORBID_STATUS
=
0
;
Integer
INVALID_STATUS
=
-
1
;
}
member-service-impl/src/main/java/com/topdraw/business/module/user/app/repository/UserAppBindRepository.java
View file @
d90e60e
...
...
@@ -3,6 +3,8 @@ package com.topdraw.business.module.user.app.repository;
import
com.topdraw.business.module.user.app.domain.UserAppBind
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.data.jpa.repository.Query
;
import
java.util.Optional
;
...
...
@@ -12,4 +14,9 @@ import java.util.Optional;
*/
public
interface
UserAppBindRepository
extends
JpaRepository
<
UserAppBind
,
Long
>,
JpaSpecificationExecutor
<
UserAppBind
>
{
Optional
<
UserAppBind
>
findFirstByAccount
(
String
account
);
@Modifying
@Query
(
value
=
"UPDATE `uc_user_app_bind` SET `status` = 0 , `update_time` = now() WHERE `account` = ?1 "
,
nativeQuery
=
true
)
Integer
cancelUserAppBind
(
String
account
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/user/app/service/UserAppBindService.java
View file @
d90e60e
...
...
@@ -34,4 +34,17 @@ public interface UserAppBindService {
*/
void
delete
(
Long
id
);
/**
*
* @param account
* @return
*/
UserAppBindDTO
findFirstByAccount
(
String
account
);
/**
*
* @param account
* @return
*/
Integer
cancelUserAppBind
(
String
account
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/user/app/service/dto/UserAppBindDTO.java
View file @
d90e60e
...
...
@@ -24,6 +24,9 @@ public class UserAppBindDTO implements Serializable {
// app账号id
private
Long
userAppId
;
// 绑定状态 0:解绑;1 绑定
private
Integer
status
;
// 创建时间
private
Timestamp
createTime
;
...
...
member-service-impl/src/main/java/com/topdraw/business/module/user/app/service/impl/UserAppBindServiceImpl.java
View file @
d90e60e
...
...
@@ -11,14 +11,7 @@ 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.util.List
;
import
java.util.Map
;
/**
* @author XiangHan
...
...
@@ -65,5 +58,17 @@ public class UserAppBindServiceImpl implements UserAppBindService {
this
.
userAppBindRepository
.
delete
(
UserAppBind
);
}
@Override
public
UserAppBindDTO
findFirstByAccount
(
String
account
)
{
UserAppBind
userAppBind
=
this
.
userAppBindRepository
.
findFirstByAccount
(
account
).
orElseGet
(
UserAppBind:
:
new
);
return
this
.
userAppBindMapper
.
toDto
(
userAppBind
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Integer
cancelUserAppBind
(
String
account
)
{
return
this
.
userAppBindRepository
.
cancelUserAppBind
(
account
);
}
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/user/iptv/domain/UserTvBuilder.java
View file @
d90e60e
...
...
@@ -24,13 +24,17 @@ public class UserTvBuilder {
private
static
final
String
DEFAULT_CREATE_BY
=
"system"
;
private
static
final
String
DEFAULT_UPDATE_BY
=
"system"
;
public
static
UserTv
build
(
Long
memberId
,
String
memberCode
,
UserTv
userTv
){
public
static
UserTv
build
(
Long
memberId
,
String
memberCode
,
UserTv
userTv
){
return
build
(
memberId
,
memberCode
,
userTv
.
getId
(),
userTv
.
getPlatformAccount
(),
userTv
.
getNickname
(),
userTv
.
getUsername
(),
userTv
.
getLoginDays
(),
userTv
.
getStatus
(),
userTv
.
getContinueDays
(),
userTv
.
getCreateBy
(),
userTv
.
getUpdateBy
(),
userTv
.
getVisUserId
(),
userTv
.
getPlatform
());
userTv
.
getLoginDays
(),
userTv
.
getStatus
(),
userTv
.
getContinueDays
(),
userTv
.
getCreateBy
(),
userTv
.
getUpdateBy
(),
userTv
.
getVisUserId
(),
userTv
.
getPlatform
(),
userTv
.
getPassword
(),
userTv
.
getGroups
());
}
public
static
UserTv
build
(
Long
memberId
,
String
memberCode
,
Long
id
,
String
platformAccount
,
String
nickname
,
String
username
,
Integer
loginDays
,
Integer
status
,
Integer
continueDays
,
String
createBy
,
String
updateBy
,
Long
visUserId
,
String
platform
){
Integer
loginDays
,
Integer
status
,
Integer
continueDays
,
String
createBy
,
String
updateBy
,
Long
visUserId
,
String
platform
,
String
password
,
String
groups
){
Assert
.
notNull
(
memberId
,
GlobeExceptionMsg
.
MEMBER_ID_IS_NULL
);
Assert
.
notNull
(
memberCode
,
GlobeExceptionMsg
.
MEMBER_CODE_IS_NULL
);
Assert
.
notNull
(
platformAccount
,
GlobeExceptionMsg
.
IPTV_PLATFORM_ACCOUNT_IS_NULL
);
...
...
@@ -45,6 +49,8 @@ public class UserTvBuilder {
userTv
.
setMemberId
(
memberId
);
userTv
.
setNickname
(
StringUtils
.
isBlank
(
nickname
)?
platformAccount:
nickname
);
userTv
.
setUsername
(
StringUtils
.
isBlank
(
username
)?
platformAccount:
username
);
userTv
.
setPassword
(
password
);
userTv
.
setGroups
(
groups
);
userTv
.
setLoginDays
(
Objects
.
nonNull
(
loginDays
)?
loginDays:
DEFAULT_VALUE
);
userTv
.
setLoginType
(
DEFAULT_VALUE
);
userTv
.
setStatus
(
Objects
.
nonNull
(
status
)?
status:
DEFAULT_VALUE
);
...
...
member-service-impl/src/main/java/com/topdraw/business/process/rest/UserOperationController.java
View file @
d90e60e
...
...
@@ -10,6 +10,7 @@ import com.topdraw.business.module.common.validated.UpdateGroup;
import
com.topdraw.business.module.member.service.MemberService
;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.business.module.user.app.domain.UserApp
;
import
com.topdraw.business.module.user.app.service.dto.UserAppDTO
;
import
com.topdraw.business.module.user.iptv.domain.UserTv
;
import
com.topdraw.business.module.user.iptv.service.dto.UserTvDTO
;
import
com.topdraw.business.module.user.weixin.domain.UserWeixin
;
...
...
@@ -26,6 +27,7 @@ import com.topdraw.exception.GlobeExceptionMsg;
import
com.topdraw.resttemplate.RestTemplateClient
;
import
com.topdraw.util.Base64Util
;
import
com.topdraw.util.JSONUtil
;
import
com.topdraw.util.RegexUtil
;
import
com.topdraw.utils.RedisUtils
;
import
com.topdraw.weixin.util.WeChatConstants
;
import
com.topdraw.weixin.util.WeixinUtil
;
...
...
@@ -35,6 +37,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.Assert
;
import
org.springframework.util.Base64Utils
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -69,14 +72,38 @@ public class UserOperationController {
/******************************************************* APP ************************************/
@Log
@PostMapping
(
value
=
"/app
Login
"
)
@ApiOperation
(
"app
登录
"
)
@PostMapping
(
value
=
"/app
Register
"
)
@ApiOperation
(
"app
注册
"
)
@AnonymousAccess
public
ResultInfo
app
Login
(
@Validated
@RequestBody
UserApp
resources
)
{
log
.
info
(
"app
登录 ==>> param ==>> [appLogin
#{}]"
,
resources
);
public
ResultInfo
app
Register
(
@Validated
@RequestBody
UserApp
resources
)
{
log
.
info
(
"app
注册 ==>> param ==>> [appRegister
#{}]"
,
resources
);
UserTvDTO
userTvDTO
=
this
.
userOperationService
.
appLogin
(
resources
);
return
ResultInfo
.
success
();
String
username
=
resources
.
getUsername
();
if
(
StringUtils
.
isBlank
(
username
))
{
log
.
error
(
"app注册,参数错误,账号不得为空 "
);
return
ResultInfo
.
failure
(
"app注册,参数错误,账号不得为空"
);
}
Integer
type
=
resources
.
getType
();
if
(
Objects
.
isNull
(
type
))
{
log
.
error
(
"app注册,参数错误,账号类型不得为空 "
);
return
ResultInfo
.
failure
(
"app注册,参数错误,账号类型不得为空"
);
}
String
account
=
resources
.
getAccount
();
if
(
StringUtils
.
isNotBlank
(
account
))
{
if
(
Objects
.
isNull
(
resources
.
getAccountType
()))
{
log
.
error
(
"app注册,参数错误,第三方账号类型不得为空"
);
return
ResultInfo
.
failure
(
"app注册,参数错误,第三方账号类型不得为空"
);
}
}
if
(
StringUtils
.
isBlank
(
resources
.
getNickname
()))
{
resources
.
setNickname
(
Base64Utils
.
encodeToString
(
username
.
getBytes
()));
}
UserAppDTO
userAppDTO
=
this
.
userOperationService
.
appRegister
(
resources
);
return
ResultInfo
.
success
(
userAppDTO
);
}
@Log
...
...
@@ -86,10 +113,28 @@ public class UserOperationController {
public
ResultInfo
updateUserApp
(
@Validated
@RequestBody
UserApp
resources
)
{
log
.
info
(
"修改app账号信息 ==>> param ==>> [updateUserApp#{}]"
,
resources
);
this
.
userOperationService
.
appLogin
(
resources
);
return
ResultInfo
.
success
();
}
@Log
@PostMapping
(
value
=
"/cancelUserAppBind"
)
@ApiOperation
(
"取消关联第三方账号"
)
@AnonymousAccess
public
ResultInfo
cancelUserAppBind
(
@Validated
@RequestBody
UserApp
resources
)
{
log
.
info
(
"修改app账号信息 ==>> param ==>> [updateUserApp#{}]"
,
resources
);
String
account
=
resources
.
getAccount
();
if
(
StringUtils
.
isBlank
(
account
))
{
log
.
error
(
"参数错误,第三方账号不能为空"
);
return
ResultInfo
.
failure
(
"参数错误,第三方账号不能为空"
);
}
boolean
result
=
this
.
userOperationService
.
cancelUserAppBind
(
resources
);
return
ResultInfo
.
success
(
result
);
}
@PostMapping
(
"/appBind"
)
@ApiOperation
(
"微信小程序绑定大屏"
)
@AnonymousAccess
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/UserOperationService.java
View file @
d90e60e
...
...
@@ -2,6 +2,7 @@ package com.topdraw.business.process.service;
import
com.topdraw.business.module.member.service.dto.MemberDTO
;
import
com.topdraw.business.module.user.app.domain.UserApp
;
import
com.topdraw.business.module.user.app.service.dto.UserAppDTO
;
import
com.topdraw.business.module.user.iptv.domain.UserTv
;
import
com.topdraw.business.module.user.iptv.service.dto.UserTvDTO
;
import
com.topdraw.business.module.user.weixin.domain.UserWeixin
;
...
...
@@ -168,10 +169,18 @@ public interface UserOperationService {
*/
UserTvDTO
updateUserTv
(
UserTv
resources
);
/**
*
* @param resources
* @return
*/
User
TvDTO
appLogin
(
UserApp
resources
);
User
AppDTO
appRegister
(
UserApp
resources
);
/**
*
* @param resources
* @return
*/
boolean
cancelUserAppBind
(
UserApp
resources
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/UserOperationServiceImpl.java
View file @
d90e60e
...
...
@@ -8,11 +8,17 @@ import com.alibaba.fastjson.JSONObject;
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.domain.MemberTypeConstant
;
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.MemberSimpleDTO
;
import
com.topdraw.business.module.user.app.domain.UserApp
;
import
com.topdraw.business.module.user.app.domain.UserAppBind
;
import
com.topdraw.business.module.user.app.domain.UserAppBindBuilder
;
import
com.topdraw.business.module.user.app.domain.UserAppBuilder
;
import
com.topdraw.business.module.user.app.service.UserAppBindService
;
import
com.topdraw.business.module.user.app.service.UserAppService
;
import
com.topdraw.business.module.user.app.service.dto.UserAppBindDTO
;
import
com.topdraw.business.module.user.app.service.dto.UserAppDTO
;
import
com.topdraw.business.module.user.iptv.domain.UserConstant
;
import
com.topdraw.business.module.user.iptv.domain.UserTv
;
...
...
@@ -55,7 +61,6 @@ import org.springframework.aop.framework.AopContext;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.cache.annotation.CachePut
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Service
;
...
...
@@ -81,6 +86,8 @@ public class UserOperationServiceImpl implements UserOperationService {
@Autowired
private
UserAppService
userAppService
;
@Autowired
private
UserAppBindService
userAppBindService
;
@Autowired
private
UserWeixinService
userWeixinService
;
@Autowired
private
UserWeixinRepository
userWeixinRepository
;
...
...
@@ -115,17 +122,51 @@ public class UserOperationServiceImpl implements UserOperationService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
UserTvDTO
appLogin
(
UserApp
resources
)
{
public
UserAppDTO
appRegister
(
UserApp
resources
)
{
UserAppDTO
userAppDTO
=
this
.
userAppService
.
findByUsername
(
resources
.
getUsername
());
if
(
Objects
.
isNull
(
userAppDTO
.
getId
()))
{
// 先创建会员
Member
member
=
MemberBuilder
.
build
(
MemberTypeConstant
.
app
,
resources
.
getHeadimgurl
(),
resources
.
getNickname
(),
0
);
MemberDTO
memberDTO
=
this
.
memberService
.
create
(
member
);
if
(
Objects
.
nonNull
(
memberDTO
.
getId
()))
{
// 保存app账号
UserAppDTO
_userAppDTO
=
this
.
userAppService
.
create
(
UserAppBuilder
.
build
(
memberDTO
.
getId
(),
resources
));
if
(
Objects
.
nonNull
(
_userAppDTO
.
getId
())
&&
StringUtils
.
isNotBlank
(
resources
.
getAccount
()))
{
UserAppBindDTO
userAppBindDTO
=
this
.
userAppBindService
.
findFirstByAccount
(
resources
.
getAccount
());
if
(
Objects
.
isNull
(
userAppBindDTO
.
getId
()))
{
// 保存绑定关系
UserAppBind
userAppBind
=
UserAppBindBuilder
.
build
(
_userAppDTO
.
getId
(),
resources
.
getAccount
(),
resources
.
getAccountType
());
this
.
userAppBindService
.
create
(
userAppBind
);
}
}
return
_userAppDTO
;
String
username
=
resources
.
getUsername
();
UserAppDTO
userAppDTO
=
this
.
userAppService
.
findByUsername
(
username
);
if
(
Objects
.
nonNull
(
userAppDTO
))
{
}
}
return
null
;
}
@Override
public
boolean
cancelUserAppBind
(
UserApp
resources
)
{
String
account
=
resources
.
getAccount
();
UserAppBindDTO
userAppBindDTO
=
this
.
userAppBindService
.
findFirstByAccount
(
account
);
if
(
Objects
.
nonNull
(
userAppBindDTO
.
getId
()))
{
Integer
count
=
this
.
userAppBindService
.
cancelUserAppBind
(
account
);
if
(
count
==
1
)
{
return
true
;
}
}
return
false
;
}
/**
* 创建大屏账户同时创建会员
*
...
...
member-service-impl/src/main/java/com/topdraw/util/MsgUtil.java
0 → 100644
View file @
d90e60e
package
com
.
topdraw
.
util
;
/*
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.UUID;
import org.afflatus.utility.AppConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.aliyun.mns.client.CloudAccount;
import com.aliyun.mns.client.CloudTopic;
import com.aliyun.mns.client.MNSClient;
import com.aliyun.mns.common.ServiceException;
import com.aliyun.mns.model.BatchSmsAttributes;
import com.aliyun.mns.model.MessageAttributes;
import com.aliyun.mns.model.RawTopicMessage;
import com.aliyun.mns.model.TopicMessage;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
*/
public
class
MsgUtil
{
// private static Logger log = LoggerFactory.getLogger(MsgUtil.class.getName());
/* private static final String ACCESSID = AppConfiguration.get("MESSAGE.ACCESSID");
private static final String ACCESSKEY = AppConfiguration.get("MESSAGE.ACCESSKEY");
private static final String MNSENDPOINT = AppConfiguration.get("MESSAGE.MNSENDPOINT");
private static final String TOPIC = AppConfiguration.get("MESSAGE.TOPIC");
private static final String SIGNNAME = AppConfiguration.get("MESSAGE.SIGNNAME");
private static final String TEMPLATECODE = AppConfiguration.get("MESSAGE.TEMPLATECODE");
private static final String REGION = AppConfiguration.get("MESSAGE.REGION");
public static String generateVerifyCodeAndSend(String verifyKey, String phone) {
String verifyCode;
try {
verifyCode = getRandom(4);
} catch (NoSuchAlgorithmException e) {
verifyCode = "8673";
}
// sendMsg(phone, ":" + verifyCode + ",序号:" + verifyKey);
sendMsg2(phone, verifyCode);
return verifyCode;
}*/
public
static
void
sendMsg
(
String
phone
,
String
verifyCode
)
{
/**
* Step 1. 获取主题引用
*/
/*CloudAccount account = new CloudAccount(ACCESSID, ACCESSKEY, MNSENDPOINT);
MNSClient client = account.getMNSClient();
CloudTopic topic = client.getTopicRef(TOPIC);*/
/**
* Step 2. 设置SMS消息体(必须)
*
* 注:目前暂时不支持消息内容为空,需要指定消息内容,不为空即可。
*/
/*RawTopicMessage msg = new RawTopicMessage();
msg.setMessageBody("sms-message");*/
/**
* Step 3. 生成SMS消息属性
*/
/*MessageAttributes messageAttributes = new MessageAttributes();
BatchSmsAttributes batchSmsAttributes = new BatchSmsAttributes();
// 3.1 设置发送短信的签名(SMSSignName)
batchSmsAttributes.setFreeSignName(SIGNNAME);
// 3.2 设置发送短信使用的模板(SMSTempateCode)
batchSmsAttributes.setTemplateCode(TEMPLATECODE);
// 3.3 设置发送短信所使用的模板中参数对应的值(在短信模板中定义的,没有可以不用设置)
BatchSmsAttributes.SmsReceiverParams smsReceiverParams = new BatchSmsAttributes.SmsReceiverParams();
smsReceiverParams.setParam("code", verifyCode);
// 3.4 增加接收短信的号码
batchSmsAttributes.addSmsReceiver(phone, smsReceiverParams);
messageAttributes.setBatchSmsAttributes(batchSmsAttributes);*/
// try {
/**
* Step 4. 发布SMS消息
*/
/*TopicMessage ret = topic.publishMessage(msg, messageAttributes);
log.info("sendMsg | MessageId: " + ret.getMessageId() + " MessageMD5: " + ret.getMessageBodyMD5());
} catch (ServiceException se) {
System.out.println(se.getErrorCode() + se.getRequestId());
System.out.println(se.getMessage());
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
client.close();
}*/
}
public
static
void
sendMsg2
(
String
phone
,
String
verifyCode
)
{
/*
try {
// 设置超时时间-可自行调整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
// 初始化ascClient需要的几个参数
final String product = "Dysmsapi";// 短信API产品名称(短信产品名固定,无需修改)
final String domain = "dysmsapi.aliyuncs.com";// 短信API产品域名(接口地址固定,无需修改)
// 替换成你的AK
final String accessKeyId = ACCESSID;// 你的accessKeyId,参考本文档步骤2
final String accessKeySecret = ACCESSKEY;// 你的accessKeySecret,参考本文档步骤2
// 初始化ascClient,暂时不支持多region(请勿修改)
IClientProfile profile = DefaultProfile.getProfile(REGION, accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint(REGION, REGION, product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
// 组装请求对象
SendSmsRequest request = new SendSmsRequest();
// 使用post提交
request.setMethod(MethodType.POST);
// 必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
request.setPhoneNumbers(phone);
// 必填:短信签名-可在短信控制台中找到
request.setSignName(SIGNNAME);
// 必填:短信模板-可在短信控制台中找到
request.setTemplateCode(TEMPLATECODE);
// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
// 友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
request.setTemplateParam("{\"code\":\"" + verifyCode + "\"}");
// 可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
// request.setSmsUpExtendCode("90997");
// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.setOutId(UUID.randomUUID().toString().replaceAll("-", ""));
// 请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if (null != sendSmsResponse) {
log.info("sendMsg | RequestId: " + sendSmsResponse.getRequestId() + " Code: "
+ sendSmsResponse.getCode() + " Message: " + sendSmsResponse.getMessage());
}
if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
// 请求成功
}
} catch (Exception e) {
e.printStackTrace();
} finally {
}
*/
}
/*public static String getRandom(int count) throws NoSuchAlgorithmException {
StringBuilder sb = new StringBuilder();
String str = "0123456789";
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
for (int i = 0; i < count; i++) {
int num = sr.nextInt(str.length());
sb.append(str.charAt(num));
str = str.replace(("" + str.charAt(num)), "");
}
return sb.toString();
}
*/
}
member-service-impl/src/main/java/com/topdraw/util/RegexUtil.java
0 → 100644
View file @
d90e60e
package
com
.
topdraw
.
util
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/6/29 15:10
* @version: :
* @modified By:
* @since : modified in 2022/6/29 15:10
*/
public
class
RegexUtil
{
public
static
boolean
mobileRegex
(
String
mobile
){
// String pattern = "0?(13|14|15|17|18|19)[0-9]{9}";
String
pattern
=
"^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$"
;
Pattern
r
=
Pattern
.
compile
(
pattern
);
Matcher
m
=
r
.
matcher
(
mobile
);
return
m
.
find
();
}
}
member-service-impl/src/test/java/com/topdraw/test/business/process/rest/UserOperationControllerTest.java
View file @
d90e60e
...
...
@@ -2,6 +2,7 @@ package com.topdraw.test.business.process.rest;
import
com.alibaba.fastjson.JSONObject
;
import
com.topdraw.BaseTest
;
import
com.topdraw.business.module.user.app.domain.UserApp
;
import
com.topdraw.business.module.user.iptv.domain.UserTv
;
import
com.topdraw.business.module.user.weixin.domain.UserWeixin
;
import
com.topdraw.business.process.domian.weixin.BindBean
;
...
...
@@ -11,6 +12,7 @@ import com.topdraw.business.process.rest.UserOperationController;
import
com.topdraw.common.ResultInfo
;
import
org.junit.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.Base64Utils
;
import
java.sql.Timestamp
;
...
...
@@ -151,6 +153,25 @@ public class UserOperationControllerTest extends BaseTest {
}
@Test
public
void
appRegister
()
{
try
{
UserApp
userApp
=
new
UserApp
();
userApp
.
setUsername
(
"18271269120"
);
// 类型 0:苹果;1:安卓;-1:未知
userApp
.
setType
(
1
);
userApp
.
setAccount
(
"fdsfsdfsdfs"
);
userApp
.
setAccountType
(
3
);
ResultInfo
weixinUserAndMember
=
this
.
userOperationController
.
appRegister
(
userApp
);
System
.
out
.
println
(
weixinUserAndMember
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
@Test
public
void
createTvUserAndMember
()
{
try
{
String
a
=
"{\n"
+
...
...
Please
register
or
sign in
to post a comment