xiaoyong931011
2023-02-09 e92b00089d8d57899df380135d79864dade09837
src/main/java/cc/mrbird/febs/dapp/enumerate/MemberOnHookPlanEnum.java
@@ -25,14 +25,14 @@
                //最大挂机次数,五分钟开奖一次,一个小时固定次数12次
                int maxTimes = new Double(hours * 12).intValue();
                //预期最大收益
                BigDecimal profitTotal = AppContants.ONHOOK_BASIC_AMOUNT.multiply(hangingRevenue).setScale(2, BigDecimal.ROUND_DOWN);
                BigDecimal profitTotal = AppContants.ONHOOK_BASIC_AMOUNT.multiply(hangingRevenue).setScale(4, BigDecimal.ROUND_DOWN);
                BigDecimal profitTotalNow = BigDecimal.ZERO;
                for(int i=1;i<=maxTimes;){
                    //当实际的收益小于预期的收益时,按照随机,否则只中奖第一方案
                    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);
@@ -42,8 +42,8 @@
                                JSONObject jsonObject = JSONUtil.parseObj(planMapValue);
                                jsonObject.set("isGoal","2");
                                BigDecimal amount = new BigDecimal(jsonObject.get("amount").toString());
                                BigDecimal profit = amount.multiply(hangingRevenue).setScale(2, BigDecimal.ROUND_DOWN);
                                profitTotalNow = profitTotalNow.add(profit).setScale(2, BigDecimal.ROUND_DOWN);
                                BigDecimal profit = amount.multiply(hangingRevenue).setScale(4, BigDecimal.ROUND_DOWN);
                                profitTotalNow = profitTotalNow.add(profit).setScale(4, BigDecimal.ROUND_DOWN);
                                jsonObject.set("profit",profit);
                                linkedList.add(JSONUtil.toJsonStr(jsonObject));
                                maxTimes --;
@@ -62,8 +62,12 @@
                                        jsonObject.set("isGoal","1");
                                    }
                                    BigDecimal amount = new BigDecimal(jsonObject.get("amount").toString());
                                    BigDecimal profit = amount.multiply(hangingRevenue).setScale(2, BigDecimal.ROUND_DOWN);
                                    profitTotalNow = profitTotalNow.add(profit).setScale(2, BigDecimal.ROUND_DOWN);
                                    BigDecimal profit = amount.multiply(hangingRevenue).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 --;
@@ -91,7 +95,7 @@
                            JSONObject jsonObject = JSONUtil.parseObj(planMapValue);
                            jsonObject.set("isGoal","1");
                            BigDecimal amount = new BigDecimal(jsonObject.get("amount").toString());
                            BigDecimal profit = amount.multiply(hangingRevenue).setScale(2, BigDecimal.ROUND_DOWN);
                            BigDecimal profit = amount.multiply(hangingRevenue).setScale(4, BigDecimal.ROUND_DOWN);
                            jsonObject.set("profit",profit);
                            linkedList.add(JSONUtil.toJsonStr(jsonObject));
                        }