Browse Source

排序修改

暂用(不合并)
sunjiabei 3 days ago
parent
commit
22171610c6
  1. 6
      src/main/java/com/example/demo/controller/ConsumeController.java
  2. 7
      src/main/java/com/example/demo/controller/RefundController.java
  3. 3
      src/main/java/com/example/demo/domain/vo/ConsumeUser.java
  4. 3
      src/main/java/com/example/demo/domain/vo/RefundUser.java
  5. 2
      src/main/java/com/example/demo/mapper/ConsumeMapper.java
  6. 2
      src/main/java/com/example/demo/mapper/RefundMapper.java
  7. 4
      src/main/java/com/example/demo/service/ConsumeService.java
  8. 4
      src/main/java/com/example/demo/service/RefundService.java
  9. 27
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  10. 22
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  11. 100
      src/main/resources/mapper/ConsumeMapper.xml
  12. 68
      src/main/resources/mapper/RefundMapper.xml

6
src/main/java/com/example/demo/controller/ConsumeController.java

@ -41,7 +41,7 @@ public class ConsumeController {
if (ObjectUtils.isEmpty(page.getPageSize())) {
return Result.error("页大小为空!");
} else {
return Result.success(consumeService.selectAll(page.getPageNum(), page.getPageSize()));
return Result.success(consumeService.selectAll(page.getPageNum(), page.getPageSize(),page.getConsumeUser()));
}
} catch (Exception e) {
return Result.error("接口调用失败");
@ -71,9 +71,9 @@ public class ConsumeController {
//消耗金币统计
@PostMapping("/statsGold")
public Result statsGold() {
public Result statsGold(@RequestBody ConsumeUser consumeUser) {
try {
Gold gold = consumeService.statsGold();
Gold gold = consumeService.statsGold(consumeUser);
return Result.success(gold);
} catch (Exception e) {
return Result.error("接口调用失败");

7
src/main/java/com/example/demo/controller/RefundController.java

@ -2,6 +2,7 @@ package com.example.demo.controller;
import com.example.demo.domain.vo.Gold;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.RefundUser;
import com.example.demo.domain.vo.Result;
import com.example.demo.service.ConsumeService;
import com.example.demo.service.RefundService;
@ -40,7 +41,7 @@ public class RefundController {
if (ObjectUtils.isEmpty(page.getPageSize())) {
return Result.error("页大小为空!");
} else {
return Result.success(refundService.selectAll(page.getPageNum(), page.getPageSize()));
return Result.success(refundService.selectAll(page.getPageNum(), page.getPageSize(), page.getRefundUser()));
}
} catch (Exception e) {
return Result.error("接口调用失败");
@ -66,9 +67,9 @@ public class RefundController {
}
@PostMapping("/statsGold")
public Result statsGold() {
public Result statsGold(@RequestBody RefundUser refundUser) {
try {
Gold gold = refundService.statsGold();
Gold gold = refundService.statsGold(refundUser);
return Result.success(gold);
} catch (Exception e) {
return Result.error("接口调用失败");

3
src/main/java/com/example/demo/domain/vo/ConsumeUser.java

@ -43,4 +43,7 @@ public class ConsumeUser implements Serializable {
private Date startTime; // 开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date endTime; // 结束时间
private String sortField; //排序字段
private String sortOrder; //排序顺序
}

3
src/main/java/com/example/demo/domain/vo/RefundUser.java

@ -43,4 +43,7 @@ public class RefundUser {
private Date startTime; // 开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date endTime; // 结束时间
private String sortField; //排序字段
private String sortOrder; //排序顺序
}

2
src/main/java/com/example/demo/mapper/ConsumeMapper.java

@ -18,7 +18,7 @@ import java.util.List;
@Mapper
public interface ConsumeMapper {
List<ConsumeUser> selectAll();
List<ConsumeUser> selectAll(ConsumeUser consumeUser);
List<ConsumeUser> selectBy(ConsumeUser consumeUser);

2
src/main/java/com/example/demo/mapper/RefundMapper.java

@ -19,7 +19,7 @@ import java.util.List;
@Mapper
public interface RefundMapper {
List<RefundUser> selectAll();
List<RefundUser> selectAll(RefundUser refundUser);
List<RefundUser> selectBy(RefundUser refundUser);

4
src/main/java/com/example/demo/service/ConsumeService.java

@ -18,9 +18,9 @@ import com.github.pagehelper.PageInfo;
public interface ConsumeService {
PageInfo<ConsumeUser> selectAll(Integer pageNum, Integer pageSize);
PageInfo<ConsumeUser> selectAll(Integer pageNum, Integer pageSize, ConsumeUser consumeUser);
Gold statsGold();
Gold statsGold(ConsumeUser consumeUser);
PageInfo<ConsumeUser> selectBy(Integer pageNum, Integer pageSize, ConsumeUser consumeUser);

4
src/main/java/com/example/demo/service/RefundService.java

@ -18,9 +18,9 @@ import com.github.pagehelper.PageInfo;
public interface RefundService {
PageInfo<RefundUser> selectAll(Integer pageNum, Integer pageSize);
PageInfo<RefundUser> selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser);
Gold statsGold();
Gold statsGold(RefundUser refundUser);
PageInfo<RefundUser> selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser);

27
src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java

@ -42,17 +42,17 @@ public class ConsumeServiceImpl implements ConsumeService {
//消耗明细
@Override
public PageInfo<ConsumeUser> selectAll(Integer pageNum, Integer pageSize) {
public PageInfo<ConsumeUser> selectAll(Integer pageNum, Integer pageSize, ConsumeUser consumeUser) {
PageHelper.startPage(pageNum, pageSize);
List<ConsumeUser> consumeUsers = consumeMapper.selectAll();
List<ConsumeUser> consumeUsers = consumeMapper.selectAll(consumeUser);
return new PageInfo<>(consumeUsers);
}
//消耗金币统计
@Override
public Gold statsGold() {
public Gold statsGold(ConsumeUser consumeUser) {
Gold gold = new Gold();
List<ConsumeUser> consumeUsers = consumeMapper.selectAll();
List<ConsumeUser> consumeUsers = consumeMapper.selectBy(consumeUser);
// 初始化累加器
int permanentGoldSum = 0;
@ -60,18 +60,18 @@ public class ConsumeServiceImpl implements ConsumeService {
int taskGoldSum = 0;
// 遍历消费记录并累加金币
for (ConsumeUser consumeUser : consumeUsers) {
for (ConsumeUser user : consumeUsers) {
// 累加永久金币
if (consumeUser.getPermanentGold() != null) {
permanentGoldSum += consumeUser.getPermanentGold();
if (user.getPermanentGold() != null) {
permanentGoldSum += user.getPermanentGold();
}
// 累加免费金币
if (consumeUser.getFreeGold() != null) {
freeGoldSum += consumeUser.getFreeGold();
if (user.getFreeGold() != null) {
freeGoldSum += user.getFreeGold();
}
// 累加任务金币
if (consumeUser.getTaskGold() != null) {
taskGoldSum += consumeUser.getTaskGold();
if (user.getTaskGold() != null) {
taskGoldSum += user.getTaskGold();
}
}
@ -105,12 +105,9 @@ public class ConsumeServiceImpl implements ConsumeService {
int count = atomicInteger.getAndUpdate(c -> (c >= 999) ? 0 : c + 1);
String counterPart = String.format("%03d", count);
// 生成随机数部分四位数
Random RANDOM = new Random();
int randomNum = RANDOM.nextInt(9000) + 1000;
//订单号生成
userGoldRecord.setOrderCode(timestampPart + counterPart + randomNum);
userGoldRecord.setOrderCode("XF" + timestampPart + counterPart);
userGoldRecord.setJwcode(consumeUser.getJwcode());
userGoldRecord.setGoodsName(consumeUser.getGoodsName());
userGoldRecord.setSumGold(consumeUser.getSumGold());

22
src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java

@ -34,16 +34,16 @@ public class RefundServiceImpl implements RefundService {
private UserMapper userMapper;
@Override
public PageInfo<RefundUser> selectAll(Integer pageNum, Integer pageSize) {
public PageInfo<RefundUser> selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser) {
PageHelper.startPage(pageNum, pageSize);
List<RefundUser> refundUsers = refundMapper.selectAll();
List<RefundUser> refundUsers = refundMapper.selectAll(refundUser);
return new PageInfo<>(refundUsers);
}
@Override
public Gold statsGold() {
public Gold statsGold(RefundUser refundUser) {
Gold gold = new Gold();
List<RefundUser> refundUsers = refundMapper.selectAll();
List<RefundUser> refundUsers = refundMapper.selectBy(refundUser);
// 初始化累加器
int permanentGoldSum = 0;
@ -51,18 +51,18 @@ public class RefundServiceImpl implements RefundService {
int taskGoldSum = 0;
// 遍历推开记录并累加金币
for (RefundUser refundUser : refundUsers) {
for (RefundUser user : refundUsers) {
// 累加永久金币
if (refundUser.getPermanentGold() != null) {
permanentGoldSum += refundUser.getPermanentGold();
if (user.getPermanentGold() != null) {
permanentGoldSum += user.getPermanentGold();
}
// 累加免费金币
if (refundUser.getFreeGold() != null) {
freeGoldSum += refundUser.getFreeGold();
if (user.getFreeGold() != null) {
freeGoldSum += user.getFreeGold();
}
// 累加任务金币
if (refundUser.getTaskGold() != null) {
taskGoldSum += refundUser.getTaskGold();
if (user.getTaskGold() != null) {
taskGoldSum += user.getTaskGold();
}
}

100
src/main/resources/mapper/ConsumeMapper.xml

@ -4,24 +4,58 @@
<!-- 查询所有消费记录 -->
<select id="selectAll" resultType="com.example.demo.domain.vo.ConsumeUser">
SELECT u.name AS name,
u.jwcode AS jwcode,
u.market AS market,
ugr.goods_name AS goodsName,
ugr.pay_platform AS payPlatform,
ugr.sum_gold AS sumGold,
ugr.permanent_gold AS permanentGold,
(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
ugr.task_gold AS taskGold,
ugr.remark AS remark,
a.admin_name AS adminName,
ugr.create_time AS createTime
SELECT u.name AS name,
u.jwcode AS jwcode,
u.market AS market,
ugr.goods_name AS goodsName,
ugr.pay_platform AS payPlatform,
ugr.sum_gold AS sumGold,
ugr.permanent_gold AS permanentGold,
(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
ugr.task_gold AS taskGold,
ugr.remark AS remark,
a.admin_name AS adminName,
ugr.create_time AS createTime
FROM user u
JOIN
user_gold_record ugr ON u.jwcode = ugr.jwcode
JOIN
admin a ON ugr.admin_id = a.id
JOIN
user_gold_record ugr ON u.jwcode = ugr.jwcode
JOIN
admin a ON ugr.admin_id = a.id
WHERE ugr.type = 1
<trim prefix="ORDER BY" suffixOverrides=",">
<choose>
<!-- 当指定排序字段时使用指定字段排序 -->
<when test="sortField != null and sortField != ''">
<choose>
<!-- 对三种金币数量的排序处理 -->
<when test="sortField == 'sumGold'">ugr.sum_gold</when>
<when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
<when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
<!-- 对时间字段的排序处理 -->
<when test="sortField == 'createTime'">ugr.create_time</when>
<!-- 其他字段不支持排序,使用默认排序 -->
<otherwise>ugr.create_time</otherwise>
</choose>
<!-- 排序方向处理 -->
<if test="sortOrder != null and sortOrder != ''">
<choose>
<when test="sortOrder == 'ASC'">ASC</when>
<when test="sortOrder == 'DESC'">DESC</when>
<otherwise>DESC</otherwise>
</choose>
</if>
<if test="sortOrder == null or sortOrder == ''">
DESC
</if>
</when>
<!-- 未指定排序字段时,使用默认的时间降序排序 -->
<otherwise>
ugr.create_time DESC
</otherwise>
</choose>
</trim>
</select>
<!-- 查询筛选后消费记录 -->
@ -61,6 +95,40 @@
AND ugr.create_time BETWEEN #{startTime} AND #{endTime}
</if>
</where>
<trim prefix="ORDER BY" suffixOverrides=",">
<choose>
<!-- 当指定排序字段时使用指定字段排序 -->
<when test="sortField != null and sortField != ''">
<choose>
<!-- 对三种金币数量的排序处理 -->
<when test="sortField == 'sumGold'">ugr.sum_gold</when>
<when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
<when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
<!-- 对时间字段的排序处理 -->
<when test="sortField == 'createTime'">ugr.create_time</when>
<!-- 其他字段不支持排序,使用默认排序 -->
<otherwise>ugr.create_time</otherwise>
</choose>
<!-- 排序方向处理 -->
<if test="sortOrder != null and sortOrder != ''">
<choose>
<when test="sortOrder == 'ASC'">ASC</when>
<when test="sortOrder == 'DESC'">DESC</when>
<otherwise>DESC</otherwise>
</choose>
</if>
<if test="sortOrder == null or sortOrder == ''">
DESC
</if>
</when>
<!-- 未指定排序字段时,使用默认的时间降序排序 -->
<otherwise>
ugr.create_time DESC
</otherwise>
</choose>
</trim>
</select>
<insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" keyProperty="id">

68
src/main/resources/mapper/RefundMapper.xml

@ -23,6 +23,40 @@
JOIN
admin a ON ugr.admin_id = a.id
WHERE ugr.type = 2
<trim prefix="ORDER BY" suffixOverrides=",">
<choose>
<!-- 当指定排序字段时使用指定字段排序 -->
<when test="sortField != null and sortField != ''">
<choose>
<!-- 对三种金币数量的排序处理 -->
<when test="sortField == 'sumGold'">ugr.sum_gold</when>
<when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
<when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
<!-- 对时间字段的排序处理 -->
<when test="sortField == 'createTime'">ugr.create_time</when>
<!-- 其他字段不支持排序,使用默认排序 -->
<otherwise>ugr.create_time</otherwise>
</choose>
<!-- 排序方向处理 -->
<if test="sortOrder != null and sortOrder != ''">
<choose>
<when test="sortOrder == 'ASC'">ASC</when>
<when test="sortOrder == 'DESC'">DESC</when>
<otherwise>DESC</otherwise>
</choose>
</if>
<if test="sortOrder == null or sortOrder == ''">
DESC
</if>
</when>
<!-- 未指定排序字段时,使用默认的时间降序排序 -->
<otherwise>
ugr.create_time DESC
</otherwise>
</choose>
</trim>
</select>
<!-- 查询筛选后消费记录 -->
@ -63,6 +97,40 @@
AND ugr.create_time BETWEEN #{startTime} AND #{endTime}
</if>
</where>
<trim prefix="ORDER BY" suffixOverrides=",">
<choose>
<!-- 当指定排序字段时使用指定字段排序 -->
<when test="sortField != null and sortField != ''">
<choose>
<!-- 对三种金币数量的排序处理 -->
<when test="sortField == 'sumGold'">ugr.sum_gold</when>
<when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
<when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
<!-- 对时间字段的排序处理 -->
<when test="sortField == 'createTime'">ugr.create_time</when>
<!-- 其他字段不支持排序,使用默认排序 -->
<otherwise>ugr.create_time</otherwise>
</choose>
<!-- 排序方向处理 -->
<if test="sortOrder != null and sortOrder != ''">
<choose>
<when test="sortOrder == 'ASC'">ASC</when>
<when test="sortOrder == 'DESC'">DESC</when>
<otherwise>DESC</otherwise>
</choose>
</if>
<if test="sortOrder == null or sortOrder == ''">
DESC
</if>
</when>
<!-- 未指定排序字段时,使用默认的时间降序排序 -->
<otherwise>
ugr.create_time DESC
</otherwise>
</choose>
</trim>
</select>
<insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" keyProperty="id">

Loading…
Cancel
Save