fix: 修复LinkTaskMapper中target_score列不存在的SQL错误

- 移除LinkTaskMapper.xml中所有对不存在的target_score列的引用
- 修复因SQL查询不存在列导致的BadSqlGrammarException
- 添加TargetScoreResponse DTO用于目标点数响应
- 更新LinkController添加获取目标点数接口
- 优化UserLinkStatusResponse添加machineId字段
- 更新数据库schema文档

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
zyh
2025-08-29 19:26:11 +08:00
parent 058970b95c
commit e7d36d5723
13 changed files with 344 additions and 278 deletions

View File

@@ -12,6 +12,7 @@ import com.gameplatform.server.model.dto.link.PollLoginResponse;
import com.gameplatform.server.model.dto.link.SelectRegionRequest;
import com.gameplatform.server.model.dto.link.SelectRegionResponse;
import com.gameplatform.server.model.dto.link.UserLinkStatusResponse;
import com.gameplatform.server.model.dto.link.TargetScoreResponse;
import com.gameplatform.server.service.link.LinkGenerationService;
import com.gameplatform.server.service.link.LinkListService;
import com.gameplatform.server.service.link.LinkStatusService;
@@ -484,6 +485,31 @@ public Mono<Boolean> deleteLink(@PathVariable("codeNo") String codeNo, Authentic
}
});
}
/**
* 获取目标点数接口
*/
@GetMapping("/target-score")
@Operation(summary = "获取目标点数", description = "根据链接编号获取目标点数,如果返回的是数字则保存到数据库,否则提示网络繁忙")
public Mono<TargetScoreResponse> getTargetScore(@RequestParam("codeNo") String codeNo) {
log.info("=== 开始获取目标点数 ===");
log.info("请求参数: codeNo={}", codeNo);
return linkStatusService.getTargetScore(codeNo)
.doOnSuccess(response -> {
if (response.isSuccess()) {
log.info("目标点数获取成功: codeNo={}, machineId={}, targetScore={}",
response.getCodeNo(), response.getMachineId(), response.getCompletedPoints());
} else {
log.warn("目标点数获取失败: codeNo={}, machineId={}, error={}",
response.getCodeNo(), response.getMachineId(), response.getErrorMessage());
}
})
.doOnError(error -> {
log.error("获取目标点数时发生异常: codeNo={}, error={}",
codeNo, error.getMessage(), error);
});
}
}

View File

@@ -352,7 +352,6 @@ public class QrProxyController {
response.setTimes(linkBatch.getTimes());
response.setTotalPoints(linkBatch.getQuantity() * linkBatch.getTimes());
response.setCompletedPoints(linkTask.getCompletedPoints());
// 设置游戏区域信息
response.setRegion(linkTask.getRegion());
response.setRegionDesc(getRegionDescription(linkTask.getRegion()));