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
e3cd8cd3
Commit
e3cd8cd3
authored
Sep 03, 2025
by
万成波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
移动端动态
parent
cfae5224
Changes
34
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
960 additions
and
70 deletions
+960
-70
safe-campus-framework/src/main/java/com/tangguo/framework/config/CreateAndUpdateMetaObjectHandler.java
...uo/framework/config/CreateAndUpdateMetaObjectHandler.java
+2
-2
safe-campus-framework/src/main/java/com/tangguo/framework/config/SecurityConfig.java
...ain/java/com/tangguo/framework/config/SecurityConfig.java
+11
-0
safe-campus-moment/src/main/java/com/tangguo/controller/mobile/MBbsMomentController.java
...a/com/tangguo/controller/mobile/MBbsMomentController.java
+38
-0
safe-campus-moment/src/main/java/com/tangguo/controller/mobile/MBbsTopicController.java
...va/com/tangguo/controller/mobile/MBbsTopicController.java
+88
-0
safe-campus-moment/src/main/java/com/tangguo/controller/mobile/MBbsUserController.java
...ava/com/tangguo/controller/mobile/MBbsUserController.java
+20
-2
safe-campus-moment/src/main/java/com/tangguo/domain/BbsMoment.java
...us-moment/src/main/java/com/tangguo/domain/BbsMoment.java
+10
-0
safe-campus-moment/src/main/java/com/tangguo/domain/BbsMomentAttachment.java
...src/main/java/com/tangguo/domain/BbsMomentAttachment.java
+2
-2
safe-campus-moment/src/main/java/com/tangguo/domain/bo/CreateMomentBO.java
...t/src/main/java/com/tangguo/domain/bo/CreateMomentBO.java
+99
-0
safe-campus-moment/src/main/java/com/tangguo/domain/bo/CreateTopicBO.java
...nt/src/main/java/com/tangguo/domain/bo/CreateTopicBO.java
+19
-0
safe-campus-moment/src/main/java/com/tangguo/domain/vo/BbsMomentListVO.java
.../src/main/java/com/tangguo/domain/vo/BbsMomentListVO.java
+74
-0
safe-campus-moment/src/main/java/com/tangguo/domain/vo/BbsTopicListVO.java
...t/src/main/java/com/tangguo/domain/vo/BbsTopicListVO.java
+25
-0
safe-campus-moment/src/main/java/com/tangguo/domain/vo/BbsUserMomentCountVO.java
...main/java/com/tangguo/domain/vo/BbsUserMomentCountVO.java
+29
-0
safe-campus-moment/src/main/java/com/tangguo/enums/EnableStatus.java
...-moment/src/main/java/com/tangguo/enums/EnableStatus.java
+22
-0
safe-campus-moment/src/main/java/com/tangguo/mapper/BbsMomentAttachmentMapper.java
...in/java/com/tangguo/mapper/BbsMomentAttachmentMapper.java
+2
-2
safe-campus-moment/src/main/java/com/tangguo/mapper/BbsMomentMapper.java
...ent/src/main/java/com/tangguo/mapper/BbsMomentMapper.java
+4
-0
safe-campus-moment/src/main/java/com/tangguo/mapper/BbsTopicMapper.java
...ment/src/main/java/com/tangguo/mapper/BbsTopicMapper.java
+10
-0
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentAttachmentService.java
...java/com/tangguo/service/IBbsMomentAttachmentService.java
+43
-0
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentAttachmentsService.java
...ava/com/tangguo/service/IBbsMomentAttachmentsService.java
+0
-15
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentService.java
.../src/main/java/com/tangguo/service/IBbsMomentService.java
+19
-1
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentVoteOptionService.java
...java/com/tangguo/service/IBbsMomentVoteOptionService.java
+30
-0
safe-campus-moment/src/main/java/com/tangguo/service/IBbsTopicService.java
...t/src/main/java/com/tangguo/service/IBbsTopicService.java
+37
-0
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentAttachmentServiceImpl.java
.../tangguo/service/impl/BbsMomentAttachmentServiceImpl.java
+84
-0
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentAttachmentsServiceImpl.java
...tangguo/service/impl/BbsMomentAttachmentsServiceImpl.java
+0
-23
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentServiceImpl.java
...n/java/com/tangguo/service/impl/BbsMomentServiceImpl.java
+105
-0
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentVoteOptionServiceImpl.java
.../tangguo/service/impl/BbsMomentVoteOptionServiceImpl.java
+59
-0
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsTopicServiceImpl.java
...in/java/com/tangguo/service/impl/BbsTopicServiceImpl.java
+64
-0
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsUserService.java
...rc/main/java/com/tangguo/service/impl/BbsUserService.java
+7
-15
safe-campus-moment/src/main/resources/mapper/BbsMomentAttachmentMapper.xml
...t/src/main/resources/mapper/BbsMomentAttachmentMapper.xml
+1
-1
safe-campus-moment/src/main/resources/mapper/BbsMomentMapper.xml
...mpus-moment/src/main/resources/mapper/BbsMomentMapper.xml
+8
-0
safe-campus-moment/src/main/resources/mapper/BbsTopicMapper.xml
...ampus-moment/src/main/resources/mapper/BbsTopicMapper.xml
+27
-1
safe-campus-moment/src/main/resources/mapper/BbsUserMapper.xml
...campus-moment/src/main/resources/mapper/BbsUserMapper.xml
+16
-1
safe-campus-points/src/main/java/com/tangguo/service/IBbsUserPointsService.java
.../main/java/com/tangguo/service/IBbsUserPointsService.java
+1
-1
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsExchangeServiceImpl.java
...angguo/service/impl/BbsUserPointsExchangeServiceImpl.java
+1
-1
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
...va/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
+3
-3
No files found.
safe-campus-framework/src/main/java/com/tangguo/framework/config/CreateAndUpdateMetaObjectHandler.java
View file @
e3cd8cd3
...
...
@@ -36,7 +36,7 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
baseEntity
.
setUpdateBy
(
username
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"=> 自动注入异常:"
,
e
);
//
log.error("=> 自动注入异常:", e);
// throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
}
}
...
...
@@ -56,7 +56,7 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"=> 自动注入异常:"
,
e
);
//
log.error("=> 自动注入异常:", e);
// throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
}
}
...
...
safe-campus-framework/src/main/java/com/tangguo/framework/config/SecurityConfig.java
View file @
e3cd8cd3
package
com
.
tangguo
.
framework
.
config
;
import
com.tangguo.common.mauth.MobileProperties
;
import
com.tangguo.framework.config.properties.PermitAllUrlProperties
;
import
com.tangguo.framework.security.filter.JwtAuthenticationTokenFilter
;
import
com.tangguo.framework.security.handle.AuthenticationEntryPointImpl
;
...
...
@@ -20,6 +21,8 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
import
org.springframework.security.web.authentication.logout.LogoutFilter
;
import
org.springframework.web.filter.CorsFilter
;
import
javax.annotation.Resource
;
/**
* spring security配置
*
...
...
@@ -63,6 +66,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private
PermitAllUrlProperties
permitAllUrl
;
@Resource
private
MobileProperties
mobileProperties
;
/**
* 解决 无法直接注入 AuthenticationManager
*
...
...
@@ -112,6 +119,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 静态资源,可匿名访问
.
antMatchers
(
HttpMethod
.
GET
,
"/"
,
"/*.html"
,
"/**/*.html"
,
"/**/*.css"
,
"/**/*.js"
,
"/profile/**"
).
permitAll
()
.
antMatchers
(
"/swagger-ui.html"
,
"/swagger-resources/**"
,
"/webjars/**"
,
"/*/api-docs"
,
"/druid/**"
).
permitAll
()
// 移动端接口
.
antMatchers
(
this
.
mobileProperties
.
getPathPatterns
()).
permitAll
()
// 除上面外的所有请求全部需要鉴权认证
.
anyRequest
().
authenticated
()
.
and
()
...
...
safe-campus-moment/src/main/java/com/tangguo/controller/mobile/MBbsMomentController.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
controller
.
mobile
;
import
com.tangguo.common.core.domain.AjaxResult
;
import
com.tangguo.common.mauth.MobileAuth
;
import
com.tangguo.domain.bo.CreateMomentBO
;
import
com.tangguo.service.IBbsMomentService
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
/**
* 移动端动态控制器
*
* @author 谈笑
* @createTime 2025-09-02 16:19:17 星期二
*/
@RestController
@RequestMapping
(
"/bbs/mobile/moment"
)
public
class
MBbsMomentController
{
@Resource
private
IBbsMomentService
momentService
;
/**
* 创建动态
*
* @param bo 动态
* @return 创建结果
*/
@MobileAuth
@PostMapping
(
"/create"
)
public
AjaxResult
createMoment
(
@RequestBody
CreateMomentBO
bo
)
{
this
.
momentService
.
createMoment
(
bo
);
return
AjaxResult
.
success
();
}
}
safe-campus-moment/src/main/java/com/tangguo/controller/mobile/MBbsTopicController.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
controller
.
mobile
;
import
com.github.pagehelper.PageHelper
;
import
com.tangguo.common.core.domain.AjaxResult
;
import
com.tangguo.common.mauth.MobileAuth
;
import
com.tangguo.common.utils.PageUtils
;
import
com.tangguo.domain.BbsTopic
;
import
com.tangguo.domain.bo.CreateTopicBO
;
import
com.tangguo.domain.vo.BbsMomentListVO
;
import
com.tangguo.domain.vo.BbsTopicListVO
;
import
com.tangguo.service.IBbsMomentService
;
import
com.tangguo.service.IBbsTopicService
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* 移动端话题控制器
*
* @author 谈笑
* @createTime 2025-09-02 16:19:17 星期二
*/
@RestController
@RequestMapping
(
"/bbs/mobile/topic"
)
public
class
MBbsTopicController
{
@Resource
private
IBbsTopicService
topicService
;
/**
* 查询选择话题
*
* @param name 话题名称
* @return 话题
*/
@MobileAuth
@GetMapping
(
"/select"
)
public
AjaxResult
getSelectTopics
(
String
name
)
{
PageUtils
.
startPage
();
List
<
BbsTopicListVO
>
topics
=
this
.
topicService
.
getSelectTopics
(
name
);
return
AjaxResult
.
success
(
topics
);
}
/**
* 创建话题
*
* @param bo 话题
* @return 创建结果
*/
@MobileAuth
@PostMapping
(
"/create"
)
public
AjaxResult
createTopic
(
@RequestBody
CreateTopicBO
bo
)
{
this
.
topicService
.
createTopic
(
bo
);
return
AjaxResult
.
success
();
}
/**
* 查询热搜话题
*
* @return 话题
*/
@MobileAuth
@GetMapping
(
"/ranking"
)
public
AjaxResult
getRankingTopic
()
{
List
<
BbsTopicListVO
>
topics
=
this
.
topicService
.
getRankingTopic
();
return
AjaxResult
.
success
(
topics
);
}
/**
* 查询话题详情
*
* @param topicId 话题Id
* @return 话题明细
*/
@MobileAuth
@GetMapping
(
"/details"
)
public
AjaxResult
getTopicDetails
(
@RequestParam
Long
topicId
)
{
PageUtils
.
startPage
();
List
<
BbsMomentListVO
>
details
=
this
.
topicService
.
getTopicDetails
(
topicId
);
return
AjaxResult
.
success
(
details
);
}
}
safe-campus-moment/src/main/java/com/tangguo/controller/mobile/BbsUserController.java
→
safe-campus-moment/src/main/java/com/tangguo/controller/mobile/
M
BbsUserController.java
View file @
e3cd8cd3
...
...
@@ -3,6 +3,8 @@ package com.tangguo.controller.mobile;
import
com.tangguo.common.core.domain.AjaxResult
;
import
com.tangguo.common.mauth.MobileAuth
;
import
com.tangguo.domain.bo.CodeLoginBO
;
import
com.tangguo.domain.vo.BbsUserMomentCountVO
;
import
com.tangguo.service.IBbsMomentService
;
import
com.tangguo.service.impl.BbsUserService
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -10,18 +12,21 @@ import javax.annotation.Resource;
import
java.util.Map
;
/**
*
动态用户管理
控制器
*
移动端用户
控制器
*
* @author 谈笑
* @createTime 2025-09-02 14:42:17 星期二
*/
@RestController
@RequestMapping
(
"/bbs/mobile/user"
)
public
class
BbsUserController
{
public
class
M
BbsUserController
{
@Resource
private
BbsUserService
bbsUserService
;
@Resource
private
IBbsMomentService
momentService
;
/**
* 企微用户Code登录
...
...
@@ -48,4 +53,17 @@ public class BbsUserController {
return
AjaxResult
.
success
(
profileMap
);
}
/**
* 查询用户动态相关统计数据
*
* @return 动态统计数据
*/
@MobileAuth
@GetMapping
(
"/moment/count"
)
public
AjaxResult
userMomentCount
()
{
BbsUserMomentCountVO
momentCount
=
this
.
momentService
.
getUserMomentCount
();
return
AjaxResult
.
success
(
momentCount
);
}
}
safe-campus-moment/src/main/java/com/tangguo/domain/BbsMoment.java
View file @
e3cd8cd3
...
...
@@ -66,6 +66,11 @@ public class BbsMoment extends BaseEntity {
@ApiModelProperty
(
"外部链接地址"
)
private
String
linkUrl
;
/** 附件地址(逗号分割) */
@Excel
(
name
=
"附件地址(逗号分割)"
)
@ApiModelProperty
(
"附件地址(逗号分割)"
)
private
String
attachmentUrls
;
/** 是否开启评论:0 否、1 是 */
@Excel
(
name
=
"是否开启评论:0 否、1 是"
)
@ApiModelProperty
(
"是否开启评论:0 否、1 是"
)
...
...
@@ -113,6 +118,11 @@ public class BbsMoment extends BaseEntity {
@ApiModelProperty
(
"动态点赞人数"
)
private
Integer
likeCount
;
/** 动态评论人数 */
@Excel
(
name
=
"动态评论人数"
)
@ApiModelProperty
(
"动态评论人数"
)
private
Integer
commentCount
;
/** 动态投票人数 */
@Excel
(
name
=
"动态投票人数"
)
@ApiModelProperty
(
"动态投票人数"
)
...
...
safe-campus-moment/src/main/java/com/tangguo/domain/BbsMomentAttachment
s
.java
→
safe-campus-moment/src/main/java/com/tangguo/domain/BbsMomentAttachment.java
View file @
e3cd8cd3
...
...
@@ -22,9 +22,9 @@ import lombok.experimental.Accessors;
@ToString
@NoArgsConstructor
@Accessors
(
chain
=
true
)
@TableName
(
"bbs_moment_attachment
s
"
)
@TableName
(
"bbs_moment_attachment"
)
@ApiModel
(
value
=
"BbsMomentAttachments"
,
description
=
"动态附件实体"
)
public
class
BbsMomentAttachment
s
extends
BaseEntity
{
public
class
BbsMomentAttachment
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** ID */
...
...
safe-campus-moment/src/main/java/com/tangguo/domain/bo/CreateMomentBO.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.List
;
/**
*
*
* @author 谈笑
* @createTime 2025-09-02 16:38:31 星期二
*/
@Data
public
class
CreateMomentBO
{
/** 动态内容 */
private
String
content
;
/** 动态类型:IMAGE 图片动态、VIDEO 视频动态 */
private
String
type
;
/** 话题名称(逗号分割) */
private
List
<
String
>
topicNames
;
/** 话题Ids(逗号分割) */
private
List
<
String
>
topicIds
;
/** 外部链接地址 */
private
String
linkUrl
;
/** 动态附件地址 */
private
List
<
String
>
attachmentUrls
;
/** 是否开启评论:0 否、1 是 */
private
Integer
isEnableComment
;
/** 是否精选评论:0 否、1 是 */
private
Integer
isEnableFeaturedComment
;
/** 是否开启投票:0 否、1 是 */
private
Integer
isEnableVote
;
/** 投票标题 */
private
String
voteTitle
;
/** 投票选项类型:TEXT 文字、IMAGE 图片 */
private
String
voteOptionType
;
/** 动态附件 */
private
List
<
Attachment
>
attachments
;
/** 动态投票选项 */
private
List
<
VoteOption
>
voteOptions
;
/**
* 动态附件
*/
@Data
public
static
class
Attachment
{
/** 附件名称 */
private
String
name
;
/** 附件类型:图片 IMAGE、视频 VIDEO */
private
String
type
;
/** 附件预览地址 */
private
String
url
;
/** 文件扩展名:PNG、JPG、MP4 */
private
String
fileExt
;
}
/**
* 动态投票选项
*/
@Data
public
static
class
VoteOption
{
/** 选项类型:TEXT 文字、IMAGE 图片 */
private
String
type
;
/** 选项名称 */
private
String
name
;
/** 选项编码 */
private
String
code
;
/** 图片地址 */
private
String
imageUrl
;
/** 排序值 */
private
Integer
sort
;
}
}
safe-campus-moment/src/main/java/com/tangguo/domain/bo/CreateTopicBO.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
domain
.
bo
;
import
lombok.Data
;
/**
*
*
* @author 谈笑
* @createTime 2025-09-02 16:29:21 星期二
*/
@Data
public
class
CreateTopicBO
{
/**
* 话题名称
*/
private
String
name
;
}
safe-campus-moment/src/main/java/com/tangguo/domain/vo/BbsMomentListVO.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
domain
.
vo
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.tangguo.common.annotation.Excel
;
import
com.tangguo.domain.bo.CreateMomentBO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
*
*
* @author 谈笑
* @createTime 2025-09-03 15:42:59 星期三
*/
@Data
public
class
BbsMomentListVO
{
/** 动态Id */
private
Long
id
;
/** 发布人用户名 */
private
String
userName
;
/** 动态内容 */
private
String
content
;
/** 动态类型:IMAGE 图片动态、VIDEO 视频动态 */
private
String
type
;
/** 话题名称 */
private
List
<
String
>
topicNames
;
/** 话题Ids */
private
List
<
String
>
topicIds
;
/** 外部链接地址 */
private
String
linkUrl
;
/** 附件地址 */
private
List
<
String
>
attachmentUrls
;
/** 是否开启评论:0 否、1 是 */
private
Integer
isEnableComment
;
/** 是否精选评论:0 否、1 是 */
private
Integer
isEnableFeaturedComment
;
/** 是否开启投票:0 否、1 是 */
private
Integer
isEnableVote
;
/** 投票标题 */
private
String
voteTitle
;
/** 投票选项类型:TEXT 文字、IMAGE 图片 */
private
String
voteOptionType
;
/** 投票选项JSON */
private
String
voteOptions
;
/** 动态点赞人数 */
private
Integer
likeCount
;
/** 动态评论人数 */
private
Integer
commentCount
;
/** 动态投票人数 */
private
Integer
voteCount
;
}
safe-campus-moment/src/main/java/com/tangguo/domain/vo/BbsTopicListVO.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
domain
.
vo
;
import
com.tangguo.common.annotation.Excel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
*
*
* @author 谈笑
* @createTime 2025-09-03 15:48:15 星期三
*/
@Data
public
class
BbsTopicListVO
{
/** 话题Id */
private
Long
id
;
/** 话题名称 */
private
String
name
;
/** 话题动态数量 */
private
int
momentCount
;
}
safe-campus-moment/src/main/java/com/tangguo/domain/vo/BbsUserMomentCountVO.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
domain
.
vo
;
import
lombok.Data
;
/**
*
*
* @author 谈笑
* @createTime 2025-09-03 15:29:02 星期三
*/
@Data
public
class
BbsUserMomentCountVO
{
/**
* 动态数量
*/
private
int
momentCount
;
/**
* 评论数量
*/
private
int
commentCount
;
/**
* 点在数量
*/
private
int
likeCount
;
}
safe-campus-moment/src/main/java/com/tangguo/enums/EnableStatus.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* 启用禁用状态枚举
*
* @author 谈笑
* @createTime 2025-09-02 17:05:22 星期二
*/
@Getter
@AllArgsConstructor
public
enum
EnableStatus
{
QY
(
1
,
"启用"
),
JY
(
0
,
"禁用"
);
private
final
int
status
;
private
final
String
desc
;
}
safe-campus-moment/src/main/java/com/tangguo/mapper/BbsMomentAttachment
s
Mapper.java
→
safe-campus-moment/src/main/java/com/tangguo/mapper/BbsMomentAttachmentMapper.java
View file @
e3cd8cd3
package
com
.
tangguo
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.tangguo.domain.BbsMomentAttachment
s
;
import
com.tangguo.domain.BbsMomentAttachment
;
/**
* 动态附件Mapper接口
...
...
@@ -9,5 +9,5 @@ import com.tangguo.domain.BbsMomentAttachments;
* @author ruoyi
* @date 2025-09-01
*/
public
interface
BbsMomentAttachment
sMapper
extends
BaseMapper
<
BbsMomentAttachments
>
{
public
interface
BbsMomentAttachment
Mapper
extends
BaseMapper
<
BbsMomentAttachment
>
{
}
safe-campus-moment/src/main/java/com/tangguo/mapper/BbsMomentMapper.java
View file @
e3cd8cd3
...
...
@@ -2,6 +2,7 @@ package com.tangguo.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.tangguo.domain.BbsMoment
;
import
com.tangguo.domain.vo.BbsUserMomentCountVO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
...
...
@@ -16,4 +17,7 @@ public interface BbsMomentMapper extends BaseMapper<BbsMoment> {
List
<
BbsMoment
>
selectBbsMomentList
(
@Param
(
"moment"
)
BbsMoment
moment
);
BbsUserMomentCountVO
selectUserMomentCount
(
@Param
(
"userName"
)
String
userName
);
}
safe-campus-moment/src/main/java/com/tangguo/mapper/BbsTopicMapper.java
View file @
e3cd8cd3
...
...
@@ -2,6 +2,10 @@ package com.tangguo.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.tangguo.domain.BbsTopic
;
import
com.tangguo.domain.vo.BbsTopicListVO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 话题Mapper接口
...
...
@@ -10,4 +14,10 @@ import com.tangguo.domain.BbsTopic;
* @date 2025-08-27
*/
public
interface
BbsTopicMapper
extends
BaseMapper
<
BbsTopic
>
{
List
<
BbsTopicListVO
>
selectSelectTopics
(
@Param
(
"name"
)
String
name
);
List
<
BbsTopicListVO
>
selectRankingTopic
();
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentAttachmentService.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tangguo.domain.BbsMomentAttachment
;
import
com.tangguo.domain.bo.CreateMomentBO
;
import
java.util.List
;
/**
* 动态附件Service接口
*
* @author ruoyi
* @date 2025-09-01
*/
public
interface
IBbsMomentAttachmentService
extends
IService
<
BbsMomentAttachment
>
{
/**
* 查询动态附件
*
* @param momentId 动态Id
* @return 附件
*/
List
<
BbsMomentAttachment
>
getAttachments
(
Long
momentId
);
/**
* 添加动态附件
*
* @param userName 用户名
* @param momentId 动态Id
* @param attachments 动态附件
*/
void
addAttachments
(
String
userName
,
Long
momentId
,
List
<
CreateMomentBO
.
Attachment
>
attachments
);
/**
* 删除动态附件
*
* @param momentId 动态Id
*/
void
deleteAttachments
(
Long
momentId
);
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentAttachmentsService.java
deleted
100644 → 0
View file @
cfae5224
package
com
.
tangguo
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tangguo.domain.BbsMomentAttachments
;
/**
* 动态附件Service接口
*
* @author ruoyi
* @date 2025-09-01
*/
public
interface
IBbsMomentAttachmentsService
extends
IService
<
BbsMomentAttachments
>
{
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentService.java
View file @
e3cd8cd3
...
...
@@ -2,6 +2,8 @@ package com.tangguo.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tangguo.domain.BbsMoment
;
import
com.tangguo.domain.bo.CreateMomentBO
;
import
com.tangguo.domain.vo.BbsUserMomentCountVO
;
import
java.util.List
;
...
...
@@ -19,6 +21,22 @@ public interface IBbsMomentService extends IService<BbsMoment> {
* @param bbsMoment 动态
* @return 动态集合
*/
public
List
<
BbsMoment
>
selectBbsMomentList
(
BbsMoment
bbsMoment
);
List
<
BbsMoment
>
selectBbsMomentList
(
BbsMoment
bbsMoment
);
/**
* 查询用户动态相关统计数据
*
* @return 动态统计数据
*/
BbsUserMomentCountVO
getUserMomentCount
();
/**
* 创建动态
*
* @param bo 动态
*/
void
createMoment
(
CreateMomentBO
bo
);
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsMomentVoteOptionService.java
View file @
e3cd8cd3
package
com
.
tangguo
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tangguo.domain.BbsMomentAttachment
;
import
com.tangguo.domain.BbsMomentVoteOption
;
import
com.tangguo.domain.bo.CreateMomentBO
;
import
java.util.List
;
/**
* 动态投票选项Service接口
...
...
@@ -11,4 +15,30 @@ import com.tangguo.domain.BbsMomentVoteOption;
*/
public
interface
IBbsMomentVoteOptionService
extends
IService
<
BbsMomentVoteOption
>
{
/**
* 查询动态投票选项
*
* @param momentId 动态Id
* @return 投票选项
*/
List
<
BbsMomentVoteOption
>
getVoteOptions
(
Long
momentId
);
/**
* 添加动态投票选项
*
* @param momentId 动态Id
* @param voteOptions 投票选项
*/
void
addVoteOptions
(
Long
momentId
,
List
<
CreateMomentBO
.
VoteOption
>
voteOptions
);
/**
* 删除动态投票选项
*
* @param momentId 动态Id
*/
void
deleteVoteOptions
(
Long
momentId
);
}
safe-campus-moment/src/main/java/com/tangguo/service/IBbsTopicService.java
View file @
e3cd8cd3
...
...
@@ -2,6 +2,9 @@ package com.tangguo.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tangguo.domain.BbsTopic
;
import
com.tangguo.domain.bo.CreateTopicBO
;
import
com.tangguo.domain.vo.BbsMomentListVO
;
import
com.tangguo.domain.vo.BbsTopicListVO
;
import
java.util.List
;
...
...
@@ -53,4 +56,38 @@ public interface IBbsTopicService extends IService<BbsTopic> {
*/
void
deleteTopic
(
Long
topicId
);
/**
* 查询选择话题
*
* @param name 话题名称
* @return 话题
*/
List
<
BbsTopicListVO
>
getSelectTopics
(
String
name
);
/**
* 查询热搜话题
*
* @return 话题
*/
List
<
BbsTopicListVO
>
getRankingTopic
();
/**
* 查询话题详情
*
* @param topicId 话题Id
* @return 话题明细
*/
List
<
BbsMomentListVO
>
getTopicDetails
(
Long
topicId
);
/**
* 创建话题
*
* @param bo 话题
*/
void
createTopic
(
CreateTopicBO
bo
);
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentAttachmentServiceImpl.java
0 → 100644
View file @
e3cd8cd3
package
com
.
tangguo
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tangguo.domain.BbsMomentAttachment
;
import
com.tangguo.domain.bo.CreateMomentBO
;
import
com.tangguo.mapper.BbsMomentAttachmentMapper
;
import
com.tangguo.service.IBbsMomentAttachmentService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
/**
* 动态附件Service业务层处理
*
* @author ruoyi
* @date 2025-09-01
*/
@Service
public
class
BbsMomentAttachmentServiceImpl
extends
ServiceImpl
<
BbsMomentAttachmentMapper
,
BbsMomentAttachment
>
implements
IBbsMomentAttachmentService
{
@Resource
private
BbsMomentAttachmentMapper
bbsMomentAttachmentMapper
;
/**
* 查询动态附件
*
* @param momentId 动态Id
* @return 附件
*/
@Override
public
List
<
BbsMomentAttachment
>
getAttachments
(
Long
momentId
)
{
return
this
.
list
(
Wrappers
.
lambdaQuery
(
BbsMomentAttachment
.
class
).
eq
(
BbsMomentAttachment:
:
getMomentId
,
momentId
)
);
}
/**
* 添加动态附件
*
* @param userName 用户名
* @param momentId 动态Id
* @param attachments 动态附件
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
addAttachments
(
String
userName
,
Long
momentId
,
List
<
CreateMomentBO
.
Attachment
>
attachments
)
{
if
(
CollUtil
.
isNotEmpty
(
attachments
))
{
List
<
BbsMomentAttachment
>
newAttachments
=
new
ArrayList
<>(
attachments
.
size
());
for
(
CreateMomentBO
.
Attachment
attachment
:
attachments
)
{
BbsMomentAttachment
newAttachment
=
new
BbsMomentAttachment
();
newAttachment
.
setMomentId
(
momentId
);
newAttachment
.
setUserName
(
userName
);
newAttachment
.
setName
(
attachment
.
getName
());
newAttachment
.
setType
(
attachment
.
getType
());
newAttachment
.
setUrl
(
attachment
.
getUrl
());
newAttachment
.
setFileExt
(
attachment
.
getFileExt
());
newAttachments
.
add
(
newAttachment
);
}
this
.
saveBatch
(
newAttachments
);
}
}
/**
* 删除动态附件
*
* @param momentId 动态Id
*/
@Override
public
void
deleteAttachments
(
Long
momentId
)
{
this
.
remove
(
Wrappers
.
lambdaQuery
(
BbsMomentAttachment
.
class
).
eq
(
BbsMomentAttachment:
:
getMomentId
,
momentId
)
);
}
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentAttachmentsServiceImpl.java
deleted
100644 → 0
View file @
cfae5224
package
com
.
tangguo
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tangguo.domain.BbsMomentAttachments
;
import
com.tangguo.mapper.BbsMomentAttachmentsMapper
;
import
com.tangguo.service.IBbsMomentAttachmentsService
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
/**
* 动态附件Service业务层处理
*
* @author ruoyi
* @date 2025-09-01
*/
@Service
public
class
BbsMomentAttachmentsServiceImpl
extends
ServiceImpl
<
BbsMomentAttachmentsMapper
,
BbsMomentAttachments
>
implements
IBbsMomentAttachmentsService
{
@Resource
private
BbsMomentAttachmentsMapper
bbsMomentAttachmentsMapper
;
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentServiceImpl.java
View file @
e3cd8cd3
package
com
.
tangguo
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tangguo.common.exception.ServiceException
;
import
com.tangguo.common.mauth.MobileTokenHelper
;
import
com.tangguo.domain.BbsMoment
;
import
com.tangguo.domain.bo.CreateMomentBO
;
import
com.tangguo.domain.vo.BbsUserMomentCountVO
;
import
com.tangguo.enums.EnableStatus
;
import
com.tangguo.mapper.BbsMomentMapper
;
import
com.tangguo.service.IBbsMomentAttachmentService
;
import
com.tangguo.service.IBbsMomentService
;
import
com.tangguo.service.IBbsMomentVoteOptionService
;
import
org.apache.ibatis.parsing.TokenHandler
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.List
;
...
...
@@ -21,6 +32,12 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
@Resource
private
BbsMomentMapper
bbsMomentMapper
;
@Resource
private
IBbsMomentAttachmentService
attachmentsService
;
@Resource
private
IBbsMomentVoteOptionService
voteOptionService
;
/**
* 查询动态列表
...
...
@@ -33,4 +50,92 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
return
this
.
baseMapper
.
selectBbsMomentList
(
moment
);
}
/**
* 查询用户动态相关统计数据
*
* @return 动态统计数据
*/
@Override
public
BbsUserMomentCountVO
getUserMomentCount
()
{
String
username
=
MobileTokenHelper
.
getUsername
();
return
this
.
baseMapper
.
selectUserMomentCount
(
username
);
}
/**
* 创建动态
*
* @param bo 动态
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
createMoment
(
CreateMomentBO
bo
)
{
// 添加动态
String
username
=
MobileTokenHelper
.
getUsername
();
BbsMoment
newMoment
=
this
.
buildBbsMoment
(
bo
);
newMoment
.
setUserName
(
username
);
this
.
save
(
newMoment
);
// 添加动态附件
List
<
CreateMomentBO
.
Attachment
>
attachments
=
bo
.
getAttachments
();
this
.
attachmentsService
.
addAttachments
(
username
,
newMoment
.
getId
(),
attachments
);
// 添加动态投票选项
if
(
EnableStatus
.
QY
.
getStatus
()
==
bo
.
getIsEnableVote
())
{
List
<
CreateMomentBO
.
VoteOption
>
voteOptions
=
bo
.
getVoteOptions
();
this
.
voteOptionService
.
addVoteOptions
(
newMoment
.
getId
(),
voteOptions
);
}
}
/**
* 构建动态实体
*
* @param bo 动态
* @return 动态实体
*/
private
BbsMoment
buildBbsMoment
(
CreateMomentBO
bo
)
{
BbsMoment
newMoment
=
new
BbsMoment
();
newMoment
.
setContent
(
bo
.
getContent
());
newMoment
.
setType
(
bo
.
getType
());
newMoment
.
setLinkUrl
(
bo
.
getLinkUrl
());
newMoment
.
setIsEnableComment
(
bo
.
getIsEnableComment
());
newMoment
.
setIsEnableFeaturedComment
(
bo
.
getIsEnableFeaturedComment
());
// 动态主题
List
<
String
>
topicNames
=
bo
.
getTopicNames
();
if
(
CollUtil
.
isNotEmpty
(
topicNames
))
{
newMoment
.
setTopicNames
(
String
.
join
(
","
,
topicNames
));
}
List
<
String
>
topicIds
=
bo
.
getTopicIds
();
if
(
CollUtil
.
isNotEmpty
(
topicIds
))
{
newMoment
.
setTopicIds
(
String
.
join
(
","
,
topicIds
));
}
// 动态附件
List
<
String
>
attachmentUrls
=
bo
.
getAttachmentUrls
();
if
(
CollUtil
.
isNotEmpty
(
attachmentUrls
))
{
newMoment
.
setAttachmentUrls
(
String
.
join
(
","
,
attachmentUrls
));
}
// 动态投票
Integer
isEnableVote
=
bo
.
getIsEnableVote
();
newMoment
.
setIsEnableVote
(
isEnableVote
);
if
(
EnableStatus
.
QY
.
getStatus
()
==
isEnableVote
)
{
newMoment
.
setVoteTitle
(
bo
.
getVoteTitle
());
newMoment
.
setVoteOptionType
(
bo
.
getVoteOptionType
());
List
<
CreateMomentBO
.
VoteOption
>
voteOptions
=
bo
.
getVoteOptions
();
for
(
int
i
=
0
;
i
<
voteOptions
.
size
();
i
++)
{
int
index
=
i
+
1
;
CreateMomentBO
.
VoteOption
option
=
voteOptions
.
get
(
i
);
option
.
setType
(
bo
.
getVoteOptionType
());
option
.
setCode
(
String
.
valueOf
(
index
));
option
.
setSort
(
index
);
}
newMoment
.
setVoteOptions
(
JSONUtil
.
toJsonStr
(
voteOptions
));
}
return
newMoment
;
}
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsMomentVoteOptionServiceImpl.java
View file @
e3cd8cd3
package
com
.
tangguo
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tangguo.domain.BbsMomentVoteOption
;
import
com.tangguo.domain.bo.CreateMomentBO
;
import
com.tangguo.mapper.BbsMomentVoteOptionMapper
;
import
com.tangguo.service.IBbsMomentVoteOptionService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
/**
* 动态投票选项Service业务层处理
...
...
@@ -21,4 +28,56 @@ public class BbsMomentVoteOptionServiceImpl extends ServiceImpl<BbsMomentVoteOpt
private
BbsMomentVoteOptionMapper
bbsMomentVoteOptionMapper
;
/**
* 查询动态投票选项
*
* @param momentId 动态Id
* @return 投票选项
*/
@Override
public
List
<
BbsMomentVoteOption
>
getVoteOptions
(
Long
momentId
)
{
return
this
.
list
(
Wrappers
.
lambdaQuery
(
BbsMomentVoteOption
.
class
).
eq
(
BbsMomentVoteOption:
:
getMomentId
,
momentId
)
);
}
/**
* 添加动态投票选项
*
* @param momentId 动态Id
* @param voteOptions 投票选项
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
addVoteOptions
(
Long
momentId
,
List
<
CreateMomentBO
.
VoteOption
>
voteOptions
)
{
if
(
CollUtil
.
isNotEmpty
(
voteOptions
))
{
List
<
BbsMomentVoteOption
>
newVoteOptions
=
new
ArrayList
<>(
voteOptions
.
size
());
for
(
CreateMomentBO
.
VoteOption
voteOption
:
voteOptions
)
{
BbsMomentVoteOption
newVoteOption
=
new
BbsMomentVoteOption
();
newVoteOption
.
setMomentId
(
momentId
);
newVoteOption
.
setType
(
voteOption
.
getType
());
newVoteOption
.
setName
(
voteOption
.
getName
());
newVoteOption
.
setCode
(
voteOption
.
getCode
());
newVoteOption
.
setImageUrl
(
voteOption
.
getImageUrl
());
newVoteOption
.
setSort
(
voteOption
.
getSort
());
newVoteOptions
.
add
(
newVoteOption
);
}
this
.
saveBatch
(
newVoteOptions
);
}
}
/**
* 删除动态投票选项
*
* @param momentId 动态Id
*/
@Override
public
void
deleteVoteOptions
(
Long
momentId
)
{
this
.
remove
(
Wrappers
.
lambdaQuery
(
BbsMomentVoteOption
.
class
).
eq
(
BbsMomentVoteOption:
:
getMomentId
,
momentId
)
);
}
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsTopicServiceImpl.java
View file @
e3cd8cd3
...
...
@@ -5,14 +5,19 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tangguo.common.exception.ServiceException
;
import
com.tangguo.common.mauth.MobileTokenHelper
;
import
com.tangguo.common.utils.StringUtils
;
import
com.tangguo.domain.BbsTopic
;
import
com.tangguo.domain.bo.CreateTopicBO
;
import
com.tangguo.domain.vo.BbsMomentListVO
;
import
com.tangguo.domain.vo.BbsTopicListVO
;
import
com.tangguo.enums.TopicTopStatus
;
import
com.tangguo.mapper.BbsTopicMapper
;
import
com.tangguo.service.IBbsTopicService
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -137,4 +142,63 @@ public class BbsTopicServiceImpl extends ServiceImpl<BbsTopicMapper, BbsTopic> i
this
.
removeById
(
topicId
);
}
/**
* 查询选择话题
*
* @param name 话题名称
* @return 话题
*/
@Override
public
List
<
BbsTopicListVO
>
getSelectTopics
(
String
name
)
{
return
this
.
baseMapper
.
selectSelectTopics
(
name
);
}
/**
* 查询热搜话题
*
* @return 话题
*/
@Override
public
List
<
BbsTopicListVO
>
getRankingTopic
()
{
return
this
.
baseMapper
.
selectRankingTopic
();
}
/**
* 查询话题详情
*
* @param topicId 话题Id
* @return 话题明细
*/
@Override
public
List
<
BbsMomentListVO
>
getTopicDetails
(
Long
topicId
)
{
return
Collections
.
emptyList
();
}
/**
* 创建话题
*
* @param bo 话题
*/
@Override
public
void
createTopic
(
CreateTopicBO
bo
)
{
synchronized
(
bo
.
getName
().
intern
())
{
long
nameCount
=
this
.
count
(
Wrappers
.
lambdaQuery
(
BbsTopic
.
class
).
eq
(
BbsTopic:
:
getName
,
bo
.
getName
())
);
if
(
nameCount
>
0
)
{
throw
new
ServiceException
(
"创建失败,当前话题名称已存在。"
);
}
BbsTopic
newTopic
=
new
BbsTopic
();
newTopic
.
setCreateBy
(
MobileTokenHelper
.
getUsername
());
newTopic
.
setSource
(
"移动端用户"
);
newTopic
.
setName
(
bo
.
getName
());
this
.
save
(
newTopic
);
}
}
}
safe-campus-moment/src/main/java/com/tangguo/service/impl/BbsUserService.java
View file @
e3cd8cd3
...
...
@@ -51,21 +51,13 @@ public class BbsUserService {
throw
new
ServiceException
(
"登录失败,查询企微用户信息失败。"
);
}
try
{
QwmhUserInfo
dbUser
=
this
.
bbsUserMapper
.
selectQwmhUserInfo
(
userName
);
if
(
Objects
.
nonNull
(
dbUser
))
{
Map
<
String
,
Object
>
payloads
=
new
LinkedHashMap
<>(
1
);
payloads
.
put
(
"userName"
,
dbUser
.
getUserName
());
return
MobileTokenHelper
.
createDetailToken
(
payloads
);
}
else
{
throw
new
ServiceException
(
"登录失败,未查询到当前登录用户数据。"
);
}
}
catch
(
ServiceException
e
)
{
log
.
error
(
"=> 移动端用户登录失败:"
,
e
);
throw
e
;
}
catch
(
Exception
e
)
{
log
.
error
(
"=> 移动端用户登录失败:"
,
e
);
throw
new
ServiceException
(
"登录失败:"
+
e
.
getMessage
());
QwmhUserInfo
dbUser
=
this
.
bbsUserMapper
.
selectQwmhUserInfo
(
userName
);
if
(
Objects
.
nonNull
(
dbUser
))
{
Map
<
String
,
Object
>
payloads
=
new
LinkedHashMap
<>(
1
);
payloads
.
put
(
"userName"
,
dbUser
.
getUserName
());
return
MobileTokenHelper
.
createDetailToken
(
payloads
);
}
else
{
throw
new
ServiceException
(
"登录失败,未查询到当前登录用户数据。"
);
}
}
...
...
safe-campus-moment/src/main/resources/mapper/BbsMomentAttachment
s
Mapper.xml
→
safe-campus-moment/src/main/resources/mapper/BbsMomentAttachmentMapper.xml
View file @
e3cd8cd3
...
...
@@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.tangguo.mapper.BbsMomentAttachment
s
Mapper"
>
<mapper
namespace=
"com.tangguo.mapper.BbsMomentAttachmentMapper"
>
</mapper>
safe-campus-moment/src/main/resources/mapper/BbsMomentMapper.xml
View file @
e3cd8cd3
...
...
@@ -28,4 +28,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
m.create_time DESC
</select>
<select
id=
"selectUserMomentCount"
resultType=
"com.tangguo.domain.vo.BbsUserMomentCountVO"
>
SELECT
(SELECT COUNT(*) FROM bbs_moment WHERE user_name = #{userName}) AS monent_count,
(SELECT COUNT(*) FROM bbs_moment_comment WHERE user_name = #{userName}) AS comment_count,
(SELECT COUNT(*) FROM bbs_moment_like WHERE user_name = #{userName}) AS like_count
</select>
</mapper>
safe-campus-moment/src/main/resources/mapper/BbsTopicMapper.xml
View file @
e3cd8cd3
...
...
@@ -3,6 +3,32 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.tangguo.mapper.BbsTopicMapper"
>
<select
id=
"selectSelectTopics"
resultType=
"com.tangguo.domain.vo.BbsTopicListVO"
>
SELECT
id, name
FROM
bbs_topic
<where>
<if
test=
"name != null and name != ''"
>
name LIKE CONCAT('%', #{name}, '%')
</if>
</where>
ORDER BY
is_top DESC, CASE WHEN is_top = 1 THEN top_time END DESC, heat DESC, sort ASC, create_time DESC
</select>
<select
id=
"selectRankingTopic"
resultType=
"com.tangguo.domain.vo.BbsTopicListVO"
>
SELECT
t.id, t.name, COUNT(m.id) AS moment_count
FROM
bbs_topic t
LEFT JOIN
bbs_moment m ON FIND_IN_SET(t.id, m.topic_ids)
ORDER BY
t.is_top DESC, CASE WHEN t.is_top = 1 THEN t.top_time END DESC, t.heat DESC, t.sort ASC, t.create_time DESC
LIMIT 10
</select>
</mapper>
safe-campus-moment/src/main/resources/mapper/BbsUserMapper.xml
View file @
e3cd8cd3
...
...
@@ -4,7 +4,22 @@
<mapper
namespace=
"com.tangguo.mapper.BbsUserMapper"
>
<select
id=
"selectQwmhUserInfo"
resultType=
"com.tangguo.common.domain.QwmhUserInfo"
>
SELECT * FROM qwmh_sys_user_view WHERE user_name = #{userName}
SELECT
uv.nike_name,
uv.user_name,
uv.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
qwmh_sys_user_view uv
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>
</mapper>
safe-campus-points/src/main/java/com/tangguo/service/IBbsUserPointsService.java
View file @
e3cd8cd3
...
...
@@ -29,7 +29,7 @@ public interface IBbsUserPointsService extends IService<BbsUserPoints> {
* @param userName 用户名
* @return 积分
*/
BbsUserPoints
getUserPoints
(
String
userName
);
BbsUserPoints
get
AndInit
UserPoints
(
String
userName
);
/**
...
...
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsExchangeServiceImpl.java
View file @
e3cd8cd3
...
...
@@ -68,7 +68,7 @@ public class BbsUserPointsExchangeServiceImpl extends ServiceImpl<BbsUserPointsE
// 用户积分校验
String
userName
=
exchange
.
getUserName
();
Integer
exchangePoints
=
dbGoods
.
getExchangePoints
();
BbsUserPoints
dbUserPoints
=
this
.
userPointsService
.
getUserPoints
(
userName
);
BbsUserPoints
dbUserPoints
=
this
.
userPointsService
.
get
AndInit
UserPoints
(
userName
);
int
currentPoints
=
dbUserPoints
.
getCurrentPoints
()
-
dbGoods
.
getExchangePoints
();
if
(
currentPoints
<
0
)
{
throw
new
ServiceException
(
"兑换失败,当前用户可用积分不足。"
);
...
...
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
View file @
e3cd8cd3
...
...
@@ -63,7 +63,7 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
*/
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRES_NEW
)
@Override
public
BbsUserPoints
getUserPoints
(
String
userName
)
{
public
BbsUserPoints
get
AndInit
UserPoints
(
String
userName
)
{
BbsUserPoints
dbUserPoints
=
this
.
baseMapper
.
selectUserPoints
(
userName
);
if
(
Objects
.
isNull
(
dbUserPoints
))
{
QwmhUserInfo
qwmhSysUser
=
this
.
baseMapper
.
selectQwmhUser
(
userName
);
...
...
@@ -163,7 +163,7 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
// 更新用户积分
String
userName
=
detail
.
getUserName
();
BbsUserPoints
userPoints
=
this
.
pointsServiceImpl
.
getUserPoints
(
userName
);
BbsUserPoints
userPoints
=
this
.
pointsServiceImpl
.
get
AndInit
UserPoints
(
userName
);
int
beforeCurrentPoints
=
userPoints
.
getCurrentPoints
();
int
afterCurrentPoints
=
beforeCurrentPoints
+
points
;
userPoints
.
setCurrentPoints
(
afterCurrentPoints
);
...
...
@@ -206,7 +206,7 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
// 更新用户积分
String
userName
=
detail
.
getUserName
();
BbsUserPoints
userPoints
=
this
.
pointsServiceImpl
.
getUserPoints
(
userName
);
BbsUserPoints
userPoints
=
this
.
pointsServiceImpl
.
get
AndInit
UserPoints
(
userName
);
Integer
beforeCurrentPoints
=
userPoints
.
getCurrentPoints
();
if
(
points
>
beforeCurrentPoints
)
{
throw
new
ServiceException
(
"扣减用户积分失败,当前用户可用积分不足。"
);
...
...
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