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.entity.MallExpressInfo;
|
import cc.mrbird.febs.mall.entity.MallOrderInfo;
|
import cc.mrbird.febs.mall.entity.MallOrderItem;
|
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.service.IAdminMallOrderService;
|
import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
|
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<MallOrderInfoMapper, MallOrderInfo> implements IAdminMallOrderService {
|
|
private final MallOrderInfoMapper mallOrderInfoMapper;
|
|
private final MallExpressInfoMapper mallExpressInfoMapper;
|
|
private final MallOrderItemMapper mallOrderItemMapper;
|
|
@Override
|
public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) {
|
Page<AdminMallOrderInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminMallOrderInfoVo> 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<MallOrderItem> 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;
|
}
|
|
|
}
|