From 696daad0798c29631ccda2d98ca52eedcbf2fcb4 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期一, 21 九月 2026 20:57:27 +0800
Subject: [PATCH] bug:登录问题

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java |  194 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 133 insertions(+), 61 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
index 8e9c16b..994d965 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -24,22 +24,23 @@
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.WebDataBinder;
 import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.InitBinder;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import sun.rmi.runtime.Log;
 
+import javax.jws.soap.SOAPBinding;
 import javax.servlet.http.HttpServletResponse;
 import java.io.OutputStream;
+import java.beans.PropertyEditorSupport;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -64,7 +65,50 @@
     private ICityService cityService;
 
     /**
-     * 导出赛事已报名用户列表
+     * 兼容活动表单提交的日期时间格式。
+     *
+     * @param binder Spring Web 数据绑定器
+     */
+    @InitBinder
+    public void initCompetitionDateBinder(WebDataBinder binder) {
+        binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
+            @Override
+            public void setAsText(String text) throws IllegalArgumentException {
+                if (ToolUtil.isEmpty(text)) {
+                    setValue(null);
+                    return;
+                }
+                Date parsedDate = parseCompetitionDate(text);
+                if (parsedDate == null) {
+                    throw new IllegalArgumentException("日期格式应为yyyy-MM-dd HH:mm或yyyy-MM-dd");
+                }
+                setValue(parsedDate);
+            }
+        });
+    }
+
+    /**
+     * 将活动表单日期文本解析为日期对象。
+     *
+     * @param value 日期文本
+     * @return 解析后的日期;格式不匹配时返回 {@code null}
+     */
+    private Date parseCompetitionDate(String value) {
+        String[] patterns = {"yyyy-MM-dd HH:mm", "yyyy-MM-dd"};
+        for (String pattern : patterns) {
+            try {
+                SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
+                dateFormat.setLenient(false);
+                return dateFormat.parse(value);
+            } catch (ParseException ignored) {
+                // 尝试下一个约定格式。
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 导出活动已报名用户列表
      */
 
     @RequestMapping(value = "/export")
@@ -77,11 +121,15 @@
             DateFormat format = new SimpleDateFormat("yyyyMMdd");
             String time1 = format.format(date);
             String fileName =name+"报名信息.xls";
-            String[] title = new String[] {"姓名","性别","联系电话","身份证号","状态"};
+            String[] title = new String[] {"姓名","性别","注册电话","联系电话","身份证号","状态"};
             GetPeopleQuery query = new GetPeopleQuery();
             query.setId(id);
             query.setState(state);
-            List<CompetitionUser> list = competitionClient.getPeoples(query);
+            // todo 临时处理 因为只能更新后台
+            Page<CompetitionUser> page = competitionClient.getPeopleFromId1(new GetPeopleQuery(999, 0, id, state));
+            List<CompetitionUser> list = page.getRecords();
+//            List<CompetitionUser> list = competitionClient.getPeoples(query);
+            System.err.println("导出查询人员列表"+ list);
             String[][] values = new String[list.size()][];
             for (int i = 0; i < list.size(); i++) {
                 CompetitionUser d = list.get(i);
@@ -97,15 +145,17 @@
                 }else {
                     values[i][1] = "未知";
                 }
-                values[i][2] = d.getPhone();
-                values[i][3] = d.getIdCard();
+                values[i][2] = d.getRegisterPhone();
+
+                values[i][3] = d.getPhone();
+                values[i][4] = d.getIdCard();
                 Integer state1 = d.getState();
                 if(1 == state1){
-                    values[i][4] = "正常";
+                    values[i][5] = "正常";
                 }else if(2 == state1){
-                    values[i][4] = "冻结";
+                    values[i][5] = "正常";
                 }else {
-                    values[i][4] = "删除";
+                    values[i][5] = "已取消";
                 }
             }
             HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null);
@@ -141,7 +191,6 @@
     @RequestMapping("/tCompetition_add")
     public String tCompetitionAdd(Model model) {
         List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        model.addAttribute("list",list);
 
         List<TOperator> list1 = tOperatorService.list();
         model.addAttribute("yysList",list1);
@@ -154,13 +203,12 @@
             // 查询这个运营商管理的省
             TOperator id = tOperatorService.getOne(new QueryWrapper<TOperator>().eq("id", UserExt.getUser().getObjectId()));
             if (id.getType()==1){
-                // 全国
-                List<TCity> list3 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-                model.addAttribute("province",list3);
+
             }else{
                 // 找到他管理的省
                 List<TOperatorCity> list4 = operatorCityService.list(new QueryWrapper<TOperatorCity>().eq("operatorId", UserExt.getUser().getObjectId()).eq("pid", 0));
-                model.addAttribute("province",list4);
+                List<Integer> collect = list4.stream().map(TOperatorCity::getCode).collect(Collectors.toList());
+                 list = cityService.list(new LambdaQueryWrapper<TCity>().in(TCity::getCode, collect));
             }
             model.addAttribute("operator",objectId);
             // 查询当前运营商管理了哪些门店
@@ -174,6 +222,8 @@
         if (UserExt.getUser().getObjectType()==3) model.addAttribute("operator",byId.getOperatorId());
         List<TOperator> list2 = tOperatorService.list();
         model.addAttribute("yysList",list2);
+        model.addAttribute("list",list);
+
         return PREFIX + "TCompetition_add.html";
     }
 
@@ -208,10 +258,39 @@
         model.addAttribute("storeIds",integers);
 
         List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+
         TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode()));
         List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
 
         List<TStore> list2 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode,competition.getCityCode()));
