package com.bosshand.virgo.api.controller; import com.bosshand.virgo.api.model.Project; import com.bosshand.virgo.api.service.ProjectItemTargetRoomService; import com.bosshand.virgo.api.service.ProjectService; import com.bosshand.virgo.api.service.QuartzService; import com.bosshand.virgo.core.response.Response; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("project") @Api(tags = {"项目管理"}) public class ProjectController { @Autowired ProjectService projectService; @Autowired ProjectItemTargetRoomService projectItemTargetRoomService; @Autowired QuartzService quartzService; @ApiOperation("获取") @RequestMapping(value = "/{currPage}/{pageSize}", method = RequestMethod.POST) public Response list(@RequestBody Project project, @PathVariable int currPage, @PathVariable int pageSize) { int totalCount = projectService.getTotalCount(project); List dataList = projectService.getLimit(project, currPage, pageSize); Map result = new HashMap<>(); result.put("dataList", dataList); result.put("totalCount", totalCount); return Response.ok(result); } @ApiOperation("根据id列表获取") @RequestMapping(value = "/getIds", method = RequestMethod.POST) public Response getIds(@RequestBody List ids) { List list = projectService.getIds(ids); return Response.ok(list); } @ApiOperation("详情") @RequestMapping(value = "/getProject/{id}", method = RequestMethod.GET) public Response getProject(@PathVariable long id) { return Response.ok(projectService.get(id)); } @ApiOperation("根据组织获取项目列表") @RequestMapping(value = "/getOrganization/{organizationId}", method = RequestMethod.GET) public Response getProjectByOrganizationId(@PathVariable long organizationId) { return Response.ok(projectService.getProjectByOrganizationId(organizationId)); } @ApiOperation("新增") @RequestMapping(value = "", method = RequestMethod.POST) public Response insertProject(@RequestBody Project project) { Project p = projectService.insert(project); // 每天0点定时保存项目地址天气 quartzService.executeJobCityWeatherQuartz(p); // 定时生成项目周报数据 quartzService.executeJobProjectWeeklyQuartz(p); return Response.ok(); } @ApiOperation("删除") @RequestMapping(value = "/delete/{id}", method = RequestMethod.DELETE) public Response deleteProject(@PathVariable long id) { Project project = projectService.getProject(id); quartzService.deleteJobQuartz(project); projectService.deleteProject(id); projectItemTargetRoomService.projectCache.clear(); return Response.ok(); } @ApiOperation("修改") @RequestMapping(value = "/update", method = RequestMethod.PUT) public Response updateProject(@RequestBody Project project) { projectService.update(project); projectItemTargetRoomService.projectCache.clear(); return Response.ok(); } }