diff --git a/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java b/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java index 9d798072..257fbe31 100644 --- a/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java +++ b/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java @@ -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 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 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 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("提现成功,将在三个工作日内到账,请耐心等待!"); diff --git a/src/main/java/com/sqx/modules/sys/entity/SysUserMoneyDetails.java b/src/main/java/com/sqx/modules/sys/entity/SysUserMoneyDetails.java index 3376e58c..e1f98799 100644 --- a/src/main/java/com/sqx/modules/sys/entity/SysUserMoneyDetails.java +++ b/src/main/java/com/sqx/modules/sys/entity/SysUserMoneyDetails.java @@ -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)