package doumeemes.service.business.impl;
|
|
import doumeemes.core.exception.BusinessException;
|
import doumeemes.core.model.LoginUserInfo;
|
import doumeemes.core.model.PageData;
|
import doumeemes.core.model.PageWrap;
|
import doumeemes.core.utils.Constants;
|
import doumeemes.core.utils.Utils;
|
import doumeemes.dao.business.CompanyMapper;
|
import doumeemes.dao.business.CompanyOpenMapper;
|
import doumeemes.dao.business.model.Company;
|
import doumeemes.dao.business.model.CompanyLog;
|
import doumeemes.dao.business.model.CompanyOpen;
|
import doumeemes.dao.ext.vo.CompanyExtListVO;
|
import doumeemes.service.business.CompanyLogService;
|
import doumeemes.service.business.CompanyOpenService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import doumeemes.service.ext.DepartmentExtService;
|
import org.apache.shiro.SecurityUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 系统-企业账户开通历史记录表Service实现
|
* @author 江蹄蹄
|
* @date 2022/04/20 09:33
|
*/
|
@Service
|
public class CompanyOpenServiceImpl implements CompanyOpenService {
|
|
@Autowired
|
private CompanyOpenMapper companyOpenMapper;
|
|
@Autowired
|
private CompanyMapper companyMapper;
|
|
@Autowired
|
CompanyLogService companyLogService;
|
|
@Autowired
|
@Lazy
|
private DepartmentExtService departmentExtService;
|
|
@Override
|
public Integer create(CompanyOpen companyOpen) {
|
companyOpenMapper.insert(companyOpen);
|
return companyOpen.getId();
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
companyOpenMapper.deleteById(id);
|
}
|
|
@Override
|
public void delete(CompanyOpen companyOpen) {
|
UpdateWrapper<CompanyOpen> deleteWrapper = new UpdateWrapper<>(companyOpen);
|
companyOpenMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
companyOpenMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
public void updateById(CompanyOpen companyOpen) {
|
companyOpenMapper.updateById(companyOpen);
|
}
|
|
@Transactional(rollbackFor = {Exception.class, BusinessException.class})
|
@Override
|
public void updateValidDate(CompanyOpen companyOpen) {
|
SimpleDateFormat format=new SimpleDateFormat("YYYY-MM-dd");
|
Company cyResult= companyMapper.selectById(companyOpen.getCompanyId());
|
LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
UpdateWrapper<CompanyOpen> wrapper = new UpdateWrapper<>();
|
wrapper.lambda().eq(CompanyOpen::getCompanyId,companyOpen.getCompanyId())
|
.set(CompanyOpen::getValidDate,companyOpen.getValidDate())
|
.set(CompanyOpen::getOepnType,companyOpen.getOepnType());
|
companyOpenMapper.update(null,wrapper);
|
Company company = new Company();
|
company.setId(companyOpen.getCompanyId());
|
company.setOepnValidDate(companyOpen.getValidDate());
|
company.setOepnType(companyOpen.getOepnType());
|
companyMapper.updateById(company);
|
Company company1 = companyMapper.selectById(companyOpen.getCompanyId());
|
|
CompanyLog companyLog = new CompanyLog();
|
companyLog.setDeleted((byte) Constants.ZERO);
|
companyLog.setUpdateUser(principal.getId());
|
companyLog.setCreateUser(principal.getId());
|
companyLog.setCreateTime(new Date());
|
companyLog.setUpdateTime(new Date());
|
companyLog.setRemark("有效期从"+format.format(cyResult.getOepnValidDate())+"日调整至"+format.format(companyOpen.getValidDate()));
|
companyLog.setCompanyId(company.getId());
|
companyLog.setUpdateType(Constants.CompanyUpdateType.UPDATE_VAIL_DATE.getKey());
|
companyLog.setDetail("有效期从"+format.format(cyResult.getOepnValidDate())+"日调整至"+format.format(companyOpen.getValidDate()));
|
companyLogService.create(companyLog);
|
|
initRedisCache(company1);
|
}
|
|
private void initRedisCache(Company com) {
|
CompanyExtListVO c = new CompanyExtListVO();
|
BeanUtils.copyProperties(com,c);
|
departmentExtService.loadComDepart(c);
|
departmentExtService.initCompnayCodesByCom(com);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<CompanyOpen> companyOpens) {
|
if (CollectionUtils.isEmpty(companyOpens)) {
|
return;
|
}
|
for (CompanyOpen companyOpen: companyOpens) {
|
this.updateById(companyOpen);
|
}
|
}
|
|
@Override
|
public CompanyOpen findById(Integer id) {
|
return companyOpenMapper.selectById(id);
|
}
|
|
@Override
|
public CompanyOpen findOne(CompanyOpen companyOpen) {
|
QueryWrapper<CompanyOpen> wrapper = new QueryWrapper<>(companyOpen);
|
return companyOpenMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<CompanyOpen> findList(CompanyOpen companyOpen) {
|
QueryWrapper<CompanyOpen> wrapper = new QueryWrapper<>(companyOpen);
|
return companyOpenMapper.selectList(wrapper);
|
}
|
|
@Override
|
public PageData<CompanyOpen> findPage(PageWrap<CompanyOpen> pageWrap) {
|
IPage<CompanyOpen> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
QueryWrapper<CompanyOpen> queryWrapper = new QueryWrapper<>();
|
Utils.MP.blankToNull(pageWrap.getModel());
|
if (pageWrap.getModel().getId() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getId, pageWrap.getModel().getId());
|
}
|
if (pageWrap.getModel().getDeleted() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getDeleted, pageWrap.getModel().getDeleted());
|
}
|
if (pageWrap.getModel().getCreateUser() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getCreateUser, pageWrap.getModel().getCreateUser());
|
}
|
if (pageWrap.getModel().getCreateTime() != null) {
|
queryWrapper.lambda().ge(CompanyOpen::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
|
queryWrapper.lambda().le(CompanyOpen::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
|
}
|
if (pageWrap.getModel().getUpdateUser() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getUpdateUser, pageWrap.getModel().getUpdateUser());
|
}
|
if (pageWrap.getModel().getUpdateTime() != null) {
|
queryWrapper.lambda().ge(CompanyOpen::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
|
queryWrapper.lambda().le(CompanyOpen::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
|
}
|
if (pageWrap.getModel().getRemark() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getRemark, pageWrap.getModel().getRemark());
|
}
|
if (pageWrap.getModel().getCompanyId() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getCompanyId, pageWrap.getModel().getCompanyId());
|
}
|
if (pageWrap.getModel().getUserNum() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getUserNum, pageWrap.getModel().getUserNum());
|
}
|
if (pageWrap.getModel().getModules() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getModules, pageWrap.getModel().getModules());
|
}
|
if (pageWrap.getModel().getValidDate() != null) {
|
queryWrapper.lambda().ge(CompanyOpen::getValidDate, Utils.Date.getStart(pageWrap.getModel().getValidDate()));
|
queryWrapper.lambda().le(CompanyOpen::getValidDate, Utils.Date.getEnd(pageWrap.getModel().getValidDate()));
|
}
|
if (pageWrap.getModel().getOepnType() != null) {
|
queryWrapper.lambda().eq(CompanyOpen::getOepnType, pageWrap.getModel().getOepnType());
|
}
|
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
|
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
|
queryWrapper.orderByDesc(sortData.getProperty());
|
} else {
|
queryWrapper.orderByAsc(sortData.getProperty());
|
}
|
}
|
return PageData.from(companyOpenMapper.selectPage(page, queryWrapper));
|
}
|
|
@Override
|
public long count(CompanyOpen companyOpen) {
|
QueryWrapper<CompanyOpen> wrapper = new QueryWrapper<>(companyOpen);
|
return companyOpenMapper.selectCount(wrapper);
|
}
|
}
|