From 8a5b6dedd18a0956ffa8da7ec9ace30b1d8238fc Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 16 八月 2025 18:05:07 +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/util/PayMoneyUtil.java                                        |  231 ++--
 cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml                                                     |   10 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java  |    3 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList.html                                      |   50 +
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRecords.java                               |    5 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/model/SaveUserIntegralChangesVo.java |    2 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupInfo.java                                  |    4 
 cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup_info.js                                         |   79 +
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java                       |  278 +++++
 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java                             |   10 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EndWorldCup.java                                   |   20 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_add.html                                          |   32 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_info.html                                         |   28 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupRecords.java                   |    4 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java                    |  415 +++++--
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html                                             |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html                                |    8 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java                          |    9 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/SaveData.java                          |   29 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserDetailsOfSearch.java                           |   19 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListAll.java                               |    4 
 cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup.js                                              |    7 
 cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js                 |  176 +++
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java                     |   12 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/SaveData.java                                      |   29 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupCodeListVo.java                            |   36 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserVo.java                                        |   12 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupCompetitor.java                           |   10 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java                  |    7 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_edit.html                                         |   32 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java                |   47 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCup.java                                     |   23 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList1.html                                     |   50 +
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupUserListVo.java                            |   27 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java                        |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java                       |    2 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java          |  430 +++++++-
 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java                                            |   19 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupListAll.java                   |    5 
 cloud-server-communityWorldCup/src/main/java/com/dsh/config/RedisConfig.java                                                    |    2 
 cloud-server-management/src/main/java/com/dsh/course/model/dto/UserDetailsOfSearch.java                                         |   19 
 cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/userGameRecord.js                                 |   64 +
 cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCup.java                          |   19 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListCoachVo.java                           |    3 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRank.java                                  |    7 
 cloud-server-management/src/main/java/com/dsh/course/model/vo/WorldCupUserListVo.java                                           |   27 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/addWorldCupGameStatisticsListInfo.html              |  159 +++
 cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js                                |   23 
 cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml                                           |   46 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java                            |    4 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java                                |    3 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MatchRecordList.java                               |    2 
 cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TSiteInfo.js                                      |  158 +++
 cloud-server-account/src/main/java/com/dsh/account/model/query/UserDetailsOfSearch.java                                         |   17 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup.html                                              |   14 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRankVo.java                                |    2 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java                   |    4 
 cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TStoreInfo.js                                     |  175 +++
 58 files changed, 2,566 insertions(+), 350 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
index c3f74a1..7ee5dd4 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -18,6 +18,7 @@
 import com.dsh.account.model.LoginSMSCodeVo;
 import com.dsh.account.model.LoginWeChatVo;
 import com.dsh.account.model.QueryByNamePhone;
+import com.dsh.account.model.query.UserDetailsOfSearch;
 import com.dsh.account.model.query.appUserQuery.QueryAppUser;
 import com.dsh.account.model.vo.QueryAppUserVO;
 import com.dsh.account.service.IVipPaymentService;
@@ -751,4 +752,22 @@
         List<TAppUser> list = appUserService.list(queryWrapper);
         return list.stream().map(TAppUser::getId).collect(Collectors.toList());
     }
+
+
+    @PostMapping("/appUser/queryAppUserByIds")
+    @ResponseBody
+    public List<TAppUser> queryAppUserByIds(@RequestBody UserDetailsOfSearch search){
+        LambdaQueryWrapper<TAppUser> tAppUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if(ToolUtil.isNotEmpty(search.getIdCard())){
+            tAppUserLambdaQueryWrapper.eq(TAppUser::getIdCard, search.getIdCard());
+        }
+        if(ToolUtil.isNotEmpty(search.getPhone())){
+            tAppUserLambdaQueryWrapper.eq(TAppUser::getPhone, search.getPhone());
+        }
+        if(ToolUtil.isNotEmpty(search.getName())){
+            tAppUserLambdaQueryWrapper.eq(TAppUser::getName, search.getName());
+        }
+        tAppUserLambdaQueryWrapper.in(TAppUser::getId,search.getUseIds());
+        return appUserService.list(tAppUserLambdaQueryWrapper);
+    }
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/query/UserDetailsOfSearch.java b/cloud-server-account/src/main/java/com/dsh/account/model/query/UserDetailsOfSearch.java
new file mode 100644
index 0000000..5645bd3
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/query/UserDetailsOfSearch.java
@@ -0,0 +1,17 @@
+package com.dsh.account.model.query;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserDetailsOfSearch {
+
+    private String name;
+
+    private String phone;
+
+    private String idCard;
+
+    private List<Integer> useIds;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
index 3e1b4cd..79f42ec 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -109,6 +109,16 @@
                         detail.setConsumeName("社区世界杯调整比分");
                         detail.setDetailsType(1);
                         break;
+                    case 9:
+                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
+                        detail.setConsumeName("社区世界杯平场");
+                        detail.setDetailsType(2);
+                        break;
+                    case 10:
+                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
+                        detail.setConsumeName("社区世界杯败场");
+                        detail.setDetailsType(2);
+                        break;
                     default:
                         break;
                 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
index cae4036..44e8560 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
@@ -3,11 +3,18 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.dsh.communityWorldCup.entity.*;
 import com.dsh.communityWorldCup.feignclient.account.AppUserClient;
 import com.dsh.communityWorldCup.feignclient.account.StudentClient;
+import com.dsh.communityWorldCup.feignclient.account.StudentHonorClient;
+import com.dsh.communityWorldCup.feignclient.account.UserIntegralChangesClient;
 import com.dsh.communityWorldCup.feignclient.account.model.AppUser;
+import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo;
+import com.dsh.communityWorldCup.feignclient.account.model.StudentHonor;
 import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
 import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
 import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
@@ -19,10 +26,7 @@
 import com.dsh.communityWorldCup.feignclient.other.model.TGame;
 import com.dsh.communityWorldCup.model.*;
 import com.dsh.communityWorldCup.service.*;
-import com.dsh.communityWorldCup.util.GDMapGeocodingUtil;
-import com.dsh.communityWorldCup.util.PayMoneyUtil;
-import com.dsh.communityWorldCup.util.ResultUtil;
-import com.dsh.communityWorldCup.util.TokenUtil;
+import com.dsh.communityWorldCup.util.*;
 import com.dsh.communityWorldCup.util.wx.WxV3PayConfig;
 import com.wechat.pay.contrib.apache.httpclient.util.AesUtil;
 import groovy.util.logging.Log4j;
@@ -43,7 +47,9 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.nio.charset.StandardCharsets;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -102,6 +108,12 @@
 
     @Resource
     private GameClient gameClient;
+
+    @Autowired
+    private UserIntegralChangesClient userIntegralChangesClient;
+
+    @Autowired
+    private StudentHonorClient studentHonorClient;
 
 
     /**
@@ -275,6 +287,16 @@
         if(0 == isStudent){
             isStudent = 2;
         }
+        WorldCup worldCup = worldCupService.getById(worldCupPeople.getWorldCupId());
+        if(null == worldCup){
+            return ResultUtil.error("当前比赛不存在");
+        }
+        if(worldCup.getStartTime().getTime()>System.currentTimeMillis() || worldCup.getEndTime().getTime()<System.currentTimeMillis()){
+            return ResultUtil.error("二维码仅支持在赛事有效期使用");
+        }
+
+
+
         WorldCupPaymentParticipant worldCupPaymentParticipant = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>()
                 .eq("worldCupId", worldCupPeople.getWorldCupId()).eq("participantId", id).eq("participantType", isStudent)
                 .orderByDesc("createTime").last(" limit 0, 1"));
@@ -352,6 +374,18 @@
     })
     public ResultUtil startWorldCup(StartWorldCup startWorldCup){
         return worldCupService.startWorldCup(startWorldCup);
+    }
+    @ResponseBody
+    @PostMapping("/api/worldCup/endWorldCup")
+    @ApiOperation(value = "裁判结束比赛【3.1】", tags = {"APP-个人中心"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(name = "redScore", value = "红队得分", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "blueScore", value = "蓝队得分", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "custom", value = "自定义参数 列表中是数组 ,拼接传过来", required = true, dataType = "String")
+    })
+    public ResultUtil endWorldCup(String custom, Integer redScore, Integer blueScore){
+        return worldCupService.endWorldCup(custom,redScore,blueScore);
     }
 
 
@@ -687,6 +721,45 @@
             }
             worldCupRank.setAppUserId(uid);
             List<WorldCupRankVo> worldCupRank1 = worldCupCompetitorService.getWorldCupRank(worldCupRank);
+            return ResultUtil.success(worldCupRank1);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/api/worldCup/getWorldCupListFromRank")
+    @ApiOperation(value = "获取报名的赛事 排名使用【3.1】", tags = {"APP-个人中心"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<WorldCupListVo>> getWorldCupListFromRank(MyWorldCupList myWorldCupList){
+        try {
+            Integer uid = tokenUtil.getUserIdFormRedis();
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<WorldCupListVo> worldCupRank1 = worldCupCompetitorService.getWorldCupListFromRank(myWorldCupList);
+            return ResultUtil.success(worldCupRank1);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+    @ResponseBody
+    @PostMapping("/api/worldCup/getWorldCupCodeListId")
+    @ApiOperation(value = "获取赛事的赛点 非智慧比赛用 【3.1】", tags = {"APP-个人中心"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<WorldCupCodeListVo>> getWorldCupCodeListId(Integer worldCupId){
+        try {
+            Integer uid = tokenUtil.getUserIdFormRedis();
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<WorldCupCodeListVo> worldCupRank1 = worldCupCompetitorService.getWorldCupCodeListId(worldCupId);
             return ResultUtil.success(worldCupRank1);
         }catch (Exception e){
             e.printStackTrace();
@@ -1160,4 +1233,201 @@
                 .last(" and createTime between '" + sdf.format(getWorldCupPayment.getStartTime()) + "' and  '" + sdf.format(getWorldCupPayment.getEndTime()) + "' order by createTime desc"));
         return list;
     }
+
+
+    @PostMapping("/worldCup/userDetailsOfSearch")
+    @ResponseBody
+    public List<WorldCupUserListVo> userDetailsOfSearch(@RequestBody UserDetailsOfSearch  search){
+        // 已报名的用户
+        List<WorldCupPaymentParticipant> list = worldCupPaymentParticipantService.list(new LambdaQueryWrapper<WorldCupPaymentParticipant>().eq(WorldCupPaymentParticipant::getWorldCupId, search.getId())
+                .eq(WorldCupPaymentParticipant::getAlreadyEntered, 0));
+        ArrayList<WorldCupUserListVo> worldCupUserListVos = new ArrayList<>();
+        if(list.size()>0){
+            List<Integer> collect = list.stream().map(WorldCupPaymentParticipant::getAppUserId).collect(Collectors.toList());
+            search.setUseIds(collect);
+            List<AppUser> appUsers = appUserClient.queryAppUserByIds(search);
+
+            for (AppUser appUser : appUsers) {
+                WorldCupUserListVo worldCupUserListVo = new WorldCupUserListVo();
+                WorldCupPaymentParticipant worldCupPaymentParticipant = list.stream().filter(e -> e.getAppUserId().equals(appUser.getId())).findFirst().orElse(null);
+                if(worldCupPaymentParticipant!=null){
+                    worldCupUserListVo.setId(worldCupPaymentParticipant.getId());
+                    worldCupUserListVo.setName(appUser.getName());
+                    worldCupUserListVo.setSex(appUser.getGender() !=null && appUser.getGender()==2?"女":"男");
+                    worldCupUserListVo.setPhone(appUser.getPhone());
+                    worldCupUserListVo.setIdCard(appUser.getIdCard());
+                    // 当前日期和生日计算年龄
+                    Date birthday = appUser.getBirthday();
+                    LocalDate now = LocalDate.now();
+                    if(birthday!=null){
+                        int age = now.getYear() - birthday.getYear();
+                        worldCupUserListVo.setAge(age);
+                    }
+                    worldCupUserListVos.add(worldCupUserListVo);
+                }
+            }
+
+        }
+        return worldCupUserListVos;
+    }
+
+
+
+
+    @PostMapping("/worldCup/savaData1")
+    public void savaData1(@RequestBody SaveData saveData) throws ParseException {
+
+        WorldCup worldCup = worldCupService.getById(saveData.getId());
+
+        String redStr = saveData.getRedStr();
+        String blueStr = saveData.getBlueStr();
+        String[] red = redStr.split(",");
+        String[] blue = blueStr.split(",");
+        ArrayList<String> list = new ArrayList<>(red.length+blue.length);
+        list.addAll(Arrays.asList(red));
+        list.addAll(Arrays.asList(blue));
+        String time = saveData.getTime();
+        String[] split = time.split(" - ");
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date startTime = simpleDateFormat.parse(split[0]);
+        Date endTime = simpleDateFormat.parse(split[1]);
+        Integer blueScore = saveData.getBlueScore();
+        Integer redScore = saveData.getRedScore();
+        List<WorldCupPaymentParticipant> list1 = worldCupPaymentParticipantService.list(new LambdaQueryWrapper<WorldCupPaymentParticipant>().in(WorldCupPaymentParticipant::getId, list));
+        String code = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3);
+        ArrayList<WorldCupCompetitor> worldCupCompetitors = new ArrayList<>(red.length + blue.length);
+        for (String s : blue) {
+            WorldCupPaymentParticipant worldCupPaymentParticipant = list1.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null);
+            if(worldCupPaymentParticipant!=null){
+                WorldCupCompetitor worldCupCompetitor =new WorldCupCompetitor();
+                worldCupCompetitor.setCode(code);
+                worldCupCompetitor.setWorldCupId(saveData.getId().intValue());
+                worldCupCompetitor.setParticipantType(worldCupPaymentParticipant.getParticipantType());
+                worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId());
+                worldCupCompetitor.setParticipantId(worldCupPaymentParticipant.getParticipantId());
+                worldCupCompetitor.setParticipant(1);
+                worldCupCompetitor.setStartTime(startTime);
+                worldCupCompetitor.setEndTime(endTime);
+                if(blueScore>redScore){
+                    worldCupCompetitor.setMatchResult(1);
+                    worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                    //增加积分明细
+                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                    vo.setIntegral(worldCup.getWinIntegral());
+                    vo.setType(7);
+                    userIntegralChangesClient.saveUserIntegralChanges(vo);
+                }
+                if(blueScore.equals(redScore)){
+                    worldCupCompetitor.setMatchResult(0);
+                    worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                    //增加积分明细
+                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                    vo.setIntegral(worldCup.getDrawIntegral());
+                    vo.setType(9);
+                    userIntegralChangesClient.saveUserIntegralChanges(vo);
+                }
+                if(blueScore<redScore){
+                    worldCupCompetitor.setMatchResult(-1);
+                    worldCupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+                    //增加积分明细
+                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                    vo.setIntegral(worldCup.getLoseIntegral());
+                    vo.setType(10);
+                    userIntegralChangesClient.saveUserIntegralChanges(vo);
+                }
+                worldCupCompetitor.setOpponentScore(redScore);
+                worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral());
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getParticipationIntegral());
+                vo.setType(6);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                worldCupCompetitorService.save(worldCupCompetitor);
+                worldCupCompetitors.add(worldCupCompetitor);
+            }
+        }
+
+        for (String s : red) {
+            WorldCupPaymentParticipant worldCupPaymentParticipant = list1.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null);
+            if(worldCupPaymentParticipant!=null){
+                WorldCupCompetitor worldCupCompetitor =new WorldCupCompetitor();
+                worldCupCompetitor.setCode(code);
+                worldCupCompetitor.setWorldCupId(saveData.getId().intValue());
+                worldCupCompetitor.setParticipantType(worldCupPaymentParticipant.getParticipantType());
+                worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId());
+                worldCupCompetitor.setParticipantId(worldCupPaymentParticipant.getParticipantId());
+                worldCupCompetitor.setParticipant(1);
+                worldCupCompetitor.setStartTime(startTime);
+                worldCupCompetitor.setEndTime(endTime);
+                if(redScore>blueScore){
+                    worldCupCompetitor.setMatchResult(1);
+                    worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                    //增加积分明细
+                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                    vo.setIntegral(worldCup.getWinIntegral());
+                    vo.setType(7);
+                    userIntegralChangesClient.saveUserIntegralChanges(vo);
+                }
+                if(blueScore.equals(redScore)){
+                    worldCupCompetitor.setMatchResult(0);
+                    worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                    //增加积分明细
+                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                    vo.setIntegral(worldCup.getDrawIntegral());
+                    vo.setType(9);
+                    userIntegralChangesClient.saveUserIntegralChanges(vo);
+                }
+                if(redScore<blueScore){
+                    worldCupCompetitor.setMatchResult(-1);
+                    worldCupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+                    //增加积分明细
+                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                    vo.setIntegral(worldCup.getLoseIntegral());
+                    vo.setType(10);
+                    userIntegralChangesClient.saveUserIntegralChanges(vo);
+                }
+                worldCupCompetitor.setOpponentScore(redScore);
+                worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral());
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getParticipationIntegral());
+                vo.setType(6);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                worldCupCompetitorService.save(worldCupCompetitor);
+                worldCupCompetitors.add(worldCupCompetitor);
+            }
+        }
+
+        //添加勋章
+        for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) {
+            Integer appUserId = worldCupCompetitor.getAppUserId();
+            //常胜将军
+            if(1 == worldCupCompetitor.getMatchResult()){
+                int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId).eq("matchResult", 1));
+                StudentHonor studentHonor = new StudentHonor();
+                studentHonor.setAppUserId(appUserId);
+                studentHonor.setHonorType(5);
+                studentHonor.setNumber(count);
+                studentHonorClient.saveStudentHonor(studentHonor);
+            }
+            //越战越勇
+            int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId));
+            StudentHonor studentHonor = new StudentHonor();
+            studentHonor.setAppUserId(appUserId);
+            studentHonor.setHonorType(6);
+            studentHonor.setNumber(count);
+            studentHonorClient.saveStudentHonor(studentHonor);
+        }
+
+    }
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCup.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCup.java
index ccc170d..5075db5 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCup.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCup.java
@@ -101,6 +101,24 @@
      */
     @TableField("winIntegral")
     private Integer winIntegral;
+
+    /**
+     * 类型(1=智慧赛事,2=非智慧赛事)
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 平场获得积分
+     */
+    @TableField("drawIntegral")
+    private Integer drawIntegral;
+
+    /**
+     * 失败获得积分
+     */
+    @TableField("loseIntegral")
+    private Integer loseIntegral;
     /**
      * 省
      */
@@ -162,6 +180,11 @@
     @TableField("content")
     private String content;
     /**
+     * 参赛协议
+     */
+    @TableField("contentOne")
+    private String contentOne;
+    /**
      * 比赛状态(1=未开始,2=已开始,3=已结束,4=已取消)
      */
     @TableField("status")
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupCompetitor.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupCompetitor.java
index ebe0e65..1836c1c 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupCompetitor.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupCompetitor.java
@@ -76,6 +76,16 @@
     @TableField("winIntegral")
     private Integer winIntegral;
     /**
+     * 平场奖励
+     */
+    @TableField("drawIntegral")
+    private Integer drawIntegral;
+    /**
+     * 败场奖励
+     */
+    @TableField("loseIntegral")
+    private Integer loseIntegral;
+    /**
      * 比赛开始时间
      */
     @TableField("startTime")
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java
index 3bc7cb8..8500aa9 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java
@@ -2,6 +2,7 @@
 
 import com.dsh.communityWorldCup.feignclient.account.model.AppUser;
 import com.dsh.communityWorldCup.feignclient.account.model.AppUserIdsByCityName;
+import com.dsh.communityWorldCup.model.UserDetailsOfSearch;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 
@@ -57,4 +58,7 @@
     @PostMapping("/appUser/getAppUserIdsByCityName")
     List<Integer> getAppUserIdsByCityName(AppUserIdsByCityName appUserIdsByCityName);
 
+
+   @PostMapping("/appUser/queryAppUserByIds")
+    List<AppUser> queryAppUserByIds(UserDetailsOfSearch search);
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/model/SaveUserIntegralChangesVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/model/SaveUserIntegralChangesVo.java
index a08dc96..28d3489 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/model/SaveUserIntegralChangesVo.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/model/SaveUserIntegralChangesVo.java
@@ -13,7 +13,7 @@
      */
     private Integer appUserId;
     /**
-     * 积分类型(1=赠送积分,2=兑换商品,3=完成课后练习,4=观看教学视频,5=参与世界杯,6=世界杯获胜)
+     * 积分类型(1=赠送积分,2=兑换商品,3=完成课后练习,4=观看教学视频,6=参与世界杯,7=世界杯获胜 8该份 9平场世界杯  10败场世界杯)
      */
     private Integer type;
     /**
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java
index 22ff627..3c5da0e 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java
@@ -35,10 +35,10 @@
      * @param worldCupRank
      * @return
      */
-    List<Map<String, Object>> getWorldCupRank(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds);
+    List<Map<String, Object>> getWorldCupRank(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds, @Param("sTime") String sTime, @Param("eTime") String eTime);
     
     
-    List<Map<String, Object>> getWorldCupRank1(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds);
+    List<Map<String, Object>> getWorldCupRank1(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds, @Param("sTime") String sTime, @Param("eTime") String eTime);
 
 
     /**
@@ -46,14 +46,14 @@
      * @param worldCupRecords
      * @return
      */
-    List<Map<String, Object>> worldCupRecordsList(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds);
+    List<Map<String, Object>> worldCupRecordsList(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds, @Param("sTime") String sTime, @Param("eTime") String eTime);
     
     /**
      * 获取比赛排行榜列表数据
      * @param worldCupRecords
      * @return
      */
-    List<Map<String, Object>> worldCupRecordsList1(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds);
+    List<Map<String, Object>> worldCupRecordsList1(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds, @Param("sTime") String sTime, @Param("eTime") String eTime);
 
 
     int worldCupRecordsListCount(@Param("appUserIds") List<Integer> appUserIds);
@@ -87,4 +87,8 @@
      * @return
      */
     int getMatchTime(@Param("worldCupId") Integer worldCupId);
+
+    List<WorldCupListVo> getWorldCupListFromRank(@Param("item")MyWorldCupList myWorldCupList);
+
+
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EndWorldCup.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EndWorldCup.java
new file mode 100644
index 0000000..6039290
--- /dev/null
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EndWorldCup.java
@@ -0,0 +1,20 @@
+package com.dsh.communityWorldCup.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/2/19 15:24
+ */
+@Data
+@ApiModel
+public class EndWorldCup {
+    @ApiModelProperty(value = "世界杯id", required = true, dataType = "int")
+    private Integer worldCupId;
+
+    @ApiModelProperty(value = "结果", required = true, dataType = "String")
+    private String result;
+
+}
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MatchRecordList.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MatchRecordList.java
index b1e5e6c..b4540ac 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MatchRecordList.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MatchRecordList.java
@@ -19,7 +19,7 @@
     private Integer opponentScore;
     @ApiModelProperty("比赛时间")
     private String startTime;
-    @ApiModelProperty("比赛结果(1=胜,-1=负)")
+    @ApiModelProperty("比赛结果(1=胜,0平 -1=负)")
     private Integer matchResult;
     @ApiModelProperty("获得积分")
     private Integer award;
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java
index c12c467..04ae4d9 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java
@@ -4,6 +4,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+
 /**
  * @author zhibing.pu
  * @Date 2024/2/28 16:25
@@ -22,4 +23,6 @@
     @ApiModelProperty(value = "状态(1=未开始,2=进行中)")
     private Integer state;
     private Integer appUserId;
+
+    private String name;
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/SaveData.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/SaveData.java
new file mode 100644
index 0000000..6dbe7b1
--- /dev/null
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/SaveData.java
@@ -0,0 +1,29 @@
+package com.dsh.communityWorldCup.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/3/6 20:00
+ */
+@Data
+public class SaveData {
+    /**
+     * 参赛数据id
+     */
+    private Long id;
+    /**
+     * 蓝方得分
+     */
+    private String blueStr;
+    /**
+     * 红方得分
+     */
+    private String redStr;
+
+    private String time;
+
+    private Integer blueScore;
+
+    private Integer redScore;
+}
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserDetailsOfSearch.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserDetailsOfSearch.java
new file mode 100644
index 0000000..678cd05
--- /dev/null
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserDetailsOfSearch.java
@@ -0,0 +1,19 @@
+package com.dsh.communityWorldCup.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserDetailsOfSearch {
+
+    private Integer id;
+
+    private String name;
+
+    private String phone;
+
+    private String idCard;
+
+    private List<Integer> useIds;
+}
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserVo.java
new file mode 100644
index 0000000..29e98be
--- /dev/null
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserVo.java
@@ -0,0 +1,12 @@
+package com.dsh.communityWorldCup.model;
+
+import lombok.Data;
+
+@Data
+public class UserVo {
+    private String userName;
+
+    private String avatar;
+
+    private Integer age=0;
+}
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupCodeListVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupCodeListVo.java
new file mode 100644
index 0000000..2b39baa
--- /dev/null
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupCodeListVo.java
@@ -0,0 +1,36 @@
+package com.dsh.communityWorldCup.model;
+
+import com.alipay.api.domain.UserDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/2/19 16:45
+ */
+@Data
+@ApiModel
+public class WorldCupCodeListVo {
+    @ApiModelProperty("世界杯id")
+    private Integer worldCupId;
+    @ApiModelProperty("世界杯名称")
+    private String name;
+    @ApiModelProperty("编号")
+    private String code;
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+
+    @ApiModelProperty("自定义信息 结束接口需要")
+    private List<Long> customs;
+
+
+    @ApiModelProperty("红队")
+    private List<UserVo> red;
+
+    @ApiModelProperty("蓝队")
+    private List<UserVo> blue;
+}
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupInfo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupInfo.java
index 72dfa2f..c0541c0 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupInfo.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupInfo.java
@@ -50,6 +50,10 @@
     private String intro;
     @ApiModelProperty("富文本")
     private String content;
+    @ApiModelProperty("参赛协议")
+    private String contentOne;
+    @ApiModelProperty("1or null智慧赛事  2非智慧赛事")
+    private Integer type;
     @ApiModelProperty("门店信息")
     private List<Map<String, Object>> storeInfos;
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListAll.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListAll.java
index 428c787..28de7f6 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListAll.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListAll.java
@@ -25,6 +25,10 @@
      */
     private Integer status;
     /**
+     * 1=智慧赛事,2= 非智慧赛事,
+     */
+    private Integer type;
+    /**
      * 页码
      */
     private Integer offset;
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListCoachVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListCoachVo.java
index cec5122..024f189 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListCoachVo.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListCoachVo.java
@@ -24,4 +24,7 @@
     private String lon;
     private String lat;
     private Double distance;
+    @ApiModelProperty("1智慧赛事 2非智慧赛事")
+    private Integer type;
+    private Integer nowNum=0;
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRank.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRank.java
index b70eaaf..76a8bce 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRank.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRank.java
@@ -21,5 +21,12 @@
     private Integer radius;
     @ApiModelProperty(value = "排序,1=场次,2=胜率", required = true, dataType = "int")
     private Integer sort;
+
+    @ApiModelProperty("赛事id")
+    private Integer worldCupId;
+
+    @ApiModelProperty("季度时间2020-01-01 - 2022-03-31")
+    private String time;
+
     private Integer appUserId;
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRankVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRankVo.java
index 1197a74..d63ade0 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRankVo.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRankVo.java
@@ -21,6 +21,8 @@
     private Integer totalSession;
     @ApiModelProperty("胜率")
     private Double winRate;
+    @ApiModelProperty("积分")
+    private Integer integral;
     @ApiModelProperty("是否是自己(0=否,1=是)")
     private Integer oneself;
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRecords.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRecords.java
index c1e9e68..8425eb5 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRecords.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRecords.java
@@ -16,6 +16,11 @@
      * 市名称
      */
     private String city;
+
+    /**
+     * 时间
+     */
+    private String time;
     /**
      * 页码
      */
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupUserListVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupUserListVo.java
new file mode 100644
index 0000000..b62da60
--- /dev/null
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupUserListVo.java
@@ -0,0 +1,27 @@
+package com.dsh.communityWorldCup.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class WorldCupUserListVo {
+    @ApiModelProperty("报名id")
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("性别")
+    private String sex;
+
+    @ApiModelProperty("年龄")
+    private int age=0;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+
+}
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java
index 9df5d3f..4f6ff24 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java
@@ -92,4 +92,11 @@
      * @return
      */
     int getMatchTime(Integer worldCupId);
+
+
+    List<WorldCupListVo> getWorldCupListFromRank(MyWorldCupList myWorldCupList);
+
+    List<WorldCupCodeListVo> getWorldCupCodeListId(Integer worldCupId);
+
+
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java
index 4bcb1e9..95c50d8 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java
@@ -115,4 +115,8 @@
      * @param worldCup
      */
     void updateWorldCupAll(WorldCup worldCup);
+
+    ResultUtil endWorldCup(String custom, Integer redScore, Integer blueScore);
+
+
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
index 4ac941c..b2c677a 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.communityWorldCup.entity.WorldCup;
@@ -29,7 +30,9 @@
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author zhibing.pu
@@ -168,10 +171,19 @@
             AppUser appUser = appUserClient.getAppUser(worldCupRank.getAppUserId());
             appUserIds = appUserClient.getAppUserIds(appUser.getCityCode());
         }
