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
e0910118
Commit
e0910118
authored
Apr 06, 2022
by
liming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
聊天记录保存
parent
5acc3a4e
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
283 additions
and
5 deletions
+283
-5
ChatController.java
.../api/business/sport/social/controller/ChatController.java
+44
-0
FriendsController.java
...i/business/sport/social/controller/FriendsController.java
+3
-4
ReqChatHistoryQueryParam.java
...i/business/sport/social/dto/ReqChatHistoryQueryParam.java
+19
-0
ReqChatMessage.java
...er/game/api/business/sport/social/dto/ReqChatMessage.java
+20
-0
RespChatHistory.java
...r/game/api/business/sport/social/dto/RespChatHistory.java
+22
-0
SportChatHistoryBusinessMapper.java
...s/sport/social/mapper/SportChatHistoryBusinessMapper.java
+13
-0
ChatService.java
...r/game/api/business/sport/social/service/ChatService.java
+44
-0
FriendsService.java
...ame/api/business/sport/social/service/FriendsService.java
+5
-1
SportChatHistoryBusinessMapper.xml
...es/mapper/sport/social/SportChatHistoryBusinessMapper.xml
+16
-0
SportChatHistory.java
...http/server/repository/sport/entity/SportChatHistory.java
+76
-0
SportChatHistoryMapper.java
...erver/repository/sport/mapper/SportChatHistoryMapper.java
+16
-0
SportChatHistoryMapper.xml
...rc/main/resources/mapper/sport/SportChatHistoryMapper.xml
+5
-0
No files found.
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/controller/ChatController.java
0 → 100644
View file @
e0910118
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.base.Result
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.ReqChatHistoryQueryParam
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.ReqChatMessage
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.RespChatHistory
;
import
com.antai.sport.http.server.game.api.business.sport.social.service.ChatService
;
import
com.antai.sport.http.server.repository.sport.entity.SportUser
;
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.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
static
com
.
antai
.
sport
.
http
.
server
.
common
.
util
.
ResultUtil
.
success
;
@RestController
@Api
(
tags
=
{
"社交相关接口"
})
@RequestMapping
(
"/chat"
)
public
class
ChatController
{
@Resource
private
ChatService
chatService
;
@ApiOperation
(
value
=
"发送聊天信息"
,
notes
=
"data中为聊天记录id"
)
@PostMapping
(
"message"
)
public
ResponseEntity
<
Result
<
Long
>>
sendMessage
(
@RequestBody
ReqChatMessage
message
,
@LoginSportUser
SportUser
loginUser
)
{
return
success
(
chatService
.
sendMessage
(
message
,
loginUser
));
}
@ApiOperation
(
value
=
"查询聊天记录"
)
@PostMapping
(
"history"
)
public
ResponseEntity
<
Result
<
List
<
RespChatHistory
>>>
getChatHistory
(
@RequestBody
ReqChatHistoryQueryParam
param
)
{
return
success
(
chatService
.
getChatHistory
(
param
));
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/controller/FriendsController.java
View file @
e0910118
...
...
@@ -36,11 +36,10 @@ public class FriendsController {
return
success
(
friendsService
.
getFriendsRequestToMe
(
loginUser
));
}
@ApiOperation
(
value
=
"发送好友请求"
,
notes
=
"当重复提交待确认好友申请或已经是好友时会报业务异常,应在前端展示"
)
@ApiOperation
(
value
=
"发送好友请求"
,
notes
=
"
data中为好友请求持久化Id,
当重复提交待确认好友申请或已经是好友时会报业务异常,应在前端展示"
)
@GetMapping
(
"/send/request/{targetUserId}"
)
public
ResponseEntity
<
Result
>
sendFriendRequest
(
@PathVariable
(
"targetUserId"
)
Long
targetUserId
,
@LoginSportUser
SportUser
loginUser
)
{
friendsService
.
sendFriendRequest
(
targetUserId
,
loginUser
);
return
success
();
public
ResponseEntity
<
Result
<
Long
>>
sendFriendRequest
(
@PathVariable
(
"targetUserId"
)
Long
targetUserId
,
@LoginSportUser
SportUser
loginUser
)
{
return
success
(
friendsService
.
sendFriendRequest
(
targetUserId
,
loginUser
));
}
@ApiOperation
(
value
=
"响应好友请求"
)
...
...
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/dto/ReqChatHistoryQueryParam.java
0 → 100644
View file @
e0910118
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
;
@ApiModel
(
"聊天记录查询请求对象"
)
@Data
public
class
ReqChatHistoryQueryParam
{
@ApiModelProperty
(
"聊天室键值"
)
private
String
roomKey
;
@ApiModelProperty
(
"从哪条记录之后开始查询,传入 0 的话就取最新的"
)
private
Long
sinceId
;
@ApiModelProperty
(
"查询记录条数,传入0时默认20条"
)
private
Integer
querySize
;
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/dto/ReqChatMessage.java
0 → 100644
View file @
e0910118
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
;
@ApiModel
(
"聊天信息"
)
@Data
public
class
ReqChatMessage
{
@ApiModelProperty
(
"接收人id:聊天室聊天可不填"
)
private
Long
receiverId
;
@ApiModelProperty
(
"聊天内容"
)
private
String
content
;
@ApiModelProperty
(
"聊天室key"
)
private
String
roomKey
;
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/dto/RespChatHistory.java
0 → 100644
View file @
e0910118
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
;
@Data
@ApiModel
(
"聊天历史对象"
)
public
class
RespChatHistory
{
@ApiModelProperty
(
"消息Id"
)
private
Long
id
;
@ApiModelProperty
(
"发送者Id"
)
private
Long
senderId
;
@ApiModelProperty
(
"发送时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
time
;
@ApiModelProperty
(
"聊天内容"
)
private
String
content
;
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/mapper/SportChatHistoryBusinessMapper.java
0 → 100644
View file @
e0910118
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
mapper
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.ReqChatHistoryQueryParam
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.RespChatHistory
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
public
interface
SportChatHistoryBusinessMapper
{
List
<
RespChatHistory
>
getChatHistory
(
@Param
(
"param"
)
ReqChatHistoryQueryParam
param
);
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/service/ChatService.java
0 → 100644
View file @
e0910118
package
com
.
antai
.
sport
.
http
.
server
.
game
.
api
.
business
.
sport
.
social
.
service
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.ReqChatHistoryQueryParam
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.ReqChatMessage
;
import
com.antai.sport.http.server.game.api.business.sport.social.dto.RespChatHistory
;
import
com.antai.sport.http.server.game.api.business.sport.social.mapper.SportChatHistoryBusinessMapper
;
import
com.antai.sport.http.server.repository.sport.entity.SportChatHistory
;
import
com.antai.sport.http.server.repository.sport.entity.SportUser
;
import
com.antai.sport.http.server.repository.sport.mapper.SportChatHistoryMapper
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.util.Collections
;
import
java.util.List
;
@Service
public
class
ChatService
{
@Resource
private
SportChatHistoryMapper
sportChatHistoryMapper
;
@Resource
private
SportChatHistoryBusinessMapper
sportChatHistoryBusinessMapper
;
public
Long
sendMessage
(
ReqChatMessage
message
,
SportUser
loginUser
)
{
SportChatHistory
history
=
new
SportChatHistory
();
history
.
setSenderId
(
loginUser
.
getId
());
history
.
setReceiverId
(
message
.
getReceiverId
());
history
.
setContent
(
message
.
getContent
());
history
.
setRoomKey
(
message
.
getRoomKey
());
history
.
setCtDate
(
LocalDateTime
.
now
());
sportChatHistoryMapper
.
insert
(
history
);
return
history
.
getId
();
}
public
List
<
RespChatHistory
>
getChatHistory
(
ReqChatHistoryQueryParam
param
)
{
if
(
param
.
getQuerySize
()
==
null
||
param
.
getQuerySize
()
==
0
)
{
param
.
setQuerySize
(
20
);
}
List
<
RespChatHistory
>
resultList
=
sportChatHistoryBusinessMapper
.
getChatHistory
(
param
);
Collections
.
reverse
(
resultList
);
return
resultList
;
}
}
game-api/src/main/java/com/antai/sport/http/server/game/api/business/sport/social/service/FriendsService.java
View file @
e0910118
...
...
@@ -16,6 +16,7 @@ import com.antai.sport.http.server.repository.sport.mapper.SportUserFriendsMappe
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.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
...
...
@@ -43,7 +44,8 @@ public class FriendsService {
return
sportUserFriendRequestBusinessMapper
.
getFriendsRequestToMe
(
loginUser
.
getId
());
}
public
void
sendFriendRequest
(
Long
targetUserId
,
SportUser
loginUser
)
{
@Transactional
public
Long
sendFriendRequest
(
Long
targetUserId
,
SportUser
loginUser
)
{
if
(
sportUserMapper
.
selectById
(
targetUserId
)
==
null
)
{
throw
new
BusinessException
(
"您请求的用户不存在"
);
}
...
...
@@ -58,8 +60,10 @@ public class FriendsService {
request
.
setTargetUserId
(
targetUserId
);
request
.
setStatus
(
FriendRequestStatus
.
WAIT
);
sportUserFriendRequestMapper
.
insert
(
request
);
return
request
.
getId
();
}
@Transactional
public
void
requestResponse
(
ReqFriendRequestResponse
param
,
SportUser
loginUser
)
{
if
(
param
.
getResult
()
==
null
)
{
throw
new
BusinessException
(
"响应结果参数异常"
);
...
...
game-api/src/main/resources/mapper/sport/social/SportChatHistoryBusinessMapper.xml
0 → 100644
View file @
e0910118
<?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.SportChatHistoryBusinessMapper"
>
<select
id=
"getChatHistory"
resultType=
"com.antai.sport.http.server.game.api.business.sport.social.dto.RespChatHistory"
>
select id,sender_id,ct_date as time,content
from sport_chat_history t1
where t1.deleted = 0
and t1.room_key = #{param.roomKey}
<if
test=
"param.sinceId != null and param.sinceId != 0"
>
and t1.id
<
#{param.sinceId}
</if>
order by t1.id desc
limit #{param.querySize}
</select>
</mapper>
repository/src/main/java/com/antai/sport/http/server/repository/sport/entity/SportChatHistory.java
0 → 100644
View file @
e0910118
package
com
.
antai
.
sport
.
http
.
server
.
repository
.
sport
.
entity
;
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
;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-04-06
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SportChatHistory
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 发送者用户id
*/
private
Long
senderId
;
/**
* 接受人id
*/
private
Long
receiverId
;
/**
* 聊天室key
*/
private
String
roomKey
;
/**
* 聊天内容
*/
private
String
content
;
/**
* 状态 1:未读 2:已读
*/
private
Integer
status
;
/**
* 排序号
*/
private
Integer
showOrder
;
/**
* 数据版本号
*/
private
Integer
version
;
/**
* 删除标记
*/
private
Integer
deleted
;
/**
* 创建时间
*/
private
LocalDateTime
ctDate
;
}
repository/src/main/java/com/antai/sport/http/server/repository/sport/mapper/SportChatHistoryMapper.java
0 → 100644
View file @
e0910118
package
com
.
antai
.
sport
.
http
.
server
.
repository
.
sport
.
mapper
;
import
com.antai.sport.http.server.repository.sport.entity.SportChatHistory
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-04-06
*/
public
interface
SportChatHistoryMapper
extends
BaseMapper
<
SportChatHistory
>
{
}
repository/src/main/resources/mapper/sport/SportChatHistoryMapper.xml
0 → 100644
View file @
e0910118
<?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.SportChatHistoryMapper"
>
</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