Переглянути джерело

fix(auth): 更新token验证失败的提示信息

- 将JwtFilter中的token验证失败提示从“token验证失败”改为“当前未登录,请登录!”
- 修改ThirdLoginController中token校验失败的返回信息为“当前未登录,请登录!”-优化UserServiceImpl中公告去重逻辑,避免重复消息展示- 调整AppSitePlaceMapper.xml中的时间判断间隔,从8.2小时改为8.3小时- 修复OrderServiceImpl中课程地点地址字段取值错误的问题,使用address替代name
SheepHy 6 днів тому
батько
коміт
7761717bff

+ 1 - 1
national-motion-base-core/src/main/java/org/jeecg/config/shiro/filters/JwtFilter.java

@@ -57,7 +57,7 @@ public class JwtFilter extends BasicHttpAuthenticationFilter {
             return true;
         } catch (Exception e) {
             if (!isResponseCommitted(response)) {
-                JwtUtil.responseError(response, 401, "token验证失败");
+                JwtUtil.responseError(response, 401, "当前未登录,请登录!");
             } else {
                 log.warn("响应已提交,跳过错误响应写入");
             }

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java

@@ -1586,7 +1586,7 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
             if (courseSite.getType() == 0) {
                 appOrderInfoDTO.setOrSchoolCourse(1);
             }
-            appOrderInfoDTO.setCourseSiteAddress(courseSite.getName());
+            appOrderInfoDTO.setCourseSiteAddress(courseSite.getAddress());
             appOrderInfoDTO.setLatitude(courseSite.getLatitude());
             appOrderInfoDTO.setLongitude(courseSite.getLongitude());
             appOrderInfoDTO.setPhone(courseSite.getPhone());

+ 12 - 6
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/UserServiceImpl.java

@@ -34,11 +34,10 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
 
 import static org.jeecg.common.constant.CommonConstant.SC_INTERNAL_SERVER_ERROR_500;
 
@@ -127,8 +126,15 @@ public class UserServiceImpl implements IUserService {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         List<MsgVO> msgVOList = new ArrayList<>();
         if (null != user) {
-            sysAnnouncementSendMapper.selectList(Wrappers.<SysAnnouncementSend>lambdaQuery()
-                    .eq(SysAnnouncementSend::getUserId, user.getId()).eq(SysAnnouncementSend::getReadFlag, 0)).forEach(sysAnnouncementSend -> {
+            Set<String> uniqueIds = new HashSet<>();
+            List<SysAnnouncementSend> announcementSends = sysAnnouncementSendMapper.selectList(Wrappers.<SysAnnouncementSend>lambdaQuery()
+                    .eq(SysAnnouncementSend::getUserId, user.getId())
+                    .eq(SysAnnouncementSend::getReadFlag, 0));
+
+            List<SysAnnouncementSend> distinctList = announcementSends.stream()
+                    .filter(a -> a.getId() != null && uniqueIds.add(a.getId()))
+                    .collect(Collectors.toList());
+            distinctList.forEach(sysAnnouncementSend -> {
                 SysAnnouncement sysAnnouncement =
                         sysAnnouncementMapper.selectOne(Wrappers.lambdaQuery(SysAnnouncement.class).eq(SysAnnouncement::getId,
                                 sysAnnouncementSend.getAnntId()).eq(SysAnnouncement::getSendStatus, 1));
@@ -139,8 +145,8 @@ public class UserServiceImpl implements IUserService {
                             .setId(sysAnnouncement.getId())
                             .setSendTime(sysAnnouncement.getSendTime())
                             .setImgUrl(sysAnnouncement.getImgUrl()).setSender(sysAnnouncement.getSender());
+                    msgVOList.add(msgVO);
                 }
-                msgVOList.add(msgVO);
             });
             return msgVOList;
         }

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppSitePlaceMapper.xml

@@ -94,7 +94,7 @@
                           b.id,b.start_time,b.end_time ,b.selling_price,
                           CASE
                               WHEN c.order_status <=1 THEN 1
-                              WHEN DATE_ADD(CURRENT_TIME(), INTERVAL 8.2 HOUR) < TIME(b.end_time) THEN 0
+                              WHEN DATE_ADD(CURRENT_TIME(), INTERVAL 8.3 HOUR) < TIME(b.end_time) THEN 0
                        ELSE 1
     END AS concertStatus
         from nm_site_place a

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java

@@ -234,7 +234,7 @@ public class ThirdLoginController {
 		String username = JwtUtil.getUsername(token);
 		//update-begin---author:chenrui ---date:20250210  for:[QQYUN-11021]三方登录接口通过token获取用户信息漏洞修复------------
 		if (!TokenUtils.verifyToken(token, sysBaseAPI, redisUtil)) {
-			return Result.noauth("token验证失败");
+			return Result.noauth("当前未登录,请登录!");
 		}
 		//update-end---author:chenrui ---date:20250210  for:[QQYUN-11021]三方登录接口通过token获取用户信息漏洞修复------------
 		//1. 校验用户是否有效