Browse Source

Merge branch 'milestone-20251125-多语言' into sunjiabei/feature-20251202094523-银行接口同步

sunjiabei/feature-20251202094523-银行接口同步
sunjiabei 1 month ago
parent
commit
8ffb3a20b8
  1. 2
      src/main/java/com/example/demo/domain/entity/CashRecord.java
  2. 5
      src/main/java/com/example/demo/domain/vo/coin/RefundUser.java
  3. 51
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
  4. 12
      src/main/resources/cashMapper/CashCollectionMapper.xml

2
src/main/java/com/example/demo/domain/entity/CashRecord.java

@ -36,7 +36,7 @@ public class CashRecord implements Serializable {
private String bankCode; // 银行流水订单号
private String goodsName; // 商品名称
private Integer goodNum; // 产品数量
private String NumUnit; // 数量单位 //
private String numUnit; // 数量单位 //
private Integer permanentGold; // 永久金币数量
private Integer freeGold; // 免费金币数量
private String payload; //平台

5
src/main/java/com/example/demo/domain/vo/coin/RefundUser.java

@ -39,9 +39,10 @@ public class RefundUser {
private String goodsName; // 商品名称
@ExcelProperty("退款类型")
private String refundType; // 退款类型
@ExcelProperty("退款方式")
@ExcelIgnore
private Byte refundModel; // 退款方式0全部/1部分退款
private String refundModelDesc;
@ExcelProperty("退款方式")
private String refundModelDesc; // 退款方式描述用于多语言翻译
@ExcelProperty("退款金币总数")
private BigDecimal sumGold; // 金币总数
@ExcelProperty("永久金币")

51
src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

@ -32,8 +32,6 @@ import com.example.demo.serviceImpl.cash.CashRefundServiceImpl;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.example.demo.service.coin.AiEmotionService;
import com.github.pagehelper.PageInfo;
@ -57,7 +55,6 @@ import java.util.Date;
import java.util.List;
import java.util.function.Function;
@Service
@Slf4j
public class ExportExcelServiceImpl implements ExportExcelService {
@ -93,8 +90,6 @@ public class ExportExcelServiceImpl implements ExportExcelService {
@Autowired
private ExportMapper exportMapper;
@Transactional
@Override
public Exception handleExcelExportData(String message) throws Exception {
@ -150,6 +145,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
}
});
}
@Transactional
@Override
public Exception consumeExcel(String message) throws Exception {
@ -241,6 +237,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
}
});
}
@Override
public Exception BeanExcel(String message) throws Exception {
return exportExcelGeneric(message, "beanUser", page -> {
@ -256,6 +253,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
}
});
}
@Override
public Exception OnlineExcel(String message) throws Exception {
return exportExcelGeneric(message, "onlineUser", page -> {
@ -306,13 +304,11 @@ public class ExportExcelServiceImpl implements ExportExcelService {
@Override
public List<Export> getExcel(Export export) {
List<Export> list = exportMapper.getExportRecord(export.getAccount(),export.getType());
List<Export> list = exportMapper.getExportRecord(export.getAccount(),export.getType());
System.out.println(list+"-------------------------------");
return list;
return list;
}
/**
* 验证导出记录
*/
@ -400,6 +396,11 @@ public class ExportExcelServiceImpl implements ExportExcelService {
fillGoldDetailTypeDescriptions((List<GoldDetail>) list);
}
// 添加退款方式转换逻辑
if ("refundUser".equals(exportType) && list.get(0) instanceof RefundUser) {
fillRefundUserModelDescriptions((List<RefundUser>) list);
}
excelWriter.write(list, writeSheet);
page.setPageNum(page.getPageNum() + 1);
totalCount += list.size();
@ -412,7 +413,6 @@ public class ExportExcelServiceImpl implements ExportExcelService {
}
}
// 7. 完成Excel写入
if (excelWriter != null) {
excelWriter.finish();
@ -523,9 +523,6 @@ public class ExportExcelServiceImpl implements ExportExcelService {
return null;
}
private Class<?> getExportClass(String exportType) {
switch (exportType) {
case "goldDetail":
@ -556,6 +553,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
throw new IllegalArgumentException("不支持的导出类型: " + exportType);
}
}
/**
* 填充金币明细数据的类型描述
*/
@ -582,4 +580,29 @@ public class ExportExcelServiceImpl implements ExportExcelService {
}
}
}
/**
* 填充退款用户数据的退款方式描述
*/
private void fillRefundUserModelDescriptions(List<RefundUser> refundUsers) {
if (refundUsers != null && !refundUsers.isEmpty()) {
for (RefundUser user : refundUsers) {
if (user.getRefundModel() != null) {
String modelDesc = convertRefundModelToString(user.getRefundModel());
user.setRefundModelDesc(modelDesc);
}
}
}
}
/**
* 将退款模型数字转换为中文描述
*/
private String convertRefundModelToString(Byte refundModel) {
if (refundModel == null) return "";
switch (refundModel) {
case 0: return "全部退款";
case 1: return "部分退款";
default: return "未知退款方式";
}
}
}

12
src/main/resources/cashMapper/CashCollectionMapper.xml

@ -7,14 +7,14 @@
useGeneratedKeys="true" keyProperty="id">
insert into
cash_record_collection(order_type,jwcode,name,market,activity,
order_code,goods_name,good_num,num_unit,permanent_gold,free_gold,
order_code,bank_code,goods_name,good_num,num_unit,permanent_gold,free_gold,
payment_currency,payment_amount,received_market,
pay_type,pay_time,status,submitter_id,submitter_market,
pay_type,pay_time,status,submitter_id,submitter_market,payload,
voucher,remark)
values(#{orderType},#{jwcode},#{name},#{market},#{activity},
#{orderCode},#{goodsName},#{goodNum},#{numUnit},#{permanentGold},#{freeGold},#{paymentCurrency},
#{orderCode},#{bankCode},#{goodsName},#{goodNum},#{numUnit},#{permanentGold},#{freeGold},#{paymentCurrency},
#{paymentAmount},#{receivedMarket},#{payType},#{payTime},
#{status},#{submitterId},#{submitterMarket},#{voucher},#{remark})
#{status},#{submitterId},#{submitterMarket},#{payload},#{voucher},#{remark})
</insert>
<!-- <insert id="syncToCashRecord">
insert into cash_record(order_type,jwcode,name,market,activity,
@ -227,11 +227,11 @@
<!--查找未同步的订单-->
<select id="getUnSync" resultType="com.example.demo.domain.entity.GOrder">
select id,jwcode,order_no,type,price,count,pay_style,state,
success_time,ios_environment,ios_transaction_id,ios_receipt_data,
success_time,ios_environment,ios_transaction_id,ios_receipt_data,firstdata_ipgTransactionId,
add_time,is_synced
from g_order
where is_synced=0 and state=1 and pay_style in(3,5,6,7,9)
and success_time>1765246960
and success_time>1665246960
limit #{size}
</select>
<select id="selectById" resultType="com.example.demo.domain.vo.cash.CashCollection">

Loading…
Cancel
Save