feat: 添加SysDictHandler字典管理API
This commit is contained in:
+114
@@ -0,0 +1,114 @@
|
|||||||
|
package cn.novalon.manage.sys.handler.dict;
|
||||||
|
|
||||||
|
import cn.novalon.manage.sys.core.domain.SysDictType;
|
||||||
|
import cn.novalon.manage.sys.core.domain.SysDictData;
|
||||||
|
import cn.novalon.manage.sys.core.service.ISysDictTypeService;
|
||||||
|
import cn.novalon.manage.sys.core.service.ISysDictDataService;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import reactor.core.publisher.Flux;
|
||||||
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/dict")
|
||||||
|
public class SysDictHandler {
|
||||||
|
|
||||||
|
private final ISysDictTypeService dictTypeService;
|
||||||
|
private final ISysDictDataService dictDataService;
|
||||||
|
|
||||||
|
public SysDictHandler(ISysDictTypeService dictTypeService, ISysDictDataService dictDataService) {
|
||||||
|
this.dictTypeService = dictTypeService;
|
||||||
|
this.dictDataService = dictDataService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/types")
|
||||||
|
public Flux<SysDictType> getAllDictTypes() {
|
||||||
|
return dictTypeService.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/types/{id}")
|
||||||
|
public Mono<ResponseEntity<SysDictType>> getDictTypeById(@PathVariable Long id) {
|
||||||
|
return dictTypeService.findById(id)
|
||||||
|
.map(ResponseEntity::ok)
|
||||||
|
.defaultIfEmpty(ResponseEntity.notFound().build());
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/types/type/{dictType}")
|
||||||
|
public Mono<ResponseEntity<SysDictType>> getDictTypeByType(@PathVariable String dictType) {
|
||||||
|
return dictTypeService.findByDictType(dictType)
|
||||||
|
.map(ResponseEntity::ok)
|
||||||
|
.defaultIfEmpty(ResponseEntity.notFound().build());
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/types")
|
||||||
|
public Mono<ResponseEntity<SysDictType>> createDictType(@RequestBody SysDictType dictType) {
|
||||||
|
return dictTypeService.save(dictType)
|
||||||
|
.map(dt -> ResponseEntity.status(HttpStatus.CREATED).body(dt));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/types/{id}")
|
||||||
|
public Mono<ResponseEntity<SysDictType>> updateDictType(@PathVariable Long id, @RequestBody SysDictType dictType) {
|
||||||
|
return dictTypeService.findById(id)
|
||||||
|
.flatMap(existing -> {
|
||||||
|
existing.setDictName(dictType.getDictName());
|
||||||
|
existing.setStatus(dictType.getStatus());
|
||||||
|
existing.setRemark(dictType.getRemark());
|
||||||
|
return dictTypeService.save(existing);
|
||||||
|
})
|
||||||
|
.map(ResponseEntity::ok)
|
||||||
|
.defaultIfEmpty(ResponseEntity.notFound().build());
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/types/{id}")
|
||||||
|
public Mono<ResponseEntity<Void>> deleteDictType(@PathVariable Long id) {
|
||||||
|
return dictTypeService.deleteById(id)
|
||||||
|
.then(Mono.just(ResponseEntity.noContent().build()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/data")
|
||||||
|
public Flux<SysDictData> getAllDictData() {
|
||||||
|
return dictDataService.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/data/{id}")
|
||||||
|
public Mono<ResponseEntity<SysDictData>> getDictDataById(@PathVariable Long id) {
|
||||||
|
return dictDataService.findById(id)
|
||||||
|
.map(ResponseEntity::ok)
|
||||||
|
.defaultIfEmpty(ResponseEntity.notFound().build());
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/data/type/{dictType}")
|
||||||
|
public Flux<SysDictData> getDictDataByType(@PathVariable String dictType) {
|
||||||
|
return dictDataService.findByDictType(dictType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/data")
|
||||||
|
public Mono<ResponseEntity<SysDictData>> createDictData(@RequestBody SysDictData dictData) {
|
||||||
|
return dictDataService.save(dictData)
|
||||||
|
.map(dd -> ResponseEntity.status(HttpStatus.CREATED).body(dd));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/data/{id}")
|
||||||
|
public Mono<ResponseEntity<SysDictData>> updateDictData(@PathVariable Long id, @RequestBody SysDictData dictData) {
|
||||||
|
return dictDataService.findById(id)
|
||||||
|
.flatMap(existing -> {
|
||||||
|
existing.setDictLabel(dictData.getDictLabel());
|
||||||
|
existing.setDictValue(dictData.getDictValue());
|
||||||
|
existing.setDictSort(dictData.getDictSort());
|
||||||
|
existing.setCssClass(dictData.getCssClass());
|
||||||
|
existing.setListClass(dictData.getListClass());
|
||||||
|
existing.setIsDefault(dictData.getIsDefault());
|
||||||
|
existing.setStatus(dictData.getStatus());
|
||||||
|
return dictDataService.save(existing);
|
||||||
|
})
|
||||||
|
.map(ResponseEntity::ok)
|
||||||
|
.defaultIfEmpty(ResponseEntity.notFound().build());
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/data/{id}")
|
||||||
|
public Mono<ResponseEntity<Void>> deleteDictData(@PathVariable Long id) {
|
||||||
|
return dictDataService.deleteById(id)
|
||||||
|
.then(Mono.just(ResponseEntity.noContent().build()));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user