From 37f9d55f69d393b729b7775d65810836e64171e7 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 23 五月 2024 18:46:36 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 153 insertions(+), 9 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java index d9da2f8..91ef418 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java @@ -4,6 +4,9 @@ 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.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; @@ -11,18 +14,24 @@ import com.doumee.dao.admin.request.CarsQuery; import com.doumee.dao.admin.response.CarsDTO; import com.doumee.dao.business.CarsMapper; +import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.join.CarJoinMapper; import com.doumee.dao.business.join.ParkBookJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.service.business.CarsService; +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.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.UUID; /** * 杞﹁締淇℃伅琛⊿ervice瀹炵幇 @@ -37,19 +46,107 @@ @Autowired private CarJoinMapper carJoinMapper; + @Autowired + private MemberMapper memberMapper; @Autowired private ParkBookJoinMapper parkBookJoinMapper; @Override - public Integer create(Cars cars) { - carsMapper.insert(cars); - return cars.getId(); + public Integer create(Cars model) { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(loginUserInfo == null){ + loginUserInfo = model.getLoginUserInfo(); + } + if(StringUtils.isNotBlank(model.getCode()) + ||model.getType()==null + ||model.getType()<0 + ||model.getType()>3 + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(model.getMemberId()!=null){ + //妫�鏌ヨ溅涓讳俊鎭� + Member member =memberMapper.selectOne(new QueryWrapper<Member>().lambda() + .eq(Member::getId,model.getMemberId() ) + .eq(Member::getType,Constants.TWO ) + .eq(Member::getIsdeleted,Constants.ZERO) + .last("limit 1")); + if(member == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞︿富淇℃伅涓嶅瓨鍦紝璇疯繑鍥炲埛鏂伴噸璇�!"); + } + model.setMemberHkId(member.getHkId()); + } + //妫�鏌ヨ溅鐗屽彿鏄惁閲嶅 + if(carsMapper.selectCount(new QueryWrapper<Cars>().lambda() + .eq(Cars::getCode,model.getCode() ) + .eq(Cars::getIsdeleted,Constants.ZERO ) + ) >0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞﹁締宸茬粡褰曞叆锛屼笉鑳介噸澶嶅綍鍏�!"); + } + model.setType(Constants.formatIntegerNum(model.getType())); + model.setCreateDate(new Date()); + model.setCreator(loginUserInfo.getId()); + model.setEditDate(new Date()); + model.setEdirot(loginUserInfo.getId()); + model.setStatus(Constants.ZERO); + model.setIsdeleted(Constants.ZERO); + model.setHkStatus(Constants.ZERO); + model.setRemark(""); +// model.setHkDate(model.getCreateDate()); +// model.setHkId(UUID.randomUUID().toString().replace("-","")); + carsMapper.insert(model); + + return model.getId(); } @Override - public void deleteById(Integer id) { - carsMapper.deleteById(id); + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void deleteById(Integer id, LoginUserInfo user) { + Cars car = carJoinMapper.selectById(id); + if(car ==null ||Constants.equalsInteger(car.getIsdeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝杞﹁締淇℃伅涓嶅瓨鍦紒"); + + } + Date date = new Date(); + //鍒犻櫎宸叉巿鏉冧笅鍙戠殑鍖呮湡鎺堟潈 + dealCancelBookBiz(car.getCode(),date); + Cars model = new Cars(); + model.setEditDate(date); + model.setEdirot(user.getId()); + model.setId(id); + model.setIsdeleted(Constants.ONE); + carsMapper.updateById(model); + } + public boolean dealCancelBookBiz(String code,Date date){ + + List<ParkBook> parkBooks = parkBookJoinMapper.selectJoinList(ParkBook.class,new MPJLambdaWrapper<ParkBook>() + .selectAll(ParkBook.class ) + .selectAs(Parks::getHkId,ParkBook::getParkHkId ) + .leftJoin(Parks.class,Parks::getId,ParkBook::getParkHkId) + .eq(ParkBook::getCarCode,code) + .eq(ParkBook::getIsdeleted,Constants.ZERO )); + if(parkBooks !=null){ + for(ParkBook c : parkBooks){ + //濡傛灉鍙栨秷棰勭害锛屽垯杩涜鍙栨秷鍖呮湡 + if(StringUtils.isNotBlank(c.getParkHkId()) + && StringUtils.isNotBlank(c.getCarCode())){ + boolean result = HkSyncParkServiceImpl.cancelParkBookHk(c); + if(!result){ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍙栨秷宸蹭笅鍙戞巿鏉冨け璐ワ紝璇疯仈绯荤鐞嗗憳澶勭悊~"); + } + c.setHkStatus(Constants.ONE); + c.setRemark("鍙栨秷鍖呮湡鎴愬姛"); + }else{ + c.setHkStatus(Constants.TWO);//涓嬪彂澶辫触 + c.setRemark("鏃犳晥鍋滆溅鍦烘巿鏉冧笅鍙戯紝鍙栨秷鍖呮湡澶辫触锛岀洿鎺ュ垹闄よ褰�"); + } + c.setHkDate(date); + c.setIsdeleted(Constants.ONE); + parkBookJoinMapper.updateById(c); + } + } + return true; } @Override @@ -59,16 +156,63 @@ } @Override - public void deleteByIdInBatch(List<Integer> ids) { + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) { if (CollectionUtils.isEmpty(ids)) { return; } - carsMapper.deleteBatchIds(ids); + for(Integer id : ids){ + deleteById(id,user); + } } @Override - public void updateById(Cars cars) { - carsMapper.updateById(cars); + public void updateById(Cars model) { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(loginUserInfo == null){ + loginUserInfo = model.getLoginUserInfo(); + } + if(StringUtils.isNotBlank(model.getCode()) + ||model.getId()==null + ||model.getType()==null + ||model.getType()<0 + ||model.getType()>3 + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Cars car = carJoinMapper.selectById(model.getId()); + if(car ==null ||Constants.equalsInteger(car.getIsdeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝杞﹁締淇℃伅涓嶅瓨鍦紒"); + + } + if(model.getMemberId()!=null){ + //妫�鏌ヨ溅涓讳俊鎭� + Member member =memberMapper.selectOne(new QueryWrapper<Member>().lambda() + .eq(Member::getId,model.getMemberId() ) + .eq(Member::getType,Constants.TWO ) + .eq(Member::getIsdeleted,Constants.ZERO) + .last("limit 1")); + if(member == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞︿富淇℃伅涓嶅瓨鍦紝璇疯繑鍥炲埛鏂伴噸璇�!"); + } + model.setMemberHkId(member.getHkId()); + } + //妫�鏌ヨ溅鐗屽彿鏄惁閲嶅 + if(carsMapper.selectCount(new QueryWrapper<Cars>().lambda() + .eq(Cars::getCode,model.getCode() ) + .ne(Cars::getId,model.getId() ) + .eq(Cars::getIsdeleted,Constants.ZERO ) + ) >0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞﹁締宸茬粡褰曞叆锛屼笉鑳介噸澶嶅綍鍏�!"); + } + model.setType(Constants.formatIntegerNum(model.getType())); + model.setEditDate(new Date()); + model.setEdirot(loginUserInfo.getId()); + model.setIsdeleted(Constants.ZERO); + model.setHkStatus(Constants.ZERO); + model.setRemark(""); + dealCancelBookBiz(model.getCode(),model.getEditDate()); + carsMapper.updateById(model); } @Override -- Gitblit v1.9.3