无关风月
2025-04-12 3c8dc107047c0b5ee407fa36ca2ce06090f75929
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
package com.dsh.guns.modular.system.controller.code;
 
import com.dsh.course.feignClient.communityWorldCup.Model.*;
import com.dsh.course.feignClient.communityWorldCup.WorldCupClient;
import com.dsh.guns.modular.system.util.ExcelUtil;
import com.dsh.guns.modular.system.util.ResultUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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 javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
 
/**
 * @author zhibing.pu
 * @Date 2024/3/6 15:49
 */
@Controller
@RequestMapping("/worldCupRecords")
public class WorldCupRecordsController {
 
    private String PREFIX = "/system/worldCupRecords/";
 
    @Resource
    private WorldCupClient worldCupClient;
 
 
    @RequestMapping("")
    public String openWorldCupRecords(){
        return PREFIX + "worldCupRecords.html";
    }
 
 
    @RequestMapping("/openWorldCupGameStatisticsInfo")
    public String openWorldCupGameStatisticsInfo(Model model, Integer id){
        model.addAttribute("id", id);
        return PREFIX + "worldCupGameStatisticsInfo.html";
    }
 
 
    @RequestMapping("/openWorldCupGameStatisticsListInfo")
    public String openWorldCupGameStatisticsListInfo(Model model, Long participantId, Integer participantType){
        model.addAttribute("participantId", participantId);
        model.addAttribute("participantType", participantType);
        return PREFIX + "worldCupGameStatisticsListInfo.html";
    }
 
 
    @RequestMapping("/openUserGameRecord")
    public String openUserGameRecord(){
        return PREFIX + "userGameRecord.html";
    }
 
 
 
 
 
    /**
     * 获取排行榜列表数据
     * @param worldCupRecords
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCupRecordsList")
    public Map<String, Object> worldCupRecordsList(WorldCupRecords worldCupRecords){
        return worldCupClient.worldCupRecordsList(worldCupRecords);
    }
 
 
    /**
     * 获取比赛统计
     * @param worldCupGameStatistics
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCupGameStatistics")
    public Map<String, Object> worldCupGameStatistics(WorldCupGameStatistics worldCupGameStatistics){
        return worldCupClient.worldCupGameStatistics(worldCupGameStatistics);
    }
 
 
    /**
     * 获取比赛统计详情列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCupGameStatisticsInfoList")
    public Map<String, Object> worldCupGameStatisticsInfoList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList){
        return worldCupClient.worldCupGameStatisticsInfoList(worldCupGameStatisticsInfoList);
    }
 
 
    /**
     * 获取单场参赛数据详情列表
     * @param worldCupGameStatisticsListInfo
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCupGameStatisticsListInfo")
    public Map<String, Object> worldCupGameStatisticsListInfo(WorldCupGameStatisticsListInfo worldCupGameStatisticsListInfo){
        return worldCupClient.worldCupGameStatisticsListInfo(worldCupGameStatisticsListInfo);
    }
 
 
    /**
     * 修改比分
     * @param changeScore
     * @return
     */
    @ResponseBody
    @PostMapping("/changeScore")
    public ResultUtil changeScore(ChangeScore changeScore){
        worldCupClient.changeScore(changeScore);
        return ResultUtil.success();
    }
 
 
    /**
     * 导出用户统计列表
     * @param worldCupGameStatisticsInfoList
     * @param response
     */
    @ResponseBody
    @GetMapping("/exportUserStatistics")
    public void exportUserStatistics(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList, HttpServletResponse response){
        worldCupGameStatisticsInfoList.setOffset(0);
        worldCupGameStatisticsInfoList.setLimit(100000);
        Map<String, Object> map = worldCupClient.getUserGameRecordList(worldCupGameStatisticsInfoList);
        List<Map<String, Object>> list = (List<Map<String, Object>>)map.get("rows");
 
        try {
            Date date = new Date();
            DateFormat format = new SimpleDateFormat("yyyyMMdd");
            String time1 = format.format(date);
            String fileName ="用户统计.xls";
            String[] title = new String[] {"用户姓名","联系电话","身份证号","已比赛场次","胜-负场次","胜率"};
            String[][] values = new String[list.size()][];
            for (int i = 0; i < list.size(); i++) {
                Map<String, Object> d = list.get(i);
                values[i] = new String[title.length];
                values[i][0] = d.get("name").toString();
                values[i][1] = d.get("phone").toString();
                values[i][2] = null == d.get("idcard") ? "" : d.get("idcard").toString();
                values[i][3] = d.get("totalSession").toString();
                values[i][4] = d.get("win").toString() + "-" + d.get("lose").toString();
                values[i][5] = d.get("winRate").toString() + "%";
            }
            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(time1, title, values, null);
            ExcelUtil.setResponseHeader(response, fileName);
            OutputStream os = response.getOutputStream();
            wb.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
 
 
    /**
     * 获取用户比赛列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    @ResponseBody
    @PostMapping("/getUserGameRecordList")
    public Object getUserGameRecordList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList){
        return worldCupClient.getUserGameRecordList(worldCupGameStatisticsInfoList);
    }
 
 
 
    /**
     * 获取用户比赛记录
     * @param userGameRecordList
     * @return
     */
    @ResponseBody
    @PostMapping("/userGameRecordList")
    public Object userGameRecordList(UserGameRecordList userGameRecordList){
        return worldCupClient.userGameRecordList(userGameRecordList);
    }
 
 
    /**
     * 导出用户比赛记录
     * @param userGameRecordList
     * @param response
     */
    @ResponseBody
    @GetMapping("/exportUserGameRecord")
    public void exportUserGameRecord(UserGameRecordList userGameRecordList, HttpServletResponse response){
        userGameRecordList.setOffset(0);
        userGameRecordList.setLimit(100000);
        Map<String, Object> map = worldCupClient.userGameRecordList(userGameRecordList);
        List<Map<String, Object>> list = (List<Map<String, Object>>)map.get("rows");
 
        try {
            Date date = new Date();
            DateFormat format = new SimpleDateFormat("yyyyMMdd");
            String time1 = format.format(date);
            String fileName ="比赛记录.xls";
            String[] title = new String[] {"用户姓名","参与比赛","比赛时间","比分","结果"};
            String[][] values = new String[list.size()][];
            for (int i = 0; i < list.size(); i++) {
                Map<String, Object> d = list.get(i);
                values[i] = new String[title.length];
                values[i][0] = d.get("userName").toString();
                values[i][1] = d.get("name").toString();
                values[i][2] = d.get("startTime").toString();
                values[i][3] = d.get("score").toString();
                values[i][4] = d.get("matchResult").toString();
            }
            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(time1, title, values, null);
            ExcelUtil.setResponseHeader(response, fileName);
            OutputStream os = response.getOutputStream();
            wb.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}