From 6fa71c125d31b3e95af4a0ab5441447cdf73c9d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=AD=A3=E5=88=86?= Date: Tue, 25 Nov 2025 14:33:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E9=87=8D=E5=AE=9A=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/UrlSecurityFilterImpl.java | 1 + .../module/course/api/CourseManageApi.java | 54 ++++++++++++++++++- .../src/main/resources/application-dev.yml | 4 ++ .../src/main/resources/application-pre.yml | 5 +- .../src/main/resources/application-test.yml | 5 +- .../src/main/resources/application.yml | 4 ++ 6 files changed, 70 insertions(+), 3 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/UrlSecurityFilterImpl.java b/servers/boe-server-all/src/main/java/com/xboe/UrlSecurityFilterImpl.java index 67e6ab63..0bbb4583 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/UrlSecurityFilterImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/UrlSecurityFilterImpl.java @@ -34,6 +34,7 @@ public class UrlSecurityFilterImpl implements IUrlSecurityFilter{ noLoginUrls.add("/xboe/m/exam/alone-extend/save"); noLoginUrls.add("/xboe/m/course/manage/test"); + noLoginUrls.add("/xboe/m/course/manage/redirectDetail"); } @Override diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java index 0d11c9d9..f34a35b2 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java @@ -1,5 +1,6 @@ package com.xboe.module.course.api; +import java.io.IOException; import java.io.OutputStream; import java.util.*; import java.util.stream.Collectors; @@ -7,7 +8,9 @@ import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - +import javax.validation.constraints.NotNull; +import cn.hutool.http.Header; +import cn.hutool.http.useragent.UserAgentUtil; import com.boe.feign.api.infrastructure.entity.CommonSearchVo; import com.boe.feign.api.infrastructure.entity.Dict; import com.xboe.api.ThirdApi; @@ -17,6 +20,7 @@ import com.xboe.module.course.service.*; import com.xboe.module.course.vo.CoursePageVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.parameters.P; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -97,6 +101,18 @@ public class CourseManageApi extends ApiBaseController{ IDataUserSyncService userSyncService; @Resource private ThirdApi thirdApi; + + @Value("${boe.pcPageUrl}") + private String pcPageUrl; + + @Value("${boe.h5PageUrl}") + private String h5PageUrl; + + @Value("${boe.h5LoginUrl}") + private String h5LoginUrl; + + @Value("${boe.pcLoginUrl}") + private String pcLoginUrl; // @PostMapping("/test") // public JsonResponse> findTest(Pagination pager,CourseQueryDto dto){ @@ -1292,4 +1308,40 @@ public class CourseManageApi extends ApiBaseController{ courseService.saveTip(aid); return success(true); } + + /** + * 扫描二维码重定向 + * @param courseId 课程id + * @param request + * @param response + * @throws IOException + */ + @GetMapping("/redirectDetail") + public void redirectDetail( + @NotNull Long courseId, + HttpServletRequest request, + HttpServletResponse response) throws IOException { + + boolean isMobile = UserAgentUtil.parse(request.getHeader(Header.USER_AGENT.toString())).isMobile(); + String baseUrl = isMobile ? h5PageUrl : pcPageUrl; + String loginUrl = isMobile ? h5LoginUrl : pcLoginUrl; + + CurrentUser currentUser; + try { + currentUser = getCurrent(); + } catch (Exception e) { + log.warn("获取当前用户信息异常,跳转至登录页。课程ID: {}", courseId, e); + response.sendRedirect(loginUrl); + return; + } + + if (currentUser == null) { + log.info("用户未登录,跳转至登录页。课程ID: {}", courseId); + response.sendRedirect(loginUrl); + return; + } + + log.info("跳转到课程详情页,课程ID: {}, 用户ID: {}", courseId, currentUser.getAccountId()); + response.sendRedirect(baseUrl + courseId); + } } diff --git a/servers/boe-server-all/src/main/resources/application-dev.yml b/servers/boe-server-all/src/main/resources/application-dev.yml index 24835ca4..ebe4eb17 100644 --- a/servers/boe-server-all/src/main/resources/application-dev.yml +++ b/servers/boe-server-all/src/main/resources/application-dev.yml @@ -1,5 +1,9 @@ boe: domain: http://192.168.0.253 + pcPageUrl: ${boe.domain}/pc/course/studyindex?id= + h5PageUrl: ${boe.domain}/mobile/pages/study/courseStudy?id= + pcLoginUrl: ${boe.domain}/web/ + h5LoginUrl: ${boe.domain}/m/loginuser spring: servlet: multipart: diff --git a/servers/boe-server-all/src/main/resources/application-pre.yml b/servers/boe-server-all/src/main/resources/application-pre.yml index 152ee066..3ff8b1ce 100644 --- a/servers/boe-server-all/src/main/resources/application-pre.yml +++ b/servers/boe-server-all/src/main/resources/application-pre.yml @@ -128,7 +128,10 @@ jasypt: boe: domain: http://10.251.132.75 - + pcPageUrl: ${boe.domain}/pc/course/studyindex?id= + h5PageUrl: ${boe.domain}/mobile/pages/study/courseStudy?id= + pcLoginUrl: ${boe.domain}/web/ + h5LoginUrl: ${boe.domain}/m/loginuser ok: http: connect-timeout: 30 diff --git a/servers/boe-server-all/src/main/resources/application-test.yml b/servers/boe-server-all/src/main/resources/application-test.yml index 495a6a22..982f058d 100644 --- a/servers/boe-server-all/src/main/resources/application-test.yml +++ b/servers/boe-server-all/src/main/resources/application-test.yml @@ -153,7 +153,10 @@ jasypt: boe: domain: http://10.251.186.27 - + pcPageUrl: ${boe.domain}/pc/course/studyindex?id= + h5PageUrl: ${boe.domain}/mobile/pages/study/courseStudy?id= + pcLoginUrl: ${boe.domain}/web/ + h5LoginUrl: ${boe.domain}/m/loginuser ok: http: connect-timeout: 30 diff --git a/servers/boe-server-all/src/main/resources/application.yml b/servers/boe-server-all/src/main/resources/application.yml index 5803a927..fafea85a 100644 --- a/servers/boe-server-all/src/main/resources/application.yml +++ b/servers/boe-server-all/src/main/resources/application.yml @@ -52,6 +52,10 @@ ok: keep-alive-duration: 300 boe: domain: http://127.0.0.1 + pcPageUrl: ${boe.domain}/pc/course/studyindex?id= + h5PageUrl: ${boe.domain}/mobile/pages/study/courseStudy?id= + pcLoginUrl: ${boe.domain}/web/ + h5LoginUrl: ${boe.domain}/m/loginuser orgTree: orgTreeList: ${boe.domain}/userbasic/org/list orgChildTreeList: ${boe.domain}/userbasic/org/childOrgs