package com.estate.expert.admin.controller.admin; import com.estate.expert.admin.domain.business.device.DeviceType; import com.estate.expert.admin.domain.business.device.usage.DeviceUsageDto; import com.estate.expert.admin.domain.common.request.BatchReq; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.enums.BizResultCode; import com.estate.expert.admin.service.DeviceUsageService; import com.estate.expert.common.domain.Session; import com.estate.expert.common.rpc.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @Api("管理后台/项目设备管理") @Slf4j @CrossOrigin @RestController @RequestMapping("/admin/project/device/usage") @Validated public class DeviceUsageController { @Resource private DeviceUsageService deviceUsageService; /** * 项目设备列表 */ @ApiOperation(value = "项目设备列表", notes = "获取项目中的设备列表") @PostMapping("/list") public Result deviceList(@RequestParam(value = "projectId") Integer projectId, @RequestParam(value = "deviceType", required = false) DeviceType deviceType, @RequestBody PageReq pageReq){ return Result.success(deviceUsageService.listUsages(projectId, deviceType, pageReq)); } @ApiOperation(value = "项目设备使用记录") @PostMapping("/history") public Result deviceHistoryList(@RequestParam(value = "projectId") Integer projectId, @RequestParam(value = "deviceType", required = false) DeviceType deviceType, @RequestBody PageReq pageReq){ return Result.success(deviceUsageService.history(projectId, deviceType, pageReq)); } @ApiOperation(value = "项目设备信息", notes = "获取项目中的设备安装信息") @GetMapping("/get") public Result get(@RequestParam(value = "deviceUsageId") Integer id) { var usage = deviceUsageService.get(id); BizResultCode.DEVICE_USAGE_NOT_EXISTED.check(usage == null); return Result.success(deviceUsageService.toDto(usage)); } /** * 项目设备拆除 */ @ApiOperation(value = "项目设备拆除", notes = "将设备从项目中拆除,保留使用记录") @PostMapping("/batch/del") public Result del(@Validated @RequestBody BatchReq request){ deviceUsageService.deleteAllById(request.getIds()); return Result.success(); } @ApiOperation(value = "项目设备移除", notes = "将设备从项目中移除,删除使用记录") @PostMapping("/batch/remove") public Result remove(@Validated @RequestBody BatchReq request){ deviceUsageService.removeById(request.getIds()); return Result.success(); } @ApiOperation(value = "项目设备安装", notes = "将设备引入项目中") @PostMapping("/add") public Result add(@ApiParam(hidden = true) Session session, @Validated @RequestBody DeviceUsageDto dto) { deviceUsageService.add((User)session.getUser(), dto); return Result.success(); } @ApiOperation(value = "项目设备更新", notes = "更新项目中的设备信息") @PostMapping("/edit") public Result edit(@Validated @RequestBody DeviceUsageDto dto) { deviceUsageService.edit(dto); return Result.success(); } }