feat: 开发中...
This commit is contained in:
@@ -4,6 +4,7 @@ import cn.hamster3.application.blog.service.ISettingService;
|
||||
import cn.hamster3.application.blog.vo.PageableVO;
|
||||
import cn.hamster3.application.blog.vo.ResponseVO;
|
||||
import cn.hamster3.application.blog.vo.setting.SettingInfoResponseVO;
|
||||
import cn.hamster3.application.blog.vo.setting.SettingUpdateRequireVO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -12,6 +13,8 @@ import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Tag(name = "SettingController", description = "网站设置相关接口")
|
||||
@RestController
|
||||
@RequestMapping(value = "/api/v1/settings", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@@ -40,13 +43,19 @@ public class SettingController {
|
||||
return settingService.getSettingInfoList(PageRequest.of(page, Math.min(size, 100)));
|
||||
}
|
||||
|
||||
@PutMapping(value = "/{id}/", consumes = MediaType.TEXT_PLAIN_VALUE)
|
||||
@PutMapping(value = "/{id}/")
|
||||
@Operation(summary = "更改网站设置")
|
||||
public ResponseVO<Void> updateSetting(
|
||||
@Parameter(description = "设置ID") @PathVariable String id,
|
||||
@Parameter(description = "设置内容") @RequestBody String content
|
||||
@Parameter(description = "设置内容") @RequestBody SettingUpdateRequireVO requireVO
|
||||
) {
|
||||
return settingService.updateSetting(id, content);
|
||||
return settingService.updateSetting(id, requireVO);
|
||||
}
|
||||
|
||||
@PutMapping(value = "/")
|
||||
@Operation(summary = "批量更改网站设置")
|
||||
public ResponseVO<Void> updateSettings(@Parameter(description = "设置内容") @RequestBody Map<String, String> data) {
|
||||
return settingService.updateSettings(data);
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}/")
|
||||
|
@@ -3,9 +3,12 @@ package cn.hamster3.application.blog.service;
|
||||
import cn.hamster3.application.blog.vo.PageableVO;
|
||||
import cn.hamster3.application.blog.vo.ResponseVO;
|
||||
import cn.hamster3.application.blog.vo.setting.SettingInfoResponseVO;
|
||||
import cn.hamster3.application.blog.vo.setting.SettingUpdateRequireVO;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface ISettingService {
|
||||
@NotNull ResponseVO<SettingInfoResponseVO> getSettingInfo(@NotNull String id);
|
||||
|
||||
@@ -13,7 +16,9 @@ public interface ISettingService {
|
||||
|
||||
@NotNull ResponseVO<PageableVO<SettingInfoResponseVO>> getSettingInfoList(@NotNull Pageable pageable);
|
||||
|
||||
@NotNull ResponseVO<Void> updateSetting(@NotNull String id, @NotNull String content);
|
||||
@NotNull ResponseVO<Void> updateSetting(@NotNull String id, @NotNull SettingUpdateRequireVO requireVO);
|
||||
|
||||
@NotNull ResponseVO<Void> updateSettings(@NotNull Map<String, String> data);
|
||||
|
||||
@NotNull ResponseVO<Void> deleteSetting(@NotNull String id);
|
||||
}
|
||||
|
@@ -8,12 +8,15 @@ import cn.hamster3.application.blog.util.BlogUtils;
|
||||
import cn.hamster3.application.blog.vo.PageableVO;
|
||||
import cn.hamster3.application.blog.vo.ResponseVO;
|
||||
import cn.hamster3.application.blog.vo.setting.SettingInfoResponseVO;
|
||||
import cn.hamster3.application.blog.vo.setting.SettingUpdateRequireVO;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SettingService implements ISettingService {
|
||||
@@ -49,7 +52,8 @@ public class SettingService implements ISettingService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull ResponseVO<Void> updateSetting(@NotNull String id, @NotNull String content) {
|
||||
public @NotNull ResponseVO<Void> updateSetting(@NotNull String id, @NotNull SettingUpdateRequireVO requireVO) {
|
||||
String content = requireVO.getContent();
|
||||
ResponseVO<Void> check = BlogUtils.checkAdminPermission();
|
||||
if (check != null) {
|
||||
return check;
|
||||
@@ -65,6 +69,27 @@ public class SettingService implements ISettingService {
|
||||
return ResponseVO.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull ResponseVO<Void> updateSettings(@NotNull Map<String, String> data) {
|
||||
ResponseVO<Void> check = BlogUtils.checkAdminPermission();
|
||||
if (check != null) {
|
||||
return check;
|
||||
}
|
||||
for (Map.Entry<String, String> entry : data.entrySet()) {
|
||||
String id = entry.getKey();
|
||||
String content = entry.getValue();
|
||||
if (!settingRepo.existsByIdIgnoreCase(id)) {
|
||||
SettingEntity entity = new SettingEntity();
|
||||
entity.setId(id);
|
||||
entity.setContent(content);
|
||||
settingRepo.save(entity);
|
||||
} else {
|
||||
settingRepo.updateContentByIdIgnoreCase(content, id);
|
||||
}
|
||||
}
|
||||
return ResponseVO.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull ResponseVO<Void> deleteSetting(@NotNull String id) {
|
||||
ResponseVO<Void> check = BlogUtils.checkAdminPermission();
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package cn.hamster3.application.blog.vo.setting;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -9,6 +8,5 @@ import lombok.NoArgsConstructor;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SettingUpdateRequireVO {
|
||||
@NotBlank(message = "网站设置内容不能为空!")
|
||||
private String content;
|
||||
}
|
||||
|
Reference in New Issue
Block a user