From a2ca8c0889a39ebd83195d5d2ebe8e2ed20b16d5 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 06 三月 2024 17:03:56 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0 --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupController.java | 131 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 130 insertions(+), 1 deletions(-) diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupController.java index 620b6f1..150060b 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupController.java @@ -8,21 +8,39 @@ import com.dsh.course.feignClient.communityWorldCup.Model.WorldCup; import com.dsh.course.feignClient.communityWorldCup.Model.WorldCupListAll; import com.dsh.course.feignClient.communityWorldCup.WorldCupStoreClient; +import com.dsh.course.feignClient.communityWorldCup.Model.RegisteredPersonnel; +import com.dsh.course.feignClient.competition.model.Competition; +import com.dsh.course.feignClient.competition.model.CompetitionUser; +import com.dsh.course.feignClient.competition.model.GetPeopleQuery; +import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.service.IStoreService; import com.dsh.guns.modular.system.util.DateUtil; +import com.dsh.guns.modular.system.util.ExcelUtil; +import com.dsh.guns.modular.system.util.QRCodeUtils; import com.dsh.guns.modular.system.util.ResultUtil; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; 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 java.sql.ResultSet; +import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; /** * @author zhibing.pu @@ -92,6 +110,19 @@ List<Map<String, Object>> mapList = storeService.listStoreAllByIds(collect); model.addAttribute("stores", JSON.toJSONString(mapList)); return PREFIX + "worldCup_info.html"; + } + + + /** + * 跳转到已报名人员列表 + * @param model + * @param id + * @return + */ + @RequestMapping("/openRegisteredPersonnel") + public String openRegisteredPersonnel(Model model, Integer id){ + model.addAttribute("id", id); + return PREFIX + "registeredPersonnel.html"; } @@ -197,4 +228,102 @@ worldCupClient.cancelWorldCupRefund(id); return ResultUtil.success(); } + + + /** + * 获取已报名人员列表 + * @param registeredPersonnel + * @return + */ + @ResponseBody + @PostMapping("/registeredPersonnel") + public Object registeredPersonnel(RegisteredPersonnel registeredPersonnel){ + return worldCupClient.getRegisteredPersonnel(registeredPersonnel); + } + + + /** + * 下载二维码压缩包 + * @param registeredPersonnel + * @param response + */ + @ResponseBody + @GetMapping("/downloadQRCodeZip") + public void downloadQRCodeZip(RegisteredPersonnel registeredPersonnel, HttpServletResponse response){ + try { + registeredPersonnel.setOffset(0); + registeredPersonnel.setLimit(10000); + Map<String, Object> maps = worldCupClient.getRegisteredPersonnel(registeredPersonnel); + List<Map<String, Object>> list = (List<Map<String, Object>>)maps.get("rows"); + response.setContentType("APPLICATION/OCTET-STREAM"); + response.setHeader("Content-Disposition","attachment; filename=" + URLEncoder.encode("二维码", "UTF-8") + ".zip"); + ZipOutputStream out = new ZipOutputStream(response.getOutputStream()); + for(Map<String, Object> map : list){ + String id = map.get("id").toString(); + String isStudent = map.get("isStudent").toString(); + String name = map.get("name").toString(); + QRCodeUtils.encode("{\"id\":" + id + ",\"isStudent\":" + isStudent + "}", name, "/usr/playpai/qrcode", false); + File file = new File("/usr/playpai/qrcode/" + name + ".jpg"); + FileInputStream fileInputStream = new FileInputStream(file); + + out.putNextEntry(new ZipEntry(name + ".jpg")); + int len = 0; + byte[] buf = new byte[1024]; + while ((len = fileInputStream.read(buf, 0, 1024)) != -1) { + out.write(buf, 0, len); + } + fileInputStream.close(); + } + out.finish(); + out.close(); + }catch (Exception e){ + e.printStackTrace(); + } + } + + + /** + * 下载已报名人员 + * @param registeredPersonnel + * @param response + */ + @ResponseBody + @GetMapping("/exportPersonnel") + public void exportPersonnel(RegisteredPersonnel registeredPersonnel, HttpServletResponse response){ + try { + Date date = new Date(); + DateFormat format = new SimpleDateFormat("yyyyMMdd"); + String time1 = format.format(date); + String fileName ="已报名人员.xls"; + String[] title = new String[] {"姓名","性别","年龄","联系电话","身份证号","状态"}; + registeredPersonnel.setOffset(0); + registeredPersonnel.setLimit(10000); + Map<String, Object> maps = worldCupClient.getRegisteredPersonnel(registeredPersonnel); + List<Map<String, Object>> list = (List<Map<String, Object>>)maps.get("rows"); + 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("gender").toString(); + values[i][2] = d.get("age").toString(); + values[i][3] = d.get("phone").toString(); + values[i][4] = d.get("idcard").toString(); + Integer state1 = Integer.valueOf(d.get("state").toString()); + if(1 == state1){ + values[i][5] = "正常"; + }else { + values[i][5] = "取消"; + } + } + HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); + ExcelUtil.setResponseHeader(response, fileName); + OutputStream os = response.getOutputStream(); + wb.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } -- Gitblit v1.7.1