serv-成就ResultDomain修改

This commit is contained in:
2025-10-24 18:48:43 +08:00
parent d593a554fc
commit 42f8a0a136
5 changed files with 22 additions and 21 deletions

View File

@@ -35,6 +35,8 @@ SOURCE createTableAI.sql;
-- 10. 创建系统配置和日志相关表
SOURCE createTableSystem.sql;
SOURCE createTableAchievement.sql;
-- =====================================================
-- 插入初始数据
-- =====================================================

View File

@@ -164,7 +164,7 @@ public class AchievementController {
* 处理成就事件(内部接口,由其他服务调用)
*/
@PostMapping("/event/process")
public ResultDomain<List<TbUserAchievement>> processAchievementEvent(@RequestBody AchievementEvent event) {
public ResultDomain<TbUserAchievement> processAchievementEvent(@RequestBody AchievementEvent event) {
return achievementService.processAchievementEvent(event);
}
@@ -182,7 +182,7 @@ public class AchievementController {
* 批量检查用户可获得的成就
*/
@GetMapping("/available/{userID}")
public ResultDomain<List<TbAchievement>> checkAvailableAchievements(@PathVariable String userID) {
public ResultDomain<TbAchievement> checkAvailableAchievements(@PathVariable String userID) {
return achievementService.checkAvailableAchievements(userID);
}
@@ -209,7 +209,7 @@ public class AchievementController {
* 获取最近获得成就的用户
*/
@GetMapping("/recent/{achievementID}")
public ResultDomain<List<TbUserAchievement>> getRecentAchievers(
public ResultDomain<TbUserAchievement> getRecentAchievers(
@PathVariable String achievementID,
@RequestParam(required = false, defaultValue = "10") Integer limit) {
return achievementService.getRecentAchievers(achievementID, limit);

View File

@@ -39,16 +39,15 @@ public class AchievementEventListener {
logger.debug("接收到成就事件: {}", event);
// 处理成就事件
ResultDomain<List<TbUserAchievement>> result = achievementService.processAchievementEvent(event);
ResultDomain<TbUserAchievement> result = achievementService.processAchievementEvent(event);
if (result.isSuccess() && result.getData() != null && !result.getData().isEmpty()) {
if (result.isSuccess() && result.getDataList() != null && !result.getDataList().isEmpty()) {
logger.info("用户 {} 通过事件 {} 获得 {} 个新成就",
event.getUserID(),
event.getEventType(),
result.getData().size());
result.getDataList().size());
// 这里可以添加通知逻辑,如发送消息给用户
notifyUserAboutNewAchievements(event.getUserID(), result.getData());
notifyUserAboutNewAchievements(event.getUserID(), result.getDataList());
}
} catch (Exception e) {
logger.error("处理成就事件异常: {}", e.getMessage(), e);

View File

@@ -449,8 +449,8 @@ public class ACHAchievementServiceImpl implements AchievementService {
@Override
@Transactional(rollbackFor = Exception.class)
public ResultDomain<List<TbUserAchievement>> processAchievementEvent(AchievementEvent event) {
ResultDomain<List<TbUserAchievement>> resultDomain = new ResultDomain<>();
public ResultDomain<TbUserAchievement> processAchievementEvent(AchievementEvent event) {
ResultDomain<TbUserAchievement> resultDomain = new ResultDomain<>();
List<TbUserAchievement> newAchievements = new ArrayList<>();
try {
@@ -545,8 +545,8 @@ public class ACHAchievementServiceImpl implements AchievementService {
}
@Override
public ResultDomain<List<TbAchievement>> checkAvailableAchievements(String userID) {
ResultDomain<List<TbAchievement>> resultDomain = new ResultDomain<>();
public ResultDomain<TbAchievement> checkAvailableAchievements(String userID) {
ResultDomain<TbAchievement> resultDomain = new ResultDomain<>();
try {
if (!StringUtils.hasText(userID)) {
resultDomain.fail("用户ID不能为空");
@@ -634,8 +634,8 @@ public class ACHAchievementServiceImpl implements AchievementService {
}
@Override
public ResultDomain<List<TbUserAchievement>> getRecentAchievers(String achievementID, Integer limit) {
ResultDomain<List<TbUserAchievement>> resultDomain = new ResultDomain<>();
public ResultDomain<TbUserAchievement> getRecentAchievers(String achievementID, Integer limit) {
ResultDomain<TbUserAchievement> resultDomain = new ResultDomain<>();
try {
if (!StringUtils.hasText(achievementID)) {
resultDomain.fail("成就ID不能为空");

View File

@@ -138,9 +138,9 @@ public interface AchievementService {
/**
* @description 处理成就事件(核心方法)
* @param event 成就事件
* @return ResultDomain<List<TbUserAchievement>> 本次触发的成就列表
* @return ResultDomain<TbUserAchievement> 本次触发的成就列表在dataList中
*/
ResultDomain<List<TbUserAchievement>> processAchievementEvent(AchievementEvent event);
ResultDomain<TbUserAchievement> processAchievementEvent(AchievementEvent event);
/**
* @description 检查用户是否满足成就条件
@@ -153,9 +153,9 @@ public interface AchievementService {
/**
* @description 批量检查用户可获得的成就
* @param userID 用户ID
* @return ResultDomain<List<TbAchievement>> 可获得的成就列表
* @return ResultDomain<TbAchievement> 可获得的成就列表在dataList中
*/
ResultDomain<List<TbAchievement>> checkAvailableAchievements(String userID);
ResultDomain<TbAchievement> checkAvailableAchievements(String userID);
// ==================== 成就统计 ====================
@@ -177,8 +177,8 @@ public interface AchievementService {
* @description 获取最近获得成就的用户
* @param achievementID 成就ID
* @param limit 查询条数
* @return ResultDomain<List<TbUserAchievement>> 用户成就列表
* @return ResultDomain<TbUserAchievement> 用户成就列表在dataList中
*/
ResultDomain<List<TbUserAchievement>> getRecentAchievers(String achievementID, Integer limit);
ResultDomain<TbUserAchievement> getRecentAchievers(String achievementID, Integer limit);
}