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.

223 lines
7.3 KiB

5 months ago
5 months ago
5 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
  1. package com.example.demo.serviceImpl.coin;
  2. import com.example.demo.domain.entity.Rate;
  3. import com.example.demo.mapper.coin.GeneralMapper;
  4. import com.example.demo.service.coin.GeneralService;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import java.time.LocalDateTime;
  10. import java.time.LocalTime;
  11. import java.time.ZoneId;
  12. import java.util.*;
  13. import java.util.stream.Collectors;
  14. /**
  15. * @program: GOLD
  16. * @ClassName GeneralServiceImpl
  17. * @description:
  18. * @author: huangqizhen
  19. * @create: 202506-22 11:01
  20. * @Version 1.0
  21. **/
  22. @Service
  23. public class GeneralServiceImpl implements GeneralService {
  24. private static final Logger log = LoggerFactory.getLogger(GeneralServiceImpl.class);
  25. @Autowired
  26. private GeneralMapper generalMapper;
  27. @Override
  28. public List<String> getMarket() {
  29. List<String> list = generalMapper.getMarket();
  30. return list;
  31. }
  32. @Override
  33. public List<String> getALLAdminMarket() {
  34. List<String> list = generalMapper.getALLAdminMarket();
  35. return list;
  36. }
  37. @Override
  38. public List<String> getPlatform() {
  39. List<String> list = generalMapper.getPlatform();
  40. return list;
  41. }
  42. @Override
  43. public List<String> getGoods() {
  44. List<String> list = generalMapper.getGoods();
  45. // 使用 Java 8 的 Stream API 过滤 null 和空字符串
  46. List<String> filteredList = list.stream()
  47. .filter(Objects::nonNull) // 过滤掉 null 值
  48. .filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串
  49. .collect(Collectors.toList());
  50. return filteredList;
  51. }
  52. @Override
  53. public List<String> getActivity() {
  54. List<String> list = generalMapper.getActivity();
  55. List<String> filteredList = list.stream()
  56. .filter(Objects::nonNull) // 过滤掉 null 值
  57. .filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串
  58. .collect(Collectors.toList());
  59. return filteredList;
  60. }
  61. /*
  62. 获取昨天的日期
  63. */
  64. @Override
  65. public Date getYesterday() {
  66. Calendar cal = Calendar.getInstance();
  67. cal.add(Calendar.DAY_OF_YEAR, -1); //当前天数-1
  68. return getStartOfDay(cal.getTime()); //昨天的00:00:00
  69. }
  70. /*
  71. 获取某天的开始时间(00:00:00)
  72. */
  73. @Override
  74. public Date getStartOfDay(Date date) {
  75. LocalDateTime localDate = date.toInstant()
  76. .atZone(ZoneId.systemDefault()) // 转换为本地时区
  77. .toLocalDateTime()
  78. .with(LocalTime.MIN); // 设置时间为当天 00:00:00
  79. return Date.from(localDate.atZone(ZoneId.systemDefault()).toInstant());
  80. }
  81. /*
  82. 转换日期格式为yyyy-MM-dd
  83. */
  84. @Override
  85. public String formatDate(Date date) {
  86. return date.toInstant()
  87. .atZone(ZoneId.systemDefault())
  88. .format(java.time.format.DateTimeFormatter.ISO_LOCAL_DATE); // 输出格式如 "2025-10-01"
  89. }
  90. /*
  91. 获取时间段内的所有日期包含起始和结束日
  92. */
  93. @Override
  94. public List<Date> getAllDatesBetween(Date start, Date end) {
  95. List<Date> dates = new ArrayList<>();
  96. //初始化日历对象
  97. Calendar tempStart = Calendar.getInstance();
  98. tempStart.setTime(start);
  99. Calendar tempEnd = Calendar.getInstance();
  100. tempEnd.setTime(end);
  101. while (!tempStart.after(tempEnd)) {
  102. dates.add(tempStart.getTime()); // 将当前日期添加到列表中
  103. tempStart.add(Calendar.DAY_OF_YEAR, 1); // 每次增加一天
  104. }
  105. return dates;
  106. }
  107. /*
  108. 获取角色的地区权限列表
  109. */
  110. @Override
  111. public List<String> getAdminMarket(String account){
  112. try {
  113. String market = generalMapper.getAdminMarket(account);
  114. if (market == null) {
  115. throw new Exception("没有地区权限");
  116. }
  117. List<String> list = Arrays.asList(market.split(","));
  118. //判断是否是总部
  119. if (list != null && list.contains("总部")||market.equals("研发部")) {
  120. List<String> allMarkets = generalMapper.getMarket(); // 获取所有地区
  121. allMarkets.remove("总部");
  122. // 固定顺序
  123. List<String> fixed = Arrays.asList(
  124. "新加坡", "马来西亚", "香港", "加拿大", "泰国", "越南HCM", "韩国", "未知"
  125. );
  126. // 先放固定顺序(存在的才放)
  127. List<String> result = new ArrayList<>();
  128. for (String m : fixed) {
  129. if (allMarkets.contains(m)) result.add(m);
  130. }
  131. // 其余按字母序追加
  132. allMarkets.removeAll(fixed);
  133. Collections.sort(allMarkets);
  134. result.addAll(allMarkets);
  135. return result;
  136. }
  137. return list;
  138. } catch (Exception e) {
  139. // 记录日志
  140. log.error("获取地区权限失败", e);
  141. // 重新抛出异常,或者根据需要返回一个默认值或空列表
  142. throw new RuntimeException("获取地区权限失败", e);
  143. }
  144. }
  145. @Override
  146. public List<String> getAdminMarket1(String account) {
  147. try {
  148. String market = generalMapper.getAdminMarket(account);
  149. if (market == null) {
  150. throw new Exception("没有地区权限");
  151. }
  152. List<String> list = Arrays.asList(market.split(","));
  153. //判断是否是总部
  154. if (list != null && list.contains("1")) {
  155. list=getMarket();//总部有所有地区的权限
  156. }
  157. return list;
  158. } catch (Exception e) {
  159. // 记录日志
  160. // log.error("获取地区权限失败", e);
  161. // 重新抛出异常,或者根据需要返回一个默认值或空列表
  162. throw new RuntimeException("获取地区权限失败", e);
  163. }
  164. }
  165. /*
  166. 获取觉得的地区列表
  167. */
  168. @Override
  169. public List<String> getRoleMarket(Integer roleId) {
  170. try {
  171. String market = generalMapper.getRoleMarket(roleId);
  172. if (market == null) {
  173. throw new Exception("没有地区权限");
  174. }
  175. List<String> list = Arrays.asList(market.split(","));
  176. //判断是否是总部
  177. if (list != null && list.contains("总部")) {
  178. list=getAllRoleMarket();//总部有所有地区的权限
  179. }
  180. return list;
  181. } catch (Exception e) {
  182. // 记录日志
  183. // log.error("获取地区权限失败", e);
  184. // 重新抛出异常,或者根据需要返回一个默认值或空列表
  185. throw new RuntimeException("获取地区权限失败", e);
  186. }
  187. }
  188. @Override
  189. public List<String> getAllRoleMarket() {
  190. List<String> list = generalMapper.getAllRoleMarket();
  191. return list;
  192. }
  193. @Override
  194. public List<Rate> getRate() {
  195. List<Rate> list = generalMapper.getRate();
  196. return list;
  197. }
  198. }