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 --; 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)){ 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); } } 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); } }