+        String sTime = null;
+        String eTime = null;
+        if(ToolUtil.isNotEmpty(worldCupRank.getTime())){
+            sTime = worldCupRank.getTime().split(" - ")[0] + " 00:00:00";
+            eTime = worldCupRank.getTime().split(" - ")[1] + " 23:59:59";
+        }
+
         //总场次
-        List<Map<String, Object>> lists = this.baseMapper.getWorldCupRank(worldCupRank, appUserIds);
+        List<Map<String, Object>> lists = this.baseMapper.getWorldCupRank(worldCupRank, appUserIds, sTime, eTime);
+
         //未负的数据
-        List<Map<String, Object>> lists1 = this.baseMapper.getWorldCupRank1(worldCupRank, appUserIds);
+        List<Map<String, Object>> lists1 = this.baseMapper.getWorldCupRank1(worldCupRank, appUserIds, sTime, eTime);
+        
         List<Map<String, Object>> mapList = new ArrayList<>();
         for (int i = 0; i < lists.size(); i++) {
             Map<String, Object> map = lists.get(i);
@@ -179,6 +191,9 @@
             Long participantId = Long.valueOf(map.get("participantId").toString());
             Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
             Integer num = Integer.valueOf(null == map.get("num") ? "0" : map.get("num").toString());
+            Integer winIntegral = Integer.valueOf(null == map.get("winIntegral") ? "0" : map.get("winIntegral").toString());
+            Integer drawIntegral = Integer.valueOf(null == map.get("drawIntegral") ? "0" : map.get("drawIntegral").toString());
+            Integer loseIntegral = Integer.valueOf(null == map.get("loseIntegral") ? "0" : map.get("loseIntegral").toString());
             //学员
             if(participantType == 1){
                 TStudent tStudent = studentClient.queryById(participantId.intValue());
@@ -194,6 +209,7 @@
                 }
             }
             map.put("totalSession", num);
+            map.put("totalIntegral", winIntegral+drawIntegral+loseIntegral);
             map.put("winRate", "0");
             for (Map<String, Object> objectMap : lists1) {
                 Integer participantType1 = Integer.valueOf(objectMap.get("participantType").toString());
@@ -207,22 +223,30 @@
             }
             mapList.add(map);
         }
-        if(worldCupRank.getSort() == 1){
-            mapList.sort(new Comparator<Map<String, Object>>() {
-                @Override
-                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
-                    return Double.valueOf(o1.get("totalSession").toString()).compareTo(Double.valueOf(o2.get("totalSession").toString())) * -1;
-                }
-            });
-        }
-        if(worldCupRank.getSort() == 2){
-            mapList.sort(new Comparator<Map<String, Object>>() {
-                @Override
-                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
-                    return Double.valueOf(o1.get("winRate").toString()).compareTo(Double.valueOf(o2.get("winRate").toString())) * -1;
-                }
-            });
-        }
+
+
+
+
+
+
+//        if(worldCupRank.getSort() == 1){
+//            mapList.sort(new Comparator<Map<String, Object>>() {
+//                @Override
+//                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
+//                    return Double.valueOf(o1.get("totalSession").toString()).compareTo(Double.valueOf(o2.get("totalSession").toString())) * -1;
+//                }
+//            });
+//        }
+//        if(worldCupRank.getSort() == 2){
+//            mapList.sort(new Comparator<Map<String, Object>>() {
+//                @Override
+//                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
+//                    return Double.valueOf(o1.get("winRate").toString()).compareTo(Double.valueOf(o2.get("winRate").toString())) * -1;
+//                }
+//            });
+//        }
+
+
         List<WorldCupRankVo> list = new ArrayList<>();
         for (int i = 0; i < mapList.size(); i++) {
             Map<String, Object> map = mapList.get(i);
@@ -230,12 +254,14 @@
             Long participantId = Long.valueOf(map.get("participantId").toString());
             Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
             Integer totalSession = Integer.valueOf(map.get("totalSession").toString());
+            Integer totalIntegral = Integer.valueOf(map.get("totalIntegral").toString());
             Double winRate = Double.valueOf(map.get("winRate").toString());
             //自己排名在20内的标识
             boolean b = false;
             if(i <= 19){
                 WorldCupRankVo worldCupRankVo = new WorldCupRankVo();
                 worldCupRankVo.setRank(i + 1);
+                worldCupRankVo.setIntegral(totalIntegral);
                 worldCupRankVo.setTotalSession(totalSession);
                 worldCupRankVo.setWinRate(winRate);
                 //学员
@@ -314,6 +340,8 @@
                 }
             }
         }
+        // 排序
+        list= list.stream().sorted(Comparator.comparing(WorldCupRankVo::getIntegral).reversed().thenComparing(WorldCupRankVo::getTotalSession).reversed().thenComparing(WorldCupRankVo::getWinRate).reversed()).collect(Collectors.toList());
         return list;
     }
 
@@ -346,13 +374,31 @@
                     worldCupCompetitor.setOpponentScore(red_score);
                     worldCupCompetitor.setEndTime(new Date());
                     worldCupCompetitor.setWinIntegral(0);
-                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) >= 0){
+                    worldCupCompetitor.setDrawIntegral(0);
+                    worldCupCompetitor.setLoseIntegral(0);
+                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) > 0){
                         worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
                         //增加积分明细
                         SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                         vo.setAppUserId(worldCupCompetitor.getAppUserId());
                         vo.setIntegral(worldCup.getWinIntegral());
                         vo.setType(7);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getDrawIntegral());
+                        vo.setType(9);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getLoseIntegral());
+                        vo.setType(10);
                         userIntegralChangesClient.saveUserIntegralChanges(vo);
                     }
                 }
@@ -363,13 +409,31 @@
                     worldCupCompetitor.setOpponentScore(blue_score);
                     worldCupCompetitor.setEndTime(new Date());
                     worldCupCompetitor.setWinIntegral(0);
-                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) >= 0){
+                    worldCupCompetitor.setDrawIntegral(0);
+                    worldCupCompetitor.setLoseIntegral(0);
+                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) > 0){
                         worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
                         //增加积分明细
                         SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                         vo.setAppUserId(worldCupCompetitor.getAppUserId());
                         vo.setIntegral(worldCup.getWinIntegral());
                         vo.setType(7);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getDrawIntegral());
+                        vo.setType(9);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getLoseIntegral());
+                        vo.setType(10);
                         userIntegralChangesClient.saveUserIntegralChanges(vo);
                     }
                 }
