From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 08 五月 2025 09:21:57 +0800 Subject: [PATCH] bug修改 --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupController.java | 153 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 149 insertions(+), 4 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..8a5a69f 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 @@ -95,6 +113,19 @@ } + /** + * 跳转到已报名人员列表 + * @param model + * @param id + * @return + */ + @RequestMapping("/openRegisteredPersonnel") + public String openRegisteredPersonnel(Model model, Integer id){ + model.addAttribute("id", id); + return PREFIX + "registeredPersonnel.html"; + } + + /** * 跳转到门店选择页面 @@ -130,7 +161,11 @@ @ResponseBody @PostMapping("/addWorldCup") public ResultUtil addWorldCup(WorldCup worldCup, String stores){ - worldCup.setStatus(1); + if(worldCup.getStartTime().before(new Date())){ + worldCup.setStatus(2); + }else{ + worldCup.setStatus(1); + } worldCup.setCreateTime(new Date()); worldCup.setMatchNumber(0); Integer integer = worldCupClient.addWorldCup(worldCup); @@ -164,7 +199,17 @@ if(worldCup1.getStartTime().before(DateUtil.getDate())){ return ResultUtil.error("赛事已开始,不能编辑"); } - worldCupClient.editWorldCup(worldCup); + Integer maxPeople = worldCup1.getMaxPeople(); + int registeredNumber = worldCupClient.getRegisteredNumber(worldCup.getId()); + if(maxPeople.compareTo(registeredNumber) < 0){ + return ResultUtil.error("报名人数不能小于已报名人数"); + } + if(worldCup.getStartTime().before(new Date())){ + worldCup.setStatus(2); + }else{ + worldCup.setStatus(1); + } + worldCupClient.editWorldCup(JSON.toJSONString(worldCup)); worldCupStoreClient.delWorldCupStore(worldCup.getId()); JSONArray jsonArray = JSON.parseArray(stores); for (int i = 0; i < jsonArray.size(); i++) { @@ -192,9 +237,109 @@ WorldCup worldCup = new WorldCup(); worldCup.setId(id); worldCup.setStatus(state); - worldCupClient.editWorldCup(worldCup); + worldCupClient.editWorldCup(JSON.toJSONString(worldCup)); //开始处理已支付的退费 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()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + for(Map<String, Object> map : list){ + String id = map.get("id").toString(); + String isStudent = map.get("isStudent").toString(); + String name = map.get("name").toString() + sdf.format(new Date()); + String content = "{\"id\":" + id + ",\"isStudent\":" + isStudent + "}"; + QRCodeUtils.encode(content, 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