From fae05b7ffe899ab996f7a9c31b4c96df7964a0de Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 07 Jul 2020 21:20:55 +0800
Subject: [PATCH] add dingtalk
---
src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java | 332 ++++++++++++++++++------------------
src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java | 67 +++++++
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 50 ++---
src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java | 15 +
src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java | 10
pom.xml | 9 +
src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkType.java | 46 +++++
7 files changed, 329 insertions(+), 200 deletions(-)
diff --git a/pom.xml b/pom.xml
index 191b9fe..cae38c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,6 +43,15 @@
<scope>system</scope>
<systemPath>${basedir}/lib/ripple-core-0.0.1-SNAPSHOT.jar</systemPath>
</dependency>
+
+ <dependency>
+ <groupId>taobao</groupId>
+ <artifactId>taobao-sdk</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <scope>system</scope>
+ <systemPath>${basedir}/lib/taobao-sdk-java.jar</systemPath>
+ </dependency>
+
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java
index e2209a2..aea8e75 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java
@@ -18,6 +18,8 @@
import com.xcong.excoin.modules.member.entity.MemberEntity;
import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
import com.xcong.excoin.utils.LogRecordUtils;
+import com.xcong.excoin.utils.ThreadPoolUtils;
+import com.xcong.excoin.utils.dingtalk.DingTalkUtils;
import com.xcong.excoin.utils.mail.SmsSend;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -85,8 +87,8 @@
String orderNo = insertCoinCharge(address, memberId, newBalance, CoinTypeEnum.USDT.name(), "ERC20", balance);
// 插入财务记录
LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", newBalance, CoinTypeEnum.USDT.name(), 1, 1);
- // TODO 钉钉发送, 短信提醒
+ ThreadPoolUtils.sendDingTalk(5);
MemberEntity member = memberDao.selectById(memberId);
if (StrUtil.isNotBlank(member.getPhone())) {
String amount = newBalance.toPlainString() + "USDT-ERC20";
@@ -134,8 +136,8 @@
// 插入财务记录
LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", newBalance, CoinTypeEnum.ETH.name(), 1, 1);
- // TODO 钉钉消息, 短信提醒
+ ThreadPoolUtils.sendDingTalk(5);
MemberEntity member = memberDao.selectById(memberId);
if (StrUtil.isNotBlank(member.getPhone())) {
String amount = newBalance.toPlainString() + "ETH";
@@ -180,7 +182,7 @@
memberWalletCoinDao.updateBlockBalance(walletCoin.getId(), newBalance, balance, 0);
String orderNo = insertCoinCharge(address, memberId, newBalance, CoinTypeEnum.USDT.name(), "OMNI", balance);
- // TODO 钉钉消息, 短信提醒
+ ThreadPoolUtils.sendDingTalk(5);
MemberEntity member = memberDao.selectById(memberId);
if (StrUtil.isNotBlank(member.getPhone())) {
String amount = newBalance.toPlainString() + "USDT-OMNI";
@@ -227,7 +229,7 @@
String orderNo = insertCoinCharge(address, memberId, newBalance, CoinTypeEnum.BTC.name(), null, balance);
LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", newBalance, CoinTypeEnum.BTC.name(), 1, 1);
- // TODO 钉钉提醒, 短信提醒
+ ThreadPoolUtils.sendDingTalk(5);
MemberEntity member = memberDao.selectById(memberId);
if (StrUtil.isNotBlank(member.getPhone())) {
String amount = newBalance.toPlainString() + "BTC";
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 3e6014a..fd6273b 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
@@ -6,6 +6,8 @@
import javax.annotation.Resource;
+import com.xcong.excoin.utils.ThreadPoolUtils;
+import com.xcong.excoin.utils.dingtalk.DingTalkType;
import org.springframework.stereotype.Service;
import com.alibaba.druid.util.StringUtils;
@@ -33,179 +35,177 @@
import com.xcong.excoin.modules.platform.entity.PlatformPaymentMethodEntity;
@Service
-public class MemberQuickBuySaleServiceImpl extends ServiceImpl<MemberQuickBuySaleDao, MemberQuickBuySaleEntity> implements MemberQuickBuySaleService{
-
- @Resource
- MemberDao memberDao;
- @Resource
- MemberQuickBuySaleDao memberQuickBuySaleDao;
- @Resource
- MemberWalletCoinDao memberWalletCoinDao;
- @Resource
- MemberPaymentMethodDao memberPaymentMethodDao;
- @Resource
- PlatformPaymentMethodDao platformPaymentMethodDao;
+public class MemberQuickBuySaleServiceImpl extends ServiceImpl<MemberQuickBuySaleDao, MemberQuickBuySaleEntity> implements MemberQuickBuySaleService {
- @Override
- 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(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");
- // 支付码 ID+四位随机数
- int ran = (int) (Math.random() * 10000000);
- memberQuickBuySaleEntity.setPaymentCode(ran + "");
-
- memberQuickBuySaleDao.insert(memberQuickBuySaleEntity);
- MemberQuickBuySaleVo memberQuickBuySaleVo = new MemberQuickBuySaleVo();
- memberQuickBuySaleVo.setId(memberQuickBuySaleEntity.getId());
- // 返回前台付款方式
- return Result.ok("提交成功",memberQuickBuySaleVo);
- }
+ @Resource
+ MemberDao memberDao;
+ @Resource
+ MemberQuickBuySaleDao memberQuickBuySaleDao;
+ @Resource
+ MemberWalletCoinDao memberWalletCoinDao;
+ @Resource
+ MemberPaymentMethodDao memberPaymentMethodDao;
+ @Resource
+ PlatformPaymentMethodDao platformPaymentMethodDao;
- @Override
- public Result commitPay(MemberQuickBuySaleCommitDto memberQuickBuySaleCommitDto) {
- // 用户提交支付确认 将状态改为付款中
- MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity();
- memberQuickBuySaleEntity.setId(memberQuickBuySaleCommitDto.getId());
- memberQuickBuySaleEntity.setOrderStatus(2);
- memberQuickBuySaleEntity.setPaymentAccount(memberQuickBuySaleCommitDto.getPaymentAccount());
- memberQuickBuySaleEntity.setPaymentName(memberQuickBuySaleCommitDto.getPaymentName());
+ @Override
+ 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(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");
+ // 支付码 ID+四位随机数
+ int ran = (int) (Math.random() * 10000000);
+ memberQuickBuySaleEntity.setPaymentCode(ran + "");
- memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
+ memberQuickBuySaleDao.insert(memberQuickBuySaleEntity);
+ MemberQuickBuySaleVo memberQuickBuySaleVo = new MemberQuickBuySaleVo();
+ memberQuickBuySaleVo.setId(memberQuickBuySaleEntity.getId());
+ // 返回前台付款方式
+ return Result.ok("提交成功", memberQuickBuySaleVo);
+ }
- // TODO dingtalk
-
- return Result.ok("确认成功");
- }
+ @Override
+ public Result commitPay(MemberQuickBuySaleCommitDto memberQuickBuySaleCommitDto) {
+ // 用户提交支付确认 将状态改为付款中
+ MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity();
+ memberQuickBuySaleEntity.setId(memberQuickBuySaleCommitDto.getId());
+ memberQuickBuySaleEntity.setOrderStatus(2);
+ memberQuickBuySaleEntity.setPaymentAccount(memberQuickBuySaleCommitDto.getPaymentAccount());
+ memberQuickBuySaleEntity.setPaymentName(memberQuickBuySaleCommitDto.getPaymentName());
- @Override
- public Result selectById(Long id) {
- MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectById(id);
- 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;
- 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);
- }
+ memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
- @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额度不够");
- }
+ ThreadPoolUtils.sendDingTalk(1);
+ return Result.ok("确认成功");
+ }
- // 判断是否存在收款方式
- 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);
+ @Override
+ public Result selectById(Long id) {
+ MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectById(id);
+ 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;
+ memberQuickBuySaleDetailVo.setTimeLeft((third - nowTime + startTime) / 1000);
+ return Result.ok(memberQuickBuySaleDetailVo);
+ }
- // TODO dingtalk
-
- return Result.ok("下单成功");
- }
+ @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 cancelRecharge(Long id) {
- // 获取当前登录用户
- MemberEntity member = LoginUserUtils.getAppLoginUser();
- MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(member.getId(),id);
- memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER);
- memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
- return Result.ok("成功");
- }
-
- @Override
- public Result cancelSell(Long id) {
- // 获取当前登录用户
- MemberEntity member = LoginUserUtils.getAppLoginUser();
- MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(member.getId(),id);
- if(memberQuickBuySaleEntity!=null) {
- memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER);
- memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
-
- MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString());
- // 冻结资金返回可用
- int i = memberWalletCoinDao.subFrozenBalance(member.getId(),
- walletCoin.getId(), memberQuickBuySaleEntity.getAmountUsdt());
- if(i<0) {
- return Result.fail("撤单失败");
- }
- return Result.ok("成功");
- }else {
- return Result.fail("订单不存在");
- }
-
- }
+ @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);
+
+ ThreadPoolUtils.sendDingTalk(2);
+ return Result.ok("下单成功");
+ }
+
+ @Override
+ public Result cancelRecharge(Long id) {
+ // 获取当前登录用户
+ MemberEntity member = LoginUserUtils.getAppLoginUser();
+ MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(member.getId(), id);
+ memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER);
+ memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
+ return Result.ok("成功");
+ }
+
+ @Override
+ public Result cancelSell(Long id) {
+ // 获取当前登录用户
+ MemberEntity member = LoginUserUtils.getAppLoginUser();
+ MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(member.getId(), id);
+ if (memberQuickBuySaleEntity != null) {
+ memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER);
+ memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
+
+ MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(), CoinTypeEnum.USDT.toString());
+ // 冻结资金返回可用
+ int i = memberWalletCoinDao.subFrozenBalance(member.getId(),
+ walletCoin.getId(), memberQuickBuySaleEntity.getAmountUsdt());
+ if (i < 0) {
+ return Result.fail("撤单失败");
+ }
+ return Result.ok("成功");
+ } else {
+ return Result.fail("订单不存在");
+ }
+
+ }
}
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 5f81aa7..3501806 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
@@ -38,6 +38,7 @@
import com.xcong.excoin.utils.MessageSourceUtils;
import com.xcong.excoin.utils.RedisUtils;
import com.xcong.excoin.utils.ShareCodeUtil;
+import com.xcong.excoin.utils.ThreadPoolUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -102,7 +103,7 @@
@Resource
MemberCoinWithdrawDao memberCoinWithdrawDao;
-
+
@Resource
AppVersionDao appVersionDao;
@@ -221,7 +222,8 @@
levelRate.setSymbol(symbolEnum.getValue());
memberLevelRateDao.insert(levelRate);
}
- return Result.ok("success");
+
+ return Result.ok(MessageSourceUtils.getString("member_service_0048"));
}
@Override
@@ -332,9 +334,9 @@
return Result.fail(MessageSourceUtils.getString("member_service_4000"));
}
if (ObjectUtil.isNotEmpty(member)) {
-
+
MemberAuthenticationEntity memberAuthenticationEntity = new MemberAuthenticationEntity();
-
+
if (MemberEntity.CERTIFY_STATUS_Y == member.getCertifyStatus()) {
return Result.fail(MessageSourceUtils.getString("member_service_0055"));
}
@@ -357,10 +359,10 @@
return Result.fail(MessageSourceUtils.getString("member_service_0059"));
}
memberAuthenticationEntity.setSecondName(memberAuthenticationDto.getSecondName());
-
+
String type = memberAuthenticationDto.getType();
memberAuthenticationEntity.setType(type);
-
+
String idCardNo = memberAuthenticationDto.getIdCardNo();
if (StrUtil.isBlank(idCardNo)) {
return Result.fail(MessageSourceUtils.getString("member_service_0060"));
@@ -379,7 +381,7 @@
memberAuthenticationEntity.setIdcardImageFront(memberAuthenticationDto.getIdCardFront());
memberAuthenticationEntity.setIdcardImageBack(memberAuthenticationDto.getIdCardReverse());
memberAuthenticationEntity.setIdcardImageInHand(memberAuthenticationDto.getIdCardImage());
-
+
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("member_id", memberId);
List<MemberAuthenticationEntity> selectByMap = memberAuthenticationDao.selectByMap(columnMap);
@@ -393,14 +395,8 @@
member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_ING);
member.setIdcardNo(idCardNo);
memberDao.updateById(member);
- /**
- * TODO dingtalk
- Constant.excutor.execute(new Runnable() {
- @Override public void run() {
- DingTalkUtils.sendActionCard(4);
- }
- });*/
+ ThreadPoolUtils.sendDingTalk(4);
return Result.ok(MessageSourceUtils.getString("member_service_0024"));
}
return Result.fail(MessageSourceUtils.getString("member_service_0063"));
@@ -488,7 +484,7 @@
if (!MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) {
return Result.fail(MessageSourceUtils.getString("member_service_0077"));
}
-
+
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("member_id", memberId);
List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap);
@@ -755,10 +751,10 @@
MemberEntity member = memberDao.selectById(memberId);
MemberPersonCenterInfoVo memberPersonCenterInfoVo = new MemberPersonCenterInfoVo();
-
+
Integer certifyStatus = member.getCertifyStatus();
memberPersonCenterInfoVo.setCertifyStatus(certifyStatus);
-
+
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("member_id", memberId);
List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap);
@@ -767,7 +763,7 @@
}else {
memberPersonCenterInfoVo.setMemberPaymentMethod(1);
}
-
+
if (StrUtil.isNotEmpty(member.getPhone())) {
memberPersonCenterInfoVo.setPhone(1);
} else {
@@ -824,8 +820,8 @@
}
List<MemberAvivableCoinInfoVo> arrayList = new ArrayList<>();
-
-
+
+
List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol);
if (CollUtil.isEmpty(feeSettingByTypeAndSymbolLable)) {
return Result.fail(MessageSourceUtils.getString("member_service_0087"));
@@ -837,7 +833,7 @@
memberAvivableCoinInfoVo.setLable(platformFeeSettingEntity.getLable());
arrayList.add(memberAvivableCoinInfoVo);
}
-
+
return Result.ok(arrayList);
}
@@ -925,14 +921,8 @@
accountRecord.setSymbol(memberSubmitCoinApplyDto.getSymbol());
accountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
memberAccountMoneyChangeDao.insert(accountRecord);
- /**
- * TODO dingtalk
- Constant.excutor.execute(new Runnable() {
- @Override public void run() {
- DingTalkUtils.sendActionCard(3);
- }
- });
- */
+
+ ThreadPoolUtils.sendDingTalk(3);
return Result.ok(MessageSourceUtils.getString("member_service_0086"));
} else {
return Result.fail(MessageSourceUtils.getString("member_service_0005"));
@@ -964,7 +954,7 @@
public Result getAppVersionInfo() {
Map<String, Object> columnMap = new HashMap<>();
List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap);
- List<Object> arrayList = new ArrayList<>();
+ List<Object> arrayList = new ArrayList<>();
if(CollUtil.isNotEmpty(selectByMap)) {
for(AppVersionEntity appVersionEntity : selectByMap) {
AppVersionVo appVersionVo = new AppVersionVo();
diff --git a/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java b/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java
index 78727ff..10c1e06 100644
--- a/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java
+++ b/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java
@@ -2,6 +2,7 @@
import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
import com.xcong.excoin.modules.contract.service.impl.OrderWebsocketServiceImpl;
+import com.xcong.excoin.utils.dingtalk.DingTalkUtils;
import java.math.BigDecimal;
import java.util.concurrent.ExecutorService;
@@ -32,4 +33,18 @@
}
});
}
+
+ /**
+ * 发送钉钉消息
+ *
+ * @param type 类型
+ */
+ public static void sendDingTalk(int type) {
+ EXECUTOR.execute(new Runnable() {
+ @Override
+ public void run() {
+ DingTalkUtils.sendActionCard(type);
+ }
+ });
+ }
}
diff --git a/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkType.java b/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkType.java
new file mode 100644
index 0000000..a050396
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkType.java
@@ -0,0 +1,46 @@
+package com.xcong.excoin.utils.dingtalk;
+
+/**
+ * @author helius
+ */
+public enum DingTalkType {
+
+ /**
+ * 确认充值
+ */
+ PAY_COMFIRM("红包来了啊!", 1),
+
+ /**
+ * 快速卖出
+ */
+ FAST_SALE("红包来了啊!!", 2),
+
+ /**
+ * 提笔
+ */
+ TI_COIN("红包来了啊!!!", 3),
+
+ /**
+ * 实名认证
+ */
+ CARD_VERIFY("红包来了啊!!!!", 4),
+ TYPE_FIVE("红包来了啊!!!!!", 5);
+
+ private String name;
+
+ private int index;
+
+ DingTalkType(String name, int i) {
+ this.name = name;
+ this.index = i;
+ }
+
+ public static String getName(int index) {
+ for(DingTalkType type : DingTalkType.values()) {
+ if (type.index == index) {
+ return type.name;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java b/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java
new file mode 100644
index 0000000..67c071b
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java
@@ -0,0 +1,67 @@
+package com.xcong.excoin.utils.dingtalk;
+
+import com.alibaba.fastjson.JSONObject;
+import com.dingtalk.api.DefaultDingTalkClient;
+import com.dingtalk.api.DingTalkClient;
+import com.dingtalk.api.request.OapiRobotSendRequest;
+import com.dingtalk.api.response.OapiRobotSendResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-04-17 22:18
+ **/
+@Slf4j
+public class DingTalkUtils {
+
+ private static final String SECRET = "SECe4afed333b31b66e1d16c87733a29a0b4a3051c71a2960d13e606bfc1dd88b14";
+
+ public static void sendActionCard(int type) {
+ log.info("send dingtalk");
+ String url = "https://oapi.dingtalk.com/robot/send?access_token=161d5e5b60ae5d6b4c80f2a9c35f9f212961a7c7154aa7e94b99503eca3886b0";
+ Long timestamp = System.currentTimeMillis();
+ try {
+ String sign = generateSign(timestamp);
+ url = url + "×tamp=" + timestamp + "&sign=" + sign;
+ DingTalkClient client = new DefaultDingTalkClient(url);
+ OapiRobotSendRequest request = new OapiRobotSendRequest();
+ request.setMsgtype("actionCard");
+ OapiRobotSendRequest.Actioncard actionCard = new OapiRobotSendRequest.Actioncard();
+ actionCard.setTitle(DingTalkType.getName(type));
+ actionCard.setBtnOrientation("1");
+ actionCard.setText(DingTalkType.getName(type));
+ List<OapiRobotSendRequest.Btns> btns = new ArrayList<>();
+ OapiRobotSendRequest.Btns btn1 = new OapiRobotSendRequest.Btns();
+ btn1.setTitle("查看详情");
+ btn1.setActionURL("http://baidu.com");
+ btns.add(btn1);
+ actionCard.setBtns(btns);
+
+ request.setActionCard(actionCard);
+ OapiRobotSendResponse response = client.execute(request);
+ log.info(JSONObject.toJSONString(response));
+ } catch (Exception e) {
+ log.error("#dingtalk send error#", e);
+ } finally {
+ log.error("#dingtalk finally#");
+ }
+ }
+
+
+ private static String generateSign(Long timestamp) throws Exception {
+ String stringToToken = timestamp + "\n" + SECRET;
+ Mac mac = Mac.getInstance("HmacSHA256");
+ mac.init(new SecretKeySpec(SECRET.getBytes("UTF-8"), "HmacSHA256"));
+ byte[] signData = mac.doFinal(stringToToken.getBytes("UTF-8"));
+ String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
+ return sign;
+ }
+
+}
--
Gitblit v1.9.1