44323
2024-03-11 ceacc612529f38c632d85d91bb5309baa5ebb82a
Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0

 Conflicts:
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
23个文件已修改
2个文件已添加
604 ■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/RefereeMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupCompetitor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupPaymentParticipant.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/UserIntegralChangesClient.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/model/SaveUserIntegralChangesVo.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/competition/ParticipantClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupPaymentParticipantMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRank.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/ParticipantVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupPaymentParticipantService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupPaymentParticipantMapper.xml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_add.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_edit.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/referee/referee.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup_info.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -94,6 +94,16 @@
                        detail.setConsumeName("智慧球场开始游戏");
                        detail.setDetailsType(1);
                        break;
                    case 6:
                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeName("参与社区世界杯");
                        detail.setDetailsType(2);
                        break;
                    case 7:
                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeName("社区世界杯获胜");
                        detail.setDetailsType(2);
                        break;
                    default:
                        break;
                }
cloud-server-account/src/main/resources/mapper/RefereeMapper.xml
@@ -22,7 +22,7 @@
            and provinceCode = #{item.provinceCode}
        </if>
        <if test="null != item.cityCode and '' != item.cityCode">
            and provinceCode = #{cityCode}
            and cityCode = #{cityCode}
        </if>
        order by createTime desc limit #{item.offset}, #{item.limit}
    </select>
@@ -42,7 +42,7 @@
            and provinceCode = #{item.provinceCode}
        </if>
        <if test="null != item.cityCode and '' != item.cityCode">
            and provinceCode = #{cityCode}
            and cityCode = #{cityCode}
        </if>
    </select>
</mapper>
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -886,7 +886,7 @@
                        detailsResponse.setSid(collect);
                        if (collect.size() > 0) {
                            // 获取rid
//                          List<Integer> rid= stoClient.querySiteIdById(collect);
//                            List<Integer> rid= stoClient.querySiteIdById(collect);
                            //detailsResponse.setRid(rid);
                            // todo 修改区域id 临时
                            // 根据门店id 写死区域id 后续调整为门票指定多个区域
@@ -914,22 +914,22 @@
                            //======================================================
                        }
                    }else{
                        // todo 返回门店id 和场地id
                        // 查询指定场地
                        List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>()
                                .eq(PointsMerchandiseStore::getPointsMerchandiseId, merchandise.getId()));
                        // 门店
                        ArrayList<Integer> list3 = new ArrayList<>();
                        // 场地
                        ArrayList<Integer> list4 = new ArrayList<>();
                        for (PointsMerchandiseStore temp : list) {
                            Integer storeId = temp.getStoreId();
                            Integer siteId = temp.getSiteId();
                            list3.add(storeId);
                            list4.add(siteId);
                        }
                        detailsResponse.setRid(list4);
                        detailsResponse.setSid(list3);
                            // todo 返回门店id 和场地id
                            // 查询指定场地
                            List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>()
                                    .eq(PointsMerchandiseStore::getPointsMerchandiseId, merchandise.getId()));
                            // 门店
                            ArrayList<Integer> list3 = new ArrayList<>();
                            // 场地
                            ArrayList<Integer> list4 = new ArrayList<>();
                            for (PointsMerchandiseStore temp : list) {
                                Integer storeId = temp.getStoreId();
                                Integer siteId = temp.getSiteId();
                                list3.add(storeId);
                                list4.add(siteId);
                            }
                            detailsResponse.setRid(list4);
                            detailsResponse.setSid(list3);
                    }