+        if (UserExt.getUser().getObjectType()==2){
+            // 查询这个运营商管理的省
+            TOperator id1 = tOperatorService.getOne(new QueryWrapper<TOperator>().eq("id", UserExt.getUser().getObjectId()));
+            if (id1.getType()==1){
+
+            }else{
+                // 找到他管理的省
+                List<TOperatorCity> list4 = operatorCityService.list(new QueryWrapper<TOperatorCity>().eq("operatorId", UserExt.getUser().getObjectId()).eq("pid", 0));
+                List<Integer> collect = list4.stream().map(TOperatorCity::getCode).collect(Collectors.toList());
+                list = cityService.list(new LambdaQueryWrapper<TCity>().in(TCity::getCode, collect));
+                // 找到他管理的市
+                TOperatorCity one1 = operatorCityService.lambdaQuery().eq(TOperatorCity::getCode, competition.getProvinceCode())
+                        .eq(TOperatorCity::getOperatorId, UserExt.getUser().getObjectId()).one();
+
+                List<TOperatorCity> list3 = operatorCityService.lambdaQuery().eq(TOperatorCity::getPid, one1.getId())
+                        .eq(TOperatorCity::getOperatorId, UserExt.getUser().getObjectId()).list();
+                if (list3.isEmpty()){
+                    // 管理整个市区
+                }else{
+                    List<Integer> collect1 = list3.stream().map(TOperatorCity::getCode).collect(Collectors.toList());
+                    list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())
+                            .in(TCity::getCode, collect1));
+                }
+
+            }
+            list2 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode,competition.getCityCode())
+                    .eq(TStore::getOperatorId,UserExt.getUser().getObjectId()));
+        }
         model.addAttribute("list",list);
         model.addAttribute("list1",list1);
         model.addAttribute("list2",list2);
@@ -285,41 +364,24 @@
         ListQuery listQuery = new ListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,eventName,time,state,registerCondition,ids,UserExt.getUser().getObjectType());
         Page<Competition> competitions = competitionClient.list(listQuery);
         List<Competition> records = new ArrayList<>();
-//        for (Competition competition : competitions.getRecords()) {
-////            if (competition.getStatus()==4){
-////                continue;
-////            }
-//
-//            // 当前时间小于开始时间
-//            if (competition.getStartTime().after(new Date())){
-//                competition.setStatus(1);
-//            }
-//            if (competition.getStartTime().before(new Date())){
-//
-//
-//                if (competition.getEndTime().after(new Date())){
-//                    competition.setStatus(2);
-//                }else{
-//                    competition.setStatus(3);
-//                }
-//            }
-//            if (competition.getStatus()!=state && state != null){
-//            }else{
-//                records.add(competition);
-//            }
-//            for (TStore tStore : list) {
-//                String[] split = competition.getStoreId().split(",");
-//                for (String s : split) {
-//                    if(s.equals(String.valueOf(tStore.getId()))){
-//                        if (competition.getStoreName()==null){
-//                            competition.setStoreName(tStore.getName());
-//                        }else {
-//                            competition.setStoreName(competition.getStoreName()+","+tStore.getName());
-//                        }
-//                    }
-//                }
-//            }
-//        }
+        for (Competition competition : competitions.getRecords()) {
+            if (competition.getStatus()!=state && state != null){
+            }else{
+                records.add(competition);
+            }
+            for (TStore tStore : list) {
+                String[] split = competition.getStoreId().split(",");
+                for (String s : split) {
+                    if(s.equals(String.valueOf(tStore.getId()))){
+                        if (competition.getStoreName()==null){
+                            competition.setStoreName(tStore.getName());
+                        }else {
+                            competition.setStoreName(competition.getStoreName()+","+tStore.getName());
+                        }
+                    }
+                }
+            }
+        }
         competitions.setRecords(records);
         System.err.println(competitions.getRecords());
         return  super.packForBT(competitions);
@@ -328,12 +390,10 @@
 
     @RequestMapping(value = "/listUser/{id}")
     @ResponseBody
-    public Object listUser(@PathVariable Integer id,Integer state) {
+    public Object listUser(@PathVariable Integer id,Integer state, Integer offset,Integer limit) {
         try {
-            Page<Object> page = new PageFactory<>().defaultPage();
-            Page<CompetitionUser> data =  competitionClient.getPeopleFromId
-                    (new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state));
-            return  super.packForBT(data);
+            Page<CompetitionUser> page = competitionClient.getPeopleFromId1(new GetPeopleQuery(limit, offset, id, state));
+            return super.packForBT(page);
         }catch (Exception e){
             e.printStackTrace();
             return ERROR;
@@ -404,7 +464,7 @@
         }
     }
 
-
+    @ResponseBody
     @RequestMapping(value = "/cancel")
     public Object cancel(Integer TCompetitionId) {
         try {
@@ -415,7 +475,7 @@
             return ERROR;
         }
     }
-
+    @ResponseBody
     @RequestMapping(value = "/getPeopleFromId")
     public Object getPeopleFromId(Integer id,Integer state) {
         try {
@@ -434,11 +494,11 @@
     @ResponseBody
     public Object onChange(Integer oneId) {
         System.out.println("======"+oneId);
-        List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2));
+        List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>()
+                .eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2));
             if (list.size()!=0){
                 return list;
             }
-
         try {
             TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
             return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
@@ -447,10 +507,22 @@
             return ERROR;
         }
     }
+
+    @RequestMapping(value = "/onChange3")
+    @ResponseBody
+    public Object onChange3(String oneId) {
+        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
+        return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
+    }
     @RequestMapping(value = "/oneChangeNext")
     @ResponseBody
     public Object oneChangeNext(Integer oneId) {
         try {
+            if (UserExt.getUser().getObjectType() == 2){
+                return storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode, oneId)
+                        .eq(TStore::getOperatorId, UserExt.getUser().getObjectId()));
+
+            }
             return storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode, oneId));
         }catch (Exception e){
             e.printStackTrace();

--
Gitblit v1.7.1