package com.hssx.cloudmodel.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hssx.cloudmodel.constant.Constant;
import com.hssx.cloudmodel.entity.Company;
import com.hssx.cloudmodel.entity.User;
import com.hssx.cloudmodel.mapper.CompanyMapper;
import com.hssx.cloudmodel.mapper.UserMapper;
import com.hssx.cloudmodel.service.CompanyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hssx.cloudmodel.util.HttpRespMsg;
import com.hssx.cloudmodel.util.PageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author 吴涛涛
* @since 2019-07-26
*/
@Service
public class CompanyServiceImpl extends ServiceImpl implements CompanyService {
@Resource
CompanyMapper companyMapper;
@Resource
UserMapper userMapper;
@Override
public HttpRespMsg addAndUpdateRole(Company company, Integer flag) {
HttpRespMsg msg = new HttpRespMsg();
if (flag == 0) {
//添加公司
QueryWrapper qw = new QueryWrapper<>();
qw.eq("company_name", company.getCompanyName());
int count = companyMapper.selectCount(qw);
if (count > 0) {
msg.setError("公司已存在,请勿重复添加");
} else {
companyMapper.insert(company);
}
} else if (flag == 1) {
//更新公司信息
companyMapper.updateById(company);
}
return msg;
}
@Override
public HttpRespMsg pageList(PageUtil page, String keyName) {
HttpRespMsg msg = new HttpRespMsg();
QueryWrapper qw = new QueryWrapper<>();
if(keyName !=null && !"".equals(keyName)){
qw.like("company_name", keyName);
}
Integer start = (page.getPageNum()-1)*page.getPageSize();
Integer count = companyMapper.selectCount(qw);
page.setTotal(count);
page.setPages(page.getTotal());
List list = companyMapper.getListByKeyName(keyName, start, page.getPageSize());
page.setList(list);
msg.data = page;
return msg;
}
@Override
public List getIdAndNamelist(User user) {
QueryWrapper qw = new QueryWrapper<>();
qw.select("id","company_name","company_type");
if(Constant.SYS_ID == user.getParentId()){
//此时是admin创建用户,返回可选的生产方公司,查询出当前admin的信息并获取他的公司id
User admin = userMapper.selectOne(new QueryWrapper().eq("id", user.getId()));
qw.eq("company_type",Constant.PRODUCER_COMPANY).or().eq("id",admin.getCompanyId());
}else if(Constant.SYS_PARENT_ID == user.getParentId()){
//系统管理员创建admin,返回资产方公司
qw.eq("company_type",Constant.ASSETS_COMPANY);
}else{
//此时是项目经理创建其他用户
User admin = userMapper.selectOne(new QueryWrapper().eq("id", user.getParentId()));
qw.eq("company_type",Constant.ASSETS_COMPANY).or().eq("id",admin.getCompanyId());
}
return companyMapper.selectList(qw);
}
@Override
public HttpRespMsg deleteById(Integer id) {
HttpRespMsg msg = new HttpRespMsg();
Integer count = userMapper.selectCount(new QueryWrapper().eq("company_id", id));
if (count > 0) {
msg.setError("该公司已被应用到用户中,暂不提供删除操作");
} else {
companyMapper.deleteById(id);
}
return msg;
}
}