From 8aa47d90a9596c34def404a29b50eddc2dac756f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 25 Feb 2022 13:19:47 +0800
Subject: [PATCH] 20222223

---
 src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java |   79 +++++++++++++++++++++++++++++++--------
 1 files changed, 63 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
index 54eed4f..fa81e53 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
@@ -9,8 +9,9 @@
 import cn.hutool.core.date.DateUtil;
 import com.xcong.excoin.modules.coin.dao.ZhiYaDao;
 import com.xcong.excoin.modules.coin.dao.ZhiYaRecordDao;
-import com.xcong.excoin.modules.coin.entity.ZhiYaEntity;
-import com.xcong.excoin.modules.coin.entity.ZhiYaRecordEntity;
+import com.xcong.excoin.modules.coin.dao.ZhiyaRewardDao;
+import com.xcong.excoin.modules.coin.entity.*;
+import com.xcong.excoin.modules.coin.parameter.dto.ZhiyaRewardRecordsPageDto;
 import com.xcong.excoin.modules.coin.parameter.vo.*;
 import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
 import org.springframework.stereotype.Service;
@@ -24,8 +25,6 @@
 import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum;
 import com.xcong.excoin.common.response.Result;
 import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
-import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
-import com.xcong.excoin.modules.coin.entity.OrderCoinsDealEntity;
 import com.xcong.excoin.modules.coin.mapper.MemberAccountMoneyChangeMapper;
 import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto;
 import com.xcong.excoin.modules.coin.service.CoinService;
@@ -61,6 +60,8 @@
     MemberWalletAgentDao memberWalletAgentDao;
     @Resource
     ZhiYaRecordDao zhiYaRecordDao;
+    @Resource
+    ZhiyaRewardDao zhiyaRewardDao;
     @Resource
     ZhiYaDao zhiYaDao;
     @Resource
@@ -612,6 +613,7 @@
     }
 
     @Override
+    @Transactional
     public Result usdtToGusd(BigDecimal balance,Integer type) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
@@ -722,6 +724,7 @@
     }
 
     @Override
+    @Transactional
     public Result zhiYaGusd(BigDecimal balance) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
@@ -751,8 +754,8 @@
             return Result.fail(MessageSourceUtils.getString("member_service_0096"));
         }
         //产生质押单,当前有的话,累加质押数量
-        ZhiYaRecordEntity zhiYaRecord = zhiYaRecordDao.selectByMemberIdAndOrderStatus(memberId,1);
-        if(ObjectUtil.isEmpty(zhiYaRecord)){
+//        ZhiYaRecordEntity zhiYaRecord = zhiYaRecordDao.selectByMemberIdAndOrderStatus(memberId,1);
+//        if(ObjectUtil.isEmpty(zhiYaRecord)){
             //产生一条质押记录
             ZhiYaRecordEntity zhiYaRecordEntity = new ZhiYaRecordEntity();
             zhiYaRecordEntity.setMemberId(memberId);
@@ -764,18 +767,19 @@
             Date newDate = DateUtil.offsetDay(date, 1);
             zhiYaRecordEntity.setEffectDate(newDate);
             zhiYaRecordDao.insert(zhiYaRecordEntity);
-        }else{
-            zhiYaRecord.setZhiyaCnt(zhiYaRecord.getZhiyaCnt().add(balance));
-            Date date = new Date();
-            Date newDate = DateUtil.offsetDay(date, 1);
-            zhiYaRecord.setEffectDate(newDate);
-            zhiYaRecordDao.updateById(zhiYaRecord);
-        }
+//        }else{
+//            zhiYaRecord.setZhiyaCnt(zhiYaRecord.getZhiyaCnt().add(balance));
+//            Date date = new Date();
+//            Date newDate = DateUtil.offsetDay(date, 1);
+//            zhiYaRecord.setEffectDate(newDate);
+//            zhiYaRecordDao.updateById(zhiYaRecord);
+//        }
 
         return Result.ok(MessageSourceUtils.getString("member_service_0024"));
     }
 
     @Override
+    @Transactional
     public Result shuhuiGusd(BigDecimal balance,Long id) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
@@ -794,10 +798,11 @@
         if(balance.compareTo(zhiyaCnt) > 0){
             return Result.fail(MessageSourceUtils.getString("zhiya_service_0004"));
         }
-        zhiYaRecordEntity.setZhiyaCnt(zhiyaCnt.subtract(balance));
-        if(zhiyaCnt.compareTo(balance) == 0){
-            zhiYaRecordEntity.setOrderStatus(2);
+//        zhiYaRecordEntity.setZhiyaCnt(zhiyaCnt.subtract(balance));
+        if(zhiyaCnt.compareTo(balance) != 0){
+            return Result.fail(MessageSourceUtils.getString("zhiya_service_0001"));
         }
+        zhiYaRecordEntity.setOrderStatus(2);
         zhiYaRecordDao.updateById(zhiYaRecordEntity);
         //赎回Gusd,质押数量进入可用余额,
         ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
@@ -856,6 +861,48 @@
         return Result.ok(lists);
     }
 
+    @Override
+    @Transactional
+    public void grantZhiyaAmount() {
+        //获取每日总奖励
+        BigDecimal gusdReward = new BigDecimal(redisUtils.getString("GUSDREWARD"));
+        //获取每日质押总数
+        Long totalGusd = zhiYaRecordDao.selectTotalGusdByStatueAndTime(1,new Date());
+        BigDecimal totalGusdBigDecimal = new BigDecimal(totalGusd);
+        if(totalGusdBigDecimal.compareTo(BigDecimal.ZERO) > 0){
+            //平均一个获取奖励数量
+            BigDecimal divide = gusdReward.divide(totalGusdBigDecimal,2, BigDecimal.ROUND_HALF_UP);
+            //获取今天之前满足发放奖励的全部质押单
+            //生效时间小于当前时间
+            //状态为生效中
+            List<ZhiYaRecordEntity> lists = zhiYaRecordDao.selectZhiYaRewardByStatueAndTime(1,new Date());
+            if(CollUtil.isNotEmpty(lists)){
+                for(ZhiYaRecordEntity zhiYaRecordEntity : lists){
+                    ZhiyaRewardEntity zhiyaRewardEntity = new ZhiyaRewardEntity();
+                    zhiyaRewardEntity.setRecordId(zhiYaRecordEntity.getId());
+                    zhiyaRewardEntity.setRecordNo(zhiYaRecordEntity.getOrderNo());
+                    zhiyaRewardEntity.setMemberId(zhiYaRecordEntity.getMemberId());
+                    zhiyaRewardEntity.setRewardAmout(divide.multiply(zhiYaRecordEntity.getZhiyaCnt()));
+                    zhiyaRewardDao.insert(zhiyaRewardEntity);
+                }
+            }
+        }
+    }
+
+    @Override
+    public Result getZhiyaReward(ZhiyaRewardRecordsPageDto recordsPageDto) {
+
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        Page<ZhiyaRewardVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
+        ZhiyaRewardEntity zhiyaRewardEntity = new ZhiyaRewardEntity();
+        zhiyaRewardEntity.setMemberId(memberId);
+        zhiyaRewardEntity.setRecordNo(recordsPageDto.getOrderNo());
+        IPage<ZhiyaRewardVo> lists = zhiYaRecordDao.selectZhiyaRewardByMemberIdInPage(page, zhiyaRewardEntity);
+        return Result.ok(lists);
+    }
+
     public String generateSimpleSerialno(String userId) {
         StringBuilder sb = new StringBuilder();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

--
Gitblit v1.9.1