|
|
@ -1,8 +1,16 @@ |
|
|
|
package com.ccsens.signin.service; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.lang.Snowflake; |
|
|
|
import com.ccsens.signin.bean.dto.ProjectDto; |
|
|
|
import com.ccsens.signin.bean.po.SysProjectList; |
|
|
|
import com.ccsens.signin.bean.po.SysProjectListExample; |
|
|
|
import com.ccsens.signin.bean.po.SysUserProject; |
|
|
|
import com.ccsens.signin.bean.po.SysUserProjectExample; |
|
|
|
import com.ccsens.signin.bean.vo.ProjectVo; |
|
|
|
import com.ccsens.signin.persist.dao.ProjectDao; |
|
|
|
import com.ccsens.signin.persist.mapper.SysProjectListMapper; |
|
|
|
import com.ccsens.signin.persist.mapper.SysUserProjectMapper; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
@ -20,9 +28,75 @@ import java.util.List; |
|
|
|
public class ProjectService implements IProjectService{ |
|
|
|
@Resource |
|
|
|
private ProjectDao projectDao; |
|
|
|
@Resource |
|
|
|
private SysProjectListMapper projectListMapper; |
|
|
|
@Resource |
|
|
|
private SysUserProjectMapper userProjectMapper; |
|
|
|
@Resource |
|
|
|
private Snowflake snowflake; |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<ProjectVo.QueryProject> queryProjectList(ProjectDto.QueryProjectDto param, Long userId) { |
|
|
|
return projectDao.queryProjectList(param.getStartTime(),param.getEndTime(),userId); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void saveProjectList(ProjectDto.SaveProjectDto projectDto) { |
|
|
|
//根据项目id查找以前是否已存在
|
|
|
|
SysProjectListExample projectListExample = new SysProjectListExample(); |
|
|
|
projectListExample.createCriteria().andProjectIdEqualTo(projectDto.getId()); |
|
|
|
List<SysProjectList> sysProjectLists = projectListMapper.selectByExample(projectListExample); |
|
|
|
if(CollectionUtil.isNotEmpty(sysProjectLists)){ |
|
|
|
//存在则修改
|
|
|
|
SysProjectList project = sysProjectLists.get(0); |
|
|
|
project.setName(projectDto.getName()); |
|
|
|
project.setParentProjectId(projectDto.getParentId()); |
|
|
|
project.setProjectStartTime(projectDto.getStartTime()); |
|
|
|
project.setProjectEndTime(projectDto.getEndTime()); |
|
|
|
project.setUrl(projectDto.getUrl()); |
|
|
|
projectListMapper.updateByPrimaryKeySelective(project); |
|
|
|
//修改用户项目关联表,
|
|
|
|
if(CollectionUtil.isNotEmpty(projectDto.getUserIdList())){ |
|
|
|
//如果用户列表不为空,删除旧数据重新关联项目
|
|
|
|
SysUserProjectExample userProjectExample = new SysUserProjectExample(); |
|
|
|
userProjectExample.createCriteria().andProjectIdEqualTo(projectDto.getId()); |
|
|
|
List<SysUserProject> sysUserProjects = userProjectMapper.selectByExample(userProjectExample); |
|
|
|
if(CollectionUtil.isNotEmpty(sysUserProjects)){ |
|
|
|
sysUserProjects.forEach(userProject -> { |
|
|
|
userProject.setRecStatus((byte) 2); |
|
|
|
userProjectMapper.updateByPrimaryKeySelective(userProject); |
|
|
|
}); |
|
|
|
} |
|
|
|
//添加
|
|
|
|
projectDto.getUserIdList().forEach(userId -> { |
|
|
|
SysUserProject userProject = new SysUserProject(); |
|
|
|
userProject.setId(snowflake.nextId()); |
|
|
|
userProject.setProjectId(projectDto.getId()); |
|
|
|
userProject.setUserId(userId); |
|
|
|
userProjectMapper.insertSelective(userProject); |
|
|
|
}); |
|
|
|
} |
|
|
|
}else { |
|
|
|
//不存在则添加
|
|
|
|
SysProjectList project = new SysProjectList(); |
|
|
|
project.setId(snowflake.nextId()); |
|
|
|
project.setProjectId(projectDto.getId()); |
|
|
|
project.setName(projectDto.getName()); |
|
|
|
project.setParentProjectId(projectDto.getParentId()); |
|
|
|
project.setProjectStartTime(projectDto.getStartTime()); |
|
|
|
project.setProjectEndTime(projectDto.getEndTime()); |
|
|
|
project.setUrl(projectDto.getUrl()); |
|
|
|
projectListMapper.insertSelective(project); |
|
|
|
//添加项目用户关联信息
|
|
|
|
if(CollectionUtil.isNotEmpty(projectDto.getUserIdList())){ |
|
|
|
projectDto.getUserIdList().forEach(userId -> { |
|
|
|
SysUserProject userProject = new SysUserProject(); |
|
|
|
userProject.setId(snowflake.nextId()); |
|
|
|
userProject.setProjectId(projectDto.getId()); |
|
|
|
userProject.setUserId(userId); |
|
|
|
userProjectMapper.insertSelective(userProject); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|