Browse Source

新增退款及附属接口

lijianlin/feature-20250623120104-工作台与审核
sunjiabei 2 days ago
parent
commit
77e0a6e31f
  1. 2
      src/main/java/com/example/demo/controller/RechargeController.java
  2. 30
      src/main/java/com/example/demo/controller/RefundController.java
  3. 1
      src/main/java/com/example/demo/domain/vo/RefundUser.java
  4. 5
      src/main/java/com/example/demo/mapper/RefundMapper.java
  5. 7
      src/main/java/com/example/demo/service/RefundService.java
  6. 76
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  7. 40
      src/main/resources/mapper/RefundMapper.xml

2
src/main/java/com/example/demo/controller/RechargeController.java

@ -78,7 +78,7 @@ public class RechargeController {
}
}
//消耗金币增加
//充值金币增加
@PostMapping("/add")
public Result add(@RequestBody RechargeUser rechargeUser) {
try {

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

@ -1,9 +1,6 @@
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.domain.vo.*;
import com.example.demo.service.ConsumeService;
import com.example.demo.service.RefundService;
import lombok.RequiredArgsConstructor;
@ -12,6 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @program: gold-java
* @ClassName RefundMapper.xml
@ -76,4 +75,27 @@ public class RefundController {
}
}
@PostMapping("/refundType")
public Result getRefundType()
{
List<String> list = refundService.getRefundType();
return Result.success(list);
}
@PostMapping("/selectGoods")
public Result getSelectGoods(@RequestBody RefundUser refundUser)
{
List<String> list = refundService.selectGoods(refundUser.getJwcode());
return Result.success(list);
}
//消耗金币增加
@PostMapping("/add")
public Result add(@RequestBody RefundUser refundUser) {
try {
return refundService.add(refundUser);
} catch (Exception e) {
return Result.error("接口调用失败");
}
}
}

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

