yinshaojie 9 месяцев назад
Родитель
Сommit
50ce7d9734
31 измененных файлов: 207 добавлений и 21 удалений
  1. 6
    0
      RuoYi-Vue/ruoyi-novel/pom.xml
  2. 5
    1
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/ChapterController.java
  3. 2
    1
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/NovelAdController.java
  4. 24
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/NovelController.java
  5. 1
    1
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/NovelVoteController.java
  6. 3
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/ReadingHistoryController.java
  7. 5
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/AdCountRequest.java
  8. 2
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/AdLog.java
  9. 4
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/NovelChapter.java
  10. 21
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/ReadingRecord.java
  11. 3
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/RoyaltySummary.java
  12. 4
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/VoteRequest.java
  13. 8
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/AdPlatformConfigMapper.java
  14. 11
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/NovelChapterMapper.java
  15. 14
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/NovelContentMapper.java
  16. 5
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/NovelMapper.java
  17. 10
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdConfigService.java
  18. 9
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdLogService.java
  19. 4
    1
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdService.java
  20. 10
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdSyncService.java
  21. 7
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/IAdService.java
  22. 4
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/IVoteService.java
  23. 1
    1
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/NovelSearchService.java
  24. 13
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/NovelService.java
  25. 2
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdConfigServiceImpl.java
  26. 7
    1
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdLogServiceImpl.java
  27. 14
    13
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdServiceImpl.java
  28. 1
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdSyncServiceImpl.java
  29. 4
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/ChapterServiceImpl.java
  30. 2
    2
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/FinanceServiceImpl.java
  31. 1
    0
      RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/NovelServiceImpl.java

+ 6
- 0
RuoYi-Vue/ruoyi-novel/pom.xml Просмотреть файл

@@ -52,6 +52,12 @@
52 52
             <artifactId>mybatis-plus-annotation</artifactId>
53 53
             <version>3.4.1</version>
54 54
         </dependency>
55
+
56
+        <dependency>
57
+            <groupId>com.google.guava</groupId>
58
+            <artifactId>guava</artifactId>
59
+            <version>33.4.0-jre</version> <!-- 使用较新版本 -->
60
+        </dependency>
55 61
     </dependencies>
56 62
 
57 63
 </project>

+ 5
- 1
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/ChapterController.java Просмотреть файл

