doum
5 天以前 275b6c4986343c3e4230e1ad28ce9548b017d584
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
package com.doumee.api.web;
 
import com.doumee.api.BaseController;
import com.doumee.core.model.ApiResponse;
import com.allinpay.syb.model.PayOrderParam;
import com.allinpay.syb.model.PayOrderResponse;
import com.doumee.dao.business.model.Orders;
import com.doumee.service.business.OrdersService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URLDecoder;
 
/**
 * 订单记录表信息表Controller定义
 * @author doumee
 * @date 2026-02-02 11:10:42
 */
@Api(tags = "订单信息接口")
@RestController
@Slf4j
@RequestMapping("/web/orders")
public class WebOrdersController extends BaseController {
    @Autowired
    private OrdersService ordersService;
    @ApiOperation("订单新建")
    @PostMapping("/create")
    public ApiResponse<PayOrderResponse> createOrder(@RequestBody Orders orders, RedirectAttributes redirectAttributes) {
        PayOrderResponse result =   ordersService.createPay(orders);
        return  ApiResponse.success(result);
    }
    @ApiOperation("订单支付结果页")
    @GetMapping("/returnPage")
    public void returnPage(@ModelAttribute PayOrderParam param, HttpServletResponse response)throws IOException  {
        ordersService.returnPage(param,response);
    }
    @ApiOperation("订单支付结果异步通知")
    @PostMapping(value = "/notity", consumes = "application/x-www-form-urlencoded")
    public void notify  (HttpServletRequest request,   HttpServletResponse response) throws IOException {
        log.error ("接收到支付通知");
        try {
            request.setCharacterEncoding("UTF-8");//通知传输的编码为GBK
            StringBuilder stringBuilder = new StringBuilder();
            String line;
            ServletInputStream inputStream = request.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line);
            }
            String body = stringBuilder.toString();
            ordersService.dealOrdreResult(URLDecoder.decode(body, "UTF-8"),response);
        }catch (Exception e){
            e.printStackTrace();
        }
 
    }
 
 
    @ApiOperation("根据ID查询")
    @GetMapping("detail")
    public ApiResponse findById(@RequestParam Integer id) {
        return ApiResponse.success(ordersService.findById(id));
    }
}