feat: add club information change related controller
This commit is contained in:
parent
6c286868f6
commit
dabf9c71d1
@ -7,9 +7,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.blue.club.annotation.Auth;
|
||||
import org.blue.club.annotation.DescriptionType;
|
||||
import org.blue.club.annotation.PermissionDescription;
|
||||
import org.blue.club.entities.dto.club.req.ClubAddUserRequest;
|
||||
import org.blue.club.entities.dto.club.req.ClubChangeUserAuthRequest;
|
||||
import org.blue.club.entities.dto.club.req.CreateClubRequest;
|
||||
import org.blue.club.entities.dto.club.req.*;
|
||||
import org.blue.club.entities.dto.user.User;
|
||||
import org.blue.club.entities.vo.data.ClubVo;
|
||||
import org.blue.club.services.ClubServices;
|
||||
@ -60,4 +58,23 @@ public class ClubController {
|
||||
public Result<Boolean> clubChangeUserAuth(@Auth(permissions = {@PermissionDescription(3), @PermissionDescription(value = 2, type = DescriptionType.CLUB)}) User user, @RequestBody ClubChangeUserAuthRequest request) {
|
||||
return clubServices.clubChangeUserAuth(user, request);
|
||||
}
|
||||
|
||||
@PutMapping("/avatar")
|
||||
@Operation(description = "修改社团头像")
|
||||
public Result<Boolean> changeAvatar(@RequestParam("code") @Schema(description = "修改头像操作码,可以通过将图片文件上传至([POST] /api/avatar/upload)接口获取") String avatarOperationCode, @Schema(description = "被修改的社团ID") @RequestParam long clubId, @Auth(permissions = {@PermissionDescription(3), @PermissionDescription(value = 1, type = DescriptionType.CLUB)}) User user) {
|
||||
return clubServices.changeAvatar(avatarOperationCode, clubId, user);
|
||||
}
|
||||
|
||||
@PutMapping("/name")
|
||||
@Operation(description = "修改社团名称")
|
||||
@Auth(permissions = {@PermissionDescription(3)})
|
||||
public Result<Boolean> changeName(@RequestBody ChangeClubNameRequest request) {
|
||||
return clubServices.changeName(request);
|
||||
}
|
||||
|
||||
@PutMapping("/commit")
|
||||
@Operation(description = "修改社团名称")
|
||||
public Result<Boolean> changeCommit(@RequestBody ChangeClubCommitRequest request, @Auth(permissions = {@PermissionDescription(3), @PermissionDescription(value = 1, type = DescriptionType.CLUB)}) User user) {
|
||||
return clubServices.changeCommit(request, user);
|
||||
}
|
||||
}
|
||||
|
@ -74,8 +74,8 @@ public class UserController {
|
||||
|
||||
@PutMapping("/avatar")
|
||||
@Operation(description = "修改用户头像")
|
||||
public Result<Boolean> changeAvatar(@RequestParam("code") @Schema(description = "修改头像操作码,可以通过将图片文件上传至([POST] /api/avatar/upload)接口获取") String avatarOperationCode, @Auth User user) {
|
||||
return userServices.changeAvatar(avatarOperationCode, user);
|
||||
public Result<Boolean> changeAvatar(@RequestParam("code") @Schema(description = "修改头像操作码,可以通过将图片文件上传至([POST] /api/avatar/upload)接口获取") String avatarOperationCode, @Schema(description = "被修改的用户ID", defaultValue = "-1") @RequestParam long userId, @Auth User user) {
|
||||
return userServices.changeAvatar(avatarOperationCode, userId, user);
|
||||
}
|
||||
|
||||
@GetMapping("/verify")
|
||||
|
@ -0,0 +1,8 @@
|
||||
package org.blue.club.entities.dto.club.req;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@Schema(name = "修改社团简介请求")
|
||||
public record ChangeClubCommitRequest(@Schema(description = "社团ID") Long clubId,
|
||||
@Schema(description = "新社团简介") String commit) {
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package org.blue.club.entities.dto.club.req;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@Schema(name = "修改社团名称请求")
|
||||
public record ChangeClubNameRequest(@Schema(description = "社团ID") Long clubId,
|
||||
@Schema(description = "新社团名称") String name) {
|
||||
}
|
@ -7,9 +7,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.blue.club.dao.ClubDao;
|
||||
import org.blue.club.dao.ClubUserAuthDao;
|
||||
import org.blue.club.dao.UserDao;
|
||||
import org.blue.club.entities.dto.club.req.ClubAddUserRequest;
|
||||
import org.blue.club.entities.dto.club.req.ClubChangeUserAuthRequest;
|
||||
import org.blue.club.entities.dto.club.req.CreateClubRequest;
|
||||
import org.blue.club.entities.dto.club.req.*;
|
||||
import org.blue.club.entities.dto.user.User;
|
||||
import org.blue.club.entities.vo.data.ClubAuthVo;
|
||||
import org.blue.club.entities.vo.data.ClubUserAuthVo;
|
||||
@ -25,6 +23,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static com.mybatisflex.core.query.QueryMethods.select;
|
||||
import static org.blue.club.entities.vo.data.table.ClubUserAuthVoTableDef.CLUB_USER_AUTH_VO;
|
||||
@ -37,6 +36,7 @@ import static org.blue.club.entities.vo.data.table.UserVoTableDef.USER_VO;
|
||||
public class ClubServices {
|
||||
private final ClubDao clubDao;
|
||||
private final ClubUserAuthDao clubUserAuthDao;
|
||||
private final AvatarServices avatarServices;
|
||||
private final UserDao userDao;
|
||||
private final VoUtils voUtils;
|
||||
|
||||
@ -129,6 +129,41 @@ public class ClubServices {
|
||||
throw new AuthorizationException(Result.failed(HttpStatus.FORBIDDEN, "权限不足!"));
|
||||
clubUserAuthVo.setAuthId(targetClubAuthId);
|
||||
clubUserAuthDao.update(clubUserAuthVo);
|
||||
return null;
|
||||
return Result.success(true);
|
||||
}
|
||||
|
||||
public Result<Boolean> changeAvatar(String avatarOperationCode, long clubId, User user) {
|
||||
long operatorUserClubId = NullableUtils.ifNonNullDoElse(user.getClub(), ClubVo::getId, -1L);
|
||||
if (clubId != operatorUserClubId && !user.hasSuperAdminPermission())
|
||||
throw new AuthorizationException(Result.failed(HttpStatus.FORBIDDEN, "权限不足!"));
|
||||
Optional<String> result = avatarServices.permanentSaveAvatar(avatarOperationCode);
|
||||
if (result.isEmpty()) return Result.failed(HttpStatus.NOT_FOUND, "操作码错误或过期");
|
||||
ClubVo clubVo = new ClubVo();
|
||||
clubVo.setId(clubId);
|
||||
clubVo.setAvatar(result.get());
|
||||
clubDao.update(clubVo);
|
||||
return Result.success(true);
|
||||
}
|
||||
|
||||
public Result<Boolean> changeName(ChangeClubNameRequest request) {
|
||||
long clubId = request.clubId();
|
||||
String newName = request.name();
|
||||
ClubVo clubVo = new ClubVo();
|
||||
clubVo.setId(clubId);
|
||||
clubVo.setName(newName);
|
||||
clubDao.update(clubVo);
|
||||
return Result.success(true);
|
||||
}
|
||||
|
||||
public Result<Boolean> changeCommit(ChangeClubCommitRequest request, User user) {
|
||||
long operatorUserClubId = NullableUtils.ifNonNullDoElse(user.getClub(), ClubVo::getId, -1L);
|
||||
long clubId = request.clubId();
|
||||
if (clubId != operatorUserClubId && !user.hasSuperAdminPermission())
|
||||
throw new AuthorizationException(Result.failed(HttpStatus.FORBIDDEN, "权限不足!"));
|
||||
ClubVo clubVo = new ClubVo();
|
||||
clubVo.setId(clubId);
|
||||
clubVo.setCommit(request.commit());
|
||||
clubDao.update(clubVo);
|
||||
return Result.success(true);
|
||||
}
|
||||
}
|
||||
|
@ -130,11 +130,17 @@ public class UserServices {
|
||||
}
|
||||
|
||||
|
||||
public Result<Boolean> changeAvatar(String avatarOperationCode, User user) {
|
||||
public Result<Boolean> changeAvatar(String avatarOperationCode, long userId, User user) {
|
||||
long operatorUserId = user.getId();
|
||||
if (userId == -1) {
|
||||
userId = operatorUserId;
|
||||
}
|
||||
if (userId != operatorUserId && !user.hasSuperAdminPermission())
|
||||
throw new AuthorizationException(Result.failed(HttpStatus.FORBIDDEN, "权限不足!"));
|
||||
Optional<String> result = avatarServices.permanentSaveAvatar(avatarOperationCode);
|
||||
if (result.isEmpty()) return Result.failed(HttpStatus.NOT_FOUND, "操作码错误或过期");
|
||||
UserVo userVo = new UserVo();
|
||||
userVo.setId(user.getId());
|
||||
userVo.setId(userId);
|
||||
userVo.setAvatar(result.get());
|
||||
userDao.update(userVo);
|
||||
return Result.success(true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user