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;
@@ -26,6 +27,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -658,4 +660,117 @@
        return new FebsResponse().success().data(apiLeaderInfoVo);
    }
    @Override
    public FebsResponse happyLeaderList(ApiHappyLeaderInfoDto dto) {
        // 创建分页对象,传入当前页和每页大小
        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()
        );
        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(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("操作成功");
    }
}