You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
4.2 KiB

2 months ago
2 months ago
2 months ago
  1. package com.example.demo.serviceImpl;
  2. import com.example.demo.mapper.GeneralMapper;
  3. import com.example.demo.service.GeneralService;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import java.time.LocalDateTime;
  9. import java.time.LocalTime;
  10. import java.time.ZoneId;
  11. import java.util.*;
  12. import java.util.stream.Collectors;
  13. /**
  14. * @program: GOLD
  15. * @ClassName GeneralServiceImpl
  16. * @description:
  17. * @author: huangqizhen
  18. * @create: 202506-22 11:01
  19. * @Version 1.0
  20. **/
  21. @Service
  22. public class GeneralServiceImpl implements GeneralService {
  23. private static final Logger log = LoggerFactory.getLogger(GeneralServiceImpl.class);
  24. @Autowired
  25. private GeneralMapper generalMapper;
  26. @Override
  27. public List<String> getMarket() {
  28. List<String> list = generalMapper.getMarket();
  29. return list;
  30. }
  31. @Override
  32. public List<String> getPlatform() {
  33. List<String> list = generalMapper.getPlatform();
  34. return list;
  35. }
  36. @Override
  37. public List<String> getGoods() {
  38. List<String> list = generalMapper.getGoods();
  39. // 使用 Java 8 的 Stream API 过滤 null 和空字符串
  40. List<String> filteredList = list.stream()
  41. .filter(Objects::nonNull) // 过滤掉 null 值
  42. .filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串
  43. .collect(Collectors.toList());
  44. return filteredList;
  45. }
  46. @Override
  47. public List<String> getActivity() {
  48. List<String> list = generalMapper.getActivity();
  49. List<String> filteredList = list.stream()
  50. .filter(Objects::nonNull) // 过滤掉 null 值
  51. .filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串
  52. .collect(Collectors.toList());
  53. return filteredList;
  54. }
  55. /*
  56. 获取昨天的日期
  57. */
  58. @Override
  59. public Date getYesterday() {
  60. Calendar cal = Calendar.getInstance();
  61. cal.add(Calendar.DAY_OF_YEAR, -1); //当前天数-1
  62. return getStartOfDay(cal.getTime()); //昨天的00:00:00
  63. }
  64. /*
  65. 获取某天的开始时间(00:00:00)
  66. */
  67. @Override
  68. public Date getStartOfDay(Date date) {
  69. LocalDateTime localDate = date.toInstant()
  70. .atZone(ZoneId.systemDefault()) // 转换为本地时区
  71. .toLocalDateTime()
  72. .with(LocalTime.MIN); // 设置时间为当天 00:00:00
  73. return Date.from(localDate.atZone(ZoneId.systemDefault()).toInstant());
  74. }
  75. /*
  76. 转换日期格式为yyyy-MM-dd
  77. */
  78. @Override
  79. public String formatDate(Date date) {
  80. return date.toInstant()
  81. .atZone(ZoneId.systemDefault())
  82. .format(java.time.format.DateTimeFormatter.ISO_LOCAL_DATE); // 输出格式如 "2025-10-01"
  83. }
  84. /*
  85. 获取时间段内的所有日期包含起始和结束日
  86. */
  87. @Override
  88. public List<Date> getAllDatesBetween(Date start, Date end) {
  89. List<Date> dates = new ArrayList<>();
  90. //初始化日历对象
  91. Calendar tempStart = Calendar.getInstance();
  92. tempStart.setTime(start);
  93. Calendar tempEnd = Calendar.getInstance();
  94. tempEnd.setTime(end);
  95. while (!tempStart.after(tempEnd)) {
  96. dates.add(tempStart.getTime()); // 将当前日期添加到列表中
  97. tempStart.add(Calendar.DAY_OF_YEAR, 1); // 每次增加一天
  98. }
  99. return dates;
  100. }
  101. /*
  102. 获取角色的地区权限列表
  103. */
  104. @Override
  105. public List<String> getRoleMarket(String account){
  106. try {
  107. String market = generalMapper.getRoleMarket(account);
  108. if (market == null) {
  109. throw new Exception("没有地区权限");
  110. }
  111. List<String> list = Arrays.asList(market.split(","));
  112. return list;
  113. } catch (Exception e) {
  114. // 记录日志
  115. log.error("获取地区权限失败", e);
  116. // 重新抛出异常,或者根据需要返回一个默认值或空列表
  117. throw new RuntimeException("获取地区权限失败", e);
  118. }
  119. }}