Administrator
2025-05-26 24ef276642d829c8a0cf0c03d1469f0ced9147da
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,115 @@
    }
    @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.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("操作成功");
    }
}