feat: 开发中...

This commit is contained in:
2023-04-01 19:17:20 +08:00
parent 81288078d4
commit d1054590cd
17 changed files with 293 additions and 82 deletions

View File

@@ -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}/")

View File

@@ -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);
}

View File

@@ -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();

View File

@@ -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;
}