From fae05b7ffe899ab996f7a9c31b4c96df7964a0de Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 07 Jul 2020 21:20:55 +0800 Subject: [PATCH] add dingtalk --- src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java | 324 ++++++++++++++++++++++++++++------------------------- 1 files changed, 169 insertions(+), 155 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java b/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java index deabfe7..fd6273b 100644 --- a/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java @@ -6,192 +6,206 @@ import javax.annotation.Resource; +import com.xcong.excoin.utils.ThreadPoolUtils; +import com.xcong.excoin.utils.dingtalk.DingTalkType; import org.springframework.stereotype.Service; +import com.alibaba.druid.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.enumerates.CoinTypeEnum; import com.xcong.excoin.common.response.Result; -import com.xcong.excoin.modules.home.dao.MemberPaymentMethodDao; import com.xcong.excoin.modules.home.dao.MemberQuickBuySaleDao; import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleCommitDto; import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleDto; -import com.xcong.excoin.modules.home.entity.MemberPaymentMethodEntity; import com.xcong.excoin.modules.home.entity.MemberQuickBuySaleEntity; import com.xcong.excoin.modules.home.mapper.MemberQuickBuySaleEntityMapper; import com.xcong.excoin.modules.home.service.MemberQuickBuySaleService; +import com.xcong.excoin.modules.home.vo.MemberQuickBuySaleDetailVo; import com.xcong.excoin.modules.home.vo.MemberQuickBuySaleVo; import com.xcong.excoin.modules.member.dao.MemberDao; +import com.xcong.excoin.modules.member.dao.MemberPaymentMethodDao; import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberPaymentMethodEntity; import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.platform.dao.PlatformPaymentMethodDao; import com.xcong.excoin.modules.platform.entity.PlatformPaymentMethodEntity; @Service -public class MemberQuickBuySaleServiceImpl extends ServiceImpl<MemberQuickBuySaleDao, MemberQuickBuySaleEntity> implements MemberQuickBuySaleService{ - - @Resource - MemberDao memberDao; - @Resource - MemberQuickBuySaleDao memberQuickBuySaleDao; - @Resource - MemberWalletCoinDao memberWalletCoinDao; - @Resource - MemberPaymentMethodDao memberPaymentMethodDao; - @Resource - PlatformPaymentMethodDao platformPaymentMethodDao; +public class MemberQuickBuySaleServiceImpl extends ServiceImpl<MemberQuickBuySaleDao, MemberQuickBuySaleEntity> implements MemberQuickBuySaleService { - @Override - public Result recharge(MemberEntity member,MemberQuickBuySaleDto memberQuickBuySaleDto) { - // 生成订单号 - Long timestamp = System.currentTimeMillis(); - int random = (int) (Math.random() * 10); - String chargeNo = String.valueOf(timestamp).substring(2) + random; - // 插入订单表 - MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity(); - memberQuickBuySaleEntity.setOrderStatus(1); - memberQuickBuySaleEntity.setMemberId(member.getId()); - memberQuickBuySaleEntity.setAmountUsdt(memberQuickBuySaleDto.getAmountUsdt()); - memberQuickBuySaleEntity.setAmountCny(memberQuickBuySaleDto.getAmountCny()); - memberQuickBuySaleEntity.setCreateTime(new Date()); - memberQuickBuySaleEntity.setOrderNo(chargeNo); - memberQuickBuySaleEntity.setOrderType("B"); - // 支付码 ID+四位随机数 - int ran = (int) (Math.random() * 10000000); - memberQuickBuySaleEntity.setPaymentCode(ran + ""); - - // 收款信息 - QueryWrapper<PlatformPaymentMethodEntity> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("status", "1"); - List<PlatformPaymentMethodEntity> paymentMethodList = platformPaymentMethodDao.selectList(queryWrapper); - // 随机一个 - if (CollectionUtils.isEmpty(paymentMethodList)) { - return Result.fail("收款方式为空"); - } -// int total = paymentMethodList.size(); -// int index = (int) (Math.random() * total); -// PlatformPaymentMethodEntity paymemtMethod = paymentMethodList.get(index); -// memberQuickBuySaleEntity.setPaymentName(paymemtMethod.getName()); -// memberQuickBuySaleEntity.setPaymentAccount(paymemtMethod.getAccount()); - memberQuickBuySaleDao.insert(memberQuickBuySaleEntity); - MemberQuickBuySaleVo memberQuickBuySaleVo = new MemberQuickBuySaleVo(); - memberQuickBuySaleVo.setId(memberQuickBuySaleEntity.getId()); - memberQuickBuySaleVo.setPlatforPaymentMethodList(paymentMethodList); - // 返回前台付款方式 -// memberQuickBuySaleVo.setPlatforPaymentMethodList(paymentMethodList); -// memberQuickBuySaleEntity.setReceiveMethod(payMethodList.get(index)); - // 返回前台付款方式 -// memberChargeUsdt.setReceiveMethod(payMethodList.get(index)); - return Result.ok(memberQuickBuySaleVo); - } + @Resource + MemberDao memberDao; + @Resource + MemberQuickBuySaleDao memberQuickBuySaleDao; + @Resource + MemberWalletCoinDao memberWalletCoinDao; + @Resource + MemberPaymentMethodDao memberPaymentMethodDao; + @Resource + PlatformPaymentMethodDao platformPaymentMethodDao; - @Override - public Result commitPay(MemberQuickBuySaleCommitDto memberQuickBuySaleCommitDto) { - // 用户提交支付确认 将状态改为付款中 - MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity(); - memberQuickBuySaleEntity.setId(memberQuickBuySaleCommitDto.getId()); - memberQuickBuySaleEntity.setOrderStatus(2); - memberQuickBuySaleEntity.setPaymentAccount(memberQuickBuySaleCommitDto.getPaymentAccount()); - memberQuickBuySaleEntity.setPaymentName(memberQuickBuySaleCommitDto.getPaymentName()); + @Override + public Result recharge(MemberEntity member, MemberQuickBuySaleDto memberQuickBuySaleDto) { + // 生成订单号 + Long timestamp = System.currentTimeMillis(); + int random = (int) (Math.random() * 10); + String chargeNo = String.valueOf(timestamp).substring(2) + random; + // 插入订单表 + MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity(); + memberQuickBuySaleEntity.setOrderStatus(1); + memberQuickBuySaleEntity.setMemberId(member.getId()); + memberQuickBuySaleEntity.setAmountUsdt(memberQuickBuySaleDto.getAmountUsdt()); + memberQuickBuySaleEntity.setAmountCny(memberQuickBuySaleDto.getAmountCny()); + memberQuickBuySaleEntity.setUnitPrice(memberQuickBuySaleDto.getUnitPrice()); + memberQuickBuySaleEntity.setCreateTime(new Date()); + memberQuickBuySaleEntity.setOrderNo(chargeNo); + memberQuickBuySaleEntity.setOrderType("B"); + // 支付码 ID+四位随机数 + int ran = (int) (Math.random() * 10000000); + memberQuickBuySaleEntity.setPaymentCode(ran + ""); - memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity); + memberQuickBuySaleDao.insert(memberQuickBuySaleEntity); + MemberQuickBuySaleVo memberQuickBuySaleVo = new MemberQuickBuySaleVo(); + memberQuickBuySaleVo.setId(memberQuickBuySaleEntity.getId()); + // 返回前台付款方式 + return Result.ok("提交成功", memberQuickBuySaleVo); + } - // TODO dingtalk - - return Result.ok("确认成功"); - } + @Override + public Result commitPay(MemberQuickBuySaleCommitDto memberQuickBuySaleCommitDto) { + // 用户提交支付确认 将状态改为付款中 + MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity(); + memberQuickBuySaleEntity.setId(memberQuickBuySaleCommitDto.getId()); + memberQuickBuySaleEntity.setOrderStatus(2); + memberQuickBuySaleEntity.setPaymentAccount(memberQuickBuySaleCommitDto.getPaymentAccount()); + memberQuickBuySaleEntity.setPaymentName(memberQuickBuySaleCommitDto.getPaymentName()); - @Override - public Result selectById(Long id) { - MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectById(id); - MemberQuickBuySaleVo memberQuickBuySaleVo = MemberQuickBuySaleEntityMapper.INSTANCE.entityToVo(memberQuickBuySaleEntity); - long startTime = memberQuickBuySaleEntity.getCreateTime().getTime(); - long nowTime = new Date().getTime(); - long third = 30*60*1000; - memberQuickBuySaleVo.setTimeLeft((third-nowTime+startTime)/1000); - return Result.ok(memberQuickBuySaleVo); - } + memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity); - @Override - public Result sell(MemberEntity member,MemberQuickBuySaleDto memberQuickBuySaleDto) { - // 判断是否存在足够余额 - MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString()); - // 判断是否存在足够余额 - if(walletCoin ==null) { - return Result.fail("您当前可用USDT额度不够"); - } - BigDecimal extractUsdt = memberQuickBuySaleDto.getAmountUsdt(); - if (extractUsdt == null) { - return Result.fail("请输入提币量"); - } - // 判断是否足够 - System.out.println("提币数:"+extractUsdt.doubleValue()+" 可用:"+walletCoin.getAvailableBalance()); - if (extractUsdt.compareTo(walletCoin.getAvailableBalance())==1) { - return Result.fail("您当前可用USDT额度不够"); - } + ThreadPoolUtils.sendDingTalk(1); + return Result.ok("确认成功"); + } + @Override + public Result selectById(Long id) { + MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectById(id); + MemberQuickBuySaleDetailVo memberQuickBuySaleDetailVo = MemberQuickBuySaleEntityMapper.INSTANCE.entityToVo(memberQuickBuySaleEntity); + // 收款信息 + QueryWrapper<PlatformPaymentMethodEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("status", "1"); + List<PlatformPaymentMethodEntity> paymentMethodList = platformPaymentMethodDao.selectList(queryWrapper); + // 随机一个 + if (CollectionUtils.isEmpty(paymentMethodList)) { + return Result.fail("收款方式为空"); + } + memberQuickBuySaleDetailVo.setPlatforPaymentMethodList(paymentMethodList); + long startTime = memberQuickBuySaleEntity.getCreateTime().getTime(); + long nowTime = new Date().getTime(); + long third = 30 * 60 * 1000; + memberQuickBuySaleDetailVo.setTimeLeft((third - nowTime + startTime) / 1000); + return Result.ok(memberQuickBuySaleDetailVo); + } - // 判断是否存在收款方式 - List<MemberPaymentMethodEntity> payMentMethodList = memberPaymentMethodDao.selectByMemberId(member.getId()); - if(CollectionUtils.isEmpty(payMentMethodList)){ - return Result.fail("请配置收款方式"); - } - // 冻结可用额度 - int i = memberWalletCoinDao.updateFrozenBalance(member.getId(), - walletCoin.getId(), extractUsdt); - if (i <= 0) { - return Result.fail("可用USDT余额不足"); - } - - // 生成订单号 - Long timestamp = System.currentTimeMillis(); - int random = (int) (Math.random() * 10); - String chargeNo = String.valueOf(timestamp).substring(2) + random; - // 插入订单表 - MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity(); - memberQuickBuySaleEntity.setOrderStatus(1); - memberQuickBuySaleEntity.setMemberId(member.getId()); - memberQuickBuySaleEntity.setAmountUsdt(memberQuickBuySaleDto.getAmountUsdt()); - memberQuickBuySaleEntity.setAmountCny(memberQuickBuySaleDto.getAmountCny()); - memberQuickBuySaleEntity.setOrderNo(chargeNo); - memberQuickBuySaleEntity.setOrderType("S"); - // 支付码 ID+四位随机数 - int ran = (int) (Math.random() * 10000000); - memberQuickBuySaleEntity.setPaymentCode(ran + ""); - - memberQuickBuySaleDao.insert(memberQuickBuySaleEntity); + @Override + public Result selectAll(String type) { + MemberEntity member = LoginUserUtils.getAppLoginUser(); + QueryWrapper<MemberQuickBuySaleEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("member_id", member.getId()); + if (!StringUtils.isEmpty(type)) { + queryWrapper.eq("order_type", type); + } + queryWrapper.orderByDesc("id"); + List<MemberQuickBuySaleEntity> memberQuickBuySaleEntityList = memberQuickBuySaleDao.selectList(queryWrapper); + List<MemberQuickBuySaleDetailVo> memberQuickBuySaleDetailVoList = MemberQuickBuySaleEntityMapper.INSTANCE.entityListToVoList(memberQuickBuySaleEntityList); + return Result.ok(memberQuickBuySaleDetailVoList); + } - // TODO dingtalk - - return Result.ok("下单成功"); - } + @Override + public Result sell(MemberEntity member, MemberQuickBuySaleDto memberQuickBuySaleDto) { + // 判断是否存在足够余额 + MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(), CoinTypeEnum.USDT.toString()); + // 判断是否存在足够余额 + if (walletCoin == null) { + return Result.fail("您当前可用USDT额度不够"); + } + BigDecimal extractUsdt = memberQuickBuySaleDto.getAmountUsdt(); + if (extractUsdt == null) { + return Result.fail("请输入提币量"); + } + // 判断是否足够 + System.out.println("提币数:" + extractUsdt.doubleValue() + " 可用:" + walletCoin.getAvailableBalance()); + if (extractUsdt.compareTo(walletCoin.getAvailableBalance()) == 1) { + return Result.fail("您当前可用USDT额度不够"); + } - @Override - public Result cancelRecharge(Long id) { - // 获取当前登录用户 - MemberEntity member = LoginUserUtils.getAppLoginUser(); - if(member==null) { - return Result.fail("登录用户已失效"); - } - MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(id,member.getId()); - memberQuickBuySaleEntity.setOrderStatus(1); - memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity); - - // 判断是否存在足够余额 - MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString()); - boolean flag = true; - while(flag) { - walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(memberQuickBuySaleEntity.getAmountUsdt())); - walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(memberQuickBuySaleEntity.getAmountUsdt())); - int i = memberWalletCoinDao.updateById(walletCoin); - if(i>0) { - flag = false; - } - walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString()); - } - return Result.ok("成功"); - } + // 判断是否存在收款方式 + List<MemberPaymentMethodEntity> payMentMethodList = memberPaymentMethodDao.selectByMemberId(member.getId()); + if (CollectionUtils.isEmpty(payMentMethodList)) { + return Result.fail("请配置收款方式"); + } + // 冻结可用额度 + int i = memberWalletCoinDao.updateFrozenBalance(member.getId(), + walletCoin.getId(), extractUsdt); + if (i <= 0) { + return Result.fail("可用USDT余额不足"); + } + + // 生成订单号 + Long timestamp = System.currentTimeMillis(); + int random = (int) (Math.random() * 10); + String chargeNo = String.valueOf(timestamp).substring(2) + random; + // 插入订单表 + MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity(); + memberQuickBuySaleEntity.setOrderStatus(1); + memberQuickBuySaleEntity.setMemberId(member.getId()); + memberQuickBuySaleEntity.setAmountUsdt(memberQuickBuySaleDto.getAmountUsdt()); + memberQuickBuySaleEntity.setAmountCny(memberQuickBuySaleDto.getAmountCny()); + memberQuickBuySaleEntity.setOrderNo(chargeNo); + memberQuickBuySaleEntity.setOrderType("S"); + // 支付码 ID+四位随机数 + int ran = (int) (Math.random() * 10000000); + memberQuickBuySaleEntity.setPaymentCode(ran + ""); + + memberQuickBuySaleDao.insert(memberQuickBuySaleEntity); + + ThreadPoolUtils.sendDingTalk(2); + return Result.ok("下单成功"); + } + + @Override + public Result cancelRecharge(Long id) { + // 获取当前登录用户 + MemberEntity member = LoginUserUtils.getAppLoginUser(); + MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(member.getId(), id); + memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER); + memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity); + return Result.ok("成功"); + } + + @Override + public Result cancelSell(Long id) { + // 获取当前登录用户 + MemberEntity member = LoginUserUtils.getAppLoginUser(); + MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(member.getId(), id); + if (memberQuickBuySaleEntity != null) { + memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER); + memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity); + + MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(), CoinTypeEnum.USDT.toString()); + // 冻结资金返回可用 + int i = memberWalletCoinDao.subFrozenBalance(member.getId(), + walletCoin.getId(), memberQuickBuySaleEntity.getAmountUsdt()); + if (i < 0) { + return Result.fail("撤单失败"); + } + return Result.ok("成功"); + } else { + return Result.fail("订单不存在"); + } + + } } -- Gitblit v1.9.1