diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreRulesController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreRulesController.java index d08859336..4ec4a677e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreRulesController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreRulesController.java @@ -88,6 +88,9 @@ public class WxScoreRulesController extends BaseController { @SystemControllerLog(description = "积分-配置") public ResultData creditDoubleRulesList() { logger.debug("[" + getIpAddr() + "] creditDoubleRulesList::list"); + if(StringUtils.isBlank(getTenantInfo().getTenantId())){ + return new ResultData(ErrorCode.USER_NO_PERMISSION,"集团用户无此权限"); + } WxScoreRules scoreRules = wxScoreRulesService.getCreditDoubleRules(getTenantInfo().getTenantId()); return new ResultData(scoreRules); } diff --git a/mallinkService/src/main/java/com/iformall/utils/CreditUtil.java b/mallinkService/src/main/java/com/iformall/utils/CreditUtil.java index b0a778086..ade8e4ac9 100644 --- a/mallinkService/src/main/java/com/iformall/utils/CreditUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/CreditUtil.java @@ -95,7 +95,7 @@ public class CreditUtil { //没有发过生日券的用户或者没有享受过生日积分倍率的用户 if(Objects.isNull(wxCUserBasicInfo.getScoreDate())) { //设置过生日的用户 - if (Objects.nonNull(wxCUserBasicInfo.getBirthdate()) && DateUtils.birthdaysBetween(wxCUserBasicInfo.getBirthdate()) == 0) { + if (Objects.nonNull(wxCUserBasicInfo.getBirthdate()) && DateUtils.isBirthdays(wxCUserBasicInfo.getBirthdate())) { birthdayScale = getBirthdayScoreScale(tenantId,wxScoreRulesService); } else { log.info("积分倍率计算:未设置生日或生日条件未匹配={}", wxCUserBasicInfo.getScoreDate()); @@ -104,10 +104,10 @@ public class CreditUtil { if(Objects.nonNull(wxCUserBasicInfo.getScoreDate())){ int scoreYear = DateUtils.getYear(wxCUserBasicInfo.getScoreDate()); int year = DateUtils.getYear(new Date()); - if(scoreYear == year && DateUtils.birthdaysBetween(wxCUserBasicInfo.getScoreDate()) == 0){ + if(scoreYear == year && DateUtils.isBirthdays(wxCUserBasicInfo.getScoreDate())){ birthdayScale = getBirthdayScoreScale(tenantId, wxScoreRulesService); }else{ - if (Objects.nonNull(wxCUserBasicInfo.getBirthdate()) && DateUtils.birthdaysBetween(wxCUserBasicInfo.getBirthdate()) == 0) { + if (Objects.nonNull(wxCUserBasicInfo.getBirthdate()) && DateUtils.isBirthdays(wxCUserBasicInfo.getBirthdate())) { birthdayScale = getBirthdayScoreScale(tenantId,wxScoreRulesService); } else { log.info("积分倍率计算:未设置生日或生日条件未匹配={}", wxCUserBasicInfo.getScoreDate()); @@ -197,14 +197,18 @@ public class CreditUtil { if(cycleStart.contains("-") && cycleEnd.contains("-")){ String[] cycleStarts = cycleStart.split("-"); String[] cycleEnds = cycleEnd.split("-"); - int monthStart = Integer.parseInt(cycleStarts[0]); - int monthEnd = Integer.parseInt(cycleEnds[0]); + int monthStart = Integer.parseInt(cycleStarts[1]); + int monthEnd = Integer.parseInt(cycleEnds[1]); if(month >= monthStart && month <= monthEnd){ - int dayStart = Integer.parseInt(cycleStarts[1]); - int dayEnd = Integer.parseInt(cycleEnds[1]); - if(monthDay >= dayStart && monthDay <= dayEnd){ - memberDayScale = cycleScale; + int dayStart = Integer.parseInt(cycleStarts[2]); + int dayEnd = Integer.parseInt(cycleEnds[2]); + if(month == monthStart && monthDay < dayStart){ + break; } + if(month == monthEnd && monthDay > dayEnd){ + break; + } + memberDayScale = cycleScale; } } } catch (NumberFormatException e) { diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 2e84f4da0..9cac3911a 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -1343,4 +1343,23 @@ public class DateUtils { return year; } + /** + * 判断生日 + * @param date + * @return + */ + public static boolean isBirthdays(Date date) { + Calendar todayCal = Calendar.getInstance(); + int todayMonth = todayCal.get(Calendar.MONTH) + 1; + int todayDay = todayCal.get(Calendar.DAY_OF_MONTH); + Calendar birthdayCal = Calendar.getInstance(); + birthdayCal.setTime(date); + int birthMonth = birthdayCal.get(Calendar.MONTH) + 1; + int birthDay = birthdayCal.get(Calendar.DAY_OF_MONTH); + if(todayMonth == birthMonth && todayDay == birthDay){ + return true; + } + return false; + } + }