From 629f5bdc2982e83fe13812f3a44a910ced630a00 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 15 Apr 2021 10:18:41 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/common/contants/AppContants.java | 1 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 32 ++++++++++------ src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java | 53 ++++++++++++-------------- src/main/java/com/xcong/excoin/modules/coin/service/CoinService.java | 2 + src/main/java/com/xcong/excoin/common/system/controller/LoginController.java | 21 ++++++++++ 5 files changed, 68 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/xcong/excoin/common/contants/AppContants.java b/src/main/java/com/xcong/excoin/common/contants/AppContants.java index cd8cc00..75ca5b0 100644 --- a/src/main/java/com/xcong/excoin/common/contants/AppContants.java +++ b/src/main/java/com/xcong/excoin/common/contants/AppContants.java @@ -93,6 +93,7 @@ public static final String BASE_URL_L1 = "http://124.70.205.195"; public static final String BASE_URL_L2 = "http://123.60.45.251"; + public static final BigDecimal BASE_MIN_AMOUNT = new BigDecimal(100); } diff --git a/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java b/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java index be1db93..6645b6d 100644 --- a/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java +++ b/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java @@ -1,6 +1,7 @@ package com.xcong.excoin.common.system.controller; import cn.hutool.core.codec.Base64; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; @@ -12,6 +13,7 @@ import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.annotations.SubmitRepeat; import com.xcong.excoin.common.contants.AppContants; +import com.xcong.excoin.common.enumerates.CoinTypeEnum; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.common.system.bean.LoginUserBean; import com.xcong.excoin.common.system.dto.LoginDto; @@ -19,12 +21,19 @@ import com.xcong.excoin.common.system.vo.MemberInfoVo; import com.xcong.excoin.configurations.properties.ApplicationProperties; import com.xcong.excoin.configurations.properties.SecurityProperties; +import com.xcong.excoin.modules.coin.service.CoinService; +import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; +import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; +import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; import com.xcong.excoin.modules.member.service.MemberService; +import com.xcong.excoin.utils.CoinTypeConvert; import com.xcong.excoin.utils.RedisUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; @@ -34,7 +43,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -60,6 +71,9 @@ @Resource private AuthenticationManagerBuilder authenticationManagerBuilder; + + @Autowired + private CoinService coinService; @Resource private RedisUtils redisUtils; @@ -113,7 +127,12 @@ authInfo.put("user", memberInfoVo); } - authInfo.put("baseUrl", AppContants.BASE_URL_L2); + BigDecimal total = coinService.getAllWalletAmount(memberEntity.getId()); + if (total.compareTo(AppContants.BASE_MIN_AMOUNT) > 0) { + authInfo.put("baseUrl", AppContants.BASE_URL_L2); + } else { + authInfo.put("baseUrl", AppContants.BASE_URL_L1); + } return Result.ok("success", authInfo); } diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/CoinService.java b/src/main/java/com/xcong/excoin/modules/coin/service/CoinService.java index 7722fdf..3e02b27 100644 --- a/src/main/java/com/xcong/excoin/modules/coin/service/CoinService.java +++ b/src/main/java/com/xcong/excoin/modules/coin/service/CoinService.java @@ -52,4 +52,6 @@ public Result coinInList(@Valid CoinInListDto coinInListDto); + public BigDecimal getAllWalletAmount(Long memberId); + } diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java index ed5539c..225a193 100644 --- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java @@ -1112,33 +1112,30 @@ return Result.fail(MessageSourceUtils.getString("member_controller_0005")); } - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @Override + public BigDecimal getAllWalletAmount(Long memberId) { + List<MemberWalletCoinEntity> memberWalletCoinList = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId); + BigDecimal total = BigDecimal.ZERO; + if (CollUtil.isNotEmpty(memberWalletCoinList)) { + for (MemberWalletCoinEntity memberWalletCoinEntity : memberWalletCoinList) { + if (memberWalletCoinEntity.getWalletCode().equals(CoinTypeEnum.USDT.name())) { + total = total.add(memberWalletCoinEntity.getTotalBalance()); + } else { + BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(memberWalletCoinEntity.getWalletCode() + "/USDT"))); + total = total.add(memberWalletCoinEntity.getTotalBalance().multiply(newPrice)); + } + } + } + + MemberWalletContractEntity contractWallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name()); + total = total.add(contractWallet.getTotalBalance()); + + MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, CoinTypeEnum.USDT.name()); + if (walletAgent != null) { + total = total.add(walletAgent.getTotalBalance()); + } + return total; + } } diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java index 576bac9..c3f9a97 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java @@ -15,6 +15,7 @@ import com.xcong.excoin.common.enumerates.RabbitPriceTypeEnum; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.common.system.service.CommonService; +import com.xcong.excoin.modules.coin.service.CoinService; import com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao; import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao; import com.xcong.excoin.modules.contract.dao.ContractOrderDao; @@ -108,6 +109,9 @@ @Autowired private FollowProducer followProducer; + @Autowired + private CoinService coinService; + @Transactional(rollbackFor = Exception.class) @Override public Result submitOrder(SubmitOrderDto submitOrderDto) { @@ -121,6 +125,14 @@ return Result.loading("loading_type"); } + BigDecimal total = coinService.getAllWalletAmount(memberIdLong); + Map<String, Object> data = new HashMap<>(); + if (total.compareTo(AppContants.BASE_MIN_AMOUNT) > 0) { + data.put("baseUrl", AppContants.BASE_URL_L2); + } else { + data.put("baseUrl", AppContants.BASE_URL_L1); + } + // 判断当前对应的持仓/委托 if (memberEntity.getContractPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) { List<ContractHoldOrderEntity> holdList = contractHoldOrderDao.selectMemberHoldOrderByPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ALL, memberEntity.getId()); @@ -130,7 +142,9 @@ } // 逐仓逻辑 - return doPositionTypeForAdd(submitOrderDto, memberEntity); + Result result = doPositionTypeForAdd(submitOrderDto, memberEntity); + result.setData(data); + return result; } else { List<ContractHoldOrderEntity> holdList = contractHoldOrderDao.selectMemberHoldOrderByPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ADD, memberEntity.getId()); List<ContractEntrustOrderEntity> entrustList = contractEntrustOrderDao.selectMemberEntrustOrderByPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ADD, memberEntity.getId()); @@ -139,7 +153,9 @@ } // 全仓逻辑 - return doPositionTypeForWhole(submitOrderDto, memberEntity); + Result result = doPositionTypeForWhole(submitOrderDto, memberEntity); + result.setData(data); + return result; } } @@ -281,11 +297,7 @@ ThreadPoolUtils.sendWholePrice(memberEntity.getId()); // 提交成功 - Result result = Result.ok(MessageSourceUtils.getString("member_service_0024")); - Map<String, Object> data = new HashMap<>(); - data.put("baseUrl", AppContants.BASE_URL_L2); - result.setData(data); - return result; + return Result.ok(MessageSourceUtils.getString("member_service_0024")); } // 提交失败 return Result.fail(MessageSourceUtils.getString("member_service_0067")); @@ -393,11 +405,7 @@ // ThreadPoolUtils.sendFollowOrderTask(holdOrderEntity.getId()); } // 提交成功 - Result result = Result.ok(MessageSourceUtils.getString("member_service_0024")); - Map<String, Object> data = new HashMap<>(); - data.put("baseUrl", AppContants.BASE_URL_L2); - result.setData(data); - return result; + return Result.ok(MessageSourceUtils.getString("member_service_0024")); } // 提交失败 return Result.fail(MessageSourceUtils.getString("member_service_0067")); -- Gitblit v1.9.1