@@ -416,8 +480,15 @@
         appUserIdsByCityName.setProvince(worldCupRecords.getProvince());
         appUserIdsByCityName.setCity(worldCupRecords.getCity());
         List<Integer> appUserIds = appUserClient.getAppUserIdsByCityName(appUserIdsByCityName);
-        List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds);
-        List<Map<String, Object>> mapList1 = this.baseMapper.worldCupRecordsList1(worldCupRecords, appUserIds);
+        String time = worldCupRecords.getTime();
+        String sTime = null;
+        String eTime = null;
+        if(ToolUtil.isNotEmpty(time)){
+            sTime = time.split(" - ")[0] + " 00:00:00";
+            eTime = time.split(" - ")[1] + " 23:59:59";
+        }
+        List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds,sTime,eTime);
+        List<Map<String, Object>> mapList1 = this.baseMapper.worldCupRecordsList1(worldCupRecords, appUserIds,sTime,eTime);
         List<Map<String, Object>> list = new ArrayList<>();
         int row_num = 0;
         for (int i = 0; i < mapList.size(); i++) {
@@ -622,8 +693,118 @@
                 .eq("participant", 1).eq("worldCupId", worldCupCompetitor.getWorldCupId()));
         WorldCup worldCup = worldCupService.getById(blueList.get(0).getWorldCupId());
         for (WorldCupCompetitor cupCompetitor : blueList) {
-            //如果之前输了,现在赢/平了,需要增加积分
-            if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) > 0 || blue.compareTo(red) == 0)){
+            //如果之前输了,现在赢了,需要增加积分
+            if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) > 0 )){
+                //先扣除
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getLoseIntegral() * -1);
+                vo.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral());
+                vo1.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+                cupCompetitor.setMatchResult(1);
+                cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                cupCompetitor.setLoseIntegral(0);
+            }
+            // 输 -> 平
+            if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) == 0 )){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getLoseIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getDrawIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(0);
+                cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                cupCompetitor.setLoseIntegral(0);
+            }
+            //如果之前赢了,现在输了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) < 0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getLoseIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(-1);
+                cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+            }
+            //如果之前赢了,现在平了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) == 0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getDrawIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(0);
+                cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+            }
+            //如果之前平了,现在输了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 0 && blue.compareTo(red) < 0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getDrawIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getLoseIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(-1);
+                cupCompetitor.setDrawIntegral(0);
+                cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+            }
+            //如果之前平了,现在赢了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 0 && blue>red){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getDrawIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                 vo.setAppUserId(cupCompetitor.getAppUserId());
@@ -632,31 +813,8 @@
                 userIntegralChangesClient.saveUserIntegralChanges(vo);
 
                 cupCompetitor.setMatchResult(1);
+                cupCompetitor.setDrawIntegral(0);
                 cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
-            }
-            //如果之前赢了,现在输了,需要扣减积分
-            if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) < 0){
-                //增加积分明细
-                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
-                vo.setAppUserId(cupCompetitor.getAppUserId());
-                vo.setIntegral(worldCup.getWinIntegral() * -1);
-                vo.setType(8);
-                userIntegralChangesClient.saveUserIntegralChanges(vo);
-
-                cupCompetitor.setMatchResult(-1);
-                cupCompetitor.setWinIntegral(0);
-            }
-            //如果之前平了,现在输了,需要扣减积分
-            if(cupCompetitor.getMatchResult() == 0 && blue.compareTo(red) < 0){
-                //增加积分明细
-                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
-                vo.setAppUserId(cupCompetitor.getAppUserId());
-                vo.setIntegral(worldCup.getWinIntegral() * -1);
-                vo.setType(8);
-                userIntegralChangesClient.saveUserIntegralChanges(vo);
-
-                cupCompetitor.setMatchResult(-1);
-                cupCompetitor.setWinIntegral(0);
             }
             cupCompetitor.setOurScore(blue);
             cupCompetitor.setOpponentScore(red);
@@ -667,8 +825,15 @@
         List<WorldCupCompetitor> redList = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode())
                 .eq("participant", 2).eq("worldCupId", worldCupCompetitor.getWorldCupId()));
         for (WorldCupCompetitor cupCompetitor : redList) {
-            //如果之前输了,现在赢/平了,需要增加积分
-            if(cupCompetitor.getMatchResult() == -1 && (red.compareTo(blue) > 0 || red.compareTo(blue) == 0)){
+            //如果之前输了,现在赢/了,需要增加积分
+            if(cupCompetitor.getMatchResult() == -1 && (red.compareTo(blue) > 0)){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getLoseIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                 vo.setAppUserId(cupCompetitor.getAppUserId());
@@ -678,30 +843,113 @@
 
                 cupCompetitor.setMatchResult(1);
                 cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                cupCompetitor.setLoseIntegral(0);
+            }
+            //如果之前输了,现在平了,需要增加积分
+            if(cupCompetitor.getMatchResult() == -1 && ( red.compareTo(blue) == 0)){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getLoseIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getDrawIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(0);
+                cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                cupCompetitor.setLoseIntegral(0);
             }
             //如果之前赢了,现在输了,需要扣减积分
             if(cupCompetitor.getMatchResult() == 1 && red.compareTo(blue) < 0){
+
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                 vo.setAppUserId(cupCompetitor.getAppUserId());
-                vo.setIntegral(worldCup.getWinIntegral() * -1);
-                vo.setType(8);
+                vo.setIntegral(worldCup.getLoseIntegral() );
+                vo.setType(7);
                 userIntegralChangesClient.saveUserIntegralChanges(vo);
 
                 cupCompetitor.setMatchResult(-1);
                 cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+            }
+            //如果之前赢了,现在平了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 1 && red.compareTo(blue) ==0){
+
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getDrawIntegral() );
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(0);
+                cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
             }
             //如果之前平了,现在输了,需要扣减积分
             if(cupCompetitor.getMatchResult() == 0 && red.compareTo(blue) < 0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getDrawIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                 vo.setAppUserId(cupCompetitor.getAppUserId());
-                vo.setIntegral(worldCup.getWinIntegral() * -1);
-                vo.setType(8);
+                vo.setIntegral(worldCup.getLoseIntegral());
+                vo.setType(7);
                 userIntegralChangesClient.saveUserIntegralChanges(vo);
 
                 cupCompetitor.setMatchResult(-1);
-                cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setDrawIntegral(0);
+                cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+            }
+            //如果之前平了,现在赢了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 0 && red.compareTo(blue) >0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getDrawIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getWinIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(1);
+                cupCompetitor.setDrawIntegral(0);
+                cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
             }
             cupCompetitor.setOurScore(red);
             cupCompetitor.setOpponentScore(blue);
@@ -787,4 +1035,76 @@
     public int getMatchTime(Integer worldCupId) {
         return this.baseMapper.getMatchTime(worldCupId);
     }
+
+    @Override
+    public List<WorldCupListVo> getWorldCupListFromRank(MyWorldCupList myWorldCupList) {
+
+        return this.baseMapper.getWorldCupListFromRank(myWorldCupList);
+    }
+
+    @Override
+    public List<WorldCupCodeListVo> getWorldCupCodeListId(Integer worldCupId) {
+        List<WorldCupCompetitor> worldCupCompetitors = this.baseMapper.selectList(new LambdaQueryWrapper<WorldCupCompetitor>().eq(WorldCupCompetitor::getWorldCupId, worldCupId)
+                        .and(w->w.isNull(WorldCupCompetitor::getEndTime).or(s->s.le(WorldCupCompetitor::getStartTime, new Date()).ge(WorldCupCompetitor::getEndTime, new Date()))))
+             ;
+        List<WorldCupCodeListVo> worldCupCodeListVos = new ArrayList<>();
+
+        // worldCupCompetitors 通过code分组
+        Map<String, List<WorldCupCompetitor>> map = worldCupCompetitors.stream().collect(Collectors.groupingBy(WorldCupCompetitor::getCode));
+        LocalDate now = LocalDate.now();
+        for (Map.Entry<String, List<WorldCupCompetitor>> entry : map.entrySet()) {
+            WorldCupCodeListVo worldCupCodeListVo = new WorldCupCodeListVo();
+            String code = entry.getKey();
+            List<WorldCupCompetitor> value = entry.getValue();
+            // 蓝队
+            List<WorldCupCompetitor> collect1 = value.stream().filter(item -> item.getParticipant() == 1).collect(Collectors.toList());
+            ArrayList<UserVo> objects = new ArrayList<>();
+            for (WorldCupCompetitor competitor : collect1) {
+                UserVo userVo = new UserVo();
+                AppUser appUser = appUserClient.getAppUser(competitor.getAppUserId());
+                userVo.setUserName(appUser.getName());
+                userVo.setAvatar(appUser.getHeadImg());
+                    // 当前日期和生日计算年龄
+                Date birthday = appUser.getBirthday();
+
+                if(birthday!=null){
+                    int age = now.getYear() - birthday.getYear();
+                    userVo.setAge(age);
+                }
+                objects.add(userVo);
+            }
+            worldCupCodeListVo.setBlue(objects);
+            // 红队
+            List<WorldCupCompetitor> collect2 = value.stream().filter(item -> item.getParticipant() == 2).collect(Collectors.toList());
+            ArrayList<UserVo> objects1 = new ArrayList<>();
+            for (WorldCupCompetitor competitor : collect2) {
+                UserVo userVo = new UserVo();
+                AppUser appUser = appUserClient.getAppUser(competitor.getAppUserId());
+                userVo.setUserName(appUser.getName());
+                userVo.setAvatar(appUser.getHeadImg());
+                    // 当前日期和生日计算年龄
+                Date birthday = appUser.getBirthday();
+
+                if(birthday!=null){
+                    int age = now.getYear() - birthday.getYear();
+                    userVo.setAge(age);
+                }
+                objects1.add(userVo);
+            }
+            worldCupCodeListVo.setRed(objects1);
+
+            worldCupCodeListVo.setCode(code);
+            worldCupCodeListVo.setStartTime(value.get(0).getStartTime());
+            Integer worldCupId1 = value.get(0).getWorldCupId();
+            WorldCup byId = worldCupService.getById(worldCupId1);
+            worldCupCodeListVo.setWorldCupId(worldCupId1);
+            if(byId!=null){
+                worldCupCodeListVo.setName(byId.getName());
+            }
+            List<Long> collect = value.stream().map(WorldCupCompetitor::getId).collect(Collectors.toList());
+            worldCupCodeListVo.setCustoms(collect);
+            worldCupCodeListVos.add(worldCupCodeListVo);
+        }
+        return worldCupCodeListVos;
+    }
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java
index ad368b2..9b3b0a8 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java
@@ -411,6 +411,9 @@
             userGameRecordList.put("participantType", participantType);
             userGameRecordList.put("participantId", participantId);
             AppUser appUser = appUserClient.getAppUser(appUserId);
