11 Commits
04b61d2687
...
05cf4c5983
Author | SHA1 | Message | Date |
---|---|---|---|
|
05cf4c5983 |
7-1审核统计数,工作台优化
|
2 days ago |
|
bbed22916d |
Merge remote-tracking branch 'refs/remotes/origin/lijianlin/feature-20250623120104-工作台与审核' into milestone-20250702-金币重构一期
# Conflicts: # src/main/java/com/example/demo/domain/vo/Page.java |
2 days ago |
|
f4f7406fc6 |
楼上接口+商品查询修改
|
3 days ago |
|
979abbd622 |
楼上接口+商品查询修改
|
3 days ago |
|
77e0a6e31f |
新增退款及附属接口
|
3 days ago |
|
056c957f75 |
新增充值和活动查询
|
4 days ago |
|
cb5e5687f5 |
充值详情
|
4 days ago |
|
22171610c6 |
排序修改
|
4 days ago |
|
78af78ec42 |
Merge branch 'milestone-20250702-金币重构一期' into sunjiabei/feature-20250623130922-消费功能
|
4 days ago |
|
407e01397d |
Merge branch 'milestone-20250702-金币重构一期' into sunjiabei/feature-20250623130922-消费功能
|
6 days ago |
|
786d281c0e |
测试git
|
6 days ago |
36 changed files with 1092 additions and 104 deletions
-
21src/main/java/com/example/demo/controller/AuditController.java
-
14src/main/java/com/example/demo/controller/ConsumeController.java
-
6src/main/java/com/example/demo/controller/GeneralController.java
-
93src/main/java/com/example/demo/controller/RechargeController.java
-
35src/main/java/com/example/demo/controller/RefundController.java
-
3src/main/java/com/example/demo/domain/vo/ConsumeUser.java
-
1src/main/java/com/example/demo/domain/vo/Gold.java
-
1src/main/java/com/example/demo/domain/vo/Page.java
-
51src/main/java/com/example/demo/domain/vo/RechargeUser.java
-
5src/main/java/com/example/demo/domain/vo/RefundAudit.java
-
4src/main/java/com/example/demo/domain/vo/RefundUser.java
-
2src/main/java/com/example/demo/mapper/AuditMapper.java
-
2src/main/java/com/example/demo/mapper/ConsumeMapper.java
-
1src/main/java/com/example/demo/mapper/GeneralMapper.java
-
27src/main/java/com/example/demo/mapper/RechargeMapper.java
-
7src/main/java/com/example/demo/mapper/RefundMapper.java
-
6src/main/java/com/example/demo/service/AuditService.java
-
4src/main/java/com/example/demo/service/ConsumeService.java
-
3src/main/java/com/example/demo/service/GeneralService.java
-
26src/main/java/com/example/demo/service/RechargeService.java
-
11src/main/java/com/example/demo/service/RefundService.java
-
2src/main/java/com/example/demo/service/StatisticsService.java
-
3src/main/java/com/example/demo/service/WorkbenchService.java
-
103src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
-
34src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
-
7src/main/java/com/example/demo/serviceImpl/GeneralServiceImpl.java
-
131src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
-
103src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
-
2src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
-
77src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java
-
6src/main/resources/mapper/AuditMapper.xml
-
102src/main/resources/mapper/ConsumeMapper.xml
-
3src/main/resources/mapper/GeneralMapper.xml
-
183src/main/resources/mapper/RechargeMapper.xml
-
112src/main/resources/mapper/RefundMapper.xml
-
5src/main/resources/mapper/StatisticsMapper.xml
@ -0,0 +1,93 @@ |
|||||
|
package com.example.demo.controller; |
||||
|
|
||||
|
import com.example.demo.domain.vo.*; |
||||
|
import com.example.demo.service.ConsumeService; |
||||
|
import com.example.demo.service.RechargeService; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.util.ObjectUtils; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName RechargeController |
||||
|
* @description: |
||||
|
* @author: Double |
||||
|
* @create: 2025−06-29 13:01 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/recharge") |
||||
|
@RequiredArgsConstructor |
||||
|
@Slf4j |
||||
|
@CrossOrigin |
||||
|
public class RechargeController { |
||||
|
|
||||
|
|
||||
|
@Autowired |
||||
|
private RechargeService rechargeService; |
||||
|
|
||||
|
//消耗明细 |
||||
|
@PostMapping("/selectAll") |
||||
|
public Result selcetAll(@RequestBody Page page) { |
||||
|
try { |
||||
|
if (ObjectUtils.isEmpty(page.getPageNum())) { |
||||
|
return Result.error("页码数为空!"); |
||||
|
} |
||||
|
if (ObjectUtils.isEmpty(page.getPageSize())) { |
||||
|
return Result.error("页大小为空!"); |
||||
|
} else { |
||||
|
return Result.success(rechargeService.selectAll(page.getPageNum(), page.getPageSize(),page.getRechargeUser())); |
||||
|
} |
||||
|
} catch (Exception e) { |
||||
|
return Result.error("接口调用失败"); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
//消耗明细筛选 |
||||
|
@PostMapping("/selectBy") |
||||
|
public Result selcetBy(@RequestBody Page page) { |
||||
|
try { |
||||
|
if (ObjectUtils.isEmpty(page.getPageNum())) { |
||||
|
return Result.error("页码数为空!"); |
||||
|
} |
||||
|
if (ObjectUtils.isEmpty(page.getPageSize())) { |
||||
|
return Result.error("页大小为空!"); |
||||
|
} else { |
||||
|
return Result.success(rechargeService.selectBy(page.getPageNum(), page.getPageSize(), page.getRechargeUser())); |
||||
|
} |
||||
|
} catch (Exception e) { |
||||
|
return Result.error("接口调用失败"); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
//消耗金币统计 |
||||
|
@PostMapping("/statsGold") |
||||
|
public Result statsGold(@RequestBody RechargeUser rechargeUser) { |
||||
|
try { |
||||
|
Gold gold = rechargeService.statsGold(rechargeUser); |
||||
|
return Result.success(gold); |
||||
|
} catch (Exception e) { |
||||
|
return Result.error("接口调用失败"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//充值金币增加 |
||||
|
@PostMapping("/add") |
||||
|
public Result add(@RequestBody RechargeUser rechargeUser) { |
||||
|
try { |
||||
|
return rechargeService.add(rechargeUser); |
||||
|
} catch (Exception e) { |
||||
|
return Result.error("接口调用失败"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,51 @@ |
|||||
|
package com.example.demo.domain.vo; |
||||
|
|
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName Recharge |
||||
|
* @description: |
||||
|
* @author: Double |
||||
|
* @create: 2025−06-29 13:18 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
@Data |
||||
|
@NoArgsConstructor |
||||
|
@AllArgsConstructor |
||||
|
public class RechargeUser { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
private String name; // 客户姓名 |
||||
|
private Integer jwcode; // 精网号 |
||||
|
private String market; // 所属地区 |
||||
|
private String activity; // 活动名称 |
||||
|
private Integer rateId; // 汇率ID |
||||
|
private String rateName; // 汇率名称 |
||||
|
private Integer money; // 金额[分] |
||||
|
private Integer permanentGold; // 永久金币 |
||||
|
private Integer freeGold; // 免费金币 |
||||
|
private String payModel; // 支付方式 |
||||
|
private String payPlatform; // 支付平台 |
||||
|
private String voucher; // 支付凭证 |
||||
|
private String remark; // 备注 |
||||
|
private Integer adminId; //提交人Id |
||||
|
private String adminName; //提交人姓名 |
||||
|
|
||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
||||
|
private Date payTime; // 创建时间 |
||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
||||
|
private Date startTime; // 开始时间 |
||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
||||
|
private Date endTime; // 结束时间 |
||||
|
|
||||
|
private String sortField; //排序字段 |
||||
|
private String sortOrder; //排序顺序 |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
package com.example.demo.mapper; |
||||
|
|
||||
|
|
||||
|
import com.example.demo.domain.entity.UserGoldRecord; |
||||
|
import com.example.demo.domain.vo.RechargeUser; |
||||
|
import com.example.demo.domain.vo.RefundUser; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName RechargeMapper |
||||
|
* @description: |
||||
|
* @author: Double |
||||
|
* @create: 2025−06-29 13:41 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
@Mapper |
||||
|
public interface RechargeMapper { |
||||
|
List<RechargeUser> selectAll(RechargeUser rechargeUser); |
||||
|
|
||||
|
List<RechargeUser> selectBy(RechargeUser rechargeUser); |
||||
|
|
||||
|
void add(UserGoldRecord userGoldRecord); |
||||
|
} |
@ -0,0 +1,26 @@ |
|||||
|
package com.example.demo.service; |
||||
|
|
||||
|
import com.example.demo.domain.vo.ConsumeUser; |
||||
|
import com.example.demo.domain.vo.Gold; |
||||
|
import com.example.demo.domain.vo.RechargeUser; |
||||
|
import com.example.demo.domain.vo.Result; |
||||
|
import com.github.pagehelper.PageInfo; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName RechargeService |
||||
|
* @description: |
||||
|
* @author: Double |
||||
|
* @create: 2025−06-29 13:39 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
public interface RechargeService { |
||||
|
PageInfo<RechargeUser> selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser); |
||||
|
|
||||
|
Gold statsGold(RechargeUser rechargeUser); |
||||
|
|
||||
|
PageInfo<RechargeUser> selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser); |
||||
|
|
||||
|
Result add(RechargeUser rechargeUser); |
||||
|
} |
@ -0,0 +1,131 @@ |
|||||
|
package com.example.demo.serviceImpl; |
||||
|
|
||||
|
import com.example.demo.domain.entity.User; |
||||
|
import com.example.demo.domain.entity.UserGoldRecord; |
||||
|
import com.example.demo.domain.vo.*; |
||||
|
import com.example.demo.mapper.ConsumeMapper; |
||||
|
import com.example.demo.mapper.RechargeMapper; |
||||
|
import com.example.demo.mapper.UserMapper; |
||||
|
import com.example.demo.service.RechargeService; |
||||
|
import com.github.pagehelper.PageHelper; |
||||
|
import com.github.pagehelper.PageInfo; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.time.format.DateTimeFormatter; |
||||
|
import java.util.Date; |
||||
|
import java.util.List; |
||||
|
import java.util.concurrent.atomic.AtomicInteger; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName RechrageServceImpl |
||||
|
* @description: |
||||
|
* @author: Double |
||||
|
* @create: 2025−06-29 13:40 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
@Service |
||||
|
public class RechargeServiceImpl implements RechargeService { |
||||
|
|
||||
|
@Autowired |
||||
|
private RechargeMapper rechargeMapper; |
||||
|
|
||||
|
@Autowired |
||||
|
private UserMapper userMapper; |
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
public PageInfo<RechargeUser> selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) { |
||||
|
PageHelper.startPage(pageNum, pageSize); |
||||
|
List<RechargeUser> rechargeUsers = rechargeMapper.selectAll(rechargeUser); |
||||
|
return new PageInfo<>(rechargeUsers); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public PageInfo<RechargeUser> selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) { |
||||
|
PageHelper.startPage(pageNum, pageSize); |
||||
|
List<RechargeUser> rechargeUsers = rechargeMapper.selectBy(rechargeUser); |
||||
|
return new PageInfo<>(rechargeUsers); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Gold statsGold(RechargeUser rechargeUser) { |
||||
|
Gold gold = new Gold(); |
||||
|
List<RechargeUser> rechargeUsers = rechargeMapper.selectBy(rechargeUser); |
||||
|
|
||||
|
// 初始化累加器 |
||||
|
int permanentGoldSum = 0; |
||||
|
int freeGoldSum = 0; |
||||
|
|
||||
|
// 遍历充值记录并累加金币 |
||||
|
for (RechargeUser user : rechargeUsers) { |
||||
|
// 累加永久金币 |
||||
|
if (user.getPermanentGold() != null) { |
||||
|
permanentGoldSum += user.getPermanentGold(); |
||||
|
} |
||||
|
// 累加免费金币 |
||||
|
if (user.getFreeGold() != null) { |
||||
|
freeGoldSum += user.getFreeGold(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 将累加结果设置到Gold对象 |
||||
|
gold.setPermanentGolds(permanentGoldSum); |
||||
|
gold.setFreeGolds(freeGoldSum); |
||||
|
|
||||
|
return gold; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
public Result add(RechargeUser rechargeUser) { |
||||
|
UserGoldRecord userGoldRecord = new UserGoldRecord(); |
||||
|
|
||||
|
// 获取当前时间戳部分 |
||||
|
String timestampPart = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); |
||||
|
|
||||
|
// 获取自增计数器部分(三位数,不足补零) |
||||
|
AtomicInteger atomicInteger = new AtomicInteger(0); |
||||
|
|
||||
|
int count = atomicInteger.getAndUpdate(c -> (c >= 999) ? 0 : c + 1); |
||||
|
String counterPart = String.format("%03d", count); |
||||
|
|
||||
|
|
||||
|
//订单号生成 |
||||
|
userGoldRecord.setOrderCode("CZ" + timestampPart + counterPart); |
||||
|
userGoldRecord.setJwcode(rechargeUser.getJwcode()); |
||||
|
userGoldRecord.setActivity(rechargeUser.getActivity()); |
||||
|
userGoldRecord.setPermanentGold(rechargeUser.getPermanentGold()); |
||||
|
// 获取当前月份(1-12) |
||||
|
int currentMonth = LocalDate.now().getMonthValue(); |
||||
|
// 根据当前月份设置对应字段 |
||||
|
if (currentMonth >= 1 && currentMonth <= 6) { |
||||
|
// 1-6月:设置6月额度,12月保持默认值 |
||||
|
userGoldRecord.setFreeJune(0); |
||||
|
userGoldRecord.setFreeDecember(rechargeUser.getFreeGold()); |
||||
|
} else { |
||||
|
// 7-12月:设置12月额度,6月保持默认值 |
||||
|
userGoldRecord.setFreeJune(rechargeUser.getFreeGold()); |
||||
|
userGoldRecord.setFreeDecember(0); |
||||
|
} |
||||
|
userGoldRecord.setSumGold(rechargeUser.getFreeGold()+rechargeUser.getPermanentGold()); |
||||
|
userGoldRecord.setRateId(rechargeUser.getRateId()); |
||||
|
userGoldRecord.setMoney(rechargeUser.getMoney()); |
||||
|
userGoldRecord.setVoucher(rechargeUser.getVoucher()); |
||||
|
userGoldRecord.setPayPlatform("金币系统"); |
||||
|
userGoldRecord.setPayModel(rechargeUser.getPayModel()); |
||||
|
userGoldRecord.setPayTime(rechargeUser.getPayTime()); |
||||
|
userGoldRecord.setRemark(rechargeUser.getRemark()); |
||||
|
userGoldRecord.setAdminId(rechargeUser.getAdminId()); |
||||
|
userGoldRecord.setType((byte) 0); |
||||
|
userGoldRecord.setAuditStatus(0); |
||||
|
userGoldRecord.setCreateTime(new Date()); |
||||
|
|
||||
|
rechargeMapper.add(userGoldRecord); |
||||
|
return Result.success(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,183 @@ |
|||||
|
<?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.example.demo.mapper.RechargeMapper"> |
||||
|
|
||||
|
<!-- 查询所有充值记录 --> |
||||
|
<select id="selectAll" resultType="com.example.demo.domain.vo.RechargeUser"> |
||||
|
SELECT |
||||
|
u.name AS name, |
||||
|
u.jwcode AS jwcode, |
||||
|
u.market AS market, |
||||
|
ugr.activity AS activity, |
||||
|
ugr.rate_id AS rateId, |
||||
|
r.rate_name AS rateName, |
||||
|
ugr.money AS money, |
||||
|
ugr.permanent_gold AS permanentGold, |
||||
|
(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, |
||||
|
ugr.pay_model AS payModel, |
||||
|
ugr.pay_platform AS payPlatform, |
||||
|
ugr.remark AS remark, |
||||
|
ugr.admin_id AS adminId, |
||||
|
a.admin_name AS adminName, |
||||
|
ugr.pay_time AS payTime |
||||
|
FROM user u |
||||
|
JOIN user_gold_record ugr ON u.jwcode = ugr.jwcode |
||||
|
JOIN admin a ON ugr.admin_id = a.id |
||||
|
JOIN rate r ON ugr.rate_id = r.id |
||||
|
WHERE ugr.type = 0 |
||||
|
|
||||
|
<trim prefix="ORDER BY" suffixOverrides=","> |
||||
|
<choose> |
||||
|
<!-- 当指定排序字段时使用指定字段排序 --> |
||||
|
<when test="sortField != null and sortField != ''"> |
||||
|
<choose> |
||||
|
<!-- 对金币数量的排序处理 --> |
||||
|
<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 == 'payTime'">ugr.pay_time</when> |
||||
|
<!-- 其他字段不支持排序,使用默认排序 --> |
||||
|
<otherwise>ugr.pay_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.pay_time DESC |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
</trim> |
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询筛选后充值记录 --> |
||||
|
<select id="selectBy" resultType="com.example.demo.domain.vo.RechargeUser"> |
||||
|
SELECT |
||||
|
u.name AS name, |
||||
|
u.jwcode AS jwcode, |
||||
|
u.market AS market, |
||||
|
ugr.activity AS activity, |
||||
|
ugr.rate_id AS rateId, |
||||
|
r.rate_name AS rateName, |
||||
|
ugr.money AS money, |
||||
|
ugr.permanent_gold AS permanentGold, |
||||
|
(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, |
||||
|
ugr.pay_model AS payModel, |
||||
|
ugr.pay_platform AS payPlatform, |
||||
|
ugr.remark AS remark, |
||||
|
ugr.admin_id AS adminId, |
||||
|
a.admin_name AS adminName, |
||||
|
ugr.pay_time AS payTime |
||||
|
FROM user u |
||||
|
JOIN user_gold_record ugr ON u.jwcode = ugr.jwcode |
||||
|
JOIN admin a ON ugr.admin_id = a.id |
||||
|
JOIN rate r ON ugr.rate_id = r.id |
||||
|
<where> |
||||
|
ugr.type = 0 |
||||
|
<if test="jwcode != null and jwcode != ''"> |
||||
|
AND ugr.jwcode = #{jwcode} |
||||
|
</if> |
||||
|
<if test="activity != null and activity != ''"> |
||||
|
AND ugr.activity = #{activity} |
||||
|
</if> |
||||
|
<if test="market != null and market != ''"> |
||||
|
AND u.market = #{market} |
||||
|
</if> |
||||
|
<if test="payPlatform != null and payPlatform != ''"> |
||||
|
AND ugr.pay_platform = #{payPlatform} |
||||
|
</if> |
||||
|
<if test="startTime != null and endTime != null"> |
||||
|
AND ugr.pay_time BETWEEN #{startTime} AND #{endTime} |
||||
|
</if> |
||||
|
</where> |
||||
|
<trim prefix="ORDER BY" suffixOverrides=","> |
||||
|
<choose> |
||||
|
<!-- 当指定排序字段时使用指定字段排序 --> |
||||
|
<when test="sortField != null and sortField != ''"> |
||||
|
<choose> |
||||
|
<!-- 对金币数量的排序处理 --> |
||||
|
<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 == 'payTime'">ugr.pay_time</when> |
||||
|
<!-- 其他字段不支持排序,使用默认排序 --> |
||||
|
<otherwise>ugr.pay_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.pay_time DESC |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
</trim> |
||||
|
</select> |
||||
|
|
||||
|
<insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" keyProperty="id"> |
||||
|
INSERT INTO user_gold_record |
||||
|
<trim prefix="(" suffix=")" suffixOverrides=","> |
||||
|
order_code, |
||||
|
jwcode, |
||||
|
activity, |
||||
|
sum_gold, |
||||
|
permanent_gold, |
||||
|
free_june, |
||||
|
free_december, |
||||
|
rate_id, |
||||
|
money, |
||||
|
voucher, |
||||
|
pay_platform, |
||||
|
pay_model, |
||||
|
pay_time, |
||||
|
remark, |
||||
|
admin_id, |
||||
|
type, |
||||
|
audit_status, |
||||
|
create_time |
||||
|
</trim> |
||||
|
VALUES |
||||
|
<trim prefix="(" suffix=")" suffixOverrides=","> |
||||
|
#{orderCode}, |
||||
|
#{jwcode}, |
||||
|
#{activity}, |
||||
|
#{sumGold}, |
||||
|
#{permanentGold}, |
||||
|
#{freeJune}, |
||||
|
#{freeDecember}, |
||||
|
#{rateId}, |
||||
|
#{money}, |
||||
|
#{voucher}, |
||||
|
#{payPlatform}, |
||||
|
#{payModel}, |
||||
|
#{payTime}, |
||||
|
#{remark}, |
||||
|
#{adminId}, |
||||
|
#{type}, |
||||
|
#{auditStatus}, |
||||
|
#{createTime} |
||||
|
</trim> |
||||
|
</insert> |
||||
|
</mapper> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue