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