@@ -1803,19 +1803,19 @@
    public Boolean addOther(@RequestBody String pam) {
        Boolean save = false;
        String[] split = pam.split("_");
        if (split.length > 2) {
            if (StringUtils.hasLength(split[2])) {
                for (String s : split[2].split(",")) {
                    PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
                    pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0]));
                    pointsMerchandiseStore.setSiteId(Integer.valueOf(s));
                    Site site = siteClient.querySiteById(Integer.valueOf(s));
                    pointsMerchandiseStore.setStoreId(site.getStoreId());
                    save = pmdstoService.save(pointsMerchandiseStore);
                }
                // 这个门票是选择的场地
                return save;
        if (split.length>2){
        if (StringUtils.hasLength(split[2])){
            for (String s : split[2].split(",")) {
                PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
                pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0]));
                pointsMerchandiseStore.setSiteId(Integer.valueOf(s));
                Site site = siteClient.querySiteById(Integer.valueOf(s));
                pointsMerchandiseStore.setStoreId(site.getStoreId());
                save = pmdstoService.save(pointsMerchandiseStore);
            }
            // 这个门票是选择的场地
            return save;
        }
        }
        for (String s : split[1].split(",")) {
            PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
@@ -180,11 +180,11 @@
            return ResultUtil.error("无效二维码");
        }
        WorldCupPeopleVo worldCupPeopleVo = new WorldCupPeopleVo();
        worldCupPeopleVo.setId(worldCupPaymentParticipant.getId());
        worldCupPeopleVo.setId(worldCupPaymentParticipant.getParticipantId());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        if(worldCupPaymentParticipant.getParticipantType() == 1){
            //学员
            TStudent tStudent = studentClient.queryById(worldCupPaymentParticipant.getParticipantId());
            TStudent tStudent = studentClient.queryById(worldCupPaymentParticipant.getParticipantId().intValue());
            worldCupPeopleVo.setName(tStudent.getName());
            worldCupPeopleVo.setAge(null == tStudent.getBirthday() ? 0 : Integer.valueOf(sdf.format(new Date())) -Integer.valueOf(sdf.format(tStudent.getBirthday())));
            worldCupPeopleVo.setAvatar(tStudent.getHeadImg());
@@ -413,7 +413,11 @@
    public List<WorldCupStore> getWorldCupStoreList(@RequestBody Integer storeId){
        List<WorldCup> worldCupList = worldCupService.list(new QueryWrapper<WorldCup>().in("status", Arrays.asList(1, 2)));
        List<Integer> collect = worldCupList.stream().map(WorldCup::getId).collect(Collectors.toList());
        return worldCupStoreService.list(new QueryWrapper<WorldCupStore>().eq("storeId", storeId).in("worldCupId", collect).eq("isOpen", 1));
        if(collect.size() == 0){
            return new ArrayList<>();
        }
        return worldCupStoreService.list(new QueryWrapper<WorldCupStore>().eq("storeId", storeId).in("worldCupId", collect)
                .eq("isOpen", 1));
    }
@@ -700,8 +704,8 @@
     */
    @ResponseBody
    @PostMapping("/base/worldCup/endWorldCupCallback")
    public void endWorldCupCallback(String custom, Integer red_score, Integer blue){
        worldCupCompetitorService.endWorldCupCallback(custom, red_score, blue);
    public void endWorldCupCallback(String custom, Integer red_score, Integer blue_score){
        worldCupCompetitorService.endWorldCupCallback(custom, red_score, blue_score);
    }
@@ -806,6 +810,14 @@
    }
    @ResponseBody
    @PostMapping("/worldCup/getUserGameRecordList")
    public Map<String, Object> getUserGameRecordList(@RequestBody WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList){
        return worldCupPaymentParticipantService.getUserGameRecordList(worldCupGameStatisticsInfoList);
    }
    /**
     * 获取用户比赛记录明细
     * @param userGameRecordList
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupCompetitor.java
@@ -44,7 +44,7 @@
     * 参赛人id
     */
    @TableField("participantId")
    private Integer participantId;
    private Long participantId;
    /**
     * 参赛方(1=蓝方,2=红方)
     */
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupPaymentParticipant.java
@@ -45,7 +45,7 @@
     * 参赛人员id
     */
    @TableField("participantId")
    private Integer participantId;
    private Long participantId;
    /**
     * 是否已参赛(0=否,1=是)
     */
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/UserIntegralChangesClient.java
New file
@@ -0,0 +1,22 @@
package com.dsh.communityWorldCup.feignclient.account;
import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
/**
 * @author zhibing.pu
 * @date 2023/7/12 11:40
 */
@FeignClient("mb-cloud-account")
public interface UserIntegralChangesClient {
    /**
     * 保存用户积分变动记录
     *
     * @param vo
     */
    @PostMapping("/userIntegralChanges/saveUserIntegralChanges")
    void saveUserIntegralChanges(SaveUserIntegralChangesVo vo);
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/model/SaveUserIntegralChangesVo.java
New file
@@ -0,0 +1,23 @@
package com.dsh.communityWorldCup.feignclient.account.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @date 2023/7/12 11:26
 */
@Data
public class SaveUserIntegralChangesVo {
    /**
     * 用户id
     */
    private Integer appUserId;
    /**
     * 积分类型(1=赠送积分,2=兑换商品,3=完成课后练习,4=观看教学视频,5=参与世界杯,6=世界杯获胜)
     */
    private Integer type;
    /**
     * 积分
     */
    private Integer integral;
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/competition/ParticipantClient.java
@@ -18,6 +18,6 @@
     * @return
     */
    @PostMapping("/participant/getParticipant")
    Participant getParticipant(Integer id);
    Participant getParticipant(Long id);
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java
@@ -63,4 +63,8 @@
     * @return
     */
    List<Map<String, Object>> userGameRecordList(@Param("name") String name);
    Map<String, Object> getUserGameRecordList(@Param("participantType") Integer participantType, @Param("participantId") Long participantId);
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupPaymentParticipantMapper.java
@@ -7,6 +7,7 @@
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
@@ -23,7 +24,7 @@
     * @return
     */
    WorldCupPaymentParticipant getWorldCupPaymentParticipant(@Param("worldCupId") Integer worldCupId, @Param("participantType") Integer participantType,
                                                             @Param("participantId") Integer participantId);
                                                             @Param("participantId") Long participantId);
    /**
@@ -36,4 +37,8 @@
    int getCount(@Param("worldCupId") Integer worldCupId, @Param("worldCupPaymentId")List<Long> worldCupPaymentId);
    List<Map<String, Object>> getUserGameRecordList();
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRank.java
@@ -12,7 +12,7 @@
@ApiModel
public class EntrantRank {
    @ApiModelProperty(value = "参赛人id", required = true, dataType = "int")
    private Integer id;
    private Long id;
    @ApiModelProperty(value = "是否是学员", required = true, dataType = "int")
    private Integer isStudent;
    private Integer appUserId;
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/ParticipantVo.java
@@ -15,6 +15,8 @@
    private Integer id;
    @ApiModelProperty("姓名")
    private String name;
    @ApiModelProperty("头像")
    private String avatar;
    @ApiModelProperty("年龄")
    private Integer age;
    @ApiModelProperty("身份证号码")
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java
@@ -43,9 +43,9 @@
     * 比赛结束后通知处理逻辑
     * @param custom
     * @param red_score
     * @param blue
     * @param blue_score
     */
    void endWorldCupCallback(String custom, Integer red_score, Integer blue);
    void endWorldCupCallback(String custom, Integer red_score, Integer blue_score);
    /**
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupPaymentParticipantService.java
@@ -23,7 +23,7 @@
     * @param participantId
     * @return
     */
    WorldCupPaymentParticipant getWorldCupPaymentParticipant(Integer worldCupId, Integer participantType, Integer participantId);
    WorldCupPaymentParticipant getWorldCupPaymentParticipant(Integer worldCupId, Integer participantType, Long participantId);
    /**
@@ -59,4 +59,12 @@
    int getCount(Integer worldCupId, List<Long> worldCupPaymentId);
    /**
     * 获取用户列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    Map<String, Object> getUserGameRecordList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList);
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
@@ -7,15 +7,19 @@
import com.dsh.communityWorldCup.entity.WorldCupCompetitor;
import com.dsh.communityWorldCup.feignclient.account.AppUserClient;
import com.dsh.communityWorldCup.feignclient.account.StudentClient;
import com.dsh.communityWorldCup.feignclient.account.UserIntegralChangesClient;
import com.dsh.communityWorldCup.feignclient.account.model.AppUser;
import com.dsh.communityWorldCup.feignclient.account.model.AppUserIdsByCityName;
import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo;
import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
import com.dsh.communityWorldCup.feignclient.other.StoreClient;
import com.dsh.communityWorldCup.mapper.WorldCupCompetitorMapper;
import com.dsh.communityWorldCup.mapper.WorldCupPaymentParticipantMapper;
import com.dsh.communityWorldCup.model.*;
import com.dsh.communityWorldCup.service.IWorldCupCompetitorService;
import com.dsh.communityWorldCup.service.IWorldCupPaymentParticipantService;
import com.dsh.communityWorldCup.service.IWorldCupService;
import com.dsh.communityWorldCup.util.ToolUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -47,6 +51,9 @@
    @Autowired
    private IWorldCupService worldCupService;
    @Resource
    private UserIntegralChangesClient userIntegralChangesClient;
@@ -65,7 +72,7 @@
            entrantRankVo.setName(participant.getName());
        }else{
            //学员
            TStudent tStudent = studentClient.queryById(entrantRank.getId());
            TStudent tStudent = studentClient.queryById(entrantRank.getId().intValue());
            entrantRankVo.setName(tStudent.getName());
        }
        //全国排名---直接数据库分组查询后排序
@@ -164,7 +171,7 @@
        for (int i = 0; i < lists.size(); i++) {
            Map<String, Object> map = lists.get(i);
            Integer participantType = Integer.valueOf(map.get("participantType").toString());
            Integer participantId = Integer.valueOf(map.get("participantId").toString());
            Long participantId = Long.valueOf(map.get("participantId").toString());
            Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
            Integer totalSession = Integer.valueOf(map.get("totalSession").toString());
            Double winRate = Double.valueOf(map.get("winRate").toString());
@@ -177,7 +184,7 @@
                worldCupRankVo.setWinRate(winRate);
                //学员
                if(participantType == 1){
                    TStudent tStudent = studentClient.queryById(participantId);
                    TStudent tStudent = studentClient.queryById(participantId.intValue());
                    worldCupRankVo.setAvatar(tStudent.getHeadImg());
                    String name = tStudent.getName();
                    if(name.length() > 2){
@@ -223,7 +230,7 @@
                    worldCupRankVo.setWinRate(winRate);
                    //学员
                    if(participantType == 1){
                        TStudent tStudent = studentClient.queryById(participantId);
                        TStudent tStudent = studentClient.queryById(participantId.intValue());
                        worldCupRankVo.setAvatar(tStudent.getHeadImg());
                        String name = tStudent.getName();
                        if(name.length() > 2){
@@ -261,43 +268,60 @@
     * 比赛结束后通知处理逻辑
     * @param custom        开始比赛接口上传的自定义参数
     * @param red_score     红方分数
     * @param blue          蓝方分数
     * @param blue_score    蓝方分数
     */
    @Override
    public void endWorldCupCallback(String custom, Integer red_score, Integer blue) {
    public void endWorldCupCallback(String custom, Integer red_score, Integer blue_score) {
        List<Long> ids = JSON.parseArray(custom, Long.class);
        List<WorldCupCompetitor> worldCupCompetitors = this.listByIds(ids);
        WorldCupCompetitor worldCupCompetitor1 = worldCupCompetitors.get(0);
        WorldCup worldCup = worldCupService.getById(worldCupCompetitor1.getWorldCupId());
        for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) {
            //蓝方
            if(worldCupCompetitor.getParticipant() == 1){
                worldCupCompetitor.setMatchResult(blue.compareTo(red_score));
                worldCupCompetitor.setOurScore(blue);
                worldCupCompetitor.setOpponentScore(red_score);
                worldCupCompetitor.setEndTime(new Date());
                worldCupCompetitor.setWinIntegral(0);
                if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue.compareTo(red_score) >= 0){
                    worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
                    AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
                    appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
                    appUserClient.updateAppUser(appUser);
        try {
            WorldCupCompetitor worldCupCompetitor1 = worldCupCompetitors.get(0);
            WorldCup worldCup = worldCupService.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);
                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) >= 0){
                        worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
                        AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
                        appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
                        appUserClient.updateAppUser(appUser);
                        //增加积分明细
                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                        vo.setAppUserId(appUser.getId());
                        vo.setIntegral(worldCup.getWinIntegral());
                        vo.setType(7);
                        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);
                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) >= 0){
                        worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
                        AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
                        appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
                        appUserClient.updateAppUser(appUser);
                        //增加积分明细
                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                        vo.setAppUserId(appUser.getId());
                        vo.setIntegral(worldCup.getWinIntegral());
                        vo.setType(7);
                        userIntegralChangesClient.saveUserIntegralChanges(vo);
                    }
                }
            }
            //红方
            if(worldCupCompetitor.getParticipant() == 2){
                worldCupCompetitor.setMatchResult(red_score.compareTo(blue));
                worldCupCompetitor.setOurScore(red_score);
                worldCupCompetitor.setOpponentScore(blue);
                worldCupCompetitor.setEndTime(new Date());
                worldCupCompetitor.setWinIntegral(0);
                if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue) >= 0){
                    worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
                    AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
                    appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
                    appUserClient.updateAppUser(appUser);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        this.updateBatchById(worldCupCompetitors);
@@ -320,7 +344,7 @@
        for (int i = 0; i < mapList.size(); i++) {
            Map<String, Object> map = mapList.get(i);
            Integer participantType = Integer.valueOf(map.get("participantType").toString());
            Integer participantId = Integer.valueOf(map.get("participantId").toString());
            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 win = Integer.valueOf(map.get("win").toString());
@@ -329,7 +353,7 @@
            AppUser appUser = appUserClient.getAppUser(appUserId);
            map.put("province", appUser.getProvince() + appUser.getCity());
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                map.put("name", tStudent.getName());
                map.put("phone", tStudent.getPhone());
            }else{
@@ -365,7 +389,7 @@
        for (int i = 0; i < mapList.size(); i++) {
            Map<String, Object> map = mapList.get(i);
            Integer participantType = Integer.valueOf(map.get("participantType").toString());
            Integer participantId = Integer.valueOf(map.get("participantId").toString());
            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 win = Integer.valueOf(map.get("win").toString());
@@ -376,7 +400,7 @@
            AppUser appUser = appUserClient.getAppUser(appUserId);
            map.put("province", appUser.getProvince() + appUser.getCity());
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
@@ -388,7 +412,7 @@
                }
                map.put("name", tStudent.getName());
                map.put("phone", tStudent.getPhone());
                map.put("phone", ToolUtil.isEmpty(tStudent.getPhone()) ? appUser.getPhone() : tStudent.getPhone());
            }else{
                Participant participant = participantClient.getParticipant(participantId);
                if(ToolUtil.isNotEmpty(name) && participant.getName().indexOf(name) == -1){
@@ -402,7 +426,7 @@
                }
                map.put("name", participant.getName());
                map.put("phone", participant.getPhone());
                map.put("phone", ToolUtil.isNotEmpty(participant.getPhone()) ? participant.getPhone() : appUser.getPhone());
            }
            list.add(map);
        }
