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
2cf7ccd0
Commit
2cf7ccd0
authored
Mar 30, 2022
by
liming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
好友接口
parent
c9108fa5
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
279 additions
and
6 deletions
+279
-6
FriendRequestStatus.java
...ntai/sport/http/server/constants/FriendRequestStatus.java
+13
-0
FriendStatus.java
...a/com/antai/sport/http/server/constants/FriendStatus.java
+12
-0
FriendsController.java
...i/business/sport/social/controller/FriendsController.java
+25
-3
ReqFriendRequestResponse.java
...i/business/sport/social/dto/ReqFriendRequestResponse.java
+14
-0
RespFriendRequestToMe.java
.../api/business/sport/social/dto/RespFriendRequestToMe.java
+27
-0
SportUserFriendRequestBusinessMapper.java
...t/social/mapper/SportUserFriendRequestBusinessMapper.java
+12
-0
SportUserFriendsBusinessMapper.java
...s/sport/social/mapper/SportUserFriendsBusinessMapper.java
+4
-0
FriendsService.java
...ame/api/business/sport/social/service/FriendsService.java
+98
-2
SportUserController.java
...ver/game/api/business/sport/user/SportUserController.java
+6
-0
SportUserService.java
...server/game/api/business/sport/user/SportUserService.java
+17
-0
RespUserInfo.java
...server/game/api/business/sport/user/dto/RespUserInfo.java
+22
-0
SportUserFriendRequestBusinessMapper.xml
...per/sport/social/SportUserFriendRequestBusinessMapper.xml
+21
-0
SportUserFriendsBusinessMapper.xml
...es/mapper/sport/social/SportUserFriendsBusinessMapper.xml
+8
-1
No files found.
constants/src/main/java/com/antai/sport/http/server/constants/FriendRequestStatus.java
0 → 100644
View file @
2cf7ccd0
package
com
.
antai
.
sport
.
http
.
server
.
constants
;
/**
* @Author liming
* @Date 2021/8/23 15:42
* @Email lmmax@126.com
* @Description:
*/
public
class
FriendRequestStatus
{
public
final
static
Integer
WAIT
=
10
;
public
final
static
Integer
ACCEPT
=
20
;
public
final
static
Integer
REJECT
=
30
;
}
constants/src/main/java/com/antai/sport/http/server/constants/FriendStatus.java
0 → 100644
View file @
2cf7ccd0
package
com
.
antai
.
sport
.
http
.
server
.
constants
;
/**
* @Author liming
* @Date 2021/8/23 15:42
* @Email lmmax@126.com
* @Description:
*/
public
class
FriendStatus
{
public
final
static
Integer
ALONE
=
1
;
public
final
static
Integer
TOGETHER
=
2
;
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/controller/FriendsController.java
View file @
2cf7ccd0
...
@@ -2,14 +2,14 @@ package com.antai.sport.http.server.game.api.business.sport.social.controller;
...
@@ -2,14 +2,14 @@ package com.antai.sport.http.server.game.api.business.sport.social.controller;
import
com.antai.sport.http.server.common.annotation.LoginSportUser
;
import
com.antai.sport.http.server.common.annotation.LoginSportUser
;
import
com.antai.sport.http.server.common.base.Result
;
import
com.antai.sport.http.server.common.base.Result
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.ReqFriendRequestResponse
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.RespFriendRequestToMe
;
import
com.antai.sport.http.server.game.api.business.sport.social.service.FriendsService
;
import
com.antai.sport.http.server.game.api.business.sport.social.service.FriendsService
;
import
com.antai.sport.http.server.repository.sport.entity.SportUser
;
import
com.antai.sport.http.server.repository.sport.entity.SportUser
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.List
;
...
@@ -29,4 +29,26 @@ public class FriendsController {
...
@@ -29,4 +29,26 @@ public class FriendsController {
public
ResponseEntity
<
Result
<
List
<
Long
>>>
getFriends
(
@LoginSportUser
SportUser
loginUser
)
{
public
ResponseEntity
<
Result
<
List
<
Long
>>>
getFriends
(
@LoginSportUser
SportUser
loginUser
)
{
return
success
(
friendsService
.
getFriends
(
loginUser
));
return
success
(
friendsService
.
getFriends
(
loginUser
));
}
}
@ApiOperation
(
value
=
"查询发给我的好友请求"
)
@GetMapping
(
"/requests"
)
public
ResponseEntity
<
Result
<
List
<
RespFriendRequestToMe
>>>
getFriendsRequestToMe
(
@LoginSportUser
SportUser
loginUser
)
{
return
success
(
friendsService
.
getFriendsRequestToMe
(
loginUser
));
}
@ApiOperation
(
value
=
"发送好友请求"
,
notes
=
"当重复提交待确认好友申请或已经是好友时会报业务异常,应在前端展示"
)
@GetMapping
(
"/send/request/{targetUserId}"
)
public
ResponseEntity
<
Result
>
sendFriendRequest
(
@PathVariable
(
"targetUserId"
)
Long
targetUserId
,
@LoginSportUser
SportUser
loginUser
)
{
friendsService
.
sendFriendRequest
(
targetUserId
,
loginUser
);
return
success
();
}
@ApiOperation
(
value
=
"响应好友请求"
)
@PostMapping
(
"/response"
)
public
ResponseEntity
<
Result
>
requestResponse
(
@RequestBody
ReqFriendRequestResponse
param
,
@LoginSportUser
SportUser
loginUser
)
{
friendsService
.
requestResponse
(
param
,
loginUser
);
return
success
();
}
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/dto/ReqFriendRequestResponse.java
0 → 100644
View file @
2cf7ccd0
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
"好友响应请求参数"
)
public
class
ReqFriendRequestResponse
{
@ApiModelProperty
(
"好友请求id"
)
private
Long
requestId
;
@ApiModelProperty
(
"通过或拒绝"
)
private
Boolean
result
;
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/dto/RespFriendRequestToMe.java
0 → 100644
View file @
2cf7ccd0
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
@ApiModel
(
"好友请求"
)
@Data
public
class
RespFriendRequestToMe
{
@ApiModelProperty
(
"好友请求id"
)
private
Integer
requestId
;
@ApiModelProperty
(
"好友请求id"
)
private
Long
senderId
;
@ApiModelProperty
(
"状态 10:待接受 20:已接受 30:已拒绝"
)
private
Integer
status
;
@ApiModelProperty
(
"发出请求时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
createTime
;
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/mapper/SportUserFriendRequestBusinessMapper.java
0 → 100644
View file @
2cf7ccd0
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
mapper
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.RespFriendRequestToMe
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
public
interface
SportUserFriendRequestBusinessMapper
{
List
<
RespFriendRequestToMe
>
getFriendsRequestToMe
(
Long
sportUserId
);
Boolean
existFriendRequest
(
@Param
(
"sportUserId"
)
Long
sportUserId
,
@Param
(
"targetUserId"
)
Long
targetUserId
);
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/mapper/SportUserFriendsBusinessMapper.java
View file @
2cf7ccd0
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
mapper
;
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.List
;
public
interface
SportUserFriendsBusinessMapper
{
public
interface
SportUserFriendsBusinessMapper
{
List
<
Long
>
getFriends
(
Long
sportUserId
);
List
<
Long
>
getFriends
(
Long
sportUserId
);
Boolean
existFriend
(
@Param
(
"sportUserId"
)
Long
sportUserId
,
@Param
(
"targetUserId"
)
Long
targetUserId
);
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/service/FriendsService.java
View file @
2cf7ccd0
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
service
;
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
service
;
import
com.antai.sport.http.server.common.annotation.LoginSportUser
;
import
com.antai.sport.http.server.common.exception.BusinessException
;
import
com.antai.sport.http.server.constants.DeleteStatus
;
import
com.antai.sport.http.server.constants.FriendRequestStatus
;
import
com.antai.sport.http.server.constants.FriendStatus
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.ReqFriendRequestResponse
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.RespFriendRequestToMe
;
import
com.antai.sport.http.server.game.api.business.sport.social.mapper.SportUserFriendRequestBusinessMapper
;
import
com.antai.sport.http.server.game.api.business.sport.social.mapper.SportUserFriendsBusinessMapper
;
import
com.antai.sport.http.server.game.api.business.sport.social.mapper.SportUserFriendsBusinessMapper
;
import
com.antai.sport.http.server.repository.sport.entity.SportUser
;
import
com.antai.sport.http.server.repository.sport.entity.SportUser
;
import
com.antai.sport.http.server.repository.sport.entity.SportUserFriendRequest
;
import
com.antai.sport.http.server.repository.sport.entity.SportUserFriends
;
import
com.antai.sport.http.server.repository.sport.mapper.SportUserFriendRequestMapper
;
import
com.antai.sport.http.server.repository.sport.mapper.SportUserFriendsMapper
;
import
com.antai.sport.http.server.repository.sport.mapper.SportUserFriendsMapper
;
import
com.antai.sport.http.server.repository.sport.mapper.SportUserMapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
@Service
@Service
...
@@ -16,9 +28,93 @@ public class FriendsService {
...
@@ -16,9 +28,93 @@ public class FriendsService {
private
SportUserFriendsMapper
sportUserFriendsMapper
;
private
SportUserFriendsMapper
sportUserFriendsMapper
;
@Resource
@Resource
private
SportUserFriendsBusinessMapper
sportUserFriendsBusinessMapper
;
private
SportUserFriendsBusinessMapper
sportUserFriendsBusinessMapper
;
@Resource
private
SportUserFriendRequestBusinessMapper
sportUserFriendRequestBusinessMapper
;
@Resource
private
SportUserFriendRequestMapper
sportUserFriendRequestMapper
;
@Resource
private
SportUserMapper
sportUserMapper
;
public
List
<
Long
>
getFriends
(
@LoginSportUser
SportUser
loginUser
)
{
public
List
<
Long
>
getFriends
(
SportUser
loginUser
)
{
return
sportUserFriendsBusinessMapper
.
getFriends
(
loginUser
.
getId
());
return
sportUserFriendsBusinessMapper
.
getFriends
(
loginUser
.
getId
());
}
}
public
List
<
RespFriendRequestToMe
>
getFriendsRequestToMe
(
SportUser
loginUser
)
{
return
sportUserFriendRequestBusinessMapper
.
getFriendsRequestToMe
(
loginUser
.
getId
());
}
public
void
sendFriendRequest
(
Long
targetUserId
,
SportUser
loginUser
)
{
if
(
sportUserMapper
.
selectById
(
targetUserId
)
==
null
)
{
throw
new
BusinessException
(
"您请求的用户不存在"
);
}
if
(
sportUserFriendsBusinessMapper
.
existFriend
(
loginUser
.
getId
(),
targetUserId
))
{
throw
new
BusinessException
(
"你们已经是好友关系"
);
}
if
(
sportUserFriendRequestBusinessMapper
.
existFriendRequest
(
loginUser
.
getId
(),
targetUserId
))
{
throw
new
BusinessException
(
"您已经发起好友申请,不需要重复申请!"
);
}
SportUserFriendRequest
request
=
new
SportUserFriendRequest
();
request
.
setSportUserId
(
loginUser
.
getId
());
request
.
setTargetUserId
(
targetUserId
);
request
.
setStatus
(
FriendRequestStatus
.
WAIT
);
sportUserFriendRequestMapper
.
insert
(
request
);
}
public
void
requestResponse
(
ReqFriendRequestResponse
param
,
SportUser
loginUser
)
{
if
(
param
.
getResult
()
==
null
)
{
throw
new
BusinessException
(
"响应结果参数异常"
);
}
SportUserFriendRequest
request
=
sportUserFriendRequestMapper
.
selectById
(
param
.
getRequestId
());
if
(
request
==
null
)
{
throw
new
BusinessException
(
"好友请求不存在"
);
}
if
(
param
.
getResult
()
==
null
)
{
throw
new
BusinessException
(
"响应结果参数异常"
);
}
if
(!
request
.
getTargetUserId
().
equals
(
loginUser
.
getId
()))
{
throw
new
BusinessException
(
"请求好友不是当前用户,响应请求失败"
);
}
request
.
setStatus
(
param
.
getResult
()
?
FriendRequestStatus
.
ACCEPT
:
FriendRequestStatus
.
REJECT
);
request
.
setLmDate
(
LocalDateTime
.
now
());
sportUserFriendRequestMapper
.
updateById
(
request
);
if
(
param
.
getResult
())
{
//建立我和他的好友关系
QueryWrapper
<
SportUserFriends
>
myFriendQuery
=
new
QueryWrapper
<>();
myFriendQuery
.
eq
(
"deleted"
,
DeleteStatus
.
UNDELETED
).
eq
(
"sport_user_id"
,
request
.
getTargetUserId
())
.
eq
(
"friend_id"
,
request
.
getSportUserId
());
SportUserFriends
myFriend
=
sportUserFriendsMapper
.
selectOne
(
myFriendQuery
);
if
(
myFriend
==
null
)
{
myFriend
=
new
SportUserFriends
();
myFriend
.
setSportUserId
(
request
.
getTargetUserId
());
myFriend
.
setFriendId
(
request
.
getSportUserId
());
myFriend
.
setStatus
(
FriendStatus
.
TOGETHER
);
sportUserFriendsMapper
.
insert
(
myFriend
);
}
else
{
if
(
myFriend
.
getStatus
().
equals
(
FriendStatus
.
ALONE
))
{
myFriend
.
setStatus
(
FriendStatus
.
TOGETHER
);
sportUserFriendsMapper
.
updateById
(
myFriend
);
}
}
//建立他和我的好友关系
QueryWrapper
<
SportUserFriends
>
theirFriendQuery
=
new
QueryWrapper
<>();
theirFriendQuery
.
eq
(
"deleted"
,
DeleteStatus
.
UNDELETED
).
eq
(
"sport_user_id"
,
request
.
getSportUserId
())
.
eq
(
"friend_id"
,
request
.
getTargetUserId
());
SportUserFriends
theirFriend
=
sportUserFriendsMapper
.
selectOne
(
theirFriendQuery
);
if
(
theirFriend
==
null
)
{
theirFriend
=
new
SportUserFriends
();
theirFriend
.
setSportUserId
(
request
.
getSportUserId
());
theirFriend
.
setFriendId
(
request
.
getTargetUserId
());
theirFriend
.
setStatus
(
FriendStatus
.
TOGETHER
);
sportUserFriendsMapper
.
insert
(
theirFriend
);
}
else
{
if
(
theirFriend
.
getStatus
().
equals
(
FriendStatus
.
ALONE
))
{
theirFriend
.
setStatus
(
FriendStatus
.
TOGETHER
);
sportUserFriendsMapper
.
updateById
(
theirFriend
);
}
}
}
}
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/SportUserController.java
View file @
2cf7ccd0
...
@@ -73,6 +73,12 @@ public class SportUserController {
...
@@ -73,6 +73,12 @@ public class SportUserController {
return
success
();
return
success
();
}
}
@ApiOperation
(
value
=
"批量查询用户信息"
,
notes
=
"body传入id数组"
)
@PostMapping
(
"/users/info"
)
public
ResponseEntity
<
Result
<
List
<
RespUserInfo
>>>
userInfo
(
@RequestBody
List
<
Long
>
ids
)
{
return
success
(
sportUserService
.
userInfo
(
ids
));
}
// @ApiOperation(value = "用户角色信息获取")
// @ApiOperation(value = "用户角色信息获取")
// @GetMapping("/user/role")
// @GetMapping("/user/role")
// public ResponseEntity<Result<List<RespSportSection>>> getUserRole(@LoginSportUser SportUser loginUser) {
// public ResponseEntity<Result<List<RespSportSection>>> getUserRole(@LoginSportUser SportUser loginUser) {
...
...
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/SportUserService.java
View file @
2cf7ccd0
...
@@ -23,6 +23,7 @@ import org.springframework.data.redis.core.RedisTemplate;
...
@@ -23,6 +23,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.DigestUtils
;
import
org.springframework.util.DigestUtils
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
...
@@ -319,4 +320,20 @@ public class SportUserService {
...
@@ -319,4 +320,20 @@ public class SportUserService {
}
}
return
userInfo
;
return
userInfo
;
}
}
public
List
<
RespUserInfo
>
userInfo
(
List
<
Long
>
ids
){
QueryWrapper
<
SportUser
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
in
(
"id"
,
ids
);
List
<
SportUser
>
userList
=
sportUserMapper
.
selectList
(
queryWrapper
);
List
<
RespUserInfo
>
resultList
=
new
ArrayList
<>(
userList
.
size
());
userList
.
forEach
(
user
->{
RespUserInfo
item
=
new
RespUserInfo
();
item
.
setUserId
(
user
.
getId
());
item
.
setName
(
user
.
getNickname
());
item
.
setAvatar
(
user
.
getAvatar
());
resultList
.
add
(
item
);
});
return
resultList
;
}
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/user/dto/RespUserInfo.java
0 → 100644
View file @
2cf7ccd0
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
;
import
java.util.Map
;
@Data
@ApiModel
(
"用户信息"
)
public
class
RespUserInfo
{
@ApiModelProperty
(
"用户Id"
)
private
Long
userId
;
@ApiModelProperty
(
"用户姓名"
)
private
String
name
;
@ApiModelProperty
(
"头像"
)
private
String
avatar
;
@ApiModelProperty
(
"外观"
)
private
Map
<
String
,
String
>
Appearance
;
}
game-api/src/main/resources/mapper/sport/social/SportUserFriendRequestBusinessMapper.xml
0 → 100644
View file @
2cf7ccd0
<?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.game.api.business.sport.social.mapper.SportUserFriendRequestBusinessMapper"
>
<select
id=
"getFriendsRequestToMe"
resultType=
"com.antai.sport.http.server.game.api.business.sport.social.dto.RespFriendRequestToMe"
>
select id as requestId,sport_user_id as senderId,status,ct_date as createTime
from sport_user_friend_request
where deleted = 0
and target_user_id = #{sportUserId}
order by status,ct_date desc
</select>
<select
id=
"existFriendRequest"
resultType=
"java.lang.Boolean"
>
select count(0)>0
from sport_user_friend_request
where deleted = 0
and sport_user_id = #{sportUserId}
and target_user_id = #{targetUserId}
and status = 10
</select>
</mapper>
game-api/src/main/resources/mapper/sport/social/SportUserFriendsBusinessMapper.xml
View file @
2cf7ccd0
...
@@ -8,5 +8,12 @@
...
@@ -8,5 +8,12 @@
where deleted = 0
where deleted = 0
and sport_user_id = #{sportUserId}
and sport_user_id = #{sportUserId}
</select>
</select>
<select
id=
"existFriend"
resultType=
"java.lang.Boolean"
>
select count(1)>0
from sport_user_friends
where deleted = 0
and sport_user_id = #{sportUserId}
and friend_id = #{targetUserId}
</select>
</mapper>
</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