Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
safe-campus-bbs
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
万成波
safe-campus-bbs
Commits
945df793
Commit
945df793
authored
Sep 09, 2025
by
万成波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户操作事件积分
parent
1e2257b3
Changes
39
Hide whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
516 additions
and
101 deletions
+516
-101
safe-campus-bbs-ui/src/views/pointsManage/PointsRulesDialog.vue
...ampus-bbs-ui/src/views/pointsManage/PointsRulesDialog.vue
+2
-2
safe-campus-common/src/main/java/com/tangguo/common/domain/OperateDetail.java
...rc/main/java/com/tangguo/common/domain/OperateDetail.java
+33
-0
safe-campus-common/src/main/java/com/tangguo/common/domain/PointsDetail.java
...src/main/java/com/tangguo/common/domain/PointsDetail.java
+5
-0
safe-campus-moment/pom.xml
safe-campus-moment/pom.xml
+1
-1
safe-campus-moment/src/main/java/com/tangguo/common/constant/MomentConstant.java
...main/java/com/tangguo/common/constant/MomentConstant.java
+3
-3
safe-campus-moment/src/main/java/com/tangguo/common/enums/OperateType.java
...t/src/main/java/com/tangguo/common/enums/OperateType.java
+31
-0
safe-campus-moment/src/main/java/com/tangguo/common/listener/OperateEvent.java
...c/main/java/com/tangguo/common/listener/OperateEvent.java
+29
-0
safe-campus-moment/src/main/java/com/tangguo/common/listener/OperateEventListener.java
...ava/com/tangguo/common/listener/OperateEventListener.java
+42
-0
safe-campus-moment/src/main/java/com/tangguo/controller/pc/BbsMomentCommentController.java
...com/tangguo/controller/pc/BbsMomentCommentController.java
+1
-1
safe-campus-moment/src/main/java/com/tangguo/controller/pc/BbsSensitiveWordController.java
...com/tangguo/controller/pc/BbsSensitiveWordController.java
+1
-1
safe-campus-moment/src/main/java/com/tangguo/domain/OperateDetail.java
...oment/src/main/java/com/tangguo/domain/OperateDetail.java
+0
-16
safe-campus-moment/src/main/java/com/tangguo/domain/vo/DataImportResult.java
...src/main/java/com/tangguo/domain/vo/DataImportResult.java
+1
-1
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentCommentService.java
...in/java/com/tangguo/service/IBbsMomentCommentService.java
+8
-8
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentLikeService.java
.../main/java/com/tangguo/service/IBbsMomentLikeService.java
+8
-0
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentVoteOptionService.java
...java/com/tangguo/service/IBbsMomentVoteOptionService.java
+8
-8
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentVoteService.java
.../main/java/com/tangguo/service/IBbsMomentVoteService.java
+8
-0
safe-campus-moment/src/main/java/com/tangguo/service/IBbsSensitiveWordService.java
...in/java/com/tangguo/service/IBbsSensitiveWordService.java
+1
-1
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentCommentServiceImpl.java
...com/tangguo/service/impl/BbsMomentCommentServiceImpl.java
+15
-22
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentLikeServiceImpl.java
...va/com/tangguo/service/impl/BbsMomentLikeServiceImpl.java
+14
-0
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentServiceImpl.java
...n/java/com/tangguo/service/impl/BbsMomentServiceImpl.java
+47
-5
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentVoteOptionServiceImpl.java
.../tangguo/service/impl/BbsMomentVoteOptionServiceImpl.java
+14
-12
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentVoteServiceImpl.java
...va/com/tangguo/service/impl/BbsMomentVoteServiceImpl.java
+14
-0
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsSensitiveWordServiceImpl.java
...com/tangguo/service/impl/BbsSensitiveWordServiceImpl.java
+1
-1
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsTopicServiceImpl.java
...in/java/com/tangguo/service/impl/BbsTopicServiceImpl.java
+4
-4
safe-campus-points/src/main/java/com/tangguo/controller/BbsUserPointsController.java
.../java/com/tangguo/controller/BbsUserPointsController.java
+11
-0
safe-campus-points/src/main/java/com/tangguo/controller/BbsUserPointsExchangeController.java
...m/tangguo/controller/BbsUserPointsExchangeController.java
+0
-4
safe-campus-points/src/main/java/com/tangguo/enums/PointsSettingType.java
...ts/src/main/java/com/tangguo/enums/PointsSettingType.java
+8
-0
safe-campus-points/src/main/java/com/tangguo/listener/OperateListener.java
...s/src/main/java/com/tangguo/listener/OperateListener.java
+43
-0
safe-campus-points/src/main/java/com/tangguo/listener/PointsListener.java
...ts/src/main/java/com/tangguo/listener/PointsListener.java
+1
-1
safe-campus-points/src/main/java/com/tangguo/mapper/BbsPointsSettingMapper.java
.../main/java/com/tangguo/mapper/BbsPointsSettingMapper.java
+5
-0
safe-campus-points/src/main/java/com/tangguo/mapper/BbsUserPointsMapper.java
...src/main/java/com/tangguo/mapper/BbsUserPointsMapper.java
+4
-1
safe-campus-points/src/main/java/com/tangguo/service/IBbsPointsSettingService.java
...in/java/com/tangguo/service/IBbsPointsSettingService.java
+17
-0
safe-campus-points/src/main/java/com/tangguo/service/IBbsUserPointsService.java
.../main/java/com/tangguo/service/IBbsUserPointsService.java
+9
-0
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsPointsSettingServiceImpl.java
...com/tangguo/service/impl/BbsPointsSettingServiceImpl.java
+70
-4
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
...va/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
+13
-1
safe-campus-points/src/main/resources/mapper/BbsPointsSettingMapper.xml
...ints/src/main/resources/mapper/BbsPointsSettingMapper.xml
+14
-1
safe-campus-points/src/main/resources/mapper/BbsUserPointsMapper.xml
...-points/src/main/resources/mapper/BbsUserPointsMapper.xml
+23
-1
safe-campus-quartz/pom.xml
safe-campus-quartz/pom.xml
+5
-0
safe-campus-quartz/src/main/java/com/tangguo/quartz/task/RefreshTopicRankingTask.java
...java/com/tangguo/quartz/task/RefreshTopicRankingTask.java
+2
-2
No files found.
safe-campus-bbs-ui/src/views/pointsManage/PointsRulesDialog.vue
View file @
945df793
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<div
class=
"add-box"
>
<div
class=
"add-box"
>
<div
class=
"label-box"
>
加分设置
</div>
<div
class=
"label-box"
>
加分设置
</div>
<el-table
:data=
"addList"
>
<el-table
:data=
"addList"
>
<el-table-column
label=
"加分行为"
prop=
"
agent
Name"
align=
"center"
></el-table-column>
<el-table-column
label=
"加分行为"
prop=
"
operate
Name"
align=
"center"
></el-table-column>
<el-table-column
label=
"分值"
prop=
"operatePoints"
align=
"center"
>
<el-table-column
label=
"分值"
prop=
"operatePoints"
align=
"center"
>
<template
#default
="
{row}">
<template
#default
="
{row}">
<el-input
v-model=
"row.operatePoints"
></el-input>
<el-input
v-model=
"row.operatePoints"
></el-input>
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
<div
class=
"decrease-box"
>
<div
class=
"decrease-box"
>
<div
class=
"label-box"
>
减分设置
</div>
<div
class=
"label-box"
>
减分设置
</div>
<el-table
:data=
"decreaseList"
>
<el-table
:data=
"decreaseList"
>
<el-table-column
label=
"减分行为"
prop=
"
agent
Name"
align=
"center"
></el-table-column>
<el-table-column
label=
"减分行为"
prop=
"
operate
Name"
align=
"center"
></el-table-column>
<el-table-column
label=
"分值"
prop=
"operatePoints"
align=
"center"
>
<el-table-column
label=
"分值"
prop=
"operatePoints"
align=
"center"
>
<
template
#default
="{
row
}"
>
<
template
#default
="{
row
}"
>
<el-input
v-model=
"row.operatePoints"
></el-input>
<el-input
v-model=
"row.operatePoints"
></el-input>
...
...
safe-campus-common/src/main/java/com/tangguo/common/domain/OperateDetail.java
0 → 100644
View file @
945df793
package
com
.
tangguo
.
common
.
domain
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 操作明细
*
* @author 谈笑
* @createTime 2025-08-29 17:23:29 星期五
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
OperateDetail
{
/**
* 链路追踪Id
*/
private
String
linkTracId
;
/**
* 用户名
*/
private
String
userName
;
/**
* 操作编码 (积分配置编码)
*/
private
String
operateCode
;
}
safe-campus-common/src/main/java/com/tangguo/common/domain/PointsDetail.java
View file @
945df793
...
@@ -15,6 +15,11 @@ public class PointsDetail implements Serializable {
...
@@ -15,6 +15,11 @@ public class PointsDetail implements Serializable {
private
static
final
long
serialVersionUID
=
8057307839793769207L
;
private
static
final
long
serialVersionUID
=
8057307839793769207L
;
/**
* 链路追踪Id
*/
private
String
linkTracId
;
/**
/**
* 用户名 (必填)
* 用户名 (必填)
*/
*/
...
...
safe-campus-moment/pom.xml
View file @
945df793
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
com.tangguo
</groupId>
<groupId>
com.tangguo
</groupId>
<artifactId>
safe-campus-
quartz
</artifactId>
<artifactId>
safe-campus-
common
</artifactId>
</dependency>
</dependency>
</dependencies>
</dependencies>
...
...
safe-campus-moment/src/main/java/com/tangguo/common/constant/
Topic
Constant.java
→
safe-campus-moment/src/main/java/com/tangguo/common/constant/
Moment
Constant.java
View file @
945df793
package
com
.
tangguo
.
common
.
constant
;
package
com
.
tangguo
.
common
.
constant
;
/**
/**
*
主题
常量
*
动态
常量
*
*
* @author 谈笑
* @author 谈笑
* @createTime 2025-09-04 21:19:10 星期四
* @createTime 2025-09-04 21:19:10 星期四
*/
*/
public
interface
Topic
Constant
{
public
interface
Moment
Constant
{
/**
/**
* 热搜主题
* 热搜主题
*/
*/
String
HOT_
SCORE_CACHE_KEY
=
"topic.hot"
;
String
HOT_
TOPIC
=
"topic.hot"
;
}
}
safe-campus-moment/src/main/java/com/tangguo/common/enums/OperateType.java
0 → 100644
View file @
945df793
package
com
.
tangguo
.
common
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* 积分事件枚举
*
* @author 谈笑
* @createTime 2025-09-09 11:09:01 星期二
*/
@Getter
@AllArgsConstructor
public
enum
OperateType
{
FBDT
(
"FBTD"
,
"发布动态"
),
DZDT
(
"DZDT"
,
"点赞动态"
),
PLDT
(
"PLDT"
,
"评论动态"
),
TPDT
(
"CYTP"
,
"投票动态"
),
SCDT
(
"SCDT"
,
"删除动态"
);
private
final
String
code
;
private
final
String
desc
;
}
safe-campus-moment/src/main/java/com/tangguo/common/listener/OperateEvent.java
0 → 100644
View file @
945df793
package
com
.
tangguo
.
common
.
listener
;
import
com.tangguo.common.enums.OperateType
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 操作事件对象
*
* @author 谈笑
* @createTime 2025-09-09 11:27:22 星期二
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
OperateEvent
{
/**
* 用户名
*/
private
String
userName
;
/**
* 操作类型
*/
private
OperateType
operateType
;
}
safe-campus-moment/src/main/java/com/tangguo/common/listener/OperateEventListener.java
0 → 100644
View file @
945df793
package
com
.
tangguo
.
common
.
listener
;
import
cn.hutool.core.util.IdUtil
;
import
com.tangguo.common.constant.ActiveMQConstant
;
import
com.tangguo.common.domain.OperateDetail
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.jms.core.JmsTemplate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.event.TransactionalEventListener
;
import
javax.annotation.Resource
;
/**
* 操作事件监听器
*
* @author 谈笑
* @createTime 2025-09-09 11:26:28 星期二
*/
@Slf4j
@Component
public
class
OperateEventListener
{
@Resource
private
JmsTemplate
jmsTemplate
;
/**
* 处理用户操作事件
*
* @param event 事件对象
*/
@TransactionalEventListener
(
classes
=
OperateEvent
.
class
,
fallbackExecution
=
true
)
public
void
handle
(
OperateEvent
event
)
{
OperateDetail
detail
=
new
OperateDetail
();
detail
.
setLinkTracId
(
IdUtil
.
fastUUID
());
detail
.
setUserName
(
event
.
getUserName
());
detail
.
setOperateCode
(
event
.
getOperateType
().
getCode
());
log
.
info
(
"=> 开始处理用户操作事件:{}"
,
detail
);
this
.
jmsTemplate
.
convertAndSend
(
ActiveMQConstant
.
Operate
.
USER_OPERATE
,
detail
);
}
}
safe-campus-moment/src/main/java/com/tangguo/controller/pc/BbsMomentCommentController.java
View file @
945df793
...
@@ -63,7 +63,7 @@ public class BbsMomentCommentController extends BaseController {
...
@@ -63,7 +63,7 @@ public class BbsMomentCommentController extends BaseController {
@Log
(
title
=
"动态评论记录"
,
businessType
=
BusinessType
.
DELETE
)
@Log
(
title
=
"动态评论记录"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
public
AjaxResult
remove
(
@PathVariable
Long
id
)
{
public
AjaxResult
remove
(
@PathVariable
Long
id
)
{
this
.
bbsMomentCommentService
.
delete
Comment
(
id
);
this
.
bbsMomentCommentService
.
delete
MomentComments
(
id
);
return
AjaxResult
.
success
();
return
AjaxResult
.
success
();
}
}
...
...
safe-campus-moment/src/main/java/com/tangguo/controller/pc/BbsSensitiveWordController.java
View file @
945df793
...
@@ -6,7 +6,7 @@ import com.tangguo.common.core.domain.AjaxResult;
...
@@ -6,7 +6,7 @@ import com.tangguo.common.core.domain.AjaxResult;
import
com.tangguo.common.core.page.TableDataInfo
;
import
com.tangguo.common.core.page.TableDataInfo
;
import
com.tangguo.common.enums.BusinessType
;
import
com.tangguo.common.enums.BusinessType
;
import
com.tangguo.domain.BbsSensitiveWord
;
import
com.tangguo.domain.BbsSensitiveWord
;
import
com.tangguo.domain.DataImportResult
;
import
com.tangguo.domain.
vo.
DataImportResult
;
import
com.tangguo.service.IBbsSensitiveWordService
;
import
com.tangguo.service.IBbsSensitiveWordService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
...
safe-campus-moment/src/main/java/com/tangguo/domain/OperateDetail.java
deleted
100644 → 0
View file @
1e2257b3
package
com
.
tangguo
.
domain
;
import
lombok.Data
;
/**
* 操作明细
*
* @author 谈笑
* @createTime 2025-09-04 22:33:53 星期四
*/
@Data
public
class
OperateDetail
{
}
safe-campus-moment/src/main/java/com/tangguo/domain/DataImportResult.java
→
safe-campus-moment/src/main/java/com/tangguo/domain/
vo/
DataImportResult.java
View file @
945df793
package
com
.
tangguo
.
domain
;
package
com
.
tangguo
.
domain
.
vo
;
import
lombok.Data
;
import
lombok.Data
;
...
...
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentCommentService.java
View file @
945df793
...
@@ -32,14 +32,6 @@ public interface IBbsMomentCommentService extends IService<BbsMomentComment> {
...
@@ -32,14 +32,6 @@ public interface IBbsMomentCommentService extends IService<BbsMomentComment> {
BbsMomentComment
getBbsMomentComment
(
Long
commentId
);
BbsMomentComment
getBbsMomentComment
(
Long
commentId
);
/**
* 删除评论
*
* @param commentId 评论Id
*/
void
deleteComment
(
Long
commentId
);
/**
/**
* 查询动态评论
* 查询动态评论
*
*
...
@@ -59,4 +51,12 @@ public interface IBbsMomentCommentService extends IService<BbsMomentComment> {
...
@@ -59,4 +51,12 @@ public interface IBbsMomentCommentService extends IService<BbsMomentComment> {
*/
*/
List
<
BbsCommentDetailVO
>
getMomentComments
(
Long
momentId
,
String
userName
);
List
<
BbsCommentDetailVO
>
getMomentComments
(
Long
momentId
,
String
userName
);
/**
* 删除动态评论记录
*
* @param momentId 动态Id
*/
void
deleteMomentComments
(
Long
momentId
);
}
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentLikeService.java
View file @
945df793
...
@@ -38,4 +38,12 @@ public interface IBbsMomentLikeService extends IService<BbsMomentLike> {
...
@@ -38,4 +38,12 @@ public interface IBbsMomentLikeService extends IService<BbsMomentLike> {
*/
*/
void
deleteMomentLike
(
Long
momentId
,
String
userName
);
void
deleteMomentLike
(
Long
momentId
,
String
userName
);
/**
* 删除动态点赞记录
*
* @param momentId 动态Id
*/
void
deleteMomentLikes
(
Long
momentId
);
}
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentVoteOptionService.java
View file @
945df793
...
@@ -43,14 +43,6 @@ public interface IBbsMomentVoteOptionService extends IService<BbsMomentVoteOptio
...
@@ -43,14 +43,6 @@ public interface IBbsMomentVoteOptionService extends IService<BbsMomentVoteOptio
void
addVoteOptions
(
BbsMoment
moment
,
List
<
CreateMomentBO
.
VoteOption
>
voteOptions
);
void
addVoteOptions
(
BbsMoment
moment
,
List
<
CreateMomentBO
.
VoteOption
>
voteOptions
);
/**
* 删除动态投票选项
*
* @param momentId 动态Id
*/
void
deleteVoteOptions
(
Long
momentId
);
/**
/**
* 查询投票选项
* 查询投票选项
*
*
...
@@ -69,4 +61,12 @@ public interface IBbsMomentVoteOptionService extends IService<BbsMomentVoteOptio
...
@@ -69,4 +61,12 @@ public interface IBbsMomentVoteOptionService extends IService<BbsMomentVoteOptio
*/
*/
List
<
BbsVoteOptionVO
>
getVoteOptionCount
(
Long
momentId
);
List
<
BbsVoteOptionVO
>
getVoteOptionCount
(
Long
momentId
);
/**
* 删除动态投票选项
*
* @param momentId 动态Id
*/
void
deleteMomentVoteOptions
(
Long
momentId
);
}
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentVoteService.java
View file @
945df793
...
@@ -43,4 +43,12 @@ public interface IBbsMomentVoteService extends IService<BbsMomentVote> {
...
@@ -43,4 +43,12 @@ public interface IBbsMomentVoteService extends IService<BbsMomentVote> {
*/
*/
List
<
BbsVoteVO
>
getMomentVotes
(
Long
momentId
,
String
optionCode
);
List
<
BbsVoteVO
>
getMomentVotes
(
Long
momentId
,
String
optionCode
);
/**
* 删除动态投票记录
*
* @param momentId 动态Id
*/
void
deleteMomentVotes
(
Long
momentId
);
}
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsSensitiveWordService.java
View file @
945df793
...
@@ -2,7 +2,7 @@ package com.tangguo.service;
...
@@ -2,7 +2,7 @@ package com.tangguo.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tangguo.domain.BbsSensitiveWord
;
import
com.tangguo.domain.BbsSensitiveWord
;
import
com.tangguo.domain.DataImportResult
;
import
com.tangguo.domain.
vo.
DataImportResult
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
import
java.util.List
;
...
...
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentCommentServiceImpl.java
View file @
945df793
package
com
.
tangguo
.
service
.
impl
;
package
com
.
tangguo
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tangguo.common.enums.CommentStatus
;
import
com.tangguo.common.exception.ServiceException
;
import
com.tangguo.domain.BbsMomentComment
;
import
com.tangguo.domain.BbsMomentComment
;
import
com.tangguo.domain.vo.BbsCommentDetailVO
;
import
com.tangguo.domain.vo.BbsCommentDetailVO
;
import
com.tangguo.mapper.BbsMomentCommentMapper
;
import
com.tangguo.mapper.BbsMomentCommentMapper
;
...
@@ -57,26 +56,6 @@ public class BbsMomentCommentServiceImpl extends ServiceImpl<BbsMomentCommentMap
...
@@ -57,26 +56,6 @@ public class BbsMomentCommentServiceImpl extends ServiceImpl<BbsMomentCommentMap
}
}
/**
* 删除评论
*
* @param commentId 评论Id
*/
@Override
public
void
deleteComment
(
Long
commentId
)
{
BbsMomentComment
dbComment
=
this
.
getById
(
commentId
);
if
(
Objects
.
isNull
(
dbComment
))
{
throw
new
ServiceException
(
"删除失败,未查询到当前评论数据。"
);
}
BbsMomentComment
updComment
=
new
BbsMomentComment
();
updComment
.
setId
(
dbComment
.
getId
());
updComment
.
setStatus
(
CommentStatus
.
SC
.
getStatus
());
updComment
.
setDeleteComment
(
"该评论已被删除"
);
this
.
updateById
(
updComment
);
}
/**
/**
* 查询动态评论
* 查询动态评论
*
*
...
@@ -106,4 +85,18 @@ public class BbsMomentCommentServiceImpl extends ServiceImpl<BbsMomentCommentMap
...
@@ -106,4 +85,18 @@ public class BbsMomentCommentServiceImpl extends ServiceImpl<BbsMomentCommentMap
return
this
.
baseMapper
.
selectMomentComments
(
momentId
,
userName
);
return
this
.
baseMapper
.
selectMomentComments
(
momentId
,
userName
);
}
}
/**
* 删除动态评论记录
*
* @param momentId 动态Id
*/
@Override
public
void
deleteMomentComments
(
Long
momentId
)
{
this
.
count
(
Wrappers
.
lambdaQuery
(
BbsMomentComment
.
class
)
.
eq
(
BbsMomentComment:
:
getMomentId
,
momentId
)
);
}
}
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentLikeServiceImpl.java
View file @
945df793
...
@@ -69,4 +69,18 @@ public class BbsMomentLikeServiceImpl extends ServiceImpl<BbsMomentLikeMapper, B
...
@@ -69,4 +69,18 @@ public class BbsMomentLikeServiceImpl extends ServiceImpl<BbsMomentLikeMapper, B
);
);
}
}
/**
* 删除动态点赞记录
*
* @param momentId 动态Id
*/
@Override
public
void
deleteMomentLikes
(
Long
momentId
)
{
this
.
remove
(
Wrappers
.
lambdaQuery
(
BbsMomentLike
.
class
)
.
eq
(
BbsMomentLike:
:
getMomentId
,
momentId
)
);
}
}
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentServiceImpl.java
View file @
945df793
...
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.tangguo.common.core.domain.entity.SysUser
;
import
com.tangguo.common.core.domain.entity.SysUser
;
import
com.tangguo.common.enums.*
;
import
com.tangguo.common.enums.*
;
import
com.tangguo.common.exception.ServiceException
;
import
com.tangguo.common.exception.ServiceException
;
import
com.tangguo.common.listener.OperateEvent
;
import
com.tangguo.common.utils.SecurityUtils
;
import
com.tangguo.common.utils.SecurityUtils
;
import
com.tangguo.common.utils.SensitiveWordUtils
;
import
com.tangguo.common.utils.SensitiveWordUtils
;
import
com.tangguo.domain.BbsMoment
;
import
com.tangguo.domain.BbsMoment
;
...
@@ -19,6 +20,7 @@ import com.tangguo.domain.vo.*;
...
@@ -19,6 +20,7 @@ import com.tangguo.domain.vo.*;
import
com.tangguo.mapper.BbsMomentMapper
;
import
com.tangguo.mapper.BbsMomentMapper
;
import
com.tangguo.service.*
;
import
com.tangguo.service.*
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.context.ApplicationEventPublisher
;
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.StopWatch
;
import
org.springframework.util.StopWatch
;
...
@@ -38,6 +40,9 @@ import java.util.stream.Collectors;
...
@@ -38,6 +40,9 @@ import java.util.stream.Collectors;
@Service
@Service
public
class
BbsMomentServiceImpl
extends
ServiceImpl
<
BbsMomentMapper
,
BbsMoment
>
implements
IBbsMomentService
{
public
class
BbsMomentServiceImpl
extends
ServiceImpl
<
BbsMomentMapper
,
BbsMoment
>
implements
IBbsMomentService
{
@Resource
private
ApplicationEventPublisher
eventPublisher
;
@Resource
@Resource
private
BbsMomentMapper
bbsMomentMapper
;
private
BbsMomentMapper
bbsMomentMapper
;
...
@@ -93,10 +98,21 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
...
@@ -93,10 +98,21 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
void
deleteMoment
(
Long
id
)
{
public
void
deleteMoment
(
Long
id
)
{
this
.
removeById
(
id
);
BbsMoment
dbMoment
=
this
.
getById
(
id
);
if
(
Objects
.
isNull
(
dbMoment
))
{
throw
new
ServiceException
(
"删除失败,未查询到当前动态数据。"
);
}
Long
dbMomentId
=
dbMoment
.
getId
();
this
.
removeById
(
dbMomentId
);
this
.
attachmentsService
.
deleteAttachments
(
dbMomentId
);
this
.
voteService
.
deleteMomentVotes
(
dbMomentId
);
this
.
voteOptionService
.
deleteMomentVoteOptions
(
dbMomentId
);
this
.
commentService
.
deleteMomentComments
(
dbMomentId
);
}
}
/**
/**
* 查询用户动态统计
* 查询用户动态统计
*
*
...
@@ -179,6 +195,10 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
...
@@ -179,6 +195,10 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
List
<
CreateMomentBO
.
VoteOption
>
voteOptions
=
bo
.
getVoteOptions
();
List
<
CreateMomentBO
.
VoteOption
>
voteOptions
=
bo
.
getVoteOptions
();
this
.
voteOptionService
.
addVoteOptions
(
newMoment
,
voteOptions
);
this
.
voteOptionService
.
addVoteOptions
(
newMoment
,
voteOptions
);
}
}
// 发布用户操作事件
OperateEvent
operateEvent
=
new
OperateEvent
(
username
,
OperateType
.
FBDT
);
this
.
eventPublisher
.
publishEvent
(
operateEvent
);
}
}
...
@@ -198,7 +218,17 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
...
@@ -198,7 +218,17 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
if
(!
dbMoment
.
getUserName
().
equals
(
username
))
{
if
(!
dbMoment
.
getUserName
().
equals
(
username
))
{
throw
new
ServiceException
(
"删除失败,没有对当前动态数据的操作权限。"
);
throw
new
ServiceException
(
"删除失败,没有对当前动态数据的操作权限。"
);
}
}
// 删除动态以及相关数据
this
.
removeById
(
dbMoment
.
getId
());
this
.
removeById
(
dbMoment
.
getId
());
this
.
attachmentsService
.
deleteAttachments
(
dbMoment
.
getId
());
this
.
voteService
.
deleteMomentVotes
(
dbMoment
.
getId
());
this
.
voteOptionService
.
deleteMomentVoteOptions
(
dbMoment
.
getId
());
this
.
commentService
.
deleteMomentComments
(
dbMoment
.
getId
());
// 发布用户操作事件
OperateEvent
operateEvent
=
new
OperateEvent
(
username
,
OperateType
.
SCDT
);
this
.
eventPublisher
.
publishEvent
(
operateEvent
);
}
}
...
@@ -215,22 +245,22 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
...
@@ -215,22 +245,22 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
throw
new
ServiceException
(
"点赞失败,未查询到当前动态数据。"
);
throw
new
ServiceException
(
"点赞失败,未查询到当前动态数据。"
);
}
}
String
user
N
ame
=
SecurityUtils
.
getUsername
();
String
user
n
ame
=
SecurityUtils
.
getUsername
();
long
likeStatus
=
this
.
likeService
.
getUserMomentLikeCount
(
dbMoment
.
getId
(),
user
N
ame
);
long
likeStatus
=
this
.
likeService
.
getUserMomentLikeCount
(
dbMoment
.
getId
(),
user
n
ame
);
int
likeCount
=
dbMoment
.
getLikeCount
();
int
likeCount
=
dbMoment
.
getLikeCount
();
if
(
LikeStatus
.
LIKE
.
getStatus
()
==
bo
.
getLikeStatus
())
{
if
(
LikeStatus
.
LIKE
.
getStatus
()
==
bo
.
getLikeStatus
())
{
if
(
likeStatus
>
0
)
{
if
(
likeStatus
>
0
)
{
throw
new
ServiceException
(
"点赞失败,已对当前动态点赞。"
);
throw
new
ServiceException
(
"点赞失败,已对当前动态点赞。"
);
}
else
{
}
else
{
this
.
likeService
.
addMomentLike
(
dbMoment
.
getId
(),
user
N
ame
);
this
.
likeService
.
addMomentLike
(
dbMoment
.
getId
(),
user
n
ame
);
likeCount
++;
likeCount
++;
}
}
}
else
{
}
else
{
if
(
likeStatus
<
1
)
{
if
(
likeStatus
<
1
)
{
throw
new
ServiceException
(
"取消失败,没有对当前动态点赞。"
);
throw
new
ServiceException
(
"取消失败,没有对当前动态点赞。"
);
}
else
{
}
else
{
this
.
likeService
.
deleteMomentLike
(
dbMoment
.
getId
(),
user
N
ame
);
this
.
likeService
.
deleteMomentLike
(
dbMoment
.
getId
(),
user
n
ame
);
likeCount
--;
likeCount
--;
}
}
}
}
...
@@ -240,6 +270,10 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
...
@@ -240,6 +270,10 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
updMoment
.
setId
(
dbMoment
.
getId
());
updMoment
.
setId
(
dbMoment
.
getId
());
updMoment
.
setLikeCount
(
likeCount
);
updMoment
.
setLikeCount
(
likeCount
);
this
.
updateById
(
updMoment
);
this
.
updateById
(
updMoment
);
// 发布用户操作事件
OperateEvent
operateEvent
=
new
OperateEvent
(
username
,
OperateType
.
DZDT
);
this
.
eventPublisher
.
publishEvent
(
operateEvent
);
}
}
...
@@ -285,6 +319,10 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
...
@@ -285,6 +319,10 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
updMoment
.
setId
(
dbMoment
.
getId
());
updMoment
.
setId
(
dbMoment
.
getId
());
updMoment
.
setVoteCount
(
dbMoment
.
getVoteCount
()
+
1
);
updMoment
.
setVoteCount
(
dbMoment
.
getVoteCount
()
+
1
);
this
.
updateById
(
updMoment
);
this
.
updateById
(
updMoment
);
// 发布用户操作事件
OperateEvent
operateEvent
=
new
OperateEvent
(
username
,
OperateType
.
TPDT
);
this
.
eventPublisher
.
publishEvent
(
operateEvent
);
}
}
...
@@ -340,6 +378,10 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
...
@@ -340,6 +378,10 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
updMoment
.
setId
(
dbMoment
.
getId
());
updMoment
.
setId
(
dbMoment
.
getId
());
updMoment
.
setCommentCount
(
dbMoment
.
getCommentCount
()
+
1
);
updMoment
.
setCommentCount
(
dbMoment
.
getCommentCount
()
+
1
);
this
.
updateById
(
updMoment
);
this
.
updateById
(
updMoment
);
// 发布用户操作事件
OperateEvent
operateEvent
=
new
OperateEvent
(
dbUser
.
getUserName
(),
OperateType
.
TPDT
);
this
.
eventPublisher
.
publishEvent
(
operateEvent
);
}
}
...
...
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentVoteOptionServiceImpl.java
View file @
945df793
...
@@ -94,18 +94,6 @@ public class BbsMomentVoteOptionServiceImpl extends ServiceImpl<BbsMomentVoteOpt
...
@@ -94,18 +94,6 @@ public class BbsMomentVoteOptionServiceImpl extends ServiceImpl<BbsMomentVoteOpt
}
}
/**
* 删除动态投票选项
*
* @param momentId 动态Id
*/
@Override
public
void
deleteVoteOptions
(
Long
momentId
)
{
this
.
remove
(
Wrappers
.
lambdaQuery
(
BbsMomentVoteOption
.
class
).
eq
(
BbsMomentVoteOption:
:
getMomentId
,
momentId
)
);
}
/**
/**
* 查询投票选项
* 查询投票选项
...
@@ -148,4 +136,18 @@ public class BbsMomentVoteOptionServiceImpl extends ServiceImpl<BbsMomentVoteOpt
...
@@ -148,4 +136,18 @@ public class BbsMomentVoteOptionServiceImpl extends ServiceImpl<BbsMomentVoteOpt
return
ovs
;
return
ovs
;
}
}
/**
* 删除动态投票选项
*
* @param momentId 动态Id
*/
@Override
public
void
deleteMomentVoteOptions
(
Long
momentId
)
{
this
.
count
(
Wrappers
.
lambdaQuery
(
BbsMomentVoteOption
.
class
)
.
eq
(
BbsMomentVoteOption:
:
getMomentId
,
momentId
)
);
}
}
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentVoteServiceImpl.java
View file @
945df793
...
@@ -70,4 +70,18 @@ public class BbsMomentVoteServiceImpl extends ServiceImpl<BbsMomentVoteMapper, B
...
@@ -70,4 +70,18 @@ public class BbsMomentVoteServiceImpl extends ServiceImpl<BbsMomentVoteMapper, B
return
this
.
baseMapper
.
selectVotes
(
momentId
,
optionCode
);
return
this
.
baseMapper
.
selectVotes
(
momentId
,
optionCode
);
}
}
/**
* 删除动态投票记录
*
* @param momentId 动态Id
*/
@Override
public
void
deleteMomentVotes
(
Long
momentId
)
{
this
.
count
(
Wrappers
.
lambdaQuery
(
BbsMomentVote
.
class
)
.
eq
(
BbsMomentVote:
:
getMomentId
,
momentId
)
);
}
}
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsSensitiveWordServiceImpl.java
View file @
945df793
...
@@ -10,7 +10,7 @@ import com.tangguo.common.exception.ServiceException;
...
@@ -10,7 +10,7 @@ import com.tangguo.common.exception.ServiceException;
import
com.tangguo.common.utils.SensitiveWordUtils
;
import
com.tangguo.common.utils.SensitiveWordUtils
;
import
com.tangguo.common.utils.StringUtils
;
import
com.tangguo.common.utils.StringUtils
;
import
com.tangguo.domain.BbsSensitiveWord
;
import
com.tangguo.domain.BbsSensitiveWord
;
import
com.tangguo.domain.DataImportResult
;
import
com.tangguo.domain.
vo.
DataImportResult
;
import
com.tangguo.mapper.BbsSensitiveWordMapper
;
import
com.tangguo.mapper.BbsSensitiveWordMapper
;
import
com.tangguo.service.IBbsSensitiveWordService
;
import
com.tangguo.service.IBbsSensitiveWordService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
...
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsTopicServiceImpl.java
View file @
945df793
...
@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...
@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tangguo.common.constant.
Topic
Constant
;
import
com.tangguo.common.constant.
Moment
Constant
;
import
com.tangguo.common.core.redis.RedisCache
;
import
com.tangguo.common.core.redis.RedisCache
;
import
com.tangguo.common.enums.TopicTopStatus
;
import
com.tangguo.common.enums.TopicTopStatus
;
import
com.tangguo.common.exception.ServiceException
;
import
com.tangguo.common.exception.ServiceException
;
...
@@ -168,7 +168,7 @@ public class BbsTopicServiceImpl extends ServiceImpl<BbsTopicMapper, BbsTopic> i
...
@@ -168,7 +168,7 @@ public class BbsTopicServiceImpl extends ServiceImpl<BbsTopicMapper, BbsTopic> i
@Override
@Override
public
void
refreshRankingTopic
()
{
public
void
refreshRankingTopic
()
{
this
.
baseMapper
.
refreshRankingTopic
();
this
.
baseMapper
.
refreshRankingTopic
();
this
.
redisCache
.
deleteObject
(
TopicConstant
.
HOT_SCORE_CACHE_KEY
);
this
.
redisCache
.
deleteObject
(
MomentConstant
.
HOT_TOPIC
);
}
}
...
@@ -179,10 +179,10 @@ public class BbsTopicServiceImpl extends ServiceImpl<BbsTopicMapper, BbsTopic> i
...
@@ -179,10 +179,10 @@ public class BbsTopicServiceImpl extends ServiceImpl<BbsTopicMapper, BbsTopic> i
*/
*/
@Override
@Override
public
List
<
BbsTopicListVO
>
getRankingTopic
()
{
public
List
<
BbsTopicListVO
>
getRankingTopic
()
{
List
<
BbsTopicListVO
>
topics
=
this
.
redisCache
.
getCacheObject
(
TopicConstant
.
HOT_SCORE_CACHE_KEY
);
List
<
BbsTopicListVO
>
topics
=
this
.
redisCache
.
getCacheObject
(
MomentConstant
.
HOT_TOPIC
);
if
(
CollUtil
.
isEmpty
(
topics
))
{
if
(
CollUtil
.
isEmpty
(
topics
))
{
topics
=
this
.
baseMapper
.
selectRankingTopic
();
topics
=
this
.
baseMapper
.
selectRankingTopic
();
this
.
redisCache
.
setCacheObject
(
TopicConstant
.
HOT_SCORE_CACHE_KEY
,
topics
,
1
,
TimeUnit
.
HOURS
);
this
.
redisCache
.
setCacheObject
(
MomentConstant
.
HOT_TOPIC
,
topics
,
1
,
TimeUnit
.
HOURS
);
}
}
return
topics
;
return
topics
;
}
}
...
...
safe-campus-points/src/main/java/com/tangguo/controller/BbsUserPointsController.java
View file @
945df793
...
@@ -50,6 +50,17 @@ public class BbsUserPointsController extends BaseController {
...
@@ -50,6 +50,17 @@ public class BbsUserPointsController extends BaseController {
}
}
/**
* 查询用户积分
*/
@ApiOperation
(
"查询用户积分"
)
@GetMapping
(
"/{userName}"
)
public
AjaxResult
list
(
@PathVariable
String
userName
)
{
BbsUserPoints
dbPoints
=
this
.
bbsUserPointsService
.
selectBbsUserPoints
(
userName
);
return
AjaxResult
.
success
(
dbPoints
);
}
/**
/**
* 查询用户积分明细
* 查询用户积分明细
*/
*/
...
...
safe-campus-points/src/main/java/com/tangguo/controller/BbsUserPointsExchangeController.java
View file @
945df793
package
com
.
tangguo
.
controller
;
package
com
.
tangguo
.
controller
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.tangguo.common.annotation.Log
;
import
com.tangguo.common.annotation.Log
;
import
com.tangguo.common.annotation.RepeatSubmit
;
import
com.tangguo.common.annotation.RepeatSubmit
;
import
com.tangguo.common.core.controller.BaseController
;
import
com.tangguo.common.core.controller.BaseController
;
...
@@ -9,9 +7,7 @@ import com.tangguo.common.core.domain.AjaxResult;
...
@@ -9,9 +7,7 @@ import com.tangguo.common.core.domain.AjaxResult;
import
com.tangguo.common.core.page.TableDataInfo
;
import
com.tangguo.common.core.page.TableDataInfo
;
import
com.tangguo.common.enums.BusinessType
;
import
com.tangguo.common.enums.BusinessType
;
import
com.tangguo.common.utils.poi.ExcelUtil
;
import
com.tangguo.common.utils.poi.ExcelUtil
;
import
com.tangguo.domain.BbsPointsGoods
;
import
com.tangguo.domain.BbsUserPointsExchange
;
import
com.tangguo.domain.BbsUserPointsExchange
;
import
com.tangguo.service.IBbsPointsGoodsService
;
import
com.tangguo.service.IBbsUserPointsExchangeService
;
import
com.tangguo.service.IBbsUserPointsExchangeService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
...
safe-campus-points/src/main/java/com/tangguo/enums/PointsSettingType.java
View file @
945df793
...
@@ -3,6 +3,8 @@ package com.tangguo.enums;
...
@@ -3,6 +3,8 @@ package com.tangguo.enums;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
java.util.Arrays
;
/**
/**
* 积分配置类型
* 积分配置类型
*
*
...
@@ -17,4 +19,10 @@ public enum PointsSettingType {
...
@@ -17,4 +19,10 @@ public enum PointsSettingType {
private
final
String
desc
;
private
final
String
desc
;
public
static
PointsSettingType
getSettingType
(
String
type
)
{
return
Arrays
.
stream
(
PointsSettingType
.
values
())
.
filter
(
t
->
t
.
name
().
equals
(
type
)).
findFirst
().
orElse
(
null
);
}
}
}
safe-campus-
moment/src/main/java/com/tangguo/common/listener/User
OperateListener.java
→
safe-campus-
points/src/main/java/com/tangguo/listener/
OperateListener.java
View file @
945df793
package
com
.
tangguo
.
common
.
listener
;
package
com
.
tangguo
.
listener
;
import
com.tangguo.common.constant.ActiveMQConstant
;
import
com.tangguo.common.constant.ActiveMQConstant
;
import
com.tangguo.domain.OperateDetail
;
import
com.tangguo.common.domain.OperateDetail
;
import
com.tangguo.service.IBbsPointsSettingService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.jms.annotation.JmsListener
;
import
org.springframework.jms.annotation.JmsListener
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
javax.jms.Message
;
import
javax.jms.Message
;
/**
/**
...
@@ -16,16 +18,26 @@ import javax.jms.Message;
...
@@ -16,16 +18,26 @@ import javax.jms.Message;
*/
*/
@Slf4j
@Slf4j
@Component
@Component
public
class
UserOperateListener
{
public
class
OperateListener
{
@Resource
private
IBbsPointsSettingService
pointsSettingService
;
/**
/**
*
增加用户
积分消息
*
处理用户操作
积分消息
*
*
* @param detail
积分
明细
* @param detail
操作
明细
*/
*/
@JmsListener
(
destination
=
ActiveMQConstant
.
Operate
.
USER_OPERATE
,
containerFactory
=
ActiveMQConstant
.
QUEUE_CONTAINER_BEAN
)
@JmsListener
(
destination
=
ActiveMQConstant
.
Operate
.
USER_OPERATE
,
containerFactory
=
ActiveMQConstant
.
QUEUE_CONTAINER_BEAN
)
public
void
operateListener
(
OperateDetail
detail
,
Message
message
)
{
public
void
handleOperatePoints
(
OperateDetail
detail
,
Message
message
)
{
try
{
log
.
info
(
"=> 开始处理用户操作积分消息:{}"
,
detail
);
this
.
pointsSettingService
.
handleOperatePoints
(
detail
);
message
.
acknowledge
();
}
catch
(
Exception
e
)
{
log
.
error
(
"=> 用户操作积分消息处理失败,操作明细:{} 错误信息:"
,
detail
,
e
);
}
}
}
}
}
safe-campus-points/src/main/java/com/tangguo/listener/PointsListener.java
View file @
945df793
...
@@ -49,7 +49,7 @@ public class PointsListener {
...
@@ -49,7 +49,7 @@ public class PointsListener {
@JmsListener
(
destination
=
ActiveMQConstant
.
Points
.
DECR_USER_POINTS_QUEUE
,
containerFactory
=
ActiveMQConstant
.
QUEUE_CONTAINER_BEAN
)
@JmsListener
(
destination
=
ActiveMQConstant
.
Points
.
DECR_USER_POINTS_QUEUE
,
containerFactory
=
ActiveMQConstant
.
QUEUE_CONTAINER_BEAN
)
public
void
decrUserPointsListener
(
PointsDetail
detail
,
Message
message
)
{
public
void
decrUserPointsListener
(
PointsDetail
detail
,
Message
message
)
{
try
{
try
{
log
.
info
(
"=> 扣减用户积分消息:{}"
,
detail
);
log
.
info
(
"=>
开始处理
扣减用户积分消息:{}"
,
detail
);
this
.
userPointsService
.
decrUserPoints
(
detail
);
this
.
userPointsService
.
decrUserPoints
(
detail
);
message
.
acknowledge
();
message
.
acknowledge
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
safe-campus-points/src/main/java/com/tangguo/mapper/BbsPointsSettingMapper.java
View file @
945df793
...
@@ -2,6 +2,7 @@ package com.tangguo.mapper;
...
@@ -2,6 +2,7 @@ package com.tangguo.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.tangguo.domain.BbsPointsSetting
;
import
com.tangguo.domain.BbsPointsSetting
;
import
org.apache.ibatis.annotations.Param
;
/**
/**
* 积分规则配置Mapper接口
* 积分规则配置Mapper接口
...
@@ -10,4 +11,8 @@ import com.tangguo.domain.BbsPointsSetting;
...
@@ -10,4 +11,8 @@ import com.tangguo.domain.BbsPointsSetting;
* @date 2025-08-29
* @date 2025-08-29
*/
*/
public
interface
BbsPointsSettingMapper
extends
BaseMapper
<
BbsPointsSetting
>
{
public
interface
BbsPointsSettingMapper
extends
BaseMapper
<
BbsPointsSetting
>
{
int
selectPointsCount
(
@Param
(
"userName"
)
String
userName
,
@Param
(
"operateCode"
)
String
operateCode
,
@Param
(
"days"
)
int
days
);
}
}
safe-campus-points/src/main/java/com/tangguo/mapper/BbsUserPointsMapper.java
View file @
945df793
...
@@ -17,7 +17,10 @@ public interface BbsUserPointsMapper extends BaseMapper<BbsUserPoints> {
...
@@ -17,7 +17,10 @@ public interface BbsUserPointsMapper extends BaseMapper<BbsUserPoints> {
List
<
BbsUserPoints
>
selectBbsUserPointsList
(
@Param
(
"points"
)
BbsUserPoints
points
);
List
<
BbsUserPoints
>
selectBbsUserPointsList
(
@Param
(
"points"
)
BbsUserPoints
points
);
int
selectUserCount
(
@Param
(
"userName"
)
String
userName
);
BbsUserPoints
selectBbsUserPoints
(
@Param
(
"userName"
)
String
userName
);
int
selectSysUserCount
(
@Param
(
"userName"
)
String
userName
);
int
refreshUserPointsGrade
();
int
refreshUserPointsGrade
();
...
...
safe-campus-points/src/main/java/com/tangguo/service/IBbsPointsSettingService.java
View file @
945df793
package
com
.
tangguo
.
service
;
package
com
.
tangguo
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tangguo.common.domain.OperateDetail
;
import
com.tangguo.domain.BbsPointsSetting
;
import
com.tangguo.domain.BbsPointsSetting
;
import
java.util.List
;
import
java.util.List
;
...
@@ -31,6 +32,14 @@ public interface IBbsPointsSettingService extends IService<BbsPointsSetting> {
...
@@ -31,6 +32,14 @@ public interface IBbsPointsSettingService extends IService<BbsPointsSetting> {
Map
<
String
,
List
<
BbsPointsSetting
>>
getSettingDetails
();
Map
<
String
,
List
<
BbsPointsSetting
>>
getSettingDetails
();
/**
* 查询积分规则配置
*
* @return 规则配置
*/
List
<
BbsPointsSetting
>
getEnableSettings
();
/**
/**
* 添加积分配置
* 添加积分配置
*
*
...
@@ -62,4 +71,12 @@ public interface IBbsPointsSettingService extends IService<BbsPointsSetting> {
...
@@ -62,4 +71,12 @@ public interface IBbsPointsSettingService extends IService<BbsPointsSetting> {
*/
*/
void
setSettingStatus
(
BbsPointsSetting
setting
);
void
setSettingStatus
(
BbsPointsSetting
setting
);
/**
* 处理用户操作积分
*
* @param detail 操作明细
*/
void
handleOperatePoints
(
OperateDetail
detail
);
}
}
safe-campus-points/src/main/java/com/tangguo/service/IBbsUserPointsService.java
View file @
945df793
...
@@ -23,6 +23,15 @@ public interface IBbsUserPointsService extends IService<BbsUserPoints> {
...
@@ -23,6 +23,15 @@ public interface IBbsUserPointsService extends IService<BbsUserPoints> {
List
<
BbsUserPoints
>
selectBbsUserPointsList
(
BbsUserPoints
bbsUserPoints
);
List
<
BbsUserPoints
>
selectBbsUserPointsList
(
BbsUserPoints
bbsUserPoints
);
/**
* 查询用户积分
*
* @param userName 用户名
* @return 用户积分集合
*/
BbsUserPoints
selectBbsUserPoints
(
String
userName
);
/**
/**
* 查询用户积分
* 查询用户积分
*
*
...
...
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsPointsSettingServiceImpl.java
View file @
945df793
...
@@ -3,18 +3,20 @@ package com.tangguo.service.impl;
...
@@ -3,18 +3,20 @@ package com.tangguo.service.impl;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.IdUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tangguo.common.constant.ActiveMQConstant
;
import
com.tangguo.common.domain.OperateDetail
;
import
com.tangguo.common.domain.PointsDetail
;
import
com.tangguo.common.exception.ServiceException
;
import
com.tangguo.common.exception.ServiceException
;
import
com.tangguo.domain.BbsPointsSetting
;
import
com.tangguo.domain.BbsPointsSetting
;
import
com.tangguo.enums.PointsSettingType
;
import
com.tangguo.enums.PointsSettingType
;
import
com.tangguo.mapper.BbsPointsSettingMapper
;
import
com.tangguo.mapper.BbsPointsSettingMapper
;
import
com.tangguo.service.IBbsPointsSettingService
;
import
com.tangguo.service.IBbsPointsSettingService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.jms.core.JmsTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.LinkedHashMap
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -23,12 +25,18 @@ import java.util.stream.Collectors;
...
@@ -23,12 +25,18 @@ import java.util.stream.Collectors;
* @author ruoyi
* @author ruoyi
* @date 2025-08-29
* @date 2025-08-29
*/
*/
@Slf4j
@Service
@Service
public
class
BbsPointsSettingServiceImpl
extends
ServiceImpl
<
BbsPointsSettingMapper
,
BbsPointsSetting
>
implements
IBbsPointsSettingService
{
public
class
BbsPointsSettingServiceImpl
extends
ServiceImpl
<
BbsPointsSettingMapper
,
BbsPointsSetting
>
implements
IBbsPointsSettingService
{
private
static
final
Map
<
String
,
BbsPointsSetting
>
POINTS_SETTING
=
new
HashMap
<>(
5
);
@Resource
@Resource
private
BbsPointsSettingMapper
bbsPointsSettingMapper
;
private
BbsPointsSettingMapper
bbsPointsSettingMapper
;
@Resource
private
JmsTemplate
jmsTemplate
;
/**
/**
* 查询积分规则配置列表
* 查询积分规则配置列表
...
@@ -63,6 +71,19 @@ public class BbsPointsSettingServiceImpl extends ServiceImpl<BbsPointsSettingMap
...
@@ -63,6 +71,19 @@ public class BbsPointsSettingServiceImpl extends ServiceImpl<BbsPointsSettingMap
}
}
/**
* 查询积分规则配置
*
* @return 规则配置
*/
@Override
public
List
<
BbsPointsSetting
>
getEnableSettings
()
{
return
this
.
list
(
Wrappers
.
lambdaQuery
(
BbsPointsSetting
.
class
).
eq
(
BbsPointsSetting:
:
getEnableStatus
,
1
)
);
}
/**
/**
* 添加积分配置
* 添加积分配置
*
*
...
@@ -151,4 +172,49 @@ public class BbsPointsSettingServiceImpl extends ServiceImpl<BbsPointsSettingMap
...
@@ -151,4 +172,49 @@ public class BbsPointsSettingServiceImpl extends ServiceImpl<BbsPointsSettingMap
}
}
}
}
/**
* 处理用户操作积分
*
* @param detail 操作明细
*/
@Override
public
void
handleOperatePoints
(
OperateDetail
detail
)
{
log
.
info
(
"=> 处理用户操作积分:{}"
,
detail
);
// 匹配积分规则
BbsPointsSetting
setting
=
POINTS_SETTING
.
get
(
detail
.
getOperateCode
());
String
userName
=
detail
.
getUserName
();
String
operateCode
=
setting
.
getOperateCode
();
int
pointsCount
=
this
.
baseMapper
.
selectPointsCount
(
userName
,
operateCode
,
7
);
if
(
pointsCount
<
setting
.
getLimitCount
())
{
// 积分消息明细
String
operateName
=
setting
.
getOperateName
();
Integer
points
=
setting
.
getOperatePoints
();
PointsDetail
pointsDetail
=
new
PointsDetail
();
pointsDetail
.
setLinkTracId
(
detail
.
getLinkTracId
());
pointsDetail
.
setUserName
(
userName
);
pointsDetail
.
setDetailPoints
(
points
);
pointsDetail
.
setDetailName
(
operateName
);
pointsDetail
.
setDetailCode
(
operateCode
);
pointsDetail
.
setDescription
(
String
.
format
(
"用户【%s】操作【%s】积分【%s】"
,
userName
,
operateName
,
points
));
// 匹配积分队列
String
pointsQueue
;
PointsSettingType
settingType
=
PointsSettingType
.
getSettingType
(
setting
.
getType
());
if
(
PointsSettingType
.
ADD
==
settingType
)
{
pointsQueue
=
ActiveMQConstant
.
Points
.
INCR_USER_POINTS_QUEUE
;
}
else
if
(
PointsSettingType
.
DEC
==
settingType
)
{
pointsQueue
=
ActiveMQConstant
.
Points
.
DECR_USER_POINTS_QUEUE
;
}
else
{
log
.
error
(
"=> 当前积分规则的设置类型错误:{}"
,
setting
);
return
;
}
// 发送积分消息
this
.
jmsTemplate
.
convertAndSend
(
pointsQueue
,
pointsDetail
);
}
}
}
}
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
View file @
945df793
...
@@ -55,6 +55,18 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
...
@@ -55,6 +55,18 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
}
}
/**
* 查询用户积分
*
* @param userName 用户名
* @return 用户积分集合
*/
@Override
public
BbsUserPoints
selectBbsUserPoints
(
String
userName
)
{
return
this
.
baseMapper
.
selectBbsUserPoints
(
userName
);
}
/**
/**
* 查询用户积分
* 查询用户积分
*
*
...
@@ -80,7 +92,7 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
...
@@ -80,7 +92,7 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
public
BbsUserPoints
getAndInitUserPoints
(
String
userName
)
{
public
BbsUserPoints
getAndInitUserPoints
(
String
userName
)
{
BbsUserPoints
dbUserPoints
=
this
.
getUserPoints
(
userName
);
BbsUserPoints
dbUserPoints
=
this
.
getUserPoints
(
userName
);
if
(
Objects
.
isNull
(
dbUserPoints
))
{
if
(
Objects
.
isNull
(
dbUserPoints
))
{
int
dbUserCount
=
this
.
baseMapper
.
selectUserCount
(
userName
);
int
dbUserCount
=
this
.
baseMapper
.
select
Sys
UserCount
(
userName
);
if
(
dbUserCount
>
0
)
{
if
(
dbUserCount
>
0
)
{
// 初始积分
// 初始积分
dbUserPoints
=
new
BbsUserPoints
();
dbUserPoints
=
new
BbsUserPoints
();
...
...
safe-campus-points/src/main/resources/mapper/BbsPointsSettingMapper.xml
View file @
945df793
...
@@ -3,5 +3,18 @@
...
@@ -3,5 +3,18 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.tangguo.mapper.BbsPointsSettingMapper"
>
<mapper
namespace=
"com.tangguo.mapper.BbsPointsSettingMapper"
>
<select
id=
"selectPointsCount"
resultType=
"java.lang.Integer"
>
SELECT
COUNT(*)
FROM
bbs_user_points_detail
WHERE
user_name = #{userName}
AND
detail_code = #{operateCode}
AND
create_time >= DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL #{days} DAY)
</select>
</mapper>
</mapper>
safe-campus-points/src/main/resources/mapper/BbsUserPointsMapper.xml
View file @
945df793
...
@@ -40,7 +40,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -40,7 +40,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
</select>
<select
id=
"selectUserCount"
resultType=
"java.lang.Integer"
>
<select
id=
"selectBbsUserPoints"
resultType=
"com.tangguo.domain.BbsUserPoints"
>
SELECT
uv.nick_name AS nick_name,
uv.user_name,
ud.dept_name,
IFNULL(p.current_points, 0) AS current_points,
IFNULL(p.accumulated_points, 0) AS accumulated_points,
IFNULL(p.grade_name, ug.name) AS grade_name
FROM
sys_user uv
LEFT JOIN
sys_dept ud ON ud.dept_id = uv.dept_id
LEFT JOIN
bbs_user_points p ON p.user_name = uv.user_name
CROSS JOIN (
SELECT (SELECT name FROM bbs_grade WHERE is_initial = 1 ORDER BY create_time DESC LIMIT 1) AS name
) ug
WHERE
uv.user_name = #{userName}
</select>
<select
id=
"selectSysUserCount"
resultType=
"java.lang.Integer"
>
SELECT COUNT(*) FROM sys_user WHERE user_name = #{userName}
SELECT COUNT(*) FROM sys_user WHERE user_name = #{userName}
</select>
</select>
...
...
safe-campus-quartz/pom.xml
View file @
945df793
...
@@ -32,6 +32,11 @@
...
@@ -32,6 +32,11 @@
<groupId>
com.tangguo
</groupId>
<groupId>
com.tangguo
</groupId>
<artifactId>
safe-campus-system
</artifactId>
<artifactId>
safe-campus-system
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.tangguo
</groupId>
<artifactId>
safe-campus-moment
</artifactId>
</dependency>
</dependencies>
</dependencies>
</project>
</project>
safe-campus-
moment/src/main/java/com/tangguo/common/jobs/RefreshTopicRankingJob
.java
→
safe-campus-
quartz/src/main/java/com/tangguo/quartz/task/RefreshTopicRankingTask
.java
View file @
945df793
package
com
.
tangguo
.
common
.
jobs
;
package
com
.
tangguo
.
quartz
.
task
;
import
com.tangguo.service.IBbsTopicService
;
import
com.tangguo.service.IBbsTopicService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -14,7 +14,7 @@ import javax.annotation.Resource;
...
@@ -14,7 +14,7 @@ import javax.annotation.Resource;
*/
*/
@Slf4j
@Slf4j
@Component
@Component
public
class
RefreshTopicRanking
Job
{
public
class
RefreshTopicRanking
Task
{
@Resource
@Resource
private
IBbsTopicService
topicService
;
private
IBbsTopicService
topicService
;
...
...
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