package com.bosshand.virgo.api.service; import com.bosshand.virgo.api.dao.*; import com.bosshand.virgo.api.model.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class ProjectItemTargetRoomService { @Autowired private ProjectDao projectDao; @Autowired private ProjectItemDao projectItemDao; @Autowired private ProjectItemTargetDao projectItemTargetDao; @Autowired private ProjectItemTargetRoomDao projectItemTargetRoomDao; @Autowired private TagDao tagDao; public Map projectCache = new HashMap(); public Map projectItemCache = new HashMap(); public Map projectItemTargetCache = new HashMap(); public Map projectItemTargetRoomCache = new HashMap(); public Map tagCache = new HashMap(); public Project getProject(Long pk) { Project project = projectCache.get(pk); if (project == null) { project = projectDao.getProject(pk); projectCache.put((Long) pk, project); } return project; } public ProjectItem getProjectItem(Long pk) { ProjectItem projectItem = projectItemCache.get(pk); if (projectItem == null) { projectItem = projectItemDao.getProjectItem(pk); projectItemCache.put((Long) pk, projectItem); } return projectItem; } public ProjectItemTarget getProjectItemTarget(Long pk) { ProjectItemTarget projectItemTarget = projectItemTargetCache.get(pk); if (projectItemTarget == null) { projectItemTarget = projectItemTargetDao.get(pk); projectItemTargetCache.put((Long) pk, projectItemTarget); } return projectItemTarget; } public ProjectItemTargetRoom getProjectItemTargetRoom(Long pk) { ProjectItemTargetRoom projectItemTargetRoom = projectItemTargetRoomCache.get(pk); if (projectItemTargetRoom == null) { projectItemTargetRoom = projectItemTargetRoomDao.get(pk); projectItemTargetRoomCache.put((Long) pk, projectItemTargetRoom); } return projectItemTargetRoom; } public Tag getTag(Long pk) { Tag tag = tagCache.get(pk); if (tag == null) { tag = tagDao.get(pk); tagCache.put((Long) pk, tag); } return tag; } public ProjectItemTargetRoom get(long id) { ProjectItemTargetRoom room = projectItemTargetRoomDao.get(id); if(room != null){ room.setProjectName(this.getProject(room.getProjectId()).getName()); room.setProjectItemName(this.getProjectItem(room.getProjectItemId()).getName()); room.setProjectItemTargetName(this.getProjectItemTarget(room.getProjectItemTargetId()).getName()); } return room; } public int getTotalCount(ProjectItemTargetRoom project) { return projectItemTargetRoomDao.getTotalCount(project); } public List getLimit(ProjectItemTargetRoom project, int currPage, int pageSize) { int currIndex = (currPage - 1) * pageSize; List list = projectItemTargetRoomDao.getLimit(project, currIndex, pageSize); for (ProjectItemTargetRoom room : list) { room.setProjectName(this.getProject(room.getProjectId()).getName()); room.setProjectItemName(this.getProjectItem(room.getProjectItemId()).getName()); room.setProjectItemTargetName(this.getProjectItemTarget(room.getProjectItemTargetId()).getName()); } return list; } public List getProjectItemTargetRoom(ProjectItemTargetRoom projectItemTargetRoom) { List list = projectItemTargetRoomDao.getProjectItemTargetRoom(projectItemTargetRoom); for (ProjectItemTargetRoom room : list) { room.setProjectName(this.getProject(room.getProjectId()).getName()); room.setProjectItemName(this.getProjectItem(room.getProjectItemId()).getName()); room.setProjectItemTargetName(this.getProjectItemTarget(room.getProjectItemTargetId()).getName()); } return list; } public int insert(ProjectItemTargetRoom projectItemTargetRoom) { return projectItemTargetRoomDao.insert(projectItemTargetRoom); } public int delete(long id) { return projectItemTargetRoomDao.delete(id); } public int update(ProjectItemTargetRoom projectItemTargetRoom) { return projectItemTargetRoomDao.update(projectItemTargetRoom); } }