From f1ad6e801cc68cfe90efb620df3484293044aea3 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 12 May 2021 18:08:22 +0800 Subject: [PATCH] Merge branch 'yunding' of http://120.27.238.55:7000/r/exchange into yunding --- src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java | 121 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 114 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java index 918e357..c8e1d61 100644 --- a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java @@ -6,7 +6,6 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -14,12 +13,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.response.Result; +import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao; +import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.yunding.dao.YdBasicSettingDao; import com.xcong.excoin.modules.yunding.dao.YdOrderDao; import com.xcong.excoin.modules.yunding.dao.YdProductDao; +import com.xcong.excoin.modules.yunding.dto.InsureChangeUsdtDto; import com.xcong.excoin.modules.yunding.dto.PayProductDto; import com.xcong.excoin.modules.yunding.dto.YdOrderListDto; import com.xcong.excoin.modules.yunding.dto.YdProductListDto; @@ -27,10 +29,7 @@ import com.xcong.excoin.modules.yunding.entity.YdOrderEntity; import com.xcong.excoin.modules.yunding.entity.YdProductEntity; import com.xcong.excoin.modules.yunding.service.YunDingService; -import com.xcong.excoin.modules.yunding.vo.OrderAllInfoVo; -import com.xcong.excoin.modules.yunding.vo.YdBasicSettingVo; -import com.xcong.excoin.modules.yunding.vo.YdOrderVo; -import com.xcong.excoin.modules.yunding.vo.YdProductVo; +import com.xcong.excoin.modules.yunding.vo.*; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -54,6 +53,9 @@ private YdOrderDao ydOrderDao; @Resource private MemberWalletCoinDao memberWalletCoinDao; + + @Resource + private MemberAccountMoneyChangeDao memberAccountMoneyChangeDao; @Override public Result findAllInfo() { @@ -249,7 +251,7 @@ MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); Long memberId = memberEntity.getId(); -// Long memberId = 28L; +// Long memberId = 442L; OrderAllInfoVo orderAllInfoVo = new OrderAllInfoVo(); DecimalFormat decimalFormat = new DecimalFormat("0.0000#"); //历史总收益 @@ -282,7 +284,7 @@ QueryWrapper<YdOrderEntity> powerReradyQuery = new QueryWrapper<>(); powerReradyQuery.eq("member_id",memberId); powerReradyQuery.eq("state",YdOrderEntity.ORDER_STATE_READY); - List<YdOrderEntity> PowerReradyQuery = ydOrderDao.selectList(powerNowQuery); + List<YdOrderEntity> PowerReradyQuery = ydOrderDao.selectList(powerReradyQuery); if(CollUtil.isNotEmpty(PowerReradyQuery)){ for(YdOrderEntity order : PowerReradyQuery){ int quantity = order.getQuantity(); @@ -290,9 +292,114 @@ } } orderAllInfoVo.setPowerReady(powerReady); + //昨日总收益 + BigDecimal lastdayProfit = BigDecimal.ZERO; + Date date = DateUtil.date(); + Date dateTime = DateUtil.offsetDay(date, 1); + QueryWrapper<MemberAccountMoneyChange> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("type",4); + queryWrapper.eq("member_id",memberId); + queryWrapper.eq("status",1); + queryWrapper.like("create_time",DateUtil.formatDate(dateTime)); + List<MemberAccountMoneyChange> memberAccountMoneyChanges = memberAccountMoneyChangeDao.selectList(queryWrapper); + if(CollUtil.isNotEmpty(memberAccountMoneyChanges)){ + for(MemberAccountMoneyChange memberAccountMoneyChange : memberAccountMoneyChanges){ + BigDecimal amount = memberAccountMoneyChange.getAmount(); + lastdayProfit = lastdayProfit.add(amount); + } + } + orderAllInfoVo.setLastdayProfit(decimalFormat.format(lastdayProfit)); return Result.ok(orderAllInfoVo); } + @Override + public Result getOrderInfo(Long id) { + + log.info("获取订单详情"); + MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); + Long memberId = memberEntity.getId(); + YdOrderVo ydOrderVo = ydOrderDao.selectOrderByMemberIdAndId(memberId,id); + return Result.ok(ydOrderVo); + } + + @Override + public Result changeUsdt() { + log.info("转换成USDT"); + MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); + Long memberId = memberEntity.getId(); + ChangeVo changeVo = new ChangeVo(); + BigDecimal currentPrice = BigDecimal.ZERO; + Wrapper<YdBasicSettingEntity> queryWrapper = new QueryWrapper<>(); + List<YdBasicSettingEntity> ydBasicSettingEntities = ydBasicSettingDao.selectList(queryWrapper); + if(CollUtil.isNotEmpty(ydBasicSettingEntities)){ + YdBasicSettingEntity ydBasicSettingEntity = ydBasicSettingEntities.get(0); + if(ObjectUtil.isNotEmpty(ydBasicSettingEntity)){ + //获取当前价 + currentPrice = ydBasicSettingEntity.getCurrentPrice(); + if(ObjectUtil.isNotEmpty(currentPrice)){ + changeVo.setCurrentPrice(currentPrice); + } + BigDecimal changeXch = ydBasicSettingEntity.getChangeXch(); + if(ObjectUtil.isNotEmpty(changeXch)){ + changeVo.setChangeXchRadio(changeXch); + } + } + } + //获取可用 + MemberWalletCoinEntity xch = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, "XCH"); + if(ObjectUtil.isNotEmpty(xch)){ + BigDecimal availableBalance = xch.getAvailableBalance(); + changeVo.setXchAvailableBalance(availableBalance.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO:availableBalance); + } + return Result.ok(changeVo); + } + + @Override + @Transactional + public Result insureChangeUsdt(InsureChangeUsdtDto insureChangeUsdtdto) { + log.info("转换成USDT"); + MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); + Long memberId = memberEntity.getId(); + /** + * 验证入参 + * + * USDT账户增加 + * XCH账户减少 + */ + BigDecimal xchNum = insureChangeUsdtdto.getXchNum(); + if(BigDecimal.ZERO.compareTo(xchNum) >= 0){ + return Result.fail("请输入正确的数量"); + } + BigDecimal currentPrice = insureChangeUsdtdto.getCurrentPrice(); + if(BigDecimal.ZERO.compareTo(currentPrice) >= 0){ + return Result.fail("XCH价格异常,请重试"); + } + MemberWalletCoinEntity xch = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, "XCH"); + BigDecimal totalBalance = xch.getTotalBalance(); + BigDecimal subtractTotalBalance = totalBalance.subtract(xchNum); + if(BigDecimal.ZERO.compareTo(subtractTotalBalance) >= 0){ + return Result.fail("XCH数量不足"); + } + + BigDecimal availableBalance = xch.getAvailableBalance(); + BigDecimal subtractAvailableBalance = availableBalance.subtract(xchNum); + if(BigDecimal.ZERO.compareTo(subtractAvailableBalance) >= 0){ + return Result.fail("XCH数量不足"); + } + //xch减少 + xch.setTotalBalance(subtractTotalBalance); + xch.setAvailableBalance(subtractAvailableBalance); + memberWalletCoinDao.updateById(xch); + + //USDT账户增加 + BigDecimal multiply = xchNum.multiply(currentPrice); + MemberWalletCoinEntity usdt = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, "USDT"); + usdt.setTotalBalance(usdt.getTotalBalance().add(multiply)); + usdt.setAvailableBalance(usdt.getAvailableBalance().add(multiply)); + memberWalletCoinDao.updateById(usdt); + return Result.ok("操作成功"); + } + /** * 去加减币币账户余额,减少产品的剩余数目 * @param memberId -- Gitblit v1.9.1