liujie
2023-05-22 9f2315d92cc93f8f431805a10ea9ce3f79fa7eb2
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
package com.stylefeng.guns.modular.system.controller;
 
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stripe.exception.StripeException;
import com.stripe.model.PaymentIntent;
import com.stylefeng.guns.modular.system.model.ReceivableVo;
import com.stylefeng.guns.modular.system.model.TGoods;
import com.stylefeng.guns.modular.system.model.TOrder;
import com.stylefeng.guns.modular.system.model.TPrice;
import com.stylefeng.guns.modular.system.service.ITGoodsService;
import com.stylefeng.guns.modular.system.service.ITOrderService;
import com.stylefeng.guns.modular.system.utils.PaymentProcessor;
import com.stylefeng.guns.modular.system.utils.Server;
import com.stylefeng.guns.modular.system.utils.tips.SuccessTip;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
@Controller
@Api(tags = "用户端-财务信息")
@RequestMapping("/api/tFinance")
public class FinanceController {
 
 
    @Autowired
    private ITOrderService orderService;
 
    @Autowired
    private ITGoodsService goodsService;
 
 
    @ApiOperation(value = "用户端-invocie",notes="用户端-invocie")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "pageNumber", value = "pageNumber", required = true, dataType = "int",paramType = "query"),
            @ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "int",paramType = "query"),
            @ApiImplicitParam(name = "time", value = "时间 (时间 - 时间)", required = false, dataType = "String"),
            @ApiImplicitParam(name = "id", value = "订单id", required = false, dataType = "Long"),
            @ApiImplicitParam(name = "state", value = "状态 1支付完 2未支付完", required = false, dataType = "int"),
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, dataType = "int"),
    })
    @PostMapping(value = "/list")
    @ResponseBody
    public Object list(int pageNumber,int pageSize,String time,Long id,Integer state,int userId) {
        Page<ReceivableVo> receivableVoPage = new Page<>(pageNumber, pageSize);
        List<ReceivableVo> receivable = orderService.getReceivable(receivableVoPage, time, id, state, userId);
        receivableVoPage.setRecords(receivable);
        return new SuccessTip(receivableVoPage);
    }
 
 
    @ApiOperation(value = "用户端-payImmediately",notes="用户端-payImmediately")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, dataType = "int"),
    })
    @PostMapping(value = "/payImmediately")
    @ResponseBody
    public Object payImmediately(int userId) {
        // 找出所有未支付完成的订单
        List<TOrder> orders = orderService.getNoPayOrder(userId);
        BigDecimal all = new BigDecimal(0);
        ArrayList<TGoods> goods = new ArrayList<>();
        for (TOrder order : orders) {
            BigDecimal allTotal = order.getAllTotal();
            BigDecimal paid = order.getPaid();
            BigDecimal subtract = allTotal.subtract(paid);
            all = all.add(subtract);
            TGoods tGoods = goodsService.selectOne(new EntityWrapper<TGoods>().eq("order_id", order.getId()));
            goods.add(tGoods);
        }
 
        HashMap<String, Object> map = new HashMap<>();
        map.put("money",all);
        map.put("data",goods);
 
        return new SuccessTip(map);
    }
 
    @ApiOperation(value = "应收款票据详情",notes="应收款票据详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "number", value = "订单id", required = true, dataType = "Long"),
    })
    @GetMapping(value = "/listOfReceivablesInfo")
    @ResponseBody
    public Object listOfReceivablesInfo(Long number) {
        return new SuccessTip(orderService.listOfReceivablesInfo(number));
    }
 
    @ApiOperation(value = "支付调用",notes="支付调用")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "id", value = "userid", required = true, dataType = "int"),
            @ApiImplicitParam(name = "orderId", value = "orderId", required = true, dataType = "Long"),
    })
    @GetMapping(value = "/payInfo")
    @ResponseBody
    public Object payInfo(int id,Long orderId) throws StripeException {
        PaymentIntent paymentIntent = PaymentProcessor.charge("cus_NvFsNut8zDF9pc", 1L);
 
        Server.aaa();
        return new SuccessTip();
    }
 
 
 
}