From b933c7cdaea1386d50085b1602e4ee2729ac9af2 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 26 May 2025 16:05:14 +0800 Subject: [PATCH] fix(mall): 修复拼团团长详情页面订单信息展示问题- 将 ApiHappyOrderLeaderVo 中的 itemId 字段类型从 String 改为 Long - 在 ApiMallTeamLeaderServiceImpl 中为 apiHappyOrderLeaderVo 设置正确的 itemId值 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java | 135 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 106 insertions(+), 29 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java index d90680a..66e1455 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java @@ -16,6 +16,7 @@ import cc.mrbird.febs.mall.service.IApiMallTeamLeaderService; import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.vo.*; +import cc.mrbird.febs.mall.vo.activity.ApiCheckOrderVo; import cc.mrbird.febs.pay.model.OrderStateDto; import cc.mrbird.febs.pay.service.IXcxPayService; import cc.mrbird.febs.pay.util.WeixinServiceUtil; @@ -660,40 +661,116 @@ } @Override - public FebsResponse happyLeaderList() { - ArrayList<ApiHappyLeaderInfoVo> apiHappyLeaderInfoVos = new ArrayList<>(); + public FebsResponse happyLeaderList(ApiHappyLeaderInfoDto dto) { - List<MallTeamLeader> mallTeamLeaders = this.baseMapper.selectList( - new LambdaQueryWrapper<MallTeamLeader>() - .select( - MallTeamLeader::getId, - MallTeamLeader::getName, - MallTeamLeader::getPhone, - MallTeamLeader::getUniqueCode, - MallTeamLeader::getAddressPic, - MallTeamLeader::getAddressArea, - MallTeamLeader::getDetailAddress, - MallTeamLeader::getLongitude, - MallTeamLeader::getLatitude) - .eq(MallTeamLeader::getState, 1) + // 创建分页对象,传入当前页和每页大小 + Page<ApiHappyLeaderInfoVo> page = new Page<>(dto.getPageNow(), dto.getPageSize()); + // 调用Mapper方法获取活动分页数据 + Page<ApiHappyLeaderInfoVo> mallTeamLeaderPage = this.baseMapper.selectApiLeaderInfoInPage(page, dto); + return new FebsResponse().success().data(mallTeamLeaderPage); + } + + @Override + public FebsResponse checkOrder(ApiHappyOrderLeaderDto dto) { + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + MallMember mallMember = mallMemberMapper.selectById(memberId); + + if(StateUpDownEnum.UP.getCode() != mallMember.getCheckLeader()){ + throw new FebsException("您不是订单核销员!"); + } + + String takeCode = dto.getTakeCode(); + + List<Integer> orderStates = Arrays.asList( + OrderStatusEnum.WAIT_SHIPPING.getValue(), + OrderStatusEnum.WAIT_FINISH.getValue(), + OrderStatusEnum.FINISH.getValue() ); - if(CollUtil.isNotEmpty(mallTeamLeaders)){ - for (MallTeamLeader mallTeamLeader : mallTeamLeaders){ - ApiHappyLeaderInfoVo apiHappyLeaderInfoVo = new ApiHappyLeaderInfoVo(); - apiHappyLeaderInfoVo.setId(mallTeamLeader.getId()); - apiHappyLeaderInfoVo.setName(mallTeamLeader.getName()); - apiHappyLeaderInfoVo.setPhone(mallTeamLeader.getPhone()); - apiHappyLeaderInfoVo.setTakeUniqueCode(mallTeamLeader.getUniqueCode()); - apiHappyLeaderInfoVo.setAddressPic(mallTeamLeader.getAddressPic()); - apiHappyLeaderInfoVo.setAddressArea(mallTeamLeader.getAddressArea()); - apiHappyLeaderInfoVo.setDetailAddress(mallTeamLeader.getDetailAddress()); - apiHappyLeaderInfoVo.setLongitude(mallTeamLeader.getLongitude()); - apiHappyLeaderInfoVo.setLatitude(mallTeamLeader.getLatitude()); - apiHappyLeaderInfoVos.add(apiHappyLeaderInfoVo); + + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectOne( + new LambdaQueryWrapper<MallOrderInfo>() + .eq(MallOrderInfo::getTakeCode, takeCode) + .in(MallOrderInfo::getStatus, orderStates) + .last("limit 1") + ); + + if(mallOrderInfo == null){ + throw new FebsException("自提码不存在!"); + } + + MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(mallOrderInfo.getTakeUniqueCode()); + if(mallTeamLeader==null){ + throw new FebsException("自提点不存在!"); + } + + ArrayList<ApiHappyOrderLeaderVo> apiHappyOrderLeaderVos = new ArrayList<>(); + + List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectList( + new LambdaQueryWrapper<MallOrderItem>() + .eq(MallOrderItem::getOrderId, mallOrderInfo.getId()) + .eq(MallOrderItem::getLeaderState, StateUpDownEnum.DOWN.getCode()) + ); + if(CollUtil.isNotEmpty(mallOrderItems)){ + for(MallOrderItem item : mallOrderItems){ + ApiHappyOrderLeaderVo apiHappyOrderLeaderVo = new ApiHappyOrderLeaderVo(); + apiHappyOrderLeaderVo.setAddressArea(mallTeamLeader.getAddressArea()); + apiHappyOrderLeaderVo.setName(mallTeamLeader.getName()); + apiHappyOrderLeaderVo.setPhone(mallTeamLeader.getPhone()); + apiHappyOrderLeaderVo.setOrderId(mallOrderInfo.getId()); + apiHappyOrderLeaderVo.setOrderState(mallOrderInfo.getStatus()); + apiHappyOrderLeaderVo.setTakeCode(takeCode); + apiHappyOrderLeaderVo.setItemId(item.getId()); + apiHappyOrderLeaderVo.setGoodsName(item.getGoodsName()); + apiHappyOrderLeaderVo.setGoodsSku(item.getSkuName()); + apiHappyOrderLeaderVo.setGoodsCnt(item.getCnt()); + apiHappyOrderLeaderVo.setGoodsPrice(item.getPrice()); + apiHappyOrderLeaderVo.setLeaderState(item.getLeaderState()); + + apiHappyOrderLeaderVos.add(apiHappyOrderLeaderVo); } } - return new FebsResponse().success().data(apiHappyLeaderInfoVos); + return new FebsResponse().success().data(apiHappyOrderLeaderVos); + } + + @Override + public FebsResponse insureOrder(ApiHappyOrderLeaderInsureDto dto) { + + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + MallMember mallMember = mallMemberMapper.selectById(memberId); + + if(StateUpDownEnum.UP.getCode() != mallMember.getCheckLeader()){ + throw new FebsException("您不是订单核销员!"); + } + + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(dto.getOrderId()); + + if(mallOrderInfo == null){ + throw new FebsException("订单不存在!"); + } + + MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(mallOrderInfo.getTakeUniqueCode()); + if(mallTeamLeader==null){ + throw new FebsException("自提点不存在!"); + } + + MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(dto.getItemId()); + if(mallOrderItem==null){ + throw new FebsException("订单不存在!"); + } + + if(mallOrderItem.getLeaderState()==1){ + throw new FebsException("订单已自提!"); + } + + mallOrderItem.setLeaderState(1); + mallOrderItemMapper.updateById(mallOrderItem); + + return new FebsResponse().success().message("操作成功"); } } -- Gitblit v1.9.1