|
|
|
|
@@ -19,8 +19,11 @@ import com.sqx.modules.message.entity.MessageInfo;
|
|
|
|
|
import com.sqx.modules.pay.dao.CashOutDao;
|
|
|
|
|
import com.sqx.modules.pay.entity.CashOut;
|
|
|
|
|
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.service.SysUserService;
|
|
|
|
|
import com.sqx.modules.utils.AliPayOrderUtil;
|
|
|
|
|
import com.sqx.modules.utils.AmountCalUtils;
|
|
|
|
|
import com.sqx.modules.utils.excel.ExcelData;
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
|
@@ -45,7 +48,7 @@ import java.util.List;
|
|
|
|
|
* 提现申请记录
|
|
|
|
|
*/
|
|
|
|
|
@Service
|
|
|
|
|
public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> implements CashOutService {
|
|
|
|
|
public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> implements CashOutService{
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 提现申请记录
|
|
|
|
|
@@ -74,8 +77,8 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|
|
|
|
private SysUserService sysUserService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public PageUtils selectCashOutList(Integer page,Integer limit,CashOut cashOut) {
|
|
|
|
|
return new PageUtils(baseMapper.selectCashOutPage(new Page<>(page,limit),cashOut));
|
|
|
|
|
public PageUtils selectCashOutList(Integer page, Integer limit, CashOut cashOut) {
|
|
|
|
|
return new PageUtils(baseMapper.selectCashOutPage(new Page<>(page, limit), cashOut));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -85,34 +88,43 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|
|
|
|
ExcelData data = new ExcelData();
|
|
|
|
|
data.setName("提现列表");
|
|
|
|
|
List<String> titles = new ArrayList();
|
|
|
|
|
titles.add("编号");titles.add("用户类型");titles.add("用户名称");titles.add("支付宝账号");titles.add("支付宝名称");
|
|
|
|
|
titles.add("提现金豆");titles.add("状态");
|
|
|
|
|
titles.add("拒绝原因");titles.add("申请时间");titles.add("转账/拒绝时间");titles.add("转账订单号");
|
|
|
|
|
titles.add("编号");
|
|
|
|
|
titles.add("用户类型");
|
|
|
|
|
titles.add("用户名称");
|
|
|
|
|
titles.add("支付宝账号");
|
|
|
|
|
titles.add("支付宝名称");
|
|
|
|
|
titles.add("提现金豆");
|
|
|
|
|
titles.add("状态");
|
|
|
|
|
titles.add("拒绝原因");
|
|
|
|
|
titles.add("申请时间");
|
|
|
|
|
titles.add("转账/拒绝时间");
|
|
|
|
|
titles.add("转账订单号");
|
|
|
|
|
data.setTitles(titles);
|
|
|
|
|
List<List<Object>> rows = new ArrayList();
|
|
|
|
|
for(CashOut cashOut:cashOutList){
|
|
|
|
|
for (CashOut cashOut : cashOutList) {
|
|
|
|
|
List<Object> row = new ArrayList();
|
|
|
|
|
row.add(cashOut.getId());
|
|
|
|
|
if (cashOut.getUserType()==1){
|
|
|
|
|
if (cashOut.getUserType() == 1) {
|
|
|
|
|
row.add("用户");
|
|
|
|
|
row.add(cashOut.getUserName());
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
row.add("分销商");
|
|
|
|
|
row.add(cashOut.getSysUserName());
|
|
|
|
|
}
|
|
|
|
|
row.add(cashOut.getZhifubao());row.add(cashOut.getZhifubaoName());
|
|
|
|
|
row.add(cashOut.getZhifubao());
|
|
|
|
|
row.add(cashOut.getZhifubaoName());
|
|
|
|
|
row.add(cashOut.getMoney());
|
|
|
|
|
|
|
|
|
|
if(cashOut.getState()==-1){
|
|
|
|
|
if (cashOut.getState() == -1) {
|
|
|
|
|
row.add("已拒绝");
|
|
|
|
|
}else if(cashOut.getState()==0){
|
|
|
|
|
} else if (cashOut.getState() == 0) {
|
|
|
|
|
row.add("待转账");
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
row.add("成功");
|
|
|
|
|
}
|
|
|
|
|
row.add(cashOut.getRefund()==null?"":cashOut.getRefund());
|
|
|
|
|
row.add(cashOut.getRefund() == null ? "" : cashOut.getRefund());
|
|
|
|
|
row.add(cashOut.getCreateAt());
|
|
|
|
|
row.add(StringUtils.isEmpty(cashOut.getOutAt())?"":cashOut.getOutAt());
|
|
|
|
|
row.add(StringUtils.isEmpty(cashOut.getOutAt()) ? "" : cashOut.getOutAt());
|
|
|
|
|
row.add(cashOut.getOrderNumber());
|
|
|
|
|
rows.add(row);
|
|
|
|
|
}
|
|
|
|
|
@@ -141,7 +153,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|
|
|
|
@Override
|
|
|
|
|
public void cashOutSuccess(String openId, String date, String money, String payWay, String url) {
|
|
|
|
|
UserEntity userByWxId = userService.queryByWxOpenId(openId);
|
|
|
|
|
if(userByWxId!=null){
|
|
|
|
|
if (userByWxId != null) {
|
|
|
|
|
MessageInfo messageInfo = new MessageInfo();
|
|
|
|
|
messageInfo.setState(String.valueOf(5));
|
|
|
|
|
messageInfo.setIsSee("0");
|
|
|
|
|
@@ -232,7 +244,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void updateMayMoney(int i, Long userId, Double money) {
|
|
|
|
|
cashOutDao.updateMayMoney(i,userId,money);
|
|
|
|
|
cashOutDao.updateMayMoney(i, userId, money);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -268,43 +280,43 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public Result cashMoney(Long userId, Double money){
|
|
|
|
|
if(money==null || money<=0.00){
|
|
|
|
|
public Result cashMoney(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())){
|
|
|
|
|
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()+",请重新输入!");
|
|
|
|
|
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;
|
|
|
|
|
if (mul < 0.01) {
|
|
|
|
|
mul = 0.01;
|
|
|
|
|
}
|
|
|
|
|
// UserMoney userMoney=userMoneyService.selectUserMoneyByUserId(userId);
|
|
|
|
|
InviteMoney inviteMoney = inviteMoneyService.selectInviteMoneyByUserId(userId);
|
|
|
|
|
UserEntity userEntity = userService.selectUserById(userId);
|
|
|
|
|
//提现判断金豆是否足够
|
|
|
|
|
Double moneySum = AmountCalUtils.add(new BigDecimal(money), new BigDecimal(mul)).doubleValue(); //金豆=提现金豆+手续费
|
|
|
|
|
if(inviteMoney.getMoney()>=moneySum){ //用户金豆足够
|
|
|
|
|
if (inviteMoney.getMoney() >= moneySum) { //用户金豆足够
|
|
|
|
|
//扣除可提现金豆
|
|
|
|
|
inviteMoneyService.updateInviteMoneyCashOut(2,moneySum,userId);
|
|
|
|
|
inviteMoneyService.updateInviteMoneyCashOut(2, moneySum, userId);
|
|
|
|
|
//增加金豆操作记录
|
|
|
|
|
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
|
|
|
|
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
|
|
|
|
userMoneyDetails.setUserId(userId);
|
|
|
|
|
userMoneyDetails.setTitle("提现:"+money);
|
|
|
|
|
userMoneyDetails.setContent("支付宝提现:"+money+",手续费:"+mul+",总计:"+moneySum);
|
|
|
|
|
userMoneyDetails.setTitle("提现:" + money);
|
|
|
|
|
userMoneyDetails.setContent("支付宝提现:" + money + ",手续费:" + mul + ",总计:" + moneySum);
|
|
|
|
|
userMoneyDetails.setType(2);
|
|
|
|
|
userMoneyDetails.setClassify(2);
|
|
|
|
|
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()));
|
|
|
|
|
userMoneyDetailsService.save(userMoneyDetails);
|
|
|
|
|
CashOut cashOut = new CashOut();
|
|
|
|
|
@@ -320,50 +332,50 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|
|
|
|
baseMapper.insert(cashOut);
|
|
|
|
|
// inviteMoneyDao.updateInviteMoneyCashOut(1,money,userId);
|
|
|
|
|
return Result.success("提现成功,将在三个工作日内到账,请耐心等待!");
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
return Result.error("金豆不足,请输入正确的提现金豆!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public Result sysCashMoney(Long userId, Double money){
|
|
|
|
|
if(money==null || money<=0.00){
|
|
|
|
|
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())){
|
|
|
|
|
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()+",请重新输入!");
|
|
|
|
|
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;
|
|
|
|
|
if (mul < 0.01) {
|
|
|
|
|
mul = 0.01;
|
|
|
|
|
}
|
|
|
|
|
UserMoney userMoney=userMoneyService.selectSysUserMoneyByUserId(userId);
|
|
|
|
|
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){ //用户金豆足够
|
|
|
|
|
if (userMoney.getMoney().doubleValue() >= moneySum) { //用户金豆足够
|
|
|
|
|
//扣除可提现金豆
|
|
|
|
|
userMoneyService.updateSysMoney(2,userId,moneySum);
|
|
|
|
|
userMoneyService.updateSysMoney(2, userId, moneySum);
|
|
|
|
|
//增加金豆操作记录
|
|
|
|
|
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
|
|
|
|
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
|
|
|
|
userMoneyDetails.setSysUserId(userId);
|
|
|
|
|
userMoneyDetails.setTitle("提现:"+money);
|
|
|
|
|
userMoneyDetails.setContent("提现:"+money+",手续费:"+mul+",总计:"+moneySum);
|
|
|
|
|
userMoneyDetails.setTitle("提现:" + money);
|
|
|
|
|
userMoneyDetails.setContent("提现:" + money + ",手续费:" + mul + ",总计:" + moneySum);
|
|
|
|
|
userMoneyDetails.setType(2);
|
|
|
|
|
userMoneyDetails.setClassify(2);
|
|
|
|
|
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()));
|
|
|
|
|
userMoneyDetailsService.save(userMoneyDetails);
|
|
|
|
|
CashOut cashOut = new CashOut();
|
|
|
|
|
@@ -380,9 +392,64 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|
|
|
|
baseMapper.insert(cashOut);
|
|
|
|
|
// inviteMoneyDao.updateInviteMoneyCashOut(1,money,userId);
|
|
|
|
|
return Result.success("提现成功,将在三个工作日内到账,请耐心等待!");
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
return Result.error("金豆不足,请输入正确的提现金豆!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public Result withdraw(Long userId, Double money) {
|
|
|
|
|
if (money == null || money <= 0.00) {
|
|
|
|
|
return Result.error("请不要输入小于0的数字,请输入正确的提现金额!");
|
|
|
|
|
}
|
|
|
|
|
UserEntity userInfo = userService.queryByUserId(userId);
|
|
|
|
|
//最低提现金额
|
|
|
|
|
// CommonInfo one = commonInfoService.findOne(112);
|
|
|
|
|
// if(one!=null && money<Double.parseDouble(one.getValue())){
|
|
|
|
|
// return Result.error("不满足最低提现金额,请重新输入!");
|
|
|
|
|
// }
|
|
|
|
|
CashOut cashOut = new CashOut();
|
|
|
|
|
cashOut.setIsOut(false);
|
|
|
|
|
cashOut.setMoney(money.toString());
|
|
|
|
|
cashOut.setUserId(userInfo.getUserId());
|
|
|
|
|
cashOut.setZhifubao(userInfo.getZhiFuBao());
|
|
|
|
|
cashOut.setZhifubaoName(userInfo.getZhiFuBaoName());
|
|
|
|
|
|
|
|
|
|
cashOut.setState(0);
|
|
|
|
|
cashOut.setRate(0.00);
|
|
|
|
|
cashOut.setUserType(1);
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
String date = sdf.format(new Date());
|
|
|
|
|
cashOut.setCreateAt(date);
|
|
|
|
|
|
|
|
|
|
String outOrderNo = AliPayOrderUtil.createOrderId();
|
|
|
|
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
|
|
|
|
userMoneyDetails.setSysUserId(userId);
|
|
|
|
|
userMoneyDetails.setTitle("提现:" + money);
|
|
|
|
|
userMoneyDetails.setType(2);
|
|
|
|
|
userMoneyDetails.setState(1);
|
|
|
|
|
userMoneyDetails.setClassify(4);
|
|
|
|
|
userMoneyDetails.setMoney(new BigDecimal(money));
|
|
|
|
|
userMoneyDetails.setCreateTime(date);
|
|
|
|
|
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId);
|
|
|
|
|
//提现判断余额是否足够
|
|
|
|
|
if (userMoney.getAmount().doubleValue() >= money) { //用户金豆足够
|
|
|
|
|
//扣除可提现余额
|
|
|
|
|
userMoneyService.updateAmount(2, userId, money);
|
|
|
|
|
}else {
|
|
|
|
|
return Result.success("可提现余额不足!");
|
|
|
|
|
}
|
|
|
|
|
BaseResp baseResp = WuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
|
|
|
|
if (baseResp.getStatus().equals(2)) {
|
|
|
|
|
userMoneyDetails.setContent("成功提现:" + money);
|
|
|
|
|
userMoneyDetails.setState(2);
|
|
|
|
|
cashOut.setState(1);
|
|
|
|
|
}
|
|
|
|
|
userMoneyDetailsService.save(userMoneyDetails);
|
|
|
|
|
baseMapper.insert(cashOut);
|
|
|
|
|
return Result.success("提现成功,将在三个工作日内到账,请耐心等待!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|