xiaoyong931011
2021-09-24 14d0524041e26c34f997db1192e85a4c25d98282
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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(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;
    }
 
    @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();
    }
 
 
}