package com.estate.expert.admin.controller.admin; import com.estate.expert.admin.domain.common.request.BatchReq; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.project.info.ProjectInfoDto; import com.estate.expert.admin.domain.project.info.ProjectInfoMapper; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.enums.BizResultCode; import com.estate.expert.admin.service.CheckTaskService; import com.estate.expert.admin.service.ProjectInfoService; 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 lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @Api(tags = "管理后台/项目信息") @Slf4j @CrossOrigin @RestController @RequestMapping("/admin/projectInfo") @Validated public class ProjectInfoController { @Resource private ProjectInfoService projectInfoService; @Resource private ProjectInfoMapper projectInfoMapper; @Resource private CheckTaskService checkTaskService; @ApiOperation(value = "项目信息列表") @PostMapping("/list") public Result list(@RequestParam(value = "projectId") Integer projectId, @Validated @RequestBody PageReq pageReq) { return Result.success(projectInfoService.list(projectId, pageReq)); } @ApiOperation(value = "添加项目信息") @PostMapping("/add") public Result add(Session session, @Validated @RequestBody ProjectInfoDto projectInfo) { projectInfoService.add((User)session.getUser(), projectInfoMapper.toEntity(projectInfo)); return Result.success(); } @ApiOperation(value = "获取项目信息") @GetMapping("/getByCheckTaskId") public Result getByCheckTaskId(@RequestParam("checkTaskId") Integer checkTaskId) { // //客户端能查看最新的 //能添加 //不能编辑 // //关闭项目的时候,关联项目最后一条信息到检查任务上,不管是谁添加的,用于出报告 var checkTask = checkTaskService.get(checkTaskId); BizResultCode.CHECK_TASK_NOT_EXIST.check(checkTask == null); var projectInfo = projectInfoService.latest(checkTask.getProject().getId()); BizResultCode.PROJECT_INFO_NOT_EXIST.check(projectInfo == null); return Result.success(projectInfoService.toDto(projectInfo)); } @ApiOperation(value = "获取项目最新信息") @GetMapping("/latest") public Result latest(@RequestParam("projectId") Integer projectId) { var projectInfo = projectInfoService.latest(projectId); BizResultCode.PROJECT_INFO_NOT_EXIST.check(projectInfo == null); return Result.success(projectInfoService.toDto(projectInfo)); } @ApiOperation(value = "编辑项目信息") @PostMapping("/edit") public Result edit(@Validated @RequestBody ProjectInfoDto projectInfoDto) { projectInfoService.edit(projectInfoDto); return Result.success(); } @ApiOperation(value = "删除项目信息") @PostMapping("/del") public Result delete(@Validated @RequestBody BatchReq request) { projectInfoService.deleteAllById(request.getIds()); return Result.success(); } }