KKSU
2024-04-17 d23645e976981bc9b670eea1d469fe8a36be309c
src/main/java/com/xcong/excoin/modules/activity/service/impl/ActivityServiceImpl.java
@@ -69,7 +69,7 @@
   @Override
   public Result getActivityMain() {
      //登录验证
        LoginUserUtils.getAppLoginUser().getId();
        //LoginUserUtils.getAppLoginUser().getId();
        
        ActivityMainVo activityMainVo = new ActivityMainVo();
        //活动图片
@@ -86,6 +86,7 @@
         ActivityMain activityMain = activityMainDao.selectOne(queryWrappers);
         if(ObjectUtil.isNotEmpty(activityMain)) {
            activityMainVo.setId(activityMain.getId());
                activityMainVo.setHtmlImg(activityMain.getHtmlImg());
         }
      }
        return Result.ok(activityMainVo);
@@ -132,6 +133,7 @@
   public Result clinkReceive(long subId) {
      //登录验证
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
      //Long memberId = Long.parseLong("47");
        //验证是否实名认证
        MemberEntity memberEntity = memberDao.selectById(memberId);
        Integer certifyStatus = memberEntity.getCertifyStatus();
@@ -143,17 +145,22 @@
        queryWrapperActivityReceiveRecord.eq("member_id",memberId);
        queryWrapperActivityReceiveRecord.eq("sub_id",subId);
        ActivityReceiveRecord activityReceiveRecord = activityReceiveRecordDao.selectOne(queryWrapperActivityReceiveRecord);
        Date receiveTime = activityReceiveRecord.getReceiveTime();
        Date invalidTime = activityReceiveRecord.getInvalidTime();
        Date date = new Date();
        if(receiveTime.getTime() - date.getTime() < 0) {
           return Result.fail(MessageSourceUtils.getString("activity_service_0002"));
        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"));
        }
//        Date endTime = activityMain.getEndTime();
//        if(endTime.getTime() - date.getTime() < 0) {
//           return Result.fail(MessageSourceUtils.getString("activity_service_0004"));
//        }
        
        //处于失效状态
        Integer receiveState = activityReceiveRecord.getReceiveState();
@@ -167,40 +174,17 @@
        
        //获取对应的规则编码
        ActivitySub activitySub = activitySubDao.selectById(subId);
        String code = activitySub.getCode();
        //获取当前人的累计爆仓金额
        BigDecimal burstUsdt = contractOrderDao.getBurstUsdtByMemberId(memberId);
        burstUsdt = burstUsdt.multiply(new BigDecimal(-1));
        //判断是否满足领取条件
        if(ActivitySub.CODE_TWO.equals(code)) {
           if(ActivitySub.CODE_TWO_BIG_DECIMAL.compareTo(burstUsdt) > 0) {
              return Result.fail(MessageSourceUtils.getString("activity_service_0005"));
           }
        if(!ActivitySub.CODE_ONE.equals(activitySub.getCode())) {
            if(activitySub.getBurstAmount().compareTo(burstUsdt) > 0) {
               return Result.fail(MessageSourceUtils.getString("activity_service_0005"));
            }
        }
        if(ActivitySub.CODE_THREE.equals(code)) {
           if(ActivitySub.CODE_THREE_BIG_DECIMAL.compareTo(burstUsdt) > 0) {
              return Result.fail(MessageSourceUtils.getString("activity_service_0005"));
           }
        }
        if(ActivitySub.CODE_FOUR.equals(code)) {
           if(ActivitySub.CODE_FOUR_BIG_DECIMAL.compareTo(burstUsdt) > 0) {
              return Result.fail(MessageSourceUtils.getString("activity_service_0005"));
           }
        }
        if(ActivitySub.CODE_FIVE.equals(code)) {
           if(ActivitySub.CODE_FIVE_BIG_DECIMAL.compareTo(burstUsdt) > 0) {
              return Result.fail(MessageSourceUtils.getString("activity_service_0005"));
           }
        }
        Long mainId = activitySub.getMainId();
        BigDecimal amount = activitySub.getAmount();
        /**
         * 更新领取记录表
         */
        activityReceiveRecord.setReceiveCoinAmount(amount);
        activityReceiveRecord.setReceiveState(ActivityReceiveRecord.RECEIVESTATE_ONE);
        activityReceiveRecord.setReceiveTime(new Date());
        activityReceiveRecordDao.updateById(activityReceiveRecord);
        /**
         * 更新个人详情页面信息
         */
@@ -228,16 +212,24 @@
        memberAccountMoneyChange.setAmount(amount);
        memberAccountMoneyChange.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
        memberAccountMoneyChange.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue());
        memberAccountMoneyChange.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
        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();
        availableBalance.add(amount);
        totalBalance.add(amount);
        memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amount));
        memberWalletCoinEntity.setTotalBalance(totalBalance.add(amount));
        memberWalletCoinDao.updateById(memberWalletCoinEntity);
      return Result.ok(MessageSourceUtils.getString("activity_service_0006"));
   }