|
@@ -1588,37 +1588,36 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
List<Integer> activeIds = rewardsRulesDtos.stream().map(e -> e.getActiveId()).collect(Collectors.toList());
|
|
|
List<CourseScheduleRewardsRules> rewardsRules = courseScheduleRewardsRulesService.findByIds(activeIds);
|
|
|
Map<Integer, List<CourseScheduleRewardsRules>> integerListMap = rewardsRules.stream().collect(Collectors.groupingBy(CourseScheduleRewardsRules::getId));
|
|
|
+ String currentMonth = DateUtil.format(new Date(),DateUtil.ISO_YEAR_MONTH_FORMAT);
|
|
|
rewardsRulesDtos.forEach(e->{
|
|
|
- CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
|
|
|
- String rewardsRulesJson = rewardsRule.getRewardsRulesJson();
|
|
|
- List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRulesJson, RewardsRulesJsonDto.class);
|
|
|
- BigDecimal money = BigDecimal.ZERO;
|
|
|
- //STAIR 阶梯, PER 累计, TOTAL
|
|
|
- switch (rewardsRule.getRewardMode()){
|
|
|
- case STAIR:
|
|
|
- rulesJsonDtos.forEach(rule->{
|
|
|
- if(e.getTimes() >= rule.getMin()){
|
|
|
- money.add(rule.getMoney());
|
|
|
+ //当前用户是否已经发放过上月奖励
|
|
|
+ Integer num = sysUserCashAccountDetailDao.countByTypeAndTime(currentMonth,e.getTeacherId());
|
|
|
+ if(num == null || num == 0) {
|
|
|
+ CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
|
|
|
+ List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRule.getRewardsRulesJson(), RewardsRulesJsonDto.class);
|
|
|
+ BigDecimal money = BigDecimal.ZERO;
|
|
|
+ //STAIR 阶梯, PER 累计, TOTAL
|
|
|
+ switch (rewardsRule.getRewardMode()) {
|
|
|
+ case STAIR:
|
|
|
+ for (RewardsRulesJsonDto rule : rulesJsonDtos) {
|
|
|
+ if (e.getTimes() >= rule.getMin()) {
|
|
|
+ money = money.add(rule.getMoney());
|
|
|
+ }
|
|
|
}
|
|
|
- });
|
|
|
- break;
|
|
|
- case PER:
|
|
|
- int count = 0;
|
|
|
- for (RewardsRulesJsonDto rule:rulesJsonDtos) {
|
|
|
- if(e.getTimes() >= rule.getMin()){
|
|
|
- count++;
|
|
|
- rule.getMoney().multiply(new BigDecimal(count));
|
|
|
+ break;
|
|
|
+ case PER:
|
|
|
+ int count = 0;
|
|
|
+ for (RewardsRulesJsonDto rule : rulesJsonDtos) {
|
|
|
+ if (e.getTimes() >= rule.getMin()) {
|
|
|
+ count++;
|
|
|
+ money = rule.getMoney().multiply(new BigDecimal(count));
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- break;
|
|
|
- case TOTAL:
|
|
|
- break;
|
|
|
- }
|
|
|
- if (money.doubleValue() > 0) {
|
|
|
- //当前用户是否已经发放过上月奖励
|
|
|
- String currentMonth = DateUtil.format(new Date(),DateUtil.ISO_YEAR_MONTH_FORMAT);
|
|
|
- Integer num = sysUserCashAccountDetailDao.countByTypeAndTime(currentMonth);
|
|
|
- if(num == null || num == 0){
|
|
|
+ break;
|
|
|
+ case TOTAL:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (money.doubleValue() > 0) {
|
|
|
sysUserCashAccountDetailService.addCashAccountDetail(e.getTeacherId(), money, "", SysUserCashAccountDetailService.ORGAN,
|
|
|
PlatformCashAccountDetailTypeEnum.REWARDS, null, DealStatusEnum.SUCCESS, "分部奖励");
|
|
|
}
|