CommonItemController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package com.dtok.api.controller;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import com.dtok.entity.Account;
  4. import com.dtok.entity.CommonItem;
  5. import com.dtok.entity.LoginHistory;
  6. import com.dtok.framework.exception.AuthenticateException;
  7. import com.dtok.framework.exception.BizExceptionEnum;
  8. import com.dtok.framework.response.ResponseData;
  9. import com.dtok.framework.util.ToolUtil;
  10. import com.dtok.repository.CommonItemRepository;
  11. import io.swagger.models.auth.In;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.data.jpa.domain.Specification;
  14. import org.springframework.util.StringUtils;
  15. import org.springframework.web.bind.annotation.*;
  16. import javax.persistence.criteria.Predicate;
  17. import java.util.Date;
  18. import java.util.List;
  19. import java.util.Objects;
  20. @RestController
  21. @RequestMapping("/commonItem")
  22. public class CommonItemController {
  23. @Autowired
  24. CommonItemRepository commonItemRepository;
  25. @GetMapping("/search")
  26. public ResponseData search(@RequestParam("app") String app, @RequestParam("content") String content, @RequestParam("type") String type) {
  27. Specification<CommonItem> query = (root, query1, criteriaBuilder) -> {
  28. Predicate predicate = criteriaBuilder.conjunction();
  29. if (ToolUtil.isNotEmpty(app)) {
  30. predicate.getExpressions().add(criteriaBuilder.or(criteriaBuilder.equal(root.get("app"), app)));
  31. }
  32. if (ToolUtil.isNotEmpty(content)) {
  33. predicate.getExpressions().add(criteriaBuilder.or(criteriaBuilder.like(root.get("content"), "%" + content + "%")));
  34. }
  35. if (ToolUtil.isNotEmpty(type)) {
  36. predicate.getExpressions().add(criteriaBuilder.or(criteriaBuilder.like(root.get("type"), "%" + type + "%")));
  37. }
  38. predicate.getExpressions().add(criteriaBuilder.and(criteriaBuilder.equal(root.get("isDefault"), true)));
  39. predicate.getExpressions().add(criteriaBuilder.and(criteriaBuilder.equal(root.get("createdAt"), ((Account) StpUtil.getSession().get("loginUser")).getId())));
  40. return predicate;
  41. };
  42. List<CommonItem> result = commonItemRepository.findAll(query);
  43. return ResponseData.success(result);
  44. }
  45. @PostMapping("/add")
  46. public ResponseData search(CommonItem commonItem) {
  47. if (Objects.isNull(commonItem)) {
  48. throw new NullPointerException("对象不存在");
  49. }
  50. if (!StringUtils.hasLength(commonItem.getContent()) || !StringUtils.hasLength(commonItem.getApp()) || !StringUtils.hasLength(commonItem.getType())) {
  51. throw new NullPointerException("属性缺省");
  52. }
  53. if (!((Account) StpUtil.getSession().get("loginUser")).getIsSuper() && commonItem.getIsDefault()) {
  54. throw new AuthenticateException(BizExceptionEnum.NO_PERMISSION);
  55. }
  56. commonItem.setCreatedAt(((Account) StpUtil.getSession().get("loginUser")).getId());
  57. commonItem.setCreatedTime(new Date());
  58. commonItemRepository.save(commonItem);
  59. return ResponseData.success("添加成功");
  60. }
  61. @PostMapping("/update/{id}")
  62. public ResponseData update(CommonItem commonItem, @PathVariable Integer id) {
  63. if (Objects.isNull(id)) {
  64. throw new NullPointerException("对象不存在");
  65. }
  66. if (Objects.isNull(commonItem)) {
  67. throw new NullPointerException("对象不存在");
  68. }
  69. if (!StringUtils.hasLength(commonItem.getContent()) || !StringUtils.hasLength(commonItem.getApp()) || !StringUtils.hasLength(commonItem.getType())) {
  70. throw new NullPointerException("属性缺省");
  71. }
  72. if (!((Account) StpUtil.getSession().get("loginUser")).getIsSuper() && commonItem.getIsDefault()) {
  73. throw new AuthenticateException(BizExceptionEnum.NO_PERMISSION);
  74. }
  75. commonItem.setId(Long.valueOf(id));
  76. commonItem.setCreatedAt(((Account) StpUtil.getSession().get("loginUser")).getId());
  77. commonItem.setCreatedTime(new Date());
  78. commonItemRepository.save(commonItem);
  79. return ResponseData.success("添加成功");
  80. }
  81. @PostMapping("/delete/{id}")
  82. public ResponseData delete(CommonItem commonItem, @PathVariable Integer id) {
  83. if (Objects.isNull(commonItem)) {
  84. throw new NullPointerException("对象不存在");
  85. }
  86. if (!StringUtils.hasLength(commonItem.getContent()) || !StringUtils.hasLength(commonItem.getApp()) || !StringUtils.hasLength(commonItem.getType())) {
  87. throw new NullPointerException("属性缺省");
  88. }
  89. if (Objects.isNull(id)) {
  90. throw new NullPointerException("对象不存在");
  91. }
  92. CommonItem commonItemAlready = commonItemRepository.getOne(String.valueOf(id));
  93. if (!((Account) StpUtil.getSession().get("loginUser")).getIsSuper() && commonItemAlready.getIsDefault()) {
  94. throw new AuthenticateException(BizExceptionEnum.NO_PERMISSION);
  95. }
  96. commonItemRepository.delete(commonItemAlready);
  97. return ResponseData.success("添加成功");
  98. }
  99. }