Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
e29ab850
Commit
e29ab850
authored
Sep 18, 2023
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
关注和粉丝
parent
4b76075a
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
207 additions
and
7 deletions
+207
-7
ch-core/src/main/java/com/wwdz/ch/core/util/DateTimeUtil.java
...ore/src/main/java/com/wwdz/ch/core/util/DateTimeUtil.java
+15
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/MessageRecordDaoImpl.java
...c/main/java/com/wwdz/ch/db/impl/MessageRecordDaoImpl.java
+1
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/MessageVo.java
...api/src/main/java/com/wwdz/ch/wx/entity/vo/MessageVo.java
+2
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/FollowFansRecordServiceImpl.java
...java/com/wwdz/ch/wx/impl/FollowFansRecordServiceImpl.java
+16
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/MessageServiceImpl.java
...src/main/java/com/wwdz/ch/wx/impl/MessageServiceImpl.java
+106
-5
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/MessageService.java
.../src/main/java/com/wwdz/ch/wx/service/MessageService.java
+9
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/MessageController.java
...i/src/main/java/com/wwdz/ch/wx/web/MessageController.java
+58
-0
No files found.
ch-core/src/main/java/com/wwdz/ch/core/util/DateTimeUtil.java
View file @
e29ab850
...
@@ -74,5 +74,20 @@ public class DateTimeUtil {
...
@@ -74,5 +74,20 @@ public class DateTimeUtil {
}
}
/**
* 判断是否是当前的日期
* @param date
* @param pattern
* @return
*/
public
static
boolean
isThisTime
(
Date
date
,
String
pattern
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
pattern
);
String
param
=
sdf
.
format
(
date
);
String
now
=
sdf
.
format
(
new
Date
());
if
(
param
.
equals
(
now
))
{
return
true
;
}
return
false
;
}
}
}
ch-dao/src/main/java/com/wwdz/ch/db/impl/MessageRecordDaoImpl.java
View file @
e29ab850
...
@@ -42,7 +42,7 @@ public class MessageRecordDaoImpl implements MessageRecordDao {
...
@@ -42,7 +42,7 @@ public class MessageRecordDaoImpl implements MessageRecordDao {
JdbcHelper
.
ifPresent
(
dto
.
getState
(),
criteria:
:
andStateEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getState
(),
criteria:
:
andStateEqualTo
);
//排除删除的消息
//排除删除的消息
JdbcHelper
.
ifPresent
(
dto
.
getExcluedState
(),
criteria:
:
andStateNotEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getExcluedState
(),
criteria:
:
andStateNotEqualTo
);
example
.
setOrderByClause
(
"
upd
ate_time desc"
);
example
.
setOrderByClause
(
"
cre
ate_time desc"
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
return
messageRecordMapper
.
selectByExample
(
example
);
return
messageRecordMapper
.
selectByExample
(
example
);
}
}
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/MessageVo.java
View file @
e29ab850
...
@@ -55,5 +55,7 @@ public class MessageVo implements Entity {
...
@@ -55,5 +55,7 @@ public class MessageVo implements Entity {
*/
*/
private
Date
createTime
;
private
Date
createTime
;
private
String
time
;
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/FollowFansRecordServiceImpl.java
View file @
e29ab850
...
@@ -135,10 +135,26 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
...
@@ -135,10 +135,26 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
List
<
FollowFansRecordVo
>
followFansRecordVos
=
new
ArrayList
<>();
List
<
FollowFansRecordVo
>
followFansRecordVos
=
new
ArrayList
<>();
dto
.
setFollowerId
(
dto
.
getSearchTargetId
());
dto
.
setFollowerId
(
dto
.
getSearchTargetId
());
List
<
FollowFansRecord
>
followFansRecordList
=
followFansRecordDao
.
findList
(
dto
);
List
<
FollowFansRecord
>
followFansRecordList
=
followFansRecordDao
.
findList
(
dto
);
//查询关注的人
FollowFansRecordRequestDto
followFansRecordRequestDto
=
new
FollowFansRecordRequestDto
();
followFansRecordRequestDto
.
setFansId
(
dto
.
getSearchTargetId
());
Result
followResult
=
findFollowList
(
followFansRecordRequestDto
);
if
(!
followResult
.
getSuccess
())
{
return
Result
.
failed
();
}
List
<
FollowFansRecord
>
followRecordList
=
(
List
<
FollowFansRecord
>)
followResult
.
getData
();
List
<
Long
>
followerIdList
=
followRecordList
.
stream
().
map
(
FollowFansRecord:
:
getFansId
).
collect
(
Collectors
.
toList
());
followFansRecordList
.
forEach
(
f
->
{
followFansRecordList
.
forEach
(
f
->
{
FollowFansRecordVo
followFansRecordVo
=
new
FollowFansRecordVo
();
FollowFansRecordVo
followFansRecordVo
=
new
FollowFansRecordVo
();
EntityMapper
.
copyAttribute
(
f
,
followFansRecordVo
);
EntityMapper
.
copyAttribute
(
f
,
followFansRecordVo
);
followFansRecordVo
.
setFansName
(
cacheUtil
.
getAppletUserNameById
(
f
.
getFansId
()));
followFansRecordVo
.
setFansName
(
cacheUtil
.
getAppletUserNameById
(
f
.
getFansId
()));
if
(
followerIdList
.
contains
(
f
.
getFansId
().
longValue
()))
{
followFansRecordVo
.
setRelation
(
"互相关注"
);
}
else
{
followFansRecordVo
.
setRelation
(
"回关"
);
}
followFansRecordVos
.
add
(
followFansRecordVo
);
followFansRecordVos
.
add
(
followFansRecordVo
);
});
});
return
Result
.
success
(
followFansRecordVos
);
return
Result
.
success
(
followFansRecordVos
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/MessageServiceImpl.java
View file @
e29ab850
package
com.wwdz.ch.wx.impl
;
package
com.wwdz.ch.wx.impl
;
import
com.github.pagehelper.PageInfo
;
import
com.wwdz.ch.core.consts.MessageEnum
;
import
com.wwdz.ch.core.consts.MessageEnum
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.type.PageSearchResult
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.CacheUtil
;
import
com.wwdz.ch.core.util.CacheUtil
;
import
com.wwdz.ch.core.util.DateTimeUtil
;
import
com.wwdz.ch.core.util.MediaUtil
;
import
com.wwdz.ch.core.util.StringUtil
;
import
com.wwdz.ch.db.dao.ItemDao
;
import
com.wwdz.ch.db.dao.MessageContentDao
;
import
com.wwdz.ch.db.dao.MessageContentDao
;
import
com.wwdz.ch.db.dao.MessageRecordDao
;
import
com.wwdz.ch.db.dao.MessageRecordDao
;
import
com.wwdz.ch.db.domain.Item
;
import
com.wwdz.ch.db.domain.MessageContent
;
import
com.wwdz.ch.db.domain.MessageContent
;
import
com.wwdz.ch.db.domain.MessageRecord
;
import
com.wwdz.ch.db.domain.MessageRecord
;
import
com.wwdz.ch.db.dto.MessageRecordRequestDto
;
import
com.wwdz.ch.db.dto.MessageRecordRequestDto
;
import
com.wwdz.ch.wx.entity.request.MessageRequestDto
;
import
com.wwdz.ch.wx.entity.request.MessageRequestDto
;
import
com.wwdz.ch.wx.entity.vo.MessageVo
;
import
com.wwdz.ch.wx.service.MessageService
;
import
com.wwdz.ch.wx.service.MessageService
;
import
com.xxdxxs.entity.Entity
;
import
com.xxdxxs.entity.Entity
;
import
com.xxdxxs.service.FormHandler
;
import
com.xxdxxs.service.FormHandler
;
...
@@ -22,9 +30,12 @@ import org.springframework.stereotype.Service;
...
@@ -22,9 +30,12 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
java.util.Date
;
import
java.awt.*
;
import
java.util.HashMap
;
import
java.text.SimpleDateFormat
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.List
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Service
@Service
public
class
MessageServiceImpl
implements
MessageService
{
public
class
MessageServiceImpl
implements
MessageService
{
...
@@ -37,6 +48,9 @@ public class MessageServiceImpl implements MessageService {
...
@@ -37,6 +48,9 @@ public class MessageServiceImpl implements MessageService {
@Autowired
@Autowired
MessageContentDao
messageContentDao
;
MessageContentDao
messageContentDao
;
@Autowired
ItemDao
itemDao
;
@Autowired
@Autowired
CacheUtil
cacheUtil
;
CacheUtil
cacheUtil
;
...
@@ -81,11 +95,98 @@ public class MessageServiceImpl implements MessageService {
...
@@ -81,11 +95,98 @@ public class MessageServiceImpl implements MessageService {
@Override
@Override
public
Result
findList
(
MessageRequestDto
messageRequestDto
)
{
public
Result
findList
(
MessageRequestDto
messageRequestDto
)
{
return
null
;
try
{
MessageRecordRequestDto
messageRecordRequestDto
=
new
MessageRecordRequestDto
();
messageRecordRequestDto
.
setReceiverId
(
messageRequestDto
.
getReceiverId
());
messageRecordRequestDto
.
setType
(
messageRequestDto
.
getType
());
List
<
MessageRecord
>
list
=
messageRecordDao
.
findList
(
messageRecordRequestDto
);
PageInfo
<
MessageRecord
>
pageInfo
=
new
PageInfo
<>(
list
);
List
<
Integer
>
idList
=
list
.
stream
().
map
(
MessageRecord:
:
getMessageId
).
collect
(
Collectors
.
toList
());
//查询消息内容
List
<
MessageContent
>
messageContentList
=
messageContentDao
.
findListByIds
(
idList
);
Map
<
Integer
,
MessageContent
>
messageContentMap
=
messageContentList
.
stream
().
collect
(
Collectors
.
toMap
(
MessageContent:
:
getId
,
Function
.
identity
()));
List
<
MessageVo
>
messageVos
=
new
ArrayList
<>();
list
.
forEach
(
m
->
{
MessageVo
messageVo
=
new
MessageVo
();
messageVo
.
setMessageId
(
m
.
getMessageId
());
messageVo
.
setSenderId
(
messageContentMap
.
get
(
m
.
getMessageId
()).
getSenderId
());
messageVo
.
setSenderName
(
cacheUtil
.
getAppletUserNameById
(
messageContentMap
.
get
(
m
.
getMessageId
()).
getSenderId
()));
messageVo
.
setReceiverId
(
m
.
getReceiverId
());
messageVo
.
setReceiverName
(
cacheUtil
.
getAppletUserNameById
(
m
.
getReceiverId
()));
messageVo
.
setType
(
m
.
getType
());
messageVo
.
setTypeName
(
MessageEnum
.
TypeEnum
.
getNameByCode
(
m
.
getType
()));
Date
messageCreateTime
=
m
.
getCreateTime
();
String
time
;
if
(
DateTimeUtil
.
isThisTime
(
messageCreateTime
,
"yyyy-MM-dd"
))
{
time
=
new
SimpleDateFormat
(
"HH:mm"
).
format
(
messageCreateTime
);
}
else
if
(
DateTimeUtil
.
isThisTime
(
messageCreateTime
,
"yyyy"
))
{
time
=
new
SimpleDateFormat
(
"MM-dd"
).
format
(
messageCreateTime
);
}
else
{
time
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
).
format
(
messageCreateTime
);
}
Map
<
String
,
Object
>
contentMap
=
new
HashMap
<>();
if
(
MessageEnum
.
TypeEnum
.
SHARE
.
getCode
()
==
m
.
getType
().
intValue
())
{
long
itemId
=
Long
.
valueOf
(
messageContentMap
.
get
(
m
.
getMessageId
()).
getContent
());
Item
item
=
itemDao
.
findDetails
(
itemId
);
contentMap
.
put
(
"item"
,
MediaUtil
.
getHomePageImage
(
item
.
getImages
(),
item
.
getVideos
()));
contentMap
.
put
(
"msg"
,
"分享了您的藏品"
);
}
else
if
(
MessageEnum
.
TypeEnum
.
COLLECT
.
getCode
()
==
m
.
getType
().
intValue
())
{
long
itemId
=
Long
.
valueOf
(
messageContentMap
.
get
(
m
.
getMessageId
()).
getContent
());
Item
item
=
itemDao
.
findDetails
(
itemId
);
contentMap
.
put
(
"item"
,
MediaUtil
.
getHomePageImage
(
item
.
getImages
(),
item
.
getVideos
()));
contentMap
.
put
(
"msg"
,
"收藏了您的藏品"
);
}
else
if
(
MessageEnum
.
TypeEnum
.
FOLLOW
.
getCode
()
==
m
.
getType
().
intValue
())
{
contentMap
.
put
(
"msg"
,
"关注了您"
);
}
contentMap
.
put
(
"time"
,
time
);
messageVo
.
setContent
(
contentMap
);
messageVos
.
add
(
messageVo
);
});
//把未读消息修改为已读
List
<
Integer
>
unreadList
=
list
.
stream
().
filter
(
m
->
m
.
getState
().
intValue
()
==
MessageEnum
.
StateEnum
.
UNREAD
.
getCode
()).
map
(
MessageRecord:
:
getMessageId
).
collect
(
Collectors
.
toList
());
unreadList
.
forEach
(
i
->
{
MessageRecord
record
=
new
MessageRecord
();
record
.
setId
(
i
);
record
.
setState
(
MessageEnum
.
StateEnum
.
READED
.
getCode
());
record
.
setUpdateTime
(
new
Date
());
messageRecordDao
.
update
(
record
);
});
return
Result
.
success
(
PageSearchResult
.
of
(
pageInfo
,
messageVos
));
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询对应消息列表 error : {}"
,
e
);
}
return
Result
.
failed
();
}
@Override
public
Result
countUnreadNumGroupByType
(
MessageRequestDto
messageRequestDto
)
{
try
{
MessageRecordRequestDto
messageRecordRequestDto
=
new
MessageRecordRequestDto
();
messageRecordRequestDto
.
setReceiverId
(
messageRequestDto
.
getReceiverId
());
messageRecordRequestDto
.
setState
(
MessageEnum
.
StateEnum
.
UNREAD
.
getCode
());
List
<
MessageRecord
>
list
=
messageRecordDao
.
findList
(
messageRecordRequestDto
);
Map
<
Integer
,
Long
>
typeNumMap
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
MessageRecord:
:
getType
,
Collectors
.
counting
()));
Map
<
Object
,
Object
>
map
=
new
HashMap
<>();
for
(
Map
.
Entry
<
Integer
,
Long
>
entry
:
typeNumMap
.
entrySet
())
{
int
type
=
entry
.
getKey
();
long
num
=
entry
.
getValue
();
map
.
put
(
type
,
num
);
}
}
return
Result
.
success
(
map
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"统计未读消息 error : {}"
,
e
);
}
return
Result
.
failed
();
}
@Override
@Override
public
Result
find
UnreadNum
(
MessageRequestDto
messageRequestDto
)
{
public
Result
count
UnreadNum
(
MessageRequestDto
messageRequestDto
)
{
try
{
try
{
if
(
messageRequestDto
.
getReceiverId
()
==
null
)
{
if
(
messageRequestDto
.
getReceiverId
()
==
null
)
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/MessageService.java
View file @
e29ab850
...
@@ -26,7 +26,15 @@ public interface MessageService {
...
@@ -26,7 +26,15 @@ public interface MessageService {
* @param messageRequestDto
* @param messageRequestDto
* @return
* @return
*/
*/
Result
findUnreadNum
(
MessageRequestDto
messageRequestDto
);
Result
countUnreadNum
(
MessageRequestDto
messageRequestDto
);
/**
* 按消息类型统计未读信息数量
* @param messageRequestDto
* @return
*/
Result
countUnreadNumGroupByType
(
MessageRequestDto
messageRequestDto
);
/**
/**
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/MessageController.java
0 → 100644
View file @
e29ab850
package
com.wwdz.ch.wx.web
;
import
com.alibaba.fastjson.JSON
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.wx.entity.request.MessageRequestDto
;
import
com.wwdz.ch.wx.service.MessageService
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
;
@RestController
@RequestMapping
(
"/wx/message"
)
public
class
MessageController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
MessageController
.
class
);
@Autowired
MessageService
messageService
;
@ApiOperation
(
value
=
"统计未读消息数量"
)
@PostMapping
(
"/countUnreadNum"
)
public
Result
countUnreadNum
(
@RequestBody
MessageRequestDto
dto
)
{
logger
.
info
(
"统计未读消息数量,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
dto
.
getReceiverId
()
==
null
)
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
messageService
.
countUnreadNum
(
dto
);
}
@ApiOperation
(
value
=
"根据消息类型统计未读消息数量"
)
@PostMapping
(
"/countUnreadNumGroupByType"
)
public
Result
countUnreadNumGroupByType
(
@RequestBody
MessageRequestDto
dto
)
{
logger
.
info
(
"根据消息类型统计未读消息数量,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
dto
.
getReceiverId
()
==
null
)
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
messageService
.
countUnreadNum
(
dto
);
}
@ApiOperation
(
value
=
"根据消息类型统计未读消息数量"
)
@PostMapping
(
"/findList"
)
public
Result
findList
(
@RequestBody
MessageRequestDto
dto
)
{
logger
.
info
(
"根据消息类型统计未读消息数量,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
dto
.
getReceiverId
()
==
null
)
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
messageService
.
findList
(
dto
);
}
}
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