+            if(appUser==null){
+                continue;
+            }
             userGameRecordList.put("province", appUser.getProvince() + appUser.getCity());
             if(1 == participantType){
                 TStudent tStudent = studentClient.queryById(participantId.intValue());
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
index 635b821..27ee251 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
@@ -4,14 +4,17 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.AlipayApiException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.communityWorldCup.entity.*;
 import com.dsh.communityWorldCup.feignclient.account.AppUserClient;
 import com.dsh.communityWorldCup.feignclient.account.StudentClient;
+import com.dsh.communityWorldCup.feignclient.account.StudentHonorClient;
 import com.dsh.communityWorldCup.feignclient.account.UserIntegralChangesClient;
 import com.dsh.communityWorldCup.feignclient.account.model.AppUser;
 import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo;
+import com.dsh.communityWorldCup.feignclient.account.model.StudentHonor;
 import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
 import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
 import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
@@ -78,9 +81,10 @@
     private GameClient gameClient;
 
     @Resource
+    private StudentHonorClient studentHonorClient;
+
+    @Resource
     private UserIntegralChangesClient userIntegralChangesClient;
-
-
 
 
 
@@ -94,14 +98,26 @@
         for (WorldCupListCoachVo worldCupListCoachVo : worldCupListCoach1) {
             String lat = worldCupListCoachVo.getLat();
             String lon = worldCupListCoachVo.getLon();
-            if(ToolUtil.isNotEmpty(worldCupListCoach.getLon()) && ToolUtil.isNotEmpty(worldCupListCoach.getLat())){
+            if (ToolUtil.isNotEmpty(worldCupListCoach.getLon()) && ToolUtil.isNotEmpty(worldCupListCoach.getLat())) {
                 Map<String, Double> distance2 = GeodesyUtil.getDistance(lon + "," + lat, worldCupListCoach.getLon() + "," + worldCupListCoach.getLat());
                 Double wgs842 = distance2.get("WGS84");
                 worldCupListCoachVo.setDistance(wgs842);
-            }else{
+            } else {
                 worldCupListCoachVo.setDistance(0D);
             }
+
+            if(worldCupListCoachVo.getType()!=null && worldCupListCoachVo.getType()==2){
+                // 获取正在进行的赛事
+
+                int size = worldCupCompetitorService.list(new LambdaQueryWrapper<WorldCupCompetitor>().eq(WorldCupCompetitor::getWorldCupId, worldCupListCoachVo.getId())
+                        .and(w->w.isNull(WorldCupCompetitor::getEndTime).or(s->s.le(WorldCupCompetitor::getStartTime, new Date()).ge(WorldCupCompetitor::getEndTime, new Date()))).groupBy(WorldCupCompetitor::getCode)).size();
+                worldCupListCoachVo.setNowNum(size);
+            }
+
         }
+
+
+
         //对查询结果进行距离排序(直线距离)
         Collections.sort(worldCupListCoach1, new Comparator<WorldCupListCoachVo>() {
             @Override
@@ -121,28 +137,53 @@
     @Override
     public ResultUtil startWorldCup(StartWorldCup startWorldCup) {
         WorldCup worldCup = this.getById(startWorldCup.getWorldCupId());
-        if(worldCup.getStartTime().getTime() > System.currentTimeMillis()){
+        if (worldCup.getStartTime().getTime() > System.currentTimeMillis()) {
             return ResultUtil.error("赛事还未开始");
         }
-        if(worldCup.getEndTime().getTime() <= System.currentTimeMillis()){
+        if (worldCup.getEndTime().getTime() <= System.currentTimeMillis()) {
             return ResultUtil.error("赛事已结束");
         }
-        if(worldCup.getStatus() == 4){
+        if (worldCup.getStatus() == 4) {
             return ResultUtil.error("赛事已取消");
         }
         //1、通过扫码获取的sutuid查询t_game表中的红蓝方sutuid
-        String code = startWorldCup.getCode();
-        JSONObject object = JSON.parseObject(code);
-        String sutu_id = object.getString("sutu_id");
-        TGame tGame = gameClient.getTGameBySutuId(sutu_id);
-        if(null == tGame){
-            return ResultUtil.error("无效的游戏二维码");
+        // 智慧需要判断code
+        TGame tGame =new TGame();
+        if (worldCup.getType() == null || worldCup.getType() == 1) {
+            String code = startWorldCup.getCode();
+            JSONObject object = JSON.parseObject(code);
+            String sutu_id = object.getString("sutu_id");
+            tGame = gameClient.getTGameBySutuId(sutu_id);
+            if (null == tGame) {
+                return ResultUtil.error("无效的游戏二维码");
+            }
         }
 
         String people = startWorldCup.getPeople();
         JSONArray jsonArray = JSON.parseArray(people);
-        if(jsonArray.size() != 6){
-            return ResultUtil.error("参赛人数只能是6人");
+        int red=0;
+        int blue=0;
+        for (Object o : jsonArray) {
+            JSONObject jsonObject = JSONObject.parseObject(o.toString());
+            String type = jsonObject.get("type").toString();
+            if("red".equals( type)){
+                red++;
+            }
+            if("blue".equals( type)){
+                blue++;
+            }
+        }
+        if(red==0){
+            return ResultUtil.error("红方最少要1人参赛");
+        }
+        if(red>5){
+            return ResultUtil.error("红方最多5人参赛");
+        }
+        if(blue==0){
+            return ResultUtil.error("蓝方最少要1人参赛");
+        }
+        if(blue>5){
+            return ResultUtil.error("蓝方最多5人参赛");
         }
         String timeStr = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3);
         List<Long> ids = new ArrayList<>();
@@ -161,7 +202,7 @@
             worldCupCompetitor.setParticipant("blue".equals(type) ? 1 : 2);
             worldCupCompetitor.setStartTime(new Date());
             //添加参赛奖励
-            if(null != worldCup.getParticipationIntegral() && 0 < worldCup.getParticipationIntegral()){
+            if (null != worldCup.getParticipationIntegral() && 0 < worldCup.getParticipationIntegral()) {
                 worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral());
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
@@ -174,7 +215,7 @@
             worldCupCompetitorService.save(worldCupCompetitor);
             ids.add(worldCupCompetitor.getId());
             //已参赛
-            if(0 == worldCupPaymentParticipant.getAlreadyEntered()){
+            if (0 == worldCupPaymentParticipant.getAlreadyEntered()) {
                 worldCupPaymentParticipant.setWorldCupId(null);
                 worldCupPaymentParticipant.setAlreadyEntered(1);
                 worldCupPaymentParticipantService.updateById(worldCupPaymentParticipant);
@@ -183,26 +224,32 @@
         worldCup.setMatchNumber(worldCup.getMatchNumber() + 1);
         this.updateById(worldCup);
 
+
+        //2、调起开启游戏的接口。
+
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("gameType", 1);
         jsonObject.put("ids", ids);
-        //2、调起开启游戏的接口。
-        HashMap<String, String> map = new HashMap<>();
-        map.put("sign", "0DB011836143EEE2C2E072967C9F4E4B");
-        map.put("space_id", tGame.getSiteId() + "");
-        map.put("red_sutu_id", tGame.getRed());
-        map.put("blue_sutu_id", tGame.getBlue());
-        map.put("api_url", "https://online.daowepark.com:443/communityWorldCup/base/worldCup/endWorldCupCallback");
-        map.put("custom", jsonObject.toJSONString());
+        if (worldCup.getType() == null || worldCup.getType() == 1) {
+            HashMap<String, String> map = new HashMap<>();
+            map.put("sign", "0DB011836143EEE2C2E072967C9F4E4B");
+            map.put("space_id", tGame.getSiteId() + "");
+            map.put("red_sutu_id", tGame.getRed());
+            map.put("blue_sutu_id", tGame.getBlue());
+            map.put("api_url", "https://online.daowepark.com:443/communityWorldCup/base/worldCup/endWorldCupCallback");
+            map.put("custom", jsonObject.toJSONString());
 
-        String s = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/quickStart", map);
-        JSONObject jsonObject1 = JSONObject.parseObject(s);
-        Integer code1 = jsonObject1.getInteger("code");
-        String message = jsonObject1.getString("message");
-        if (200 == code1) {
-            return ResultUtil.success();
-        } else {
-            return ResultUtil.error(message);
+            String s = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/quickStart", map);
+            JSONObject jsonObject1 = JSONObject.parseObject(s);
+            Integer code1 = jsonObject1.getInteger("code");
+            String message = jsonObject1.getString("message");
+            if (200 == code1) {
+                return ResultUtil.success(jsonObject.toJSONString());
+            } else {
+                return ResultUtil.error(message);
+            }
+        }else {
+            return ResultUtil.success(jsonObject.toJSONString());
         }
     }
 
@@ -217,11 +264,11 @@
         List<WorldCupCompetitor> list = worldCupCompetitorService.list(new QueryWrapper<WorldCupCompetitor>()
                 .eq("appUserId", uid).eq("tips", 0).isNotNull("endTime")
                 .orderByDesc("endTime").last(" limit 0, 1"));
-        list.forEach(v->{
+        list.forEach(v -> {
             v.setWorldCupId(null);
             v.setTips(1);
         });
-        if(list.size() > 0){
+        if (list.size() > 0) {
             worldCupCompetitorService.updateBatchById(list);
         }
         return list.size();
@@ -235,7 +282,7 @@
      */
     @Override
     public List<WorldCupListVo> getWorldCupList(WorldCupList worldCupList) {
-        if(null != worldCupList.getGender() && 0 == worldCupList.getGender()){
+        if (null != worldCupList.getGender() && 0 == worldCupList.getGender()) {
             worldCupList.setGender(null);
         }
         List<WorldCupListVo> worldCupList1 = this.baseMapper.getWorldCupList(worldCupList);
@@ -244,36 +291,36 @@
             List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id).eq("payStatus", 2).eq("state", 1));
             List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList());
             Integer heat = worldCupListVo.getHeat();
-            if(collect.size() > 0){
+            if (collect.size() > 0) {
                 int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
                 heat += count;
             }
             worldCupListVo.setHeat(heat);
             String lat = worldCupListVo.getLat();
             String lon = worldCupListVo.getLon();
-            if(ToolUtil.isNotEmpty(lat) && ToolUtil.isNotEmpty(lon)){
+            if (ToolUtil.isNotEmpty(lat) && ToolUtil.isNotEmpty(lon)) {
                 Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, worldCupList.getLon() + "," + worldCupList.getLat());
                 worldCupListVo.setDistance(distance.get("WGS84"));
-            }else{
+            } else {
                 worldCupListVo.setDistance(0D);
             }
         }
 
 
-        if(null != worldCupList.getSort()){
+        if (null != worldCupList.getSort()) {
             Collections.sort(worldCupList1, new Comparator<WorldCupListVo>() {
                 @Override
                 public int compare(WorldCupListVo o1, WorldCupListVo o2) {
-                    if(worldCupList.getSort() == 1){
+                    if (worldCupList.getSort() == 1) {
                         return o1.getHeat().compareTo(o2.getHeat());
                     }
-                    if(worldCupList.getSort() == 2){
+                    if (worldCupList.getSort() == 2) {
                         return o1.getHeat().compareTo(o2.getHeat()) * -1;
                     }
                     return 0;
                 }
             });
-        }else{
+        } else {
             Collections.sort(worldCupList1, new Comparator<WorldCupListVo>() {
                 @Override
                 public int compare(WorldCupListVo o1, WorldCupListVo o2) {
@@ -305,7 +352,7 @@
         List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id).eq("payStatus", 2).eq("state", 1));
         List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList());
         Integer heat = worldCupInfo.getHeat();
-        if(collect.size() > 0){
+        if (collect.size() > 0) {
             int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
             heat += count;
         }
@@ -316,7 +363,7 @@
             String url = jsonArray1.getJSONObject(i).getString("url");
             imgs += url + ",";
         }
-        worldCupInfo.setInfoImg(imgs.substring(0,imgs.length() - 1));
+        worldCupInfo.setInfoImg(imgs.substring(0, imgs.length() - 1));
         worldCupInfo.setHeat(heat);
         ArrayList<Map<String, Object>> objects = new ArrayList<>();
         for (WorldCupStore worldCupStore : worldCupStores) {
@@ -350,17 +397,17 @@
         String province = worldCupInfo.getProvince();
         String city = worldCupInfo.getCity();
         int index = address.indexOf("市");
-        if(index != -1){
+        if (index != -1) {
             address = address.substring(index + 1);
             worldCupInfo.setAddress(address);
         }
         index = province.indexOf("省");
-        if(index != -1){
+        if (index != -1) {
             province = province.substring(0, index - 1);
             worldCupInfo.setProvince(province);
         }
         index = city.indexOf("市");
-        if(index != -1){
+        if (index != -1) {
             city = city.substring(0, index - 1);
             worldCupInfo.setCity(city);
         }
@@ -379,7 +426,7 @@
         WorldCup worldCup = this.getById(checkPaymentMethod.getId());
         String[] split = worldCup.getPayType().split(",");
         CheckPaymentMethodVo checkPaymentMethodVo = new CheckPaymentMethodVo();
-        if(split.length == 1 && "0".equals(split[0])){
+        if (split.length == 1 && "0".equals(split[0])) {
             checkPaymentMethodVo.setPaiCoin(0);
             checkPaymentMethodVo.setClassHour(0);
             return checkPaymentMethodVo;
@@ -387,9 +434,9 @@
         JSONArray jsonArray = JSON.parseArray(checkPaymentMethod.getIds());
         AppUser appUser = appUserClient.getAppUser(checkPaymentMethod.getUid());
         BigDecimal multiply = new BigDecimal(jsonArray.size()).multiply(new BigDecimal(worldCup.getPaiCoin()));
-        if(appUser.getPlayPaiCoins() < multiply.intValue()){
+        if (appUser.getPlayPaiCoins() < multiply.intValue()) {
             checkPaymentMethodVo.setPaiCoin(0);
-        }else{
+        } else {
             checkPaymentMethodVo.setPaiCoin(1);
         }
 
@@ -399,13 +446,13 @@
             Integer id = jsonObject.getInteger("id");
             //是否是学员(0=否,1=是)
             Integer isStudent = jsonObject.getInteger("isStudent");
-            if(0 == isStudent){
+            if (0 == isStudent) {
                 classHour = 0;
                 break;
             }
             List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderStudent(id);
             int sum = coursePackageOrderStudent.stream().mapToInt(CoursePackageOrderStudent::getLaveClassHours).sum();
-            if(sum < worldCup.getClassHour()){
+            if (sum < worldCup.getClassHour()) {
                 classHour = 0;
                 break;
             }
@@ -413,9 +460,6 @@
         checkPaymentMethodVo.setClassHour(classHour);
         return checkPaymentMethodVo;
     }
-
-
-
 
 
     /**
@@ -426,13 +470,13 @@
     @Override
     public ResultUtil paymentWorldCup(PaymentWorldCup paymentWorldCup) {
         WorldCup worldCup = this.getById(paymentWorldCup.getId());
-        if(null == worldCup){
+        if (null == worldCup) {
             return ResultUtil.error("报名数据异常");
         }
-        if(null != worldCup.getRegistrationClosingTime() && System.currentTimeMillis() > worldCup.getRegistrationClosingTime().getTime()){
+        if (null != worldCup.getRegistrationClosingTime() && System.currentTimeMillis() > worldCup.getRegistrationClosingTime().getTime()) {
             return ResultUtil.error("报名时间已结束,无法完成报名");
         }
-        if(System.currentTimeMillis() > worldCup.getEndTime().getTime()){
+        if (System.currentTimeMillis() > worldCup.getEndTime().getTime()) {
             return ResultUtil.error("世界杯赛事已结束,无法完成报名");
         }
 
@@ -441,14 +485,14 @@
         List<WorldCupPayment> payments = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId())
                 .eq("payStatus", 2).eq("state", 1));
         List<Long> ids = payments.stream().map(WorldCupPayment::getId).collect(Collectors.toList());
-        if(ids.size() > 0){
+        if (ids.size() > 0) {
             int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId())
                     .eq("worldCupPaymentId", ids));
-            if((count + jsonArray.size()) >= worldCup.getMaxPeople()){
+            if ((count + jsonArray.size()) >= worldCup.getMaxPeople()) {
                 return ResultUtil.error("已超出最大报名人数");
             }
-        }else{
-            if(jsonArray.size() > worldCup.getMaxPeople()){
+        } else {
+            if (jsonArray.size() > worldCup.getMaxPeople()) {
                 return ResultUtil.error("已超出最大报名人数");
             }
         }
@@ -462,42 +506,42 @@
             Long id = jsonObject.getLong("id");
             //是否是学员(0=否,1=是)
             Integer isStudent = jsonObject.getInteger("isStudent");
-            if(isStudent == 1){
+            if (isStudent == 1) {
                 TStudent tStudent = studentClient.queryById(id.intValue());
-                if(worldCup.getGender() != 0 && !tStudent.getSex().equals(worldCup.getGender())){
+                if (worldCup.getGender() != 0 && !tStudent.getSex().equals(worldCup.getGender())) {
                     return ResultUtil.error("此比赛只能是" + (worldCup.getGender() == 1 ? "男" : "女") + "性参加");
                 }
-                if(collect.size() > 0){
+                if (collect.size() > 0) {
                     WorldCupPaymentParticipant one = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId())
                             .eq("participantId", id).eq("participantType", isStudent == 0 ? 2 : 1).in("worldCupPaymentId", collect));
-                    if(null != one){
+                    if (null != one) {
                         return ResultUtil.error("【" + tStudent.getName() + "】已报过名了");
                     }
                 }
 
-                if(worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))){
+                if (worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))) {
                     return ResultUtil.error("【" + tStudent.getName() + "】年龄不符合要求");
                 }
-                if(worldCup.getEndAge() < (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))){
+                if (worldCup.getEndAge() < (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))) {
                     return ResultUtil.error("【" + tStudent.getName() + "】年龄不符合要求");
                 }
-            }else{
+            } else {
                 Participant participant = participantClient.getParticipant(id);
-                if(worldCup.getGender() != 0 && !participant.getGender().equals(worldCup.getGender())){
+                if (worldCup.getGender() != 0 && !participant.getGender().equals(worldCup.getGender())) {
                     return ResultUtil.error("此比赛只能是" + (worldCup.getGender() == 1 ? "男" : "女") + "性参加");
                 }
-                if(collect.size() > 0){
+                if (collect.size() > 0) {
                     WorldCupPaymentParticipant one = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId())
                             .eq("participantId", id).eq("participantType", isStudent == 0 ? 2 : 1).in("worldCupPaymentId", collect));
-                    if(null != one){
+                    if (null != one) {
                         return ResultUtil.error("【" + participant.getName() + "】已报过名了");
                     }
                 }
 
-                if(worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))){
+                if (worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))) {
                     return ResultUtil.error("【" + participant.getName() + "】年龄不符合要求");
                 }
-                if(worldCup.getEndAge() < (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))){
+                if (worldCup.getEndAge() < (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))) {
                     return ResultUtil.error("【" + participant.getName() + "】年龄不符合要求");
                 }
             }
@@ -536,40 +580,39 @@
         int num = JSON.parseArray(paymentWorldCup.getIds()).size();
         //不免费
         String payType1 = worldCup.getPayType().split(",")[0];
-        if(!"0".equals(payType1)){
+        if (!"0".equals(payType1)) {
             Integer payType = paymentWorldCup.getPayType();
             //微信
-            if(payType == 1){
+            if (payType == 1) {
                 worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash()));
                 worldCupPayment.setUnitPrice(worldCupPayment.getAmount().divide(new BigDecimal(num)));
                 worldCupPaymentService.save(worldCupPayment);
                 List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCup.getId()).list();
-                if (list.isEmpty()){
-                                    return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(),
-                        worldCupPayment.getAmount().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", "");
-                }else{
+                if (list.isEmpty()) {
+                    return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(),
+                            worldCupPayment.getAmount().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", "");
+                } else {
                     Integer storeId = list.get(0).getStoreId();
                     Store store = storeClient.queryStoreById(storeId);
-                    if (store.getOperatorId()==null||store.getOperatorId()==0){
+                    if (store.getOperatorId() == null || store.getOperatorId() == 0) {
                         // 平台
                         return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(),
                                 worldCupPayment.getAmount().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", "");
-                    }else{
+                    } else {
                         String s2 = storeClient.getmerchantNumberByOperatorId(store.getOperatorId());
-                        System.err.println("微信商户号"+s2);
-                        if(!StringUtils.hasLength(s2)){
+                        System.err.println("微信商户号" + s2);
+                        if (!StringUtils.hasLength(s2)) {
                             return ResultUtil.error("运营商未配置微信商户号,获取支付失败!");
                         }
-                        return payMoneyUtil.weixinpayV3(s2,"社区世界杯报名",worldCupPayment.getCode()
-                                ,"/base/worldCup/wxPayWorldCupCallback1",worldCupPayment.getAmount().toString());
+                        return payMoneyUtil.weixinpayV3(s2, "社区世界杯报名", worldCupPayment.getCode()
+                                , "/base/worldCup/wxPayWorldCupCallback1", worldCupPayment.getAmount().toString());
                     }
                 }
 
 
-
             }
             //支付宝
-            if(payType == 2){
+            if (payType == 2) {
                 String smidRes = smid;// 结算资金到商户号
 
                 worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash()));
@@ -577,28 +620,28 @@
                 worldCupPaymentService.save(worldCupPayment);
                 List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCup.getId()).list();
 
-                if (list.isEmpty()){
-            }else{
+                if (list.isEmpty()) {
+                } else {
                     Integer storeId = list.get(0).getStoreId();
                     Store store = storeClient.queryStoreById(storeId);
-                    if (store.getOperatorId()==null||store.getOperatorId()==0){
-                    }else{
+                    if (store.getOperatorId() == null || store.getOperatorId() == 0) {
+                    } else {
                         String s2 = storeClient.getmerchantNumberAliByOperatorId(store.getOperatorId());
-                        System.err.println("支付宝商户号"+s2);
-                        if(!StringUtils.hasLength(s2)){
+                        System.err.println("支付宝商户号" + s2);
+                        if (!StringUtils.hasLength(s2)) {
                             return ResultUtil.error("运营商未配置支付宝商户号,获取支付失败!");
                         }
-                        smidRes=s2;
+                        smidRes = s2;
                     }
                 }
                 return payMoneyUtil.alipay(smidRes, "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(),
                         worldCupPayment.getAmount().toString(), "/base/worldCup/aliPayWorldCupCallback");
-                }
+            }
             //玩湃币
-            if(payType == 3){
+            if (payType == 3) {
                 AppUser appUser = appUserClient.getAppUser(paymentWorldCup.getUid());
                 BigDecimal multiply = new BigDecimal(num).multiply(new BigDecimal(worldCup.getPaiCoin()));
-                if(appUser.getPlayPaiCoins() < multiply.intValue()){
+                if (appUser.getPlayPaiCoins() < multiply.intValue()) {
                     return ResultUtil.error("报名失败,玩湃币不足,请充值!");
                 }
                 worldCupPayment.setAmount(multiply);
@@ -633,7 +676,7 @@
                 return ResultUtil.success();
             }
             //课时
-            if(payType == 4){
+            if (payType == 4) {
                 BigDecimal multiply = new BigDecimal(num).multiply(new BigDecimal(worldCup.getClassHour()));
                 String ids = paymentWorldCup.getIds();
                 JSONArray jsonArray = JSON.parseArray(ids);
@@ -641,7 +684,7 @@
 
                 List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderUser(paymentWorldCup.getUid());
                 int sum = coursePackageOrderStudent.stream().mapToInt(CoursePackageOrderStudent::getLaveClassHours).sum();
-                if(sum < worldCup.getClassHour() * num){
+                if (sum < worldCup.getClassHour() * num) {
                     return ResultUtil.error("报名失败,课时不足,请续课!");
                 }
 
@@ -649,7 +692,7 @@
                     JSONObject jsonObject = jsonArray.getJSONObject(i);
                     //是否是学员(0=否,1=是)
                     Integer isStudent = jsonObject.getInteger("isStudent");
-                    if(0 == isStudent){
+                    if (0 == isStudent) {
                         return ResultUtil.error("非学员无法使用课时报名");
                     }
                 }
@@ -671,12 +714,12 @@
                     Integer classHour = worldCup.getClassHour();
                     for (CoursePackageOrderStudent packageOrderStudent : coursePackageOrderStudent) {
                         Integer laveClassHours = packageOrderStudent.getLaveClassHours();
-                        if(laveClassHours == 0){
+                        if (laveClassHours == 0) {
                             continue;
                         }
 
                         DeductionClassHour deductionClassHour = new DeductionClassHour();
-                        if(classHour.compareTo(laveClassHours) > 0){
+                        if (classHour.compareTo(laveClassHours) > 0) {
                             //不够扣除,轮询直到扣除完
                             classHour = classHour - laveClassHours;
                             deductionClassHour.setId(packageOrderStudent.getId());
@@ -685,7 +728,7 @@
                             deductionClassHour.setCoursePackageId(packageOrderStudent.getCoursePackageId());
                             packageOrderStudent.setLaveClassHours(0);
                             list.add(deductionClassHour);
-                        }else{
+                        } else {
                             //够扣除直接跳出进行下个学员
                             deductionClassHour.setId(packageOrderStudent.getId());
                             deductionClassHour.setClassHour(classHour);
@@ -716,7 +759,7 @@
 
                 return ResultUtil.success();
             }
-        }else{
+        } else {
             worldCupPayment.setPayType(0);
             worldCupPayment.setAmount(BigDecimal.ZERO);
             worldCupPayment.setPayStatus(2);
@@ -784,20 +827,20 @@
             worldCupPaymentParticipant.setCreateTime(new Date());
             worldCupPaymentParticipantService.save(worldCupPaymentParticipant);
         }
-        if (worldCupPayment.getPayType()==2){
+        if (worldCupPayment.getPayType() == 2) {
             List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCupPayment.getWorldCupId()).list();
             String resSmid = smid;
-            if (!list.isEmpty()){
+            if (!list.isEmpty()) {
                 Integer storeId = list.get(0).getStoreId();
                 Store store = storeClient.queryStoreById(storeId);
-                if (store.getOperatorId()==null||store.getOperatorId()==0){
-                }else{
+                if (store.getOperatorId() == null || store.getOperatorId() == 0) {
+                } else {
                     String s2 = storeClient.getmerchantNumberAliByOperatorId(store.getOperatorId());
-                    System.err.println("支付宝商户号"+s2);
-                    if(!StringUtils.hasLength(s2)){
+                    System.err.println("支付宝商户号" + s2);
+                    if (!StringUtils.hasLength(s2)) {
                         return ResultUtil.error("运营商未配置支付宝商户号,获取支付失败!");
                     }
-                    resSmid=s2;
+                    resSmid = s2;
                 }
             }
             String finalResSmid = resSmid;
@@ -807,7 +850,7 @@
                     try {
                         Thread.sleep(30000);
                         payMoneyUtil.confirm(finalResSmid, code, outTradeNo, worldCupPayment.getAmount().toString());
-                    }catch (Exception e){
+                    } catch (Exception e) {
                     }
                 }
             }).start();
@@ -832,7 +875,7 @@
             List<WorldCupPayment> lists = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id).eq("payStatus", 2).eq("state", 1));
             List<Long> collect = lists.stream().map(WorldCupPayment::getId).collect(Collectors.toList());
             Integer count = 0;
-            if(collect.size() > 0){
+            if (collect.size() > 0) {
                 count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
             }
             map1.put("maxPeople", maxPeople + " - " + count);
@@ -862,17 +905,17 @@
             //总支付金额
             BigDecimal multiply = worldCupPayment.getUnitPrice().multiply(new BigDecimal(list1.size()));
             //微信支付
-            if(worldCupPayment.getPayType() == 1){
-                if (store.getOperatorId()!=null && store.getOperatorId()!=0){
-                    String smidVx= storeClient.getmerchantNumberByOperatorId(store.getOperatorId());
-                    if (!StringUtils.hasLength(smidVx)){
+            if (worldCupPayment.getPayType() == 1) {
+                if (store.getOperatorId() != null && store.getOperatorId() != 0) {
+                    String smidVx = storeClient.getmerchantNumberByOperatorId(store.getOperatorId());
+                    if (!StringUtils.hasLength(smidVx)) {
                         System.err.println("运营商未配置微信商户号,获取支付失败!");
                     }
                     SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                     String codeRefund = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);// 退款单号
                     // 运营商退款
                     payMoneyUtil.weixinRefundV3(smidVx, codeRefund, worldCupPayment.getPayOrderNo(), worldCupPayment.getAmount().toString(), "/base/worldCup/wxRefundWorldCupCallback1");
-                }else {
+                } else {
                     Map<String, String> map = payMoneyUtil.wxRefund(worldCupPayment.getPayOrderNo(), worldCupPayment.getCode(),
                             worldCupPayment.getAmount().toString(), multiply.toString(), "/base/worldCup/wxRefundWorldCupCallback");
                     if (!"SUCCESS".equals(map.get("return_code"))) {
@@ -885,14 +928,14 @@
                 }
             }
             //支付宝支付
-            if(worldCupPayment.getPayType() == 2){
+            if (worldCupPayment.getPayType() == 2) {
                 Map<String, String> map = null;
                 try {
                     map = payMoneyUtil.aliRefund(worldCupPayment.getPayOrderNo(), multiply.toString());
                 } catch (AlipayApiException e) {
                     throw new RuntimeException(e);
                 }
-                if("10000".equals(map.get("code"))){
+                if ("10000".equals(map.get("code"))) {
                     String trade_no = map.get("trade_no");
                     worldCupPayment.setWorldCupId(null);
                     worldCupPayment.setRefundTime(new Date());
@@ -903,7 +946,7 @@
                 }
             }
             //玩湃币支付
-            if(worldCupPayment.getPayType() == 3){
+            if (worldCupPayment.getPayType() == 3) {
                 Integer appUserId = worldCupPayment.getAppUserId();
                 AppUser appUser = appUserClient.getAppUser(appUserId);
                 appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() + multiply.intValue());
@@ -916,7 +959,7 @@
                 worldCupPaymentService.updateById(worldCupPayment);
             }
             //课时支付
-            if(worldCupPayment.getPayType() == 4){
+            if (worldCupPayment.getPayType() == 4) {
                 for (WorldCupPaymentParticipant worldCupPaymentParticipant1 : list1) {
                     String content = worldCupPaymentParticipant1.getContent();
                     DeductionClassHourList deductionClassHourList = JSON.parseObject(content, DeductionClassHourList.class);
@@ -947,14 +990,14 @@
         for (WorldCup worldCup : worldCups) {
             worldCup.setStatus(2);
         }
-        if(worldCups.size() > 0){
+        if (worldCups.size() > 0) {
             this.updateBatchById(worldCups);
         }
         worldCups = this.list(new QueryWrapper<WorldCup>().eq("status", 2).last(" and endTime <= now()"));
         for (WorldCup worldCup : worldCups) {
             worldCup.setStatus(3);
         }
-        if(worldCups.size() > 0){
+        if (worldCups.size() > 0) {
             this.updateBatchById(worldCups);
         }
     }
@@ -977,9 +1020,9 @@
             List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id)
                     .eq("payStatus", 2).eq("state", 1));
             List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList());
-            if(collect.size() == 0){
+            if (collect.size() == 0) {
                 stringObjectMap.put("applicants", 0);
-            }else{
+            } else {
                 int count1 = worldCupPaymentParticipantService.getCount(id, collect);
                 stringObjectMap.put("applicants", count1);
             }
@@ -998,4 +1041,120 @@
     public void updateWorldCupAll(WorldCup worldCup) {
         this.baseMapper.updateWorldCupAll(worldCup);
     }
+
+    @Override
+    public ResultUtil endWorldCup(String custom, Integer red_score, Integer blue_score) {
+        String[] split = custom.split(",");
+        ArrayList<Long> ids = new ArrayList<>();
+        for (String s : split) {
+            ids.add(Long.parseLong(s));
+        }
+        List<WorldCupCompetitor> worldCupCompetitors = worldCupCompetitorService.listByIds(ids);
+        try {
+            WorldCupCompetitor worldCupCompetitor1 = worldCupCompetitors.get(0);
+            WorldCup worldCup = this.getById(worldCupCompetitor1.getWorldCupId());
+            if(worldCup.getType()==null || worldCup.getType() == 1){
+                return ResultUtil.error("非智慧赛事才可以结束比赛");
+            }
+            for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) {
+                worldCupCompetitor.setWorldCupId(null);
+                //蓝方
+                if(worldCupCompetitor.getParticipant() == 1){
+                    worldCupCompetitor.setMatchResult(blue_score.compareTo(red_score));
+                    worldCupCompetitor.setOurScore(blue_score);
+                    worldCupCompetitor.setOpponentScore(red_score);
+                    worldCupCompetitor.setEndTime(new Date());
+                    worldCupCompetitor.setWinIntegral(0);
+                    worldCupCompetitor.setDrawIntegral(0);
+                    worldCupCompetitor.setLoseIntegral(0);
+                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) > 0){
+                        worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getWinIntegral());
+                        vo.setType(7);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getDrawIntegral());
+                        vo.setType(9);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getLoseIntegral());
+                        vo.setType(10);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }
+                }
+                //红方
+                if(worldCupCompetitor.getParticipant() == 2){
+                    worldCupCompetitor.setMatchResult(red_score.compareTo(blue_score));
+                    worldCupCompetitor.setOurScore(red_score);
+                    worldCupCompetitor.setOpponentScore(blue_score);
+                    worldCupCompetitor.setEndTime(new Date());
+                    worldCupCompetitor.setWinIntegral(0);
+                    worldCupCompetitor.setDrawIntegral(0);
+                    worldCupCompetitor.setLoseIntegral(0);
+                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) > 0){
+                        worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getWinIntegral());
+                        vo.setType(7);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getDrawIntegral());
+                        vo.setType(9);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getLoseIntegral());
+                        vo.setType(10);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+        worldCupCompetitorService.updateBatchById(worldCupCompetitors);
+
+        //添加勋章
+        for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) {
+            Integer appUserId = worldCupCompetitor.getAppUserId();
+            //常胜将军
+            if(1 == worldCupCompetitor.getMatchResult()){
+                int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId).eq("matchResult", 1));
+                StudentHonor studentHonor = new StudentHonor();
+                studentHonor.setAppUserId(appUserId);
+                studentHonor.setHonorType(5);
+                studentHonor.setNumber(count);
+                studentHonorClient.saveStudentHonor(studentHonor);
+            }
+            //越战越勇
+            int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId));
+            StudentHonor studentHonor = new StudentHonor();
+            studentHonor.setAppUserId(appUserId);
+            studentHonor.setHonorType(6);
+            studentHonor.setNumber(count);
+            studentHonorClient.saveStudentHonor(studentHonor);
+        }
+        return ResultUtil.success();
+    }
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/config/RedisConfig.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/config/RedisConfig.java
index 746f3c4..33f2634 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/config/RedisConfig.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/config/RedisConfig.java
@@ -10,7 +10,7 @@
 @Configuration
 @PropertySource("classpath:redis.properties")
 public class RedisConfig {
-    @Value("${spring.redis.host}")
+    @Value("192.168.110.106")
     private String host;
 
     @Value("${spring.redis.port}")
diff --git a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
index 4df4120..58c0905 100644
--- a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
+++ b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
@@ -110,11 +110,22 @@
         participantType,
         participantId,
         appUserId,
-        count(*) as num
+        count(*) as num,
+        winIntegral,
+        drawIntegral,
+        loseIntegral
         from t_world_cup_competitor
         where matchResult is not null
         <if test="null != item.year">
             and DATE_FORMAT(startTime, '%Y') = #{item.year}
+        </if>
+        <if test="null != sTime and null != eTime">
+            and startTime between #{sTime} and #{eTime}
+        </if>
+
+
+        <if test="null != item.worldCupId">
+            and worldCupId =#{item.worldCupId}
         </if>
         <if test="null != appUserIds and appUserIds.size() > 0">
             and appUserId in
@@ -136,6 +147,12 @@
         where matchResult is not null and matchResult != -1
         <if test="null != item.year">
             and DATE_FORMAT(startTime, '%Y') = #{item.year}
+        </if>
+        <if test="null != sTime and null != eTime">
+            and startTime between #{sTime} and #{eTime}
+        </if>
+        <if test="null != item.worldCupId">
+            and worldCupId =#{item.worldCupId}
         </if>
         <if test="null != appUserIds and appUserIds.size() > 0">
             and appUserId in
@@ -162,6 +179,9 @@
                 #{iten}
             </foreach>
         </if>
+        <if test="sTime != null and eTime != null">
+            and startTime between #{sTime} and #{eTime}
+        </if>
         group by participantType, participantId, appUserId
     </select>
     
@@ -178,6 +198,9 @@
             <foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
                 #{iten}
             </foreach>
+        </if>
+        <if test="sTime != null and eTime != null">
+            and startTime between #{sTime} and #{eTime}
         </if>
         group by participantType, participantId, appUserId
     </select>
@@ -257,7 +280,8 @@
         ourScore,
         opponentScore,
         matchResult,
-        b.`name`
+        b.`name`,
+        CONCAT(a.id, '') as id
         from t_world_cup_competitor a
         left join t_world_cup b on (a.worldCupId = b.id)
         where matchResult is not null
@@ -311,4 +335,22 @@
     <select id="getMatchTime" resultType="int">
         select count(*) as matchTime from (select code from t_world_cup_competitor where worldCupId = #{worldCupId} group by code) as b
     </select>
+
+
+
+    <select id="getWorldCupListFromRank" resultType="com.dsh.communityWorldCup.model.WorldCupListVo">
+        select
+        a.id,
+        b.worldCupId,
+        c.name,
+        c.lon,
+        c.lat,
+        c.basePeople as heat,
+        c.status
+        from t_world_cup_payment_participant a
+        left join t_world_cup_payment b on (a.worldCupPaymentId = b.id)
+        left join t_world_cup c on (b.worldCupId = c.id)
+        where  a.participantId = #{item.id} and b.payStatus = 2 and b.refundTime is null and b.state = 1
+        order by a.createTime desc
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml
index 6ad4d7d..7411894 100644
--- a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml
+++ b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml
@@ -12,6 +12,7 @@
         status,
         lon,
         lat,
+        type,
         CASE status WHEN 1 THEN 2 WHEN 2 THEN 1 ELSE status END as sort
         from t_world_cup where status != 3
         <if test="null != item.content and '' != item.content">
@@ -69,7 +70,8 @@
         a.paiCoin,
         a.classHour,
         a.intro,
-        a.content
+        a.content,
+        a.contentOne
         from t_world_cup  a
         where a.id = #{id}
     </select>
@@ -85,7 +87,8 @@
         CONCAT(startAge, '至', endAge) as age,
         gender,
         maxPeople,
-        status
+        status,
+        type
         from t_world_cup
         where 1 = 1
         <if test="null != item.name and '' != item.name">
@@ -100,6 +103,9 @@
         <if test="null != item.status">
             and status= #{item.status}
         </if>
+        <if test="null != item.type">
+            and type= #{item.type}
+        </if>
         order by createTime desc limit #{item.offset}, #{item.limit}
     </select>
 
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/SaveData.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/SaveData.java
new file mode 100644
index 0000000..cf8867c
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/SaveData.java
@@ -0,0 +1,29 @@
+package com.dsh.course.feignClient.communityWorldCup.Model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/3/6 20:00
+ */
+@Data
+public class SaveData {
+    /**
+     * 参赛数据id
+     */
+    private Long id;
+    /**
+     * 蓝方得分
+     */
+    private String blueStr;
+    /**
+     * 红方得分
+     */
+    private String redStr;
+
+    private String time;
+
+    private Integer blueScore;
+
+    private Integer redScore;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCup.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCup.java
index 26193b0..76429a7 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCup.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCup.java
@@ -88,6 +88,21 @@
      * 胜利获得积分
      */
     private Integer winIntegral;
+
+    /**
+     * 类型(1=智慧赛事,2=非智慧赛事)
+     */
+    private Integer type;
+
+    /**
+     * 平场获得积分
+     */
+    private Integer drawIntegral;
+
+    /**
+     * 失败获得积分
+     */
+    private Integer loseIntegral;
     /**
      * 省
      */
@@ -141,6 +156,10 @@
      */
     private String content;
     /**
+     * 参赛协议
+     */
+    private String contentOne;
+    /**
      * 比赛状态(1=未开始,2=已开始,3=已结束,4=已取消)
      */
     private Integer status;
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupListAll.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupListAll.java
index 358edfb..b7a4705 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupListAll.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupListAll.java
@@ -24,6 +24,11 @@
      * 比赛状态(1=未开始,2=已开始,3=已结束,4=已取消)
      */
     private Integer status;
+
+    /**
+     * 1=智慧赛事,2=非智慧赛事
+     */
+    private Integer type;
     /**
      * 页码
      */
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupRecords.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupRecords.java
index ea75903..5bae32e 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupRecords.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupRecords.java
@@ -17,6 +17,10 @@
      */
     private String city;
     /**
+     * 时间
+     */
+    private String time;
+    /**
      * 页码
      */
     private Integer offset;
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java
index 2ac69c3..0b6265d 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java
@@ -1,6 +1,8 @@
 package com.dsh.course.feignClient.communityWorldCup;
 
 import com.dsh.course.feignClient.communityWorldCup.Model.*;
+import com.dsh.course.model.dto.UserDetailsOfSearch;
+import com.dsh.course.model.vo.WorldCupUserListVo;
 import com.dsh.guns.modular.system.model.WorldCupQuery;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -149,4 +151,11 @@
      */
     @PostMapping("/worldCup/getRegisteredNumber")
     int getRegisteredNumber(Integer worldCupId);
+
+    @PostMapping("/worldCup/userDetailsOfSearch")
+    List<WorldCupUserListVo> userDetailsOfSearch(UserDetailsOfSearch search);
+
+    @PostMapping("/worldCup/savaData1")
+    void savaData1(SaveData saveData);
+
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/model/dto/UserDetailsOfSearch.java b/cloud-server-management/src/main/java/com/dsh/course/model/dto/UserDetailsOfSearch.java
new file mode 100644
index 0000000..2e5cef3
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/model/dto/UserDetailsOfSearch.java
@@ -0,0 +1,19 @@
+package com.dsh.course.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserDetailsOfSearch {
+    
+    private Integer id;
+
+    private String name;
+
+    private String phone;
+
+    private String idCard;
+
+    private List<Integer> useIds;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/model/vo/WorldCupUserListVo.java b/cloud-server-management/src/main/java/com/dsh/course/model/vo/WorldCupUserListVo.java
new file mode 100644
index 0000000..bf5192f
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/model/vo/WorldCupUserListVo.java
@@ -0,0 +1,27 @@
+package com.dsh.course.model.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class WorldCupUserListVo {
+    @ApiModelProperty("报名id")
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("性别")
+    private String sex;
+
+    @ApiModelProperty("年龄")
+    private String age;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
index 38fd136..35dff86 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
@@ -96,7 +96,7 @@
     @ResponseBody
     public List<TStore> getStores(Integer id)
     {
-        payMoneyUtil.getMessage();
+//        payMoneyUtil.getMessage();
         return storeService.list(new QueryWrapper<TStore>()
                 .eq("operatorId",id)
                 .ne("state",3));
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
index bc07141..42e6f5c 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
@@ -417,6 +417,8 @@
         if (imgFile != null){
         String originalFilename = imgFile.getOriginalFilename();
         String newName = originalFilename.substring(imgFile.getOriginalFilename().lastIndexOf("."));
+        
+
         String url = OssUploadUtil.ossUpload("img/",imgFile);
         Map<String, String> map = new HashMap<String, String>();
         //是否上传成功
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java
index 81b90f0..1c7f9ac 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java
@@ -2,15 +2,13 @@
 
 import com.dsh.course.feignClient.communityWorldCup.Model.*;
 import com.dsh.course.feignClient.communityWorldCup.WorldCupClient;
+import com.dsh.course.model.dto.UserDetailsOfSearch;
 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 org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -45,6 +43,25 @@
     public String openWorldCupGameStatisticsInfo(Model model, Integer id){
         model.addAttribute("id", id);
         return PREFIX + "worldCupGameStatisticsInfo.html";
+    }
+
+    @RequestMapping("/addWorldCupGameStatisticsInfo")
+    public String addWorldCupGameStatisticsInfo(Model model, Integer id){
+        WorldCup worldCupById = worldCupClient.getWorldCupById(id);
+        model.addAttribute("item", worldCupById);
+        return PREFIX + "addWorldCupGameStatisticsListInfo.html";
+    }
+    @RequestMapping("/userList")
+    public String userList(Integer id,Model model){
+        WorldCup worldCupById = worldCupClient.getWorldCupById(id);
+        model.addAttribute("item", worldCupById);
+        return PREFIX + "TUserList.html";
+    }
+    @RequestMapping("/userList1")
+    public String userList1(Integer id,Model model){
+        WorldCup worldCupById = worldCupClient.getWorldCupById(id);
+        model.addAttribute("item", worldCupById);
+        return PREFIX + "TUserList1.html";
     }
 
 
@@ -233,4 +250,26 @@
             e.printStackTrace();
         }
     }
+
+
+    @ResponseBody
+    @PostMapping("/userDetailsOfSearch")
+    public Object storeDetailsOfSearch(Integer id,String  name,String phone,String idCard){
+        UserDetailsOfSearch userDetailsOfSearch = new UserDetailsOfSearch();
+        userDetailsOfSearch.setId( id);
+        userDetailsOfSearch.setName(name);
+        userDetailsOfSearch.setPhone(phone);
+        userDetailsOfSearch.setIdCard(idCard);
+        // 获取报了名的用户 未产生赛事
+        return worldCupClient.userDetailsOfSearch(userDetailsOfSearch);
+    }
+
+
+    @ResponseBody
+    @PostMapping("/savaData1")
+    public Object savaData1(SaveData saveData){
+        // 修改WorldCupPaymentParticipant 参赛状态  savet_world_cup_competitor
+         worldCupClient.savaData1(saveData);
+         return ResultUtil.success();
+    }
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
index dc0f498..75fbf3f 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
@@ -2,13 +2,6 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.alipay.api.AlipayApiException;
-import com.alipay.api.AlipayClient;
-import com.alipay.api.CertAlipayRequest;
-import com.alipay.api.DefaultAlipayClient;
-import com.alipay.api.domain.AlipayTradeAppPayModel;
-import com.alipay.api.msg.AlipayMsgClient;
-import com.alipay.api.msg.MsgHandler;
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -343,75 +336,75 @@
     /**
      * 处理直付通审核通过和拒绝消息
      */
-    public void getMessage() {
-        System.err.println("进入");
-        final AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliAppid);
-        try {
-            alipayMsgClient.setConnector(serverHost);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        alipayMsgClient.setSecurityConfig(signType, appPrivateKey, alipay_public_key);
-        try {
-            alipayMsgClient.connect();
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-        alipayMsgClient.setMessageHandler( new  MsgHandler() {
-            /**
-             * 客户端接收到消息后回调此方法
-             *  @param  msgApi 接收到的消息的消息api名
-             *  @param  msgId 接收到的消息的消息id
-             *  @param  bizContent 接收到的消息的内容,json格式
-             */
-            public   void   onMessage (String msgApi, String msgId, String bizContent)   {
-                // 直付通进件审核通过
-                if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.passed")){
-                    // 修改运营商状态 将返回的商户号填入运营商
-                    System.out.println( "receive message. msgApi:"  + msgApi +  " msgId:"  + msgId +  " bizContent:"  + bizContent);
-                    JSONObject json = JSONObject.parseObject(bizContent);
-                    // 商户号
-                    String smid = json.getString("smid");
-                    // 审核备注信息
-                    String memo = json.getString("memo");
-                    // 订单id
-                    String orderId = json.getString("order_id");
-                    // 通过订单id查询
-                    OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
-                            .eq("orderNo",orderId));
-                    auth.setSmid(smid);
-                    auth.setAuditState(2);
-                    auth.setRefuseReason(memo);
-                    operatorAuthService.updateById(auth);
-                    Integer operatorId = auth.getOperatorId();
-                    OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
-                            .eq("operatorId", operatorId));
-                    operatorId1.setAlipayNum(smid);
-                    operatorId1.setAlipayAudit(2);
-                    operatorUserService.updateById(operatorId1);
-                }
-                // 直付通进件审核失败
-                if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.rejected")){
-                    JSONObject json = JSONObject.parseObject(bizContent);
-                    // 商户号
-                    String orderId = json.getString("order_id");
-                    // 官方拒绝理由
-                    String reason = json.getString("reason");
-                    // 通过订单id查询
-                    OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
-                            .eq("orderNo",orderId));
-                    auth.setAuditState(3);
-                    auth.setRefuseReason(reason);
-                    operatorAuthService.updateById(auth);
-                    Integer operatorId = auth.getOperatorId();
-                    OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
-                            .eq("operatorId", operatorId));
-                    operatorId1.setAlipayAudit(3);
-                    operatorUserService.updateById(operatorId1);
-                }
-            }
-        });
-    }
+//    public void getMessage() {
+//        System.err.println("进入");
+//        final AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliAppid);
+//        try {
+//            alipayMsgClient.setConnector(serverHost);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        alipayMsgClient.setSecurityConfig(signType, appPrivateKey, alipay_public_key);
+//        try {
+//            alipayMsgClient.connect();
+//        } catch (InterruptedException e) {
+//            e.printStackTrace();
+//        }
+//        alipayMsgClient.setMessageHandler( new  MsgHandler() {
+//            /**
+//             * 客户端接收到消息后回调此方法
+//             *  @param  msgApi 接收到的消息的消息api名
+//             *  @param  msgId 接收到的消息的消息id
+//             *  @param  bizContent 接收到的消息的内容,json格式
+//             */
+//            public   void   onMessage (String msgApi, String msgId, String bizContent)   {
+//                // 直付通进件审核通过
+//                if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.passed")){
+//                    // 修改运营商状态 将返回的商户号填入运营商
+//                    System.out.println( "receive message. msgApi:"  + msgApi +  " msgId:"  + msgId +  " bizContent:"  + bizContent);
+//                    JSONObject json = JSONObject.parseObject(bizContent);
+//                    // 商户号
+//                    String smid = json.getString("smid");
+//                    // 审核备注信息
+//                    String memo = json.getString("memo");
+//                    // 订单id
+//                    String orderId = json.getString("order_id");
+//                    // 通过订单id查询
+//                    OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+//                            .eq("orderNo",orderId));
+//                    auth.setSmid(smid);
+//                    auth.setAuditState(2);
+//                    auth.setRefuseReason(memo);
+//                    operatorAuthService.updateById(auth);
+//                    Integer operatorId = auth.getOperatorId();
+//                    OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+//                            .eq("operatorId", operatorId));
+//                    operatorId1.setAlipayNum(smid);
+//                    operatorId1.setAlipayAudit(2);
+//                    operatorUserService.updateById(operatorId1);
+//                }
+//                // 直付通进件审核失败
+//                if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.rejected")){
+//                    JSONObject json = JSONObject.parseObject(bizContent);
+//                    // 商户号
+//                    String orderId = json.getString("order_id");
+//                    // 官方拒绝理由
+//                    String reason = json.getString("reason");
+//                    // 通过订单id查询
+//                    OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+//                            .eq("orderNo",orderId));
+//                    auth.setAuditState(3);
+//                    auth.setRefuseReason(reason);
+//                    operatorAuthService.updateById(auth);
+//                    Integer operatorId = auth.getOperatorId();
+//                    OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+//                            .eq("operatorId", operatorId));
+//                    operatorId1.setAlipayAudit(3);
+//                    operatorUserService.updateById(operatorId1);
+//                }
+//            }
+//        });
+//    }
     /**
      * 支付宝支付
      */
@@ -468,19 +461,19 @@
 //        }
 
 
-        //实例化客户端
-        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
-        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
-        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
-        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
-        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
-        model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
-        model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。
-        model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
-        model.setTimeoutExpress("30m");
-        model.setTotalAmount(amount);//付款金额
-        model.setProductCode("QUICK_MSECURITY_PAY");
-        model.setPassbackParams(passbackParams);//自定义参数
+//        //实例化客户端
+//        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
+//        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
+//        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
+//        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
+//        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
+//        model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
+//        model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。
+//        model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
+//        model.setTimeoutExpress("30m");
+//        model.setTotalAmount(amount);//付款金额
+//        model.setProductCode("QUICK_MSECURITY_PAY");
+//        model.setPassbackParams(passbackParams);//自定义参数
 
 
         //分账
@@ -521,42 +514,42 @@
 //        model.setRoyaltyInfo(royaltyInfo);
 //        System.err.println("=================="+royaltyInfo);
         //
-        request.setBizModel(model);
-        request.setNotifyUrl(callbackPath + notifyUrl);
-        try {
-            //这里和普通的接口调用不同,使用的是sdkExecute
-            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
-            Map<String, String> map = new HashMap<>();
-            map.put("orderString", response.getBody());
-            map.put("returnId", passbackParams);
-            System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
-            return ResultUtil.success(map);
-        } catch (AlipayApiException e) {
-            e.printStackTrace();
-        }
+//        request.setBizModel(model);
+//        request.setNotifyUrl(callbackPath + notifyUrl);
+//        try {
+//            //这里和普通的接口调用不同,使用的是sdkExecute
+//            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
+//            Map<String, String> map = new HashMap<>();
+//            map.put("orderString", response.getBody());
+//            map.put("returnId", passbackParams);
+//            System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
+//            return ResultUtil.success(map);
+//        } catch (AlipayApiException e) {
+//            e.printStackTrace();
+//        }
         return null;
     }
 
 
 
 
-    /**
-     * 支付宝查询订单支付状态
-     *
-     * @param out_trade_no
-     * @return
-     * @throws Exception
-     */
-    public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception {
-        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
-        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
-        request.setBizContent("{" +
-                "  \"out_trade_no\":\"" + out_trade_no + "\"" +
-                "}");
-        AlipayTradeQueryResponse response = alipayClient.execute(request);
-        return response;
-
-    }
+//    /**
+//     * 支付宝查询订单支付状态
+//     *
+//     * @param out_trade_no
+//     * @return
+//     * @throws Exception
+//     */
+//    public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception {
+//        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
+//        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
+//        request.setBizContent("{" +
+//                "  \"out_trade_no\":\"" + out_trade_no + "\"" +
+//                "}");
+//        AlipayTradeQueryResponse response = alipayClient.execute(request);
+//        return response;
+//
+//    }
 
 
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html
index 57b5d66..2d6158f 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html
@@ -240,7 +240,7 @@
                 </div>
             </div>
 
-            <div style="font-size: x-large;">社区世界杯板块</div>
+            <div style="font-size: x-large;">赛事比赛板块</div>
             @for(obj in worldCupStores){
             <div class="row">
                 <input hidden name="cupId" value="${obj.id}">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup.html
index 023a2d8..0998b88 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup.html
@@ -22,6 +22,20 @@
                                 <div class="input-group">
                                     <div class="input-group-btn open">
                                         <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+                                            赛事类别:
+                                        </button>
+                                    </div>
+                                    <select class="form-control" id="type">
+                                        <option value="">全部</option>
+                                        <option value="1">智慧赛事</option>
+                                        <option value="2">非智慧赛事</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <div class="input-group-btn open">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
                                             状态
                                         </button>
                                     </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_add.html
index a0d1c0b..0c8c771 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_add.html
@@ -31,6 +31,18 @@
             <input class="form-control" id="name">
           </div>
         </div>
+
+        <div class="form-group">
+          <label class="col-sm-3 control-label">*赛事类别:</label>
+          <div class="col-sm-3">
+            <select class="form-control" id="type">
+              <option value="1">智慧赛事</option>
+              <option value="2">非智慧赛事</option>
+            </select>
+          </div>
+        </div>
+
+
         <div class="form-group">
           <label class="col-sm-3 control-label">*开始时间:</label>
           <div class="col-sm-3">
@@ -119,6 +131,20 @@
             <input class="form-control" id="winIntegral" type="number" min="0">
           </div>
         </div>
+
+        <div class="form-group">
+          <label class="col-sm-3 control-label">平场可获积分</label>
+          <div class="col-sm-3">
+            <input class="form-control" id="drawIntegral" type="number" min="0">
+          </div>
+          <label style="float: left;line-height: 35px;">败场可获积分</label>
+          <div class="col-sm-3">
+            <input class="form-control" id="loseIntegral" type="number" min="0">
+          </div>
+        </div>
+
+
+
         <div class="form-group">
           <label class="col-sm-3 control-label">*比赛地点:</label>
           <div class="col-sm-7">
@@ -224,6 +250,12 @@
             <textarea id="content" style="height: 800px;width: 100%;"></textarea>
           </div>
         </div>
+        <div class="form-group">
+          <label class="col-sm-3 control-label">*参赛协议</label>
+          <div class="col-sm-7" style="padding: 0px;">
+            <textarea id="contentOne" style="height: 800px;width: 100%;"></textarea>
+          </div>
+        </div>
       </div>
     </div>
     <div class="row btn-group-m-t">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_edit.html
index ddbe468..8c5aa53 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_edit.html
@@ -32,6 +32,19 @@
             <input class="form-control" id="name" value="${item.name}">
           </div>
         </div>
+
+
+        <div class="form-group">
+          <label class="col-sm-3 control-label">*赛事类别:</label>
+          <div class="col-sm-3">
+            <select class="form-control" id="type">
+              <option value="1" ${1 == item.type ? 'selected' : ''}>智慧赛事</option>
+              <option value="2" ${2 == item.type ? 'selected' : ''}>非智慧赛事</option>
+            </select>
+          </div>
+        </div>
+
+
         <div class="form-group">
           <label class="col-sm-3 control-label">*开始时间:</label>
           <div class="col-sm-3">
@@ -120,7 +133,20 @@
             <input class="form-control" id="winIntegral" type="number" min="0" value="${item.winIntegral}">
           </div>
         </div>
+
+
         <div class="form-group">
+          <label class="col-sm-3 control-label">平场可获积分</label>
+          <div class="col-sm-3">
+            <input class="form-control" id="drawIntegral" type="number" min="0" value="${item.drawIntegral}">
+          </div>
+          <label style="float: left;line-height: 35px;">败场可获积分</label>
+          <div class="col-sm-3">
+            <input class="form-control" id="loseIntegral" type="number" min="0" value="${item.loseIntegral}">
+          </div>
+        </div>
+
+  <div class="form-group">
           <label class="col-sm-3 control-label">*比赛地点:</label>
           <div class="col-sm-7">
             <input class="form-control" id="address" onchange="WorldCupInfo.searchByStationName(this,1)" value="${item.address}">
@@ -226,6 +252,12 @@
             <textarea id="content" style="height: 800px;width: 100%;">${item.content}</textarea>
           </div>
         </div>
+        <div class="form-group">
+          <label class="col-sm-3 control-label">*参赛协议</label>
+          <div class="col-sm-7" style="padding: 0px;">
+            <textarea id="contentOne" style="height: 800px;width: 100%;">${item.contentOne}</textarea>
+          </div>
+        </div>
       </div>
     </div>
     <div class="row btn-group-m-t">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_info.html
index 9305a52..a767a67 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_info.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_info.html
@@ -29,6 +29,17 @@
             <input class="form-control" id="name" value="${item.name}" disabled>
           </div>
         </div>
+
+        <div class="form-group">
+          <label class="col-sm-3 control-label">*赛事类别:</label>
+          <div class="col-sm-3">
+            <select class="form-control" id="type" disabled>
+              <option value="1" ${1 == item.type ? 'selected' : ''}>智慧赛事</option>
+              <option value="2" ${2 == item.type ? 'selected' : ''}>非智慧赛事</option>
+            </select>
+          </div>
+        </div>
+
         <div class="form-group">
           <label class="col-sm-3 control-label">*开始时间:</label>
           <div class="col-sm-3">
@@ -117,6 +128,17 @@
             <input class="form-control" id="winIntegral" type="number" min="0" value="${item.winIntegral}" disabled>
           </div>
         </div>
+  <div class="form-group">
+    <label class="col-sm-3 control-label">平场可获积分</label>
+    <div class="col-sm-3">
+      <input class="form-control" id="drawIntegral" type="number" min="0" value="${item.drawIntegral}" disabled>
+    </div>
+    <label style="float: left;line-height: 35px;">败场可获积分</label>
+    <div class="col-sm-3">
+      <input class="form-control" id="loseIntegral" type="number" min="0" value="${item.loseIntegral}" disabled>
+    </div>
+  </div>
+
         <div class="form-group">
           <label class="col-sm-3 control-label">*比赛地点:</label>
           <div class="col-sm-7">
@@ -200,6 +222,12 @@
             <textarea id="content" style="height: 800px;width: 100%;">${item.content}</textarea>
           </div>
         </div>
+        <div class="form-group">
+          <label class="col-sm-3 control-label">参赛协议</label>
+          <div class="col-sm-7" style="padding: 0px;">
+            <textarea id="contentOne" style="height: 800px;width: 100%;">${item.contentOne}</textarea>
+          </div>
+        </div>
       </div>
     </div>
   </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList.html
new file mode 100644
index 0000000..b5a0e65
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList.html
@@ -0,0 +1,50 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>参赛人员</h5>
+            </div>
+            <div class="ibox-content">
+
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <input type="hidden" id="id" value="${item.id}"></input>
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#NameCon id="userName" name="姓名:" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="phone" name="联系电话:" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="idCard" name="身份证号:" />
+                            </div>
+                <div class="col-sm-3">
+                    <#button name="搜索" icon="fa-search" clickFun="TStoreProvince.search()"/>
+                </div>
+            </div>
+            <div class="hidden-xs" id="TStoreProvinceTableToolbar" role="group">
+            </div>
+            <#table id="TStoreProvinceTable"/>
+            <div style="margin-left: 30%">
+                <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.storeOfClosePage()"
+                        id="closePage" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+                    <i class="fa fa-check"></i>&nbsp;关闭
+                </button>
+
+                <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.saveSelectStores()"
+                        id="submit" style="margin-left: 5%;width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+                    <i class="fa fa-check"></i>&nbsp;保存
+                </button>
+            </div>
+        </div>
+    </div>
+</div>
+
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/worldCupRecords/TStoreInfo.js"></script>
+<script src="${ctxPath}/modular/system/worldCupRecords/TCouponInfo.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList1.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList1.html
new file mode 100644
index 0000000..7c1b0ef
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList1.html
@@ -0,0 +1,50 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>参赛人员</h5>
+            </div>
+            <div class="ibox-content">
+
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <input type="hidden" id="id" value="${item.id}"></input>
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#NameCon id="userName" name="姓名:" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="phone" name="联系电话:" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="idCard" name="身份证号:" />
+                            </div>
+                <div class="col-sm-3">
+                    <#button name="搜索" icon="fa-search" clickFun="TStoreProvince.search()"/>
+                </div>
+            </div>
+            <div class="hidden-xs" id="TStoreProvinceTableToolbar" role="group">
+            </div>
+            <#table id="TStoreProvinceTable"/>
+            <div style="margin-left: 30%">
+                <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.storeOfClosePage()"
+                        id="closePage" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+                    <i class="fa fa-check"></i>&nbsp;关闭
+                </button>
+
+                <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.saveSelectStores1()"
+                        id="submit" style="margin-left: 5%;width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+                    <i class="fa fa-check"></i>&nbsp;保存
+                </button>
+            </div>
+        </div>
+    </div>
+</div>
+
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/worldCupRecords/TStoreInfo.js"></script>
+<script src="${ctxPath}/modular/system/worldCupRecords/TCouponInfo.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/addWorldCupGameStatisticsListInfo.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/addWorldCupGameStatisticsListInfo.html
new file mode 100644
index 0000000..755b8a0
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/addWorldCupGameStatisticsListInfo.html
@@ -0,0 +1,159 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>比赛详情</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <input type="hidden" id="id" value="${item.id}"></input>
+                        <div class="row">
+                            <div class="form-group">
+                                <label class="col-sm-3 control-label">*比赛名称:${item.name}</label>
+                            </div>
+                            <div class="form-group">
+                                <label class="col-sm-3 control-label">*参赛人:</label>
+                            </div>
+
+                            <div class="form-group">
+                                <div class="col-sm-12">
+                                    <label class="col-sm-3 control-label">红方: </label>
+                                    <button onclick="userList()"
+                                            style="height: 22px;width: 82px;background-color: #4a8ff1;color: white;z-index: 15;position:relative;border: none;margin-top: 1%">
+                                        选择人员
+                                    </button>
+                                </div>
+                                <div class="col-sm-12" style="margin-left: -57px;margin-top: 20px">
+                                    <table class="table table-bordered" style="width: 70%;margin-left: 228px;"
+                                           id="userTableOne">
+                                        <thead>
+                                        <tr>
+                                            <td>id</td>
+                                            <td>人员</td>
+                                            <td>联系电话</td>
+                                            <td>性别</td>
+                                            <td>年龄</td>
+                                            <td>操作</td>
+                                        </tr>
+                                        </thead>
+                                        <tbody id="coun"></tbody>
+                                    </table>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <div class="col-sm-12">
+                                    <label class="col-sm-3 control-label">蓝方: </label>
+                                    <button onclick="userList1()"
+                                            style="height: 22px;width: 82px;background-color: #4a8ff1;color: white;z-index: 15;position:relative;border: none;margin-top: 1%">
+                                        选择人员
+                                    </button>
+                                </div>
+                                <div class="col-sm-12" style="margin-left: -57px;margin-top: 20px">
+                                    <table class="table table-bordered" style="width: 70%;margin-left: 228px;"
+                                           id="userTableTwo">
+                                        <thead>
+                                        <tr>
+                                            <td>id</td>
+                                            <td>人员</td>
+                                            <td>联系电话</td>
+                                            <td>性别</td>
+                                            <td>年龄</td>
+                                            <td>操作</td>
+                                        </tr>
+                                        </thead>
+                                        <tbody id="coun1"></tbody>
+                                    </table>
+                                </div>
+                            </div>
+
+                            <div class="form-group">
+                                <div class="col-sm-12" >
+                                    <label class="col-sm-1 control-label">*比赛时间:</label>
+                                    <div class="col-sm-4">
+                                        <input type="text" class="form-control" id="time" name="time"
+                                               placeholder="请选择时间">
+                                    </div>
+                                </div>
+                            </div>
+
+
+<!--                        蓝方得分-->
+                        <div class="form-group">
+                            <div class="col-sm-12" style="margin-top: 10px">
+                                <label class="col-sm-1 control-label">*蓝方得分:</label>
+                                <div class="col-sm-2">
+                                    <input type="text" class="form-control" id="blueScore" name="blueScore"
+                                           placeholder="请输入蓝方得分">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <div class="col-sm-12" style="margin-top: 10px">
+                                <label class="col-sm-1 control-label">*红方得分:</label>
+                                <div class="col-sm-2">
+                                    <input type="text" class="form-control" id="redScore" name="redScore"
+                                           placeholder="请输入红方得分">
+                                </div>
+                            </div>
+                        </div>
+
+                        </div>
+
+                    </div>
+                    <div class="row btn-group-m-t">
+                        <div class="col-sm-10">
+                            <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="WorldCupGameStatisticsListInfo.close1()"/>
+                            <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="WorldCupGameStatisticsListInfo.saveData()"/>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js"></script>
+<script>
+    laydate.render({
+        elem: '#startTime'
+    });
+    laydate.render({
+        elem: '#endTime'
+    });
+    laydate.render({
+        elem: '#time'
+        ,type: 'datetime'
+        ,range: true
+    });
+
+    function close() {
+        console.log(32323)
+        // 方法2: 使用top级别关闭
+    }
+
+
+    function userList() {
+        var index = layer.open({
+            type: 2,
+            title: '人员列表',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/worldCupRecords/userList?id=' + $("#id").val()
+        });
+        this.layerIndex = index;
+    }
+    function userList1() {
+        var index = layer.open({
+            type: 2,
+            title: '人员列表',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/worldCupRecords/userList1?id=' + $("#id").val()
+        });
+        this.layerIndex = index;
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html
index aff7a6e..25c6e9c 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html
@@ -25,6 +25,9 @@
                         <#NameCon id="city" name="所在城市:" />
                       </div>
                       <div class="col-sm-3">
+                        <#NameCon id="time" name="比赛日期:" />
+                      </div>
+                      <div class="col-sm-3">
                         <#button name="搜索" icon="fa-search" clickFun="WorldCupRecords.search1()"/>
                         <#button name="重置" icon="fa-trash" clickFun="WorldCupRecords.resetSearch1()" space="true"/>
                       </div>
@@ -45,6 +48,7 @@
                     </div>
                     <div class="hidden-xs" id="WorldCupRecordsTable2Toolbar" role="group">
                       <#button name="查看详情" icon="fa-plus" clickFun="WorldCupRecords.openWorldCupRecordsInfo()"/>
+                      <#button name="添加赛事记录" icon="fa-plus" clickFun="WorldCupRecords.addWorldCupRecordsInfo()"/>
                     </div>
                     <#table id="WorldCupRecordsTable2"/>
                   </div>
@@ -89,5 +93,9 @@
   laydate.render({
     elem: '#endTime'
   });
+  laydate.render({
+    elem: '#time'
+    ,range: true
+  });
 </script>
 @}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup.js b/cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup.js
index 432c659..658d6d0 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup.js
@@ -15,6 +15,11 @@
         {field: 'selectItem', checkbox: true},
         {title: 'id', field: 'id', visible: true, align: 'center', valign: 'middle'},
         {title: '比赛名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:'20%',},
+        {title: '赛事类别', field: 'type', visible: true, align: 'center', valign: 'middle',width:'20%',
+            formatter:function (data) {
+                return {1:"智慧赛事",2:"非智慧赛事"}[data]
+            }
+        },
         {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',},
         {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle'},
         {title: '报名条件', field: 'age', visible: true, align: 'center', valign: 'middle',
@@ -154,6 +159,7 @@
     queryData['startTime'] =$("#startTime").val();
     queryData['endTime'] =$("#endTime").val();
     queryData['status'] =$("#status").val();
+    queryData['type'] =$("#type").val();
     WorldCup.table.refresh({query: queryData});
 };
 
@@ -162,6 +168,7 @@
     $("#startTime").val("");
     $("#endTime").val("");
     $("#status").val("");
+    $("#type").val("");
     WorldCup.search();
 };
 
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup_info.js b/cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup_info.js
index 95dcffd..e3522fe 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup_info.js
@@ -45,7 +45,11 @@
     let intro = $('#intro').val();
     let coverImg = $('#coverImg').val();
     let homeBackdropImg = $('#homeBackdropImg').val();
+    let type = $('#type').val();
+    let drawIntegral = $('#drawIntegral').val();
+    let loseIntegral = $('#loseIntegral').val();
     let content = editor.getContent();
+    let contentOne = editor1.getContent();
     if(null == name || '' == name){
         Feng.error("请填写有效的比赛名称");
         return
@@ -120,20 +124,24 @@
         Feng.error("请填写有效的赛事简介");
         return
     }
-    if(null == coverImg || '' == coverImg){
-        Feng.error("请上传有效的比赛封面图");
-        return
-    }
-    if(null == homeBackdropImg || '' == homeBackdropImg){
-        Feng.error("请上传有效的首页默认背景图");
-        return
-    }
-    if(WorldCupInfo.goodsPicArray1 == 0){
-        Feng.error("请上传有效的比赛图片");
-        return
-    }
+    // if(null == coverImg || '' == coverImg){
+    //     Feng.error("请上传有效的比赛封面图");
+    //     return
+    // }
+    // if(null == homeBackdropImg || '' == homeBackdropImg){
+    //     Feng.error("请上传有效的首页默认背景图");
+    //     return
+    // }
+    // if(WorldCupInfo.goodsPicArray1 == 0){
+    //     Feng.error("请上传有效的比赛图片");
+    //     return
+    // }
     if(null == content || '' == content){
         Feng.error("请填写有效的比赛详情");
+        return
+    }
+    if(null == contentOne || '' == contentOne){
+        Feng.error("请填写有效的参赛协议");
         return
     }
     let data = {
@@ -159,7 +167,11 @@
         'infoImg': JSON.stringify(WorldCupInfo.goodsPicArray1),
         'intro': intro,
         'content': content,
-        'stores': JSON.stringify(WorldCupInfo.stores)
+        'stores': JSON.stringify(WorldCupInfo.stores),
+        'type': type,
+        'drawIntegral': drawIntegral,
+        'loseIntegral': loseIntegral,
+        'contentOne': contentOne
     }
     if(null != registrationClosingTime && '' != registrationClosingTime){
         data.registrationClosingTime = new Date(registrationClosingTime + " 23:59:59");
@@ -208,6 +220,10 @@
     let coverImg = $('#coverImg').val();
     let homeBackdropImg = $('#homeBackdropImg').val();
     let content = editor.getContent();
+    let type = $('#type').val();
+    let drawIntegral = $('#drawIntegral').val();
+    let loseIntegral = $('#loseIntegral').val();
+    let contentOne = editor1.getContent();
     if(null == name || '' == name){
         Feng.error("请填写有效的比赛名称");
         return
@@ -282,22 +298,27 @@
         Feng.error("请填写有效的赛事简介");
         return
     }
-    if(null == coverImg || '' == coverImg){
-        Feng.error("请上传有效的比赛封面图");
-        return
-    }
-    if(null == homeBackdropImg || '' == homeBackdropImg){
-        Feng.error("请上传有效的首页默认背景图");
-        return
-    }
-    if(WorldCupInfo.goodsPicArray1 == 0){
-        Feng.error("请上传有效的比赛图片");
-        return
-    }
+    // if(null == coverImg || '' == coverImg){
+    //     Feng.error("请上传有效的比赛封面图1");
+    //     return
+    // }
+    // if(null == homeBackdropImg || '' == homeBackdropImg){
+    //     Feng.error("请上传有效的首页默认背景图");
+    //     return
+    // }
+    // if(WorldCupInfo.goodsPicArray1 == 0){
+    //     Feng.error("请上传有效的比赛图片");
+    //     return
+    // }
     if(null == content || '' == content){
         Feng.error("请填写有效的比赛详情");
         return
     }
+    if(null == contentOne || '' == contentOne){
+        Feng.error("请填写有效的参赛协议");
+        return
+    }
+
     let data = {
         'id': $('#id').val(),
         'name': name,
@@ -322,7 +343,11 @@
         'infoImg': JSON.stringify(WorldCupInfo.goodsPicArray1),
         'intro': intro,
         'content': content,
-        'stores': JSON.stringify(WorldCupInfo.stores)
+        'stores': JSON.stringify(WorldCupInfo.stores),
+        'type': type,
+        'drawIntegral': drawIntegral,
+        'loseIntegral': loseIntegral,
+        'contentOne': contentOne
     }
     if(null != registrationClosingTime && '' != registrationClosingTime){
         data.registrationClosingTime = new Date(registrationClosingTime + " 23:59:59");
@@ -569,7 +594,9 @@
 
 
 var editor = null;
+var editor1 = null;
 $(function () {
     //初始化编辑器
     editor = UE.getEditor('content');
+    editor1 = UE.getEditor('contentOne');
 });
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TSiteInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TSiteInfo.js
new file mode 100644
index 0000000..172d53e
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TSiteInfo.js
@@ -0,0 +1,158 @@
+/**
+ * 管理初始化
+ */
+var TStoreProvince = {
+    id: "TStoreProvinceTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1,
+    storeList: []
+};
+
+/**
+ * 初始化表格的列
+ */
+TStoreProvince.initColumn = function () {
+    return [
+        {field: 'selectItem', checkbox: true},
+        {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'},
+        {title: '所在省市', field: 'provinceCity', visible: true, align: 'center', valign: 'middle'},
+        {title: '所属运营商', field: 'account', visible: true, align: 'center', valign: 'middle'},
+        {title: '门店名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+        {title: '场地名称', field: 'siteName', visible: true, align: 'center', valign: 'middle'},
+        {title: '闸机ids', field: 'ids', visible: true, align: 'center', valign: 'middle'},
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TStoreProvince.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TStoreProvince.seItem = selected[0];
+        return true;
+    }
+};
+
+
+TStoreProvince.storeOfClosePage = function (){
+    parent.layer.close(parent.layer.getFrameIndex(window.frameElement.id));
+}
+
+
+TStoreProvince.saveSelectSites = function (){
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }
+    var arr = [];
+    var name ='';
+    for(var i in selected){
+        if(typeof selected[i].id != "undefined"){
+            name =  selected[0].account
+            if(name!=selected[i].account){
+                Feng.info("请选择相同运营商场地")
+                return ;
+            }
+            console.log("arr push")
+            console.log(selected[i].id)
+            arr.push({
+                id: selected[i].id,
+                provinceCity: typeof selected[i].provinceCity != "undefined" ? selected[i].provinceCity : "",
+                accountName: typeof selected[i].account != "undefined" ? selected[i].account : "",
+                name: typeof selected[i].name != "undefined" ? selected[i].name : "",
+                siteName: typeof selected[i].siteName != "undefined" ? selected[i].siteName : "",
+                ids:typeof selected[i].ids != "undefined" ? selected[i].ids : "",
+            })
+        }
+    }
+    console.log("返回之前的数组")
+    console.log(arr)
+    window.parent.TGoodsInfoDlg.selecUserOpt1(arr);
+    TStoreProvince.storeOfClosePage();
+};
+
+
+
+/**
+ * 查询列表
+ */
+TStoreProvince.search = function () {
+    var queryData = {};
+    queryData['provinceId'] = $("#pCode").val();
+    queryData['cityId'] = $("#cCode").val();
+    queryData['operatorId'] = $("#account").val();
+    queryData['storeName'] = $("#storeName").val();
+    TStoreProvince.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TStoreProvince.resetSearch = function () {
+    $("#pCode").val('')
+    $("#cCode").val('')
+    $("#storeName").val('')
+    $("#account").val('')
+    TStoreProvince.search();
+};
+
+function queryProvince(){
+    // 发送AJAX请求到后台获取省份数据
+    // 假设后台返回的数据格式为一个包含省份ID和名称的数组
+    var provinceSelect = document.getElementById("province");
+
+    var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){
+        data.forEach(province => {
+            var option = document.createElement("option");
+            option.value = province.code;  // 根据你的数据结构确定省份的id字段
+            option.text = province.name;  // 根据你的数据结构确定省份的name字段
+            provinceSelect.appendChild(option);
+        });
+    },function(data){
+        Feng.error("下拉失败!" + data.responseJSON.message + "!");
+    });
+    ajax.start();
+    provinceSelect.addEventListener("change", queryCity);
+}
+
+
+// 获取城市数据
+function queryCity() {
+    var selectedProvinceId = this.value; // 获取选择的省份ID
+    // 发送AJAX请求到后台获取对应省份的城市数据
+    // 假设后台返回的数据格式为一个包含城市ID和名称的数组
+
+    var citySelect = document.getElementById("city");
+    citySelect.innerHTML = "";
+    var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity1", function(data){
+
+        data.forEach(province => {
+            var content='<option value="">选择市</option>';
+            $.each(data, function(k,v) {
+                content += "<option value='"+v.code+"'>"+v.name+"</option>";
+            });
+            $("#city").empty().append(content);
+
+        });
+    },function(data){
+        console.log('data:',data)
+        Feng.error("获取失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set('province',selectedProvinceId);
+    ajax.start();
+}
+
+$(function () {
+    var defaultColunms = TStoreProvince.initColumn();
+    var table = new BSTable(TStoreProvince.id, "/tCouponManage/siteDetailsOfSearch", defaultColunms);
+    table.setPaginationType("client");
+    TStoreProvince.table = table.init();
+    queryProvince();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TStoreInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TStoreInfo.js
new file mode 100644
index 0000000..ef6bf34
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TStoreInfo.js
@@ -0,0 +1,175 @@
+/**
+ * 管理初始化
+ */
+var TStoreProvince = {
+    id: "TStoreProvinceTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1,
+    storeList: []
+};
+
+/**
+ * 初始化表格的列
+ */
+TStoreProvince.initColumn = function () {
+    return [
+        {field: 'selectItem', checkbox: true},
+        {title: '序号', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle'},
+        {title: '性别', field: 'sex', visible: true, align: 'center', valign: 'middle'},
+        {title: '年龄', field: 'age', visible: true, align: 'center', valign: 'middle'},
+        {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+        {title: '身份证号', field: 'idCard', visible: true, align: 'center', valign: 'middle'},
+
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TStoreProvince.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TStoreProvince.seItem = selected[0];
+        return true;
+    }
+};
+
+
+TStoreProvince.storeOfClosePage = function (){
+    parent.layer.close(parent.layer.getFrameIndex(window.frameElement.id));
+}
+
+TStoreProvince.saveSelectStores = function (){
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }
+    var arr = [];
+    var name ='';
+    for(var i in selected){
+        if(typeof selected[i].id != "undefined"){
+            console.log( selected[i].id,55555)
+            name =  selected[0].accountName
+            arr.push({
+                id: selected[i].id,
+                name: typeof selected[i].name != "undefined" ? selected[i].name : "",
+                phone: typeof selected[i].phone != "undefined" ? selected[i].phone : "",
+                sex: typeof selected[i].sex != "undefined" ? selected[i].sex : "",
+                age:typeof selected[i].age != "undefined" ? selected[i].age : "",
+            })
+        }
+    }
+    window.parent.WorldCupGameStatisticsListInfo.selecUserOpt(arr);
+    TStoreProvince.storeOfClosePage();
+}
+TStoreProvince.saveSelectStores1 = function (){
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }
+    var arr = [];
+    var name ='';
+    for(var i in selected){
+        if(typeof selected[i].id != "undefined"){
+            name =  selected[0].accountName
+            arr.push({
+                id: selected[i].id,
+                name: typeof selected[i].name != "undefined" ? selected[i].name : "",
+                phone: typeof selected[i].phone != "undefined" ? selected[i].phone : "",
+                sex: typeof selected[i].sex != "undefined" ? selected[i].sex : "",
+                age:typeof selected[i].age != "undefined" ? selected[i].age : "",
+            })
+        }
+    }
+    window.parent.WorldCupGameStatisticsListInfo.selecUserOpt1(arr);
+    TStoreProvince.storeOfClosePage();
+}
+
+
+TStoreProvince.storeOfClosePage = function (){
+    parent.layer.close(parent.layer.getFrameIndex(window.frameElement.id));
+}
+
+
+/**
+ * 查询列表
+ */
+TStoreProvince.search = function () {
+    var queryData = {};
+    queryData['provinceId'] = $("#province").val();
+    queryData['cityId'] = $("#city").val();
+    queryData['operatorId'] = $("#account").val();
+    queryData['storeName'] = $("#storeName").val();
+    TStoreProvince.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TStoreProvince.resetSearch = function () {
+    $("#province").val('')
+    $("#city").val('')
+    $("#storeName").val('')
+    TStoreProvince.search();
+};
+
+function queryProvince(){
+    // 发送AJAX请求到后台获取省份数据
+    // 假设后台返回的数据格式为一个包含省份ID和名称的数组
+    var provinceSelect = document.getElementById("province");
+
+    var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){
+        data.forEach(province => {
+            var option = document.createElement("option");
+            option.value = province.code;  // 根据你的数据结构确定省份的id字段
+            option.text = province.name;  // 根据你的数据结构确定省份的name字段
+            provinceSelect.appendChild(option);
+        });
+    },function(data){
+        Feng.error("下拉失败!" + data.responseJSON.message + "!");
+    });
+    ajax.start();
+    provinceSelect.addEventListener("change", queryCity);
+}
+
+
+// 获取城市数据
+function queryCity() {
+    var selectedProvinceId = this.value; // 获取选择的省份ID
+    // 发送AJAX请求到后台获取对应省份的城市数据
+    // 假设后台返回的数据格式为一个包含城市ID和名称的数组
+
+    var citySelect = document.getElementById("city");
+    citySelect.innerHTML = "";
+    var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity1", function(data){
+
+        data.forEach(province => {
+            var content='<option value="">选择市</option>';
+            $.each(data, function(k,v) {
+                content += "<option value='"+v.code+"'>"+v.name+"</option>";
+            });
+            $("#city").empty().append(content);
+
+        });
+    },function(data){
+        console.log('data:',data)
+        Feng.error("获取失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set('province',selectedProvinceId);
+    ajax.start();
+}
+
+$(function () {
+    var defaultColunms = TStoreProvince.initColumn();
+    var table = new BSTable(TStoreProvince.id, "/worldCupRecords/userDetailsOfSearch?id="+$("#id").val(), defaultColunms);
+    table.setPaginationType("client");
+    TStoreProvince.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/userGameRecord.js b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/userGameRecord.js
index fda2fd2..1602dc2 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/userGameRecord.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/userGameRecord.js
@@ -18,9 +18,71 @@
         {title: '参与比赛', field: 'name', visible: true, align: 'center', valign: 'middle'},
         {title: '比赛时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'},
         {title: '比分', field: 'score', visible: true, align: 'center', valign: 'middle'},
-        {title: '结果', field: 'matchResult', visible: true, align: 'center', valign: 'middle'}
+        {title: '结果', field: 'matchResult', visible: true, align: 'center', valign: 'middle'},
+        {title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle',
+            formatter:function (data, item) {
+                return '<a href="#" onclick="UserGameRecord.changeScore(\'' + data + '\',' + item.blue + ',' + item.red + ')" style="color:blue;">修改比分</a>';
+            }
+        },
     ];
 };
+UserGameRecord.changeScore = function (id, blue, red) {
+    const str = '<div class="row">\n' +
+        '                <div class="form-group" style="height: 50px;">\n' +
+        '                   <label class="col-sm-3 control-label" style="text-align: right;">蓝方得分:</label>' +
+        '                    <div class="col-sm-8">\n' +
+        '                        <input id="blue" class="form-control" type="number" min="0" value="' + blue + '"/>\n' +
+        '                    </div>\n' +
+        '                </div>\n' +
+        '                <div class="form-group" style="height: 50px;">\n' +
+        '                   <label class="col-sm-3 control-label" style="text-align: right;">红方得分:</label>' +
+        '                    <div class="col-sm-8">\n' +
+        '                        <input id="red" class="form-control" type="number" min="0" value="' + red + '"/>\n' +
+        '                    </div>\n' +
+        '                </div>\n' +
+        '       </div>'
+    layer.open({
+        type: 1
+        ,title: '修改比分'
+        ,area: ['500px', '300px']
+        ,offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+        ,id: 'layerDemo' //防止重复弹出
+        ,content: '<div style="padding: 20px">' + str + '</div>'
+        ,btnAlign: 'c' //按钮居中
+        ,shade: 0.5 //不显示遮罩
+        ,btn: ['确认', '关闭']
+        ,yes: function (){
+            let blue = $('#blue').val();
+            let red = $('#red').val();
+            if(null == blue || '' == blue){
+                Feng.error("请填写有效的得分");
+                return
+            }
+            if(null == red || '' == red){
+                Feng.error("请填写有效的得分");
+                return
+            }
+            //提交信息
+            var ajax = new $ax(Feng.ctxPath + "/worldCupRecords/changeScore", function (res) {
+                if (res.code==200){
+                    Feng.success("修改成功!");
+                    WorldCupGameStatisticsListInfo.search();
+                    layer.closeAll();
+                }else{
+                    Feng.error(res.msg);
+                }
+            }, function (data) {
+                Feng.error("修改失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set({
+                'id': id,
+                'blue': blue,
+                'red': red
+            });
+            ajax.start();
+        }
+    });
+};
 
 /**
  * 检查是否选中
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js
index 54d5666..75fa90b 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js
@@ -6,7 +6,10 @@
     seItem: null,		//选中的条目
     table: null,
     layerIndex: -1,
+    storeIds: [],
+    storeIds1: [],
 };
+
 /**
  * 初始化表格的列
  */
@@ -100,8 +103,89 @@
     });
 };
 
+WorldCupGameStatisticsListInfo.selecUserOpt = function (arrays){
 
+    //获取所有的值
+    var subArr= this.storeIds;
 
+    $(".timeClass").each(function () {
+        subArr.push($(this).find("input[name*='id']").val());
+    });
+    let size = subArr.length
+    console.log(size)
+    var str = '';
+    for(var i in arrays){
+        var b = true;
+        for(var j in subArr){
+            if(arrays[i].id === Number(subArr[j])){
+                b = false;
+                break
+            }
+        }
+        if(b){
+            this.storeIds.push(arrays[i].id)
+            str += '<tr class="timeClass">' +
+                '<td><input type="hidden" id="id" name="id" value="'+arrays[i].id+'"><input type="hidden" id="id" name="id" value="'+arrays[i].id+'">' + arrays[i].id + '</td>' +
+                '<td><input type="hidden" id="name" name="name" value="'+arrays[i].name+'">' + arrays[i].name + '</td>' +
+                '<td><input type="hidden" id="phone" name="phone" value="'+arrays[i].phone+'">' + arrays[i].phone +
+                '<td><input type="hidden" id="sex" name="sex" value="'+arrays[i].sex+'">' + arrays[i].sex +
+                '<td><input type="hidden" id="age" name="age" value="'+arrays[i].age+'">' + arrays[i].age +
+                '</td><td><button onclick="deleteSub(this)">移除</button></td></tr>';
+        }
+    }
+    console.log("添加门店后的场地数组和门店数组")
+    console.log(this.storeIds)
+    console.log(this.siteIds)
+    $("#coun").append(str);
+}
+WorldCupGameStatisticsListInfo.selecUserOpt1 = function (arrays){
+    console.log(this.storeIds1,111)
+    //获取所有的值
+    var subArr= this.storeIds1;
+    $(".timeClass1").each(function () {
+        subArr.push($(this).find("input[name*='id']").val());
+    });
+    var str = '';
+    for(var i in arrays){
+        var b = true;
+        for(var j in subArr){
+            if(arrays[i].id === Number(subArr[j])){
+                b = false;
+                break
+            }
+        }
+        console.log(b,3333)
+        if(b){
+            this.storeIds1.push(arrays[i].id)
+            str += '<tr class="timeClass1">' +
+                '<td><input type="hidden" id="id" name="id" value="'+arrays[i].id+'"><input type="hidden" id="id" name="id" value="'+arrays[i].id+'">' + arrays[i].id + '</td>' +
+                '<td><input type="hidden" id="name" name="name" value="'+arrays[i].name+'">' + arrays[i].name + '</td>' +
+                '<td><input type="hidden" id="phone" name="phone" value="'+arrays[i].phone+'">' + arrays[i].phone +
+                '<td><input type="hidden" id="sex" name="sex" value="'+arrays[i].sex+'">' + arrays[i].sex +
+                '<td><input type="hidden" id="age" name="age" value="'+arrays[i].age+'">' + arrays[i].age +
+                '</td><td><button onclick="deleteSub1(this)">移除</button></td></tr>';
+        }
+    }
+    console.log("添加门店后的场地数组和门店数组")
+    console.log(this.storeIds1)
+    $("#coun1").append(str);
+}
+function deleteSub(e) {
+    console.log(e);
+    var row = $(e).closest('tr');
+    var value = row.find('#id').val();
+    WorldCupGameStatisticsListInfo.storeIds.splice(WorldCupGameStatisticsListInfo.storeIds.indexOf(parseInt(value)), 1)
+    $(e).parent().parent().remove();
+    console.log('storeIds',WorldCupGameStatisticsListInfo.storeIds)
+}
+function deleteSub1(e) {
+    console.log(e);
+    var row = $(e).closest('tr');
+    var value = row.find('#id').val();
+    WorldCupGameStatisticsListInfo.storeIds1.splice(WorldCupGameStatisticsListInfo.storeIds1.indexOf(parseInt(value)), 1)
+    $(e).parent().parent().remove();
+    console.log('storeIds',WorldCupGameStatisticsListInfo.storeIds1)
+}
 
 /**
  * 关闭此对话框
@@ -109,6 +193,98 @@
 WorldCupGameStatisticsListInfo.close = function() {
     parent.layer.close(window.parent.WorldCupGameStatisticsInfo.layerIndex);
 };
+WorldCupGameStatisticsListInfo.close1 = function() {
+    // 方法1: 通过parent直接关闭
+    if (window.parent && window.parent.layer) {
+        var index = window.parent.layer.getFrameIndex(window.name);
+        window.parent.layer.close(index);
+    }
+
+};
+WorldCupGameStatisticsListInfo.saveData = function() {
+    // 拿到timeClass中的Id
+    var subArr = [];
+    $(".timeClass").each(function () {
+        subArr.push($(this).find("input[name*='id']").val());
+    });
+    console.log(subArr)
+    var subArr1 = [];
+    $(".timeClass1").each(function () {
+        subArr1.push($(this).find("input[name*='id']").val());
+    });
+    if(subArr.length==0){
+        Feng.error("请选择红方人员!");
+        return;
+    }
+
+    if(subArr1.length==0){
+        Feng.error("请选择蓝方人员!");
+        return;
+    }
+
+    if(subArr.length>6){
+        Feng.error("每组人员最多5人参赛");
+        return;
+    }
+    if(subArr1.length>6){
+        Feng.error("每组人员最多5人参赛");
+        return;
+    }
+    // 判断2个数组是否有交集
+    for(var i=0;i<subArr.length;i++){
+        for(var j=0;j<subArr1.length;j++){
+            if(subArr[i]==subArr1[j]){
+                Feng.error("请勿选择相同的人员!");
+                return;
+            }
+        }
+    }
+
+    // subArr1 用,拼接
+    var redStr = subArr.join(",");
+    var blueStr = subArr1.join(",");
+
+
+
+    // 取比赛时间
+    var time = $("#time").val();
+    if(time==null||time==""){
+        Feng.error("请选择比赛时间!");
+        return;
+    }
+
+    // 取比分
+    var blueScore = $("#blueScore").val();
+    if(blueScore==null||blueScore==""){
+        Feng.error("请填写蓝方比分!");
+        return;
+    }
+    var redScore = $("#redScore").val();
+    if(redScore==null||redScore==""){
+        Feng.error("请填写红方比分!");
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/worldCupRecords/savaData1", function(data){
+        Feng.success("保存成功!");
+        window.parent.TVerified.table.refresh();
+        TVerifiedInfoDlg.close();
+    },function(data){
+        Feng.error("保存失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set({
+        'id': $("#id").val(),
+        'redStr': redStr,
+        'blueStr': blueStr,
+        'time': time,
+        'blueScore': blueScore,
+        'redScore': redScore,
+    });
+    ajax.start();
+
+
+};
 
 WorldCupGameStatisticsListInfo.search = function () {
     var queryData = {};
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js
index 0fdc6a7..2b7dca5 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js
@@ -44,6 +44,27 @@
     });
     this.layerIndex = index;
 }
+/**
+ * 新增赛事记录
+ * @returns {boolean}
+ */
+WorldCupRecords.addWorldCupRecordsInfo = function (){
+    var selected = $('#WorldCupRecordsTable2').bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }
+    let seItem2 = selected[0];
+    var index = layer.open({
+        type: 2,
+        title: '添加赛事记录',
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/worldCupRecords/addWorldCupGameStatisticsInfo?id=' + seItem2.id
+    });
+    this.layerIndex = index;
+}
 
 WorldCupRecords.openUserGameRecord = function (){
     var index = layer.open({
@@ -77,12 +98,14 @@
     var queryData = {};
     queryData['province']  = $("#province").val();
     queryData['city'] =$("#city").val();
+    queryData['time'] =$("#time").val();
     WorldCupRecords.table1.refresh({query: queryData});
 };
 
 WorldCupRecords.resetSearch1 = function () {
     $("#province").val("");
     $("#city").val("");
+    $("#time").val("");
     WorldCupRecords.search1();
 };
 

--
Gitblit v1.7.1