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.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 org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; 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; @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 deleteWrapper = new UpdateWrapper<>(companyOpen); companyOpenMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List 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 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); 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); } @Override public void updateByIdInBatch(List 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 wrapper = new QueryWrapper<>(companyOpen); return companyOpenMapper.selectOne(wrapper); } @Override public List findList(CompanyOpen companyOpen) { QueryWrapper wrapper = new QueryWrapper<>(companyOpen); return companyOpenMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper 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 wrapper = new QueryWrapper<>(companyOpen); return companyOpenMapper.selectCount(wrapper); } }