diff --git a/src/main/java/com/sqx/modules/pay/controller/CashController.java b/src/main/java/com/sqx/modules/pay/controller/CashController.java index 0b6ea04c..b27cc231 100644 --- a/src/main/java/com/sqx/modules/pay/controller/CashController.java +++ b/src/main/java/com/sqx/modules/pay/controller/CashController.java @@ -11,6 +11,7 @@ import com.alipay.api.request.AlipayFundTransUniTransferRequest; import com.alipay.api.response.AlipayFundTransToaccountTransferResponse; import com.alipay.api.response.AlipayFundTransUniTransferResponse; import com.sqx.common.utils.Result; +import com.sqx.modules.app.annotation.Login; import com.sqx.modules.app.entity.UserEntity; import com.sqx.modules.app.entity.UserMoneyDetails; import com.sqx.modules.app.service.UserMoneyDetailsService; @@ -57,16 +58,24 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; @RequestMapping(value = "/cash") public class CashController { - /** 充值记录 */ + /** + * 充值记录 + */ @Autowired private PayDetailsService payDetailsService; - /** 提现记录 */ + /** + * 提现记录 + */ @Autowired private CashOutService cashOutService; - /** app用户 */ + /** + * app用户 + */ @Autowired private UserService userService; - /** 通用配置 */ + /** + * 通用配置 + */ @Autowired private CommonInfoService commonInfoService; @Autowired @@ -79,14 +88,14 @@ public class CashController { private OrdersService ordersService; @Autowired private UserMoneyService userMoneyService; - private ReentrantReadWriteLock reentrantReadWriteLock=new ReentrantReadWriteLock(true); + private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true); @RequestMapping(value = "/sendMsgByUserId", method = RequestMethod.GET) @ApiOperation("管理平台主动推送消息(指定用户)") @ResponseBody - public Result sendMsgByUserId(String title,String content,Long userId){ + public Result sendMsgByUserId(String title, String content, Long userId) { UserEntity user = userService.queryByUserId(userId); - send(user,title,content); + send(user, title, content); return Result.success(); } @@ -94,32 +103,32 @@ public class CashController { @RequestMapping(value = "/sendMsg", method = RequestMethod.GET) @ApiOperation("管理平台主动推送消息") @ResponseBody - public Result sendMsg(String title,String content,String phone,Integer flag){ - if(flag==1){ + public Result sendMsg(String title, String content, String phone, Integer flag) { + if (flag == 1) { //根据手机号推送 UserEntity userByPhone = userService.queryByPhone(phone); - if(null==userByPhone){ - return Result.error(-100,"手机号不存在!"); + if (null == userByPhone) { + return Result.error(-100, "手机号不存在!"); } - send(userByPhone,title,content); - }else{ + send(userByPhone, title, content); + } else { //所有人推送 List userInfos = userService.list(); //用户数量较大 使用多线程推送 根据用户数量进行拆分 同时按照3个线程进行推送 int count = userInfos.size() / 3; new Thread(() -> { - for(int i=0 ;i { - for(int i=count ;i { - for(int i=count*2 ;i map=new HashMap<>(); - map.put("sumMoney",sumMoney==null?0.00:sumMoney); - map.put("countMoney",countMoney==null?0:countMoney); - map.put("stayMoney",stayMoney==null?0:stayMoney); - return Result.success().put("data",map); + Map map = new HashMap<>(); + map.put("sumMoney", sumMoney == null ? 0.00 : sumMoney); + map.put("countMoney", countMoney == null ? 0 : countMoney); + map.put("stayMoney", stayMoney == null ? 0 : stayMoney); + return Result.success().put("data", map); } @ApiOperation("充值统计") @GetMapping("/payMember") - public Result payMember(String time,Integer flag,Integer payClassify){ - Double sumMoney = payDetailsService.selectSumPayByClassify(time, flag, null,payClassify); + public Result payMember(String time, Integer flag, Integer payClassify) { + Double sumMoney = payDetailsService.selectSumPayByClassify(time, flag, null, payClassify); //1app微信 2微信公众号 3微信小程序 4支付宝app 5支付宝h5 6抖音 7苹果 8快手 - Double weiXinAppMoney = payDetailsService.selectSumPayByClassify(time, flag, 1,payClassify); - Double weiXinGZHMoney = payDetailsService.selectSumPayByClassify(time, flag, 2,payClassify); - Double weiXinXCXMoney = payDetailsService.selectSumPayByClassify(time, flag, 3,payClassify); - Double zhiFuBaoAppMoney = payDetailsService.selectSumPayByClassify(time, flag, 4,payClassify); - Double zhiFuBaoH5Money = payDetailsService.selectSumPayByClassify(time, flag, 5,payClassify); - Double dyMoney = payDetailsService.selectSumPayByClassify(time, flag, 6,payClassify); - Double iosMoney = payDetailsService.selectSumPayByClassify(time, flag, 7,payClassify); - Double ksMoney = payDetailsService.selectSumPayByClassify(time, flag, 8,payClassify); - Map map=new HashMap<>(); - map.put("sumMoney",sumMoney==null?0.00:sumMoney); - map.put("weiXinAppMoney",weiXinAppMoney==null?0.00:weiXinAppMoney); - map.put("weiXinGZHMoney",weiXinGZHMoney==null?0.00:weiXinGZHMoney); - map.put("weiXinXCXMoney",weiXinXCXMoney==null?0.00:weiXinXCXMoney); - map.put("zhiFuBaoAppMoney",zhiFuBaoAppMoney==null?0.00:zhiFuBaoAppMoney); - map.put("zhiFuBaoH5Money",zhiFuBaoH5Money==null?0.00:zhiFuBaoH5Money); - map.put("dyMoney",dyMoney==null?0.00:dyMoney); - map.put("iosMoney",iosMoney==null?0.00:iosMoney); - map.put("ksMoney",ksMoney==null?0.00:ksMoney); - return Result.success().put("data",map); + Double weiXinAppMoney = payDetailsService.selectSumPayByClassify(time, flag, 1, payClassify); + Double weiXinGZHMoney = payDetailsService.selectSumPayByClassify(time, flag, 2, payClassify); + Double weiXinXCXMoney = payDetailsService.selectSumPayByClassify(time, flag, 3, payClassify); + Double zhiFuBaoAppMoney = payDetailsService.selectSumPayByClassify(time, flag, 4, payClassify); + Double zhiFuBaoH5Money = payDetailsService.selectSumPayByClassify(time, flag, 5, payClassify); + Double dyMoney = payDetailsService.selectSumPayByClassify(time, flag, 6, payClassify); + Double iosMoney = payDetailsService.selectSumPayByClassify(time, flag, 7, payClassify); + Double ksMoney = payDetailsService.selectSumPayByClassify(time, flag, 8, payClassify); + Map map = new HashMap<>(); + map.put("sumMoney", sumMoney == null ? 0.00 : sumMoney); + map.put("weiXinAppMoney", weiXinAppMoney == null ? 0.00 : weiXinAppMoney); + map.put("weiXinGZHMoney", weiXinGZHMoney == null ? 0.00 : weiXinGZHMoney); + map.put("weiXinXCXMoney", weiXinXCXMoney == null ? 0.00 : weiXinXCXMoney); + map.put("zhiFuBaoAppMoney", zhiFuBaoAppMoney == null ? 0.00 : zhiFuBaoAppMoney); + map.put("zhiFuBaoH5Money", zhiFuBaoH5Money == null ? 0.00 : zhiFuBaoH5Money); + map.put("dyMoney", dyMoney == null ? 0.00 : dyMoney); + map.put("iosMoney", iosMoney == null ? 0.00 : iosMoney); + map.put("ksMoney", ksMoney == null ? 0.00 : ksMoney); + return Result.success().put("data", map); } @ApiOperation("收入统计") @GetMapping("/statisticsIncomeMoney") - public Result statisticsIncomeMoney(String time,Integer flag){ + public Result statisticsIncomeMoney(String time, Integer flag) { Double sumMoney = ordersService.statisticsIncomeMoney(time, flag, null); Double courseMoney = ordersService.statisticsIncomeMoney(time, flag, 1); Double vipMoney = ordersService.statisticsIncomeMoney(time, flag, 2); - Map map=new HashMap<>(); - map.put("sumMoney",sumMoney==null?0.00:sumMoney); - map.put("courseMoney",courseMoney==null?0.00:courseMoney); - map.put("vipMoney",vipMoney==null?0.00:vipMoney); - return Result.success().put("data",map); + Map map = new HashMap<>(); + map.put("sumMoney", sumMoney == null ? 0.00 : sumMoney); + map.put("courseMoney", courseMoney == null ? 0.00 : courseMoney); + map.put("vipMoney", vipMoney == null ? 0.00 : vipMoney); + return Result.success().put("data", map); } @@ -265,11 +274,11 @@ public class CashController { return Result.error("提现记录不存在!"); } //订单状态不是待转帐 - if (one.getState()!=0) { + if (one.getState() != 0) { return Result.error(9999, one.getZhifubaoName() + "转账失败!原因是用户已转账"); } //订单编号为空 - if(StringUtils.isEmpty(one.getOrderNumber())){ + if (StringUtils.isEmpty(one.getOrderNumber())) { one.setOrderNumber(String.valueOf(System.currentTimeMillis())); } //配置文件对象 @@ -292,27 +301,27 @@ public class CashController { String rootCertPath=this.getClass().getClassLoader().getResource("zhifubao/alipayRootCert.crt").getPath(); //获取的文件路径前缀会携带斜杠 所以截取掉*/ CommonInfo url = commonInfoService.findOne(200); - certAlipayRequest.setCertPath(url.getValue()+"/appCertPublicKey.crt"); //应用公钥证书路径(app_cert_path 文件绝对路径) - certAlipayRequest.setAlipayPublicCertPath(url.getValue()+"/alipayCertPublicKey_RSA2.crt"); //支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径) - certAlipayRequest.setRootCertPath(url.getValue()+"/alipayRootCert.crt"); //支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径) + certAlipayRequest.setCertPath(url.getValue() + "/appCertPublicKey.crt"); //应用公钥证书路径(app_cert_path 文件绝对路径) + certAlipayRequest.setAlipayPublicCertPath(url.getValue() + "/alipayCertPublicKey_RSA2.crt"); //支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径) + certAlipayRequest.setRootCertPath(url.getValue() + "/alipayRootCert.crt"); //支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径) AlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest); AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest(); request.setBizContent("{" + - "\"out_biz_no\":\""+one.getOrderNumber()+"\"," + //订单编号 - "\"trans_amount\":"+new BigDecimal(one.getMoney())+"," + //转账金豆 + "\"out_biz_no\":\"" + one.getOrderNumber() + "\"," + //订单编号 + "\"trans_amount\":" + new BigDecimal(one.getMoney()) + "," + //转账金豆 "\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," + "\"biz_scene\":\"DIRECT_TRANSFER\"," + - "\"order_title\":\""+name.getValue() + "佣金结算"+"\"," + + "\"order_title\":\"" + name.getValue() + "佣金结算" + "\"," + "\"payee_info\":{" + - "\"identity\":\""+one.getZhifubao()+"\"," + //支付宝账号 + "\"identity\":\"" + one.getZhifubao() + "\"," + //支付宝账号 "\"identity_type\":\"ALIPAY_LOGON_ID\"," + - "\"name\":\""+one.getZhifubaoName()+"\"," + //支付宝名称 + "\"name\":\"" + one.getZhifubaoName() + "\"," + //支付宝名称 "}," + - "\"remark\":\""+name.getValue() + "佣金结算"+"\"" + + "\"remark\":\"" + name.getValue() + "佣金结算" + "\"" + "}"); AlipayFundTransUniTransferResponse response = null; response = alipayClient.certificateExecute(request); - log.error("支付宝转账返回值:"+response.getBody()); + log.error("支付宝转账返回值:" + response.getBody()); //如果转账成功 if (AliPayConstants.SUCCESS_CODE.equalsIgnoreCase(response.getCode())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -323,10 +332,10 @@ public class CashController { //更新转账订单 cashOutService.update(one); //查询用户 - UserEntity userInfo=userService.queryByUserId(one.getUserId()); + UserEntity userInfo = userService.queryByUserId(one.getUserId()); if (userInfo != null && userInfo.getOpenId() != null) { //提现通知消息 - cashOutService.cashOutSuccess(userInfo.getOpenId(), one.getOutAt(), one.getMoney(), one.getZhifubao(), commonInfoService.findOne(19).getValue()); + cashOutService.cashOutSuccess(userInfo.getOpenId(), one.getOutAt(), one.getMoney(), one.getZhifubao(), commonInfoService.findOne(19).getValue()); } return Result.success(one.getZhifubaoName() + "转账成功"); @@ -339,7 +348,7 @@ public class CashController { return Result.error(9999, one.getZhifubaoName() + "转账失败!" + e.getMessage()); } - }else if(commonInfo.getValue() != null && commonInfo.getValue().equals("2")){ + } else if (commonInfo.getValue() != null && commonInfo.getValue().equals("2")) { AlipayClient alipayClient = new DefaultAlipayClient(AliPayConstants.REQUEST_URL, commonInfoService.findOne(63).getValue(), commonInfoService.findOne(65).getValue(), AliPayConstants.FORMAT, AliPayConstants.CHARSET, commonInfoService.findOne(64).getValue(), AliPayConstants.SIGNTYPE); @@ -366,10 +375,10 @@ public class CashController { //更新转账订单 cashOutService.update(one); //查询用户 - UserEntity userInfo=userService.queryByUserId(one.getUserId()); + UserEntity userInfo = userService.queryByUserId(one.getUserId()); if (userInfo != null && userInfo.getOpenId() != null) { //推送提现通知消息 - cashOutService.cashOutSuccess(userInfo.getOpenId(), one.getOutAt(), one.getMoney(), one.getZhifubao(),commonInfoService.findOne(19).getValue()); + cashOutService.cashOutSuccess(userInfo.getOpenId(), one.getOutAt(), one.getMoney(), one.getZhifubao(), commonInfoService.findOne(19).getValue()); } return Result.success(one.getZhifubaoName() + "转账成功"); } else { @@ -381,42 +390,41 @@ public class CashController { return Result.error(9999, one.getZhifubaoName() + "转账失败!" + e.getMessage()); } - } else{ + } else { //人工转账后改变状态的 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date now = new Date(); one.setState(1); one.setOutAt(sdf.format(now)); cashOutService.update(one); - UserEntity userInfo=userService.queryByUserId(one.getUserId()); + UserEntity userInfo = userService.queryByUserId(one.getUserId()); if (userInfo != null && userInfo.getOpenId() != null) { //推送提现通知消息 - cashOutService.cashOutSuccess(userInfo.getOpenId(), one.getOutAt(), one.getMoney(), one.getZhifubao(),commonInfoService.findOne(19).getValue()); + cashOutService.cashOutSuccess(userInfo.getOpenId(), one.getOutAt(), one.getMoney(), one.getZhifubao(), commonInfoService.findOne(19).getValue()); } return Result.success(one.getZhifubaoName() + "转账成功"); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); - log.error("转账异常"+e.getMessage(),e); - }finally { + log.error("转账异常" + e.getMessage(), e); + } finally { reentrantReadWriteLock.writeLock().unlock(); } return Result.error("系统繁忙,请稍后再试!"); } - @RequestMapping(value = "/refund/{cashId}/{content}", method = RequestMethod.POST) @ApiOperation("管理平台退款") @ResponseBody - public Result refund(@PathVariable("cashId") Long cashId,@PathVariable("content") String content) { + public Result refund(@PathVariable("cashId") Long cashId, @PathVariable("content") String content) { CashOut one = cashOutService.selectById(cashId); if (one == null) { return Result.error("提现信息不存在"); } //将状态为待提现的退款 - if(one.getState()!=0){ - return Result.error(-100,"状态错误,已经转账或退款!"); + if (one.getState() != 0) { + return Result.error(-100, "状态错误,已经转账或退款!"); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date now = new Date(); @@ -428,36 +436,36 @@ public class CashController { Long userId = one.getUserId(); double v = Double.parseDouble(one.getMoney()); - if(one.getRate()!=null && one.getRate()>0.00){ - v= AmountCalUtils.add(new BigDecimal(v), BigDecimal.valueOf(one.getRate())).doubleValue(); + if (one.getRate() != null && one.getRate() > 0.00) { + v = AmountCalUtils.add(new BigDecimal(v), BigDecimal.valueOf(one.getRate())).doubleValue(); } //将金豆退还 - if(one.getSysUserId()!=null){ - UserMoneyDetails userMoneyDetails=new UserMoneyDetails(); + if (one.getSysUserId() != null) { + UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); userMoneyDetails.setSysUserId(one.getSysUserId()); - userMoneyDetails.setTitle("[退款提醒]提现失败:"+one.getMoney()+",退还手续费:"+one.getRate()+",总退还:"+v); + userMoneyDetails.setTitle("[退款提醒]提现失败:" + one.getMoney() + ",退还手续费:" + one.getRate() + ",总退还:" + v); userMoneyDetails.setContent(content); userMoneyDetails.setType(1); userMoneyDetails.setClassify(2); userMoneyDetails.setMoney(new BigDecimal(v)); userMoneyDetails.setCreateTime(sdf.format(now)); userMoneyDetailsService.save(userMoneyDetails); - userMoneyService.updateSysMoney(1,userId,v); - }else{ + userMoneyService.updateSysMoney(1, userId, v); + } else { UserEntity userInfo = userService.queryByUserId(userId); - UserMoneyDetails userMoneyDetails=new UserMoneyDetails(); + UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); userMoneyDetails.setUserId(userInfo.getUserId()); - userMoneyDetails.setTitle("[退款提醒]提现失败:"+one.getMoney()+",退还手续费:"+one.getRate()+",总退还:"+v); + userMoneyDetails.setTitle("[退款提醒]提现失败:" + one.getMoney() + ",退还手续费:" + one.getRate() + ",总退还:" + v); userMoneyDetails.setContent(content); userMoneyDetails.setType(1); userMoneyDetails.setClassify(2); userMoneyDetails.setMoney(new BigDecimal(v)); userMoneyDetails.setCreateTime(sdf.format(now)); userMoneyDetailsService.save(userMoneyDetails); - inviteMoneyDao.updateInviteMoneyCashOut(1,v,userId); + inviteMoneyDao.updateInviteMoneyCashOut(1, v, userId); if (userInfo.getOpenId() != null) { //推送提现通知消息 - cashOutService.refundSuccess(userInfo, one.getOutAt(), one.getMoney(), commonInfoService.findOne(19).getValue(),content); + cashOutService.refundSuccess(userInfo, one.getOutAt(), one.getMoney(), commonInfoService.findOne(19).getValue(), content); } } return Result.success(); @@ -465,10 +473,16 @@ public class CashController { @GetMapping(value = "/cashMoney") @ApiOperation("发起提现") - public Result cashMoney(Long userId,Double money) - { - return cashOutService.sysCashMoney(userId,money); + public Result cashMoney(Long userId, Double money) { + return cashOutService.sysCashMoney(userId, money); + } + + @Login + @GetMapping(value = "/withdraw") + @ApiOperation("发起提现 余额 金钱") + public Result withdraw(Long userId, Double amount) { + return cashOutService.withdraw(userId, amount, true); } -} \ No newline at end of file +} diff --git a/src/main/java/com/sqx/modules/pay/controller/app/AppCashController.java b/src/main/java/com/sqx/modules/pay/controller/app/AppCashController.java index 72a92906..334b31d3 100644 --- a/src/main/java/com/sqx/modules/pay/controller/app/AppCashController.java +++ b/src/main/java/com/sqx/modules/pay/controller/app/AppCashController.java @@ -24,7 +24,9 @@ import org.springframework.web.bind.annotation.*; @RequestMapping(value = "/app/cash") public class AppCashController { - /** 提现记录 */ + /** + * 提现记录 + */ @Autowired private CashOutService cashOutService; @Autowired @@ -37,41 +39,41 @@ public class AppCashController { @GetMapping(value = "/cashMoney") @ApiOperation("发起提现 余额 金豆") public Result cashMoney(@RequestAttribute("userId") Long userId, Double money) { - return cashOutService.cashMoney(userId,money); + return cashOutService.cashMoney(userId, money); } @Login @GetMapping(value = "/withdraw") @ApiOperation("发起提现 余额 金钱") - public Result withdraw(@RequestAttribute("userId") Long userId,Double amount) { - return cashOutService.withdraw(userId,amount); + public Result withdraw(@RequestAttribute("userId") Long userId, Double amount) { + return cashOutService.withdraw(userId, amount, false); } @Login @RequestMapping(value = "/selectUserRechargeByUserId", method = RequestMethod.GET) @ApiOperation("查询某个用户充值信息列表") @ResponseBody - public Result selectUserRechargeByUserId(int page,int limit,String startTime,String endTime,@RequestAttribute("userId") Long userId,Integer state){ - return Result.success().put("data",payDetailsService.selectPayDetails(page,limit,startTime,endTime,userId,state,null,null)); + public Result selectUserRechargeByUserId(int page, int limit, String startTime, String endTime, @RequestAttribute("userId") Long userId, Integer state) { + return Result.success().put("data", payDetailsService.selectPayDetails(page, limit, startTime, endTime, userId, state, null, null)); } @Login @RequestMapping(value = "/selectPayDetails", method = RequestMethod.GET) @ApiOperation("查询提现记录列表") @ResponseBody - public Result selectHelpProfit(int page,int limit,@RequestAttribute("userId") Long userId){ - CashOut cashOut=new CashOut(); + public Result selectHelpProfit(int page, int limit, @RequestAttribute("userId") Long userId) { + CashOut cashOut = new CashOut(); cashOut.setUserId(userId); - PageUtils pageUtils = cashOutService.selectCashOutList(page,limit,cashOut); - return Result.success().put("data",pageUtils); + PageUtils pageUtils = cashOutService.selectCashOutList(page, limit, cashOut); + return Result.success().put("data", pageUtils); } @Login @ApiOperation("钱包明细") @GetMapping("/queryUserMoneyDetails") - public Result queryUserMoneyDetails(Integer page, Integer limit,@RequestAttribute("userId") Long userId,Integer classify,Integer type) { - return userMoneyDetailsService.queryUserMoneyDetails(page, limit,null, userId,2,type); + public Result queryUserMoneyDetails(Integer page, Integer limit, @RequestAttribute("userId") Long userId, Integer classify, Integer type) { + return userMoneyDetailsService.queryUserMoneyDetails(page, limit, null, userId, 2, type); } -} \ No newline at end of file +} diff --git a/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java b/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java index 63590856..068aeb9f 100644 --- a/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java +++ b/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java @@ -24,10 +24,8 @@ import com.sqx.modules.utils.AliPayOrderUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.SimpleDateFormat; diff --git a/src/main/java/com/sqx/modules/pay/service/CashOutService.java b/src/main/java/com/sqx/modules/pay/service/CashOutService.java index 6439d431..e9c2cb6d 100644 --- a/src/main/java/com/sqx/modules/pay/service/CashOutService.java +++ b/src/main/java/com/sqx/modules/pay/service/CashOutService.java @@ -46,8 +46,8 @@ public interface CashOutService { * * @param userId 用户Id tb_user的id * @param money 提现金额 - * @return + * @param isSys 是否是系统用户提现 */ - Result withdraw(Long userId, Double money); + Result withdraw(Long userId, Double money, boolean isSys); } 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 4c6da45a..6fd77740 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 @@ -87,7 +87,7 @@ public class CashOutServiceImpl extends ServiceImpl impleme List cashOutList = baseMapper.selectCashOutList(cashOut1); ExcelData data = new ExcelData(); data.setName("提现列表"); - List titles = new ArrayList(); + List titles = new ArrayList<>(); titles.add("编号"); titles.add("用户类型"); titles.add("用户名称"); @@ -100,9 +100,9 @@ public class CashOutServiceImpl extends ServiceImpl impleme titles.add("转账/拒绝时间"); titles.add("转账订单号"); data.setTitles(titles); - List> rows = new ArrayList(); + List> rows = new ArrayList<>(); for (CashOut cashOut : cashOutList) { - List row = new ArrayList(); + List row = new ArrayList<>(); row.add(cashOut.getId()); if (cashOut.getUserType() == 1) { row.add("用户"); @@ -186,11 +186,6 @@ public class CashOutServiceImpl extends ServiceImpl impleme /** * 退款成功通知 - * - * @param - * @param date - * @param money - * @param url */ @Override public void refundSuccess(UserEntity userByWxId, String date, String money, String url, String content) { @@ -296,16 +291,17 @@ public class CashOutServiceImpl extends ServiceImpl impleme } //手续费 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) { 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) { //用户金豆足够 + // 提现判断金豆是否足够 金豆=提现金豆+手续费 + Double moneySum = AmountCalUtils.add(new BigDecimal(money), new BigDecimal(mul)).doubleValue(); + // 用户金豆足够 + if (inviteMoney.getMoney() >= moneySum) { //扣除可提现金豆 inviteMoneyService.updateInviteMoneyCashOut(2, moneySum, userId); //增加金豆操作记录 @@ -355,16 +351,17 @@ public class CashOutServiceImpl extends ServiceImpl impleme } //手续费 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) { 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) { //用户金豆足够 + //提现判断金豆是否足够 金豆=提现金豆+手续费 + double moneySum = AmountCalUtils.add(new BigDecimal(money), new BigDecimal(mul)).doubleValue(); + // 用户金豆足够 + if (userMoney.getMoney().doubleValue() >= moneySum) { //扣除可提现金豆 userMoneyService.updateSysMoney(2, userId, moneySum); //增加金豆操作记录 @@ -400,25 +397,46 @@ public class CashOutServiceImpl extends ServiceImpl impleme @Override @Transactional - public Result withdraw(Long userId, Double money) { + public Result withdraw(Long userId, Double money, boolean isSys) { if (money == null || money <= 0.00) { return Result.error("请不要输入小于0的数字,请输入正确的提现金额!"); } - UserEntity userInfo = userService.queryByUserId(userId); - if (StringUtils.isBlank(userInfo.getZhiFuBao()) || StringUtils.isBlank(userInfo.getZhiFuBaoName())) { - return Result.error(9999, "请先绑定支付宝账号!"); + + String alipayAccount; + String alipayName; + + if (isSys) { + SysUserEntity sysUserEntity = sysUserService.getById(userId); + if (StringUtils.isBlank(sysUserEntity.getZhiFuBao()) || StringUtils.isBlank(sysUserEntity.getZhiFuBaoName())) { + return Result.error(9999, "请先绑定支付宝账号!"); + } + alipayAccount = sysUserEntity.getZhiFuBao(); + alipayName = sysUserEntity.getZhiFuBaoName(); + } else { + UserEntity userInfo = userService.queryByUserId(userId); + if (StringUtils.isBlank(userInfo.getZhiFuBao()) || StringUtils.isBlank(userInfo.getZhiFuBaoName())) { + return Result.error(9999, "请先绑定支付宝账号!"); + } + alipayAccount = userInfo.getZhiFuBao(); + alipayName = userInfo.getZhiFuBaoName(); } - //最低提现金额 -// CommonInfo one = commonInfoService.findOne(112); -// if(one!=null && money impleme userMoneyDetails.setClassify(4); userMoneyDetails.setMoney(new BigDecimal(money)); userMoneyDetails.setCreateTime(date); - UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId); + UserMoney userMoney; + if (isSys) { + userMoney = userMoneyService.selectSysUserMoneyByUserId(userId); + } else { + userMoney = userMoneyService.selectUserMoneyByUserId(userId); + } //提现判断余额是否足够 if (userMoney.getAmount().doubleValue() < money) { return Result.success("可提现余额不足!");