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
c60c749e
Commit
c60c749e
authored
Aug 21, 2021
by
liming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(初始化项目): 用户登录
parent
727c68a6
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
340 additions
and
41 deletions
+340
-41
Result.java
.../java/com/antai/sport/http/server/common/base/Result.java
+6
-0
GlobalControllerExceptionHandler.java
...er/common/exception/GlobalControllerExceptionHandler.java
+3
-2
pom.xml
constants/pom.xml
+19
-0
DeleteStatus.java
...a/com/antai/sport/http/server/constants/DeleteStatus.java
+12
-0
LoginMode.java
...java/com/antai/sport/http/server/constants/LoginMode.java
+14
-0
pom.xml
game-api/pom.xml
+5
-0
SportUserController.java
...ver/game/api/business/sport/user/SportUserController.java
+34
-0
SportUserService.java
...server/game/api/business/sport/user/SportUserService.java
+69
-0
ReqLogin.java
...ttp/server/game/api/business/sport/user/dto/ReqLogin.java
+29
-0
TestController.java
...sport/http/server/game/api/controller/TestController.java
+0
-39
pom.xml
pom.xml
+1
-0
SportUser.java
.../sport/http/server/repository/sport/entity/SportUser.java
+127
-0
SportUserMapper.java
.../http/server/repository/sport/mapper/SportUserMapper.java
+16
-0
SportUserMapper.xml
...itory/src/main/resources/mapper/sport/SportUserMapper.xml
+5
-0
No files found.
common/src/main/java/com/antai/sport/http/server/common/base/Result.java
View file @
c60c749e
...
...
@@ -89,4 +89,10 @@ public class Result {
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/exception/GlobalControllerExceptionHandler.java
View file @
c60c749e
...
...
@@ -29,16 +29,17 @@ public class GlobalControllerExceptionHandler {
public
String
profile
;
@ExceptionHandler
(
value
=
Exception
.
class
)
public
ResponseEntity
<
Result
>
businessExceptionHandler
(
HttpServletRequest
req
,
Exception
e
,
Model
model
)
throws
Exception
{
public
ResponseEntity
<
Result
>
businessExceptionHandler
(
HttpServletRequest
req
,
Exception
e
,
Model
model
)
{
String
operateUser
=
"no-user"
;
//日志打印异常
String
errorCode
=
UUIDUtil
.
createUUID
().
substring
(
0
,
8
);
logger
.
error
(
operateUser
+
"->request:"
+
req
.
getRequestURI
()
+
"-异常代码:"
+
errorCode
,
e
);
logger
.
error
(
operateUser
+
"->request:"
+
req
.
getRequestURI
()
+
"-异常代码:"
+
errorCode
+
"-"
+
e
.
getMessage
()
);
Result
baseDTO
=
new
Result
();
if
(
e
instanceof
BusinessException
)
{
baseDTO
.
setRespCode
(
RespCodeEnum
.
BUSINESS_ERROR
.
getCode
());
baseDTO
.
setRespMsg
(
e
.
getMessage
());
baseDTO
.
setRespMsg
(
e
.
getMessage
());
}
else
{
baseDTO
.
setRespCode
(
RespCodeEnum
.
CONTROLLER_ERROR
.
getCode
());
if
(
profile
!=
null
&&
profile
.
equals
(
"prod"
))
{
...
...
constants/pom.xml
0 → 100644
View file @
c60c749e
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
antai-sport-http-server
</artifactId>
<groupId>
com.antai.sport.http.server
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
constants
</artifactId>
<properties>
<maven.compiler.source>
11
</maven.compiler.source>
<maven.compiler.target>
11
</maven.compiler.target>
</properties>
</project>
\ No newline at end of file
constants/src/main/java/com/antai/sport/http/server/constants/DeleteStatus.java
0 → 100644
View file @
c60c749e
package
com
.
antai
.
sport
.
http
.
server
.
constants
;
/**
* @Author liming
* @Date 2021/8/21 21:32
* @Email lmmax@126.com
* @Description:
*/
public
class
DeleteStatus
{
public
static
final
byte
UNDELETED
=
0
;
public
static
final
byte
DELETED
=
1
;
}
constants/src/main/java/com/antai/sport/http/server/constants/LoginMode.java
0 → 100644
View file @
c60c749e
package
com
.
antai
.
sport
.
http
.
server
.
constants
;
/**
* @Author liming
* @Date 2021/8/21 21:14
* @Email lmmax@126.com
* @Description:
*/
public
class
LoginMode
{
//密码登录
public
final
static
Integer
PASSWORD
=
1
;
//短信验证码登录
public
final
static
Integer
SMS_CAPTCHA
=
1
;
}
game-api/pom.xml
View file @
c60c749e
...
...
@@ -34,6 +34,11 @@
<artifactId>
common
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.antai.sport.http.server
</groupId>
<artifactId>
constants
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependencies>
<build>
...
...
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/SportUserController.java
0 → 100644
View file @
c60c749e
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
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
static
com
.
antai
.
sport
.
http
.
server
.
common
.
base
.
Result
.
success
;
/**
* @Author liming
* @Date 2021/8/21 19:41
* @Email lmmax@126.com
* @Description:
*/
@RestController
@Api
(
tags
={
"用户相关接口"
})
public
class
SportUserController
{
@Resource
private
SportUserService
sportUserService
;
@ApiOperation
(
value
=
"登录接口"
,
notes
=
"登录成功后返回长短token"
)
@PostMapping
(
"/login"
)
public
ResponseEntity
<
Result
>
login
(
@RequestBody
ReqLogin
param
)
{
return
success
(
sportUserService
.
login
(
param
));
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/SportUserService.java
0 → 100644
View file @
c60c749e
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.common.exception.BusinessException
;
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.repository.sport.entity.SportUser
;
import
com.antai.sport.http.server.repository.sport.mapper.SportUserMapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.DigestUtils
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* @Author liming
* @Date 2021/8/21 19:41
* @Email lmmax@126.com
* @Description:
*/
@Service
public
class
SportUserService
{
@Resource
private
SportUserMapper
sportUserMapper
;
public
Result
login
(
ReqLogin
param
)
{
if
(
param
.
getMode
()
==
null
||
(!
param
.
getMode
().
equals
(
LoginMode
.
PASSWORD
)
&&
!
param
.
getMode
().
equals
(
LoginMode
.
SMS_CAPTCHA
)))
{
throw
new
BusinessException
(
"请选择正确的登录模式"
);
}
if
(
StringUtils
.
isBlank
(
param
.
getUsername
()))
{
throw
new
BusinessException
(
"请输入用户名"
);
}
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
();
if
(
param
.
getMode
().
equals
(
LoginMode
.
PASSWORD
))
{
if
(
sportUser
.
getPassword
()
==
null
)
{
throw
new
BusinessException
(
"当前用户还没有设置密码,请使用验证码方式登录"
);
}
if
(
StringUtils
.
isBlank
(
param
.
getPassword
()))
{
throw
new
BusinessException
(
"请输入密码"
);
}
String
hashPwd
=
DigestUtils
.
md5DigestAsHex
(
param
.
getPassword
().
getBytes
());
if
(
hashPwd
.
equals
(
sportUser
.
getPassword
()))
{
result
.
setRespMsg
(
"登录成功"
);
result
.
setData
(
true
);
}
else
{
throw
new
BusinessException
(
"用户名或密码错误"
);
}
}
else
{
if
(
StringUtils
.
isBlank
(
param
.
getSmsCaptcha
()))
{
throw
new
BusinessException
(
"请输入验证码"
);
}
}
return
result
;
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/dto/ReqLogin.java
0 → 100644
View file @
c60c749e
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
user
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Author liming
* @Date 2021/8/21 19:47
* @Email lmmax@126.com
* @Description:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
"登录接口传入参数"
)
public
class
ReqLogin
{
@ApiModelProperty
(
"登录模式 1.密码 2.短信验证码"
)
private
Integer
mode
;
@ApiModelProperty
(
"用户名"
)
private
String
username
;
@ApiModelProperty
(
"密码"
)
private
String
password
;
@ApiModelProperty
(
"短信验证码"
)
private
String
smsCaptcha
;
}
game-api/src/main/java/com/antai/sport/http/server/game/api/controller/TestController.java
deleted
100644 → 0
View file @
727c68a6
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
controller
;
import
com.antai.sport.http.server.common.base.Result
;
import
com.antai.sport.http.server.repository.base.entity.BaseArea
;
import
com.antai.sport.http.server.repository.base.mapper.BaseAreaMapper
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
antai
.
sport
.
http
.
server
.
common
.
base
.
Result
.
success
;
/**
* @author 厉明
* @date 2021/8/18 11:40
* @email lmmax@126.com
* @description
*/
@RestController
public
class
TestController
{
@Resource
private
BaseAreaMapper
baseAreaMapper
;
@GetMapping
(
"test"
)
public
ResponseEntity
<
Result
>
test
(
HttpServletRequest
request
,
BaseArea
baseArea
)
{
System
.
out
.
println
(
request
.
getHeader
(
"Authorization"
));
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
List
<
BaseArea
>
areaList
=
baseAreaMapper
.
selectList
(
null
);
result
.
put
(
"areaList"
,
areaList
);
return
success
(
result
);
}
}
pom.xml
View file @
c60c749e
...
...
@@ -19,6 +19,7 @@
<module>
profile
</module>
<module>
code-generator
</module>
<module>
common
</module>
<module>
constants
</module>
</modules>
...
...
repository/src/main/java/com/antai/sport/http/server/repository/sport/entity/SportUser.java
0 → 100644
View file @
c60c749e
package
com
.
antai
.
sport
.
http
.
server
.
repository
.
sport
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 运动用户表
* </p>
*
* @author liming
* @since 2021-08-21
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SportUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 手机号
*/
private
String
phone
;
/**
* 密码
*/
private
String
password
;
/**
* 昵称
*/
private
String
nickname
;
/**
* 真实名称
*/
private
String
realName
;
/**
* 生日
*/
private
LocalDateTime
birthday
;
/**
* 性别 1:男 2:女
*/
private
Integer
sex
;
/**
* 头像
*/
private
String
avatar
;
/**
* 级别
*/
private
Integer
level
;
/**
* 国家
*/
private
String
country
;
/**
* 省
*/
private
String
province
;
/**
* 市
*/
private
String
city
;
/**
* 已初始化
*/
private
Boolean
initialized
;
/**
* 备注
*/
private
String
remark
;
/**
* 排序号
*/
private
Integer
showOrder
;
/**
* 数据版本号
*/
private
Integer
version
;
/**
* 删除标记
*/
private
Integer
deleted
;
/**
* 创建时间
*/
private
LocalDateTime
ctDate
;
/**
* 最后修改人
*/
private
Integer
lmUserId
;
/**
* 最后修改时间
*/
private
LocalDateTime
lmDate
;
}
repository/src/main/java/com/antai/sport/http/server/repository/sport/mapper/SportUserMapper.java
0 → 100644
View file @
c60c749e
package
com
.
antai
.
sport
.
http
.
server
.
repository
.
sport
.
mapper
;
import
com.antai.sport.http.server.repository.sport.entity.SportUser
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* 运动用户表 Mapper 接口
* </p>
*
* @author liming
* @since 2021-08-21
*/
public
interface
SportUserMapper
extends
BaseMapper
<
SportUser
>
{
}
repository/src/main/resources/mapper/sport/SportUserMapper.xml
0 → 100644
View file @
c60c749e
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.antai.sport.http.server.repository.sport.mapper.SportUserMapper"
>
</mapper>
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