| package com.doumee.service.business.impl; | 
|   | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| 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.ParkBookMapper; | 
| import com.doumee.dao.business.join.ParkBookJoinMapper; | 
| import com.doumee.dao.business.model.*; | 
| import com.doumee.service.business.ParkBookService; | 
| 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.doumee.service.business.impl.hksync.HkSyncParkServiceImpl; | 
| import com.github.yulichang.wrapper.MPJLambdaWrapper; | 
| import org.apache.commons.lang3.StringUtils; | 
| 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.Date; | 
| import java.util.List; | 
|   | 
| /** | 
|  * 车辆预约记录信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @date 2023/11/30 15:33 | 
|  */ | 
| @Service | 
| public class ParkBookServiceImpl implements ParkBookService { | 
|   | 
|     @Autowired | 
|     private ParkBookMapper parkBookMapper; | 
|     @Autowired | 
|     private HkSyncParkServiceImpl hkSyncParkService; | 
|   | 
|     @Autowired | 
|     private ParkBookJoinMapper parkBookJoinMapper; | 
|   | 
|   | 
|   | 
|     @Override | 
|     public Integer create(ParkBook parkBook) { | 
|         parkBookMapper.insert(parkBook); | 
|         return parkBook.getId(); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteById(Integer id) { | 
|         LoginUserInfo user =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         ParkBook parkBook = new ParkBook(); | 
|         parkBook.setIsdeleted(Constants.ZERO); | 
|         parkBook.setEditDate(new Date()); | 
|         parkBook.setParkId(id); | 
|         parkBook.setEditor(user.getId()); | 
|         parkBook.setHkStatus(Constants.ZERO); | 
|         parkBook.setRemark("待同步安防平台"); | 
|         parkBookMapper.updateById(parkBook); | 
|     } | 
|   | 
|     @Override | 
|     public void delete(ParkBook parkBook) { | 
|         UpdateWrapper<ParkBook> deleteWrapper = new UpdateWrapper<>(parkBook); | 
|         parkBookMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         parkBookMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(ParkBook parkBook) { | 
|         parkBookMapper.updateById(parkBook); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<ParkBook> parkBooks) { | 
|         if (CollectionUtils.isEmpty(parkBooks)) { | 
|             return; | 
|         } | 
|         for (ParkBook parkBook: parkBooks) { | 
|             this.updateById(parkBook); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public ParkBook findById(Integer id) { | 
|         return parkBookMapper.selectById(id); | 
|     } | 
|     @Override | 
|     public void reUpdate(ParkBook param) { | 
|         MPJLambdaWrapper<ParkBook> queryWrapper = new MPJLambdaWrapper<>(); | 
|         queryWrapper.selectAll(ParkBook.class); | 
|         queryWrapper.selectAs(Parks::getHkId,ParkBook::getParkHkId); | 
|         queryWrapper.leftJoin(Parks.class,Parks::getId,ParkBook::getParkId); | 
|         queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); | 
|         queryWrapper.eq(ParkBook::getHkStatus,Constants.ZERO) | 
|                 .eq(ParkBook::getIsdeleted,Constants.ZERO) | 
|                 .eq(ParkBook::getId,param.getId()); | 
|         ParkBook model = parkBookJoinMapper.selectJoinOne(ParkBook.class,queryWrapper); | 
|        if(model== null){ | 
|            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"该记录当前不支持重新下发条件!"); | 
|        } | 
|         hkSyncParkService.syncParkBookBySingleModel(model); | 
|     } | 
|   | 
|     @Override | 
|     public ParkBook findOne(ParkBook parkBook) { | 
|         QueryWrapper<ParkBook> wrapper = new QueryWrapper<>(parkBook); | 
|         return parkBookMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<ParkBook> findList(ParkBook parkBook) { | 
|         QueryWrapper<ParkBook> wrapper = new QueryWrapper<>(parkBook); | 
|         return parkBookMapper.selectList(wrapper); | 
|     } | 
|    | 
|     @Override | 
|     public PageData<ParkBook> findPage(PageWrap<ParkBook> pageWrap) { | 
|         IPage<ParkBook> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         MPJLambdaWrapper<ParkBook> queryWrapper = new MPJLambdaWrapper<>(); | 
|   | 
|         queryWrapper.selectAll(ParkBook.class); | 
|         queryWrapper.selectAs(Parks::getName,Cars::getParksName); | 
|         queryWrapper.selectAs(Member::getType,Cars::getMemberType); | 
|         queryWrapper.selectAs(Member::getName,Cars::getMemberName); | 
|         queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone); | 
|         queryWrapper.selectAs(Company::getName,Cars::getCompanyName); | 
|   | 
|         queryWrapper.leftJoin(Parks.class,Parks::getId,ParkBook::getParkId); | 
|         queryWrapper.leftJoin(Member.class,Member::getId,ParkBook::getMemberId); | 
|         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); | 
|   | 
|         queryWrapper | 
| //                .eq(ParkBook::getIsdeleted, Constants.ZERO) | 
|           .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()),ParkBook::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(ParkBook::getCreateDate); | 
|   | 
|         IPage<ParkBook> result = parkBookJoinMapper.selectJoinPage(page, ParkBook.class,queryWrapper); | 
|   | 
|         return PageData.from(result); | 
|     } | 
|   | 
|     @Override | 
|     public long count(ParkBook parkBook) { | 
|         QueryWrapper<ParkBook> wrapper = new QueryWrapper<>(parkBook); | 
|         return parkBookMapper.selectCount(wrapper); | 
|     } | 
| } |