@@ -16,7 +16,11 @@ public class ChapterController {
16 16
 
17 17
     @Autowired
18 18
     private ChapterService chapterService;
19
-
19
+    @GetMapping("/list/{novelId}")
20
+    public AjaxResult listChapters(@PathVariable Long novelId) {
21
+        List<NovelChapter> chapters = chapterService.selectChapterListByNovelId(novelId);
22
+        return AjaxResult.success(chapters);
23
+    }
20 24
     @GetMapping("/{novelId}")
21 25
     public AjaxResult getChapters(@PathVariable Long novelId) {
22 26
         List<NovelChapter> chapters = chapterService.selectChapterListByNovelId(novelId);

+ 2
- 1
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/NovelAdController.java Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 package com.ruoyi.novel.controller;
2 2
 //# 广告计数接口
3 3
 
4
+import com.ruoyi.novel.domain.AdCountRequest;
4 5
 import com.ruoyi.novel.service.AdService;
5 6
 import org.springframework.beans.factory.annotation.Autowired;
6 7
 import org.springframework.data.redis.core.RedisTemplate;
@@ -70,7 +71,7 @@ public class NovelAdController {
70 71
 
71 72
         // 其次使用请求中的用户ID
72 73
         if (request.getUserId() != null) {
73
-            return request.getUserId();
74
+            return request.getUserId().toString();
74 75
         }
75 76
 
76 77
         // 最后使用设备ID

+ 24
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/NovelController.java Просмотреть файл

@@ -1,8 +1,14 @@
1 1
 package com.ruoyi.novel.controller;
2 2
 
3
+import com.github.pagehelper.PageHelper;
4
+import com.github.pagehelper.PageInfo;
5
+import com.ruoyi.common.constant.HttpStatus;
3 6
 import com.ruoyi.common.core.domain.AjaxResult;
7
+import com.ruoyi.common.core.page.PageDomain;
4 8
 import com.ruoyi.common.core.page.TableDataInfo;
9
+import com.ruoyi.common.core.page.TableSupport;
5 10
 import com.ruoyi.novel.domain.Novel;
11
+import com.ruoyi.novel.service.NovelService;
6 12
 import org.springframework.beans.factory.annotation.Autowired;
7 13
 import org.springframework.web.bind.annotation.*;
8 14
 
@@ -27,6 +33,24 @@ public class NovelController {
27 33
     public AjaxResult add(@RequestBody Novel novel) {
28 34
         return toAjax(novelService.insertNovel(novel));
29 35
     }
36
+    private AjaxResult toAjax(int rows) {
37
+        return rows > 0 ? AjaxResult.success() : AjaxResult.error();
38
+    }
39
+    // 若依框架的分页方法
40
+    protected void startPage() {
41
+        PageDomain pageDomain = TableSupport.buildPageRequest();
42
+        Integer pageNum = pageDomain.getPageNum();
43
+        Integer pageSize = pageDomain.getPageSize();
44
+        PageHelper.startPage(pageNum, pageSize);
45
+    }
30 46
 
47
+    // 若依框架的表格数据封装
48
+    protected TableDataInfo getDataTable(List<?> list) {
49
+        TableDataInfo rspData = new TableDataInfo();
50
+        rspData.setCode(HttpStatus.SUCCESS);
51
+        rspData.setRows(list);
52
+        rspData.setTotal(new PageInfo(list).getTotal());
53
+        return rspData;
54
+    }
31 55
     // 其他接口...
32 56
 }

+ 1
- 1
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/NovelVoteController.java Просмотреть файл

@@ -1,6 +1,6 @@
1 1
 package com.ruoyi.novel.controller;
2 2
 
3
-import com.ruoyi.common.annotation.RateLimiter;
3
+import com.google.common.util.concurrent.RateLimiter;
4 4
 import com.ruoyi.common.core.domain.AjaxResult;
5 5
 import com.ruoyi.novel.domain.VoteRequest;
6 6
 import com.ruoyi.novel.service.IVoteService;

+ 3
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/ReadingHistoryController.java Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 package com.ruoyi.novel.controller;
2 2
 
3 3
 import com.ruoyi.common.core.domain.AjaxResult;
4
+import com.ruoyi.novel.domain.ReadingRecord;
4 5
 import org.springframework.web.bind.annotation.*;
5 6
 
6 7
 @RestController
@@ -10,6 +11,7 @@ public class ReadingHistoryController {
10 11
     @PostMapping("/record")
11 12
     public AjaxResult recordReading(@RequestBody ReadingRecord record) {
12 13
         // 记录用户阅读位置
14
+        return null;
13 15
     }
14 16
 
15 17
     @GetMapping("/last/{userId}/{novelId}")
@@ -17,5 +19,6 @@ public class ReadingHistoryController {
17 19
             @PathVariable Long userId,
18 20
             @PathVariable Long novelId) {
19 21
         // 获取最后阅读位置
22
+        return null;
20 23
     }
21 24
 }

+ 5
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/AdCountRequest.java Просмотреть файл

@@ -19,4 +19,9 @@ public class AdCountRequest {
19 19
 
20 20
     @NotBlank(message = "设备ID不能为空")
21 21
     private String deviceId;
22
+
23
+    public String source;
24
+
25
+    public String adType;
26
+
22 27
 }

+ 2
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/AdLog.java Просмотреть файл

@@ -35,4 +35,6 @@ public class AdLog {
35 35
 
36 36
     // 确保有默认构造方法
37 37
     public AdLog() {}
38
+
39
+    public String deviceId;
38 40
 }

+ 4
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/NovelChapter.java Просмотреть файл

@@ -13,4 +13,8 @@ public class NovelChapter {
13 13
     private Integer chapterOrder;
14 14
     private Date publishTime;
15 15
     private String isVip;
16
+
17
+    public Date createTime;
18
+
19
+    public Date updateTime;
16 20
 }

+ 21
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/ReadingRecord.java Просмотреть файл

@@ -0,0 +1,21 @@
1
+package com.ruoyi.novel.domain;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import com.baomidou.mybatisplus.annotation.TableName;
6
+import lombok.Data;
7
+
8
+import java.util.Date;
9
+
10
+@Data
11
+@TableName("reading_history")
12
+public class ReadingRecord {
13
+    @TableId(type = IdType.AUTO)
14
+    private Long id;
15
+    private Long userId;
16
+    private Long chapterId;
17
+    private Long novelId;
18
+    private Integer progress;
19
+    private Long position;
20
+    private Date lastReadTime;
21
+}

+ 3
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/RoyaltySummary.java Просмотреть файл

@@ -20,4 +20,7 @@ public class RoyaltySummary {
20 20
 
21 21
     private BigDecimal totalReads;
22 22
     private Date lastSyncTime;
23
+
24
+    public RoyaltySummary(long l, String s, BigDecimal bigDecimal) {
25
+    }
23 26
 }

+ 4
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/domain/VoteRequest.java Просмотреть файл

@@ -1,5 +1,9 @@
1 1
 package com.ruoyi.novel.domain;
2 2
 
3
+import lombok.Data;
4
+
5
+import javax.validation.constraints.NotNull;
6
+
3 7
 // VoteRequest.java
4 8
 @Data
5 9
 public class VoteRequest {

+ 8
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/AdPlatformConfigMapper.java Просмотреть файл

@@ -0,0 +1,8 @@
1
+package com.ruoyi.novel.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.ruoyi.novel.domain.AdPlatformConfig;
5
+
6
+public interface AdPlatformConfigMapper extends BaseMapper<AdPlatformConfig> {
7
+    // 继承BaseMapper即拥有selectList/insert等方法
8
+}

+ 11
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/NovelChapterMapper.java Просмотреть файл

@@ -1,5 +1,6 @@
1 1
 package com.ruoyi.novel.mapper;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4
 import com.ruoyi.novel.domain.NovelChapter;
4 5
 import org.apache.ibatis.annotations.Mapper;
5 6
 
@@ -12,4 +13,14 @@ public interface NovelChapterMapper {
12 13
     NovelChapter selectChapterById(Long chapterId);
13 14
     int insertChapter(NovelChapter chapter);
14 15
     int updateChapter(NovelChapter chapter);
16
+
17
+    List<NovelChapter> selectList(QueryWrapper<NovelChapter> orderByAsc);
18
+
19
+    void insert(NovelChapter chapter);
20
+
21
+    void updateById(NovelChapter chapter);
22
+
23
+    NovelChapter selectById(Long chapterId);
24
+
25
+    int deleteBatchIds(List<Long> asList);
15 26
 }

+ 14
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/NovelContentMapper.java Просмотреть файл

@@ -0,0 +1,14 @@
1
+package com.ruoyi.novel.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.ruoyi.novel.domain.NovelContent;
5
+import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+import org.apache.ibatis.annotations.Update;
8
+
9
+@Mapper
10
+public interface NovelContentMapper extends BaseMapper<NovelContent> {
11
+    // 特殊方法可在此定义
12
+    @Update("UPDATE novel_content SET content = #{content} WHERE chapter_id = #{chapterId}")
13
+    int updateContent(@Param("chapterId") Long chapterId, @Param("content") String content);
14
+}

+ 5
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/NovelMapper.java Просмотреть файл

@@ -1,4 +1,9 @@
1 1
 package com.ruoyi.novel.mapper;
2
+
3
+import com.ruoyi.novel.domain.Novel;
4
+
5
+import java.util.List;
6
+
2 7
 // NovelMapper.java
3 8
 public interface NovelMapper {
4 9
     List<Novel> selectNovelList(Novel novel);

+ 10
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdConfigService.java Просмотреть файл

@@ -0,0 +1,10 @@
1
+package com.ruoyi.novel.service;
2
+
3
+import com.ruoyi.novel.domain.AdPlatformConfig;
4
+
5
+public interface AdConfigService {
6
+
7
+    void refreshConfigCache();
8
+
9
+    AdPlatformConfig getConfig(String adPlatform);
10
+}

+ 9
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdLogService.java Просмотреть файл

@@ -0,0 +1,9 @@
1
+package com.ruoyi.novel.service;
2
+
3
+import com.ruoyi.novel.domain.AdLog;
4
+import org.springframework.transaction.annotation.Transactional;
5
+
6
+public interface AdLogService {
7
+    @Transactional
8
+    void logAdView(AdLog adLog);
9
+}

+ 4
- 1
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdService.java Просмотреть файл

@@ -1,5 +1,6 @@
1 1
 package com.ruoyi.novel.service;
2 2
 
3
+import com.ruoyi.novel.domain.AdCountRequest;
3 4
 import com.ruoyi.novel.domain.AdLog;
4 5
 import org.springframework.stereotype.Service;
5 6
 
@@ -7,6 +8,8 @@ import java.util.List;
7 8
 @Service
8 9
 // AdService.java
9 10
 public interface AdService {
10
-    void logAdView(AdCountRequest request);
11
+    //void logAdView(AdCountRequest request);
11 12
     List<AdLog> getAdLogsByUser(Long userId);
13
+
14
+    void logAdView(String userId, Long chapterId, String adType, String source);
12 15
 }

+ 10
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdSyncService.java Просмотреть файл

@@ -0,0 +1,10 @@
1
+package com.ruoyi.novel.service;
2
+
3
+import com.ruoyi.novel.domain.AdLog;
4
+import com.ruoyi.novel.domain.AdPlatformConfig;
5
+
6
+public interface AdSyncService {
7
+    void syncToTencent(AdLog adLog, AdPlatformConfig config);
8
+
9
+    void syncToPangle(AdLog adLog, AdPlatformConfig config);
10
+}

+ 7
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/IAdService.java Просмотреть файл

@@ -1,14 +1,21 @@
1 1
 package com.ruoyi.novel.service;
2 2
 
3
+import com.ruoyi.novel.domain.AdCountRequest;
3 4
 import com.ruoyi.novel.domain.AdLog;
4 5
 import com.ruoyi.novel.domain.AdPlatformConfig;
5 6
 import org.springframework.stereotype.Service;
6 7
 
8
+import java.util.List;
7 9
 import java.util.Map;
8 10
 
9 11
 @Service
10 12
 public interface IAdService {
11 13
     void logAdView(AdLog adLog);
14
+
15
+    void logAdView(AdCountRequest request);
16
+
17
+    List<AdLog> getAdLogsByUser(Long userId);
18
+
12 19
     void syncWithAdPlatform(AdLog adLog);
13 20
     void retryFailedSyncs();
14 21
     Map<String, AdPlatformConfig> loadAdConfigs();

+ 4
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/IVoteService.java Просмотреть файл

@@ -9,4 +9,8 @@ public interface IVoteService {
9 9
     void generateStoryContent(VoteRecord record);
10 10
     void notifyPhpSystem(VoteRecord record);
11 11
     void retryFailedNotifications();
12
+
13
+    void notifyPhpSystem(VoteRequest request, String generatedContent);
14
+
15
+    String generateStoryContent(Long storyId, Long optionId);
12 16
 }

+ 1
- 1
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/NovelSearchService.java Просмотреть файл

@@ -1,4 +1,4 @@
1 1
 package com.ruoyi.novel.service;
2 2
 
3
-public class NovelSearchService {
3
+public interface NovelSearchService {
4 4
 }

+ 13
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/NovelService.java Просмотреть файл

@@ -0,0 +1,13 @@
1
+package com.ruoyi.novel.service;
2
+
3
+import com.ruoyi.novel.domain.Novel;
4
+import org.springframework.transaction.annotation.Transactional;
5
+
6
+import java.util.List;
7
+
8
+public interface NovelService {
9
+    List<Novel> selectNovelList(Novel novel);
10
+
11
+    @Transactional
12
+    int insertNovel(Novel novel);
13
+}

+ 2
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdConfigServiceImpl.java Просмотреть файл

@@ -1,6 +1,8 @@
1 1
 package com.ruoyi.novel.service.impl;
2 2
 
3 3
 import com.ruoyi.novel.domain.AdPlatformConfig;
4
+import com.ruoyi.novel.mapper.AdPlatformConfigMapper;
5
+import com.ruoyi.novel.service.AdConfigService;
4 6
 import org.springframework.beans.factory.annotation.Autowired;
5 7
 import org.springframework.stereotype.Service;
6 8
 

+ 7
- 1
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdLogServiceImpl.java Просмотреть файл

@@ -5,7 +5,12 @@ import com.ruoyi.common.exception.ServiceException;
5 5
 import com.ruoyi.novel.domain.AdLog;
6 6
 import com.ruoyi.novel.domain.AdPlatformConfig;
7 7
 import com.ruoyi.novel.mapper.AdLogMapper;
8
+import com.ruoyi.novel.service.AdConfigService;
9
+import com.ruoyi.novel.service.AdLogService;
10
+import com.ruoyi.novel.service.AdSyncService;
8 11
 import lombok.extern.slf4j.Slf4j;
12
+import org.slf4j.Logger;
13
+import org.slf4j.LoggerFactory;
9 14
 import org.springframework.beans.factory.annotation.Autowired;
10 15
 import org.springframework.scheduling.annotation.Async;
11 16
 import org.springframework.scheduling.annotation.Scheduled;
@@ -18,6 +23,7 @@ import java.util.List;
18 23
 @Service
19 24
 @Slf4j
20 25
 public class AdLogServiceImpl implements AdLogService {
26
+    private static final Logger logger = LoggerFactory.getLogger(AdLogServiceImpl.class);
21 27
 
22 28
     @Autowired
23 29
     private AdLogMapper adLogMapper;
@@ -75,7 +81,7 @@ public class AdLogServiceImpl implements AdLogService {
75 81
         );
76 82
 
77 83
         failedLogs.forEach(log -> {
78
-            log.info("重试广告同步: ID={}, 平台={}", log.getId(), log.getAdPlatform());
84
+            logger.info("重试广告同步: ID={}, 平台={}", log.getId(), log.getAdPlatform());
79 85
             syncAdLogAsync(log);
80 86
         });
81 87
     }

+ 14
- 13
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdServiceImpl.java Просмотреть файл

@@ -1,7 +1,6 @@
1 1
 package com.ruoyi.novel.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
-import com.ruoyi.novel.config.ScheduledTasks;
5 4
 import com.ruoyi.novel.domain.AdCountRequest;
6 5
 import com.ruoyi.novel.domain.AdLog;
7 6
 import com.ruoyi.novel.domain.AdPlatformConfig;
@@ -46,18 +45,18 @@ public class AdServiceImpl implements IAdService {
46 45
         adLogMapper.insert(adLog);
47 46
     }
48 47
 
49
-    @Override
50
-    @Async("adTaskExecutor")
51
-    public void syncWithAdPlatform(AdLog adLog) {
52
-        try {
53
-            adPlatformClient.syncAdPlatform(adLog);
54
-            adLog.setSyncStatus(1); // 同步成功
55
-        } catch (Exception e) {
56
-            logger.error("Ad sync failed: {}", e.getMessage());
57
-            adLog.setSyncStatus(2); // 同步失败
58
-        }
59
-        adLogMapper.updateById(adLog);
60
-    }
48
+//    @Override
49
+//    @Async("adTaskExecutor")
50
+//    public void syncWithAdPlatform(AdLog adLog) {
51
+//        try {
52
+//            adPlatformClient.syncAdPlatform(adLog);
53
+//            adLog.setSyncStatus(1); // 同步成功
54
+//        } catch (Exception e) {
55
+//            logger.error("Ad sync failed: {}", e.getMessage());
56
+//            adLog.setSyncStatus(2); // 同步失败
57
+//        }
58
+//        adLogMapper.updateById(adLog);
59
+//    }
61 60
 
62 61
     @Override
63 62
     @Scheduled(fixedRateString = "${scheduled.ad-retry-interval:300000}") // 默认5分钟重试
@@ -119,9 +118,11 @@ public class AdServiceImpl implements IAdService {
119 118
         switch (adLog.getAdPlatform()) {
120 119
             case "tencent":
121 120
                 adPlatformClient.syncTencent(adLog);
121
+                adLog.setSyncStatus(1); // 同步成功
122 122
                 break;
123 123
             case "pangle":
124 124
                 adPlatformClient.syncPangle(adLog);
125
+                adLog.setSyncStatus(1); // 同步成功
125 126
                 break;
126 127
             default:
127 128
                 logger.warn("Unknown ad platform: {}", adLog.getAdPlatform());

+ 1
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdSyncServiceImpl.java Просмотреть файл

@@ -3,6 +3,7 @@ package com.ruoyi.novel.service.impl;
3 3
 import com.ruoyi.common.exception.ServiceException;
4 4
 import com.ruoyi.novel.domain.AdLog;
5 5
 import com.ruoyi.novel.domain.AdPlatformConfig;
6
+import com.ruoyi.novel.service.AdSyncService;
6 7
 import lombok.extern.slf4j.Slf4j;
7 8
 import org.springframework.beans.factory.annotation.Autowired;
8 9
 import org.springframework.http.*;

+ 4
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/ChapterServiceImpl.java Просмотреть файл

@@ -1,13 +1,17 @@
1 1
 package com.ruoyi.novel.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4
 import com.ruoyi.novel.domain.NovelChapter;
4 5
 import com.ruoyi.novel.domain.NovelContent;
5 6
 import com.ruoyi.novel.mapper.NovelChapterMapper;
7
+import com.ruoyi.novel.mapper.NovelContentMapper;
6 8
 import com.ruoyi.novel.service.ChapterService;
7 9
 import org.springframework.beans.factory.annotation.Autowired;
8 10
 import org.springframework.stereotype.Service;
9 11
 import org.springframework.transaction.annotation.Transactional;
10 12
 
13
+import java.util.Arrays;
14
+import java.util.Date;
11 15
 import java.util.List;
12 16
 
13 17
 // ChapterServiceImpl.java

+ 2
- 2
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/FinanceServiceImpl.java Просмотреть файл

@@ -31,8 +31,8 @@ public class FinanceServiceImpl implements IFinanceService {
31 31
     @Value("${royalty.rate}")
32 32
     private BigDecimal royaltyRate;
33 33
 
34
-    @Value("${handling.fee.rate}")
35
-    private BigDecimal handlingFeeRate;
34
+    //@Value("${handling.fee.rate}")
35
+    //private BigDecimal handlingFeeRate;
36 36
 
37 37
     @Override
38 38
     public RoyaltyReport calculateRoyalty(Long authorId, String month) {

+ 1
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/NovelServiceImpl.java Просмотреть файл

@@ -2,6 +2,7 @@ package com.ruoyi.novel.service.impl;
2 2
 
3 3
 import com.ruoyi.novel.domain.Novel;
4 4
 import com.ruoyi.novel.mapper.NovelMapper;
5
+import com.ruoyi.novel.service.NovelService;
5 6
 import org.springframework.beans.factory.annotation.Autowired;
6 7
 import org.springframework.stereotype.Service;
7 8
 import org.springframework.transaction.annotation.Transactional;

Загрузка…
Отмена
Сохранить