소스 검색

tj

master
yinshaojie 9 달 전
부모
커밋
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
             <artifactId>mybatis-plus-annotation</artifactId>
52
             <artifactId>mybatis-plus-annotation</artifactId>
53
             <version>3.4.1</version>
53
             <version>3.4.1</version>
54
         </dependency>
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
     </dependencies>
61
     </dependencies>
56
 
62
 
57
 </project>
63
 </project>

+ 5
- 1
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/ChapterController.java 파일 보기

16
 
16
 
17
     @Autowired
17
     @Autowired
18
     private ChapterService chapterService;
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
     @GetMapping("/{novelId}")
24
     @GetMapping("/{novelId}")
21
     public AjaxResult getChapters(@PathVariable Long novelId) {
25
     public AjaxResult getChapters(@PathVariable Long novelId) {
22
         List<NovelChapter> chapters = chapterService.selectChapterListByNovelId(novelId);
26
         List<NovelChapter> chapters = chapterService.selectChapterListByNovelId(novelId);

+ 2
- 1
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/NovelAdController.java 파일 보기

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

+ 24
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/NovelController.java 파일 보기

1
 package com.ruoyi.novel.controller;
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
 import com.ruoyi.common.core.domain.AjaxResult;
6
 import com.ruoyi.common.core.domain.AjaxResult;
7
+import com.ruoyi.common.core.page.PageDomain;
4
 import com.ruoyi.common.core.page.TableDataInfo;
8
 import com.ruoyi.common.core.page.TableDataInfo;
9
+import com.ruoyi.common.core.page.TableSupport;
5
 import com.ruoyi.novel.domain.Novel;
10
 import com.ruoyi.novel.domain.Novel;
11
+import com.ruoyi.novel.service.NovelService;
6
 import org.springframework.beans.factory.annotation.Autowired;
12
 import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.web.bind.annotation.*;
13
 import org.springframework.web.bind.annotation.*;
8
 
14
 
27
     public AjaxResult add(@RequestBody Novel novel) {
33
     public AjaxResult add(@RequestBody Novel novel) {
28
         return toAjax(novelService.insertNovel(novel));
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
 package com.ruoyi.novel.controller;
1
 package com.ruoyi.novel.controller;
2
 
2
 
3
-import com.ruoyi.common.annotation.RateLimiter;
3
+import com.google.common.util.concurrent.RateLimiter;
4
 import com.ruoyi.common.core.domain.AjaxResult;
4
 import com.ruoyi.common.core.domain.AjaxResult;
5
 import com.ruoyi.novel.domain.VoteRequest;
5
 import com.ruoyi.novel.domain.VoteRequest;
6
 import com.ruoyi.novel.service.IVoteService;
6
 import com.ruoyi.novel.service.IVoteService;

+ 3
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/controller/ReadingHistoryController.java 파일 보기

1
 package com.ruoyi.novel.controller;
1
 package com.ruoyi.novel.controller;
2
 
2
 
3
 import com.ruoyi.common.core.domain.AjaxResult;
3
 import com.ruoyi.common.core.domain.AjaxResult;
4
+import com.ruoyi.novel.domain.ReadingRecord;
4
 import org.springframework.web.bind.annotation.*;
5
 import org.springframework.web.bind.annotation.*;
5
 
6
 
6
 @RestController
7
 @RestController
10
     @PostMapping("/record")
11
     @PostMapping("/record")
11
     public AjaxResult recordReading(@RequestBody ReadingRecord record) {
12
     public AjaxResult recordReading(@RequestBody ReadingRecord record) {
12
         // 记录用户阅读位置
13
         // 记录用户阅读位置
14
+        return null;
13
     }
15
     }
14
 
16
 
15
     @GetMapping("/last/{userId}/{novelId}")
17
     @GetMapping("/last/{userId}/{novelId}")
17
             @PathVariable Long userId,
19
             @PathVariable Long userId,
18
             @PathVariable Long novelId) {
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
 
19
 
20
     @NotBlank(message = "设备ID不能为空")
20
     @NotBlank(message = "设备ID不能为空")
21
     private String deviceId;
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
 
35
 
36
     // 确保有默认构造方法
36
     // 确保有默认构造方法
37
     public AdLog() {}
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
     private Integer chapterOrder;
13
     private Integer chapterOrder;
14
     private Date publishTime;
14
     private Date publishTime;
15
     private String isVip;
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 파일 보기

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
 
20
 
21
     private BigDecimal totalReads;
21
     private BigDecimal totalReads;
22
     private Date lastSyncTime;
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
 package com.ruoyi.novel.domain;
1
 package com.ruoyi.novel.domain;
2
 
2
 
3
+import lombok.Data;
4
+
5
+import javax.validation.constraints.NotNull;
6
+
3
 // VoteRequest.java
7
 // VoteRequest.java
4
 @Data
8
 @Data
5
 public class VoteRequest {
9
 public class VoteRequest {

+ 8
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/mapper/AdPlatformConfigMapper.java 파일 보기

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
 package com.ruoyi.novel.mapper;
1
 package com.ruoyi.novel.mapper;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.ruoyi.novel.domain.NovelChapter;
4
 import com.ruoyi.novel.domain.NovelChapter;
4
 import org.apache.ibatis.annotations.Mapper;
5
 import org.apache.ibatis.annotations.Mapper;
5
 
6
 
12
     NovelChapter selectChapterById(Long chapterId);
13
     NovelChapter selectChapterById(Long chapterId);
13
     int insertChapter(NovelChapter chapter);
14
     int insertChapter(NovelChapter chapter);
14
     int updateChapter(NovelChapter chapter);
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 파일 보기

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

+ 10
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/AdConfigService.java 파일 보기

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 파일 보기

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
 package com.ruoyi.novel.service;
1
 package com.ruoyi.novel.service;
2
 
2
 
3
+import com.ruoyi.novel.domain.AdCountRequest;
3
 import com.ruoyi.novel.domain.AdLog;
4
 import com.ruoyi.novel.domain.AdLog;
4
 import org.springframework.stereotype.Service;
5
 import org.springframework.stereotype.Service;
5
 
6
 
7
 @Service
8
 @Service
8
 // AdService.java
9
 // AdService.java
9
 public interface AdService {
10
 public interface AdService {
10
-    void logAdView(AdCountRequest request);
11
+    //void logAdView(AdCountRequest request);
11
     List<AdLog> getAdLogsByUser(Long userId);
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 파일 보기

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

+ 4
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/IVoteService.java 파일 보기

9
     void generateStoryContent(VoteRecord record);
9
     void generateStoryContent(VoteRecord record);
10
     void notifyPhpSystem(VoteRecord record);
10
     void notifyPhpSystem(VoteRecord record);
11
     void retryFailedNotifications();
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
 package com.ruoyi.novel.service;
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 파일 보기

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

+ 14
- 13
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/AdServiceImpl.java 파일 보기

1
 package com.ruoyi.novel.service.impl;
1
 package com.ruoyi.novel.service.impl;
2
 
2
 
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
-import com.ruoyi.novel.config.ScheduledTasks;
5
 import com.ruoyi.novel.domain.AdCountRequest;
4
 import com.ruoyi.novel.domain.AdCountRequest;
6
 import com.ruoyi.novel.domain.AdLog;
5
 import com.ruoyi.novel.domain.AdLog;
7
 import com.ruoyi.novel.domain.AdPlatformConfig;
6
 import com.ruoyi.novel.domain.AdPlatformConfig;
46
         adLogMapper.insert(adLog);
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
     @Override
61
     @Override
63
     @Scheduled(fixedRateString = "${scheduled.ad-retry-interval:300000}") // 默认5分钟重试
62
     @Scheduled(fixedRateString = "${scheduled.ad-retry-interval:300000}") // 默认5分钟重试
119
         switch (adLog.getAdPlatform()) {
118
         switch (adLog.getAdPlatform()) {
120
             case "tencent":
119
             case "tencent":
121
                 adPlatformClient.syncTencent(adLog);
120
                 adPlatformClient.syncTencent(adLog);
121
+                adLog.setSyncStatus(1); // 同步成功
122
                 break;
122
                 break;
123
             case "pangle":
123
             case "pangle":
124
                 adPlatformClient.syncPangle(adLog);
124
                 adPlatformClient.syncPangle(adLog);
125
+                adLog.setSyncStatus(1); // 同步成功
125
                 break;
126
                 break;
126
             default:
127
             default:
127
                 logger.warn("Unknown ad platform: {}", adLog.getAdPlatform());
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
 import com.ruoyi.common.exception.ServiceException;
3
 import com.ruoyi.common.exception.ServiceException;
4
 import com.ruoyi.novel.domain.AdLog;
4
 import com.ruoyi.novel.domain.AdLog;
5
 import com.ruoyi.novel.domain.AdPlatformConfig;
5
 import com.ruoyi.novel.domain.AdPlatformConfig;
6
+import com.ruoyi.novel.service.AdSyncService;
6
 import lombok.extern.slf4j.Slf4j;
7
 import lombok.extern.slf4j.Slf4j;
7
 import org.springframework.beans.factory.annotation.Autowired;
8
 import org.springframework.beans.factory.annotation.Autowired;
8
 import org.springframework.http.*;
9
 import org.springframework.http.*;

+ 4
- 0
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/ChapterServiceImpl.java 파일 보기

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

+ 2
- 2
RuoYi-Vue/ruoyi-novel/src/main/java/com/ruoyi/novel/service/impl/FinanceServiceImpl.java 파일 보기

31
     @Value("${royalty.rate}")
31
     @Value("${royalty.rate}")
32
     private BigDecimal royaltyRate;
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
     @Override
37
     @Override
38
     public RoyaltyReport calculateRoyalty(Long authorId, String month) {
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
 
2
 
3
 import com.ruoyi.novel.domain.Novel;
3
 import com.ruoyi.novel.domain.Novel;
4
 import com.ruoyi.novel.mapper.NovelMapper;
4
 import com.ruoyi.novel.mapper.NovelMapper;
5
+import com.ruoyi.novel.service.NovelService;
5
 import org.springframework.beans.factory.annotation.Autowired;
6
 import org.springframework.beans.factory.annotation.Autowired;
6
 import org.springframework.stereotype.Service;
7
 import org.springframework.stereotype.Service;
7
 import org.springframework.transaction.annotation.Transactional;
8
 import org.springframework.transaction.annotation.Transactional;

Loading…
취소
저장