package com.xcong.farmer.cms.modules.system.service.Impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.farmer.cms.common.response.Result; import com.xcong.farmer.cms.modules.system.dto.AdminAddCompanyDto; import com.xcong.farmer.cms.modules.system.dto.AdminBelongDto; import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateCompanyDto; import com.xcong.farmer.cms.modules.system.entity.*; import com.xcong.farmer.cms.modules.system.mapper.*; import com.xcong.farmer.cms.modules.system.service.ICompanyService; import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import com.xcong.farmer.cms.modules.system.vo.AdminCompanyVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeCompanyInfoVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @Service @Slf4j public class CompanyServiceImpl extends ServiceImpl implements ICompanyService { @Resource private RoleMapper roleMapper; @Resource private UserRoleMapper userRoleMapper; @Resource private RoleMenuMapper roleMenuMapper; @Resource private MenuMapper menuMapper; @Resource private UserMapper userMapper; @Resource private WebSetMapper webSetMapper; @Override public Result getBelongInPage(AdminBelongDto adminBelongDto) { UserEntity userlogin = LoginUserUtil.getLoginUser(); Long belongId = userlogin.getCompanyId(); Page page = new Page<>(adminBelongDto.getPageNum(), adminBelongDto.getPageSize()); CompanyEntity companyEntity = new CompanyEntity(); String name = adminBelongDto.getName(); if (StrUtil.isNotEmpty(name)) { companyEntity.setName(name); } if (belongId != UserEntity.USER_BELONG_TOP) { companyEntity.setId(belongId); } IPage list = this.baseMapper.selectAdminBelongInPage(page, companyEntity); return Result.ok(list); } @Override @Transactional public Result addBelong(AdminAddCompanyDto adminAddCompanyDto) { String name = adminAddCompanyDto.getName(); String code = adminAddCompanyDto.getCode(); QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("code", code); List belongEntities = this.baseMapper.selectList(objectQueryWrapper); if (CollUtil.isNotEmpty(belongEntities)) { return Result.fail("编码已存在,请重新输入"); } CompanyEntity companyEntity = new CompanyEntity(); companyEntity.setName(name); companyEntity.setCode(code); String webAddress = adminAddCompanyDto.getWebAddress(); companyEntity.setWebAddress(webAddress); String remark = adminAddCompanyDto.getRemark(); companyEntity.setRemark(remark); String pic = adminAddCompanyDto.getPic(); companyEntity.setPic(pic); WebSettingEntity webSettingEntity = new WebSettingEntity(); webSettingEntity.setCompanyId(companyEntity.getId()); this.webSetMapper.insert(webSettingEntity); this.baseMapper.insert(companyEntity); return Result.ok("添加成功"); } @Override public Result seeBelongInfo(Long id) { CompanyEntity companyEntity = this.baseMapper.selectById(id); if (ObjectUtil.isEmpty(companyEntity)) { Result.fail("所属公司不存在"); } AdminSeeCompanyInfoVo adminSeeCompanyInfoVo = new AdminSeeCompanyInfoVo(); adminSeeCompanyInfoVo.setId(companyEntity.getId()); adminSeeCompanyInfoVo.setName(companyEntity.getName()); adminSeeCompanyInfoVo.setCode(companyEntity.getCode()); adminSeeCompanyInfoVo.setRemark(companyEntity.getRemark()); adminSeeCompanyInfoVo.setWebAddress(companyEntity.getWebAddress()); adminSeeCompanyInfoVo.setPic(companyEntity.getPic()); return Result.ok(adminSeeCompanyInfoVo); } @Override @Transactional public Result updateBelong(AdminUpdateCompanyDto adminUpdateCompanyDto) { Long id = adminUpdateCompanyDto.getId(); CompanyEntity companyEntity = this.baseMapper.selectById(id); if (ObjectUtil.isEmpty(companyEntity)) { Result.fail("所属公司不存在"); } String name = adminUpdateCompanyDto.getName(); companyEntity.setName(name); String code = adminUpdateCompanyDto.getCode(); if (!companyEntity.getCode().equals(code)) { QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("code", code); List belongEntities = this.baseMapper.selectList(objectQueryWrapper); if (CollUtil.isNotEmpty(belongEntities)) { return Result.fail("编码已存在,请重新输入"); } companyEntity.setCode(code); } companyEntity.setWebAddress(adminUpdateCompanyDto.getWebAddress()); companyEntity.setRemark(adminUpdateCompanyDto.getRemark()); companyEntity.setPic(adminUpdateCompanyDto.getPic()); this.baseMapper.updateById(companyEntity); return Result.ok("更新成功"); } @Override public Result getBelongInList() { UserEntity userlogin = LoginUserUtil.getLoginUser(); Long companyId = userlogin.getCompanyId(); QueryWrapper objectQueryWrapper = new QueryWrapper<>(); if (companyId != UserEntity.USER_BELONG_TOP) { objectQueryWrapper.eq("id", companyId); } List belongEntities = this.baseMapper.selectList(objectQueryWrapper); List adminCompanyVos = new ArrayList<>(); if (CollUtil.isNotEmpty(belongEntities)) { for (CompanyEntity companyEntity : belongEntities) { AdminCompanyVo adminCompanyVo = new AdminCompanyVo(); adminCompanyVo.setId(companyEntity.getId()); adminCompanyVo.setName(companyEntity.getName()); adminCompanyVo.setCode(companyEntity.getCode()); adminCompanyVos.add(adminCompanyVo); } } return Result.ok(adminCompanyVos); } @Override @Transactional public Result delObjs(AdminDeleteDto adminDeleteDto) { String ids = adminDeleteDto.getIds(); UserEntity userlogin = LoginUserUtil.getLoginUser(); if (userlogin.getCompanyId() != UserEntity.USER_BELONG_TOP) { return Result.fail("没有删除权限"); } if (StrUtil.isNotEmpty(ids)) { String[] companyIds = ids.split(StringPool.COMMA); for (String companyIdStr : companyIds) { Long companyId = Long.valueOf(companyIdStr); QueryWrapper userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.eq("company_id", companyId); List userEntities = userMapper.selectList(userQueryWrapper); if (CollUtil.isNotEmpty(userEntities)) { return Result.fail("请先清空属于该公司的用户"); } QueryWrapper roleQueryWrapper = new QueryWrapper<>(); roleQueryWrapper.eq("company_id", companyId); List roleEntities = roleMapper.selectList(roleQueryWrapper); if (CollUtil.isNotEmpty(roleEntities)) { return Result.fail("请先清空属于该公司的角色"); } this.baseMapper.deleteById(companyId); } } return Result.ok("删除成功"); } }