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
eaa38867
Commit
eaa38867
authored
Sep 02, 2025
by
万成波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化代码
parent
72a253bb
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
124 additions
and
62 deletions
+124
-62
safe-campus-points/src/main/java/com/tangguo/controller/BbsUserPointsController.java
.../java/com/tangguo/controller/BbsUserPointsController.java
+3
-0
safe-campus-points/src/main/java/com/tangguo/controller/BbsUserPointsExchangeController.java
...m/tangguo/controller/BbsUserPointsExchangeController.java
+3
-2
safe-campus-points/src/main/java/com/tangguo/mapper/BbsUserPointsExchangeMapper.java
.../java/com/tangguo/mapper/BbsUserPointsExchangeMapper.java
+2
-2
safe-campus-points/src/main/java/com/tangguo/mapper/BbsUserPointsMapper.java
...src/main/java/com/tangguo/mapper/BbsUserPointsMapper.java
+7
-1
safe-campus-points/src/main/java/com/tangguo/service/IBbsGradeService.java
...s/src/main/java/com/tangguo/service/IBbsGradeService.java
+9
-0
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsGradeServiceImpl.java
...in/java/com/tangguo/service/impl/BbsGradeServiceImpl.java
+20
-1
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsExchangeServiceImpl.java
...angguo/service/impl/BbsUserPointsExchangeServiceImpl.java
+2
-2
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
...va/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
+24
-15
safe-campus-points/src/main/resources/mapper/BbsUserGradeMapper.xml
...s-points/src/main/resources/mapper/BbsUserGradeMapper.xml
+0
-8
safe-campus-points/src/main/resources/mapper/BbsUserPointsExchangeMapper.xml
...src/main/resources/mapper/BbsUserPointsExchangeMapper.xml
+25
-24
safe-campus-points/src/main/resources/mapper/BbsUserPointsMapper.xml
...-points/src/main/resources/mapper/BbsUserPointsMapper.xml
+29
-7
No files found.
safe-campus-points/src/main/java/com/tangguo/controller/BbsUserPointsController.java
View file @
eaa38867
package
com
.
tangguo
.
controller
;
import
com.tangguo.common.annotation.Log
;
import
com.tangguo.common.annotation.RepeatSubmit
;
import
com.tangguo.common.core.controller.BaseController
;
import
com.tangguo.common.core.domain.AjaxResult
;
import
com.tangguo.common.core.page.TableDataInfo
;
...
...
@@ -80,6 +81,7 @@ public class BbsUserPointsController extends BaseController {
/**
* 增加用户积分
*/
@RepeatSubmit
(
interval
=
1000
)
@ApiOperation
(
"新增用户积分"
)
@PreAuthorize
(
"@ss.hasPermi('points:points:incr')"
)
@Log
(
title
=
"用户积分"
,
businessType
=
BusinessType
.
UPDATE
)
...
...
@@ -93,6 +95,7 @@ public class BbsUserPointsController extends BaseController {
/**
* 扣减用户积分
*/
@RepeatSubmit
(
interval
=
1000
)
@ApiOperation
(
"扣减用户积分"
)
@PreAuthorize
(
"@ss.hasPermi('points:points:decr')"
)
@Log
(
title
=
"用户积分"
,
businessType
=
BusinessType
.
UPDATE
)
...
...
safe-campus-points/src/main/java/com/tangguo/controller/BbsUserPointsExchangeController.java
View file @
eaa38867
...
...
@@ -3,6 +3,7 @@ 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.RepeatSubmit
;
import
com.tangguo.common.core.controller.BaseController
;
import
com.tangguo.common.core.domain.AjaxResult
;
import
com.tangguo.common.core.page.TableDataInfo
;
...
...
@@ -100,15 +101,15 @@ public class BbsUserPointsExchangeController extends BaseController {
}
/**
* 用户积分兑换
*/
@RepeatSubmit
(
interval
=
1000
)
@ApiOperation
(
"用户积分兑换"
)
@PreAuthorize
(
"@ss.hasPermi('points:points:exchange')"
)
@Log
(
title
=
"用户积分兑换"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
(
"/exchange"
)
public
synchronized
AjaxResult
exchange
(
@RequestBody
BbsUserPointsExchange
exchange
)
{
public
AjaxResult
exchange
(
@RequestBody
BbsUserPointsExchange
exchange
)
{
synchronized
(
exchange
.
getUserName
().
intern
())
{
this
.
bbsUserPointsExchangeService
.
addUserPointsExchange
(
exchange
);
}
...
...
safe-campus-points/src/main/java/com/tangguo/mapper/BbsUserPointsExchangeMapper.java
View file @
eaa38867
...
...
@@ -15,9 +15,9 @@ import java.util.List;
*/
public
interface
BbsUserPointsExchangeMapper
extends
BaseMapper
<
BbsUserPointsExchange
>
{
List
<
QwmhSysUserVO
>
selectPointsUsers
(
@Param
(
"keyword"
)
String
keyword
);
List
<
BbsUserPointsExchange
>
selectBbsUserPointsExchangeList
(
@Param
(
"exchange"
)
BbsUserPointsExchange
exchange
);
List
<
BbsUserPointsExchange
>
selectBbsUserPointsExchangeList
(
@Param
(
"exchange"
)
BbsUserPointsExchange
exchange
);
List
<
QwmhSysUserVO
>
selectPointsUsers
(
@Param
(
"keyword"
)
String
keyword
);
}
safe-campus-points/src/main/java/com/tangguo/mapper/BbsUserPointsMapper.java
View file @
eaa38867
...
...
@@ -18,9 +18,15 @@ public interface BbsUserPointsMapper extends BaseMapper<BbsUserPoints> {
List
<
BbsUserPoints
>
selectBbsUserPointsList
(
@Param
(
"points"
)
BbsUserPoints
points
);
QwmhSysUserVO
selectQwmhUser
(
@Param
(
"userName"
)
String
userName
);
QwmhSysUserVO
selectQwmhUser
s
(
@Param
(
"userName"
)
String
userName
);
BbsUserPoints
selectUserPoints
(
@Param
(
"userName"
)
String
userName
);
int
initUserPointsGrade
();
int
refreshUserPointsGrade
();
}
safe-campus-points/src/main/java/com/tangguo/service/IBbsGradeService.java
View file @
eaa38867
...
...
@@ -61,4 +61,13 @@ public interface IBbsGradeService extends IService<BbsGrade> {
*/
BbsGrade
getInitialGrade
();
/**
* 通过积分查询等级
*
* @param points 积分
* @return 等级
*/
BbsGrade
getGradeByPoints
(
int
points
);
}
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsGradeServiceImpl.java
View file @
eaa38867
...
...
@@ -175,7 +175,26 @@ public class BbsGradeServiceImpl extends ServiceImpl<BbsGradeMapper, BbsGrade> i
@Override
public
BbsGrade
getInitialGrade
()
{
return
this
.
getOne
(
Wrappers
.
lambdaQuery
(
BbsGrade
.
class
).
eq
(
BbsGrade:
:
getIsInitial
,
IsInitialGrade
.
YES
.
getValue
())
Wrappers
.
lambdaQuery
(
BbsGrade
.
class
)
.
eq
(
BbsGrade:
:
getIsInitial
,
IsInitialGrade
.
YES
.
getValue
())
.
orderByDesc
(
BbsGrade:
:
getCreateTime
)
.
last
(
"LIMIT 1"
)
);
}
/**
* 通过积分查询等级
*
* @param points 积分
* @return 等级
*/
@Override
public
BbsGrade
getGradeByPoints
(
int
points
)
{
return
this
.
getOne
(
Wrappers
.
lambdaQuery
(
BbsGrade
.
class
)
.
le
(
BbsGrade:
:
getMinPoints
,
points
)
.
ge
(
BbsGrade:
:
getMaxPoints
,
points
)
);
}
...
...
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsExchangeServiceImpl.java
View file @
eaa38867
...
...
@@ -96,8 +96,8 @@ public class BbsUserPointsExchangeServiceImpl extends ServiceImpl<BbsUserPointsE
// 添加兑换记录
BbsUserPointsExchange
addExchange
=
new
BbsUserPointsExchange
();
addExchange
.
setNikeName
(
exchange
.
getNikeName
());
addExchange
.
setUserName
(
exchange
.
getUserName
());
addExchange
.
setUserGradeName
(
exchange
.
getUser
GradeName
());
addExchange
.
setUserName
(
dbUserPoints
.
getUserName
());
addExchange
.
setUserGradeName
(
dbUserPoints
.
get
GradeName
());
addExchange
.
setGoodsName
(
dbGoods
.
getName
());
addExchange
.
setGoodsCode
(
dbGoods
.
getCode
());
addExchange
.
setGoodsExchangePoints
(
dbGoods
.
getExchangePoints
());
...
...
safe-campus-points/src/main/java/com/tangguo/service/impl/BbsUserPointsServiceImpl.java
View file @
eaa38867
...
...
@@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Propagation;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -65,20 +66,19 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
public
BbsUserPoints
getUserPoints
(
String
userName
)
{
BbsUserPoints
dbUserPoints
=
this
.
baseMapper
.
selectUserPoints
(
userName
);
if
(
Objects
.
isNull
(
dbUserPoints
))
{
QwmhSysUserVO
qwmhSysUser
=
this
.
baseMapper
.
selectQwmhUser
(
userName
);
QwmhSysUserVO
qwmhSysUser
=
this
.
baseMapper
.
selectQwmhUser
s
(
userName
);
if
(
Objects
.
isNull
(
qwmhSysUser
))
{
throw
new
ServiceException
(
"查询用户积分失败,未查询到当前用户数据。"
);
}
else
{
dbUserPoints
=
new
BbsUserPoints
();
// 用户初始积分
dbUserPoints
.
setUserName
(
userName
);
dbUserPoints
.
setAccumulatedPoints
(
0
);
dbUserPoints
.
setCurrentPoints
(
0
);
// 用户初始等级
BbsGrade
dbGrade
=
this
.
gradeService
.
getInitialGrade
();
if
(
Objects
.
nonNull
(
dbGrade
))
{
dbUserPoints
.
setGradeCode
(
dbGrade
.
getCode
());
dbUserPoints
.
setGradeName
(
dbGrade
.
getName
());
dbUserPoints
.
setLastUpgradeTime
(
new
Date
());
}
this
.
save
(
dbUserPoints
);
}
...
...
@@ -164,10 +164,19 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
// 更新用户积分
String
userName
=
detail
.
getUserName
();
BbsUserPoints
userPoints
=
this
.
pointsServiceImpl
.
getUserPoints
(
userName
);
Integer
currentPoints
=
userPoints
.
getCurrentPoints
();
int
incrCurrentPoints
=
currentPoints
+
points
;
userPoints
.
setCurrentPoints
(
incrCurrentPoints
);
userPoints
.
setAccumulatedPoints
(
userPoints
.
getAccumulatedPoints
()
+
points
);
int
beforeCurrentPoints
=
userPoints
.
getCurrentPoints
();
int
afterCurrentPoints
=
beforeCurrentPoints
+
points
;
userPoints
.
setCurrentPoints
(
afterCurrentPoints
);
int
accumulatedPoints
=
userPoints
.
getAccumulatedPoints
()
+
points
;
userPoints
.
setAccumulatedPoints
(
accumulatedPoints
);
// 更新用户等级
BbsGrade
dbGrade
=
this
.
gradeService
.
getGradeByPoints
(
accumulatedPoints
);
if
(
Objects
.
nonNull
(
dbGrade
)
&&
!
dbGrade
.
getCode
().
equals
(
userPoints
.
getGradeCode
()))
{
userPoints
.
setGradeName
(
dbGrade
.
getName
());
userPoints
.
setGradeCode
(
dbGrade
.
getCode
());
userPoints
.
setLastUpgradeTime
(
new
Date
());
}
this
.
updateById
(
userPoints
);
// 添加用户积分明细
...
...
@@ -176,8 +185,8 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
newDetail
.
setDetailName
(
detail
.
getDetailName
());
newDetail
.
setDetailCode
(
detail
.
getDetailCode
());
newDetail
.
setDetailPoints
(
points
);
newDetail
.
setBeforePoints
(
c
urrentPoints
);
newDetail
.
setAfterPoints
(
inc
rCurrentPoints
);
newDetail
.
setBeforePoints
(
beforeC
urrentPoints
);
newDetail
.
setAfterPoints
(
afte
rCurrentPoints
);
newDetail
.
setDescription
(
detail
.
getDescription
());
this
.
pointsDetailService
.
save
(
newDetail
);
}
...
...
@@ -198,13 +207,13 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
// 更新用户积分
String
userName
=
detail
.
getUserName
();
BbsUserPoints
userPoints
=
this
.
pointsServiceImpl
.
getUserPoints
(
userName
);
Integer
c
urrentPoints
=
userPoints
.
getCurrentPoints
();
if
(
points
>
c
urrentPoints
)
{
Integer
beforeC
urrentPoints
=
userPoints
.
getCurrentPoints
();
if
(
points
>
beforeC
urrentPoints
)
{
throw
new
ServiceException
(
"扣减用户积分失败,当前用户可用积分不足。"
);
}
int
decrCurrentPoints
=
c
urrentPoints
-
points
;
userPoints
.
setCurrentPoints
(
dec
rCurrentPoints
);
int
afterCurrentPoints
=
beforeC
urrentPoints
-
points
;
userPoints
.
setCurrentPoints
(
afte
rCurrentPoints
);
this
.
updateById
(
userPoints
);
// 添加用户积分明细
...
...
@@ -213,8 +222,8 @@ public class BbsUserPointsServiceImpl extends ServiceImpl<BbsUserPointsMapper, B
newDetail
.
setDetailName
(
detail
.
getDetailName
());
newDetail
.
setDetailCode
(
detail
.
getDetailCode
());
newDetail
.
setDetailPoints
(
points
);
newDetail
.
setBeforePoints
(
c
urrentPoints
);
newDetail
.
setAfterPoints
(
dec
rCurrentPoints
);
newDetail
.
setBeforePoints
(
beforeC
urrentPoints
);
newDetail
.
setAfterPoints
(
afte
rCurrentPoints
);
newDetail
.
setDescription
(
detail
.
getDescription
());
this
.
pointsDetailService
.
save
(
newDetail
);
}
...
...
safe-campus-points/src/main/resources/mapper/BbsUserGradeMapper.xml
deleted
100644 → 0
View file @
72a253bb
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.tangguo.mapper.BbsUserGradeMapper"
>
</mapper>
safe-campus-points/src/main/resources/mapper/BbsUserPointsExchangeMapper.xml
View file @
eaa38867
...
...
@@ -4,30 +4,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.tangguo.mapper.BbsUserPointsExchangeMapper"
>
<select
id=
"selectPointsUsers"
resultType=
"com.tangguo.domain.vo.QwmhSysUserVO"
>
SELECT
uv.user_name,
uv.nike_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
CROSS JOIN (
SELECT (SELECT name FROM bbs_grade WHERE is_initial = 1) AS name
) ug
LEFT JOIN
bbs_user_points p ON p.user_name = uv.user_name
<where>
<if
test=
"keyword != null and keyword != ''"
>
nike_name LIKE CONCAT('%', #{keyword}, '%') OR user_name LIKE CONCAT('%', #{keyword}, '%')
</if>
</where>
ORDER BY
uv.create_time DESC
</select>
<select
id=
"selectBbsUserPointsExchangeList"
resultType=
"com.tangguo.domain.BbsUserPointsExchange"
>
SELECT
e.*
...
...
@@ -57,4 +33,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
e.create_time DESC
</select>
<select
id=
"selectPointsUsers"
resultType=
"com.tangguo.domain.vo.QwmhSysUserVO"
>
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>
<if
test=
"keyword != null and keyword != ''"
>
nike_name LIKE CONCAT('%', #{keyword}, '%') OR user_name LIKE CONCAT('%', #{keyword}, '%')
</if>
</where>
ORDER BY
uv.create_time DESC
</select>
</mapper>
safe-campus-points/src/main/resources/mapper/BbsUserPointsMapper.xml
View file @
eaa38867
...
...
@@ -6,16 +6,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select
id=
"selectBbsUserPointsList"
resultType=
"com.tangguo.domain.BbsUserPoints"
>
SELECT
p.id,
IFNULL(p.accumulated_points, 0) AS accumulated_points,
IFNULL(p.current_points, 0) AS current_points,
uv.user_name,
uv.nike_name,
uv.dept_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>
<if
test=
"points.nikeName != null and points.nikeName != ''"
>
uv.nike_name LIKE CONCAT('%', #{points.nikeName}, '%')
...
...
@@ -31,11 +34,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</where>
ORDER BY
p.accumulated_points
DESC
uv.create_time
DESC
</select>
<select
id=
"selectQwmhUser"
resultType=
"com.tangguo.domain.vo.QwmhSysUserVO"
>
<select
id=
"selectQwmhUser
s
"
resultType=
"com.tangguo.domain.vo.QwmhSysUserVO"
>
SELECT * FROM qwmh_sys_user_view WHERE user_name = #{userName}
</select>
...
...
@@ -44,4 +47,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT * FROM bbs_user_points WHERE user_name = #{userName}
</select>
<update
id=
"initUserPointsGrade"
>
</update>
<update
id=
"refreshUserPointsGrade"
>
UPDATE
bbs_user_points p
LEFT JOIN
(
SELECT * FROM bbs_grade ORDER BY create_time LIMIT 1
) g ON (g.min_points
<
= p.accumulated_points AND g.max_points >= p.accumulated_points)
SET
p.grade_code = g.`code`, p.grade_name = g.`name`, p.last_upgrade_time = NOW()
WHERE
p.grade_code != g.code
</update>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment