From 45189f71f0eb2c119ea15de98c76839e9ee4b570 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 21 Oct 2022 18:14:48 +0800
Subject: [PATCH] 20221021

---
 src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java                             |   16 +++++--
 src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java |    6 ++-
 src/main/java/cc/mrbird/febs/dapp/enumerate/MemberOnHookPlanEnum.java           |   10 +++-
 src/test/java/cc/mrbird/febs/JunitTest.java                                     |   49 ++++++++++++++++++++++++
 4 files changed, 70 insertions(+), 11 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/enumerate/MemberOnHookPlanEnum.java b/src/main/java/cc/mrbird/febs/dapp/enumerate/MemberOnHookPlanEnum.java
index 938983f..cc5fb77 100644
--- a/src/main/java/cc/mrbird/febs/dapp/enumerate/MemberOnHookPlanEnum.java
+++ b/src/main/java/cc/mrbird/febs/dapp/enumerate/MemberOnHookPlanEnum.java
@@ -31,8 +31,8 @@
 
                     //当实际的收益小于预期的收益时,按照随机,否则只中奖第一方案
                     int randomInt = 1;
-                    if(profitTotal.compareTo(profitTotalNow)>0){
-                        randomInt = RandomUtil.randomInt(1, 4);
+                    if(profitTotalNow.compareTo(profitTotal)>0){
+                        randomInt = RandomUtil.randomInt(1, 3);
                     }
                     if(1 == randomInt){
                         String planKey = Integer.toString(randomInt);
@@ -63,7 +63,11 @@
                                     }
                                     BigDecimal amount = new BigDecimal(jsonObject.get("amount").toString());
                                     BigDecimal profit = amount.multiply(hangingRevenue).setScale(4, BigDecimal.ROUND_DOWN);
-                                    profitTotalNow = profitTotalNow.add(profit).setScale(4, BigDecimal.ROUND_DOWN);
+                                    if(j != randomInt){
+                                        profitTotalNow = profitTotalNow.add(profit).subtract(amount).setScale(4, BigDecimal.ROUND_DOWN);
+                                    }else{
+                                        profitTotalNow = profitTotalNow.add(profit).setScale(4, BigDecimal.ROUND_DOWN);
+                                    }
                                     jsonObject.set("profit",profit);
                                     linkedList.add(JSONUtil.toJsonStr(jsonObject));
                                     maxTimes --;
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
index fb1a8ba..ec83cb7 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
@@ -61,6 +61,7 @@
          * 定时器五分钟去更新一下详细记录的状态
          *
          */
+        //todo 发送一条mq消息,根据受益方案生成挂机字表未生效详细记录(目前定时器)
         DappMemberEntity dappMemberEntity = LoginUserUtil.getAppUser();
         Long memberId = dappMemberEntity.getId();
         DappMemberEntity member = dappMemberDao.selectById(memberId);
@@ -172,7 +173,8 @@
             igtOnHookPlanOrderItem.setProfit(profit.multiply(new BigDecimal(planCode)));
             igtOnHookPlanOrderItem.setState(2);
             igtOnHookPlanOrderItem.setPlanCode(planCode);
-            igtOnHookPlanOrderItem.setIsGoal(1);
+            String isGoal = jsonObject.get("isGoal").toString();
+            igtOnHookPlanOrderItem.setIsGoal(Integer.parseInt(isGoal));
             igtOnHookPlanOrderItem.setBelongNum(dappOnHookAwardNext.getRecordNum());
             igtOnHookPlanOrderItem.setOrderNum(orderNum);
             igtOnHookPlanOrderItemDao.insert(igtOnHookPlanOrderItem);
@@ -261,7 +263,7 @@
         ArrayList<ApiAwardInfoVo> apiAwardInfoVos = new ArrayList<>();
         DateTime date = DateUtil.date();
 
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
         String yyyyMMddHHMM = sdf.format(date);
         List<DappOnHookAward> dappOnHookAwards = dappOnHookAwardDao.selectInfoByByAwardTime(yyyyMMddHHMM);
         if(CollUtil.isNotEmpty(dappOnHookAwards)){
diff --git a/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java b/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
index 41e93a7..ecfc0b9 100644
--- a/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
+++ b/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
@@ -213,14 +213,20 @@
     }
 
     public static void main(String[] args) {
+
         DateTime date = DateUtil.date();
-        System.out.println(date);
-        String yyyyMMddHHMM = DateUtil.format(date, "yyyy-MM-dd hh:mm");
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        String yyyyMMddHHMM = sdf.format(date);
+
         System.out.println(yyyyMMddHHMM);
 
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-        String yyyyMMdd = sdf.format(date);
-        System.out.println(yyyyMMdd);
+        DateTime date1 = DateUtil.date();
+
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        String yyyyMMddHHMM1 = sdf1.format(date1);
+
+        System.out.println(yyyyMMddHHMM1);
     }
 
 }
diff --git a/src/test/java/cc/mrbird/febs/JunitTest.java b/src/test/java/cc/mrbird/febs/JunitTest.java
index 53fd20b..0958fac 100644
--- a/src/test/java/cc/mrbird/febs/JunitTest.java
+++ b/src/test/java/cc/mrbird/febs/JunitTest.java
@@ -102,11 +102,58 @@
         System.out.println(awardTime);
         DateTime dateTime = DateUtil.offsetMinute(awardTime, 5);
         for(int i =1; i < 100;i++){
-            String yyyyMMddHHMM = DateUtil.format(dateTime, "yyyy-MM-dd hh:mm");
+            String yyyyMMddHHMM = DateUtil.format(dateTime, "yyyy-MM-dd HH:mm");
 //            DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM);
             System.out.println(yyyyMMddHHMM);
             dateTime = DateUtil.offsetMinute(dateTime, 5);
         }
     }
 
+    @Autowired
+    private DappMemberDao dappMemberDao;
+    @Test
+    public void getplan(){
+        DappMemberEntity dappMember = dappMemberDao.selectById(33);
+        List<DataDictionaryCustom> dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.PLAN_A.getType());
+        LinkedList<Map<String,String>> strings = new LinkedList<>();
+        for(DataDictionaryCustom dataDictionaryCustom : dataDictionaryCustoms){
+            Map<String, String> stringStringHashMap = new HashMap<>();
+            stringStringHashMap.put(dataDictionaryCustom.getDescription(),dataDictionaryCustom.getValue());
+            strings.add(stringStringHashMap);
+        }
+        //收益率
+        BigDecimal hangingRevenue = BigDecimal.ZERO;
+        //挂机时长
+        DataDictionaryCustom maxHours = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.MAX_HOURS.getType(), DataDictionaryEnum.MAX_HOURS.getCode());
+        if(ObjectUtil.isEmpty(maxHours)){
+            throw new FebsException(MessageSourceUtils.getString("login_err_003"));
+        }
+
+        Double maxHoursValue = Double.parseDouble(maxHours.getValue());
+        //获取用户信息的是否盈利字段
+        Integer isProfit = dappMember.getIsProfit() == null ? 1 : dappMember.getIsProfit();
+        String identity = null;
+        if(isProfit == 2){
+            identity = "IS_PROFIT_NO";
+        }else{
+            identity = "LEVEL_MB";
+            DataDictionaryCustom levelMember = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.LEVEL_MB.getType(), dappMember.getIdentity());
+            if(ObjectUtil.isEmpty(levelMember)){
+                throw new FebsException(MessageSourceUtils.getString("login_err_003"));
+            }
+            String levelMemberValue = levelMember.getValue();
+            JSONObject levelMemberValueParse = JSONUtil.parseObj(levelMemberValue);
+            hangingRevenue = new BigDecimal(levelMemberValueParse.get("hangingRevenue").toString())
+                    .multiply(new BigDecimal(0.01)).setScale(4,BigDecimal.ROUND_DOWN);
+        }
+        //获取挂机字表的顺序
+        LinkedList<String> isProfitPlan = new LinkedList<>();
+        Map<String, LinkedList<String>> identity_level = MemberOnHookPlanEnum.valueOf(identity)
+                .getMemberOnHook(maxHoursValue,hangingRevenue,strings);
+        isProfitPlan = identity_level.get(identity);
+        System.out.println(isProfitPlan);
+
+    }
+
+
 }

--
Gitblit v1.9.1