package com.estate.expert.admin.controller.admin; import com.estate.expert.admin.domain.business.client.clientparam.ClientParam; import com.estate.expert.admin.domain.common.request.BatchReq; import com.estate.expert.admin.domain.common.request.ProjectPageRequest; import com.estate.expert.admin.domain.project.ProjectDto; import com.estate.expert.admin.domain.project.SetProjectStatusDto; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.service.ClientParamService; import com.estate.expert.admin.service.ProjectService; import com.estate.expert.common.auth.IgnoreAuth; 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; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Api(tags = "管理后台/项目管理") @Slf4j @CrossOrigin @RestController @RequestMapping("/admin/project") @Validated public class ProjectController { @Resource private ProjectService projectService; @Resource private ClientParamService clientParamService; @ApiOperation("项目列表") @PostMapping("/list") public Result list(@Validated @RequestBody ProjectPageRequest request) { return Result.success(projectService.list(request.getKeyword(), request.getProjectTypes(), request.getClientIds(), request.getPageReq())); } @ApiOperation("添加项目") @PostMapping("/add") public Result add(Session session, @Validated @RequestBody ProjectDto projectDto) { projectDto.setStatus(1); projectDto.setPermission("9,10,11,12,13,14,15"); projectService.add((User)session.getUser(), projectDto); return Result.success(); } @ApiOperation("添加项目") @PostMapping("/add_res") public Result addRes(Session session, @Validated @RequestBody ProjectDto projectDto) { var project = projectService.add((User)session.getUser(), projectDto); return Result.success(projectService.toDto(project)); } @ApiOperation("编辑项目") @PostMapping("/edit") public Result edit(@Validated @RequestBody ProjectDto projectDto) { projectService.edit(projectDto); return Result.success(); } @ApiOperation("项目详情") @GetMapping("/detail") public Result detail(@RequestParam(value = "id") Integer id) { return Result.success(projectService.toDto(projectService.get(id))); } @ApiOperation("删除项目") @PostMapping("/batch/del") public Result batchDel(@RequestBody BatchReq request) { projectService.deleteAllById(request.getIds()); return Result.success(); } @ApiOperation("项目设置权限") @PostMapping("/setPermission") public Result setPermission(@RequestParam Integer projectId,String permission) { clientParamService.setPermission(projectId,permission); return Result.success(); } @ApiOperation("项目设置状态") @PostMapping("/setProjectStatus") public Result setProjectStatus(@RequestBody SetProjectStatusDto dto) { clientParamService.setProjectStatus(dto); return Result.success(); } // @PostMapping("/import") // public Result importProject(Session session, @RequestBody ImportProjectRequest request) throws IOException { // List projects = excelService.importProjectExcel(request.getFile()); // projectService.addEntities((User)session.getUser(), projects); // return Result.success(); // } // @IgnoreAuth // @GetMapping("/export") // @ResponseBody // public void exportProject(@RequestParam(value = "keyword", required = false) String keyword, // @RequestParam(value = "projectTypes", required = false) String projectTypes, // @RequestParam(value = "client", required = false) Integer client, // HttpServletResponse response) throws IOException { // excelService.exportProjectExcel(keyword, projectTypes, client, response); // } }