From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 16 十月 2024 15:59:38 +0800 Subject: [PATCH] 代码初始化 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java | 247 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 225 insertions(+), 22 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 6ad0a41..2d61cee 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,22 @@ 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.dao.system.model.SystemUser; 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.List; -import java.util.Objects; +import java.util.*; /** * 杞﹁締淇℃伅琛⊿ervice瀹炵幇 @@ -37,19 +44,118 @@ @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.isBlank(model.getCode()) + ||model.getType()==null + ||model.getCateId()==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.setAuthStatus(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.update(null,new UpdateWrapper<Cars>().lambda() + .eq(Cars::getId,model.getId()) + .set(Cars::getStartTime,null) + .set(Cars::getEndTime,null) + .set(Cars::getAuthStatus,Constants.ZERO) + .set(Cars::getIsdeleted,Constants.ONE) + .set(Cars::getEditDate,model.getEditDate()) + .set(Cars::getEdirot,model.getEdirot()) + ); + 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::getParkId) + .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 +165,77 @@ } @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.isBlank(model.getCode()) + ||model.getId()==null + ||model.getType()==null + ||model.getCateId()==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(""); + model.setAuthStatus(Constants.ZERO); + dealCancelBookBiz(model.getCode(),model.getEditDate()); + carsMapper.update(null,new UpdateWrapper<Cars>().lambda() + .eq(Cars::getId,model.getId()) + .set(Cars::getAuthStatus,Constants.ZERO) + .set(Cars::getType,model.getType()) + .set(Cars::getCode,model.getCode()) + .set(Cars::getGroupId,model.getGroupId()) + .set(Cars::getCateId,model.getCateId()) + .set(Cars::getEditDate,model.getEditDate()) + .set(Cars::getEdirot,model.getEdirot()) + .set(Cars::getMemberId,model.getMemberId()) + .set(Cars::getStartTime,null) + .set(Cars::getEndTime,null) + ); } @Override @@ -86,6 +253,10 @@ return carsMapper.selectById(id); } + + + + @Override public Cars findOne(Cars cars) { QueryWrapper<Cars> wrapper = new QueryWrapper<>(cars); @@ -95,40 +266,72 @@ @Override public List<Cars> findList(Cars cars) { QueryWrapper<Cars> wrapper = new QueryWrapper<>(cars); + wrapper.lambda().eq(Cars::getIsdeleted,Constants.ZERO); return carsMapper.selectList(wrapper); } @Override public PageData<Cars> findPage(PageWrap<Cars> pageWrap) { - - IPage<Cars> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Cars> queryWrapper = new MPJLambdaWrapper<>(); - queryWrapper.selectAll(Cars.class); - queryWrapper.selectAs(Parks::getName,Cars::getParksName); queryWrapper.selectAs(Member::getType,Cars::getMemberType); queryWrapper.selectAs(Member::getName,Cars::getMemberName); + queryWrapper.selectAs(SystemUser::getRealname,Cars::getEditorName); queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone); - queryWrapper.selectAs(Company::getName,Cars::getCompanyName); - - queryWrapper.leftJoin(Parks.class,Parks::getId,Cars::getParkId); + queryWrapper.selectAs(Company::getCompanyNamePath,Cars::getCompanyName); + queryWrapper.selectAs(Category::getParentId,Cars::getCatePId); + queryWrapper.selectAs(Category::getName,Cars::getCateName); + queryWrapper.select(" c.name as catePName"); + queryWrapper.select(" c1.COMPANY_NAME_PATH as carCompanyNamePath"); + queryWrapper.select(" c1.name as carCompanyName"); queryWrapper.leftJoin(Member.class,Member::getId,Cars::getMemberId); + queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Cars::getEdirot); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); - - + queryWrapper.leftJoin(Category.class,Category::getId,Cars::getCateId); + queryWrapper.leftJoin("category c on t4.PARENT_ID = c.id"); + queryWrapper.leftJoin("company c1 on t.GROUP_ID = c1.id"); queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName()) .or().like(Member::getPhone,pageWrap.getModel().getMemberName())); - queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getCompanyNamePath,pageWrap.getModel().getCompanyName()); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getMemberType()),Member::getType,pageWrap.getModel().getMemberType()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),Cars::getCode,pageWrap.getModel().getCode()); queryWrapper.eq(Cars::getIsdeleted,Constants.ZERO); - + queryWrapper.eq(pageWrap.getModel().getType()!=null,Cars::getType,pageWrap.getModel().getType()); + queryWrapper.eq(pageWrap.getModel().getAuthStatus()!=null,Cars::getAuthStatus,pageWrap.getModel().getAuthStatus()); queryWrapper.orderByDesc(Cars::getCreateDate); IPage<Cars> result = carJoinMapper.selectJoinPage(page, Cars.class,queryWrapper); + if(result!=null && result.getRecords()!=null && result.getRecords().size()>0){ + List<String> codes = new ArrayList<>(); + for(Cars cars :result.getRecords()){ + codes.add(cars.getCode()); + } + List<ParkBook> parkBooks = parkBookJoinMapper.selectJoinList(ParkBook.class,new MPJLambdaWrapper<ParkBook>() + .selectAll(ParkBook.class) + .selectAs(Parks::getName,ParkBook::getParksName) + .leftJoin(Parks.class,Parks::getId,ParkBook::getParkId) + .in(ParkBook::getCarCode,codes) + .eq(ParkBook::getIsdeleted,Constants.ZERO) ); + for(Cars cars :result.getRecords()){ + cars.setParkBookList(getParkbookListByCode(cars.getCode(),parkBooks)); + } + } return PageData.from(result); } + private List<ParkBook> getParkbookListByCode(String code, List<ParkBook> parkBooks) { + List<ParkBook> list =null; + for(ParkBook p : parkBooks){ + if(StringUtils.equals(p.getCarCode(),code)){ + if(list == null){ + list = new ArrayList<>(); + } + list.add(p); + } + } + return list; + } + @Override public long count(Cars cars) { QueryWrapper<Cars> wrapper = new QueryWrapper<>(cars); -- Gitblit v1.9.3