From e3a2245265516fef78b4737d6fffc939e7c5e0af Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期四, 03 七月 2025 17:56:07 +0800 Subject: [PATCH] bug修改 --- pt-errand/src/main/java/com/ruoyi/errand/service/impl/CommunityServiceImpl.java | 65 +++++++++++++++++++++++++++----- 1 files changed, 55 insertions(+), 10 deletions(-) diff --git a/pt-errand/src/main/java/com/ruoyi/errand/service/impl/CommunityServiceImpl.java b/pt-errand/src/main/java/com/ruoyi/errand/service/impl/CommunityServiceImpl.java index 2ae8dbb..75ccc9c 100644 --- a/pt-errand/src/main/java/com/ruoyi/errand/service/impl/CommunityServiceImpl.java +++ b/pt-errand/src/main/java/com/ruoyi/errand/service/impl/CommunityServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.errand.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -25,6 +26,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Objects; @@ -55,15 +57,18 @@ } @Override - public R<List<CommunityListVO>> getTotalCommunityList() { - List<CommunityListVO> communityListVOS = this.getBaseMapper().getTotalCommunityList(); + public R<List<CommunityListVO>> getTotalCommunityList(String name) { + List<CommunityListVO> communityListVOS = this.getBaseMapper().getTotalCommunityList(name); return R.ok(communityListVOS); } @Override public List<AllCommunityListVO> getAllCommunityList() { List<Integer> list=communityCourierMapper.getAllCommunityList(); - return this.baseMapper.getAllCommunityList(list); + + return this.baseMapper.getAllCommunityList(list); + + } @Override @@ -73,6 +78,7 @@ iPage.getRecords().forEach(x->{ List<Order> orderList = orderMapper.selectList(new LambdaQueryWrapper<Order>() .eq(Order::getCommunityId, x.getId()) + .ne(Order::getOrderStatus,3) .eq(Order::getDelFlag, DelFlagConstant.UNDELETE) .eq(Order::getPayStatus,2)); if (orderList!=null&& !orderList.isEmpty()){ @@ -111,12 +117,15 @@ //添加小区 Community community = new Community(); BeanUtils.copyProperties(addCommunityDTO,community); + community.setDelFlag(0); + community.setStatus(0); + community.setCreateTime(LocalDateTime.now()); this.save(community); if (addCommunityDTO.getServicePhone()!=null){ //保存客服电话 Phone phone = new Phone(); phone.setType(2); - phone.setCommunity_id(community.getId()); + phone.setCommunityId(community.getId()); phone.setPhone(addCommunityDTO.getServicePhone()); phoneMapper.insert(phone); } @@ -148,14 +157,14 @@ //检查客服电话是否更改 if (editCommunityDTO.getServicePhone()!=null){ Phone phone = phoneMapper.selectOne(new LambdaQueryWrapper<Phone>() - .eq(Phone::getCommunity_id, editCommunityDTO.getId()) + .eq(Phone::getCommunityId, editCommunityDTO.getId()) .eq(Phone::getType, 2)); if (phone==null){ //添加 //保存客服电话 phone = new Phone(); phone.setType(2); - phone.setCommunity_id(community.getId()); + phone.setCommunityId(community.getId()); phone.setPhone(editCommunityDTO.getServicePhone()); phoneMapper.insert(phone); }else { @@ -171,10 +180,10 @@ throw new ServiceException("跑腿人员不存在"); } //检查跑腿员是否绑定 - Long count = communityCourierMapper.selectCount(new LambdaQueryWrapper<CommunityCourier>() + CommunityCourier one = communityCourierMapper.selectOne(new LambdaQueryWrapper<CommunityCourier>() .eq(CommunityCourier::getCourierId, editCommunityDTO.getCourierId())); - if (count>0){ - throw new ServiceException("跑腿人员已绑定"); + if (one != null && !Objects.equals(one.getCommunityId(), editCommunityDTO.getId())){ + throw new ServiceException("跑腿人员已绑定其他小区"); } //检查跑腿员是否更改 CommunityCourier communityCourier = communityCourierMapper.selectOne(new LambdaQueryWrapper<CommunityCourier>() @@ -184,12 +193,16 @@ communityCourier = new CommunityCourier(); communityCourier.setCommunityId(editCommunityDTO.getId()); communityCourier.setCourierId(editCommunityDTO.getCourierId()); + communityCourierMapper.insert(communityCourier); }else { //修改 communityCourier.setCourierId(editCommunityDTO.getCourierId()); communityCourierMapper.updateById(communityCourier); } + //修改小区 + BeanUtils.copyProperties(editCommunityDTO,community); + this.updateById(community); } @Override @@ -197,6 +210,14 @@ Community community = this.baseMapper.selectById(id); if (community==null|| Objects.equals(community.getDelFlag(), DelFlagConstant.DELETE)){ throw new ServiceException("未找到该小区"); + } + //查找小区是否有订单未完成 + //查找小区是否有订单未完成 + Long count = orderMapper.selectCount(new LambdaUpdateWrapper<Order>().eq(Order::getCommunityId, id) + .eq(Order::getDelFlag, DelFlagConstant.UNDELETE) + .in(Order::getOrderStatus, Arrays.asList(1,2))); + if (count > 0) { + throw new ServiceException("该小区还有订单未完成,无法冻结"); } //删除关系 CommunityCourier communityCourier = communityCourierMapper.selectOne(new LambdaQueryWrapper<CommunityCourier>() @@ -217,6 +238,16 @@ if (community==null|| Objects.equals(community.getDelFlag(), DelFlagConstant.DELETE)){ throw new ServiceException("未找到该小区"); } + if (community.getStatus()==1){ + //查找小区是否有订单未完成 + Long count = orderMapper.selectCount(new LambdaUpdateWrapper<Order>().eq(Order::getCommunityId, id) + .eq(Order::getDelFlag, DelFlagConstant.UNDELETE) + .in(Order::getOrderStatus, Arrays.asList(1,2))); + if (count > 0) { + throw new ServiceException("该小区还有订单未完成,无法冻结"); + } + } + community.setStatus(community.getStatus()==0?1:0); community.setUpdateTime(LocalDateTime.now()); this.baseMapper.updateById(community); @@ -244,10 +275,24 @@ } } //客服电话 - Phone phone = phoneMapper.selectOne(new LambdaQueryWrapper<Phone>().eq(Phone::getCommunity_id, community.getId())); + Phone phone = phoneMapper.selectOne(new LambdaQueryWrapper<Phone>().eq(Phone::getCommunityId, community.getId())); if (phone!=null){ vo.setServicePhone(phone.getPhone()); } + //订单统计 + List<Order> orderList = orderMapper.selectList(new LambdaQueryWrapper<Order>() + .eq(Order::getCommunityId,id) + .ne(Order::getOrderStatus,3) + .eq(Order::getDelFlag, DelFlagConstant.UNDELETE) + .eq(Order::getPayStatus,2)); + if (orderList!=null&& !orderList.isEmpty()){ + vo.setTotal(orderList.size());//总订单数 + LocalDateTime start = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); + LocalDateTime end = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); + long today = orderList.stream().filter(order -> order.getOrderTime().isAfter(start.minusNanos(1))) + .filter(order -> order.getOrderTime().isBefore(end.plusNanos(1))).count(); + vo.setToday((int) today);//今日订单数 + } return vo; } -- Gitblit v1.7.1