Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
街头小贩
Jforum2
提交
1da4cc0e
J
Jforum2
项目概览
街头小贩
/
Jforum2
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
1
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
Jforum2
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1da4cc0e
编写于
8月 28, 2020
作者:
街头小贩
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加邀请码是否可用异步查询
上级
25d1588f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
52 addition
and
11 deletion
+52
-11
member.impl/src/main/java/com/apobates/forum/member/impl/service/MemberServiceImpl.java
...apobates/forum/member/impl/service/MemberServiceImpl.java
+23
-9
member/src/main/java/com/apobates/forum/member/service/MemberService.java
...java/com/apobates/forum/member/service/MemberService.java
+8
-0
thrones/src/main/java/com/apobates/forum/thrones/controller/MemberController.java
...m/apobates/forum/thrones/controller/MemberController.java
+21
-2
未找到文件。
member.impl/src/main/java/com/apobates/forum/member/impl/service/MemberServiceImpl.java
浏览文件 @
1da4cc0e
...
...
@@ -158,15 +158,7 @@ public class MemberServiceImpl implements MemberService{
@Override
public
Optional
<
Member
>
signUp
(
String
memberNames
,
String
unEncryptPswd
,
String
inviteCode
,
String
nickname
,
MemberActionDescriptor
actionDescriptor
)
throws
IllegalArgumentException
,
IllegalStateException
{
//ASP-M3
//--------------------------------------------------------------邀请码检查
long
inviteCodeId
=
0L
;
if
(
Commons
.
isNotBlank
(
inviteCode
))
{
RegisteInviteCode
ic
=
registeInviteCodeDao
.
findOne
(
inviteCode
).
orElseThrow
(()->
new
IllegalArgumentException
(
"邀请码不存在或已经失效"
));
//邀请码只能是当天有效的
if
(
DateTimeUtils
.
isSameDay
(
ic
.
getBuildDateTime
(),
LocalDateTime
.
now
())){
throw
new
IllegalArgumentException
(
"当前邀请码已经过期"
);
}
inviteCodeId
=
ic
.
getId
();
}
long
inviteCodeId
=
verifyInviteCode
(
inviteCode
);
//--------------------------------------------------------------登录帐号的唯一性|名称保护检查
checkNamesUnique
(
memberNames
).
orElseThrow
(()->
new
IllegalArgumentException
(
"会员唯一性检查失败"
));
//--------------------------------------------------------------
...
...
@@ -318,6 +310,15 @@ public class MemberServiceImpl implements MemberService{
return
memberDao
.
groupMemberForGroup
();
}
@Override
public
Map
<
String
,
String
>
getActiveInviteCode
(
String
inviteCode
)
{
long
inviteCodeId
=
0
;
try
{
inviteCodeId
=
verifyInviteCode
(
inviteCode
);
}
catch
(
IllegalArgumentException
e
){}
return
Map
.
ofEntries
(
Map
.
entry
(
"code"
,
inviteCode
),
Map
.
entry
(
"id"
,
String
.
valueOf
(
inviteCodeId
)));
}
private
Optional
<
Member
>
securityMember
(
Member
member
)
{
if
(
null
==
member
)
{
return
Optional
.
empty
();
...
...
@@ -385,4 +386,17 @@ public class MemberServiceImpl implements MemberService{
private
CompletableFuture
<
Stream
<
ForumScoreRole
>>
getScoleRolesAsync
(){
return
CompletableFuture
.
supplyAsync
(()->
forumScoreRoleDao
.
findAllUsed
().
filter
(
Objects:
:
nonNull
)).
completeOnTimeout
(
Stream
.
empty
(),
1
,
TimeUnit
.
SECONDS
);
}
private
long
verifyInviteCode
(
String
inviteCode
)
throws
IllegalArgumentException
{
long
inviteCodeId
=
0L
;
if
(
Commons
.
isNotBlank
(
inviteCode
))
{
RegisteInviteCode
ic
=
registeInviteCodeDao
.
findOne
(
inviteCode
).
orElseThrow
(()->
new
IllegalArgumentException
(
"邀请码不存在或已经失效"
));
//邀请码只能是当天有效的
if
(
DateTimeUtils
.
isSameDay
(
ic
.
getBuildDateTime
(),
LocalDateTime
.
now
())){
throw
new
IllegalArgumentException
(
"当前邀请码已经过期"
);
}
inviteCodeId
=
ic
.
getId
();
}
return
inviteCodeId
;
}
}
\ No newline at end of file
member/src/main/java/com/apobates/forum/member/service/MemberService.java
浏览文件 @
1da4cc0e
...
...
@@ -231,4 +231,12 @@ public interface MemberService {
* @return Key=Member.mgroup, Value=会员数量
*/
Map
<
MemberGroupEnum
,
Long
>
groupMemberForGroup
();
/**
* 查看指定的邀请码是否可用
*
* @param inviteCode 邀请码
* @return 返回的key:code(参数),id(可用时大于0,反之0)
*/
Map
<
String
,
String
>
getActiveInviteCode
(
String
inviteCode
);
}
\ No newline at end of file
thrones/src/main/java/com/apobates/forum/thrones/controller/MemberController.java
浏览文件 @
1da4cc0e
...
...
@@ -23,7 +23,6 @@ import com.apobates.forum.member.storage.core.MemberSessionBean;
import
com.apobates.forum.thrones.controller.form.LoginForm
;
import
com.apobates.forum.thrones.controller.form.RegisteForm
;
import
com.apobates.forum.thrones.controller.helper.OnlineDescriptor
;
import
com.apobates.forum.thrones.exception.BorbidMemberRegisterException
;
import
com.apobates.forum.thrones.exception.ResourceNotFoundException
;
import
com.apobates.forum.thrones.vo.MemberModel
;
import
com.apobates.forum.thrones.vo.TopicStatsCollect
;
...
...
@@ -327,7 +326,7 @@ public class MemberController {
boolean
symbol
=
false
;
//
try
{
B
oolean
result
=
memberService
.
checkNamesUnique
(
names
).
orElse
(
false
);
b
oolean
result
=
memberService
.
checkNamesUnique
(
names
).
orElse
(
false
);
if
(
result
){
tipMessage
=
"可以使用"
;
symbol
=
true
;
}
...
...
@@ -340,6 +339,26 @@ public class MemberController {
HttpStatus
hs
=
symbol
?
HttpStatus
.
OK
:
HttpStatus
.
BAD_REQUEST
;
return
new
ResponseEntity
<>(
tipMessage
,
responseHeaders
,
hs
);
}
//配合:Bootstrap validator使用@see:https://github.com/1000hz/bootstrap-validator@BS3
//配合:parsley.js使用@see:http://parsleyjs.org/@BS4
//检查注册邀请码是否可用
@GetMapping
(
path
=
"/detection/invite"
)
public
ResponseEntity
<
String
>
checkMemberInviteCode
(
@RequestParam
(
"code"
)
String
inviteCode
,
HttpServletRequest
request
,
Model
model
){
String
tipMessage
=
"验证码不可用"
;
boolean
symbol
=
false
;
//
Map
<
String
,
String
>
result
=
memberService
.
getActiveInviteCode
(
inviteCode
);
if
(!
result
.
get
(
"id"
).
equals
(
"0"
)){
tipMessage
=
"可以使用"
;
symbol
=
true
;
}
HttpHeaders
responseHeaders
=
new
HttpHeaders
();
responseHeaders
.
set
(
"Content-Type"
,
"text/plain; charset=UTF-8"
);
//Content-Type: text/plain;charset=ISO-8859-1
HttpStatus
hs
=
symbol
?
HttpStatus
.
OK
:
HttpStatus
.
BAD_REQUEST
;
return
new
ResponseEntity
<>(
tipMessage
,
responseHeaders
,
hs
);
}
//校验uid时的
@GetMapping
(
path
=
"/detection/uid"
)
@ResponseBody
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录