| @@ -287,7 +287,7 @@ public class CouponSendSchedule { | |||||
| continue; | continue; | ||||
| } | } | ||||
| //提前n天发送生日券,不满足跳过不执行 | //提前n天发送生日券,不满足跳过不执行 | ||||
| if (DateUtils.daysBetween(cu.getBirthdate(), new Date()) == beforeDays) { | |||||
| if (DateUtils.birthdaysBetween(cu.getBirthdate()) == beforeDays) { | |||||
| continue; | continue; | ||||
| } | } | ||||
| if (cs.getRemainInventory() <= 0) { | if (cs.getRemainInventory() <= 0) { | ||||
| @@ -144,7 +144,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| scoreRules.setId(idWorker.nextId()); | scoreRules.setId(idWorker.nextId()); | ||||
| scoreRules.setRules(WxScoreRules.getCreditDefaultRules()); | scoreRules.setRules(WxScoreRules.getCreditDefaultRules()); | ||||
| scoreRules.setScale(WxScoreRules.DEFAULT_SCALE); | |||||
| wxScoreRulesMapper.insertSelective(scoreRules); | wxScoreRulesMapper.insertSelective(scoreRules); | ||||
| } | } | ||||
| @@ -36,11 +36,12 @@ public class CreditUtil { | |||||
| // 获取生日积分倍率: | // 获取生日积分倍率: | ||||
| int birthdayScale = WxScoreRules.DEFAULT_SCALE; | int birthdayScale = WxScoreRules.DEFAULT_SCALE; | ||||
| //判断是否生日当天 | //判断是否生日当天 | ||||
| if (Objects.nonNull(wxCUserBasicInfo.getBirthdate()) && DateUtils.daysBetween(new Date(), wxCUserBasicInfo.getBirthdate()) == 0) { | |||||
| WxScoreRules rules = wxScoreRulesService.getScoreRules(wxCUser.getTenantId()); | |||||
| if (Objects.nonNull(wxCUserBasicInfo.getBirthdate()) && DateUtils.birthdaysBetween(wxCUserBasicInfo.getBirthdate()) == 0) { | |||||
| WxScoreRules rules = wxScoreRulesService.getCreditRules(wxCUser.getTenantId()); | |||||
| if (Objects.nonNull(rules) && Objects.nonNull(rules.getScale())) { | if (Objects.nonNull(rules) && Objects.nonNull(rules.getScale())) { | ||||
| birthdayScale = rules.getScale(); | birthdayScale = rules.getScale(); | ||||
| } else { | } else { | ||||
| log.info("会员生日券倍率配置:null"); | |||||
| //没有配置积分规则 | //没有配置积分规则 | ||||
| } | } | ||||
| } | } | ||||
| @@ -5,10 +5,7 @@ import java.sql.Timestamp; | |||||
| import java.text.DateFormat; | import java.text.DateFormat; | ||||
| import java.text.ParseException; | import java.text.ParseException; | ||||
| import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
| import java.time.LocalDate; | |||||
| import java.time.LocalDateTime; | |||||
| import java.time.Period; | |||||
| import java.time.ZoneId; | |||||
| import java.time.*; | |||||
| import java.time.temporal.ChronoUnit; | import java.time.temporal.ChronoUnit; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Calendar; | import java.util.Calendar; | ||||
| @@ -1080,6 +1077,21 @@ public class DateUtils { | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| /** | |||||
| * 日期距离今天还有几天 | |||||
| * | |||||
| * @param date | |||||
| * @return <0 今后n天? | |||||
| */ | |||||
| public static int birthdaysBetween(Date date) { | |||||
| Date today = new Date() ; | |||||
| date.setYear(today.getYear()); | |||||
| Calendar todayCal = Calendar.getInstance(); | |||||
| Calendar birthdayCal = Calendar.getInstance(); | |||||
| birthdayCal.setTime(date); | |||||
| return todayCal.get(Calendar.DAY_OF_YEAR) - birthdayCal.get(Calendar.DAY_OF_YEAR) ; | |||||
| } | |||||
| /** | /** | ||||
| * 获取指定日期n个月后的第一天 | * 获取指定日期n个月后的第一天 | ||||
| * @return | * @return | ||||