@@ -431,9 +455,9 @@
            Map<String, Object> map = new HashMap<>();
            map.put("id", cupCompetitor.getId());
            Integer participantType = cupCompetitor.getParticipantType();
            Integer participantId = cupCompetitor.getParticipantId();
            Long participantId = cupCompetitor.getParticipantId();
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
@@ -535,12 +559,12 @@
        List<Map<String, Object>> mapList = new ArrayList<>();
        for (Map<String, Object> map : list) {
            Long participantType = Long.valueOf(map.get("participantType").toString());
            Integer participantId = Integer.valueOf(map.get("participantId").toString());
            Long participantId = Long.valueOf(map.get("participantId").toString());
            Integer ourScore = Integer.valueOf(map.get("ourScore").toString());
            Integer opponentScore = Integer.valueOf(map.get("opponentScore").toString());
            Integer matchResult = Integer.valueOf(map.get("matchResult").toString());
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java
@@ -6,12 +6,15 @@
import com.dsh.communityWorldCup.entity.WorldCupPayment;
import com.dsh.communityWorldCup.entity.WorldCupPaymentParticipant;
import com.dsh.communityWorldCup.entity.WorldCupStore;
import com.dsh.communityWorldCup.feignclient.account.AppUserClient;
import com.dsh.communityWorldCup.feignclient.account.StudentClient;
import com.dsh.communityWorldCup.feignclient.account.model.AppUser;
import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
import com.dsh.communityWorldCup.feignclient.other.StoreClient;
import com.dsh.communityWorldCup.feignclient.other.model.Store;
import com.dsh.communityWorldCup.mapper.WorldCupCompetitorMapper;
import com.dsh.communityWorldCup.mapper.WorldCupPaymentParticipantMapper;
import com.dsh.communityWorldCup.model.MyWorldCupInfo;
import com.dsh.communityWorldCup.model.MyWorldCupList;
@@ -62,6 +65,12 @@
    @Resource
    private StoreClient storeClient;
    @Resource
    private AppUserClient appUserClient;
    @Resource
    private WorldCupCompetitorMapper worldCupCompetitorMapper;
@@ -73,7 +82,7 @@
     * @return
     */
    @Override
    public WorldCupPaymentParticipant getWorldCupPaymentParticipant(Integer worldCupId, Integer participantType, Integer participantId) {
    public WorldCupPaymentParticipant getWorldCupPaymentParticipant(Integer worldCupId, Integer participantType, Long participantId) {
        return this.baseMapper.getWorldCupPaymentParticipant(worldCupId, participantType, participantId);
    }
@@ -134,11 +143,11 @@
        List<WorldCupPaymentParticipant> list1 = this.list(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupPaymentId", worldCupPaymentParticipant.getWorldCupPaymentId()));
        for (WorldCupPaymentParticipant wcpp : list1) {
            Integer participantType = wcpp.getParticipantType();
            Integer participantId = wcpp.getParticipantId();
            Long participantId = wcpp.getParticipantId();
            ParticipantVo participantVo = new ParticipantVo();
            //学员
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                participantVo.setId(tStudent.getId());
                participantVo.setName(tStudent.getName());
                int age = Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday()));
@@ -214,13 +223,15 @@
            List<WorldCupPaymentParticipant> list1 = this.list(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
            for (WorldCupPaymentParticipant worldCupPaymentParticipant : list1) {
                Integer participantType = worldCupPaymentParticipant.getParticipantType();
                Integer participantId = worldCupPaymentParticipant.getParticipantId();
                Long participantId = worldCupPaymentParticipant.getParticipantId();
                ParticipantVo participantVo = new ParticipantVo();
                AppUser appUser = appUserClient.getAppUser(worldCupPaymentParticipant.getAppUserId());
                //学员
                if(1 == participantType && !xy.contains(participantId)){
                    TStudent tStudent = studentClient.queryById(participantId);
                    TStudent tStudent = studentClient.queryById(participantId.intValue());
                    participantVo.setId(tStudent.getId());
                    participantVo.setName(tStudent.getName());
                    participantVo.setAvatar(tStudent.getHeadImg());
                    int age = Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday()));
                    participantVo.setAge(age);
                    participantVo.setIdcard(tStudent.getIdCard());
@@ -233,6 +244,7 @@
                    Participant participant = participantClient.getParticipant(participantId);
                    participantVo.setId(participant.getId());
                    participantVo.setName(participant.getName());
                    participantVo.setAvatar(appUser.getHeadImg());
                    int age = Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday()));
                    participantVo.setAge(age);
                    participantVo.setIdcard(participant.getIdcard());
@@ -284,7 +296,7 @@
            WorldCupPayment worldCupPayment = worldCupPaymentService.getById(on.getWorldCupPaymentId());
            Map<String, Object> map1 = new HashMap<>();
            if(on.getParticipantType() == 1){
                TStudent tStudent = studentClient.queryById(on.getParticipantId());
                TStudent tStudent = studentClient.queryById(on.getParticipantId().intValue());
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
@@ -326,7 +338,7 @@
        }
        limit += offset;
        map.put("rows", list2.subList(offset, list2.size() >= limit ? limit : list.size()));
        map.put("rows", list2.subList(offset, list2.size() >= limit ? limit : list2.size()));
        map.put("total", list2.size());
        return map;
    }
@@ -335,4 +347,82 @@
    public int getCount(Integer worldCupId, List<Long> worldCupPaymentId) {
        return this.baseMapper.getCount(worldCupId, worldCupPaymentId);
    }
    /**
     * 获取用户列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    @Override
    public Map<String, Object> getUserGameRecordList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList) {
        Map<String, Object> map1 = new HashMap<>();
        String name = worldCupGameStatisticsInfoList.getName();
        String phone = worldCupGameStatisticsInfoList.getPhone();
        String idcard = worldCupGameStatisticsInfoList.getIdcard();
        List<Map<String, Object>> mapList = this.baseMapper.getUserGameRecordList();
        List<Map<String, Object>> list = new ArrayList<>();
        for (int i = 0; i < mapList.size(); i++) {
            Map<String, Object> map = mapList.get(i);
            Integer participantType = Integer.valueOf(map.get("participantType").toString());
            Long participantId = Long.valueOf(map.get("participantId").toString());
            Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
            Map<String, Object> userGameRecordList = worldCupCompetitorMapper.getUserGameRecordList(participantType, participantId);
            Integer totalSession = 0;
            Integer win = 0;
            if(null != userGameRecordList){
                totalSession = Integer.valueOf(null != userGameRecordList.get("totalSession") ? userGameRecordList.get("totalSession").toString() : "0");
                win = Integer.valueOf(null != userGameRecordList.get("win") ? userGameRecordList.get("win").toString() : "0");
            }else{
                userGameRecordList = new HashMap<>();
            }
            userGameRecordList.put("totalSession", totalSession);
            userGameRecordList.put("win", win);
            Integer lose = totalSession - win;
            userGameRecordList.put("lose", lose);
            userGameRecordList.put("winRate", totalSession == 0 ? 0 : win / totalSession * 100);
            userGameRecordList.put("participantType", participantType);
            userGameRecordList.put("participantId", participantId);
            AppUser appUser = appUserClient.getAppUser(appUserId);
            userGameRecordList.put("province", appUser.getProvince() + appUser.getCity());
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
                if(ToolUtil.isNotEmpty(phone) && tStudent.getPhone().indexOf(phone) == -1){
                    continue;
                }
                if(ToolUtil.isNotEmpty(idcard) && tStudent.getIdCard().indexOf(idcard) == -1){
                    continue;
                }
                userGameRecordList.put("name", tStudent.getName());
                userGameRecordList.put("phone", ToolUtil.isEmpty(tStudent.getPhone()) ? appUser.getPhone() : tStudent.getPhone());
                userGameRecordList.put("idcard", tStudent.getIdCard());
            }else{
                Participant participant = participantClient.getParticipant(participantId);
                if(ToolUtil.isNotEmpty(name) && participant.getName().indexOf(name) == -1){
                    continue;
                }
                if(ToolUtil.isNotEmpty(phone) && participant.getPhone().indexOf(phone) == -1){
                    continue;
                }
                if(ToolUtil.isNotEmpty(idcard) && participant.getIdcard().indexOf(idcard) == -1){
                    continue;
                }
                userGameRecordList.put("name", participant.getName());
                userGameRecordList.put("phone", ToolUtil.isNotEmpty(participant.getPhone()) ? participant.getPhone() : appUser.getPhone());
                userGameRecordList.put("idcard", participant.getIdcard());
            }
            list.add(userGameRecordList);
        }
        map1.put("total", list.size());
        Integer offset = worldCupGameStatisticsInfoList.getOffset();
        Integer limit = worldCupGameStatisticsInfoList.getLimit();
        limit += offset;
        map1.put("rows", list.subList(offset, list.size() >= limit ? limit : list.size()));
        return map1;
    }
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
@@ -9,7 +9,9 @@
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.UserIntegralChangesClient;
import com.dsh.communityWorldCup.feignclient.account.model.AppUser;
import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo;
import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
@@ -73,6 +75,9 @@
    @Resource
    private GameClient gameClient;
    @Resource
    private UserIntegralChangesClient userIntegralChangesClient;
@@ -131,7 +136,7 @@
        List<Long> ids = new ArrayList<>();
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            Integer id = jsonObject.getInteger("id");
            Long id = jsonObject.getLong("id");
            Integer participantType = jsonObject.getInteger("participantType");
            String type = jsonObject.getString("type");
            WorldCupCompetitor worldCupCompetitor = new WorldCupCompetitor();
@@ -149,13 +154,19 @@
                AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
                appUser.setIntegral(appUser.getIntegral() + worldCup.getParticipationIntegral());
                appUserClient.updateAppUser(appUser);
                //增加积分明细
                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                vo.setAppUserId(appUser.getId());
                vo.setIntegral(worldCup.getParticipationIntegral());
                vo.setType(6);
                userIntegralChangesClient.saveUserIntegralChanges(vo);
            }
            worldCupCompetitorService.save(worldCupCompetitor);
            ids.add(worldCupCompetitor.getId());
            //已参赛
//            worldCupPaymentParticipant.setAlreadyEntered(1);
            worldCupPaymentParticipantService.updateById(worldCupPaymentParticipant);
//            worldCupPaymentParticipantService.updateById(worldCupPaymentParticipant);
        }
        //2、调起开启游戏的接口。
        HashMap<String, String> map = new HashMap<>();
@@ -166,7 +177,7 @@
        map.put("api_url", "http://221.182.45.100:56666/communityWorldCup/base/worldCup/endWorldCupCallback");
        map.put("custom", JSON.toJSONString(ids));
        String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/batterGame", map);
        String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/quickStart", map);
        JSONObject jsonObject = JSONObject.parseObject(s);
        Integer code1 = jsonObject.getInteger("code");
        String message = jsonObject.getString("message");
@@ -185,9 +196,17 @@
     */
    @Override
    public Integer getCompletedWorldCupTips(Integer uid) {
        int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>()
                .eq("appUserId", uid).eq("tips", 0).isNotNull("endTime"));
        return count;
        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->{
            v.setWorldCupId(null);
            v.setTips(1);
        });
        if(list.size() > 0){
            worldCupCompetitorService.updateBatchById(list);
        }
        return list.size();
    }
@@ -265,6 +284,14 @@
            int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
            heat += count;
        }
        String infoImg = worldCupInfo.getInfoImg();
        JSONArray jsonArray1 = JSON.parseArray(infoImg);
        String imgs = "";
        for (int i = 0; i < jsonArray1.size(); i++) {
            String url = jsonArray1.getJSONObject(i).getString("url");
            imgs += url + ",";
        }
        worldCupInfo.setInfoImg(imgs.substring(0,imgs.length() - 1));
        worldCupInfo.setHeat(heat);
        ArrayList<Map<String, Object>> objects = new ArrayList<>();
        for (WorldCupStore worldCupStore : worldCupStores) {
@@ -306,8 +333,14 @@
    @Override
    public CheckPaymentMethodVo checkPaymentMethod(CheckPaymentMethod checkPaymentMethod) {
        WorldCup worldCup = this.getById(checkPaymentMethod.getId());
        JSONArray jsonArray = JSON.parseArray(checkPaymentMethod.getIds());
        String[] split = worldCup.getPayType().split(",");
        CheckPaymentMethodVo checkPaymentMethodVo = new CheckPaymentMethodVo();
        if(split.length == 1 && "0".equals(split[0])){
            checkPaymentMethodVo.setPaiCoin(0);
            checkPaymentMethodVo.setClassHour(0);
            return checkPaymentMethodVo;
        }
        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()){
@@ -352,27 +385,33 @@
        if(null == worldCup){
            return ResultUtil.error("报名数据异常");
        }
        WorldCupPayment one = worldCupPaymentService.getOne(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId())
                .eq("appUserId", paymentWorldCup.getUid()).eq("payStatus", 2).eq("state", 1));
        if(null != one){
            return ResultUtil.error("不能重复报名");
        }
        if(null != worldCup.getRegistrationClosingTime() && System.currentTimeMillis() > worldCup.getRegistrationClosingTime().getTime()){
            return ResultUtil.error("报名时间已结束,无法完成报名");
        }
        if(System.currentTimeMillis() > worldCup.getEndTime().getTime()){
            return ResultUtil.error("世界杯赛事已结束,无法完成报名");
        }
        List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId()).eq("appUserId", paymentWorldCup.getUid())
                .eq("payStatus", 2).eq("state", 1));
        List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList());
        String ids = paymentWorldCup.getIds();
        JSONArray jsonArray = JSON.parseArray(ids);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            Integer id = jsonObject.getInteger("id");
            Long id = jsonObject.getLong("id");
            //是否是学员(0=否,1=是)
            Integer isStudent = jsonObject.getInteger("isStudent");
            if(isStudent == 1){
                TStudent tStudent = studentClient.queryById(id);
                TStudent tStudent = studentClient.queryById(id.intValue());
                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){
                        return ResultUtil.error("【" + tStudent.getName() + "】已报过名了");
                    }
                }
                if(worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))){
                    return ResultUtil.error("【" + tStudent.getName() + "】年龄不符合要求");
                }
