11 changed files with 356 additions and 28 deletions
-
51src/main/java/com/example/demo/controller/ConsumeController.java
-
62src/main/java/com/example/demo/controller/RefundController.java
-
8src/main/java/com/example/demo/controller/UserController.java
-
2src/main/java/com/example/demo/domain/vo/ConsumeUser.java
-
1src/main/java/com/example/demo/domain/vo/Page.java
-
2src/main/java/com/example/demo/domain/vo/RefundUser.java
-
27src/main/java/com/example/demo/mapper/RefundMapper.java
-
28src/main/java/com/example/demo/service/RefundService.java
-
88src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
-
9src/main/resources/mapper/ConsumeMapper.xml
-
106src/main/resources/mapper/RefundMapper.xml
@ -0,0 +1,27 @@ |
|||||
|
package com.example.demo.mapper; |
||||
|
|
||||
|
import com.example.demo.domain.entity.UserGoldRecord; |
||||
|
import com.example.demo.domain.vo.ConsumeUser; |
||||
|
import com.example.demo.domain.vo.RefundUser; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName RefundMapper |
||||
|
* @description: |
||||
|
* @author: Double |
||||
|
* @create: 2025−06-27 11:31 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
@Mapper |
||||
|
public interface RefundMapper { |
||||
|
|
||||
|
List<RefundUser> selectAll(); |
||||
|
|
||||
|
List<RefundUser> selectBy(RefundUser refundUser); |
||||
|
|
||||
|
void add(UserGoldRecord userGoldRecord); |
||||
|
} |
@ -0,0 +1,28 @@ |
|||||
|
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.RefundUser; |
||||
|
import com.example.demo.domain.vo.Result; |
||||
|
import com.github.pagehelper.PageInfo; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName RefundService |
||||
|
* @description: |
||||
|
* @author: Double |
||||
|
* @create: 2025−06-27 11:50 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
public interface RefundService { |
||||
|
|
||||
|
PageInfo<RefundUser> selectAll(Integer pageNum, Integer pageSize); |
||||
|
|
||||
|
Gold statsGold(); |
||||
|
|
||||
|
PageInfo<RefundUser> selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser); |
||||
|
|
||||
|
Result add(RefundUser refundUser); |
||||
|
} |
@ -0,0 +1,88 @@ |
|||||
|
package com.example.demo.serviceImpl; |
||||
|
|
||||
|
import com.example.demo.domain.vo.ConsumeUser; |
||||
|
import com.example.demo.domain.vo.Gold; |
||||
|
import com.example.demo.domain.vo.RefundUser; |
||||
|
import com.example.demo.domain.vo.Result; |
||||
|
import com.example.demo.mapper.ConsumeMapper; |
||||
|
import com.example.demo.mapper.RefundMapper; |
||||
|
import com.example.demo.mapper.UserMapper; |
||||
|
import com.example.demo.service.RefundService; |
||||
|
import com.github.pagehelper.PageHelper; |
||||
|
import com.github.pagehelper.PageInfo; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName RefundServiceImpl |
||||
|
* @description: |
||||
|
* @author: Double |
||||
|
* @create: 2025−06-27 11:50 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
@Service |
||||
|
public class RefundServiceImpl implements RefundService { |
||||
|
|
||||
|
@Autowired |
||||
|
private RefundMapper refundMapper; |
||||
|
|
||||
|
@Autowired |
||||
|
private UserMapper userMapper; |
||||
|
|
||||
|
@Override |
||||
|
public PageInfo<RefundUser> selectAll(Integer pageNum, Integer pageSize) { |
||||
|
PageHelper.startPage(pageNum, pageSize); |
||||
|
List<RefundUser> refundUsers = refundMapper.selectAll(); |
||||
|
return new PageInfo<>(refundUsers); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Gold statsGold() { |
||||
|
Gold gold = new Gold(); |
||||
|
List<RefundUser> refundUsers = refundMapper.selectAll(); |
||||
|
|
||||
|
// 初始化累加器 |
||||
|
int permanentGoldSum = 0; |
||||
|
int freeGoldSum = 0; |
||||
|
int taskGoldSum = 0; |
||||
|
|
||||
|
// 遍历推开记录并累加金币 |
||||
|
for (RefundUser refundUser : refundUsers) { |
||||
|
// 累加永久金币 |
||||
|
if (refundUser.getPermanentGold() != null) { |
||||
|
permanentGoldSum += refundUser.getPermanentGold(); |
||||
|
} |
||||
|
// 累加免费金币 |
||||
|
if (refundUser.getFreeGold() != null) { |
||||
|
freeGoldSum += refundUser.getFreeGold(); |
||||
|
} |
||||
|
// 累加任务金币 |
||||
|
if (refundUser.getTaskGold() != null) { |
||||
|
taskGoldSum += refundUser.getTaskGold(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 将累加结果设置到Gold对象 |
||||
|
gold.setPermanentGolds(permanentGoldSum); |
||||
|
gold.setFreeGolds(freeGoldSum); |
||||
|
gold.setTaskGolds(taskGoldSum); |
||||
|
|
||||
|
return gold; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public PageInfo<RefundUser> selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser) { |
||||
|
PageHelper.startPage(pageNum, pageSize); |
||||
|
List<RefundUser> refundUsers = refundMapper.selectBy(refundUser); |
||||
|
return new PageInfo<>(refundUsers); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Result add(RefundUser refundUser) { |
||||
|
return null; |
||||
|
} |
||||
|
} |
@ -0,0 +1,106 @@ |
|||||
|
<?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.RefundMapper"> |
||||
|
|
||||
|
<!-- 查询所有退款记录 --> |
||||
|
<select id="selectAll" resultType="com.example.demo.domain.vo.RefundUser"> |
||||
|
SELECT u.name AS name, |
||||
|
u.jwcode AS jwcode, |
||||
|
u.market AS market, |
||||
|
ugr.goods_name AS goodsName, |
||||
|
ugr.refund_model AS refundModel, |
||||
|
ugr.refund_type AS refundType, |
||||
|
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 |
||||
|
WHERE ugr.type = 2 |
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询筛选后消费记录 --> |
||||
|
<select id="selectBy" resultType="com.example.demo.domain.vo.RefundUser"> |
||||
|
SELECT u.name AS name, |
||||
|
u.jwcode AS jwcode, |
||||
|
u.market AS market, |
||||
|
ugr.goods_name AS goodsName, |
||||
|
ugr.refund_model AS refundModel, |
||||
|
ugr.refund_type AS refundType, |
||||
|
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 |
||||
|
<where> |
||||
|
ugr.type = 2 |
||||
|
<if test="jwcode != null and jwcode != ''"> |
||||
|
AND ugr.jwcode = #{jwcode} |
||||
|
</if> |
||||
|
<if test="goodsName != null and goodsName != ''"> |
||||
|
AND ugr.goods_name = #{goodsName} |
||||
|
</if> |
||||
|
<if test="market != null and market != ''"> |
||||
|
AND u.market = #{market} |
||||
|
</if> |
||||
|
<if test="refundModel != null and refundModel != ''"> |
||||
|
AND ugr.refund_model = #{refundModel} |
||||
|
</if> |
||||
|
<if test="startTime != null and endTime != null"> |
||||
|
AND ugr.create_time BETWEEN #{startTime} AND #{endTime} |
||||
|
</if> |
||||
|
</where> |
||||
|
</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, |
||||
|
sum_gold, |
||||
|
permanent_gold, |
||||
|
free_june, |
||||
|
free_december, |
||||
|
task_gold, |
||||
|
goods_name, |
||||
|
remark, |
||||
|
type, |
||||
|
pay_platform, |
||||
|
is_refund, |
||||
|
admin_id, |
||||
|
create_time, |
||||
|
pay_time |
||||
|
</trim> |
||||
|
VALUES |
||||
|
<trim prefix="(" suffix=")" suffixOverrides=","> |
||||
|
#{orderCode}, |
||||
|
#{jwcode}, |
||||
|
#{sumGold}, |
||||
|
#{permanentGold}, |
||||
|
#{freeJune}, |
||||
|
#{freeDecember}, |
||||
|
#{taskGold}, |
||||
|
#{goodsName}, |
||||
|
#{remark}, |
||||
|
#{type}, |
||||
|
#{payPlatform}, |
||||
|
#{isRefund}, |
||||
|
#{adminId}, |
||||
|
#{createTime}, |
||||
|
#{payTime} |
||||
|
</trim> |
||||
|
</insert> |
||||
|
</mapper> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue