xiaoyong931011
2022-10-30 4bcf4fb8c6bf5d45558967fa700d113a04afedd2
src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
@@ -74,6 +74,25 @@
        if(CollUtil.isEmpty(igtOnHookPlanOrders)){
            return;
        }
        String redisKey = "";
        if("prod".equals(active)){
            redisKey = "on_hook_award_id";
        }else{
            redisKey = "on_hook_award_id_test";
        }
        String onHookAwardRedisId = redisUtils.getString(redisKey);
        DappOnHookAward dappOnHookAward = dappOnHookAwardDao.selectById(Long.parseLong(onHookAwardRedisId));
        Date awardTime = dappOnHookAward.getAwardTime();
        DateTime dateTime = DateUtil.offsetMinute(awardTime, 5);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        String yyyyMMddHHMM = sdf.format(dateTime);
        DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM);
        //系统挂机总次数 = 时长 * 60 / 5
        DataDictionaryCustom maxHoursDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.MAX_HOURS.getType(), DataDictionaryEnum.MAX_HOURS.getCode());
        Float maxHours = Float.parseFloat(maxHoursDic.getValue());
        maxHours = maxHours * 60 / 5;
        for(IgtOnHookPlanOrder igtOnHookPlanOrder : igtOnHookPlanOrders){
            BigDecimal avaAmount = igtOnHookPlanOrder.getAvaAmount();
            if(avaAmount.compareTo(BigDecimal.ZERO) > 0){
@@ -82,24 +101,7 @@
                 * 生成一条开奖字表记录
                 * 计算收益
                 */
                String redisKey = "";
                if("prod".equals(active)){
                    redisKey = "on_hook_award_id";
                }else{
                    redisKey = "on_hook_award_id_test";
                }
                String onHookAwardRedisId = redisUtils.getString(redisKey);
                DappOnHookAward dappOnHookAward = dappOnHookAwardDao.selectById(Long.parseLong(onHookAwardRedisId));
                Date awardTime = dappOnHookAward.getAwardTime();
                DateTime dateTime = DateUtil.offsetMinute(awardTime, 5);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                String yyyyMMddHHMM = sdf.format(dateTime);
                DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM);
                //系统挂机总次数 = 时长 * 60 / 5
                DataDictionaryCustom maxHoursDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.MAX_HOURS.getType(), DataDictionaryEnum.MAX_HOURS.getCode());
                Float maxHours = Float.parseFloat(maxHoursDic.getValue());
                maxHours = maxHours * 60 / 5;
                List<IgtOnHookPlanOrderItem> igtOnHookPlanOrderItemsOld = igtOnHookPlanOrderItemDao.selectByIgtIdAndMemberId(igtOnHookPlanOrder.getId(),igtOnHookPlanOrder.getMemberId());
                //如果没有中奖记录则是新增一条1挂机方案的挂机子表记录
                if(CollUtil.isEmpty(igtOnHookPlanOrderItemsOld)){
@@ -203,7 +205,6 @@
                    //获取挂机方案
                    DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCodeAndDesc(
                            DataDictionaryEnum.PLAN_A.getType(),
                            DataDictionaryEnum.PLAN_A.getCode(),
                            Integer.toString(Integer.parseInt(plan)+1));
                    String dataDictionaryCustomValue = dataDictionaryCustom.getValue();
                    JSONObject levelMemberValueParse = JSONUtil.parseObj(dataDictionaryCustomValue);
@@ -237,10 +238,14 @@
                        igtOnHookPlanOrderItemDao.insert(igtOnHookPlanOrderItem);
                        if(2 == igtOnHookPlanOrderItem.getIsGoal()){
                            //返还两次中奖之间的本金
                            Date startTime = igtOnHookPlanOrderItemsOld.get(0).getCreateTime();
                            Date endTime = igtOnHookPlanOrderItem.getCreateTime();
                            Date startTime = null;
                            //返回上次中奖的记录
                            IgtOnHookPlanOrderItem igtOld = igtOnHookPlanOrderItemDao.selectByCreateTimeAndIsgoaAndOrderId(endTime,2,igtOnHookPlanOrder.getId());
                            if(ObjectUtil.isNotEmpty(igtOld)){
                                startTime = igtOld.getCreateTime();
                            }
                            BigDecimal totalAmount = igtOnHookPlanOrderItemDao.selectTotalAmountByCreateTimeAndOrderId(startTime,endTime,igtOnHookPlanOrder.getId());
                            //如果中奖,增加挂机主表的挂机总收益,返还两次中奖之间的本金
                            igtOnHookPlanOrderDao.AddProfitById(igtOnHookPlanOrder.getId()