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.constant.Constant; import com.hssx.cloudmodel.entity.*; import com.hssx.cloudmodel.entity.vo.UserVO; import com.hssx.cloudmodel.mapper.*; import com.hssx.cloudmodel.service.UserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hssx.cloudmodel.util.HttpRespMsg; import com.hssx.cloudmodel.util.MD5Util; import com.hssx.cloudmodel.util.PageUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.UUID; /** *

* 服务实现类 *

* * @author 吴涛涛 * @since 2019-07-26 */ @Service public class UserServiceImpl extends ServiceImpl implements UserService { @Autowired UserMapper userMapper; @Autowired CompanyMapper companyMapper; @Autowired UserCompanyMapper userCompanyMapper; @Autowired ProjectUserMapper projectUserMapper; @Autowired ProjectMapper projectMapper; @Override public HttpRespMsg login(User user, HttpServletRequest request) { System.out.println("user" + user); HttpRespMsg msg = new HttpRespMsg(); //验证用户名是否存在 QueryWrapper qw = new QueryWrapper<>(); qw.eq("account", user.getAccount()); Integer count = userMapper.selectCount(qw); //验证用户名是否正确 if (count > 0) { User newUser = userMapper.selectOne(qw); //验证密码是否正确 if (MD5Util.getPassword(user.getPassword()).equals(newUser.getPassword())) { newUser.setPassword(""); msg.data = newUser; } else { msg.setError("密码错误"); } } else { msg.setError("账号不存在"); } return msg; } @Override public HttpRespMsg pageList(PageUtil page, Integer companyId, Integer flag, String keyName, User user, Integer roleType) { HttpRespMsg msg = new HttpRespMsg(); PageHelper.startPage(page.getPageNum(), page.getPageSize()); List users = userMapper.selectListByCondition(roleType, companyId, flag, user, keyName); PageInfo pageInfos = new PageInfo<>(users); msg.data = pageInfos; return msg; } @Override public HttpRespMsg deleteUser(User user) { HttpRespMsg msg = new HttpRespMsg(); QueryWrapper qw = new QueryWrapper<>(); qw.eq("user_id", user.getId()); //普通用户应用到项目不能删除 Integer count = projectUserMapper.selectCount(qw); if (count > 0) { msg.setError("该用户已被应用到项目,暂不提供删除操作"); return msg; } //是项目经理不能删除 Integer countProject = projectMapper.selectCount(new QueryWrapper().eq("manager_id", user.getId())); if(countProject>0){ msg.setError("该用户已被应用到项目,暂不提供删除操作"); return msg; } //删除用户 userMapper.deleteById(user.getId()); //删除合作的公司 userCompanyMapper.delete(new QueryWrapper().eq("user_id",user.getId())); return msg; } @Override public HttpRespMsg addAndUpdateUser(User user, Integer flag) { //获取该账号的创建者 User parentUser = userMapper.selectById(user.getParentId()); //获取admin的用户信息 User proParentUser = userMapper.selectById(parentUser.getParentId()); HttpRespMsg msg = new HttpRespMsg(); if (flag == 0) { //添加角色 QueryWrapper qw = new QueryWrapper<>(); qw.eq("account", user.getAccount()); int count = userMapper.selectCount(qw); if (count > 0) { User existingUser = userMapper.selectOne(qw); //此时用户已经有了,则建立一条合作公司的关系 UserCompany userCompany = new UserCompany(); userCompany.setUserId(existingUser.getId()); userCompany.setBelongCompanyId(existingUser.getCompanyId()); userCompany.setCooperationCompanyId(proParentUser.getCompanyId()); QueryWrapper qWra = new QueryWrapper<>(userCompany); int userCompanyCount = userCompanyMapper.selectCount(qWra); if (count == 0) { userCompanyMapper.insert(userCompany); } } else { //创建账号默认密码"000000" user.setPassword(MD5Util.getPassword(Constant.DEFAULT_PWD)); user.setHeadImgurl(UUID.randomUUID().toString().replaceAll("-", "")); //获取角色所属的团体 Company company = companyMapper.selectById(user.getCompanyId()); if (Constant.ASSETS_COMPANY == company.getCompanyType()) { user.setSubordinateType(Constant.ASSETS_COMPANY); user.setTeamName("资产方"); } else if (Constant.PRODUCER_COMPANY == company.getCompanyType()) { user.setSubordinateType(Constant.PRODUCER_COMPANY); user.setTeamName("生产方"); } userMapper.insert(user); UserCompany userCompany = new UserCompany(); userCompany.setUserId(user.getId()); userCompany.setBelongCompanyId(user.getCompanyId()); userCompany.setCooperationCompanyId(proParentUser.getCompanyId()); QueryWrapper qWra = new QueryWrapper<>(userCompany); int userCompanyCount = userCompanyMapper.selectCount(qWra); if (count == 0) { userCompanyMapper.insert(userCompany); } } } else if (flag == 1) { //更新角色信息 userMapper.updateById(user); } return msg; } }