diff --git a/src/main/java/com/gameplatform/server/controller/admin/AnnouncementController.java b/src/main/java/com/gameplatform/server/controller/admin/AnnouncementController.java index 4a9f0a3..00af032 100644 --- a/src/main/java/com/gameplatform/server/controller/admin/AnnouncementController.java +++ b/src/main/java/com/gameplatform/server/controller/admin/AnnouncementController.java @@ -6,10 +6,13 @@ import com.gameplatform.server.model.dto.admin.AnnouncementResponse; import com.gameplatform.server.model.dto.common.PageResult; import com.gameplatform.server.model.entity.admin.Announcement; import com.gameplatform.server.service.admin.AnnouncementService; +import com.gameplatform.server.service.admin.AnnouncementByCodeService; import io.jsonwebtoken.Claims; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; @@ -22,9 +25,14 @@ import java.util.List; @Tag(name = "公告管理", description = "系统公告的增删改查接口") public class AnnouncementController { + private static final Logger logger = LoggerFactory.getLogger(AnnouncementController.class); + @Autowired private AnnouncementService announcementService; + @Autowired + private AnnouncementByCodeService announcementByCodeService; + @PostMapping @Operation(summary = "创建公告", description = "创建新的系统公告,belongId会自动从JWT token中获取") public ResponseEntity createAnnouncement(@RequestBody AnnouncementRequest request, Authentication authentication) { @@ -239,4 +247,49 @@ public class AnnouncementController { .toList(); return ResponseEntity.ok(responses); } + + @GetMapping("/by-code/{codeNo}") + @Operation(summary = "根据codeNo获取代理商公告", description = "根据链接编号获取对应代理商设置的启用公告") + public ResponseEntity getAnnouncementsByCodeNo( + @Parameter(description = "链接编号", example = "ABC123") @PathVariable String codeNo) { + + logger.info("接收到根据codeNo获取代理商公告的请求: {}", codeNo); + + try { + logger.debug("调用服务方法获取公告列表: {}", codeNo); + List announcements = announcementByCodeService.getAnnouncementsByCodeNo(codeNo); + + logger.debug("转换公告实体为响应对象, 公告数量: {}", announcements.size()); + List responses = announcements.stream() + .map(AnnouncementConverter::toResponse) + .toList(); + + final String finalCodeNo = codeNo; + logger.info("成功获取代理商公告: codeNo={}, 公告数量={}", codeNo, responses.size()); + + return ResponseEntity.ok(new Object() { + public final boolean success = true; + public final String message = "查询成功"; + public final List data = responses; + public final String codeNo = finalCodeNo; + }); + + } catch (IllegalArgumentException e) { + logger.warn("请求参数错误: codeNo={}, 错误信息={}", codeNo, e.getMessage()); + final String finalCodeNo = codeNo; + return ResponseEntity.badRequest().body(new Object() { + public final boolean success = false; + public final String message = e.getMessage(); + public final String codeNo = finalCodeNo; + }); + } catch (Exception e) { + logger.error("根据codeNo获取代理商公告时发生系统错误: codeNo={}", codeNo, e); + final String finalCodeNo = codeNo; + return ResponseEntity.internalServerError().body(new Object() { + public final boolean success = false; + public final String message = "系统错误:" + e.getMessage(); + public final String codeNo = finalCodeNo; + }); + } + } } diff --git a/src/main/java/com/gameplatform/server/service/external/ScriptClient.java b/src/main/java/com/gameplatform/server/service/external/ScriptClient.java index 19b7054..5f5bb03 100644 --- a/src/main/java/com/gameplatform/server/service/external/ScriptClient.java +++ b/src/main/java/com/gameplatform/server/service/external/ScriptClient.java @@ -303,22 +303,7 @@ public class ScriptClient { .doOnError(e -> log.warn("获取目标分数失败: machineId={}, error={}", machineId, e.toString())); } - /** - * 设置次数(生成链接时调用)- 使用 @RepeatCall 注解自动重复执行3次 - */ - @RepeatCall(times = 3, description = "设置次数") - public Mono setTimes(String machineId, int times) { - String url = String.format(apiBaseUrl + "/yijianwan_netfile/saveMsg?文件名=总次数&%s=%d", machineId, times); - log.debug("设置次数: machineId={}, times={}, url={}", machineId, times, url); - return webClient.post() - .uri(url) - .accept(MediaType.TEXT_PLAIN) - .retrieve() - .bodyToMono(String.class) - .timeout(Duration.ofSeconds(10)) - .doOnSuccess(result -> log.debug("设置次数成功: machineId={}, times={}, result={}", machineId, times, result)) - .doOnError(e -> log.warn("设置次数失败: machineId={}, times={}, error={}", machineId, times, e.toString())); - } + /** * 保存总次数(使用f4参数格式) diff --git a/src/main/java/com/gameplatform/server/service/link/LinkStatusService.java b/src/main/java/com/gameplatform/server/service/link/LinkStatusService.java index 0cf59b4..d6b9047 100644 --- a/src/main/java/com/gameplatform/server/service/link/LinkStatusService.java +++ b/src/main/java/com/gameplatform/server/service/link/LinkStatusService.java @@ -872,8 +872,12 @@ public class LinkStatusService { if ("已上号".equals(loginResult) || "已登录".equals(loginResult)) { try { LinkBatch linkBatch = linkBatchMapper.findById(linkTask.getBatchId()); + log.info("============================================="); scriptClient.saveTotalTimes(deviceId,linkBatch.getTimes()).block(); // saveTotalTimes方法已经包含了详细的日志记录 + log.info("codeNo:{},deviceId:{}",linkTask.getCodeNo(),deviceId); + log.info("============================================="); + } catch (Exception e) { log.warn("保存总次数接口调用失败: {}", e.getMessage()); // 不影响后续流程,只记录警告日志 diff --git a/src/main/resources/mapper/admin/AnnouncementMapper.xml b/src/main/resources/mapper/admin/AnnouncementMapper.xml index 7b0060b..f72948d 100644 --- a/src/main/resources/mapper/admin/AnnouncementMapper.xml +++ b/src/main/resources/mapper/admin/AnnouncementMapper.xml @@ -7,20 +7,21 @@ + - INSERT INTO announcement (title, content, enabled, jump_url) - VALUES (#{title}, #{content}, #{enabled}, #{jumpUrl}) + INSERT INTO announcement (title, content, enabled, jump_url, belong_id) + VALUES (#{title}, #{content}, #{enabled}, #{jumpUrl}, #{belongId}) @@ -30,6 +31,7 @@ content = #{content}, enabled = #{enabled}, jump_url = #{jumpUrl}, + belong_id = #{belongId}, WHERE id = #{id} @@ -39,7 +41,7 @@ + SELECT id, title, content, enabled, jump_url, belong_id, created_at, updated_at + FROM announcement + WHERE belong_id = #{belongId} + ORDER BY created_at DESC + LIMIT #{size} OFFSET #{offset} + + + + + + +