Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
A
antai-sport-http-server
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
antai-sport
antai-sport-http-server
Commits
164408e0
Commit
164408e0
authored
Aug 23, 2021
by
liming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(初始化项目): 登录注册统一接口
parent
91353747
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
181 additions
and
86 deletions
+181
-86
Result.java
.../java/com/antai/sport/http/server/common/base/Result.java
+11
-69
ResultUtil.java
...a/com/antai/sport/http/server/common/util/ResultUtil.java
+88
-0
SportUserController.java
...ver/game/api/business/sport/user/SportUserController.java
+4
-3
SportUserService.java
...server/game/api/business/sport/user/SportUserService.java
+28
-8
RespLogin.java
...tp/server/game/api/business/sport/user/dto/RespLogin.java
+24
-0
SportUser.java
.../sport/http/server/repository/sport/entity/SportUser.java
+26
-6
No files found.
common/src/main/java/com/antai/sport/http/server/common/base/Result.java
View file @
164408e0
package
com
.
antai
.
sport
.
http
.
server
.
common
.
base
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.ObjectError
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @Author liming
...
...
@@ -21,78 +14,27 @@ import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
Result
{
public
class
Result
<
T
>
{
public
final
static
Integer
SUCCESS
=
1
;
public
final
static
Integer
FAIL
=
2
;
@ApiModelProperty
(
value
=
"请求结果 1:成功 2:失败"
)
private
Integer
resultType
=
SUCCESS
;
@ApiModelProperty
(
value
=
"响应Code"
)
private
String
respCode
;
@ApiModelProperty
(
value
=
"响应信息"
)
private
String
respMsg
;
@ApiModelProperty
(
value
=
"异常代码"
)
private
String
errorCode
;
private
Object
data
;
@ApiModelProperty
(
value
=
"数据包"
)
private
T
data
;
@ApiModelProperty
(
value
=
"是否需要刷新Token"
)
private
boolean
refreshToken
;
@ApiModelProperty
(
value
=
"长Token,仅当短Token失效时使用"
)
private
String
longToken
;
@ApiModelProperty
(
value
=
"短Token"
)
private
String
shortToken
;
public
static
ResponseEntity
<
Result
>
error
(
RespCodeEnum
RespCodeEnum
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
getCode
());
Result
.
setRespMsg
(
RespCodeEnum
.
getMessage
());
Result
.
setResultType
(
FAIL
);
return
new
ResponseEntity
<>(
Result
,
HttpStatus
.
OK
);
}
public
static
ResponseEntity
<
Result
>
error
(
RespCodeEnum
RespCodeEnum
,
String
errorMsg
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
getCode
());
Result
.
setRespMsg
(
errorMsg
);
Result
.
setResultType
(
FAIL
);
return
new
ResponseEntity
<>(
Result
,
HttpStatus
.
OK
);
}
public
static
ResponseEntity
<
Result
>
error
(
RespCodeEnum
RespCodeEnum
,
BindingResult
bindingResult
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
getCode
());
Result
.
setRespMsg
(
RespCodeEnum
.
getMessage
());
Result
.
setResultType
(
FAIL
);
StringBuilder
errorStr
=
new
StringBuilder
();
List
<
String
>
errorList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
bindingResult
.
getErrorCount
();
i
++)
{
ObjectError
oe
=
bindingResult
.
getAllErrors
().
get
(
i
);
errorList
.
add
(
oe
.
getDefaultMessage
());
if
(
i
==
0
)
{
errorStr
.
append
(
oe
.
getDefaultMessage
());
}
else
{
errorStr
.
append
(
","
).
append
(
oe
.
getDefaultMessage
());
}
}
Result
.
setData
(
errorStr
.
toString
());
return
new
ResponseEntity
<>(
Result
,
HttpStatus
.
OK
);
}
public
static
ResponseEntity
<
Result
>
success
(
HttpHeaders
httpHeaders
,
Object
object
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
SUCCESS
.
getCode
());
Result
.
setRespMsg
(
RespCodeEnum
.
SUCCESS
.
getMessage
());
Result
.
setData
(
object
);
Result
.
setResultType
(
SUCCESS
);
return
new
ResponseEntity
<>(
Result
,
httpHeaders
,
HttpStatus
.
OK
);
}
public
static
ResponseEntity
<
Result
>
success
(
Object
object
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
SUCCESS
.
getCode
());
Result
.
setRespMsg
(
RespCodeEnum
.
SUCCESS
.
getMessage
());
Result
.
setData
(
object
);
Result
.
setResultType
(
SUCCESS
);
return
new
ResponseEntity
<>(
Result
,
new
HttpHeaders
(),
HttpStatus
.
OK
);
}
public
static
ResponseEntity
<
Result
>
success
(
Result
result
)
{
result
.
setRespCode
(
RespCodeEnum
.
SUCCESS
.
getCode
());
result
.
setResultType
(
SUCCESS
);
return
new
ResponseEntity
<>(
result
,
new
HttpHeaders
(),
HttpStatus
.
OK
);
}
}
common/src/main/java/com/antai/sport/http/server/common/util/ResultUtil.java
0 → 100644
View file @
164408e0
package
com
.
antai
.
sport
.
http
.
server
.
common
.
util
;
import
com.antai.sport.http.server.common.base.RespCodeEnum
;
import
com.antai.sport.http.server.common.base.Result
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.ObjectError
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @Author liming
* @Date 2021/8/23 13:30
* @Email lmmax@126.com
* @Description:
*/
public
class
ResultUtil
{
public
static
ResponseEntity
<
Result
>
success
()
{
Result
result
=
new
Result
();
result
.
setRespCode
(
RespCodeEnum
.
SUCCESS
.
getCode
());
result
.
setResultType
(
Result
.
SUCCESS
);
return
new
ResponseEntity
<>(
result
,
new
HttpHeaders
(),
HttpStatus
.
OK
);
}
public
static
ResponseEntity
<
Result
>
error
(
RespCodeEnum
RespCodeEnum
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
getCode
());
Result
.
setRespMsg
(
RespCodeEnum
.
getMessage
());
Result
.
setResultType
(
Result
.
FAIL
);
return
new
ResponseEntity
<>(
Result
,
HttpStatus
.
OK
);
}
public
static
ResponseEntity
<
Result
>
error
(
RespCodeEnum
RespCodeEnum
,
String
errorMsg
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
getCode
());
Result
.
setRespMsg
(
errorMsg
);
Result
.
setResultType
(
Result
.
FAIL
);
return
new
ResponseEntity
<>(
Result
,
HttpStatus
.
OK
);
}
public
static
ResponseEntity
<
Result
>
error
(
RespCodeEnum
RespCodeEnum
,
BindingResult
bindingResult
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
getCode
());
Result
.
setRespMsg
(
RespCodeEnum
.
getMessage
());
Result
.
setResultType
(
Result
.
FAIL
);
StringBuilder
errorStr
=
new
StringBuilder
();
List
<
String
>
errorList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
bindingResult
.
getErrorCount
();
i
++)
{
ObjectError
oe
=
bindingResult
.
getAllErrors
().
get
(
i
);
errorList
.
add
(
oe
.
getDefaultMessage
());
if
(
i
==
0
)
{
errorStr
.
append
(
oe
.
getDefaultMessage
());
}
else
{
errorStr
.
append
(
","
).
append
(
oe
.
getDefaultMessage
());
}
}
Result
.
setData
(
errorStr
.
toString
());
return
new
ResponseEntity
<>(
Result
,
HttpStatus
.
OK
);
}
public
static
<
T
>
ResponseEntity
<
Result
<
T
>>
success
(
HttpHeaders
httpHeaders
,
T
data
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
SUCCESS
.
getCode
());
Result
.
setRespMsg
(
RespCodeEnum
.
SUCCESS
.
getMessage
());
Result
.
setData
(
data
);
Result
.
setResultType
(
Result
.
SUCCESS
);
return
new
ResponseEntity
<>(
Result
,
httpHeaders
,
HttpStatus
.
OK
);
}
public
static
<
T
>
ResponseEntity
<
Result
<
T
>>
success
(
T
data
)
{
Result
Result
=
new
Result
();
Result
.
setRespCode
(
RespCodeEnum
.
SUCCESS
.
getCode
());
Result
.
setRespMsg
(
RespCodeEnum
.
SUCCESS
.
getMessage
());
Result
.
setData
(
data
);
Result
.
setResultType
(
Result
.
SUCCESS
);
return
new
ResponseEntity
<>(
Result
,
new
HttpHeaders
(),
HttpStatus
.
OK
);
}
public
static
<
T
>
ResponseEntity
<
Result
<
T
>>
success
(
Result
<
T
>
result
)
{
result
.
setRespCode
(
RespCodeEnum
.
SUCCESS
.
getCode
());
result
.
setResultType
(
Result
.
SUCCESS
);
return
new
ResponseEntity
<>(
result
,
new
HttpHeaders
(),
HttpStatus
.
OK
);
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/SportUserController.java
View file @
164408e0
...
...
@@ -2,6 +2,7 @@ package com.antai.sport.http.server.game.api.business.sport.user;
import
com.antai.sport.http.server.common.base.Result
;
import
com.antai.sport.http.server.game.api.business.sport.user.dto.ReqLogin
;
import
com.antai.sport.http.server.game.api.business.sport.user.dto.RespLogin
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.http.ResponseEntity
;
...
...
@@ -9,7 +10,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.annotation.Resource
;
import
static
com
.
antai
.
sport
.
http
.
server
.
common
.
base
.
Result
.
success
;
import
static
com
.
antai
.
sport
.
http
.
server
.
common
.
util
.
ResultUtil
.
success
;
/**
* @Author liming
...
...
@@ -26,7 +27,7 @@ public class SportUserController {
@ApiOperation
(
value
=
"登录接口"
,
notes
=
"登录成功后返回长短token"
)
@PostMapping
(
"/login"
)
public
ResponseEntity
<
Result
>
login
(
@RequestBody
ReqLogin
param
)
{
public
ResponseEntity
<
Result
<
RespLogin
>
>
login
(
@RequestBody
ReqLogin
param
)
{
return
success
(
sportUserService
.
login
(
param
));
}
...
...
@@ -34,6 +35,6 @@ public class SportUserController {
@GetMapping
(
"/login/sms/captcha/{phone}"
)
public
ResponseEntity
<
Result
>
sendLoginSmsCaptcha
(
@PathVariable
String
phone
)
{
sportUserService
.
sendLoginSmsCaptcha
(
phone
);
return
success
(
true
);
return
success
();
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/SportUserService.java
View file @
164408e0
...
...
@@ -10,6 +10,7 @@ import com.antai.sport.http.server.common.util.RandomUtil;
import
com.antai.sport.http.server.constants.DeleteStatus
;
import
com.antai.sport.http.server.constants.LoginMode
;
import
com.antai.sport.http.server.game.api.business.sport.user.dto.ReqLogin
;
import
com.antai.sport.http.server.game.api.business.sport.user.dto.RespLogin
;
import
com.antai.sport.http.server.repository.sport.entity.SportUser
;
import
com.antai.sport.http.server.repository.sport.mapper.SportUserMapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -20,6 +21,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.DigestUtils
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -45,7 +47,7 @@ public class SportUserService {
@Resource
private
RedisTemplate
<
String
,
Object
>
redisTemplate
;
public
Result
login
(
ReqLogin
param
)
{
public
Result
<
RespLogin
>
login
(
ReqLogin
param
)
{
if
(
param
.
getMode
()
==
null
||
(!
param
.
getMode
().
equals
(
LoginMode
.
PASSWORD
)
&&
!
param
.
getMode
().
equals
(
LoginMode
.
SMS_CAPTCHA
)))
{
throw
new
BusinessException
(
"请选择正确的登录模式"
);
}
...
...
@@ -55,15 +57,17 @@ public class SportUserService {
List
<
SportUser
>
sportUserList
=
sportUserMapper
.
selectList
(
new
QueryWrapper
<
SportUser
>()
.
eq
(
"phone"
,
param
.
getUsername
())
.
eq
(
"deleted"
,
DeleteStatus
.
UNDELETED
));
if
(
sportUserList
.
isEmpty
())
{
throw
new
BusinessException
(
"用户名或密码错误"
);
}
SportUser
sportUser
=
sportUserList
.
get
(
0
);
Result
result
=
new
Result
();
Result
<
RespLogin
>
result
=
new
Result
();
SportUser
sportUser
;
if
(
param
.
getMode
().
equals
(
LoginMode
.
PASSWORD
))
{
if
(
sportUserList
.
isEmpty
())
{
throw
new
BusinessException
(
"用户不存在,请先使用手机短信验证码登录"
);
}
sportUser
=
sportUserList
.
get
(
0
);
if
(
sportUser
.
getPassword
()
==
null
)
{
throw
new
BusinessException
(
"当前用户还没有设置密码,请使用验证码方式登录"
);
throw
new
BusinessException
(
"当前用户还没有设置密码,请使用验证码方式登录
,在个人设置中设置密码
"
);
}
if
(
StringUtils
.
isBlank
(
param
.
getPassword
()))
{
throw
new
BusinessException
(
"请输入密码"
);
...
...
@@ -85,18 +89,34 @@ public class SportUserService {
if
(!
loginSmsCaptcha
.
equals
(
param
.
getSmsCaptcha
()))
{
throw
new
BusinessException
(
"短信验证码错误"
);
}
if
(
sportUserList
.
isEmpty
())
{
sportUser
=
new
SportUser
();
sportUser
.
setPhone
(
param
.
getUsername
());
sportUser
.
setCtDate
(
LocalDateTime
.
now
());
sportUser
.
setRoleInitialized
(
false
);
sportUser
.
setInfoInitialized
(
false
);
sportUser
.
setEquipmentInitialized
(
false
);
sportUserMapper
.
insert
(
sportUser
);
}
else
{
sportUser
=
sportUserList
.
get
(
0
);
}
redisTemplate
.
delete
(
redisKey
);
}
result
.
setRespMsg
(
"登录成功"
);
TokenVO
tokenVO
=
tokenService
.
initToken
(
param
.
getUsername
());
RespLogin
respLogin
=
new
RespLogin
();
respLogin
.
setInfoInitialized
(
sportUser
.
getInfoInitialized
());
respLogin
.
setRoleInitialized
(
sportUser
.
getRoleInitialized
());
respLogin
.
setEquipmentInitialized
(
sportUser
.
getEquipmentInitialized
());
result
.
setLongToken
(
tokenVO
.
getLongToken
());
result
.
setShortToken
(
tokenVO
.
getShortToken
());
result
.
setData
(
true
);
result
.
setData
(
respLogin
);
return
result
;
}
/**
* 发送验证码逻辑
*
* @param phone 电话号码
*/
public
void
sendLoginSmsCaptcha
(
String
phone
)
{
...
...
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/dto/RespLogin.java
0 → 100644
View file @
164408e0
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
user
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @Author liming
* @Date 2021/8/23 13:00
* @Email lmmax@126.com
* @Description:
*/
@Data
@ApiModel
(
"登录返回对象"
)
public
class
RespLogin
{
@ApiModelProperty
(
value
=
"是否已初始化个人信息"
)
private
Boolean
infoInitialized
;
@ApiModelProperty
(
value
=
"是否已初始化角色"
)
private
Boolean
roleInitialized
;
@ApiModelProperty
(
value
=
"是否已初始化设备配置"
)
private
Boolean
equipmentInitialized
;
}
repository/src/main/java/com/antai/sport/http/server/repository/sport/entity/SportUser.java
View file @
164408e0
package
com
.
antai
.
sport
.
http
.
server
.
repository
.
sport
.
entity
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.time.LocalDateTime
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 运动用户表
* </p>
*
* @author liming
* @since 2021-08-2
1
* @since 2021-08-2
3
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
...
...
@@ -58,6 +58,16 @@ public class SportUser implements Serializable {
*/
private
Integer
sex
;
/**
* 身高
*/
private
BigDecimal
height
;
/**
* 体重
*/
private
BigDecimal
weight
;
/**
* 头像
*/
...
...
@@ -84,9 +94,19 @@ public class SportUser implements Serializable {
private
String
city
;
/**
* 已初始化
* 初始化个人信息
*/
private
Boolean
infoInitialized
;
/**
* 初始化接角色
*/
private
Boolean
roleInitialized
;
/**
* 设备初始化
*/
private
Boolean
i
nitialized
;
private
Boolean
equipmentI
nitialized
;
/**
* 备注
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment