From a540a342416302805adfb1599599bbbbaa191030 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 08 八月 2025 23:42:13 +0800
Subject: [PATCH] 赛事模块

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java                  |    6 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java                                        |  231 ++++----
 cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml                                                     |    1 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java                |   23 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList.html                                      |   50 ++
 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/WorldCupUserListVo.java                            |   27 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java                        |    2 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java                       |   66 ++
 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          |  271 +++++++++-
 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java                                            |   19 
 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js                                             |    5 
 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-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListCoachVo.java                           |    3 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java                    |  132 +++++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html                                |    1 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java                          |    6 
 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              |   76 +++
 cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js                                |   23 
 cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml                                           |   20 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserDetailsOfSearch.java                           |   19 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java                            |    4 
 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-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java                     |    2 
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupCodeListVo.java                            |   26 +
 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                                     |  145 +++++
 31 files changed, 1,276 insertions(+), 175 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 57ad510..928158c 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
@@ -21,6 +21,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;
@@ -725,4 +726,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-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
index 9024d65..c2faace 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,6 +3,7 @@
 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.dsh.communityWorldCup.entity.*;
 import com.dsh.communityWorldCup.feignclient.account.AppUserClient;
@@ -44,6 +45,7 @@
 import java.io.PrintWriter;
 import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -369,8 +371,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil endWorldCup(StartWorldCup startWorldCup){
-        return worldCupService.startWorldCup(startWorldCup);
+    public ResultUtil endWorldCup(String custom, Integer redScore, Integer blueScore){
+        return worldCupService.endWorldCup(custom,redScore,blueScore);
     }
 
 
@@ -719,13 +721,32 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<List<WorldCupListVo>> getWorldCupListFromRank(){
+    public ResultUtil<List<WorldCupListVo>> getWorldCupListFromRank(MyWorldCupList myWorldCupList){
         try {
             Integer uid = tokenUtil.getUserIdFormRedis();
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            List<WorldCupListVo> worldCupRank1 = worldCupCompetitorService.getWorldCupListFromRank(uid);
+            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();
@@ -1199,4 +1220,41 @@
                 .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;
+    }
 }
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 62a5856..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=世界杯获胜 9平场世界杯  10败场世界杯)
+     * 积分类型(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 1f6f47c..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
@@ -88,7 +88,7 @@
      */
     int getMatchTime(@Param("worldCupId") Integer worldCupId);
 
-    List<WorldCupListVo> getWorldCupListFromRank(@Param("uid") Integer uid);
+    List<WorldCupListVo> getWorldCupListFromRank(@Param("item")MyWorldCupList myWorldCupList);
 
 
 }
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/WorldCupCodeListVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupCodeListVo.java
new file mode 100644
index 0000000..6d6e56b
--- /dev/null
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupCodeListVo.java
@@ -0,0 +1,26 @@
+package com.dsh.communityWorldCup.model;
+
+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 code;
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+
+    @ApiModelProperty("自定义信息 结束接口需要")
+    private List<Long> customs;
+}
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/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 47edf49..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
@@ -94,5 +94,9 @@
     int getMatchTime(Integer worldCupId);
 
 
-    List<WorldCupListVo> getWorldCupListFromRank(Integer uid);
+    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 aa85df4..9954889 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;
@@ -691,8 +692,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.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());
@@ -701,31 +812,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);
@@ -736,8 +824,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());
@@ -747,30 +842,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);
@@ -858,8 +1036,31 @@
     }
 
     @Override
