[api] admin/member/delete

회원 정보삭제 다중으로 받을수 있게 수정
This commit is contained in:
2026-06-24 10:49:59 +09:00
parent 70f674f6e7
commit d00b7dca70
5 changed files with 31 additions and 8 deletions
@@ -3,8 +3,10 @@ package com.alist.api.modules.admin.member.dto;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.List;
@Getter @Getter
@Setter @Setter
public class AdminMemberDeleteDto { public class AdminMemberDeleteDto {
private Integer userIdx; private List<Integer> userIdxList;
} }
@@ -2,21 +2,31 @@ package com.alist.api.modules.admin.member.form;
import com.alist.api.modules.admin.member.dto.AdminMemberDeleteDto; import com.alist.api.modules.admin.member.dto.AdminMemberDeleteDto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Arrays;
@Schema(description = "관리자 회원 계정 삭제 요청 폼") @Schema(description = "관리자 회원 계정 삭제 요청 폼")
@Getter @Getter
@Setter @Setter
public class AdminMemberDeleteForm { public class AdminMemberDeleteForm {
@Schema(description = "회원 PK", example = "15", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "회원 PK 목록. 콤마 구분 문자열", example = "1,2,3", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "회원 PK는 필수입니다.") @NotBlank(message = "삭제할 회원 PK를 입력해주세요.")
private Integer userIdx; @Pattern(regexp = "^\\d+(,\\d+)*$", message = "회원 PK 목록은 1,2,3 형식으로 입력해주세요.")
private String userIdxList;
public AdminMemberDeleteDto toDto() { public AdminMemberDeleteDto toDto() {
AdminMemberDeleteDto adminMemberDeleteDto = new AdminMemberDeleteDto(); AdminMemberDeleteDto adminMemberDeleteDto = new AdminMemberDeleteDto();
adminMemberDeleteDto.setUserIdx(userIdx); adminMemberDeleteDto.setUserIdxList(
Arrays.stream(userIdxList.split(","))
.map(String::trim)
.map(Integer::valueOf)
.distinct()
.toList()
);
return adminMemberDeleteDto; return adminMemberDeleteDto;
} }
} }
@@ -93,6 +93,8 @@ public class AdminMemberService {
AdminMemberDeleteVo adminMemberDeleteVo = new AdminMemberDeleteVo(); AdminMemberDeleteVo adminMemberDeleteVo = new AdminMemberDeleteVo();
adminMemberDeleteVo.setProcessed(updateCount > 0); adminMemberDeleteVo.setProcessed(updateCount > 0);
adminMemberDeleteVo.setRequestedCount(adminMemberDeleteDto.getUserIdxList().size());
adminMemberDeleteVo.setDeletedCount(updateCount);
return adminMemberDeleteVo; return adminMemberDeleteVo;
} }
} }
@@ -10,4 +10,10 @@ import lombok.Setter;
public class AdminMemberDeleteVo { public class AdminMemberDeleteVo {
@Schema(description = "회원 계정 삭제 여부", example = "true") @Schema(description = "회원 계정 삭제 여부", example = "true")
private boolean processed; private boolean processed;
@Schema(description = "삭제 요청 회원 수", example = "3")
private int requestedCount;
@Schema(description = "실제 삭제 처리 회원 수", example = "3")
private int deletedCount;
} }
@@ -131,8 +131,11 @@
/*AdminMemberMapper.updateAdminMemberDelete*/ /*AdminMemberMapper.updateAdminMemberDelete*/
UPDATE ALISTLMS.test_user UPDATE ALISTLMS.test_user
SET del_yn = 0 SET del_yn = 0
, update_at = now() , update_at = now()
WHERE user_idx = #{userIdx} WHERE user_idx IN
<foreach collection="userIdxList" item="userIdx" open="(" separator="," close=")">
#{userIdx}
</foreach>
AND del_yn = 1 AND del_yn = 1
</update> </update>
</mapper> </mapper>