feat(commerce): 完成奖励活动管理接口

This commit is contained in:
Zhou Weidong committed 2026-11-13 13:43:16 +08:00
1 parent 32cac38a0e
commit 12c28963f5
10 files changed
+408 -3

No files matched your search

@@ -3,8 +3,12 @@
package com.fruitshorts.admin.controller;
import com.fruitshorts.commerce.reward.service.RewardCheckinService;
import com.fruitshorts.commerce.reward.service.RewardActivityAdminService;
import com.fruitshorts.commerce.reward.service.RewardGrantService;
import com.fruitshorts.commerce.reward.service.RewardTaskService;
import com.fruitshorts.commerce.reward.vo.RewardActivityQueryReqVO;
import com.fruitshorts.commerce.reward.vo.RewardActivityRespVO;
import com.fruitshorts.commerce.reward.vo.RewardActivitySaveReqVO;
import com.fruitshorts.commerce.reward.vo.RewardCheckinRuleSaveReqVO;
import com.fruitshorts.commerce.reward.vo.RewardGrantQueryReqVO;
import com.fruitshorts.commerce.reward.vo.RewardGrantRespVO;
@@ -45,6 +49,7 @@ import java.util.List;
public class RewardAdminController {
private final RewardTaskService taskService;
private final RewardActivityAdminService activityService;
private final RewardCheckinService checkinService;
private final RewardGrantService grantService;
private final AppUserMapper appUserMapper;
@@ -89,6 +94,46 @@ public class RewardAdminController {
return Result.ok();
}
@Operation(summary = "奖励活动分页")
@GetMapping("/activities/page")
@PreAuthorize("@ss.hasPermission('reward:list')")
public Result<PageResult<RewardActivityRespVO>> activityPage(@Validated RewardActivityQueryReqVO req) {
return Result.ok(activityService.page(req));
}
@Operation(summary = "奖励活动详情")
@GetMapping("/activities/{id}")
@PreAuthorize("@ss.hasPermission('reward:list')")
public Result<RewardActivityRespVO> activityDetail(@PathVariable Long id) {
return Result.ok(activityService.detail(id));
}
@Operation(summary = "新建奖励活动")
@PostMapping("/activities")
@PreAuthorize("@ss.hasPermission('reward:update')")
@OperationLog(module = "奖励中心", action = "新建奖励活动")
public Result<Long> createActivity(@Valid @RequestBody RewardActivitySaveReqVO req) {
return Result.ok(activityService.create(req));
}
@Operation(summary = "编辑奖励活动")
@PutMapping("/activities/{id}")
@PreAuthorize("@ss.hasPermission('reward:update')")
@OperationLog(module = "奖励中心", action = "编辑奖励活动")
public Result<Void> updateActivity(@PathVariable Long id, @Valid @RequestBody RewardActivitySaveReqVO req) {
activityService.update(id, req);
return Result.ok();
}
@Operation(summary = "奖励活动上下线")
@PutMapping("/activities/{id}/status")
@PreAuthorize("@ss.hasPermission('reward:update')")
@OperationLog(module = "奖励中心", action = "奖励活动上下线")
public Result<Void> updateActivityStatus(@PathVariable Long id, @RequestParam Integer status) {
activityService.updateStatus(id, status);
return Result.ok();
}
@Operation(summary = "签到规则")
@GetMapping("/check-in/rules")
@PreAuthorize("@ss.hasPermission('reward:checkin')")
@@ -35,7 +35,8 @@ class AdminPermissionAnnotationTest {
assertThat(permissionsOf(RewardAdminController.class))
.containsExactlyInAnyOrder("reward:list", "reward:list", "reward:update",
"reward:update", "reward:update", "reward:checkin", "reward:checkin",
"reward:grant", "reward:grant");
"reward:grant", "reward:grant", "reward:list", "reward:list",
"reward:update", "reward:update", "reward:update");
}
/** 收集控制器里所有映射方法的 @PreAuthorize 权限点(缺失则记为 MISSING,便于断言直接看到)。 */