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); 
 | 
    } 
 | 
} 
 |