package com.gkhy.exam.system.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gkhy.exam.common.api.CommonPage;
|
import com.gkhy.exam.common.constant.UserConstant;
|
import com.gkhy.exam.common.exception.ApiException;
|
import com.gkhy.exam.common.utils.PageUtils;
|
import com.gkhy.exam.common.utils.SecurityUtils;
|
import com.gkhy.exam.system.domain.ExCompanyPeriod;
|
import com.gkhy.exam.system.domain.SysCompany;
|
import com.gkhy.exam.system.mapper.SysCompanyMapper;
|
import com.gkhy.exam.system.service.ExCompanyPeriodService;
|
import com.gkhy.exam.system.service.SysCompanyService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
|
/**
|
* <p>
|
* 企业表 服务实现类
|
* </p>
|
*
|
* @author kzy
|
* @since 2024-06-05 08:43:11
|
*/
|
@Service
|
public class SysCompanyServiceImpl extends ServiceImpl<SysCompanyMapper, SysCompany> implements SysCompanyService {
|
@Autowired
|
private ExCompanyPeriodService companyPeriodService;
|
|
@Override
|
public CommonPage selectCompanyList(SysCompany company) {
|
PageUtils.startPage();
|
List<SysCompany> companyList=baseMapper.selectCompanyList(company);
|
return CommonPage.restPage(companyList);
|
}
|
|
@Override
|
public SysCompany selectCompanyById(Long companyId) {
|
return baseMapper.selectCompanyById(companyId);
|
}
|
|
@Override
|
@Transactional(rollbackFor = RuntimeException.class)
|
public int insertCompany(SysCompany company) {
|
if(!checkNameUnique(company)){
|
throw new ApiException("公司名称已存在");
|
}
|
company.setCreateBy(SecurityUtils.getUsername());
|
company.setRemainPeriod(company.getTotalPeriod());
|
int row= baseMapper.insert(company);
|
if(row<1){
|
throw new ApiException("新增公司失败");
|
}
|
//扣减企业学时
|
ExCompanyPeriod companyPeriod=new ExCompanyPeriod();
|
companyPeriod.setModifyPeriod(company.getTotalPeriod());
|
companyPeriod.setOrigin("系统分配");
|
companyPeriod.setCompanyId(company.getId());
|
companyPeriod.setRemainPeriod(company.getTotalPeriod());
|
companyPeriodService.save(companyPeriod);
|
return row;
|
}
|
|
@Override
|
public int updateCompany(SysCompany company) {
|
if(!checkNameUnique(company)){
|
throw new ApiException("公司名称已存在");
|
}
|
company.setUpdateBy(SecurityUtils.getUsername());
|
return baseMapper.updateById(company);
|
}
|
|
@Override
|
public int deleteCompanyById(Long companyId) {
|
return baseMapper.delCompanyById(companyId);
|
}
|
|
|
public boolean checkNameUnique(SysCompany company){
|
Long companyId=company.getId()==null?-1L:company.getId();
|
SysCompany com= baseMapper.checkNameUnique(company.getName());
|
if(com!=null&&com.getId().longValue()!=companyId.longValue()){
|
return UserConstant.NOT_UNIQUE;
|
}
|
return UserConstant.UNIQUE;
|
}
|
|
@Override
|
public void assignPeriod(SysCompany company) {
|
if(company.getId()==null){
|
throw new ApiException("公司id不能为空");
|
}
|
if(company.getTotalPeriod()==null ||company.getTotalPeriod()<0){
|
throw new ApiException("参数课时不正确");
|
}
|
boolean b = updateById(new SysCompany().setId(company.getId()).setTotalPeriod(company.getTotalPeriod()));
|
if(!b){
|
throw new ApiException("分配课时失败");
|
}
|
}
|
|
@Override
|
public List<SysCompany> selectCompanyLists() {
|
return baseMapper.selectCompanyListS();
|
}
|
}
|