admin
2021-04-13 5300c070d95f9f3d6222b149e8431e77e9337637
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
package com.yeshi.buwan.controller.admin.api;
 
import com.google.gson.*;
import com.yeshi.buwan.domain.user.LoginUser;
import com.yeshi.buwan.domain.vip.UserVIPInfo;
import com.yeshi.buwan.domain.vip.OrderRecord;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.service.inter.order.OrderService;
import com.yeshi.buwan.service.inter.vip.VIPService;
import com.yeshi.buwan.util.Constant;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.vo.vip.UserVIPInfoVO;
import com.yeshi.buwan.web.tag.PageEntity;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.yeshi.utils.JsonUtil;
 
import javax.annotation.Resource;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
@Controller
@RequestMapping("admin/new/api/vip")
public class VipAdminController {
 
    @Resource
    private VIPService vipService;
 
    @Resource
    private OrderService orderService;
 
    @Resource
    private LoginUserService loginUserService;
 
    private Gson getGson() {
 
        Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
            @Override
            public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
                if (value == null) {
                    return new JsonPrimitive("");
                } else {
                    return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm"));
                }
            }
        }).create();
 
        return gson;
    }
 
 
    @ResponseBody
    @RequestMapping(value = "/vipUserList", method = RequestMethod.POST)
    public void vipUserList(Boolean vip, String uid, int page, PrintWriter out) {
        Date minDate = null;
        Date maxDate = null;
        if (vip != null) {
            if (vip) {
                minDate = new Date(System.currentTimeMillis() + 1000 * 60 * 5);
            } else {
                minDate = new Date(0L);
                maxDate = new Date();
            }
        }
        List<UserVIPInfo> list = new ArrayList<>();
        long count = 0;
        if (!StringUtil.isNullOrEmpty(uid)) {
            UserVIPInfo vipInfo = vipService.getVIPInfo(uid);
            if (vipInfo != null) {
                list.add(vipInfo);
                count = 1;
            }
        } else {
            list = vipService.listVIPUser(minDate, maxDate, page, Constant.pageCount);
            count = vipService.countVIPUser(minDate, maxDate);
        }
 
        List<UserVIPInfoVO> voList = new ArrayList<>();
        for (UserVIPInfo vipInfo : list) {
            UserVIPInfoVO vo = new UserVIPInfoVO();
            vo.setCreateTime(vipInfo.getCreateTime());
            vo.setExpireDate(vipInfo.getExpireDate());
            vo.setUpdateTime(vipInfo.getUpdateTime());
            LoginUser loginUser = loginUserService.getLoginUser(vipInfo.getUid());
            vo.setUser(loginUser);
            voList.add(vo);
        }
 
 
        JSONObject data = new JSONObject();
        data.put("pageEntity", new PageEntity(page, Constant.pageCount, (int) count));
        data.put("list", getGson().toJson(voList));
        out.print(JsonUtil.loadTrueResult(data));
    }
 
 
    @ResponseBody
    @RequestMapping(value = "/vipOrderList", method = RequestMethod.POST)
    public void vipOrderList(Boolean pay, String uid, int page, PrintWriter out) {
        if (StringUtil.isNullOrEmpty(uid)) {
            uid = null;
        }
        Integer state = null;
        if (pay != null) {
            if (pay) {
                state = OrderRecord.STATE_PAY;
            } else {
                state = OrderRecord.STATE_NOT_PAY;
            }
        }
 
        List<OrderRecord> list = orderService.listOrderRecord(uid,null, state, page, Constant.pageCount);
        long count = orderService.countOrderRecord(uid,null, state);
        JSONObject data = new JSONObject();
        data.put("pageEntity", new PageEntity(page, Constant.pageCount, (int) count));
        data.put("list", getGson().toJson(list));
        out.print(JsonUtil.loadTrueResult(data));
    }
 
 
}