| package com.doumee.service.business.impl; | 
|   | 
| import com.doumee.service.business.third.model.PageData; | 
| import com.doumee.service.business.third.model.PageWrap; | 
| import com.doumee.dao.business.VisitParkMapper; | 
| import com.doumee.dao.business.join.VisitParkJoinMapper; | 
| import com.doumee.dao.business.model.*; | 
| import com.doumee.dao.business.model.Member; | 
| import com.doumee.service.business.VisitParkService; | 
| 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 江蹄蹄 | 
|  * @since 2024/04/28 15:44 | 
|  */ | 
| @Service | 
| public class VisitParkServiceImpl implements VisitParkService { | 
|   | 
|     @Autowired | 
|     private VisitParkMapper visitParkMapper; | 
|   | 
|     @Autowired | 
|     private VisitParkJoinMapper visitParkJoinMapper; | 
|   | 
|     @Override | 
|     public Integer create(VisitPark visitPark) { | 
|         visitParkMapper.insert(visitPark); | 
|         return visitPark.getId(); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteById(Integer id) { | 
|         visitParkMapper.deleteById(id); | 
|     } | 
|   | 
|     @Override | 
|     public void delete(VisitPark visitPark) { | 
|         UpdateWrapper<VisitPark> deleteWrapper = new UpdateWrapper<>(visitPark); | 
|         visitParkMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         visitParkMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(VisitPark visitPark) { | 
|         visitParkMapper.updateById(visitPark); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<VisitPark> visitParks) { | 
|         if (CollectionUtils.isEmpty(visitParks)) { | 
|             return; | 
|         } | 
|         for (VisitPark visitPark: visitParks) { | 
|             this.updateById(visitPark); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public VisitPark findById(Integer id) { | 
|         return visitParkMapper.selectById(id); | 
|     } | 
|   | 
|     @Override | 
|     public VisitPark findOne(VisitPark visitPark) { | 
|         QueryWrapper<VisitPark> wrapper = new QueryWrapper<>(visitPark); | 
|         return visitParkMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<VisitPark> findList(VisitPark visitPark) { | 
|         QueryWrapper<VisitPark> wrapper = new QueryWrapper<>(visitPark); | 
|         return visitParkMapper.selectList(wrapper); | 
|     } | 
|    | 
|     @Override | 
|     public PageData<VisitPark> findPage(PageWrap<VisitPark> pageWrap) { | 
|         IPage<VisitPark> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         MPJLambdaWrapper<VisitPark> queryWrapper = new MPJLambdaWrapper<>(); | 
|   | 
|         queryWrapper.selectAll(VisitPark.class); | 
|         queryWrapper.selectAs(Parks::getName, VisitPark::getParksName); | 
|         queryWrapper.selectAs(Member::getType,VisitPark::getMemberType); | 
|         queryWrapper.selectAs(Member::getName,VisitPark::getMemberName); | 
|         queryWrapper.selectAs(Member::getPhone,VisitPark::getMemberPhone); | 
|         queryWrapper.selectAs(Company::getName,VisitPark::getCompanyName); | 
|   | 
|         queryWrapper.leftJoin(Visits.class,Visits::getId,VisitPark::getVisitApplyId); | 
|         queryWrapper.leftJoin(Parks.class,Parks::getId,VisitPark::getParkId); | 
|         queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId); | 
|         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); | 
|   | 
|         queryWrapper | 
|           .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getPhone,pageWrap.getModel().getMemberName()) | 
|                 .or().like(Member::getName,pageWrap.getModel().getMemberName())); | 
|         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCarCode()),VisitPark::getCarCode,pageWrap.getModel().getCarCode()); | 
|         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()); | 
|         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getParksName()),Parks::getName,pageWrap.getModel().getParksName()); | 
|         queryWrapper.orderByDesc(VisitPark::getCreateDate) | 
|         ; | 
|         IPage<VisitPark> result = visitParkJoinMapper.selectJoinPage(page, VisitPark.class,queryWrapper); | 
|         return PageData.from(result); | 
|     } | 
|   | 
|     @Override | 
|     public long count(VisitPark visitPark) { | 
|         QueryWrapper<VisitPark> wrapper = new QueryWrapper<>(visitPark); | 
|         return visitParkMapper.selectCount(wrapper); | 
|     } | 
| } |