package com.charging.chargingparking.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.charging.chargingparking.constant.ParkingConstant; import com.charging.chargingparking.dto.AddParkingMember; import com.charging.chargingparking.entity.*; import com.charging.chargingparking.mapper.ParkingBetweenMemberMapper; import com.charging.chargingparking.mapper.ParkingMemberMapper; import com.charging.chargingparking.modules.common.dto.Sort; import com.charging.chargingparking.modules.vo.CarTypeVo; import com.charging.chargingparking.modules.vo.ParkingEnableVo; import com.charging.chargingparking.service.*; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; import java.util.Map; /** * */ @Service @Transactional public class ParkingBetweenMemberServiceImpl extends ServiceImpl implements ParkingBetweenMemberService { @Autowired private ParkingMemberLogService parkingMemberLogService; @Autowired private ParkingChannelService parkingChannelService; @Autowired private ParkingBlacklistService parkingBlacklistService; @Autowired private ParkingInfoService parkingInfoService; @Autowired private ParkingRecordService parkingRecordService; @Autowired private ParkingWhiteService parkingWhiteService; @Autowired private ParkingBetweenMemberMapper parkingMemberMapper; @Autowired private ParkingMemberMapper parkingMemberOrgMapper; @Autowired private ParkingMemberService parkingMemberOrgService; @Override public void addParkingMemberWash(ParkingBetweenMember addParkingMember) { ParkingBetweenMember parkingMember = getById(addParkingMember.getId()); if (parkingMember!=null) { addParkingMember.setUpdateTime(new Date()); updateById(addParkingMember); } else { addParkingMember.setCreateTime(new Date()); save(addParkingMember); } } @Override public void memberMove(ParkingBetweenMember addParkingMember){ ParkingMember parkingMemberOrg =parkingMemberOrgService.getById(addParkingMember.getParkingMemberId()); if(parkingMemberOrg!=null){ parkingMemberOrgService.cloudDelete(parkingMemberOrg.getId(),parkingMemberOrg.getParkId(),parkingMemberOrg.getMemberCarNum()); } addParkingMemberWash(addParkingMember); } @Override public void cloudDelete(String memberId, String parkId, String license) { QueryWrapper parkingMemberQueryWrapper = new QueryWrapper<>(); if (StrUtil.isNotBlank(memberId)) { parkingMemberQueryWrapper.eq("id", memberId); parkingMemberQueryWrapper.eq("park_id", parkId); parkingMemberQueryWrapper.eq("cloud_del_flag", false); } else { parkingMemberQueryWrapper.eq("park_id", parkId); parkingMemberQueryWrapper.eq("member_car_num", license); parkingMemberQueryWrapper.eq("cloud_del_flag", false); parkingMemberQueryWrapper.eq("member_type", 0); // parkingMemberQueryWrapper.lt("member_end_time", new Date()); } ParkingBetweenMember parkingMember = getOne(parkingMemberQueryWrapper); if (parkingMember != null) { parkingMember.setDelFlag(true); parkingMember.setCloudDelFlag(true); parkingMember.setUpdateTime(new Date()); updateById(parkingMember); removeById(parkingMember); //保存会员修改日志 ParkingMemberLog parkingMemberLog = new ParkingMemberLog(); parkingMemberLog.setParkingMemberId(parkingMember.getId()); parkingMemberLog.setCreateTime(new Date()); parkingMemberLog.setContent(StrUtil.format("{}区间会员手工删除", parkingMember.getMemberCarNum())); parkingMemberLogService.save(parkingMemberLog); } } @Override public void cloudDeleteUpdate(ParkingBetweenMember parkingMemberU) { QueryWrapper parkingMemberQueryWrapper = new QueryWrapper<>(); if (StrUtil.isNotBlank(parkingMemberU.getId())) { parkingMemberQueryWrapper.eq("id", parkingMemberU.getId()); parkingMemberQueryWrapper.eq("park_id", parkingMemberU.getParkId()); parkingMemberQueryWrapper.eq("cloud_del_flag", false); } else { parkingMemberQueryWrapper.eq("park_id", parkingMemberU.getParkId()); parkingMemberQueryWrapper.eq("member_car_num", parkingMemberU.getMemberCarNum()); parkingMemberQueryWrapper.eq("cloud_del_flag", false); parkingMemberQueryWrapper.eq("member_type", 0); // parkingMemberQueryWrapper.lt("member_end_time", new Date()); } ParkingBetweenMember parkingMember = getOne(parkingMemberQueryWrapper); if (parkingMember != null) { parkingMember.setDelFlag(true); if(StrUtil.isNotBlank(parkingMemberU.getUpdateBy())){ parkingMember.setUpdateBy(parkingMemberU.getUpdateBy()); } parkingMember.setCloudDelFlag(true); parkingMember.setUpdateTime(new Date()); updateById(parkingMember); removeById(parkingMember); //保存会员修改日志 ParkingMemberLog parkingMemberLog = new ParkingMemberLog(); parkingMemberLog.setParkingMemberId(parkingMember.getId()); parkingMemberLog.setCreateTime(new Date()); parkingMemberLog.setContent(StrUtil.format("{}区间会员手工删除", parkingMember.getMemberCarNum())); parkingMemberLogService.save(parkingMemberLog); } } @Override public void cloudDeleteTemporary(String memberId, String parkId, String license, String reMark) { QueryWrapper parkingMemberQueryWrapper = new QueryWrapper<>(); if (StrUtil.isNotBlank(memberId)) { parkingMemberQueryWrapper.eq("id", memberId); parkingMemberQueryWrapper.eq("park_id", parkId); parkingMemberQueryWrapper.eq("cloud_del_flag", false); } else { parkingMemberQueryWrapper.eq("park_id", parkId); parkingMemberQueryWrapper.eq("member_car_num", license); parkingMemberQueryWrapper.eq("cloud_del_flag", false); parkingMemberQueryWrapper.eq("member_type", 0); // parkingMemberQueryWrapper.lt("member_end_time", new Date()); } ParkingBetweenMember parkingMember = getOne(parkingMemberQueryWrapper); if (parkingMember != null) { parkingMember.setCloudDelFlag(true); parkingMember.setUpdateTime(new Date()); updateById(parkingMember); //保存会员修改日志 ParkingMemberLog parkingMemberLog = new ParkingMemberLog(); parkingMemberLog.setParkingMemberId(parkingMember.getId()); parkingMemberLog.setCreateTime(new Date()); parkingMemberLog.setContent(StrUtil.format("{}会员出场,会员自动删除,备注:{}", parkingMember.getMemberCarNum(),reMark)); parkingMemberLogService.save(parkingMemberLog); parkingWhiteService.deleteWhiteList(parkId, parkingMember.getMemberCarNum()); } } @Override public Page pageSearch(Map searchParams, int pageNumber, int pageSize, List sortList) { Page page = PageHelper.startPage(pageNumber, pageSize).doSelectPage(() -> { parkingMemberMapper.search(searchParams, sortList); }); return page; } @Override public ParkingMember findByCarNum(String carNum) { //return parkingMemberMapper.findByCarNum(carNum); return null; } @Override public void addOrUpdateFreeMember(ParkingRecord parkingRecord) { try { String inTime = DateUtil.format(parkingRecord.getInParkingTime(), "yyyy-MM-dd"); //拼接时间 String inTimePj1 = inTime + " 00:00:00"; String inTimePj2 = inTime + " 07:00:00"; Date inTimePjDate1 = DateUtil.parse(inTimePj1); Date inTimePjDate2 = DateUtil.parse(inTimePj2); if (parkingRecord.getInParkingTime().compareTo(inTimePjDate1) >= 0 && parkingRecord.getInParkingTime().compareTo(inTimePjDate2) < 0) { } } catch (Exception ex) { } } }