xiaoyong931011
2022-09-07 423e9bfb73d7f55156eb4996a13911972b1fb665
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
package cc.mrbird.febs.mall.controller;
 
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
import cc.mrbird.febs.mall.vo.OrderDetailVo;
import cc.mrbird.febs.mall.vo.OrderListVo;
import cc.mrbird.febs.pay.service.IXcxPayService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * @author wzy
 * @date 2021-09-18
 **/
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping(value = "/api/order")
@Api(value = "ApiMallOrderController", tags = "订单接口类")
public class ApiMallOrderController {
 
    private final IApiMallOrderInfoService mallOrderInfoService;
    private final IXcxPayService iXcxPayService;
 
    @ApiOperation(value = "创建订单", notes = "创建订单")
    @PostMapping(value = "/createOrder")
    public FebsResponse createOrder(@RequestBody AddOrderDto addOrderDto) {
        Long orderId = mallOrderInfoService.createOrder(addOrderDto);
 
        return new FebsResponse().success().data(orderId).message("创建订单成功");
    }
 
    @ApiOperation(value = "取消订单", notes = "取消订单")
    @PostMapping(value = "/cancelOrder/{id}")
    public FebsResponse cancelOrder(@PathVariable("id") Long id) {
        mallOrderInfoService.cancelOrder(id);
        return new FebsResponse().success();
    }
 
    @ApiOperation(value = "支付订单", notes = "支付订单")
    @PostMapping(value = "/payOrder")
    public FebsResponse payOrder(@RequestBody PayOrderDto payOrderDto) {
        Map<String, Object> result = mallOrderInfoService.payOrder(payOrderDto);
 
        Map<String, Object> map = new HashMap<>();
        map.put("order", result);
        map.put("type", payOrderDto.getType());
        return new FebsResponse().success().data(map).message("支付成功");
    }
 
    @ApiOperation(value = "订单列表", notes = "订单列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = OrderListVo.class)
    })
    @PostMapping(value = "/orderList")
    public FebsResponse orderList(@RequestBody OrderListDto orderListDto) {
        return new FebsResponse().success().data(mallOrderInfoService.findOrderList(orderListDto));
    }
 
    @ApiOperation(value = "订单详情", notes = "订单详情")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = OrderDetailVo.class)
    })
    @GetMapping(value = "/orderDetails/{id}")
    public FebsResponse orderDetails(@PathVariable("id") Long id) {
        return new FebsResponse().success().data(mallOrderInfoService.findOrderDetailsById(id));
    }
 
    @ApiOperation(value = "确认收货", notes = "确认收货")
    @PostMapping(value = "/confirm/{id}")
    public FebsResponse confirm(@PathVariable("id") Long id) {
        mallOrderInfoService.confirmOrder(id);
        return new FebsResponse().success().message("确认成功");
    }
 
    @ApiOperation(value = "删除订单", notes = "删除订单")
    @PostMapping(value = "/delOrder/{id}")
    public FebsResponse delOrder(@PathVariable("id") Long id) {
        mallOrderInfoService.delOrder(id);
        return new FebsResponse().success().message("删除成功");
    }
 
    @ApiOperation(value = "用户退款", notes = "用户退款")
    @PostMapping(value = "/refundOrder/{id}")
    public FebsResponse refundOrder(@PathVariable("id") Long id) {
        return mallOrderInfoService.refundOrder(id);
    }
 
    @ApiOperation(value = "用户退款--提交退款申请", notes = "用户退款--提交退款申请")
    @PostMapping(value = "/applyRefundOrder")
    public FebsResponse applyRefundOrder(@RequestBody ApplyRefundOrderDto applyRefundOrderDto) {
        return mallOrderInfoService.applyRefundOrder(applyRefundOrderDto);
    }
 
    @ApiOperation(value = "用户退款--取消退款申请", notes = "用户退款--取消退款申请")
    @PostMapping(value = "/cancelRefundOrder/{id}")
    public FebsResponse cancelRefundOrder(@PathVariable("id") Long id) {
        return mallOrderInfoService.cancelRefundOrder(id);
    }
 
    @ApiOperation(value = "提交退款申请", notes = "提交退款申请")
    @PostMapping(value = "/applyRefund")
    public FebsResponse applyRefund(@RequestBody AddRefundDto addRefundDto) {
        mallOrderInfoService.applyRefund(addRefundDto);
        return new FebsResponse().success().message("提交成功");
    }
 
    @ApiOperation(value = "提交退款物流信息", notes = "提交退款物流信息")
    @PostMapping(value = "/refundExpress")
    public FebsResponse refundExpress(@RequestBody RefundExpressDto refundExpressDto) {
        mallOrderInfoService.refundExpress(refundExpressDto);
        return new FebsResponse().success().message("提交成功");
    }
 
    @ApiOperation(value = "评价", notes = "评价")
    @PostMapping(value = "/goodsComment")
    public FebsResponse goodsComment(@RequestBody ApiAddCommentDtos addCommentDtos) {
        mallOrderInfoService.goodsComment(addCommentDtos);
        return new FebsResponse().success().message("评价成功");
    }
 
    @ApiOperation(value = "获取微信订阅TemplateId")
    @GetMapping(value = "/getTemplateId")
    public FebsResponse getTemplateId() {
        return new FebsResponse().success().data(iXcxPayService.getTemplateId());
    }
 
}