puzhibing
2023-03-15 79962435853baf5a28e08461f46a831fffa1a4b0
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
package com.stylefeng.guns.modular.api;
 
import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.CouponWarpper;
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.web.bind.annotation.*;
import sun.security.provider.MD5;
 
import javax.servlet.http.HttpServletRequest;
import java.util.Base64;
import java.util.List;
import java.util.Map;
 
/**
 * 优惠券控制器
 */
@Api
@RestController
@RequestMapping("")
public class CouponController {
 
    @Autowired
    private IUserCouponRecordService userCouponRecordService;
 
    @Autowired
    private IUserInfoService userInfoService;
 
 
    /**
     * 获取个人优惠券列表
     * @param state
     * @param pageNum
     * @param size
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/api/coupon/queryMyCoupons")
    @ApiOperation(value = "获取个人优惠券列表", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "优惠券状态(1=未使用,2=已使用)", name = "state", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<CouponWarpper>> queryMyCoupons(Integer state, Integer pageNum, Integer size, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
               return ResultUtil.tokenErr();
            }
            List<Map<String, Object>> list = userCouponRecordService.queryMyCoupons(state, pageNum, size, uid);
            return ResultUtil.success(CouponWarpper.getCouponWarppers(list));
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
 
 
    @ResponseBody
    @PostMapping("/base/coupon/queryUserCoupons")
    @ApiOperation(value = "获取用户优惠券列表", tags = {"道行龙城"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "用户id", name = "userId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "优惠券状态(1=未使用,2=已使用)", name = "state", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页码(首页1)", name = "pageNo", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"),
            @ApiImplicitParam(value = "签名", name = "sign", required = true, dataType = "string"),
    })
    public ResultUtil<List<CouponWarpper>> queryUserCoupons(@RequestParam Integer userId, @RequestParam Integer state, @RequestParam Integer pageNo,
                                                            @RequestParam Integer pageSize, @RequestParam String sign){
        try {
            List<Map<String, Object>> list = userCouponRecordService.queryMyCoupons(state, pageNo, pageSize, userId);
            return ResultUtil.success(CouponWarpper.getCouponWarppers(list));
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
 
 
 
 
    /**
     * 删除优惠券
     * @param id
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/api/coupon/delMyCoupon")
    @ApiOperation(value = "删除优惠券", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "优惠券id", name = "id", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil delMyCoupon(Integer id, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            return userCouponRecordService.delMyCoupon(id, uid);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
 
 
    /**
     * 赠送优惠券
     * @param id
     * @param userId
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/api/coupon/handselCoupon")
    @ApiOperation(value = "赠送优惠券", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "优惠券id", name = "id", required = true, dataType = "int"),
            @ApiImplicitParam(value = "赠送用户id", name = "userId", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil handselCoupon(Integer id, Integer userId, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            return userCouponRecordService.handselCoupon(id, uid, userId);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
}