From abce69e057001d9899db3bc54b073bfa52705821 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 05 三月 2024 15:58:25 +0800
Subject: [PATCH] 修改接口

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

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 bf244d5..cd03e8a 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
@@ -1,7 +1,9 @@
 package com.dsh.communityWorldCup.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.communityWorldCup.entity.WorldCup;
 import com.dsh.communityWorldCup.entity.WorldCupCompetitor;
 import com.dsh.communityWorldCup.feignclient.account.AppUserClient;
 import com.dsh.communityWorldCup.feignclient.account.StudentClient;
@@ -13,6 +15,8 @@
 import com.dsh.communityWorldCup.mapper.WorldCupCompetitorMapper;
 import com.dsh.communityWorldCup.model.*;
 import com.dsh.communityWorldCup.service.IWorldCupCompetitorService;
+import com.dsh.communityWorldCup.service.IWorldCupService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -20,6 +24,7 @@
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -38,6 +43,9 @@
 
     @Resource
     private AppUserClient appUserClient;
+
+    @Autowired
+    private IWorldCupService worldCupService;
 
 
 
@@ -245,4 +253,51 @@
         }
         return list;
     }
+
+
+    /**
+     * 比赛结束后通知处理逻辑
+     * @param custom        开始比赛接口上传的自定义参数
+     * @param red_score     红方分数
+     * @param blue          蓝方分数
+     */
+    @Override
+    public void endWorldCupCallback(String custom, Integer red_score, Integer blue) {
+        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);
+                }
+            }
+            //红方
+            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);
+                }
+            }
+        }
+
+        this.updateBatchById(worldCupCompetitors);
+    }
 }

--
Gitblit v1.7.1