系统用户钱包 拆分

This commit is contained in:
2025-01-06 14:33:34 +08:00
parent 0e512bfc69
commit 5d291816d6
2 changed files with 142 additions and 98 deletions

View File

@@ -36,6 +36,10 @@ import com.sqx.modules.pay.service.CashOutService;
import com.sqx.modules.pay.wuyou.BaseResp; import com.sqx.modules.pay.wuyou.BaseResp;
import com.sqx.modules.pay.wuyou.WuyouPay; import com.sqx.modules.pay.wuyou.WuyouPay;
import com.sqx.modules.sys.entity.SysUserEntity; import com.sqx.modules.sys.entity.SysUserEntity;
import com.sqx.modules.sys.entity.SysUserMoney;
import com.sqx.modules.sys.entity.SysUserMoneyDetails;
import com.sqx.modules.sys.service.SysUserMoneyDetailsService;
import com.sqx.modules.sys.service.SysUserMoneyService;
import com.sqx.modules.sys.service.SysUserService; import com.sqx.modules.sys.service.SysUserService;
import com.sqx.modules.utils.AliPayOrderUtil; import com.sqx.modules.utils.AliPayOrderUtil;
import com.sqx.modules.utils.AmountCalUtils; import com.sqx.modules.utils.AmountCalUtils;
@@ -87,8 +91,12 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
@Autowired @Autowired
private UserMoneyService userMoneyService; private UserMoneyService userMoneyService;
@Autowired @Autowired
private SysUserMoneyService sysUserMoneyService;
@Autowired
private UserMoneyDetailsService userMoneyDetailsService; private UserMoneyDetailsService userMoneyDetailsService;
@Autowired @Autowired
private SysUserMoneyDetailsService sysUserMoneyDetailsService;
@Autowired
private InviteMoneyService inviteMoneyService; private InviteMoneyService inviteMoneyService;
@Autowired @Autowired
private SysUserService sysUserService; private SysUserService sysUserService;
@@ -414,64 +422,65 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
@Override @Override
@Transactional @Transactional
public Result sysCashMoney(Long userId, Double money) { public Result sysCashMoney(Long userId, Double money) {
if (money == null || money <= 0.00) { // if (money == null || money <= 0.00) {
return Result.error("请不要输入小于0的数字,请输入正确的提现金币!"); // return Result.error("请不要输入小于0的数字,请输入正确的提现金币!");
} // }
//最低提现金币 // //最低提现金币
CommonInfo one = commonInfoService.findOne(112); // CommonInfo one = commonInfoService.findOne(112);
if (one != null && money < Double.parseDouble(one.getValue())) { // if (one != null && money < Double.parseDouble(one.getValue())) {
return Result.error("输入金币不满足最低提现金币,请重新输入!"); // return Result.error("输入金币不满足最低提现金币,请重新输入!");
} // }
//最高提现金币 // //最高提现金币
CommonInfo one2 = commonInfoService.findOne(153); // CommonInfo one2 = commonInfoService.findOne(153);
if (one2 != null && money >= Double.parseDouble(one2.getValue())) { // if (one2 != null && money >= Double.parseDouble(one2.getValue())) {
return Result.error(-100, "输入金币过大,不能大于" + one2.getValue() + ",请重新输入!"); // return Result.error(-100, "输入金币过大,不能大于" + one2.getValue() + ",请重新输入!");
} // }
//手续费 // //手续费
CommonInfo one1 = commonInfoService.findOne(152); // CommonInfo one1 = commonInfoService.findOne(152);
double mul = AmountCalUtils.mul(money, Double.parseDouble(one1.getValue())); // double mul = AmountCalUtils.mul(money, Double.parseDouble(one1.getValue()));
if (mul < 0.01) { // if (mul < 0.01) {
mul = 0.01; // mul = 0.01;
} // }
UserMoney userMoney = userMoneyService.selectSysUserMoneyByUserId(userId); // SysUserMoney sysUserMoney = sysUserMoneyService.selectSysUserMoneyByUserId(userId);
//
SysUserEntity sysUserEntity = sysUserService.getById(userId); // SysUserEntity sysUserEntity = sysUserService.getById(userId);
//提现判断金币是否足够 金币=提现金币+手续费 // //提现判断金币是否足够 金币=提现金币+手续费
double moneySum = AmountCalUtils.add(new BigDecimal(money), new BigDecimal(mul)).doubleValue(); // double moneySum = AmountCalUtils.add(new BigDecimal(money), new BigDecimal(mul)).doubleValue();
// 用户金币足够 // // 用户金币足够
if (userMoney.getMoney().doubleValue() >= moneySum) { // if (sysUserMoney.getMoney().doubleValue() >= moneySum) {
//扣除可提现金币 // //扣除可提现金币
userMoneyService.updateSysMoney(2, userId, moneySum); // sysUserMoneyService.updateSysMoney(2, userId, moneySum);
//增加金币操作记录 // //增加金币操作记录
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); // UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setSysUserId(userId); // userMoneyDetails.setSysUserId(userId);
userMoneyDetails.setTitle("提现:" + money); // userMoneyDetails.setTitle("提现:" + money);
userMoneyDetails.setContent("提现:" + money + ",手续费:" + mul + ",总计:" + moneySum); // userMoneyDetails.setContent("提现:" + money + ",手续费:" + mul + ",总计:" + moneySum);
userMoneyDetails.setType(2); // userMoneyDetails.setType(2);
// ✅ // // ✅
userMoneyDetails.setClassify(4); // userMoneyDetails.setClassify(4);
userMoneyDetails.setMoney(new BigDecimal(moneySum)); // userMoneyDetails.setMoney(new BigDecimal(moneySum));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
userMoneyDetails.setCreateTime(sdf.format(new Date())); // userMoneyDetails.setCreateTime(sdf.format(new Date()));
userMoneyDetails.setMoneyType(1); // userMoneyDetails.setMoneyType(1);
userMoneyDetailsService.save(userMoneyDetails); // userMoneyDetailsService.save(userMoneyDetails);
CashOut cashOut = new CashOut(); // CashOut cashOut = new CashOut();
cashOut.setState(0); // cashOut.setState(0);
cashOut.setZhifubao(sysUserEntity.getZhiFuBao()); // cashOut.setZhifubao(sysUserEntity.getZhiFuBao());
cashOut.setZhifubaoName(sysUserEntity.getZhiFuBaoName()); // cashOut.setZhifubaoName(sysUserEntity.getZhiFuBaoName());
cashOut.setMoney(money.toString()); // cashOut.setMoney(money.toString());
cashOut.setCreateAt(sdf.format(new Date())); // cashOut.setCreateAt(sdf.format(new Date()));
cashOut.setUserId(sysUserEntity.getUserId()); // cashOut.setUserId(sysUserEntity.getUserId());
cashOut.setRate(mul); // cashOut.setRate(mul);
cashOut.setOrderNumber(String.valueOf(System.currentTimeMillis())); // cashOut.setOrderNumber(String.valueOf(System.currentTimeMillis()));
cashOut.setSysUserId(userId); // cashOut.setSysUserId(userId);
cashOut.setUserType(2); // cashOut.setUserType(2);
baseMapper.insert(cashOut); // baseMapper.insert(cashOut);
// inviteMoneyDao.updateInviteMoneyCashOut(1,money,userId); //// inviteMoneyDao.updateInviteMoneyCashOut(1,money,userId);
return Result.success("提现成功,将在三个工作日内到账,请耐心等待!"); // return Result.success("提现成功,将在三个工作日内到账,请耐心等待!");
} else { // } else {
return Result.error("金币不足,请输入正确的提现金币!"); // return Result.error("金币不足,请输入正确的提现金币!");
} // }
return Result.success("作废");
} }
@@ -542,49 +551,77 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
String outOrderNo = AliPayOrderUtil.createOrderId(); String outOrderNo = AliPayOrderUtil.createOrderId();
cashOut.setOrderNumber(outOrderNo); cashOut.setOrderNumber(outOrderNo);
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(userId);
userMoneyDetails.setTitle("[提现]");
userMoneyDetails.setContent("提现:" + money + "");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
// ✅
userMoneyDetails.setClassify(4);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(DateUtil.now());
userMoneyDetails.setMoneyType(1);
UserMoney userMoney;
if (isSys) { if (isSys) {
userMoney = userMoneyService.selectSysUserMoneyByUserId(userId); SysUserMoneyDetails sysUserMoneyDetails = new SysUserMoneyDetails();
} else { sysUserMoneyDetails.setUserId(userId);
userMoney = userMoneyService.selectUserMoneyByUserId(userId); sysUserMoneyDetails.setSysUserId(userId);
} sysUserMoneyDetails.setTitle("[提现]");
//提现判断余额是否足够 sysUserMoneyDetails.setContent("提现:" + money + "");
if (userMoney.getAmount().doubleValue() < money) { sysUserMoneyDetails.setType(2);
return Result.success("可提现余额不足!"); sysUserMoneyDetails.setState(2);
} // ✅
sysUserMoneyDetails.setClassify(4);
sysUserMoneyDetails.setMoney(new BigDecimal(money));
sysUserMoneyDetails.setCreateTime(DateUtil.now());
sysUserMoneyDetails.setMoneyType(1);
SysUserMoney sysUserMoney = sysUserMoneyService.selectSysUserMoneyByUserId(userId);
//提现判断余额是否足够
if (sysUserMoney.getMoney().doubleValue() < money) {
return Result.success("可提现余额不足!");
}
if (wuyouPay.checkCanCash(userId, WithdrawTypeEnum.MANUAL, new BigDecimal(money.toString()))) {
cashOut.setStatus(4);
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) {
sysUserMoneyDetails.setContent("成功提现:" + money);
cashOut.setState(1);
}
if (wuyouPay.checkCanCash(userId, WithdrawTypeEnum.MANUAL, new BigDecimal(money.toString()))) { if (baseResp.getErrorMsg() != null) {
cashOut.setStatus(4); return Result.error(baseResp.getErrorMsg());
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); }
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) { } else {
sysUserMoneyDetails.setContent("成功提现:" + money);
cashOut.setState(3);
}
sysUserMoneyDetailsService.save(sysUserMoneyDetails);
baseMapper.insert(cashOut);
sysUserMoneyService.updateSysMoney(2, userId, money);
} else {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(userId);
userMoneyDetails.setTitle("[提现]");
userMoneyDetails.setContent("提现:" + money + "");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
// ✅
userMoneyDetails.setClassify(4);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(DateUtil.now());
userMoneyDetails.setMoneyType(1);
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId);
//提现判断余额是否足够
if (userMoney.getAmount().doubleValue() < money) {
return Result.success("可提现余额不足!");
}
if (wuyouPay.checkCanCash(userId, WithdrawTypeEnum.MANUAL, new BigDecimal(money.toString()))) {
cashOut.setStatus(4);
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) {
userMoneyDetails.setContent("成功提现:" + money);
cashOut.setState(1);
}
if (baseResp.getErrorMsg() != null) {
return Result.error(baseResp.getErrorMsg());
}
} else {
userMoneyDetails.setContent("成功提现:" + money); userMoneyDetails.setContent("成功提现:" + money);
cashOut.setState(1); cashOut.setState(3);
} }
userMoneyDetailsService.save(userMoneyDetails);
if (baseResp.getErrorMsg() != null) { baseMapper.insert(cashOut);
return Result.error(baseResp.getErrorMsg());
}
} else {
userMoneyDetails.setContent("成功提现:" + money);
cashOut.setState(3);
}
userMoneyDetailsService.save(userMoneyDetails);
baseMapper.insert(cashOut);
if (isSys) {
userMoneyService.updateSysAmount(2, userId, money);
} else {
userMoneyService.updateAmount(2, userId, money); userMoneyService.updateAmount(2, userId, money);
} }
return Result.success("提现成功,将在三个工作日内到账,请耐心等待!"); return Result.success("提现成功,将在三个工作日内到账,请耐心等待!");

View File

@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -39,22 +41,26 @@ public class SysUserMoneyDetails implements Serializable {
/** /**
* 钱包详情id * 钱包详情id
*/ */
@TableId(type = IdType.AUTO) @TableId(type = IdType.ID_WORKER)
@JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/** /**
* 用户id * 用户id
*/ */
@JsonSerialize(using = ToStringSerializer.class)
private Long userId; private Long userId;
/** /**
* 渠道用户id * 渠道用户id
*/ */
@JsonSerialize(using = ToStringSerializer.class)
private Long sysUserId; private Long sysUserId;
/** /**
* 对应用户id * 对应用户id
*/ */
@JsonSerialize(using = ToStringSerializer.class)
private Long byUserId; private Long byUserId;
/** /**
@@ -110,6 +116,7 @@ public class SysUserMoneyDetails implements Serializable {
/** /**
* 源id * 源id
*/ */
@JsonSerialize(using = ToStringSerializer.class)
private Long sourceId; private Long sourceId;
@TableField(exist = false) @TableField(exist = false)