ApiHousingEstateController.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /**
  2. * Copyright (c) 2018 业主系统 All rights reserved.
  3. * <p>
  4. * https://www.yezhu.io
  5. * <p>
  6. * 版权所有,侵权必究!
  7. */
  8. package com.kioor.room.controller;
  9. import com.kioor.annotation.Login;
  10. import com.kioor.common.constant.Constant;
  11. import com.kioor.common.page.PageData;
  12. import com.kioor.common.utils.Result;
  13. import com.kioor.common.validator.AssertUtils;
  14. import com.kioor.common.validator.ValidatorUtils;
  15. import com.kioor.common.validator.group.AddGroup;
  16. import com.kioor.common.validator.group.DefaultGroup;
  17. import com.kioor.common.validator.group.UpdateGroup;
  18. import com.kioor.room.dto.HousingEstateDTO;
  19. import com.kioor.room.dto.BuildingInitDTO;
  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.Date;
  29. import java.util.List;
  30. import java.util.Map;
  31. /**
  32. * 小区
  33. *
  34. * @author Mark sunlightcs@gmail.com
  35. */
  36. @AllArgsConstructor
  37. @RestController
  38. @RequestMapping("/api/housingestate")
  39. @Tag(name = "小区")
  40. public class ApiHousingEstateController {
  41. private final HousingEstateService housingEstateService;
  42. @Login
  43. @GetMapping("page")
  44. @Operation(summary = "分页")
  45. @Parameters({
  46. @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
  47. @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
  48. @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
  49. @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)"),
  50. @Parameter(name = "name", description = "名称")
  51. })
  52. public Result<PageData<HousingEstateDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
  53. PageData<HousingEstateDTO> page = housingEstateService.page(params);
  54. return new Result<PageData<HousingEstateDTO>>().ok(page);
  55. }
  56. @Login
  57. @Operation(summary = "信息")
  58. @GetMapping("{id}")
  59. public Result<HousingEstateDTO> info(@PathVariable("id") Long id) {
  60. HousingEstateDTO housingEstate = housingEstateService.get(id);
  61. return new Result<HousingEstateDTO>().ok(housingEstate);
  62. }
  63. @Login
  64. @PostMapping
  65. @Operation(summary = "保存")
  66. public Result save(@RequestBody HousingEstateDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
  67. //效验数据
  68. ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
  69. dto.setCreateUser(userId);
  70. dto.setCreateDate(new Date());
  71. housingEstateService.save(dto);
  72. return new Result();
  73. }
  74. @Login
  75. @PutMapping
  76. @Operation(summary = "修改")
  77. public Result update(@RequestBody HousingEstateDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
  78. //效验数据
  79. ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
  80. housingEstateService.update(dto);
  81. return new Result();
  82. }
  83. @Login
  84. @DeleteMapping
  85. @Operation(summary = "删除")
  86. public Result delete(@RequestBody Long[] ids) {
  87. //效验数据
  88. AssertUtils.isArrayEmpty(ids, "id");
  89. housingEstateService.deleteBatchIds(Arrays.asList(ids));
  90. return new Result();
  91. }
  92. @Login
  93. @PostMapping("housingEstateInit")
  94. @Operation(summary = "根据设置信息初始化小区房号")
  95. public Result housingEstateInit(@RequestBody List<BuildingInitDTO> buildingInitDTOList, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
  96. //效验数据
  97. ValidatorUtils.validateEntity(buildingInitDTOList, AddGroup.class, DefaultGroup.class);
  98. //先清空房号
  99. if(buildingInitDTOList.size() > 0){
  100. buildingInitDTOList.forEach(buildingInitDTO -> {
  101. housingEstateService.cleanAll(buildingInitDTO.getHousingEstateId());
  102. });
  103. }
  104. housingEstateService.buildingInit(buildingInitDTOList);
  105. return new Result();
  106. }
  107. @Login
  108. @DeleteMapping("cleanAll")
  109. @Operation(summary = "清空小区房号")
  110. public Result cleanAll(@RequestBody Long housingEstateId) {
  111. housingEstateService.cleanAll(housingEstateId);
  112. return new Result();
  113. }
  114. }