| | |
| | | package com.project.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.project.common.constant.UserConstants; |
| | | import com.project.common.core.domain.entity.SysUser; |
| | | import com.project.common.exception.base.BaseException; |
| | | import com.project.common.utils.SecurityUtils; |
| | | import com.project.system.service.ISysUserService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import cn.hutool.core.convert.Convert; |
| | | import com.project.common.utils.StringUtils; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.stereotype.Service; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import com.project.system.domain.vo.SysCompanyVo; |
| | |
| | | @RequiredArgsConstructor(onConstructor_ = @Autowired) |
| | | public class SysCompanyServiceImpl extends ServiceImpl<SysCompanyMapper, SysCompany> implements ISysCompanyService { |
| | | |
| | | |
| | | private final ISysUserService userService; |
| | | |
| | | @Override//列表查询 |
| | | public List<SysCompanyVo> queryList(SysCompanyQueryBo bo) |
| | |
| | | public Boolean insertByBo(SysCompanyBo bo) |
| | | { |
| | | SysCompany add = Convert.convert(SysCompany.class, bo); |
| | | validEntityBeforeSave(add); |
| | | return this.save(add); |
| | | validEntityBeforeSave(add, 0); |
| | | boolean save = this.save(add); |
| | | addCompanyUser(add); |
| | | return save; |
| | | } |
| | | |
| | | @Override//修改 |
| | | @Transactional |
| | | public Boolean updateByBo(SysCompanyBo bo) |
| | | { |
| | | SysCompany old = this.getById(bo.getCompanyId()); |
| | | SysCompany update = Convert.convert(SysCompany.class, bo); |
| | | validEntityBeforeSave(update); |
| | | if (!old.getCompanyPhone().equals(update.getCompanyPhone())){ |
| | | boolean delUser = delCompanyUser(old.getCompanyId()); |
| | | if (!delUser) { |
| | | throw new BaseException("原企业用户清除失败,请联系管理员!"); |
| | | } |
| | | this.addCompanyUser(update); |
| | | } |
| | | validEntityBeforeSave(update, 0); |
| | | return this.updateById(update); |
| | | } |
| | | |
| | |
| | | @Transactional |
| | | public Boolean deleteByIds(Collection<Long> ids) |
| | | { |
| | | |
| | | //做一些业务上的校验,判断是否需要校验 |
| | | |
| | | for (Long id : ids) { |
| | | boolean b = delCompanyUser(id); |
| | | if (!b) { |
| | | throw new BaseException(String.format("原企业 %1$s 用户清除失败,请联系管理员!", id)); |
| | | } |
| | | } |
| | | return this.removeByIds(ids); |
| | | } |
| | | |
| | | @Override//导入 |
| | | @Transactional |
| | | public Boolean importList(List<SysCompanyVo> list) |
| | | { |
| | | if (list==null || list.size()<1){ |
| | | throw new BaseException("未获取到导入信息"); |
| | | } |
| | | List<SysCompany> companies = Convert.toList(SysCompany.class, list); |
| | | companies.forEach(e-> validEntityBeforeSave(e,1)); |
| | | boolean b = this.saveOrUpdateBatch(companies); |
| | | |
| | | companies.forEach(this::addCompanyUser); |
| | | return b; |
| | | } |
| | | |
| | | |
| | | //------------------------------------------------------------------------------------- |
| | | |
| | | //保存前校验 |
| | | private void validEntityBeforeSave(SysCompany entity) |
| | | /** |
| | | * 保存前校验 |
| | | * @param entity 参数 |
| | | * @param isImport 是否导入:0否,1是 |
| | | */ |
| | | private void validEntityBeforeSave(SysCompany entity, int isImport) |
| | | { |
| | | //做一些数据校验,如唯一约束 |
| | | if (isImport!=1){ |
| | | if (StringUtils.isEmpty(entity.getCompanyImg())){ |
| | | throw new BaseException(String.format("%1$s,请上传营业执照", entity.getCompanyName())); |
| | | } |
| | | } |
| | | if (StringUtils.isEmpty(entity.getCompanyCode())){ |
| | | throw new BaseException(String.format("%1$s,请填写企业社会编码!", entity.getCompanyName())); |
| | | } |
| | | if (StringUtils.isEmpty(entity.getCompanyUser())){ |
| | | throw new BaseException(String.format("%1$s,请填写企业联系人!", entity.getCompanyName())); |
| | | } |
| | | if (StringUtils.isEmpty(entity.getCompanyPhone())){ |
| | | throw new BaseException(String.format("%1$s,请填写企业联系人电话!", entity.getCompanyName())); |
| | | } |
| | | if (StringUtils.isEmpty(entity.getCompanyName())){ |
| | | throw new BaseException("请填写企业名!"); |
| | | } |
| | | if (entity.getCompanyId()==null){ //新增 |
| | | int codeCount = this.count(lq().eq(SysCompany::getCompanyCode, entity.getCompanyCode())); |
| | | if (codeCount>0){ |
| | | throw new BaseException(String.format("%1$s,企业社会编码已存在!", entity.getCompanyName())); |
| | | } |
| | | int nameCount = this.count(lq().eq(SysCompany::getCompanyName, entity.getCompanyName())); |
| | | if (nameCount>0){ |
| | | throw new BaseException(String.format("%1$s,企业名已存在!", entity.getCompanyName())); |
| | | } |
| | | int phoneCount = this.count(lq().eq(SysCompany::getCompanyPhone, entity.getCompanyPhone())); |
| | | if (phoneCount>0){ |
| | | throw new BaseException(String.format("%1$s,企业联系电话已存在!", entity.getCompanyName())); |
| | | } |
| | | } else { |
| | | int codeCount = this.count(lq().eq(SysCompany::getCompanyCode, entity.getCompanyCode()).ne(SysCompany::getCompanyId,entity.getCompanyId())); |
| | | if (codeCount>0){ |
| | | throw new BaseException(String.format("%1$s,企业社会编码已存在!", entity.getCompanyName())); |
| | | } |
| | | int nameCount = this.count(lq().eq(SysCompany::getCompanyName, entity.getCompanyName()).ne(SysCompany::getCompanyId,entity.getCompanyId())); |
| | | if (nameCount>0){ |
| | | throw new BaseException(String.format("%1$s,企业名已存在!", entity.getCompanyName())); |
| | | } |
| | | int phoneCount = this.count(lq().eq(SysCompany::getCompanyPhone, entity.getCompanyPhone()).ne(SysCompany::getCompanyId,entity.getCompanyId())); |
| | | if (phoneCount>0){ |
| | | throw new BaseException(String.format("%1$s,企业联系电话已存在!", entity.getCompanyName())); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //获取查询参数 |
| | | |
| | | /** |
| | | * 添加企业用户 |
| | | * @param entity 企业信息 |
| | | */ |
| | | @Async |
| | | protected void addCompanyUser(SysCompany entity) |
| | | { |
| | | SysUser user = new SysUser(); |
| | | SysCompany one = this.getOne(lq().eq(SysCompany::getCompanyCode, entity.getCompanyCode())); |
| | | String phone = entity.getCompanyPhone(); |
| | | user.setPhonenumber(phone); |
| | | user.setUserName(entity.getCompanyUser()); |
| | | user.setPassword(phone); |
| | | user.setDeptId(one.getCompanyId()); |
| | | user.setUserType("02"); |
| | | if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) |
| | | { |
| | | return; |
| | | } |
| | | else if (StringUtils.isNotEmpty(user.getPhonenumber()) |
| | | && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) |
| | | { |
| | | return; |
| | | } |
| | | else if (StringUtils.isNotEmpty(user.getEmail()) |
| | | && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) |
| | | { |
| | | return; |
| | | } |
| | | user.setCreateBy(SecurityUtils.getUsername()); |
| | | user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); |
| | | user.setRecommendUser(user.getPassword()); |
| | | userService.insertUser(user); |
| | | } |
| | | |
| | | /** |
| | | * 删除企业用户 |
| | | * @param companyId 企业id |
| | | */ |
| | | protected boolean delCompanyUser(Long companyId) |
| | | { |
| | | return userService.deleteUserByDeptId(companyId)>0; |
| | | } |
| | | |
| | | /** |
| | | * 获取查询参数 |
| | | * @param bo 参数 |
| | | * @return 查询参数 |
| | | */ |
| | | private QueryWrapper<SysCompany> getQw(SysCompanyQueryBo bo) |
| | | { |
| | | QueryWrapper<SysCompany> qw = Wrappers.query(); |