|
|
|
@ -3,9 +3,7 @@ package com.example.demo.serviceImpl.cash; |
|
|
|
import com.example.demo.Util.GoldTistV2; |
|
|
|
import com.example.demo.Util.SimpleIdGenerator; |
|
|
|
import com.example.demo.config.RabbitMQConfig; |
|
|
|
import com.example.demo.domain.entity.CashRecord; |
|
|
|
import com.example.demo.domain.entity.User; |
|
|
|
import com.example.demo.domain.entity.UserGoldRecord; |
|
|
|
import com.example.demo.domain.entity.*; |
|
|
|
import com.example.demo.domain.vo.cash.CashCollectionMessage; |
|
|
|
import com.example.demo.domain.vo.coin.Messages; |
|
|
|
import com.example.demo.mapper.cash.CashAuditMapper; |
|
|
|
@ -14,6 +12,7 @@ import com.example.demo.mapper.coin.AuditMapper; |
|
|
|
import com.example.demo.mapper.coin.MarketMapper; |
|
|
|
import com.example.demo.mapper.coin.RechargeMapper; |
|
|
|
import com.example.demo.service.cash.CashAuditService; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.amqp.rabbit.core.RabbitTemplate; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
@ -36,6 +35,7 @@ import static net.sf.jsqlparser.parser.feature.Feature.update; |
|
|
|
* @Version 1.0 |
|
|
|
**/ |
|
|
|
@Service |
|
|
|
@Slf4j |
|
|
|
public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
@Autowired |
|
|
|
private AuditMapper auditMapper; |
|
|
|
@ -83,11 +83,11 @@ public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
int currentMonth = LocalDate.now().getMonthValue(); |
|
|
|
// 根据当前月份设置对应字段 |
|
|
|
if (currentMonth >= 1 && currentMonth <= 6) { |
|
|
|
// 1-6月:设置6月额度,12月保持默认值 |
|
|
|
// 1-6 月:设置 6 月额度,12 月保持默认值 |
|
|
|
rechargeOrder.setFreeJune(order.getFreeGold()); |
|
|
|
rechargeOrder.setFreeDecember(0); |
|
|
|
} else { |
|
|
|
// 7-12月:设置12月额度,6月保持默认值 |
|
|
|
// 7-12 月:设置 12 月额度,6 月保持默认值 |
|
|
|
rechargeOrder.setFreeJune(0); |
|
|
|
rechargeOrder.setFreeDecember(order.getFreeGold()); |
|
|
|
} |
|
|
|
@ -98,7 +98,7 @@ public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
rechargeOrder.setVoucher(order.getVoucher()); |
|
|
|
rechargeOrder.setPayPlatform("金币系统"); |
|
|
|
rechargeOrder.setPayModel(order.getPayType()); |
|
|
|
//把时间转换成Date |
|
|
|
//把时间转换成 Date |
|
|
|
Date date = Date.from(order.getPayTime().toInstant(ZoneOffset.ofHours(8))); |
|
|
|
rechargeOrder.setPayTime(date); |
|
|
|
rechargeOrder.setAdminId(order.getSubmitterId()); |
|
|
|
@ -110,7 +110,7 @@ public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
rechargeOrder.setLinkId(order.getLinkId()); |
|
|
|
rechargeMapper.add(rechargeOrder); |
|
|
|
|
|
|
|
//往ERP加一条充值数据 |
|
|
|
//往 ERP 加一条充值数据 |
|
|
|
GoldTistV2.addCoinNew(order.getJwcode().toString(), 64, //充值永久金币 |
|
|
|
(double) (order.getPermanentGold()) / 100,order.getLinkId(), |
|
|
|
order.getRemark(), (double) (order.getPermanentGold()) / 100, auditName, "金币充值"); |
|
|
|
@ -123,12 +123,12 @@ public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
user.setSumConsumePermanent(BigDecimal.valueOf(order.getPermanentGold())); |
|
|
|
// 根据当前月份设置对应字段 |
|
|
|
if (currentMonth >= 1 && currentMonth <= 6) { |
|
|
|
// 1-6月:设置12月额度,6月保持默认值 |
|
|
|
// 1-6 月:设置 12 月额度,6 月保持默认值 |
|
|
|
user.setSumFreeJune(BigDecimal.valueOf(0)); |
|
|
|
user.setSumFreeDecember(BigDecimal.valueOf(order.getFreeGold())); |
|
|
|
user.setCurrentFreeDecember(BigDecimal.valueOf(order.getFreeGold())); |
|
|
|
} else { |
|
|
|
// 7-12月:设置6月额度,12月保持默认值 |
|
|
|
// 7-12 月:设置 6 月额度,12 月保持默认值 |
|
|
|
user.setSumFreeJune(BigDecimal.valueOf(order.getFreeGold())); |
|
|
|
user.setCurrentFreeJune(BigDecimal.valueOf(order.getFreeGold())); |
|
|
|
user.setSumFreeDecember(BigDecimal.valueOf(0)); |
|
|
|
@ -136,6 +136,54 @@ public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
user.setCurrentPermanentGold(BigDecimal.valueOf(order.getPermanentGold())); |
|
|
|
user.setRechargeNum(1); //充值次数加一 |
|
|
|
auditMapper.updateUserGold(user); |
|
|
|
|
|
|
|
// 先从数据库中获取订单的 walletId |
|
|
|
CashRecord dbRecord = cashCollectionMapper.selectByOrderCode(orderCode); |
|
|
|
Integer walletId = dbRecord != null ? dbRecord.getWalletId() : null; |
|
|
|
|
|
|
|
// 充值到指定钱包 |
|
|
|
if (walletId != null && order.getPermanentGold() > 0) { |
|
|
|
try { |
|
|
|
// 尝试更新用户钱包余额 |
|
|
|
int updateRows = cashCollectionMapper.addUserWalletPermanentGold( |
|
|
|
order.getJwcode(), |
|
|
|
walletId, |
|
|
|
order.getPermanentGold() |
|
|
|
); |
|
|
|
|
|
|
|
// 如果没有更新任何行,说明记录不存在,需要插入新记录 |
|
|
|
if (updateRows == 0) { |
|
|
|
UserRegionWallet wallet = new UserRegionWallet(); |
|
|
|
wallet.setJwcode(order.getJwcode()); |
|
|
|
wallet.setWalletId(walletId); |
|
|
|
wallet.setCurrentPermanentGold(new BigDecimal(order.getPermanentGold())); |
|
|
|
cashCollectionMapper.insertUserWallet(wallet); |
|
|
|
log.info("创建新的钱包记录:jwcode={}, walletId={}, permanentGold={}", |
|
|
|
order.getJwcode(), walletId, order.getPermanentGold()); |
|
|
|
} else { |
|
|
|
log.info("充值成功:jwcode={}, walletId={}, 增加金币={}", |
|
|
|
order.getJwcode(), walletId, order.getPermanentGold()); |
|
|
|
} |
|
|
|
|
|
|
|
// 创建钱包明细记录 |
|
|
|
UserWalletRecord walletRecord = new UserWalletRecord(); |
|
|
|
walletRecord.setJwcode(order.getJwcode()); |
|
|
|
walletRecord.setWalletId(walletId); |
|
|
|
walletRecord.setType(0); // 0=充值 |
|
|
|
walletRecord.setAmount(order.getPermanentGold()); |
|
|
|
walletRecord.setOrderCode(orderCode); |
|
|
|
walletRecord.setDescription(order.getPayType()); |
|
|
|
walletRecord.setStatus(0); // 0=正常 |
|
|
|
cashCollectionMapper.insertUserWalletRecord(walletRecord); |
|
|
|
log.info("创建钱包明细记录:jwcode={}, walletId={}, orderCode={}, amount={}", |
|
|
|
order.getJwcode(), walletId, orderCode, order.getPermanentGold()); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
log.error("充值钱包失败:jwcode={}, walletId={}, error={}", |
|
|
|
order.getJwcode(), walletId, e.getMessage(), e); |
|
|
|
// 不抛出异常,避免影响主流程,但记录错误日志 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (order.getGoodsName().equals("免费金币赠送")) { |
|
|
|
//往金币订单表加一条充值记录 |
|
|
|
@ -148,11 +196,11 @@ public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
int currentMonth = LocalDate.now().getMonthValue(); |
|
|
|
// 根据当前月份设置对应字段 |
|
|
|
if (currentMonth >= 1 && currentMonth <= 6) { |
|
|
|
// 1-6月:设置6月额度,12月保持默认值 |
|
|
|
// 1-6 月:设置 6 月额度,12 月保持默认值 |
|
|
|
rechargeOrder.setFreeJune(order.getFreeGold()); |
|
|
|
rechargeOrder.setFreeDecember(0); |
|
|
|
} else { |
|
|
|
// 7-12月:设置12月额度,6月保持默认值 |
|
|
|
// 7-12 月:设置 12 月额度,6 月保持默认值 |
|
|
|
rechargeOrder.setFreeJune(0); |
|
|
|
rechargeOrder.setFreeDecember(order.getFreeGold()); |
|
|
|
} |
|
|
|
@ -165,7 +213,7 @@ public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
rechargeOrder.setAuditStatus(1); |
|
|
|
rechargeOrder.setCreateTime(new Date()); |
|
|
|
rechargeMapper.add(rechargeOrder); |
|
|
|
//往ERP加一条充值数据 |
|
|
|
//往 ERP 加一条充值数据 |
|
|
|
GoldTistV2.addCoinNew(order.getJwcode().toString(), 63, //充值免费 |
|
|
|
(double) (order.getFreeGold()) / 100, |
|
|
|
order.getRemark(), SimpleIdGenerator.generateId(),0, auditName, "金币充值"); |
|
|
|
@ -175,12 +223,12 @@ public class CashAuditServiceImpl implements CashAuditService { |
|
|
|
user.setSumConsumePermanent(BigDecimal.valueOf(0)); |
|
|
|
// 根据当前月份设置对应字段 |
|
|
|
if (currentMonth >= 1 && currentMonth <= 6) { |
|
|
|
// 1-6月:设置6月额度,12月保持默认值 |
|
|
|
// 1-6 月:设置 6 月额度,12 月保持默认值 |
|
|
|
user.setSumFreeJune(BigDecimal.valueOf(order.getFreeGold())); |
|
|
|
user.setSumFreeJune(BigDecimal.valueOf(order.getFreeGold())); |
|
|
|
user.setCurrentFreeDecember(BigDecimal.valueOf(0)); |
|
|
|
} else { |
|
|
|
// 7-12月:设置12月额度,6月保持默认值 |
|
|
|
// 7-12 月:设置 12 月额度,6 月保持默认值 |
|
|
|
user.setSumFreeJune(BigDecimal.valueOf(0)); |
|
|
|
user.setSumFreeDecember(BigDecimal.valueOf(order.getFreeGold())); |
|
|
|
user.setSumFreeDecember(BigDecimal.valueOf(order.getFreeGold())); |
|
|
|
|