系统用户钱包 拆分
This commit is contained in:
@@ -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("提现成功,将在三个工作日内到账,请耐心等待!");
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user