| | |
| | | aliases.add(raw); |
| | | } |
| | | String upper = raw.toUpperCase(Locale.ROOT); |
| | | if (upper.contains("EXCELLENT") || raw.contains("\u5353\u8d8a")) { |
| | | if (upper.contains("EXCELLENT") || raw.contains("卓越")) { |
| | | aliases.add("EXCELLENT"); |
| | | aliases.add("\u5353\u8d8a\u4eba\u624d\u5361"); |
| | | aliases.add("\u5353\u8d8a"); |
| | | aliases.add("卓越人才卡"); |
| | | aliases.add("卓越"); |
| | | } |
| | | if (upper.contains("OUTSTANDING") || raw.contains("\u6770\u51fa")) { |
| | | if (upper.contains("OUTSTANDING") || raw.contains("杰出")) { |
| | | aliases.add("OUTSTANDING"); |
| | | aliases.add("\u6770\u51fa\u4eba\u624d\u5361"); |
| | | aliases.add("\u6770\u51fa"); |
| | | aliases.add("杰出人才卡"); |
| | | aliases.add("杰出"); |
| | | } |
| | | if (upper.contains("ELITE") || raw.contains("\u83c1\u82f1") || raw.contains("\u7cbe\u82f1")) { |
| | | if (upper.contains("ELITE") || raw.contains("菁英") || raw.contains("精英")) { |
| | | aliases.add("ELITE"); |
| | | aliases.add("\u83c1\u82f1\u4eba\u624d\u5361"); |
| | | aliases.add("\u83c1\u82f1"); |
| | | aliases.add("菁英人才卡"); |
| | | aliases.add("菁英"); |
| | | } |
| | | return aliases.isEmpty() ? List.of(raw) : List.copyOf(aliases); |
| | | } |
| | |
| | | private String normalizeCardLevel(Object value) { |
| | | String raw = text(value); |
| | | String upper = raw.toUpperCase(Locale.ROOT); |
| | | if (upper.contains("EXCELLENT") || raw.contains("\u5353\u8d8a")) { |
| | | if (upper.contains("EXCELLENT") || raw.contains("卓越")) { |
| | | return "EXCELLENT"; |
| | | } |
| | | if (upper.contains("OUTSTANDING") || raw.contains("\u6770\u51fa")) { |
| | | if (upper.contains("OUTSTANDING") || raw.contains("杰出")) { |
| | | return "OUTSTANDING"; |
| | | } |
| | | if (upper.contains("ELITE") || raw.contains("\u83c1\u82f1") || raw.contains("\u7cbe\u82f1")) { |
| | | if (upper.contains("ELITE") || raw.contains("菁英") || raw.contains("精英")) { |
| | | return "ELITE"; |
| | | } |
| | | return upper; |
| | |
| | | if (cycle.isBlank() || "NONE".equals(cycle)) { |
| | | return LocalDate.of(1970, 1, 1).atStartOfDay(); |
| | | } |
| | | if (cycle.contains("DAY") || cycle.contains("DAILY") || cycle.contains("\u5929") || cycle.contains("\u65e5")) { |
| | | if (cycle.contains("DAY") || cycle.contains("DAILY") || cycle.contains("天") || cycle.contains("日")) { |
| | | return today.atStartOfDay(); |
| | | } |
| | | if (cycle.contains("WEEK") || cycle.contains("\u5468") || cycle.contains("\u661f\u671f")) { |
| | | if (cycle.contains("WEEK") || cycle.contains("周") || cycle.contains("星期")) { |
| | | return today.minusDays(today.getDayOfWeek().getValue() - 1L).atStartOfDay(); |
| | | } |
| | | if (cycle.contains("YEAR") || cycle.contains("ANNUAL") || cycle.contains("\u5e74")) { |
| | | if (cycle.contains("YEAR") || cycle.contains("ANNUAL") || cycle.contains("年")) { |
| | | return today.with(TemporalAdjusters.firstDayOfYear()).atStartOfDay(); |
| | | } |
| | | if (cycle.contains("MONTH") || cycle.contains("\u6708") || monthlyDefault) { |
| | | if (cycle.contains("MONTH") || cycle.contains("月") || monthlyDefault) { |
| | | return today.withDayOfMonth(1).atStartOfDay(); |
| | | } |
| | | return today.with(TemporalAdjusters.firstDayOfYear()).atStartOfDay(); |