From 1c20c8231980a8d4b91688ff8641a06d3b2f68ab Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 14 十月 2025 16:34:22 +0800 Subject: [PATCH] 改bug --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java | 143 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 133 insertions(+), 10 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java index c12d4e2..f371b8f 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java @@ -2,14 +2,16 @@ 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.service.business.third.model.LoginUserInfo; +import com.doumee.service.business.third.model.PageData; +import com.doumee.service.business.third.model.PageWrap; import com.doumee.core.utils.Constants; -import com.doumee.core.utils.Utils; +import com.doumee.dao.business.CarsMapper; import com.doumee.dao.business.ParkBookMapper; +import com.doumee.dao.business.ParksMapper; import com.doumee.dao.business.join.ParkBookJoinMapper; import com.doumee.dao.business.model.*; +import com.doumee.dao.business.model.Member; import com.doumee.service.business.ParkBookService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -21,8 +23,10 @@ import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -37,7 +41,11 @@ @Autowired private ParkBookMapper parkBookMapper; @Autowired + private CarsMapper carsMapper; + @Autowired private HkSyncParkServiceImpl hkSyncParkService; + @Autowired + private ParksMapper parksMapper; @Autowired private ParkBookJoinMapper parkBookJoinMapper; @@ -114,6 +122,112 @@ } @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public String batchAuth(Cars cars) { + if(cars.getIdList() == null || cars.getIdList() == null + ||cars.getAuthTimeType() == null + ||cars.getAuthTimeType()>2 + ||cars.getAuthTimeType()<0 ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + MPJLambdaWrapper<Cars> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.selectAll(Cars.class); + queryWrapper.selectAs(Member::getStartTime,Cars::getMemberStartTime); + queryWrapper.selectAs(Member::getEndTime,Cars::getMemberEndTime); + queryWrapper.selectAs(Member::getIsdeleted,Cars::getMemberDeleted); + queryWrapper.selectAs(Member::getAuthStatus,Cars::getMemberAuthStatus); + queryWrapper.leftJoin(Member.class,Member::getId,Cars::getMemberId); + queryWrapper.eq(Cars::getIsdeleted,Constants.ZERO) + .in(Cars::getId,cars.getIdList()); + List<Cars> carsList = carsMapper.selectList( queryWrapper); + if(carsList== null || carsList.size() ==0){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"杞﹁締淇℃伅鏈夎锛岃杩斿洖鍒锋柊椤甸潰閲嶈瘯锛�"); + } + List<Parks> parksList = null; + if(cars.getParkIdList()!=null && cars.getParkIdList().size() > 0){ + MPJLambdaWrapper<Parks> queryWrapper1 = new MPJLambdaWrapper<>(); + queryWrapper1.selectAll(Parks.class); + queryWrapper1.eq(Parks::getIsdeleted,Constants.ZERO) + .in(Parks::getId,cars.getParkIdList()); + parksList = parksMapper.selectList( queryWrapper1); + if(parksList== null || parksList.size() ==0){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍋滆溅鍦轰俊鎭湁璇紝璇疯繑鍥炲埛鏂伴〉闈㈤噸璇曪紒"); + } + } + + if(Constants.equalsInteger(cars.getAuthTimeType(),Constants.ONE)){ + if( cars.getStartTime() ==null || cars.getEndTime() == null ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇峰~鍐欐纭殑鏈夋晥鏈熻寖鍥�"); + } + if( cars.getEndTime().getTime() < System.currentTimeMillis()){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈夋晥鏈熸埅姝㈡棩鏈熶笉鑳藉皬浜庡綋鍓嶆椂闂达紒"); + } + if(cars.getEndTime().getTime() <= cars.getStartTime().getTime()){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈夋晥鏈熸埅姝㈡棩鏈熶笉鑳藉皬浜庡紑濮嬫椂闂达紒"); + } + } + Date date = new Date(); + for(Cars model : carsList){ + Date startTime = cars.getStartTime(); + Date endTime = cars.getEndTime(); + if(Constants.equalsInteger(cars.getAuthTimeType(),Constants.TWO)){ + if(!Constants.equalsInteger(model.getMemberAuthStatus(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞﹁締銆�"+model.getCode()+"銆戣溅涓诲皻鏈巿鏉冮棬绂佷俊鎭紝鎺堟潈鏃犳硶銆愯窡闅忚溅涓汇�戞湁鏁堟湡锛�"); + } + startTime = model.getMemberStartTime(); + endTime=model.getMemberEndTime(); + } + model.setAuthTimeType(cars.getAuthTimeType()); + model.setStartTime(startTime); + model.setEndTime(endTime); + dealCarAuthByModel(model,cars.getLoginUserInfo().getId(),parksList,date,parkBookMapper); + model.setAuthStatus(Constants.ONE);//宸叉巿鏉� + carsMapper.update(null,new UpdateWrapper<Cars>().lambda() + .eq(Cars::getId,model.getId()) + .set(Cars::getEditDate,date) + .set(Cars::getEdirot,cars.getLoginUserInfo().getId()) + .set(Cars::getAuthStatus,Constants.ONE) + .set(Cars::getStartTime,startTime) + .set(Cars::getEndTime,endTime) + ); + } + return "鎺堟潈鎴愬姛"; + + } + + public static int dealCarAuthByModel(Cars model, Integer userId, List<Parks> parksList,Date date,ParkBookMapper parkBookMapper) { + //鍒犻櫎杞﹂噺搴撹褰曟暟鎹� + parkBookMapper.update(null,new UpdateWrapper<ParkBook>().lambda() + .eq(ParkBook::getCarCode,model.getCode()) + .set(ParkBook::getIsdeleted,Constants.ONE) + .set(ParkBook::getHkStatus,Constants.ZERO) + ); + if(org.apache.commons.collections.CollectionUtils.isNotEmpty(parksList)){ + List<ParkBook> parkBookList = new ArrayList<>(); + for (Parks parks:parksList) { + ParkBook parkBook = new ParkBook(); + parkBook.setIsdeleted(Constants.ZERO); + parkBook.setCreateDate(date); + parkBook.setCreator(userId); + parkBook.setEditor(userId); + parkBook.setEditDate(date); + parkBook.setCarCode(model.getCode()); + parkBook.setParkId(parks.getId()); + parkBook.setOrigin(Constants.ZERO); + parkBook.setStartTime(model.getStartTime()); + parkBook.setEndTime(model.getEndTime()); + parkBook.setTimeType(model.getAuthTimeType()); + parkBook.setMemberId(model.getMemberId()); + parkBook.setHkStatus(Constants.ZERO); + parkBook.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); + parkBookList.add(parkBook); + } + parkBookMapper.insert(parkBookList); + } + return 0; + } + + @Override public ParkBook findOne(ParkBook parkBook) { QueryWrapper<ParkBook> wrapper = new QueryWrapper<>(parkBook); return parkBookMapper.selectOne(wrapper); @@ -131,16 +245,25 @@ 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.selectAs(Parks::getName,ParkBook::getParksName); + queryWrapper.selectAs(Member::getType,ParkBook::getMemberType); + queryWrapper.selectAs(Member::getName,ParkBook::getMemberName); + queryWrapper.selectAs(Member::getPhone,ParkBook::getMemberPhone); + queryWrapper.selectAs(Company::getName,ParkBook::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); - + LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo(); + if(userInfo!=null && userInfo.getCompanyIdList()!=null){ + if( userInfo.getCompanyIdList().size() ==0){ + //鍙兘鐪嬭嚜宸� + queryWrapper.eq(Member::getId,userInfo.getMemberId()); + }else{ + queryWrapper.in(Company::getId,userInfo.getCompanyIdList()); + } + } + //鏁版嵁鏉冮檺寮�濮�--------------------end---------------- queryWrapper // .eq(ParkBook::getIsdeleted, Constants.ZERO) .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getPhone,pageWrap.getModel().getMemberName()) -- Gitblit v1.9.3