package com.doumee.service.business.impl; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.toolkit.Constants; 
 | 
import com.doumee.core.model.PageData; 
 | 
import com.doumee.core.model.PageWrap; 
 | 
import com.doumee.core.utils.Utils; 
 | 
import com.doumee.dao.business.TrainTimeMapper; 
 | 
import com.doumee.dao.business.join.TrainTimeJoinMapper; 
 | 
import com.doumee.dao.business.model.Company; 
 | 
import com.doumee.dao.business.model.Member; 
 | 
import com.doumee.dao.business.model.TrainTime; 
 | 
import com.doumee.dao.business.model.Visits; 
 | 
import com.doumee.dao.system.model.SystemUser; 
 | 
import com.doumee.service.business.TrainTimeService; 
 | 
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.commons.lang3.StringUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.util.CollectionUtils; 
 | 
  
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 人员培训有效期记录Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2023/11/30 15:33 
 | 
 */ 
 | 
@Service 
 | 
public class TrainTimeServiceImpl implements TrainTimeService { 
 | 
  
 | 
    @Autowired 
 | 
    private TrainTimeMapper trainTimeMapper; 
 | 
    @Autowired 
 | 
    private TrainTimeJoinMapper trainTimeJoinMapper; 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
    @Override 
 | 
    public Integer create(TrainTime trainTime) { 
 | 
        trainTimeMapper.insert(trainTime); 
 | 
        return trainTime.getId(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteById(Integer id) { 
 | 
        trainTimeMapper.deleteById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void delete(TrainTime trainTime) { 
 | 
        UpdateWrapper<TrainTime> deleteWrapper = new UpdateWrapper<>(trainTime); 
 | 
        trainTimeMapper.delete(deleteWrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteByIdInBatch(List<Integer> ids) { 
 | 
        if (CollectionUtils.isEmpty(ids)) { 
 | 
            return; 
 | 
        } 
 | 
        trainTimeMapper.deleteBatchIds(ids); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateById(TrainTime trainTime) { 
 | 
        trainTimeMapper.updateById(trainTime); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateByIdInBatch(List<TrainTime> trainTimes) { 
 | 
        if (CollectionUtils.isEmpty(trainTimes)) { 
 | 
            return; 
 | 
        } 
 | 
        for (TrainTime trainTime: trainTimes) { 
 | 
            this.updateById(trainTime); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public TrainTime findById(Integer id) { 
 | 
        return trainTimeMapper.selectById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public TrainTime findOne(TrainTime trainTime) { 
 | 
        QueryWrapper<TrainTime> wrapper = new QueryWrapper<>(trainTime); 
 | 
        return trainTimeMapper.selectOne(wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<TrainTime> findList(TrainTime trainTime) { 
 | 
        QueryWrapper<TrainTime> wrapper = new QueryWrapper<>(trainTime); 
 | 
        return trainTimeMapper.selectList(wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public PageData<TrainTime> findPage(PageWrap<TrainTime> pageWrap) { 
 | 
        IPage<TrainTime> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        MPJLambdaWrapper<TrainTime> queryWrapper = new MPJLambdaWrapper<>(); 
 | 
  
 | 
        queryWrapper.leftJoin(Member.class,Member::getId,TrainTime::getMemberId); 
 | 
        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); 
 | 
        queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,TrainTime::getCreator); 
 | 
  
 | 
        queryWrapper.selectAll(TrainTime.class); 
 | 
        queryWrapper.selectAs(Member::getName,TrainTime::getName); 
 | 
        queryWrapper.selectAs(Member::getPhone,TrainTime::getPhone); 
 | 
        queryWrapper.selectAs(Member::getIdcardNo,TrainTime::getIdcardNo); 
 | 
        queryWrapper.selectAs(Company::getName,TrainTime::getCompanyName); 
 | 
        queryWrapper.selectAs(SystemUser::getUsername,TrainTime::getCreateName); 
 | 
  
 | 
        queryWrapper.eq(TrainTime::getIsdeleted, Constants.ZERO); 
 | 
        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()), ms->ms.like(Member::getPhone,pageWrap.getModel().getName()) 
 | 
                .or().like(Member::getName,pageWrap.getModel().getName())); 
 | 
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()); 
 | 
        queryWrapper.orderByDesc(TrainTime::getCreateDate); 
 | 
        IPage<TrainTime> result = trainTimeJoinMapper.selectJoinPage(page, TrainTime.class,queryWrapper); 
 | 
        return PageData.from(result); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public long count(TrainTime trainTime) { 
 | 
        QueryWrapper<TrainTime> wrapper = new QueryWrapper<>(trainTime); 
 | 
        return trainTimeMapper.selectCount(wrapper); 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |