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