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.*;
|
import cc.mrbird.febs.mall.mapper.*;
|
import cc.mrbird.febs.mall.service.IAdminMallOrderService;
|
import cc.mrbird.febs.mall.vo.*;
|
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;
|
|
private final MallOrderRefundMapper mallOrderRefundMapper;
|
|
private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper;
|
|
@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(mallOrderInfo.getMemberId());
|
mallExpressInfo.setOrderId(mallOrderInfo.getId());
|
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;
|
}
|
|
@Override
|
public IPage<AdminMallOrderRefundVo> getRefundListInPage(MallOrderRefundDto mallOrderRefundDto, QueryRequest request) {
|
Page<AdminMallOrderRefundVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminMallOrderRefundVo> adminMallOrderRefundVos = mallOrderRefundMapper.selectRefundListInPage(page, mallOrderRefundDto);
|
return adminMallOrderRefundVos;
|
}
|
|
@Override
|
public IPage<AdminMallOrderRefundOperationVo> seeRefund(QueryRequest request, MallOrderRefund mallOrderRefund) {
|
Page<AdminMallOrderRefundOperationVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminMallOrderRefundOperationVo> adminMallOrderRefundOperationVos = mallOrderRefundOperationMapper.selectRefundOperationInPage(page, mallOrderRefund);
|
return adminMallOrderRefundOperationVos;
|
}
|
|
@Override
|
public FebsResponse agreeRefund(Long id) {
|
MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
|
if(ObjectUtil.isEmpty(mallOrderRefund)){
|
return new FebsResponse().fail().message("系统繁忙,请刷新重试");
|
}
|
mallOrderRefund.setStatus(2);
|
mallOrderRefundMapper.updateById(mallOrderRefund);
|
|
MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
|
mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
|
mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
|
mallOrderRefundOperation.setContent("已同意退款申请");
|
mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
|
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public FebsResponse disagreeRefund(Long id) {
|
MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
|
if(ObjectUtil.isEmpty(mallOrderRefund)){
|
return new FebsResponse().fail().message("系统繁忙,请刷新重试");
|
}
|
mallOrderRefund.setStatus(3);
|
mallOrderRefundMapper.updateById(mallOrderRefund);
|
|
MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
|
mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
|
mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
|
mallOrderRefundOperation.setContent("不同意退款申请");
|
mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
|
|
return new FebsResponse().success();
|
}
|
|
|
}
|