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.Factory; import com.hssx.cloudmodel.entity.LngLatCompany; import com.hssx.cloudmodel.entity.User; import com.hssx.cloudmodel.entity.vo.CompanyVO; import com.hssx.cloudmodel.mapper.CompanyMapper; import com.hssx.cloudmodel.mapper.LngLatCompanyMapper; 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.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** *

* 服务实现类 *

* * @author 吴涛涛 * @since 2019-07-26 */ @Service public class CompanyServiceImpl extends ServiceImpl implements CompanyService { @Resource CompanyMapper companyMapper; @Resource UserMapper userMapper; @Resource LngLatCompanyMapper lngLatCompanyMapper; @Override public HttpRespMsg addAndUpdateRole(CompanyVO companyVO, Integer flag) { HttpRespMsg msg = new HttpRespMsg(); Company company = new Company(); if (flag == 0) { //添加公司 QueryWrapper qw = new QueryWrapper<>(); qw.eq("company_name", companyVO.getCompanyName()); int count = companyMapper.selectCount(qw); if (count > 0) { msg.setError("公司已存在,请勿重复添加"); } else { if (companyVO.getCompanyType() == 0) { //资产方直接添加 BeanUtils.copyProperties(companyVO,company); companyMapper.insert(company); }else if (companyVO.getCompanyType() == 1){ //生产方 BeanUtils.copyProperties(companyVO,company); companyMapper.insert(company); LngLatCompany factory = new LngLatCompany(); factory.setxLat(companyVO.getXLat()); factory.setyLng(companyVO.getYLng()); factory.setCompanyId(company.getId()); lngLatCompanyMapper.insert(factory); } } } else if (flag == 1) { //更新公司信息 BeanUtils.copyProperties(companyVO,company); if (companyVO.getCompanyType() == 0) { //修改资产方 BeanUtils.copyProperties(companyVO,company); companyMapper.updateById(company); }else if (companyVO.getCompanyType() == 1){ //生产方 BeanUtils.copyProperties(companyVO,company); companyMapper.updateById(company); QueryWrapper qw = new QueryWrapper<>(); qw.eq("company_id",companyVO.getId()); LngLatCompany lngLatCompany = lngLatCompanyMapper.selectOne(qw); LngLatCompany factory = new LngLatCompany(); factory.setxLat(companyVO.getXLat()); factory.setyLng(companyVO.getYLng()); factory.setCompanyId(company.getId()); factory.setId(lngLatCompany.getId()); lngLatCompanyMapper.updateById(factory); } } return msg; } @Override public HttpRespMsg pageList(PageUtil page, String keyName,Integer companyType) { HttpRespMsg msg = new HttpRespMsg(); List list = new ArrayList<>(); System.out.println(page); Integer start = (page.getPageNum() - 1) * page.getPageSize(); if(companyType == 0){ list = companyMapper.getListByKeyName(keyName, start, page.getPageSize(),companyType); Integer count = list.size(); page.setTotal(count); page.setPages(page.getTotal()); }else{ list = companyMapper.getCustomerListByKeyName(keyName, start, page.getPageSize(),companyType); Integer count = list.size(); page.setTotal(count); page.setPages(page.getTotal()); } 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.PRODUCER_COMPANY).or().eq("id", admin.getCompanyId()); } return companyMapper.selectList(qw); } @Override public List addCompanyListToProject(User user) { QueryWrapper qw = new QueryWrapper<>(); qw.eq("company_type", Constant.PRODUCER_COMPANY); 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; } }