Browse Source

Merge remote-tracking branch 'origin/milestone-20260113-现金管理0109' into milestone-20260113-现金管理0109

# Conflicts:
#	src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java
milestone-20260113-现金管理0109
wangguorui 2 days ago
parent
commit
8fc3c1eaca
  1. 2
      src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java
  2. 45
      src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java
  3. 33
      src/main/resources/mapper/ConsumeMapper.xml

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

@ -25,6 +25,8 @@ public interface ConsumeMapper {
//查找经过筛选后的订单 //查找经过筛选后的订单
List<ConsumeUser> selectBy(ConsumeUser consumeUser); List<ConsumeUser> selectBy(ConsumeUser consumeUser);
//查询退款的消费订单
List<ConsumeUser> selectRefund(List<String> refundOrderCodes);
//添加消费订单 //添加消费订单

45
src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java

@ -27,10 +27,9 @@ import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.UUID;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* @program: gold-java * @program: gold-java
@ -90,8 +89,42 @@ public class ConsumeServiceImpl implements ConsumeService {
} }
consumeUser.setMarkets(markets); consumeUser.setMarkets(markets);
PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper
List<ConsumeUser> consumeUsers = consumeMapper.selectBy(consumeUser);
return new PageInfo<>(consumeUsers);
List<ConsumeUser> list = consumeMapper.selectBy(consumeUser);
// 构造退款订单号
List<String> refundOrderCodes = list.stream()
.map(ConsumeUser::getOrderCode)
.filter(Objects::nonNull)
.map(code -> "TK_" + code)
.collect(Collectors.toList());
// 查询退款订单
List<ConsumeUser> refundList = consumeMapper.selectRefund(refundOrderCodes);
// 退款订单转 Maporder_code refund
Map<String, ConsumeUser> refundMap = refundList.stream()
.collect(Collectors.toMap(
ConsumeUser::getOrderCode,
Function.identity(),
(a, b) -> a
));
// 组装退款信息
for (ConsumeUser vo : list) {
ConsumeUser refund = refundMap.get("TK_" + vo.getOrderCode());
if (refund != null) {
vo.setRefundSumGold(refund.getSumGold());
vo.setRefundPermanentGold(refund.getPermanentGold());
BigDecimal refundFree =
(refund.getFreeGold() == null ? BigDecimal.ZERO : refund.getFreeGold());
vo.setRefundFreeGold(refundFree);
vo.setRefundTaskGold(refund.getTaskGold());
vo.setRefundModel(refund.getRefundModel());
}
}
return new PageInfo<>(list);
} }
//新增消耗 //新增消耗

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

@ -80,28 +80,20 @@
m.name as market, m.name as market,
ugr.goods_name AS goodsName, ugr.goods_name AS goodsName,
ugr.pay_platform AS payPlatform, ugr.pay_platform AS payPlatform,
ugr.sum_gold/100 AS sumGold,
ugr.permanent_gold/100 AS permanentGold,
COALESCE(ugr.sum_gold, 0)/100 AS sumGold,
COALESCE(ugr.permanent_gold, 0)/100 AS permanentGold,
(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold, (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold,
ugr.task_gold/100 AS taskGold,
COALESCE(ugr.task_gold, 0)/100 AS taskGold,
ugr.remark AS remark, ugr.remark AS remark,
a.admin_name AS adminName, a.admin_name AS adminName,
ugr.create_time AS createTime, ugr.create_time AS createTime,
ugr.is_refund AS isRefund,
-- 关联退款订单信息
ugr1.sum_gold/100 AS refundSumGold,
ugr1.permanent_gold/100 AS refundPermanentGold,
(COALESCE(ugr1.free_june, 0) + COALESCE(ugr1.free_december, 0))/100 AS refundFreeGold,
ugr1.task_gold/100 AS refundTaskGold,
ugr1.refund_model AS refundModel
ugr.is_refund AS isRefund
FROM user_gold_record ugr FROM user_gold_record ugr
left JOIN left JOIN
user u ON u.jwcode = ugr.jwcode user u ON u.jwcode = ugr.jwcode
left JOIN left JOIN
admin a ON ugr.admin_id = a.id admin a ON ugr.admin_id = a.id
left join market m ON u.market = m.id left join market m ON u.market = m.id
-- 关联退款订单
left JOIN user_gold_record ugr1 ON ugr1.order_code = CONCAT('TK_', ugr.order_code )
<where> <where>
ugr.type = 1 AND ugr.flag = 1 ugr.type = 1 AND ugr.flag = 1
@ -170,7 +162,23 @@
</choose> </choose>
</trim> </trim>
</select> </select>
<!--查询退款的消费订单-->
<select id="selectRefund" resultType="com.example.demo.domain.vo.coin.ConsumeUser">
SELECT
order_code,
sum_gold,
permanent_gold,
free_june,
free_december,
task_gold,
refund_model
FROM user_gold_record
WHERE order_code IN
<foreach collection="refundOrderCodes" item="code" open="(" separator="," close=")">
#{code}
</foreach>
</select>
<!-- 查询筛选后消费记录 --> <!-- 查询筛选后消费记录 -->
<select id="sumGold" resultType="com.example.demo.domain.vo.coin.Gold"> <select id="sumGold" resultType="com.example.demo.domain.vo.coin.Gold">
SELECT SELECT
@ -223,6 +231,7 @@
AND ugr.flag = 1 AND ugr.flag = 1
</select> </select>
<insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" <insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true"
keyProperty="id"> keyProperty="id">
INSERT INTO user_gold_record INSERT INTO user_gold_record

Loading…
Cancel
Save