Procházet zdrojové kódy

调整会员短链获取真实链接接口

caoliqin před 1 měsícem
rodič
revize
6a56367fdb

+ 1 - 0
fs-service-system/src/main/java/com/fs/course/service/IFsCourseLinkService.java

@@ -78,4 +78,5 @@ public interface IFsCourseLinkService
 
     R createRoomLinkUrl(FsCourseLinkCreateParam param);
 
+    R getRealLinkH5(String link);
 }

+ 53 - 0
fs-service-system/src/main/java/com/fs/course/service/impl/FsCourseLinkServiceImpl.java

@@ -232,6 +232,59 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
         return R.error("短链生成失败!");
     }
 
+    @Override
+    public R getRealLinkH5(String link) {
+        try {
+            // URL解码
+            String sLink = URLDecoder.decode(link, "UTF-8");
+
+            // 从数据库中查找短链对应的真实链接
+            FsCourseLink courseLink = fsCourseLinkMapper.selectFsCourseLinkByLink(sLink);
+            if (courseLink != null) {
+                // 获取当前时间
+                Date currentTime = new Date();
+                // 获取链接的更新时间(假设这个字段代表过期时间)
+                Date updateTime = courseLink.getUpdateTime();
+
+                // 判断是否过期
+                if (currentTime.after(updateTime)) {
+                    // 链接已过期
+                    log.info("链接已过期: {}", sLink);
+                    return R.error("链接已过期").put("realLink", sLink);
+                } else {
+                    // 链接仍然有效,返回真实链接
+                    if (courseLink.getRealLink() == null) {
+                        log.error("真实链接不存在, link: {}", sLink);
+                        return R.error("真实链接不存在").put("realLink", sLink);
+                    }
+                    log.info("链接仍然有效: {}", sLink);
+                    String json = configService.selectConfigByKey("h5.course.config");
+                    CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
+                    String domainName = companyUserMapper.selectDomainByUserId(courseLink.getCompanyUserId());
+                    if (StringUtils.isEmpty(domainName)){
+                        domainName = config.getRealLinkDomainName();
+                    }
+                    String realLink = domainName+courseLink.getRealLink();
+                    String imgUrl = "";
+                    return R.ok().put("realLink",realLink ).put("config",config).put("headerImg",imgUrl);
+                }
+            } else {
+                // 链接不存在或解析失败
+                log.warn("URL解析错误或链接不存在: {}", sLink);
+                return R.error("URL 解析错误或链接不存在").put("realLink", sLink);
+            }
+
+        } catch (UnsupportedEncodingException e) {
+            // URL解码异常
+            log.error("URL 解码失败: {}", e.getMessage(), e);
+            return R.error("URL 解码失败").put("realLink", link);
+        } catch (Exception e) {
+            // 捕获其他异常并记录
+            log.error("发生未知错误: {}", e.getMessage(), e);
+            return R.error("发生未知错误,请稍后再试").put("realLink", link);
+        }
+    }
+
     @Override
     public R createLinkUrlWc(FsCourseLinkCreateParam param) {
 

+ 1 - 1
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseServiceImpl.java

@@ -418,7 +418,7 @@ public class FsUserCourseServiceImpl implements IFsUserCourseService
 
     @Override
     public R createCourseSortLink(FsCourseLinkCreateParam param) {
-        String json = configService.selectConfigByKey("course.config");
+        String json = configService.selectConfigByKey("h5.course.config");
         CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
 
         //新增链接表信息

+ 1 - 1
fs-user-app/src/main/java/com/fs/app/controller/CourseWxH5Controller.java

@@ -85,7 +85,7 @@ public class CourseWxH5Controller extends AppBaseController {
     @GetMapping("/getRealLink")
     public R getRealLink(@RequestParam("sortLink")String link)
     {
-        return courseLinkService.getRealLink(link);
+        return courseLinkService.getRealLinkH5(link);
     }
 
     @ApiOperation("更新看课时长")