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 worldCupRecordsList(WorldCupRecords worldCupRecords){ return worldCupClient.worldCupRecordsList(worldCupRecords); } /** * 获取比赛统计 * @param worldCupGameStatistics * @return */ @ResponseBody @PostMapping("/worldCupGameStatistics") public Map worldCupGameStatistics(WorldCupGameStatistics worldCupGameStatistics){ return worldCupClient.worldCupGameStatistics(worldCupGameStatistics); } /** * 获取比赛统计详情列表 * @param worldCupGameStatisticsInfoList * @return */ @ResponseBody @PostMapping("/worldCupGameStatisticsInfoList") public Map worldCupGameStatisticsInfoList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList){ return worldCupClient.worldCupGameStatisticsInfoList(worldCupGameStatisticsInfoList); } /** * 获取单场参赛数据详情列表 * @param worldCupGameStatisticsListInfo * @return */ @ResponseBody @PostMapping("/worldCupGameStatisticsListInfo") public Map 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 map = worldCupClient.getUserGameRecordList(worldCupGameStatisticsInfoList); List> list = (List>)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 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 map = worldCupClient.userGameRecordList(userGameRecordList); List> list = (List>)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 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(); } } }