系统用户钱包 拆分

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

View File

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