ApiMessageBoardController.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /**
  2. * Copyright (c) 2018 业主系统 All rights reserved.
  3. * <p>
  4. * https://www.kioor.com
  5. * <p>
  6. * 版权所有,侵权必究!
  7. */
  8. package com.kioor.messageboard.controller;
  9. import com.kioor.annotation.Login;
  10. import com.kioor.common.exception.ErrorCode;
  11. import com.kioor.common.utils.Result;
  12. import com.kioor.common.validator.AssertUtils;
  13. import com.kioor.common.validator.ValidatorUtils;
  14. import com.kioor.common.validator.group.AddGroup;
  15. import com.kioor.common.validator.group.DefaultGroup;
  16. import com.kioor.common.validator.group.UpdateGroup;
  17. import com.kioor.messageboard.dto.MessageBoardDTO;
  18. import com.kioor.messageboard.service.MessageBoardService;
  19. import com.kioor.room.enums.HousingEstateStatus;
  20. import com.kioor.room.service.HousingEstateService;
  21. import io.swagger.v3.oas.annotations.Operation;
  22. import io.swagger.v3.oas.annotations.Parameter;
  23. import io.swagger.v3.oas.annotations.Parameters;
  24. import io.swagger.v3.oas.annotations.tags.Tag;
  25. import lombok.AllArgsConstructor;
  26. import org.springframework.web.bind.annotation.*;
  27. import java.util.Arrays;
  28. import java.util.Map;
  29. /**
  30. * 论坛
  31. *
  32. * @author Mark sunlightcs@gmail.com
  33. */
  34. @AllArgsConstructor
  35. @RestController
  36. @RequestMapping("/client/messageboard")
  37. @Tag(name = "论坛")
  38. public class ApiMessageBoardController {
  39. private final MessageBoardService messageBoardService;
  40. private final HousingEstateService housingEstateService;
  41. @Login
  42. @GetMapping("infoByHousingEstate")
  43. @Operation(summary = "根据小区查看论坛详情")
  44. @Parameters({
  45. @Parameter(name = "housingEstateId", description = "小区id",required = true)
  46. })
  47. public Result<MessageBoardDTO> infoByHousingEstate(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
  48. if(params.get("housingEstateId") == null){
  49. return new Result().error("小区不能为空");
  50. }
  51. int status = housingEstateService.checkStatus(Long.parseLong(String.valueOf(params.get("housingEstateId"))));
  52. if(status!=1) {
  53. return new Result().error(ErrorCode.INTERNAL_SERVER_ERROR, "无法访问,小区当前状态为" + HousingEstateStatus.fromCode(status).getDescription());
  54. }
  55. MessageBoardDTO dto = messageBoardService.infoByHousingEstate(Long.parseLong(String.valueOf(params.get("housingEstateId"))));
  56. return new Result<MessageBoardDTO>().ok(dto);
  57. }
  58. @Login
  59. @Operation(summary = "信息")
  60. @GetMapping("{id}")
  61. public Result<MessageBoardDTO> info(@PathVariable("id") Long id) {
  62. MessageBoardDTO messageBoardDTO = messageBoardService.get(id);
  63. //校验小区状态
  64. if(messageBoardDTO!=null){
  65. int status = housingEstateService.checkStatus(messageBoardDTO.getHousingEstateId());
  66. if(status!=1) {
  67. return new Result().error(ErrorCode.INTERNAL_SERVER_ERROR, "无法访问,小区当前状态为" + HousingEstateStatus.fromCode(status).getDescription());
  68. }
  69. }
  70. return new Result<MessageBoardDTO>().ok(messageBoardDTO);
  71. }
  72. @Login
  73. @PostMapping
  74. @Operation(summary = "保存")
  75. public Result save(@RequestBody MessageBoardDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
  76. //效验数据
  77. ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
  78. messageBoardService.save(dto);
  79. return new Result();
  80. }
  81. @Login
  82. @PutMapping
  83. @Operation(summary = "修改")
  84. public Result update(@RequestBody MessageBoardDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
  85. //效验数据
  86. ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
  87. messageBoardService.update(dto);
  88. return new Result();
  89. }
  90. @Login
  91. @DeleteMapping
  92. @Operation(summary = "删除")
  93. public Result delete(@RequestBody Long[] ids) {
  94. //效验数据
  95. AssertUtils.isArrayEmpty(ids, "id");
  96. messageBoardService.deleteBatchIds(Arrays.asList(ids));
  97. return new Result();
  98. }
  99. }