@ -23,6 +23,7 @@ public class RefundUser {
private static final long serialVersionUID = 1L;
private String orderCode; // 订单号
private String name; // 客户姓名
private Integer jwcode; // 精网号
private String market; // 所属地区

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

@ -24,4 +24,9 @@ public interface RefundMapper {
List<RefundUser> selectBy(RefundUser refundUser);
void add(UserGoldRecord userGoldRecord);
List<String> getRefundType();
List<UserGoldRecord> selectGoods(Integer jwcode);
}

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

@ -7,6 +7,8 @@ import com.example.demo.domain.vo.RefundUser;
import com.example.demo.domain.vo.Result;
import com.github.pagehelper.PageInfo;
import java.util.List;
/**
* @program: gold-java
* @ClassName RefundService
@ -25,4 +27,9 @@ public interface RefundService {
PageInfo<RefundUser> selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser);
Result add(RefundUser refundUser);
//获取退款类型
List<String> getRefundType();
List<String> selectGoods(Integer jwcode);
}

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

@ -1,5 +1,6 @@
package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.UserGoldRecord;
import com.example.demo.domain.vo.ConsumeUser;
import com.example.demo.domain.vo.Gold;
import com.example.demo.domain.vo.RefundUser;
@ -13,7 +14,13 @@ 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.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @program: gold-java
@ -83,6 +90,73 @@ public class RefundServiceImpl implements RefundService {
@Override
public Result add(RefundUser refundUser) {
return null;
UserGoldRecord userGoldRecord = new UserGoldRecord();
String goodsNameWithOrder = refundUser.getGoodsName();
//订单号生成
if (goodsNameWithOrder != null && goodsNameWithOrder.contains("_")) {
String[] parts = goodsNameWithOrder.split("_", 2);
if (parts.length >= 2) {
// 提取订单号保留原始前缀
String orderCode = parts[0]; // XF202506281545524400006580
// 提取商品名处理可能包含下划线的情况
String goodsName = parts[1]; // 商品A
// 设置属性添加退款前缀
userGoldRecord.setOrderCode("TK" + orderCode); // TKXF202506281545524400006580
userGoldRecord.setGoodsName(goodsName); // 商品A
}
}
userGoldRecord.setJwcode(refundUser.getJwcode());
userGoldRecord.setRefundType(refundUser.getRefundType());
userGoldRecord.setRefundModel(refundUser.getRefundModel());
userGoldRecord.setPermanentGold(refundUser.getPermanentGold());
// 获取当前月份1-12
int currentMonth = LocalDate.now().getMonthValue();
// 根据当前月份设置对应字段
if (currentMonth >= 1 && currentMonth <= 6) {
// 1-6月设置6月额度12月保持默认值
userGoldRecord.setFreeJune(0);
userGoldRecord.setFreeDecember(refundUser.getFreeGold());
} else {
// 7-12月设置12月额度6月保持默认值
userGoldRecord.setFreeJune(refundUser.getFreeGold());
userGoldRecord.setFreeDecember(0);
}
userGoldRecord.setTaskGold(refundUser.getTaskGold());
userGoldRecord.setSumGold(refundUser.getSumGold());
userGoldRecord.setPayPlatform("金币系统");
userGoldRecord.setRemark(refundUser.getRemark());
userGoldRecord.setAdminId(refundUser.getAdminId());
userGoldRecord.setType((byte) 2);
userGoldRecord.setAuditStatus(0);
userGoldRecord.setCreateTime(new Date());
refundMapper.add(userGoldRecord);
return Result.success();
}
@Override
public List<String> getRefundType() {
List<String> list = refundMapper.getRefundType();
return list;
}
@Override
public List<String> selectGoods(Integer jwcode) {
List<UserGoldRecord> userGoldRecords = refundMapper.selectGoods(jwcode);
List<String> list = new ArrayList<>();
for (UserGoldRecord record : userGoldRecords) {
if (record == null) {
continue;
}
String orderCode = record.getOrderCode() != null ? record.getOrderCode() : "无订单号";
String goodsName = record.getGoodsName() != null ? record.getGoodsName() : "无商品名";
// 拼接格式订单号_商品名例如XF20250629_商品BC
String combined = orderCode + "_" + goodsName;
list.add(combined);
}
return list;
}
}

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

@ -7,6 +7,7 @@
SELECT u.name AS name,
u.jwcode AS jwcode,
u.market AS market,
ugr.order_code AS orderCode,
ugr.goods_name AS goodsName,
ugr.refund_model AS refundModel,
ugr.refund_type AS refundType,
@ -64,6 +65,7 @@
SELECT u.name AS name,
u.jwcode AS jwcode,
u.market AS market,
ugr.order_code AS orderCode,
ugr.goods_name AS goodsName,
ugr.refund_model AS refundModel,
ugr.refund_type AS refundType,
@ -138,37 +140,59 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
order_code,
jwcode,
refund_type,
refund_model,
sum_gold,
permanent_gold,
free_june,
free_december,
task_gold,
goods_name,
pay_platform,
remark,
type,
pay_platform,
is_refund,
admin_id,
create_time,
pay_time
audit_status,
create_time
</trim>
VALUES
<trim prefix="(" suffix=")" suffixOverrides=",">
#{orderCode},
#{jwcode},
#{refundType},
#{refundModel},
#{sumGold},
#{permanentGold},
#{freeJune},
#{freeDecember},
#{taskGold},
#{goodsName},
#{payPlatform},
#{remark},
#{type},
#{payPlatform},
#{isRefund},
#{adminId},
#{createTime},
#{payTime}
#{auditStatus},
#{createTime}
</trim>
</insert>
<select id="getRefundType" resultType="java.lang.String">
select DISTINCT refund_Type from user_gold_record
</select>
<select id="selectGoods" resultType="com.example.demo.domain.entity.UserGoldRecord">
SELECT
ugr.goods_name AS goodsName,
ugr.order_code AS orderCode
FROM user_gold_record ugr
<where>
ugr.type = 1
<if test="jwcode != null and jwcode != ''">
AND ugr.jwcode = #{jwcode}
</if>
</where>
<trim prefix="ORDER BY" suffixOverrides=",">
ugr.create_time DESC
</trim>
</select>
</mapper>
Loading…
Cancel
Save