@@ -381,6 +420,14 @@
                }
            }else{
                Participant participant = participantClient.getParticipant(id);
                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){
                        return ResultUtil.error("【" + participant.getName() + "】已报过名了");
                    }
                }
                if(worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))){
                    return ResultUtil.error("【" + participant.getName() + "】年龄不符合要求");
                }
@@ -460,7 +507,7 @@
                JSONArray jsonArray = JSON.parseArray(ids);
                for (int i = 0; i < jsonArray.size(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    Integer id = jsonObject.getInteger("id");
                    Long id = jsonObject.getLong("id");
                    //是否是学员(0=否,1=是)
                    Integer isStudent = jsonObject.getInteger("isStudent");
@@ -484,13 +531,13 @@
                List<DeductionClassHour> list = new ArrayList<>();
                for (int i = 0; i < jsonArray.size(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    Integer id = jsonObject.getInteger("id");
                    Long id = jsonObject.getLong("id");
                    //是否是学员(0=否,1=是)
                    Integer isStudent = jsonObject.getInteger("isStudent");
                    if(0 == isStudent){
                        return ResultUtil.error("非学员无法使用课时报名");
                    }
                    List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderStudent(id);
                    List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderStudent(id.intValue());
                    int sum = coursePackageOrderStudent.stream().mapToInt(CoursePackageOrderStudent::getLaveClassHours).sum();
                    if(sum < worldCup.getClassHour()){
                        return ResultUtil.error("报名失败,课时不足,请续课!");
@@ -547,7 +594,7 @@
                //添加报名明细
                for (int i = 0; i < jsonArray.size(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    Integer id = jsonObject.getInteger("id");
                    Long id = jsonObject.getLong("id");
                    //是否是学员(0=否,1=是)
                    Integer isStudent = jsonObject.getInteger("isStudent");
@@ -576,7 +623,7 @@
            JSONArray jsonArray = JSON.parseArray(ids);
            for (int i = 0; i < jsonArray.size(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                Integer id = jsonObject.getInteger("id");
                Long id = jsonObject.getLong("id");
                //是否是学员(0=否,1=是)
                Integer isStudent = jsonObject.getInteger("isStudent");
@@ -614,7 +661,7 @@
        JSONArray jsonArray = JSON.parseArray(ids);
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            Integer id = jsonObject.getInteger("id");
            Long id = jsonObject.getLong("id");
            //是否是学员(0=否,1=是)
            Integer isStudent = jsonObject.getInteger("isStudent");
cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
@@ -173,7 +173,14 @@
    <select id="worldCupGameStatisticsInfoList" resultType="map">
        select * from (
        select
        aa.participantType,
        aa.participantId,
        aa.appUserId,
        aa.totalSession,
        aa.win,
        aa.winRate
        from (
            select
            a.participantType,
            a.participantId,
@@ -228,4 +235,48 @@
        </if>
        order by a.startTime desc
    </select>
    <select id="getUserGameRecordList" resultType="map">
        select
        a.participantType,
        a.participantId,
        a.appUserId,
        a.num as totalSession,
        ifnull(b.num, 0) as win,
        (ifnull(b.num, 0) / a.num * 100) as winRate
        from (
            select
            participantType,
            participantId,
            appUserId,
            count(*) as num
            from t_world_cup_competitor
            where 1 = 1
            <if test="null != participantType">
                and participantType = #{participantType}
            </if>
            <if test="null != participantId">
                and participantId = #{participantId}
            </if>
            group by participantType, participantId, appUserId
        ) as a
        left join (
            select
            participantType,
            participantId,
            appUserId,
            count(*) as num
            from t_world_cup_competitor
            where matchResult = 1
            <if test="null != participantType">
                and participantType = #{participantType}
            </if>
            <if test="null != participantId">
                and participantId = #{participantId}
            </if>
            group by participantType, participantId, appUserId
        ) as b on (a.participantId = b.participantId and a.participantType = b.participantType)
    </select>
</mapper>
cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupPaymentParticipantMapper.xml
@@ -42,13 +42,23 @@
    <select id="getCount" resultType="int">
        select count(*) from (
          select
          worldCupPaymentId,
          participantId,
          participantType
          from t_world_cup_payment_participant1 where worldCupId = #{worldCupId} and worldCupPaymentId in
          from t_world_cup_payment_participant where worldCupId = #{worldCupId} and worldCupPaymentId in
          <foreach collection="worldCupPaymentId" item="item" index="index" open="(" separator="," close=")">
              #{item}
          </foreach>
          group by worldCupPaymentId, participantType
          group by participantId, participantType
        ) as aa
    </select>
    <select id="getUserGameRecordList" resultType="map">
        select
        participantType,
        participantId,
        appUserId
        from t_world_cup_payment_participant group by participantType, participantId, appUserId
    </select>
</mapper>
cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java
@@ -210,7 +210,7 @@
    @ResponseBody
    @PostMapping("/participant/getParticipant")
    public Participant getParticipant(@RequestBody Integer id){
    public Participant getParticipant(@RequestBody Long id){
        return participantService.getById(id);
    }
}
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_add.html
@@ -15,6 +15,9 @@
    border: none;
    text-indent: 10px;
  }
  .el-upload__input{
    display: none;
  }
</style>
<div class="ibox float-e-margins">
  <div class="ibox-content">
@@ -101,13 +104,13 @@
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">*基础报名人数:</label>
          <label class="col-sm-3 control-label">基础报名人数:</label>
          <div class="col-sm-3">
            <input class="form-control" id="basePeople" type="number" min="0">
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">*参赛可获积分:</label>
          <label class="col-sm-3 control-label">参赛可获积分:</label>
          <div class="col-sm-3">
            <input class="form-control" id="participationIntegral" type="number" min="0">
          </div>
@@ -131,7 +134,7 @@
          <input type="hidden" id="latitude"/>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">参与赛点:</label>
          <label class="col-sm-3 control-label">*参与赛点:</label>
          <div class="col-sm-7">
            <button onclick="WorldCupInfo.openStore()">选择门店</button>
          </div>
@@ -152,13 +155,13 @@
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">赛事简介</label>
          <label class="col-sm-3 control-label">*赛事简介</label>
          <div class="col-sm-7">
            <textarea class="form-control" id="intro" style="height:200px"></textarea>
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label head-scu-label">比赛封面图</label>
          <label class="col-sm-3 control-label head-scu-label">*比赛封面图</label>
          <div class="col-sm-2">
            <div id="coverImgPreId">
              <div><img width="100px" height="100px" src="${ctxPath}/img/NoPIC.png"></div>
@@ -170,7 +173,7 @@
            </div>
          </div>
          <input type="hidden" id="coverImg" />
          <label class="col-sm-1 control-label">首页默认背景图</label>
          <label class="col-sm-1 control-label">*首页默认背景图</label>
          <div class="col-sm-2">
            <div id="homeBackdropImgPreId">
              <div><img width="100px" height="100px" src="${ctxPath}/img/NoPIC.png"></div>
@@ -204,7 +207,7 @@
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">比赛详情</label>
          <label class="col-sm-3 control-label">*比赛详情</label>
          <div class="col-sm-7" style="padding: 0px;">
            <textarea id="content" style="height: 800px;width: 100%;"></textarea>
          </div>
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_edit.html
@@ -15,6 +15,9 @@
    border: none;
    text-indent: 10px;
  }
  .el-upload__input{
    display: none;
  }
</style>
<div class="ibox float-e-margins">
  <div class="ibox-content">
@@ -102,13 +105,13 @@
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">*基础报名人数:</label>
          <label class="col-sm-3 control-label">基础报名人数:</label>
          <div class="col-sm-3">
            <input class="form-control" id="basePeople" type="number" min="0" value="${item.basePeople}">
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">*参赛可获积分:</label>
          <label class="col-sm-3 control-label">参赛可获积分:</label>
          <div class="col-sm-3">
            <input class="form-control" id="participationIntegral" type="number" min="0" value="${item.participationIntegral}">
          </div>
@@ -132,7 +135,7 @@
          <input type="hidden" id="latitude" value="${item.lat}"/>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">参与赛点:</label>
          <label class="col-sm-3 control-label">*参与赛点:</label>
          <div class="col-sm-7">
            <button onclick="WorldCupInfo.openStore()">选择门店</button>
          </div>
@@ -153,13 +156,13 @@
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">赛事简介</label>
          <label class="col-sm-3 control-label">*赛事简介</label>
          <div class="col-sm-7">
            <textarea class="form-control" id="intro" style="height:200px">${item.intro}</textarea>
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label head-scu-label">比赛封面图</label>
          <label class="col-sm-3 control-label head-scu-label">*比赛封面图</label>
          <div class="col-sm-2">
            <div id="coverImgPreId">
              <div><img width="100px" height="100px" src="${item.coverImg}"></div>
@@ -171,7 +174,7 @@
            </div>
          </div>
          <input type="hidden" id="coverImg"  value="${item.coverImg}"/>
          <label class="col-sm-1 control-label">首页默认背景图</label>
          <label class="col-sm-1 control-label">*首页默认背景图</label>
          <div class="col-sm-2">
            <div id="homeBackdropImgPreId">
              <div><img width="100px" height="100px" src="${item.homeBackdropImg}"></div>
@@ -206,7 +209,7 @@
          </div>
        </div>
        <div class="form-group">
          <label class="col-sm-3 control-label">比赛详情</label>
          <label class="col-sm-3 control-label">*比赛详情</label>
          <div class="col-sm-7" style="padding: 0px;">
            <textarea id="content" style="height: 800px;width: 100%;">${item.content}</textarea>
          </div>
cloud-server-management/src/main/webapp/static/modular/system/referee/referee.js
@@ -376,7 +376,7 @@
Referee.search = function () {
    var queryData = {};
    queryData['userName']  = $("#name").val();
    queryData['name']  = $("#name").val();
    queryData['phone'] =$("#phone").val();
    queryData['provinceCode'] =$("#provinceCode").val();
    queryData['cityCode'] =$("#cityCode").val();
cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup_info.js
@@ -92,16 +92,13 @@
        return
    }
    if(null == basePeople || '' == basePeople){
        Feng.error("请填写有效的基础报名人数");
        return
        basePeople = 0;
    }
    if(null == participationIntegral || '' == participationIntegral){
        Feng.error("请填写有效的参赛可获积分");
        return
        participationIntegral = 0;
    }
    if(null == winIntegral || '' == winIntegral){
        Feng.error("请填写有效的胜场可获积分");
        return
        winIntegral = 0;
    }
    if(null == address || '' == address){
        Feng.error("请填写有效的比赛地点");
@@ -255,16 +252,13 @@
        return
    }
    if(null == basePeople || '' == basePeople){
        Feng.error("请填写有效的基础报名人数");
        return
        basePeople = 0;
    }
    if(null == participationIntegral || '' == participationIntegral){
        Feng.error("请填写有效的参赛可获积分");
        return
        participationIntegral = 0;
    }
    if(null == winIntegral || '' == winIntegral){
        Feng.error("请填写有效的胜场可获积分");
        return
        winIntegral = 0;
    }
    if(null == address || '' == address){
        Feng.error("请填写有效的比赛地点");