|
|
@@ -1,5 +1,6 @@
|
|
|
package com.etotem.cfc.controller;
|
|
|
|
|
|
+import com.etotem.cfc.common.AdminRoles;
|
|
|
import com.etotem.cfc.common.Result;
|
|
|
import com.etotem.cfc.dto.ActivityDTO;
|
|
|
import com.etotem.cfc.entity.Activity;
|
|
|
@@ -19,6 +20,11 @@ public class ActivityController {
|
|
|
@Resource private ActivityRegistrationService registrationService;
|
|
|
@Resource private ActivityAdminService activityAdminService;
|
|
|
|
|
|
+ private boolean hasActivityManageRole(String role, List<String> roles) {
|
|
|
+ if ("admin".equals(role) || "activity_admin".equals(role)) return true;
|
|
|
+ return AdminRoles.hasRole(roles, "activity_manager");
|
|
|
+ }
|
|
|
+
|
|
|
@PostMapping("/list")
|
|
|
public Result<Map<String, Object>> list(@RequestBody Map<String, Object> params, @RequestAttribute(value = "userId", required = false) Long userId) {
|
|
|
String dimensionCode = (String) params.get("dimensionCode");
|
|
|
@@ -38,8 +44,9 @@ public class ActivityController {
|
|
|
@PostMapping("/create")
|
|
|
public Result<ActivityDTO> create(@RequestBody Activity activity,
|
|
|
@RequestAttribute(value = "userId", required = false) Long userId,
|
|
|
- @RequestAttribute("role") String role) {
|
|
|
- if (!"admin".equals(role) && !"activity_admin".equals(role) && userId == null) {
|
|
|
+ @RequestAttribute("role") String role,
|
|
|
+ @RequestAttribute(value = "roles", required = false) List<String> roles) {
|
|
|
+ if (!hasActivityManageRole(role, roles) && userId == null) {
|
|
|
return Result.error("普通用户需登录后创建活动");
|
|
|
}
|
|
|
if (userId != null) activity.setVendorId(userId);
|
|
|
@@ -49,8 +56,9 @@ public class ActivityController {
|
|
|
@PostMapping("/update")
|
|
|
public Result<ActivityDTO> update(@RequestBody Activity activity,
|
|
|
@RequestAttribute(value = "userId", required = false) Long userId,
|
|
|
- @RequestAttribute("role") String role) {
|
|
|
- if (!"admin".equals(role) && !"activity_admin".equals(role)) {
|
|
|
+ @RequestAttribute("role") String role,
|
|
|
+ @RequestAttribute(value = "roles", required = false) List<String> roles) {
|
|
|
+ if (!hasActivityManageRole(role, roles)) {
|
|
|
Activity existing = activityService.getById(activity.getId());
|
|
|
if (existing == null) return Result.error("活动不存在");
|
|
|
if (userId == null || existing.getCreatorId() == null || !existing.getCreatorId().equals(userId)) {
|
|
|
@@ -62,8 +70,9 @@ public class ActivityController {
|
|
|
|
|
|
@PostMapping("/publish")
|
|
|
public Result<String> publish(@RequestBody Map<String, Object> params,
|
|
|
- @RequestAttribute("role") String role) {
|
|
|
- if (!"admin".equals(role) && !"activity_admin".equals(role)) {
|
|
|
+ @RequestAttribute("role") String role,
|
|
|
+ @RequestAttribute(value = "roles", required = false) List<String> roles) {
|
|
|
+ if (!hasActivityManageRole(role, roles)) {
|
|
|
return Result.error("只有管理员或活动管理员可以发布活动");
|
|
|
}
|
|
|
Long id = ParamUtils.getLong(params.get("id"));
|
|
|
@@ -78,8 +87,9 @@ public class ActivityController {
|
|
|
@PostMapping("/end")
|
|
|
public Result<String> end(@RequestBody Map<String, Object> params,
|
|
|
@RequestAttribute(value = "userId", required = false) Long userId,
|
|
|
- @RequestAttribute("role") String role) {
|
|
|
- if (!"admin".equals(role) && !"activity_admin".equals(role)) {
|
|
|
+ @RequestAttribute("role") String role,
|
|
|
+ @RequestAttribute(value = "roles", required = false) List<String> roles) {
|
|
|
+ if (!hasActivityManageRole(role, roles)) {
|
|
|
Long id = ParamUtils.getLong(params.get("id"));
|
|
|
if (id == null) return Result.error("id不能为空");
|
|
|
Activity existing = activityService.getById(id);
|
|
|
@@ -96,12 +106,13 @@ public class ActivityController {
|
|
|
@PostMapping("/submit-review")
|
|
|
public Result<String> submitReview(@RequestBody Map<String, Object> params,
|
|
|
@RequestAttribute(value = "userId", required = false) Long userId,
|
|
|
- @RequestAttribute("role") String role) {
|
|
|
+ @RequestAttribute("role") String role,
|
|
|
+ @RequestAttribute(value = "roles", required = false) List<String> roles) {
|
|
|
Long id = ParamUtils.getLong(params.get("id"));
|
|
|
if (id == null) return Result.error("id不能为空");
|
|
|
Activity existing = activityService.getById(id);
|
|
|
if (existing == null) return Result.error("活动不存在");
|
|
|
- boolean isAdmin = "admin".equals(role) || "activity_admin".equals(role);
|
|
|
+ boolean isAdmin = hasActivityManageRole(role, roles);
|
|
|
if (!isAdmin && (userId == null || existing.getCreatorId() == null || !existing.getCreatorId().equals(userId))) {
|
|
|
return Result.error("只有创建人或管理员可以提交审核");
|
|
|
}
|