|
@@ -9,49 +9,92 @@ import java.time.DayOfWeek;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalTime;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
import java.util.Random;
|
|
|
|
|
|
@RestController
|
|
|
@RequestMapping("/qjt")
|
|
|
public class QjingtController {
|
|
|
|
|
|
- @GetMapping
|
|
|
- public BaseResult isWeekend() {
|
|
|
- ArrayList<Object> num = new ArrayList<>();
|
|
|
+ //@GetMapping
|
|
|
+// public BaseResult isWeekend() {
|
|
|
+// ArrayList<Object> num = new ArrayList<>();
|
|
|
+// LocalDate today = LocalDate.now();
|
|
|
+// LocalTime now = LocalTime.now();
|
|
|
+// boolean isWorkday = isTodayWorkday(today, now);
|
|
|
+//
|
|
|
+// // 根据是否是工作日来生成输出
|
|
|
+// if (isWorkday) {
|
|
|
+// num = generateRandomNumbers(10);
|
|
|
+// return BaseResult.ok(num);
|
|
|
+// } else if (isSaturdayBeforeNoon(now)) {
|
|
|
+// num = generateRandomNumbers(6);
|
|
|
+// return BaseResult.ok(num);
|
|
|
+// } else {
|
|
|
+// num.add(0);
|
|
|
+// num.add(0);
|
|
|
+// return BaseResult.ok(num);
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// private boolean isTodayWorkday(LocalDate date, LocalTime time) {
|
|
|
+// DayOfWeek dayOfWeek = date.getDayOfWeek();
|
|
|
+// return !(dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY);
|
|
|
+// }
|
|
|
+//
|
|
|
+// private boolean isSaturdayBeforeNoon(LocalTime time) {
|
|
|
+// return time.isBefore(LocalTime.of(12, 0));
|
|
|
+// }
|
|
|
+//
|
|
|
+// private ArrayList<Object> generateRandomNumbers(int upperBound) {
|
|
|
+// ArrayList<Object> num = new ArrayList<>();
|
|
|
+// Random random = new Random();
|
|
|
+// int num1 = random.nextInt(upperBound); // 生成0到upperBound-1之间的随机数
|
|
|
+// int num2 = random.nextInt(upperBound); // 再次生成0到upperBound-1之间的随机数
|
|
|
+// num.add(num1);
|
|
|
+// num.add(num2);
|
|
|
+// return num;
|
|
|
+// }
|
|
|
+
|
|
|
+ @GetMapping()
|
|
|
+ public BaseResult getCustomRandomNumbers() {
|
|
|
LocalDate today = LocalDate.now();
|
|
|
LocalTime now = LocalTime.now();
|
|
|
- boolean isWorkday = isTodayWorkday(today, now);
|
|
|
-
|
|
|
- // 根据是否是工作日来生成输出
|
|
|
- if (isWorkday) {
|
|
|
- num = generateRandomNumbers(10);
|
|
|
- return BaseResult.ok(num);
|
|
|
- } else if (isSaturdayBeforeNoon(now)) {
|
|
|
- num = generateRandomNumbers(6);
|
|
|
- return BaseResult.ok(num);
|
|
|
- } else {
|
|
|
- num.add(0);
|
|
|
- num.add(0);
|
|
|
- return BaseResult.ok(num);
|
|
|
- }
|
|
|
+ List<Integer> numbers = new ArrayList<>();
|
|
|
+ numbers.add(determineRandomNumber(today, now));
|
|
|
+ numbers.add(determineRandomNumber(today, now));
|
|
|
+ return BaseResult.ok(numbers);
|
|
|
}
|
|
|
|
|
|
- private boolean isTodayWorkday(LocalDate date, LocalTime time) {
|
|
|
+ private int determineRandomNumber(LocalDate date, LocalTime time) {
|
|
|
DayOfWeek dayOfWeek = date.getDayOfWeek();
|
|
|
- return !(dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY);
|
|
|
- }
|
|
|
|
|
|
- private boolean isSaturdayBeforeNoon(LocalTime time) {
|
|
|
- return time.isBefore(LocalTime.of(12, 0));
|
|
|
+ // 周日返回0
|
|
|
+ if (dayOfWeek == DayOfWeek.SUNDAY) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 周六9点到12点返回1到5之间的随机数
|
|
|
+ if (dayOfWeek == DayOfWeek.SATURDAY && time.isAfter(LocalTime.of(9, 0)) && time.isBefore(LocalTime.of(12, 0))) {
|
|
|
+ return generateRandomNumber(1, 5);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 周一到周五的时间段处理
|
|
|
+ if (dayOfWeek.getValue() >= DayOfWeek.MONDAY.getValue() && dayOfWeek.getValue() <= DayOfWeek.FRIDAY.getValue()) {
|
|
|
+ if ((time.isAfter(LocalTime.of(9, 0)) && time.isBefore(LocalTime.of(12, 0))) ||
|
|
|
+ (time.isAfter(LocalTime.of(14, 0)) && time.isBefore(LocalTime.of(17, 30)))) {
|
|
|
+ return generateRandomNumber(2, 8);
|
|
|
+ } else if ((time.isAfter(LocalTime.of(11, 59)) && time.isBefore(LocalTime.of(14, 0)))) {
|
|
|
+ return generateRandomNumber(1, 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 其他时间返回0
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
- private ArrayList<Object> generateRandomNumbers(int upperBound) {
|
|
|
- ArrayList<Object> num = new ArrayList<>();
|
|
|
+ private int generateRandomNumber(int min, int max) {
|
|
|
Random random = new Random();
|
|
|
- int num1 = random.nextInt(upperBound); // 生成0到upperBound-1之间的随机数
|
|
|
- int num2 = random.nextInt(upperBound); // 再次生成0到upperBound-1之间的随机数
|
|
|
- num.add(num1);
|
|
|
- num.add(num2);
|
|
|
- return num;
|
|
|
+ return random.nextInt(max - min + 1) + min;
|
|
|
}
|
|
|
}
|