From a7b8fd2b18e652730cd4e48da61adee89564b4b6 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 13 Aug 2020 11:08:10 +0800 Subject: [PATCH] merge master --- src/main/java/com/xcong/excoin/modules/member/dao/MemberSettingDao.java | 19 ++ src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java | 34 ++++ src/test/java/com/xcong/excoin/MemberSettingTest.java | 51 +++++++ src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 10 + src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 20 +- src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java | 11 + src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 165 ++++++++++++++--------- src/main/resources/mapper/member/MemberSettingDao.xml | 38 +++++ src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java | 16 ++ src/main/java/com/xcong/excoin/utils/CalculateUtil.java | 10 + src/main/java/com/xcong/excoin/configurations/security/WebSecurityConfig.java | 2 src/main/java/com/xcong/excoin/modules/member/service/MemberService.java | 2 12 files changed, 290 insertions(+), 88 deletions(-) diff --git a/src/main/java/com/xcong/excoin/configurations/security/WebSecurityConfig.java b/src/main/java/com/xcong/excoin/configurations/security/WebSecurityConfig.java index c260ad1..738836c 100644 --- a/src/main/java/com/xcong/excoin/configurations/security/WebSecurityConfig.java +++ b/src/main/java/com/xcong/excoin/configurations/security/WebSecurityConfig.java @@ -49,7 +49,7 @@ .antMatchers("/api/member/getMemberAccountInfo").permitAll() .antMatchers("/api/member/memberForgetPwd").permitAll() .antMatchers("/api/member/memberCoinInfoList").permitAll() - .antMatchers("/api/member/getAppVersionInfo").permitAll() + .antMatchers("/api/member/getPcVersionInfo").permitAll() .antMatchers("/api/orderCoin/searchSymbolResultList").permitAll() .antMatchers("/api/orderCoin/findCollect").permitAll() .antMatchers("/api/orderCoin/findCollect").permitAll() 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 4857cdb..897f993 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 @@ -29,11 +29,9 @@ import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; import com.xcong.excoin.modules.member.dao.MemberDao; import com.xcong.excoin.modules.member.dao.MemberLevelRateDao; +import com.xcong.excoin.modules.member.dao.MemberSettingDao; import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; -import com.xcong.excoin.modules.member.entity.AgentReturnEntity; -import com.xcong.excoin.modules.member.entity.MemberEntity; -import com.xcong.excoin.modules.member.entity.MemberLevelRateEntity; -import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; +import com.xcong.excoin.modules.member.entity.*; import com.xcong.excoin.modules.platform.dao.TradeSettingDao; import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; import com.xcong.excoin.rabbit.producer.OrderProducer; @@ -88,6 +86,8 @@ @Resource private MemberDao memberDao; + @Resource + private MemberSettingDao memberSettingDao; @Resource private FollowTraderInfoDao followTraderInfoDao; @@ -133,12 +133,12 @@ BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(submitOrderDto.getSymbol()))); MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name()); PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); + + MemberSettingEntity memberSetting = memberSettingDao.selectMemberSettingByMemberId(memberEntity.getId()); + BigDecimal spread = memberSetting.getSpread(); // 规格 BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(submitOrderDto.getSymbol()); - MemberEntity member = memberDao.selectById(memberEntity.getId()); - // 划点 - BigDecimal spread = member.getSpread(); // 开仓价 BigDecimal openingPrice = CalculateUtil.getOpeningPrice(submitOrderDto.getOrderType(), newPrice, spread); @@ -288,9 +288,9 @@ // 规格 BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(submitOrderDto.getSymbol()); - MemberEntity member = memberDao.selectById(memberEntity.getId()); - // 划点 - BigDecimal spread = member.getSpread(); + MemberSettingEntity memberSetting = memberSettingDao.selectMemberSettingByMemberId(memberEntity.getId()); + BigDecimal spread = memberSetting.getSpread(); + // 开仓价 BigDecimal openingPrice = CalculateUtil.getOpeningPrice(submitOrderDto.getOrderType(), newPrice, spread); log.info("开仓价:{}", openingPrice); diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java index c86ac4f..93b135e 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java @@ -12,8 +12,10 @@ import com.xcong.excoin.modules.contract.service.ContractHoldOrderService; import com.xcong.excoin.modules.contract.service.ContractOrderService; import com.xcong.excoin.modules.member.dao.AgentReturnDao; +import com.xcong.excoin.modules.member.dao.MemberSettingDao; import com.xcong.excoin.modules.member.entity.AgentReturnEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberSettingEntity; import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; import com.xcong.excoin.modules.member.parameter.vo.NeedMoneyMemberVo; import com.xcong.excoin.modules.member.service.MemberService; @@ -67,6 +69,8 @@ @Resource private MemberAccountFlowEntityDao memberAccountFlowEntityDao; + @Resource + private MemberSettingDao memberSettingDao; public void dealOrderFromMq(List<OrderModel> list, Integer type) { @@ -172,8 +176,9 @@ .multiply(new BigDecimal(currentFlat)) .multiply(symbolSku).setScale(8, BigDecimal.ROUND_DOWN); MemberEntity memberEntity = memberService.getById(memberId); + MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(memberId); log.info("划点前:{}", profitLossPrice); - profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(memberEntity.getClosingSpread().divide(BigDecimal.valueOf(100), 4, BigDecimal.ROUND_DOWN))); + profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(memberSettingEntity.getClosingSpread().divide(BigDecimal.valueOf(100), 4, BigDecimal.ROUND_DOWN))); log.info("划点后:{}", profitLossPrice); if (memberEntity.getIsProfit() == 1) { PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting(); @@ -264,9 +269,9 @@ .multiply(new BigDecimal(currentFlat + "")) .multiply(symbolSku).setScale(8, BigDecimal.ROUND_DOWN); MemberEntity memberEntity = memberService.getById(memberId); - + MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(memberId); log.info("划点前:{}", profitLossPrice); - profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(memberEntity.getClosingSpread().divide(BigDecimal.valueOf(100), 4, BigDecimal.ROUND_DOWN))); + profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(memberSettingEntity.getClosingSpread().divide(BigDecimal.valueOf(100), 4, BigDecimal.ROUND_DOWN))); log.info("划点后:{}", profitLossPrice); if (memberEntity.getIsProfit() == 1) { PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting(); diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java index 55490b5..f9bbbc7 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java @@ -23,9 +23,11 @@ import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitDetailEntity; import com.xcong.excoin.modules.documentary.service.FollowOrderOperationService; import com.xcong.excoin.modules.member.dao.MemberDao; +import com.xcong.excoin.modules.member.dao.MemberSettingDao; import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; import com.xcong.excoin.modules.member.entity.AgentReturnEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberSettingEntity; import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; import com.xcong.excoin.utils.*; @@ -69,6 +71,8 @@ @Resource private RedisUtils redisUtils; + @Resource + private MemberSettingDao memberSettingDao; @Resource private FollowFollowerOrderRelationDao followFollowerOrderRelationDao; @@ -129,16 +133,18 @@ BigDecimal profitOrLoss = BigDecimal.ZERO; Integer orderType = null; Integer closingType = null; + + MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(memberEntity.getId()); // 开多 if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) { - newPrice = newPrice.multiply(BigDecimal.ONE.subtract(memberEntity.getClosingSpread().divide(BigDecimal.valueOf(10000), 4, BigDecimal.ROUND_DOWN))); + newPrice = newPrice.multiply(BigDecimal.ONE.subtract(memberSettingEntity.getClosingSpread().divide(BigDecimal.valueOf(10000), 4, BigDecimal.ROUND_DOWN))); // (最新价-开仓价)*规格*张数 profitOrLoss = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt())); orderType = ContractOrderEntity.ORDER_TYPE_CLOSE_MORE; closingType = OrderClosingTypeEnum.CLOSE_MORE.getValue(); // 开空 } else { - newPrice = newPrice.multiply(BigDecimal.ONE.add(memberEntity.getClosingSpread().divide(BigDecimal.valueOf(10000), 4, BigDecimal.ROUND_DOWN))); + newPrice = newPrice.multiply(BigDecimal.ONE.add(memberSettingEntity.getClosingSpread().divide(BigDecimal.valueOf(10000), 4, BigDecimal.ROUND_DOWN))); // (开仓价-最新价)*规格*张数 profitOrLoss = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt())); orderType = ContractOrderEntity.ORDER_TYPE_CLOSE_LESS; diff --git a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java index 1aeb253..c2a3f6e 100644 --- a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java +++ b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java @@ -61,13 +61,25 @@ /** * 获取当前版本号 */ - @ApiOperation(value="获取当前版本号", notes="获取当前版本号") + @ApiOperation(value="APP端获取当前版本号", notes="获取当前版本号") @ApiResponses({@ApiResponse( code = 200, message = "success", response = AppVersionListVo.class)}) @GetMapping(value = "/getAppVersionInfo") public Result getAppVersionInfo() { return memberService.getAppVersionInfo(); } - + + + /** + * 获取当前版本号 + */ + @ApiOperation(value="PC端获取当前版本号", notes="获取当前版本号") + @ApiResponses({@ApiResponse( code = 200, message = "success", response = AppVersionListVo.class)}) + @GetMapping(value = "/getPcVersionInfo") + public Result getPcVersionInfo() { + return memberService.getPcVersionInfo(); + } + + /** * 获取我的信息 * @return diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/MemberSettingDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/MemberSettingDao.java new file mode 100644 index 0000000..620a813 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberSettingDao.java @@ -0,0 +1,19 @@ +package com.xcong.excoin.modules.member.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xcong.excoin.modules.member.entity.MemberSettingEntity; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author wzy + * @date 2020-08-13 + **/ +public interface MemberSettingDao extends BaseMapper<MemberSettingEntity> { + + public MemberSettingEntity selectMemberSettingByMemberId(@Param("memberId") Long memberId); + + public int batchInsert(@Param("list") List<MemberSettingEntity> list); + +} diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java new file mode 100644 index 0000000..36ea5a7 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java @@ -0,0 +1,34 @@ +package com.xcong.excoin.modules.member.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.xcong.excoin.common.system.base.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author wzy + * @date 2020-08-13 + **/ +@Data +@TableName("member_setting") +public class MemberSettingEntity extends BaseEntity { + + private Long memberId; + + /** + * 滑点 + */ + private BigDecimal spread; + + /** + * 平仓点数 + */ + private BigDecimal closingSpread; + + /** + * 强平系数 + */ + private BigDecimal forceParam; + +} diff --git a/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java b/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java index 916b773..ae6e757 100644 --- a/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java +++ b/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java @@ -88,5 +88,7 @@ public Result getAppVersionInfo(); + public Result getPcVersionInfo(); + } diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java index ea42a22..8dd0b3a 100644 --- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java @@ -106,6 +106,8 @@ @Resource AppVersionDao appVersionDao; + @Resource + private MemberSettingDao memberSettingDao; @Resource private MemberWalletContractSimulateDao memberWalletContractSimulateDao; @@ -154,10 +156,14 @@ member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_UN_SUBMIT); member.setIsForce(1); member.setIsProfit(0); - member.setSpread(BigDecimal.ONE); - member.setClosingSpread(BigDecimal.ONE); - member.setForceParam(BigDecimal.valueOf(0.0015)); memberDao.insert(member); + + MemberSettingEntity memberSettingEntity = new MemberSettingEntity(); + memberSettingEntity.setSpread(BigDecimal.ONE); + memberSettingEntity.setClosingSpread(BigDecimal.ONE); + memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0015)); + memberSettingEntity.setMemberId(member.getId()); + memberSettingDao.insert(memberSettingEntity); String inviteId = ShareCodeUtil.toSerialCode(member.getId()); member.setInviteId(inviteId); @@ -332,12 +338,12 @@ //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); MemberEntity member = memberDao.selectById(memberId); - if(MemberEntity.CERTIFY_STATUS_ING.equals(member.getCertifyStatus())) { - return Result.fail(MessageSourceUtils.getString("member_service_4000")); - } + if (MemberEntity.CERTIFY_STATUS_ING.equals(member.getCertifyStatus())) { + return Result.fail(MessageSourceUtils.getString("member_service_4000")); + } if (ObjectUtil.isNotEmpty(member)) { - MemberAuthenticationEntity memberAuthenticationEntity = new MemberAuthenticationEntity(); + MemberAuthenticationEntity memberAuthenticationEntity = new MemberAuthenticationEntity(); if (MemberEntity.CERTIFY_STATUS_Y == member.getCertifyStatus()) { return Result.fail(MessageSourceUtils.getString("member_service_0055")); @@ -367,13 +373,13 @@ String idCardNo = memberAuthenticationDto.getIdCardNo(); if (StrUtil.isBlank(idCardNo)) { - return Result.fail(MessageSourceUtils.getString("member_service_0060")); + return Result.fail(MessageSourceUtils.getString("member_service_0060")); } memberAuthenticationEntity.setIdcardNo(idCardNo); //同一个身份证号码不能重复实名认证 int count = memberAuthenticationDao.findMemberbyIdCardNoCount(idCardNo); if (count > 0) { - return Result.fail(MessageSourceUtils.getString("member_service_0060")); + return Result.fail(MessageSourceUtils.getString("member_service_0060")); } if (StrUtil.isBlank(memberAuthenticationDto.getIdCardFront()) || StrUtil.isBlank(memberAuthenticationDto.getIdCardReverse()) @@ -385,14 +391,14 @@ memberAuthenticationEntity.setIdcardImageInHand(memberAuthenticationDto.getIdCardImage()); Map<String, Object> columnMap = new HashMap<>(); - columnMap.put("member_id", memberId); - List<MemberAuthenticationEntity> selectByMap = memberAuthenticationDao.selectByMap(columnMap); - if(CollUtil.isEmpty(selectByMap)) { - memberAuthenticationDao.insert(memberAuthenticationEntity); - }else { - memberAuthenticationEntity.setId(selectByMap.get(0).getId()); - memberAuthenticationDao.updateById(memberAuthenticationEntity); - } + columnMap.put("member_id", memberId); + List<MemberAuthenticationEntity> selectByMap = memberAuthenticationDao.selectByMap(columnMap); + if (CollUtil.isEmpty(selectByMap)) { + memberAuthenticationDao.insert(memberAuthenticationEntity); + } else { + memberAuthenticationEntity.setId(selectByMap.get(0).getId()); + memberAuthenticationDao.updateById(memberAuthenticationEntity); + } member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_ING); member.setIdcardNo(idCardNo); @@ -489,14 +495,14 @@ Map<String, Object> columnMap = new HashMap<>(); columnMap.put("member_id", memberId); - List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap); - if(CollUtil.isNotEmpty(selectByMap)) { - for(MemberPaymentMethodEntity memberPaymentMethodEntity : selectByMap) { - if(memberPaymethodDto.getAccount().equals(memberPaymentMethodEntity.getAccount())) { - return Result.fail(MessageSourceUtils.getString("member_service_0097")); - } - } - } + List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap); + if (CollUtil.isNotEmpty(selectByMap)) { + for (MemberPaymentMethodEntity memberPaymentMethodEntity : selectByMap) { + if (memberPaymethodDto.getAccount().equals(memberPaymentMethodEntity.getAccount())) { + return Result.fail(MessageSourceUtils.getString("member_service_0097")); + } + } + } String account = memberPaymethodDto.getAccount(); String bank = memberPaymethodDto.getBank(); String name = memberPaymethodDto.getName(); @@ -577,7 +583,7 @@ @Override @Transactional public Result memberBindPhone(@Valid MemberBindPhoneDto memberBindPhoneDto) { - //获取用户ID + //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); String phone = memberBindPhoneDto.getPhone(); String code = memberBindPhoneDto.getCode(); @@ -590,13 +596,13 @@ } Map<String, Object> columnMap = new HashMap<>(); columnMap.put("phone", phone); - List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap ); - if(CollUtil.isEmpty(selectByMap)) { - member.setPhone(phone); - memberDao.updateById(member); - return Result.ok(MessageSourceUtils.getString("member_service_0014")); - }else { - return Result.fail(MessageSourceUtils.getString("member_service_1400")); + List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap); + if (CollUtil.isEmpty(selectByMap)) { + member.setPhone(phone); + memberDao.updateById(member); + return Result.ok(MessageSourceUtils.getString("member_service_0014")); + } else { + return Result.fail(MessageSourceUtils.getString("member_service_1400")); } } @@ -607,7 +613,7 @@ @Transactional public Result memberBindEmail(@Valid MemberBindEmailDto memberBindEmailDto) { - //获取用户ID + //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); String email = memberBindEmailDto.getEmail(); String code = memberBindEmailDto.getCode(); @@ -616,15 +622,15 @@ boolean flag = commonservice.verifyCode(email, code); if (ObjectUtil.isNotEmpty(member)) { if (flag) { - Map<String, Object> columnMap = new HashMap<>(); + Map<String, Object> columnMap = new HashMap<>(); columnMap.put("email", email); - List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap ); - if(CollUtil.isEmpty(selectByMap)) { - member.setEmail(email); + List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap); + if (CollUtil.isEmpty(selectByMap)) { + member.setEmail(email); memberDao.updateById(member); return Result.ok(MessageSourceUtils.getString("member_service_0018")); - }else { - return Result.fail(MessageSourceUtils.getString("member_service_1400")); + } else { + return Result.fail(MessageSourceUtils.getString("member_service_1400")); } } } @@ -760,10 +766,10 @@ Map<String, Object> columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap); - if(CollUtil.isEmpty(selectByMap)) { - memberPersonCenterInfoVo.setMemberPaymentMethod(0); - }else { - memberPersonCenterInfoVo.setMemberPaymentMethod(1); + if (CollUtil.isEmpty(selectByMap)) { + memberPersonCenterInfoVo.setMemberPaymentMethod(0); + } else { + memberPersonCenterInfoVo.setMemberPaymentMethod(1); } if (StrUtil.isNotEmpty(member.getPhone())) { @@ -824,16 +830,16 @@ List<MemberAvivableCoinInfoVo> arrayList = new ArrayList<>(); - List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol); + List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol); if (CollUtil.isEmpty(feeSettingByTypeAndSymbolLable)) { return Result.fail(MessageSourceUtils.getString("member_service_0087")); } - for(PlatformFeeSettingEntity platformFeeSettingEntity : feeSettingByTypeAndSymbolLable) { - MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo(); - memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance()); - memberAvivableCoinInfoVo.setFee(platformFeeSettingEntity.getFeePrice()); - memberAvivableCoinInfoVo.setLable(platformFeeSettingEntity.getLable()); - arrayList.add(memberAvivableCoinInfoVo); + for (PlatformFeeSettingEntity platformFeeSettingEntity : feeSettingByTypeAndSymbolLable) { + MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo(); + memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance()); + memberAvivableCoinInfoVo.setFee(platformFeeSettingEntity.getFeePrice()); + memberAvivableCoinInfoVo.setLable(platformFeeSettingEntity.getLable()); + arrayList.add(memberAvivableCoinInfoVo); } return Result.ok(arrayList); @@ -954,22 +960,47 @@ return Result.ok(""); } - @Override - public Result getAppVersionInfo() { - Map<String, Object> columnMap = new HashMap<>(); - List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap); - List<Object> arrayList = new ArrayList<>(); - if(CollUtil.isNotEmpty(selectByMap)) { - for(AppVersionEntity appVersionEntity : selectByMap) { - AppVersionVo appVersionVo = new AppVersionVo(); - appVersionVo.setAddress(appVersionEntity.getAddress()); - appVersionVo.setType(appVersionEntity.getType()); - appVersionVo.setVersion(appVersionEntity.getVersion()); - arrayList.add(appVersionVo); - } - } - return Result.ok(arrayList); - } + @Override + public Result getAppVersionInfo() { + MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); + + Map<String, Object> columnMap = new HashMap<>(); + List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap); + List<Object> arrayList = new ArrayList<>(); + if (CollUtil.isNotEmpty(selectByMap)) { + for (AppVersionEntity appVersionEntity : selectByMap) { + AppVersionVo appVersionVo = new AppVersionVo(); + if ("37059551".equals(memberEntity.getInviteId())) { + appVersionVo.setAddress("www.baidu.com"); + appVersionVo.setType(appVersionEntity.getType()); + appVersionVo.setVersion(appVersionEntity.getVersion()); + } else { + appVersionVo.setAddress(appVersionEntity.getAddress()); + appVersionVo.setType(appVersionEntity.getType()); + appVersionVo.setVersion(appVersionEntity.getVersion()); + } + arrayList.add(appVersionVo); + } + } + return Result.ok(arrayList); + } + + @Override + public Result getPcVersionInfo() { + Map<String, Object> columnMap = new HashMap<>(); + List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap); + List<Object> arrayList = new ArrayList<>(); + if (CollUtil.isNotEmpty(selectByMap)) { + for (AppVersionEntity appVersionEntity : selectByMap) { + AppVersionVo appVersionVo = new AppVersionVo(); + appVersionVo.setAddress(appVersionEntity.getAddress()); + appVersionVo.setType(appVersionEntity.getType()); + appVersionVo.setVersion(appVersionEntity.getVersion()); + arrayList.add(appVersionVo); + } + } + return Result.ok(arrayList); + } } diff --git a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java index 1d0c233..a25ac4f 100644 --- a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java +++ b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java @@ -6,7 +6,9 @@ import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao; import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; +import com.xcong.excoin.modules.member.dao.MemberSettingDao; import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberSettingEntity; import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; import lombok.extern.slf4j.Slf4j; @@ -30,21 +32,23 @@ */ public static BigDecimal getForceSetPrice(BigDecimal bondAmount, BigDecimal openPrice, int symbolSkuNumber, BigDecimal lotNumber, int type, MemberEntity member) { - CacheSettingUtils cacheSettingUtils = SpringContextHolder.getBean(CacheSettingUtils.class); + MemberSettingDao memberSettingDao = SpringContextHolder.getBean(MemberSettingDao.class); BigDecimal forcePrice = BigDecimal.ZERO; BigDecimal money = bondAmount.divide(new BigDecimal(symbolSkuNumber).multiply(lotNumber), 8, BigDecimal.ROUND_DOWN); //卖空 if (type == 2) { forcePrice = money.add(openPrice); if (member.getIsForce() == 1) { + MemberSettingEntity memberSetting = memberSettingDao.selectMemberSettingByMemberId(member.getId()); //预估强平价 = 预估强平价-预估强平价*系数 - forcePrice = forcePrice.subtract(forcePrice.multiply(member.getForceParam() == null ? BigDecimal.ZERO : member.getForceParam())); + forcePrice = forcePrice.subtract(forcePrice.multiply(memberSetting.getForceParam() == null ? BigDecimal.ZERO : memberSetting.getForceParam())); } } else {//开多 forcePrice = openPrice.subtract(money); if (member.getIsForce() == 1) { + MemberSettingEntity memberSetting = memberSettingDao.selectMemberSettingByMemberId(member.getId()); //预估强平价 = 预估强平价-预估强平价*系数 - forcePrice = forcePrice.add(forcePrice.multiply(member.getForceParam() == null ? BigDecimal.ZERO : member.getForceParam())); + forcePrice = forcePrice.add(forcePrice.multiply(memberSetting.getForceParam() == null ? BigDecimal.ZERO : memberSetting.getForceParam())); } } if (forcePrice.compareTo(BigDecimal.ZERO) < 0) { diff --git a/src/main/resources/mapper/member/MemberSettingDao.xml b/src/main/resources/mapper/member/MemberSettingDao.xml new file mode 100644 index 0000000..2a56bce --- /dev/null +++ b/src/main/resources/mapper/member/MemberSettingDao.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.xcong.excoin.modules.member.dao.MemberSettingDao"> + + <select id="selectMemberSettingByMemberId" resultType="com.xcong.excoin.modules.member.entity.MemberSettingEntity"> + select * from member_setting where member_id=#{memberId} + </select> + + <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"> + insert into member_setting ( + create_by, + create_time, + update_by, + update_time, + version, + id, + member_id, + force_param, + spread, + closing_spread + ) values + <foreach collection="list" item="item" index="index" separator=","> + ( + #{item.createBy}, + now(), + #{item.updateBy}, + now(), + #{item.version}, + #{item.id}, + #{item.memberId}, + #{item.forceParam}, + #{item.spread}, + #{item.closingSpread} + ) + </foreach> + </insert> + +</mapper> \ No newline at end of file diff --git a/src/test/java/com/xcong/excoin/MemberSettingTest.java b/src/test/java/com/xcong/excoin/MemberSettingTest.java new file mode 100644 index 0000000..68461c2 --- /dev/null +++ b/src/test/java/com/xcong/excoin/MemberSettingTest.java @@ -0,0 +1,51 @@ +package com.xcong.excoin; + +import com.xcong.excoin.modules.member.dao.MemberDao; +import com.xcong.excoin.modules.member.dao.MemberSettingDao; +import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberSettingEntity; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author wzy + * @date 2020-08-13 + **/ +@Slf4j +@SpringBootTest +public class MemberSettingTest { + + @Resource + private MemberDao memberDao; + @Resource + private MemberSettingDao memberSettingDao; + + @Test + public void settingDateTest() { + Map<String, Object> map = new HashMap<>(); + List<MemberEntity> memberEntities = memberDao.selectByMap(map); + log.info("--->{}", memberEntities.size()); + + List<MemberSettingEntity> list = new ArrayList<>(); + for (MemberEntity memberEntity : memberEntities) { + MemberSettingEntity memberSettingEntity = new MemberSettingEntity(); + memberSettingEntity.setCreateBy("system"); + memberSettingEntity.setUpdateBy("system"); + memberSettingEntity.setMemberId(memberEntity.getId()); + memberSettingEntity.setClosingSpread(memberEntity.getClosingSpread()); + memberSettingEntity.setForceParam(memberEntity.getForceParam()); + memberSettingEntity.setSpread(memberEntity.getSpread()); + list.add(memberSettingEntity); + } + + memberSettingDao.batchInsert(list); + } +} -- Gitblit v1.9.1