package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.mall.dto.DeliverGoodsDto; import cc.mrbird.febs.mall.dto.MallOrderInfoDto; import cc.mrbird.febs.mall.dto.MallOrderRefundDto; import cc.mrbird.febs.mall.entity.MallExpressInfo; import cc.mrbird.febs.mall.entity.MallOrderInfo; import cc.mrbird.febs.mall.entity.MallOrderItem; import cc.mrbird.febs.mall.entity.MallOrderRefund; import cc.mrbird.febs.mall.mapper.MallExpressInfoMapper; import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; import cc.mrbird.febs.mall.mapper.MallOrderItemMapper; import cc.mrbird.febs.mall.mapper.MallOrderRefundMapper; import cc.mrbird.febs.mall.service.IAdminMallOrderService; import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo; import cc.mrbird.febs.mall.vo.AdminMallOrderRefundVo; import cc.mrbird.febs.mall.vo.AdminMallOrderVo; import cc.mrbird.febs.mall.vo.AdminOrderDetailVo; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class AdminMallOrderService extends ServiceImpl implements IAdminMallOrderService { private final MallOrderInfoMapper mallOrderInfoMapper; private final MallExpressInfoMapper mallExpressInfoMapper; private final MallOrderItemMapper mallOrderItemMapper; private final MallOrderRefundMapper mallOrderRefundMapper; @Override public IPage getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage adminMallOrderInfoVos = this.baseMapper.selectOrderListInPage(page, mallOrderInfo); return adminMallOrderInfoVos; } @Override public AdminMallOrderVo getMallOrderInfoById(long id) { return this.baseMapper.getMallOrderInfoById(id); } @Override public FebsResponse deliverGoods(DeliverGoodsDto deliverGoodsDto) { MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(deliverGoodsDto.getId()); if(ObjectUtil.isEmpty(mallOrderInfo)){ return new FebsResponse().fail().message("订单不存在,刷新后重试"); } Integer status = mallOrderInfo.getStatus(); if(2 != status){ return new FebsResponse().fail().message("订单不是待发货状态"); } String expressNo = deliverGoodsDto.getExpressNo(); if(StrUtil.isEmpty(expressNo)){ return new FebsResponse().fail().message("请输入物流单号"); } String expressCom = deliverGoodsDto.getExpressCom(); if(StrUtil.isEmpty(expressCom)){ return new FebsResponse().fail().message("请输入物流公司"); } MallExpressInfo mallExpressInfo = new MallExpressInfo(); mallExpressInfo.setMemberId(mallExpressInfo.getMemberId()); mallExpressInfo.setExpressNo(expressNo); mallExpressInfo.setExpressCom(expressCom); mallExpressInfoMapper.insert(mallExpressInfo); mallOrderInfo.setStatus(3); mallOrderInfoMapper.updateById(mallOrderInfo); return new FebsResponse().success(); } @Override public AdminOrderDetailVo getMallOrderDetailById(long id) { AdminOrderDetailVo adminOrderDetailVo = mallOrderInfoMapper.getMallOrderDetailById(id); MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectByOrderId(id); if(ObjectUtil.isNotEmpty(mallExpressInfo)){ adminOrderDetailVo.setExpressNo(mallExpressInfo.getExpressNo()); adminOrderDetailVo.setExpressCom(mallExpressInfo.getExpressCom()); } List mallOrderItems = mallOrderInfoMapper.getMallOrderItemByOrderId(id); if(CollUtil.isNotEmpty(mallOrderItems)){ StringBuffer orderItems = new StringBuffer(); for (MallOrderItem item : mallOrderItems){ StringBuffer orderItem = new StringBuffer(); orderItems.append(item.getGoodsName()+"-"+item.getCnt()+"*"+item.getPrice()+"-合计"+item.getAmount()+"; \n "); orderItems.append(orderItem); } adminOrderDetailVo.setOrderItems(orderItems.toString()); } return adminOrderDetailVo; } @Override public IPage getRefundListInPage(MallOrderRefundDto mallOrderRefundDto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage adminMallOrderRefundVos = mallOrderRefundMapper.selectRefundListInPage(page, mallOrderRefundDto); return adminMallOrderRefundVos; } }