From eb9d939661413fc70975b0a75b44126c257bdc49 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 14 Apr 2021 18:27:43 +0800
Subject: [PATCH] 20210414 测试账号的跟随者不返利给交易员
---
src/main/java/com/xcong/excoin/modules/activity/service/impl/ActivityServiceImpl.java | 232 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 229 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/activity/service/impl/ActivityServiceImpl.java b/src/main/java/com/xcong/excoin/modules/activity/service/impl/ActivityServiceImpl.java
index a4b34d8..1c7be54 100644
--- a/src/main/java/com/xcong/excoin/modules/activity/service/impl/ActivityServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/activity/service/impl/ActivityServiceImpl.java
@@ -1,17 +1,46 @@
package com.xcong.excoin.modules.activity.service.impl;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xcong.excoin.common.LoginUserUtils;
+import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum;
import com.xcong.excoin.common.response.Result;
import com.xcong.excoin.modules.activity.dao.ActivityMainDao;
import com.xcong.excoin.modules.activity.dao.ActivityMemberDetailDao;
import com.xcong.excoin.modules.activity.dao.ActivityReceiveRecordDao;
import com.xcong.excoin.modules.activity.dao.ActivitySubDao;
import com.xcong.excoin.modules.activity.entity.ActivityMain;
+import com.xcong.excoin.modules.activity.entity.ActivityMemberDetail;
+import com.xcong.excoin.modules.activity.entity.ActivityReceiveRecord;
+import com.xcong.excoin.modules.activity.entity.ActivitySub;
import com.xcong.excoin.modules.activity.service.ActivityService;
+import com.xcong.excoin.modules.activity.vo.ActivityMainDetailVo;
+import com.xcong.excoin.modules.activity.vo.ActivityMainVo;
+import com.xcong.excoin.modules.activity.vo.ActivityReceiveRecordVo;
+import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
+import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
+import com.xcong.excoin.modules.contract.dao.ContractOrderDao;
+import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
+import com.xcong.excoin.modules.documentary.vo.MemberIsTradeVo;
+import com.xcong.excoin.modules.member.dao.MemberDao;
+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.platform.dao.PlatformBannerDao;
+import com.xcong.excoin.modules.platform.entity.PlatformBannerEntity;
+import com.xcong.excoin.utils.MessageSourceUtils;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@@ -26,11 +55,208 @@
private ActivityMemberDetailDao activityMemberDetailDao;
@Resource
private ActivityReceiveRecordDao activityReceiveRecordDao;
+ @Resource
+ private MemberDao memberDao;
+ @Resource
+ PlatformBannerDao platformBannerDao;
+ @Resource
+ ContractOrderDao contractOrderDao;
+ @Resource
+ MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
+ @Resource
+ MemberWalletCoinDao memberWalletCoinDao;
@Override
- public Result getActivityMainList() {
- // TODO Auto-generated method stub
- return null;
+ public Result getActivityMain() {
+ //登录验证
+ //LoginUserUtils.getAppLoginUser().getId();
+
+ ActivityMainVo activityMainVo = new ActivityMainVo();
+ //活动图片
+ QueryWrapper<PlatformBannerEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_banner",PlatformBannerEntity.BANNER_NO);
+ PlatformBannerEntity platformBannerEntity = platformBannerDao.selectOne(queryWrapper);
+ //查询图片绑定的活动
+ if(ObjectUtil.isNotEmpty(platformBannerEntity)) {
+ activityMainVo.setImageUrl(platformBannerEntity.getImageUrl());
+ activityMainVo.setIsJump(Integer.parseInt(platformBannerEntity.getIsJump()));
+
+ QueryWrapper<ActivityMain> queryWrappers = new QueryWrapper<>();
+ queryWrappers.eq("banner_id",platformBannerEntity.getId());
+ ActivityMain activityMain = activityMainDao.selectOne(queryWrappers);
+ if(ObjectUtil.isNotEmpty(activityMain)) {
+ activityMainVo.setId(activityMain.getId());
+ activityMainVo.setHtmlImg(activityMain.getHtmlImg());
+ }
+ }
+ return Result.ok(activityMainVo);
}
+ @Override
+ public Result getActivityMainDetail(long id) {
+ //登录验证
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+ ActivityMainDetailVo activityMainDetailVo = new ActivityMainDetailVo();
+
+ /**
+ * 头部信息
+ */
+ QueryWrapper<ActivityMemberDetail> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("member_id",memberId);
+ queryWrapper.eq("main_id",id);
+ ActivityMemberDetail activityMemberDetail = activityMemberDetailDao.selectOne(queryWrapper);
+ //获取当前人的累计爆仓金额
+ BigDecimal burstUsdt = contractOrderDao.getBurstUsdtByMemberId(memberId);
+ activityMainDetailVo.setBurstUsdt(burstUsdt);
+ activityMainDetailVo.setReceivedUsdt(activityMemberDetail.getReceivedUsdt());
+ activityMainDetailVo.setSurplusUsdt(activityMemberDetail.getSurplusUsdt());
+ /**
+ * 活动名称
+ */
+ ActivityMain activityMain = activityMainDao.selectById(id);
+ activityMainDetailVo.setName(activityMain.getName());
+ activityMainDetailVo.setContent(activityMain.getContent());
+ activityMainDetailVo.setState(activityMain.getState());
+ activityMainDetailVo.setStartTime(activityMain.getStartTime());
+ activityMainDetailVo.setEndTime(activityMain.getEndTime());
+ /**
+ * 活动细则
+ */
+ //根据活动主表ID和memberID获取对应的活动细则
+ List<ActivityReceiveRecordVo> activityReceiveRecordVos = activityReceiveRecordDao.selectListByMemberIdAndMainId(memberId,id);
+ activityMainDetailVo.setActivityReceiveRecordVos(activityReceiveRecordVos);
+ return Result.ok(activityMainDetailVo);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Result clinkReceive(long subId) {
+ //登录验证
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+ //Long memberId = Long.parseLong("47");
+ //验证是否实名认证
+ MemberEntity memberEntity = memberDao.selectById(memberId);
+ Integer certifyStatus = memberEntity.getCertifyStatus();
+ if(MemberEntity.CERTIFY_STATUS_Y != certifyStatus) {
+ return Result.fail(MessageSourceUtils.getString("activity_service_0001"));
+ }
+ //验证领取记录是否失效
+ QueryWrapper<ActivityReceiveRecord> queryWrapperActivityReceiveRecord = new QueryWrapper<>();
+ queryWrapperActivityReceiveRecord.eq("member_id",memberId);
+ queryWrapperActivityReceiveRecord.eq("sub_id",subId);
+ ActivityReceiveRecord activityReceiveRecord = activityReceiveRecordDao.selectOne(queryWrapperActivityReceiveRecord);
+ Date invalidTime = activityReceiveRecord.getInvalidTime();
+ Date date = new Date();
+ if(ObjectUtil.isNotEmpty(invalidTime.getTime())) {
+ if(invalidTime.getTime() - date.getTime() < 0) {
+ //更新失效状态
+ activityReceiveRecord.setReceiveState(ActivityReceiveRecord.RECEIVESTATE_THREE);
+ activityReceiveRecordDao.updateById(activityReceiveRecord);
+ return Result.fail(MessageSourceUtils.getString("activity_service_0002"));
+ }
+ }
+ //验证当前活动是否结束
+ ActivityMain activityMain = activityMainDao.selectById(activityReceiveRecord.getMainId());
+// Date endTime = activityMain.getEndTime();
+// if(endTime.getTime() - date.getTime() < 0) {
+// return Result.fail(MessageSourceUtils.getString("activity_service_0004"));
+// }
+
+ //处于失效状态
+ Integer receiveState = activityReceiveRecord.getReceiveState();
+ if(ActivityReceiveRecord.RECEIVESTATE_THREE == receiveState) {
+ return Result.fail(MessageSourceUtils.getString("activity_service_0002"));
+ }
+ //不能重复领取
+ if(ActivityReceiveRecord.RECEIVESTATE_ONE == receiveState) {
+ return Result.fail(MessageSourceUtils.getString("activity_service_0003"));
+ }
+
+ //获取对应的规则编码
+ ActivitySub activitySub = activitySubDao.selectById(subId);
+ //获取当前人的累计爆仓金额
+ BigDecimal burstUsdt = contractOrderDao.getBurstUsdtByMemberId(memberId);
+ burstUsdt = burstUsdt.multiply(new BigDecimal(-1));
+ //判断是否满足领取条件
+ if(!ActivitySub.CODE_ONE.equals(activitySub.getCode())) {
+ if(activitySub.getBurstAmount().compareTo(burstUsdt) > 0) {
+ return Result.fail(MessageSourceUtils.getString("activity_service_0005"));
+ }
+ }
+ Long mainId = activitySub.getMainId();
+ BigDecimal amount = activitySub.getAmount();
+ /**
+ * 更新个人详情页面信息
+ */
+ QueryWrapper<ActivityMemberDetail> queryWrapperMemberDetail = new QueryWrapper<>();
+ queryWrapperMemberDetail.eq("member_id",memberId);
+ queryWrapperMemberDetail.eq("main_id",mainId);
+ ActivityMemberDetail activityMemberDetail = activityMemberDetailDao.selectOne(queryWrapperMemberDetail);
+ //累计爆仓金额
+ activityMemberDetail.setBurstUsdt(burstUsdt);
+ //已领取USDT
+ BigDecimal receivedUsdt = activityMemberDetail.getReceivedUsdt();
+ BigDecimal addReceivedUsdt = receivedUsdt.add(amount);
+ activityMemberDetail.setReceivedUsdt(addReceivedUsdt);
+ //剩余待领取
+ BigDecimal amountMain = activityMain.getAmount();
+ BigDecimal subtractSurplusUsdt = amountMain.subtract(addReceivedUsdt);
+ activityMemberDetail.setSurplusUsdt(subtractSurplusUsdt);
+ activityMemberDetailDao.updateById(activityMemberDetail);
+ /**
+ * 生成一个币币流水记录
+ */
+ MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange();
+ memberAccountMoneyChange.setContent(MemberWalletCoinEnum.CONTENTFROMACTIVITY.getValue());
+ memberAccountMoneyChange.setMemberId(memberId);
+ memberAccountMoneyChange.setAmount(amount);
+ memberAccountMoneyChange.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
+ memberAccountMoneyChange.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue());
+ memberAccountMoneyChange.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT);
+ memberAccountMoneyChangeDao.insert(memberAccountMoneyChange);
+ /**
+ * 更新领取记录表
+ */
+ activityReceiveRecord.setReceiveCoinAmount(amount);
+ activityReceiveRecord.setReceiveState(ActivityReceiveRecord.RECEIVESTATE_ONE);
+ activityReceiveRecord.setReceiveTime(new Date());
+ activityReceiveRecord.setAmcId(memberAccountMoneyChange.getId());
+ activityReceiveRecordDao.updateById(activityReceiveRecord);
+ /**
+ * 更新币币账户
+ */
+ MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, MemberWalletCoinEnum.WALLETCOINCODE.getValue());
+ BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance();
+ BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance();
+ memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amount));
+ memberWalletCoinEntity.setTotalBalance(totalBalance.add(amount));
+ memberWalletCoinDao.updateById(memberWalletCoinEntity);
+ return Result.ok(MessageSourceUtils.getString("activity_service_0006"));
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
}
--
Gitblit v1.9.1