/** * Copyright (c) 2018 业主系统 All rights reserved. *

* https://www.yezhu.io *

* 版权所有,侵权必究! */ package com.kioor.room.controller; import com.kioor.annotation.Login; import com.kioor.common.constant.Constant; import com.kioor.common.page.PageData; import com.kioor.common.utils.Result; import com.kioor.common.validator.AssertUtils; import com.kioor.common.validator.ValidatorUtils; import com.kioor.common.validator.group.AddGroup; import com.kioor.common.validator.group.DefaultGroup; import com.kioor.common.validator.group.UpdateGroup; import com.kioor.room.dto.HousingEstateDTO; import com.kioor.room.dto.BuildingInitDTO; import com.kioor.room.service.HousingEstateService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; /** * 小区 * * @author Mark sunlightcs@gmail.com */ @AllArgsConstructor @RestController @RequestMapping("/api/housingestate") @Tag(name = "小区") public class ApiHousingEstateController { private final HousingEstateService housingEstateService; @Login @GetMapping("page") @Operation(summary = "分页") @Parameters({ @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true), @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true), @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"), @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)"), @Parameter(name = "name", description = "名称") }) public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = housingEstateService.page(params); return new Result>().ok(page); } @Login @Operation(summary = "信息") @GetMapping("{id}") public Result info(@PathVariable("id") Long id) { HousingEstateDTO housingEstate = housingEstateService.get(id); return new Result().ok(housingEstate); } @Login @PostMapping @Operation(summary = "保存") public Result save(@RequestBody HousingEstateDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) { //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); dto.setCreateUser(userId); dto.setCreateDate(new Date()); housingEstateService.save(dto); return new Result(); } @Login @PutMapping @Operation(summary = "修改") public Result update(@RequestBody HousingEstateDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) { //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); housingEstateService.update(dto); return new Result(); } @Login @DeleteMapping @Operation(summary = "删除") public Result delete(@RequestBody Long[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); housingEstateService.deleteBatchIds(Arrays.asList(ids)); return new Result(); } @Login @PostMapping("housingEstateInit") @Operation(summary = "根据设置信息初始化小区房号") public Result housingEstateInit(@RequestBody List buildingInitDTOList, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) { //效验数据 ValidatorUtils.validateEntity(buildingInitDTOList, AddGroup.class, DefaultGroup.class); //先清空房号 if(buildingInitDTOList.size() > 0){ buildingInitDTOList.forEach(buildingInitDTO -> { housingEstateService.cleanAll(buildingInitDTO.getHousingEstateId()); }); } housingEstateService.buildingInit(buildingInitDTOList); return new Result(); } @Login @DeleteMapping("cleanAll") @Operation(summary = "清空小区房号") public Result cleanAll(@RequestBody Long housingEstateId) { housingEstateService.cleanAll(housingEstateId); return new Result(); } }