-    public List<WorldCupListVo> getWorldCupListFromRank(Integer uid) {
+    public List<WorldCupListVo> getWorldCupListFromRank(MyWorldCupList myWorldCupList) {
 
-        return this.baseMapper.getWorldCupListFromRank(uid);
+        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)
+                .ge(WorldCupCompetitor::getStartTime, new Date()).lt(WorldCupCompetitor::getEndTime, new Date()));
+        List<WorldCupCodeListVo> worldCupCodeListVos = new ArrayList<>();
+
+        // worldCupCompetitors 通过code分组
+        Map<String, List<WorldCupCompetitor>> map = worldCupCompetitors.stream().collect(Collectors.groupingBy(WorldCupCompetitor::getCode));
+
+        for (Map.Entry<String, List<WorldCupCompetitor>> entry : map.entrySet()) {
+            WorldCupCodeListVo worldCupCodeListVo = new WorldCupCodeListVo();
+            String code = entry.getKey();
+            List<WorldCupCompetitor> value = entry.getValue();
+            worldCupCodeListVo.setCode(code);
+            worldCupCodeListVo.setStartTime(value.get(0).getStartTime());
+            worldCupCodeListVo.setWorldCupId(value.get(0).getWorldCupId());
+            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/WorldCupServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
index 08a6eaf..85efcb5 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,7 +81,11 @@
     private GameClient gameClient;
 
     @Resource
+    private StudentHonorClient studentHonorClient;
+
+    @Resource
     private UserIntegralChangesClient userIntegralChangesClient;
+
 
 
     /**
@@ -98,7 +105,19 @@
             } else {
                 worldCupListCoachVo.setDistance(0D);
             }
+
+            if(worldCupListCoachVo.getType()!=null && worldCupListCoachVo.getType()==2){
+                // 获取正在进行的赛事
+
+                int size = worldCupCompetitorService.list(new LambdaQueryWrapper<WorldCupCompetitor>().eq(WorldCupCompetitor::getWorldCupId, worldCupListCoachVo.getId())
+                        .ge(WorldCupCompetitor::getStartTime, new Date()).lt(WorldCupCompetitor::getEndTime, new Date()).groupBy(WorldCupCompetitor::getCode)).size();
+                worldCupListCoachVo.setNowNum(size);
+            }
+
         }
+
+
+
         //对查询结果进行距离排序(直线距离)
         Collections.sort(worldCupListCoach1, new Comparator<WorldCupListCoachVo>() {
             @Override
@@ -1022,4 +1041,117 @@
     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());
+            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/resources/mapper/WorldCupCompetitorMapper.xml b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
index 22b6429..58c0905 100644
--- a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
+++ b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
@@ -280,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
@@ -339,12 +340,17 @@
 
     <select id="getWorldCupListFromRank" resultType="com.dsh.communityWorldCup.model.WorldCupListVo">
         select
-            c.id,
-            b.worldCupId,
-            c.name
+        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.appUserId = #{uid} and b.payStatus = 2 and b.refundTime is null and b.state = 1
+        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 f06d84f..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">
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..8ad7be5 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,8 @@
      */
     @PostMapping("/worldCup/getRegisteredNumber")
     int getRegisteredNumber(Integer worldCupId);
+
+    @PostMapping("/worldCup/userDetailsOfSearch")
+    List<WorldCupUserListVo> userDetailsOfSearch(UserDetailsOfSearch search);
+
 }
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 1498593..a3a092c 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
@@ -405,6 +405,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 5ef1119..24653c4 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,6 +2,7 @@
 
 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;
@@ -46,11 +47,18 @@
         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 + "worldCupGameStatisticsInfo.html";
+        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";
     }
 
 
@@ -239,4 +247,17 @@
             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);
+    }
 }
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/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/addWorldCupGameStatisticsListInfo.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/addWorldCupGameStatisticsListInfo.html
new file mode 100644
index 0000000..a6cb4c2
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/addWorldCupGameStatisticsListInfo.html
@@ -0,0 +1,76 @@
+@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 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>人员</td>
+                      <td>联系电话</td>
+                      <td>性别</td>
+                      <td>年龄</td>
+                      <td>操作</td>
+                    </tr>
+                    </thead>
+                    <tbody id="coun"></tbody>
+                  </table>
+                </div>
+              </div>
+
+            </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'
+  });
+
+
+  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;
+  }
+</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 615878e..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
@@ -48,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>
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
index 75756e2..b6560dd 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
@@ -168,14 +168,11 @@
     $("#coun").append(str);
 }
 TGoodsInfoDlg.selecUserOpt1 = function (arr){
-    console.log(arr)
-    console.log("返回的数组")
-    console.log("此时的site集合")
     console.log(this.siteIds)
     //获取所有的值
     var subArr= this.siteIds;
     console.log(subArr)
-    $(".timeClass").each(function () {
+    $(".userTableOne").each(function () {
         subArr.push($(this).find("input[name*='id']").val());
     });
     var str = '';
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..26206e8
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TStoreInfo.js
@@ -0,0 +1,145 @@
+/**
+ * 管理初始化
+ */
+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: 'name', 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].ids,55555)
+            name =  selected[0].accountName
+            arr.push({
+                id: selected[i].id,
+                provinceCity: typeof selected[i].provinceCity != "undefined" ? selected[i].provinceCity : "",
+                accountName: typeof selected[i].accountName != "undefined" ? selected[i].accountName : "",
+                name: typeof selected[i].name != "undefined" ? selected[i].name : "",
+                ids:typeof selected[i].ids != "undefined" ? selected[i].ids : "",
+            })
+        }
+    }
+    window.parent.TGoodsInfoDlg.selecUserOpt(arr);
+    TStoreProvince.storeOfClosePage();
+}
+
+
+
+/**
+ * 查询列表
+ */
+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/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