package com.doumee.service.business.impl; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.InsuranceApplyMapper; import com.doumee.dao.business.dto.InsuranceApplyQueryDTO; import com.doumee.dao.business.join.InsuranceApplyJoinMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.InsuranceApply; import com.doumee.dao.business.model.Solutions; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.InsuranceApplyService; 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 com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; /** * 投保申请信息表Service实现 * @author 江蹄蹄 * @date 2024/01/16 10:03 */ @Service public class InsuranceApplyServiceImpl implements InsuranceApplyService { @Autowired private InsuranceApplyMapper insuranceApplyMapper; @Autowired private InsuranceApplyJoinMapper insuranceApplyJoinMapper; @Override public Integer create(InsuranceApply insuranceApply) { insuranceApplyMapper.insert(insuranceApply); return insuranceApply.getId(); } @Override public void deleteById(Integer id) { insuranceApplyMapper.deleteById(id); } @Override public void delete(InsuranceApply insuranceApply) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(insuranceApply); insuranceApplyMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } insuranceApplyMapper.deleteBatchIds(ids); } @Override public void updateById(InsuranceApply insuranceApply) { insuranceApplyMapper.updateById(insuranceApply); } @Override public void updateByIdInBatch(List insuranceApplys) { if (CollectionUtils.isEmpty(insuranceApplys)) { return; } for (InsuranceApply insuranceApply: insuranceApplys) { this.updateById(insuranceApply); } } @Override public InsuranceApply findById(Integer id) { return insuranceApplyMapper.selectById(id); } @Override public InsuranceApply findOne(InsuranceApply insuranceApply) { QueryWrapper wrapper = new QueryWrapper<>(insuranceApply); return insuranceApplyMapper.selectOne(wrapper); } @Override public List findList(InsuranceApply insuranceApply) { QueryWrapper wrapper = new QueryWrapper<>(insuranceApply); return insuranceApplyMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.selectAll(InsuranceApply.class); queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName); queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName); queryWrapper.eq(InsuranceApply::getIsdeleted,Constants.ZERO); if(loginUserInfo.getType().equals(Constants.ONE)){ queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId()); } if (pageWrap.getModel().getSolutionId() != null) { queryWrapper.eq(InsuranceApply::getSolutionId, pageWrap.getModel().getSolutionId()); } if (pageWrap.getModel().getEndTimeS() != null) { queryWrapper.ge(InsuranceApply::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTimeS())); } if (pageWrap.getModel().getEndTimeE() != null) { queryWrapper.le(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTimeE())); } if (pageWrap.getModel().getStartTimeS() != null) { queryWrapper.ge(InsuranceApply::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTimeS())); } if (pageWrap.getModel().getStartTimeE() != null) { queryWrapper.le(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTimeE())); } if (pageWrap.getModel().getCode() != null) { queryWrapper.eq(InsuranceApply::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.eq(InsuranceApply::getStatus, pageWrap.getModel().getStatus()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(insuranceApplyJoinMapper.selectJoinPage(page,InsuranceApply.class, queryWrapper)); } @Override public long count(InsuranceApply insuranceApply) { QueryWrapper wrapper = new QueryWrapper<>(insuranceApply); return insuranceApplyMapper.selectCount(wrapper); } }