From c5dc67c4453e6b0e616f38d7395e4736fa813931 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 31 May 2020 22:41:59 +0800
Subject: [PATCH] 20200531 代码提交
---
src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java | 160 ++++++++++++++++++++++++++++++++++-------------------
1 files changed, 102 insertions(+), 58 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 567c560..401e7ac 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
@@ -9,28 +9,30 @@
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 cn.hutool.crypto.SecureUtil;
-import lombok.extern.slf4j.Slf4j;
+import com.xcong.excoin.modules.platform.dao.PlatformPaymentMethodDao;
+import com.xcong.excoin.modules.platform.entity.PlatformPaymentMethodEntity;
@Service
-@Slf4j
public class MemberQuickBuySaleServiceImpl extends ServiceImpl<MemberQuickBuySaleDao, MemberQuickBuySaleEntity> implements MemberQuickBuySaleService{
@Resource
@@ -41,45 +43,22 @@
MemberWalletCoinDao memberWalletCoinDao;
@Resource
MemberPaymentMethodDao memberPaymentMethodDao;
+ @Resource
+ PlatformPaymentMethodDao platformPaymentMethodDao;
@Override
- public Result recharge(MemberQuickBuySaleDto memberQuickBuySaleDto) {
-
- log.info("入参----->{}", memberQuickBuySaleDto);
- //获取用户ID
- Long memberId = LoginUserUtils.getAppLoginUser().getId();
- MemberEntity member = memberDao.selectById(memberId);
- log.info("查询到的会员----->{}", member);
- // 验证是否实名认证
- if (MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) {
- return Result.fail("请先实名认证");
- }
- String tradePasswordWeb = memberQuickBuySaleDto.getTradePassword();
-
- // 验证支付密码
- String tradePassword = member.getTradePassword();
-
- log.info("入参交易密码{},用户设置的交易密码{}", tradePasswordWeb,tradePassword);
- if (StringUtils.isEmpty(tradePassword)) {
- return Result.fail("请先配置交易密码");
- }
- if (StringUtils.isEmpty(tradePasswordWeb)) {
- return Result.fail("请输入交易密码");
- }
- // System.out.println("交易密码:"+MD5.GetMD5Code(tradePasswordWeb)+" tradePassword =
- // "+tradePassword);
- // 验证交易密码
- if (!tradePassword.equals(SecureUtil.md5(tradePasswordWeb))) {
- return Result.fail("请输入正确的交易密码");
- }
+ 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(memberQuickBuySaleEntity.CHARGE_STATUS_CREATE);
- memberQuickBuySaleEntity.setMemberId(memberId);
+ 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");
@@ -88,9 +67,10 @@
memberQuickBuySaleEntity.setPaymentCode(ran + "");
memberQuickBuySaleDao.insert(memberQuickBuySaleEntity);
+ MemberQuickBuySaleVo memberQuickBuySaleVo = new MemberQuickBuySaleVo();
+ memberQuickBuySaleVo.setId(memberQuickBuySaleEntity.getId());
// 返回前台付款方式
-// memberChargeUsdt.setReceiveMethod(payMethodList.get(index));
- return Result.ok("购买成功,请及时付款");
+ return Result.ok(memberQuickBuySaleVo);
}
@Override
@@ -98,7 +78,7 @@
// 用户提交支付确认 将状态改为付款中
MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity();
memberQuickBuySaleEntity.setId(memberQuickBuySaleCommitDto.getId());
- memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_PAID);
+ memberQuickBuySaleEntity.setOrderStatus(2);
memberQuickBuySaleEntity.setPaymentAccount(memberQuickBuySaleCommitDto.getPaymentAccount());
memberQuickBuySaleEntity.setPaymentName(memberQuickBuySaleCommitDto.getPaymentName());
@@ -112,30 +92,100 @@
@Override
public Result selectById(Long id) {
MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectById(id);
- MemberQuickBuySaleVo memberQuickBuySaleVo = MemberQuickBuySaleEntityMapper.INSTANCE.entityToVo(memberQuickBuySaleEntity);
+ 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;
- memberQuickBuySaleVo.setTimeLeft((third-nowTime+startTime)/1000);
- return Result.ok(memberQuickBuySaleVo);
+ memberQuickBuySaleDetailVo.setTimeLeft((third-nowTime+startTime)/1000);
+ return Result.ok(memberQuickBuySaleDetailVo);
+ }
+
+ @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);
}
-
+ @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额度不够");
+ }
+
+ // 判断是否存在收款方式
+ 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);
+
+ // TODO dingtalk
+
+ return Result.ok("下单成功");
+ }
@Override
public Result cancelRecharge(Long id) {
// 获取当前登录用户
- Long memberId = LoginUserUtils.getAppLoginUser().getId();
- MemberEntity member = memberDao.selectById(memberId);
- if(memberId==null) {
- return Result.fail("登录用户已失效");
- }
- MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectById(id);
+ MemberEntity member = LoginUserUtils.getAppLoginUser();
+ MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(member.getId(),id);
memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER);
memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
// 判断是否存在足够余额
- MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(id,"USDT");
+ MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString());
boolean flag = true;
while(flag) {
walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(memberQuickBuySaleEntity.getAmountUsdt()));
@@ -144,14 +194,8 @@
if(i>0) {
flag = false;
}
- walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(id,"USDT");
+ walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString());
}
return Result.ok("成功");
- }
-
- @Override
- public Result sell() {
- // TODO Auto-generated method stub
- return null;
}
}
--
Gitblit v1.9.1