package com.hssx.cloudmodel.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hssx.cloudmodel.entity.Project; import com.hssx.cloudmodel.entity.ProjectUser; import com.hssx.cloudmodel.entity.User; import com.hssx.cloudmodel.mapper.ProjectMapper; import com.hssx.cloudmodel.mapper.ProjectUserMapper; import com.hssx.cloudmodel.mapper.UserMapper; import com.hssx.cloudmodel.service.ProjectService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hssx.cloudmodel.util.HttpRespMsg; import com.hssx.cloudmodel.util.ListUtil; import com.hssx.cloudmodel.util.PageUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.jws.soap.SOAPBinding; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; /** *

* 服务实现类 *

* * @author 吴涛涛 * @since 2019-07-27 */ @Service public class ProjectServiceImpl extends ServiceImpl implements ProjectService { @Autowired ProjectMapper projectMapper; @Autowired ProjectUserMapper projectUserMapper; @Autowired UserMapper userMapper; @Override public HttpRespMsg addAndUpdateProject(Project project, Integer flag, User user) { HttpRespMsg msg = new HttpRespMsg(); if(user != null){ QueryWrapper qw = new QueryWrapper<>(); qw.orderByDesc("id").last("limit 1"); Project lastProject = projectMapper.selectOne(qw); if (flag == 0) { synchronized (this) { int count = 1; if (lastProject != null) { //YMXM201903220001 String numStr = lastProject.getProjectNo().substring(13); int num = Integer.valueOf(numStr).intValue(); count += num; } long time = System.currentTimeMillis(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String seq = sdf.format(time) + String.format("%04d", count); project.setProjectNo("YMXM"+seq); project.setCreatorId(user.getId()); project.setCreator(user.getUsername()); projectMapper.insert(project); } }else if(flag == 1){ projectMapper.updateById(project); } }else{ msg.setError("当前角色涉及权限问题,请重新登录"); } return msg; } @Override public HttpRespMsg handOutProject(Project project, String userIds) { HttpRespMsg msg = new HttpRespMsg(); Project pro = projectMapper.selectById(project.getId()); List ids = new ArrayList<>(); if(userIds != null && userIds != ""){ List list = ListUtil.convertLongIdsArrayToList(userIds); if(list().size()>0){ for(String id:list){ User user = userMapper.selectById(id); ProjectUser projectUser = new ProjectUser(); projectUser.setId(Integer.parseInt(id)); projectUser.setProjectId(project.getId()); projectUser.setSubordinate(user.getSubordinateType()); projectUserMapper.insert(projectUser); } } }else{ msg.setError("用户id不能为null和空"); } return msg; } @Override public HttpRespMsg getList(String keyName,PageUtil page,User currentUser) { HttpRespMsg msg = new HttpRespMsg(); if(currentUser != null){ PageHelper.startPage(page.getPageNum(),page.getPageSize()); List projects = projectMapper.getProjectListByUid(keyName,currentUser); PageInfo pageInfos = new PageInfo<>(projects); msg.data = pageInfos; }else{ msg.setError("当前用户不存,或涉及到权限问题,请重新登录"); } QueryWrapper qw = new QueryWrapper<>(); qw.select("project_name", "creator","charger","indate"); if(keyName != null){ qw.like("project_name",keyName); } return msg; } }