From 47b56397ce10d4927ccc303539c103cf5d5dbe30 Mon Sep 17 00:00:00 2001 From: zainali5120 <512061637@qq.com> Date: Sun, 15 Nov 2020 20:28:49 +0800 Subject: [PATCH] Merge branches 'cpv' and 'feature/撮合交易' of https://gitee.com/chonggaoxiao/new_excoin into cpv --- src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java | 23 +++++++++++ src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java | 7 +++ src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java | 9 +++- src/main/java/com/xcong/excoin/common/system/service/CommonService.java | 2 + src/test/java/com/xcong/excoin/TradeTest.java | 8 ++++ src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 23 ++++++++++- src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java | 11 ++++- src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java | 3 + src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java | 22 +++++++++-- src/main/java/com/xcong/excoin/common/system/controller/CommonController.java | 2 10 files changed, 96 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java b/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java index 61639f7..723bd6b 100644 --- a/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java +++ b/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java @@ -64,7 +64,7 @@ boolean result = Sms106Send.sendVerifyCode(account, code.toString(), 2); if (result) { Map<String, Object> map = new HashMap<>(); - boolean flag = redisUtils.set(AppContants.VERIFY_CODE_PREFIX + account, code, 120); + boolean flag = redisUtils.set(AppContants.VERIFY_CODE_PREFIX + account, code, 600); map.put("code", flag); return Result.ok(MessageSourceUtils.getString("member_service_0010"), map); } diff --git a/src/main/java/com/xcong/excoin/common/system/service/CommonService.java b/src/main/java/com/xcong/excoin/common/system/service/CommonService.java index 444fc77..0450a3f 100644 --- a/src/main/java/com/xcong/excoin/common/system/service/CommonService.java +++ b/src/main/java/com/xcong/excoin/common/system/service/CommonService.java @@ -8,5 +8,7 @@ public boolean verifyCode(String account, String code); + boolean mutiVerifyCode(String email, String emailCode, String phone, String phoneCode); + public String generateOrderNo(Long mid); } diff --git a/src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java b/src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java index 265b41a..3530375 100644 --- a/src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java +++ b/src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java @@ -25,6 +25,9 @@ @Override public boolean verifyCode(String account, String code) { + if(StrUtil.isBlank(code)){ + return false; + } String cacheCode = redisUtils.getString(AppContants.VERIFY_CODE_PREFIX + account); if (StrUtil.isBlank(cacheCode)) { return false; @@ -38,6 +41,26 @@ } @Override + public boolean mutiVerifyCode(String email, String emailCode, String phone, String phoneCode) { + if (StrUtil.isBlank(emailCode) || StrUtil.isBlank(phoneCode)) { + return false; + } + + String cacheEmailCode = redisUtils.getString(AppContants.VERIFY_CODE_PREFIX + email); + String cachePhoneCode = redisUtils.getString(AppContants.VERIFY_CODE_PREFIX + phone); + if (StrUtil.isBlank(cacheEmailCode) || StrUtil.isBlank(cachePhoneCode)) { + return false; + } + + if (emailCode.equals(cacheEmailCode) && phoneCode.equals(cachePhoneCode)) { + redisUtils.del(AppContants.VERIFY_CODE_PREFIX + email); + redisUtils.del(AppContants.VERIFY_CODE_PREFIX + phone); + return true; + } + return false; + } + + @Override public String generateOrderNo(Long mid) { StringBuilder orderNo = new StringBuilder(); String date = DateUtil.format(new Date(), "yyyyMMdd"); 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 c2a3f6e..d5b3381 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 @@ -3,6 +3,7 @@ import javax.annotation.Resource; import javax.validation.Valid; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -252,7 +253,7 @@ */ @ApiOperation(value="绑定邮箱", notes="绑定邮箱") @PostMapping(value="/memberBindEmail") - public Result memberBindEmail(@RequestBody @Valid MemberBindEmailDto memberBindEmailDto) { + public Result memberBindEmail(@RequestBody @Validated MemberBindEmailDto memberBindEmailDto) { return memberService.memberBindEmail(memberBindEmailDto); } diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java index aaa7e5e..c22bc65 100644 --- a/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java +++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java @@ -149,7 +149,12 @@ * 是否设置预估强平价系数 0-否1-是 */ private Integer isForce; - + + /** + * shifou xianzhi + */ + private Integer isTrader; + /** * 滑点 */ diff --git a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java index 1a8f2cc..eb24244 100644 --- a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java +++ b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java @@ -1,5 +1,6 @@ package com.xcong.excoin.modules.member.parameter.dto; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import io.swagger.annotations.ApiModel; @@ -10,11 +11,15 @@ @ApiModel(value = "MemberBindEmailDto", description = "绑定邮箱参数接收类") public class MemberBindEmailDto { - @NotNull(message = "验证码不能为空") + @NotBlank(message = "验证码不能为空") @ApiModelProperty(value = "验证码", example = "123456") private String code; + + @NotBlank(message = "手机验证码验证码不能为空") + @ApiModelProperty(value = "手机验证码验证码", example = "123456") + private String otherCode; - @NotNull(message = "邮箱不能为空") + @NotBlank(message = "邮箱不能为空") @ApiModelProperty(value = "邮箱", example = "www.13412341234@134.com") private String email; diff --git a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java index f7d6afc..0606c70 100644 --- a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java +++ b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java @@ -1,5 +1,6 @@ package com.xcong.excoin.modules.member.parameter.dto; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import io.swagger.annotations.ApiModel; @@ -10,11 +11,15 @@ @ApiModel(value = "MemberBindPhoneDto", description = "绑定手机号参数接收类") public class MemberBindPhoneDto { - @NotNull(message = "验证码不能为空") - @ApiModelProperty(value = "验证码", example = "123456") + @NotBlank(message = "手机验证码不能为空") + @ApiModelProperty(value = "手机验证码", example = "123456") private String code; + + @NotBlank(message = "邮箱验证码不能为空") + @ApiModelProperty(value = "邮箱验证码", example = "123456") + private String otherCode; - @NotNull(message = "电话号码不能为空") + @NotBlank(message = "电话号码不能为空") @ApiModelProperty(value = "电话号码", example = "13412341234") private String phone; 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 4a7a6ed..08c13dd 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 @@ -599,9 +599,13 @@ MemberEntity member = memberDao.selectById(memberId); if (ObjectUtil.isNotEmpty(member)) { - if (!commonservice.verifyCode(phone, code)) { + if (!commonservice.mutiVerifyCode(member.getEmail(), memberBindPhoneDto.getOtherCode(), phone, code)) { return Result.fail(MessageSourceUtils.getString("member_service_0013")); } + // 验证邮箱验证码 +// if (!commonservice.verifyCode(member.getEmail(), memberBindPhoneDto.getOtherCode())) { +// return Result.fail("邮箱"+MessageSourceUtils.getString("member_service_0013")); +// } Map<String, Object> columnMap = new HashMap<>(); columnMap.put("phone", phone); List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap); @@ -627,7 +631,14 @@ String code = memberBindEmailDto.getCode(); MemberEntity member = memberDao.selectById(memberId); - boolean flag = commonservice.verifyCode(email, code); + boolean flag = commonservice.mutiVerifyCode(email, code, member.getPhone(), memberBindEmailDto.getOtherCode()); +// boolean flag2 = commonservice.verifyCode(member.getPhone(), memberBindEmailDto.getOtherCode()); + if(!flag){ + return Result.fail(MessageSourceUtils.getString("member_service_0013")); + } +// if(!flag2){ +// return Result.fail("手机"+MessageSourceUtils.getString("member_service_0013")); +// } if (ObjectUtil.isNotEmpty(member)) { if (flag) { Map<String, Object> columnMap = new HashMap<>(); @@ -884,6 +895,14 @@ //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); MemberEntity member = memberDao.selectById(memberId); + String golden_limit_transfer = redisUtils.getString("GOLDEN_LIMIT_TRANSFER"); + // 判断是否限制 + if(StringUtils.isNotBlank(member.getPhone()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getPhone())){ + return Result.fail("此账号有财务问题,需联系客服"); + } + if(StringUtils.isNotBlank(member.getEmail()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getEmail())){ + return Result.fail("此账号有财务问题,需联系客服"); + } if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) { return Result.fail(MessageSourceUtils.getString("member_service_0077")); } diff --git a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java index df66f03..ed484ac 100644 --- a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java +++ b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java @@ -339,10 +339,24 @@ } // 如果开盘价为0,则设置为前一个价格 if(kLine.getOpen().compareTo(BigDecimal.ZERO) == 0) { - kLine.setOpen(coinThumb.getClose()); - kLine.setClose(coinThumb.getClose()); - kLine.setLow(coinThumb.getClose()); - kLine.setHigh(coinThumb.getClose()); + // 查询前一根K线 TODO + String key = "KINE_" + symbol + "/USDT_" + period; + Object data = redisUtils.get(key); + List list = new ArrayList(); + if (data != null) { + list = (List) data; + Candlestick o = (Candlestick)list.get(list.size() - 1); + kLine.setOpen(o.getClose()); + kLine.setClose(o.getClose()); + kLine.setLow(o.getClose()); + kLine.setHigh(o.getClose()); + }else{ + kLine.setOpen(coinThumb.getClose()); + kLine.setClose(coinThumb.getClose()); + kLine.setLow(coinThumb.getClose()); + kLine.setHigh(coinThumb.getClose()); + } + } //logger.info("generate " + range + rangeUnit + " kline in {},data={}", df.format(new Date(kLine.getTimestamp())), JSON.toJSONString(kLine)); service.saveKLine(symbol,period, kLine); diff --git a/src/test/java/com/xcong/excoin/TradeTest.java b/src/test/java/com/xcong/excoin/TradeTest.java index 46abae2..b144794 100644 --- a/src/test/java/com/xcong/excoin/TradeTest.java +++ b/src/test/java/com/xcong/excoin/TradeTest.java @@ -1,10 +1,12 @@ package com.xcong.excoin; +import cn.hutool.crypto.SecureUtil; import com.xcong.excoin.modules.coin.dao.OrderCoinsDao; import com.xcong.excoin.modules.coin.entity.OrderCoinsEntity; import com.xcong.excoin.modules.coin.service.OrderCoinService; import com.xcong.excoin.trade.CoinTrader; import com.xcong.excoin.utils.RedisUtils; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -13,6 +15,7 @@ import java.math.BigDecimal; import java.text.ParseException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; @Slf4j @@ -30,4 +33,9 @@ @Test public void buy(){ } + + public static void main(String[] args) throws InterruptedException { + String s = SecureUtil.md5("330021"); + System.out.println(s); + } } -- Gitblit v1.9.1