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 deleteWrapper = new UpdateWrapper<>(parkBook); parkBookMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } parkBookMapper.deleteBatchIds(ids); } @Override public void updateById(ParkBook parkBook) { parkBookMapper.updateById(parkBook); } @Override public void updateByIdInBatch(List 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 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 wrapper = new QueryWrapper<>(parkBook); return parkBookMapper.selectOne(wrapper); } @Override public List findList(ParkBook parkBook) { QueryWrapper wrapper = new QueryWrapper<>(parkBook); return parkBookMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper 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 result = parkBookJoinMapper.selectJoinPage(page, ParkBook.class,queryWrapper); return PageData.from(result); } @Override public long count(ParkBook parkBook) { QueryWrapper wrapper = new QueryWrapper<>(parkBook); return parkBookMapper.selectCount(wrapper); } }