DictController.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.boot.security.server.controller;
  2. import java.util.List;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.security.access.prepost.PreAuthorize;
  5. import org.springframework.web.bind.annotation.DeleteMapping;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.PathVariable;
  8. import org.springframework.web.bind.annotation.PostMapping;
  9. import org.springframework.web.bind.annotation.PutMapping;
  10. import org.springframework.web.bind.annotation.RequestBody;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import com.boot.security.server.dao.DictDao;
  14. import com.boot.security.server.model.Dict;
  15. import com.boot.security.server.page.table.PageTableHandler;
  16. import com.boot.security.server.page.table.PageTableHandler.CountHandler;
  17. import com.boot.security.server.page.table.PageTableHandler.ListHandler;
  18. import com.boot.security.server.page.table.PageTableRequest;
  19. import com.boot.security.server.page.table.PageTableResponse;
  20. import io.swagger.annotations.ApiOperation;
  21. @RestController
  22. @RequestMapping("/dicts")
  23. public class DictController {
  24. @Autowired
  25. private DictDao dictDao;
  26. @PreAuthorize("hasAuthority('dict:add')")
  27. @PostMapping
  28. @ApiOperation(value = "保存")
  29. public Dict save(@RequestBody Dict dict) {
  30. Dict d = dictDao.getByTypeAndK(dict.getType(), dict.getK());
  31. if (d != null) {
  32. throw new IllegalArgumentException("类型和key已存在");
  33. }
  34. dictDao.save(dict);
  35. return dict;
  36. }
  37. @GetMapping("/{id}")
  38. @ApiOperation(value = "根据id获取")
  39. public Dict get(@PathVariable Long id) {
  40. return dictDao.getById(id);
  41. }
  42. @PreAuthorize("hasAuthority('dict:add')")
  43. @PutMapping
  44. @ApiOperation(value = "修改")
  45. public Dict update(@RequestBody Dict dict) {
  46. dictDao.update(dict);
  47. return dict;
  48. }
  49. @PreAuthorize("hasAuthority('dict:query')")
  50. @GetMapping(params = { "start", "length" })
  51. @ApiOperation(value = "列表")
  52. public PageTableResponse list(PageTableRequest request) {
  53. return new PageTableHandler(new CountHandler() {
  54. @Override
  55. public int count(PageTableRequest request) {
  56. return dictDao.count(request.getParams());
  57. }
  58. }, new ListHandler() {
  59. @Override
  60. public List<Dict> list(PageTableRequest request) {
  61. return dictDao.list(request.getParams(), request.getOffset(), request.getLimit());
  62. }
  63. }).handle(request);
  64. }
  65. @PreAuthorize("hasAuthority('dict:del')")
  66. @DeleteMapping("/{id}")
  67. @ApiOperation(value = "删除")
  68. public void delete(@PathVariable Long id) {
  69. dictDao.delete(id);
  70. }
  71. @GetMapping(params = "type")
  72. public List<Dict> listByType(String type) {
  73. return dictDao.listByType(type);
  74. }
  75. }