Browse Source

8-22 更新用户消费次数+退款审核修改消费订单状态

lijianlin/feature-20250728171217-三期金豆消费相关
lijianlin 2 months ago
parent
commit
fe0e61b0f7
  1. 8
      src/main/java/com/example/demo/controller/coin/GoldDetailController.java
  2. 3
      src/main/java/com/example/demo/mapper/coin/GoldDetailMapper.java
  3. 2
      src/main/java/com/example/demo/service/coin/GoldDetailService.java
  4. 2
      src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java
  5. 5
      src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java
  6. 15
      src/main/resources/mapper/GoldDetailMapper.xml

8
src/main/java/com/example/demo/controller/coin/GoldDetailController.java

@ -9,6 +9,7 @@ import com.example.demo.domain.DTO.GoldUserDTO;
import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.coin.GoldDetail; import com.example.demo.domain.vo.coin.GoldDetail;
import com.example.demo.domain.vo.coin.GoldUser;
import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.coin.GoldDetailService; import com.example.demo.service.coin.GoldDetailService;
@ -284,4 +285,11 @@ public class GoldDetailController {
return Result.success(goldDetailService.getGold(page.getPageNum(), page.getPageSize(), page.getUser())); return Result.success(goldDetailService.getGold(page.getPageNum(), page.getPageSize(), page.getUser()));
} }
/*
更新用户消费次数
*/
@PostMapping("/updateConsumeNum")
public Result updateConsumeNum() {
return goldDetailService.updateConsumeNum();
}
} }

3
src/main/java/com/example/demo/mapper/coin/GoldDetailMapper.java

@ -3,6 +3,7 @@ package com.example.demo.mapper.coin;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.coin.Gold; import com.example.demo.domain.vo.coin.Gold;
import com.example.demo.domain.vo.coin.GoldDetail; import com.example.demo.domain.vo.coin.GoldDetail;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.domain.vo.coin.Total; import com.example.demo.domain.vo.coin.Total;
import lombok.Data; import lombok.Data;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -29,6 +30,8 @@ public interface GoldDetailMapper {
Total GoldTotal(User user); Total GoldTotal(User user);
//获取金币明细合计数 //获取金币明细合计数
Gold sumGold(@Param("goldDetail") GoldDetail goldDetail); Gold sumGold(@Param("goldDetail") GoldDetail goldDetail);
//更新用户消费次数
Result updateConsumeNum();
@Data @Data
public static class ExportRecordIdHolder{ public static class ExportRecordIdHolder{

2
src/main/java/com/example/demo/service/coin/GoldDetailService.java

@ -27,4 +27,6 @@ public interface GoldDetailService {
Result addExportRecord(GoldDetailDTO dto); Result addExportRecord(GoldDetailDTO dto);
//异步导出金币余额 //异步导出金币余额
Result addExportRecordGold(GoldUserDTO dto); Result addExportRecordGold(GoldUserDTO dto);
//更新用户消费次数
Result updateConsumeNum();
} }

2
src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java

@ -67,7 +67,7 @@ public class AuditServiceImpl implements AuditService {
if (order.getType()==2) { //退款 if (order.getType()==2) { //退款
//2.获取对应的消费订单退款订单号去掉开头"TK"即为对应消费订单 //2.获取对应的消费订单退款订单号去掉开头"TK"即为对应消费订单
String consumeOrderCode = order.getOrderCode().replaceFirst("TK", "");
String consumeOrderCode = order.getOrderCode().replaceFirst("TK_", "");
//3.更新消费订单是否已退款状态为0 //3.更新消费订单是否已退款状态为0
UserGoldRecord consumeOrder = auditMapper.selectAllOrderByOrderCode(consumeOrderCode); UserGoldRecord consumeOrder = auditMapper.selectAllOrderByOrderCode(consumeOrderCode);
if (consumeOrderCode != null&&consumeOrder.getType()==1){ //确保是消费订单 if (consumeOrderCode != null&&consumeOrder.getType()==1){ //确保是消费订单

5
src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java

@ -194,6 +194,11 @@ public class GoldDetailServiceImpl implements GoldDetailService {
} }
return Result.success(); return Result.success();
} }
//更新用户消费次数
@Override
public Result updateConsumeNum() {
return goldDetailMapper.updateConsumeNum();
}
} }

15
src/main/resources/mapper/GoldDetailMapper.xml

@ -5,6 +5,21 @@
insert into export (account,type,state,url,file_name,data_num) insert into export (account,type,state,url,file_name,data_num)
values(#{account},#{type},#{state},#{url},#{fileName},#{dataNum}) values(#{account},#{type},#{state},#{url},#{fileName},#{dataNum})
</insert> </insert>
<update id="updateConsumeNum">
UPDATE user AS u
JOIN (
SELECT
jwcode,
SUM(CASE WHEN type = 1 THEN 1 ELSE 0 END) AS consume_cnt
FROM user_gold_record
WHERE type IN (0,1)
AND audit_status IN (1,3)
AND flag = 1
GROUP BY jwcode
) AS t ON u.jwcode = t.jwcode
SET
u.consume_num = t.consume_cnt;
</update>
<select id="getGoldDetail" resultType="com.example.demo.domain.vo.coin.GoldDetail"> <select id="getGoldDetail" resultType="com.example.demo.domain.vo.coin.GoldDetail">
SELECT SELECT

Loading…
Cancel
Save