liujie
2 天以前 9a44650b174f598392d0a0522b02a341ff14acb0
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
@@ -5,10 +5,16 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.dsh.communityWorldCup.entity.*;
import com.dsh.communityWorldCup.feignclient.account.AppUserClient;
import com.dsh.communityWorldCup.feignclient.account.StudentClient;
import com.dsh.communityWorldCup.feignclient.account.StudentHonorClient;
import com.dsh.communityWorldCup.feignclient.account.UserIntegralChangesClient;
import com.dsh.communityWorldCup.feignclient.account.model.AppUser;
import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo;
import com.dsh.communityWorldCup.feignclient.account.model.StudentHonor;
import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
@@ -20,10 +26,7 @@
import com.dsh.communityWorldCup.feignclient.other.model.TGame;
import com.dsh.communityWorldCup.model.*;
import com.dsh.communityWorldCup.service.*;
import com.dsh.communityWorldCup.util.GDMapGeocodingUtil;
import com.dsh.communityWorldCup.util.PayMoneyUtil;
import com.dsh.communityWorldCup.util.ResultUtil;
import com.dsh.communityWorldCup.util.TokenUtil;
import com.dsh.communityWorldCup.util.*;
import com.dsh.communityWorldCup.util.wx.WxV3PayConfig;
import com.wechat.pay.contrib.apache.httpclient.util.AesUtil;
import groovy.util.logging.Log4j;
@@ -44,6 +47,7 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -104,6 +108,12 @@
    @Resource
    private GameClient gameClient;
    @Autowired
    private UserIntegralChangesClient userIntegralChangesClient;
    @Autowired
    private StudentHonorClient studentHonorClient;
    /**
@@ -369,7 +379,10 @@
    @PostMapping("/api/worldCup/endWorldCup")
    @ApiOperation(value = "裁判结束比赛【3.1】", tags = {"APP-个人中心"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "redScore", value = "红队得分", required = true, dataType = "Integer"),
            @ApiImplicitParam(name = "blueScore", value = "蓝队得分", required = true, dataType = "Integer"),
            @ApiImplicitParam(name = "custom", value = "自定义参数 列表中是数组 ,拼接传过来", required = true, dataType = "String")
    })
    public ResultUtil endWorldCup(String custom, Integer redScore, Integer blueScore){
        return worldCupService.endWorldCup(custom,redScore,blueScore);
@@ -1257,4 +1270,164 @@
        }
        return worldCupUserListVos;
    }
    @PostMapping("/worldCup/savaData1")
    public void savaData1(@RequestBody SaveData saveData) throws ParseException {
        WorldCup worldCup = worldCupService.getById(saveData.getId());
        String redStr = saveData.getRedStr();
        String blueStr = saveData.getBlueStr();
        String[] red = redStr.split(",");
        String[] blue = blueStr.split(",");
        ArrayList<String> list = new ArrayList<>(red.length+blue.length);
        list.addAll(Arrays.asList(red));
        list.addAll(Arrays.asList(blue));
        String time = saveData.getTime();
        String[] split = time.split(" - ");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date startTime = simpleDateFormat.parse(split[0]);
        Date endTime = simpleDateFormat.parse(split[1]);
        Integer blueScore = saveData.getBlueScore();
        Integer redScore = saveData.getRedScore();
        List<WorldCupPaymentParticipant> list1 = worldCupPaymentParticipantService.list(new LambdaQueryWrapper<WorldCupPaymentParticipant>().in(WorldCupPaymentParticipant::getId, list));
        String code = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3);
        ArrayList<WorldCupCompetitor> worldCupCompetitors = new ArrayList<>(red.length + blue.length);
        for (String s : blue) {
            WorldCupPaymentParticipant worldCupPaymentParticipant = list1.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null);
            if(worldCupPaymentParticipant!=null){
                WorldCupCompetitor worldCupCompetitor =new WorldCupCompetitor();
                worldCupCompetitor.setCode(code);
                worldCupCompetitor.setWorldCupId(saveData.getId().intValue());
                worldCupCompetitor.setParticipantType(worldCupPaymentParticipant.getParticipantType());
                worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId());
                worldCupCompetitor.setParticipantId(worldCupPaymentParticipant.getParticipantId());
                worldCupCompetitor.setParticipant(1);
                worldCupCompetitor.setStartTime(startTime);
                worldCupCompetitor.setEndTime(endTime);
                if(blueScore>redScore){
                    worldCupCompetitor.setMatchResult(1);
                    worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
                    //增加积分明细
                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
                    vo.setIntegral(worldCup.getWinIntegral());
                    vo.setType(7);
                    userIntegralChangesClient.saveUserIntegralChanges(vo);
                }
                if(blueScore.equals(redScore)){
                    worldCupCompetitor.setMatchResult(0);
                    worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
                    //增加积分明细
                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
                    vo.setIntegral(worldCup.getDrawIntegral());
                    vo.setType(9);
                    userIntegralChangesClient.saveUserIntegralChanges(vo);
                }
                if(blueScore<redScore){
                    worldCupCompetitor.setMatchResult(-1);
                    worldCupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
                    //增加积分明细
                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
                    vo.setIntegral(worldCup.getLoseIntegral());
                    vo.setType(10);
                    userIntegralChangesClient.saveUserIntegralChanges(vo);
                }
                worldCupCompetitor.setOpponentScore(redScore);
                worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral());
                //增加积分明细
                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                vo.setAppUserId(worldCupCompetitor.getAppUserId());
                vo.setIntegral(worldCup.getParticipationIntegral());
                vo.setType(6);
                userIntegralChangesClient.saveUserIntegralChanges(vo);
                worldCupCompetitorService.save(worldCupCompetitor);
                worldCupCompetitors.add(worldCupCompetitor);
            }
        }
        for (String s : red) {
            WorldCupPaymentParticipant worldCupPaymentParticipant = list1.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null);
            if(worldCupPaymentParticipant!=null){
                WorldCupCompetitor worldCupCompetitor =new WorldCupCompetitor();
                worldCupCompetitor.setCode(code);
                worldCupCompetitor.setWorldCupId(saveData.getId().intValue());
                worldCupCompetitor.setParticipantType(worldCupPaymentParticipant.getParticipantType());
                worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId());
                worldCupCompetitor.setParticipantId(worldCupPaymentParticipant.getParticipantId());
                worldCupCompetitor.setParticipant(1);
                worldCupCompetitor.setStartTime(startTime);
                worldCupCompetitor.setEndTime(endTime);
                if(redScore>blueScore){
                    worldCupCompetitor.setMatchResult(1);
                    worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
                    //增加积分明细
                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
                    vo.setIntegral(worldCup.getWinIntegral());
                    vo.setType(7);
                    userIntegralChangesClient.saveUserIntegralChanges(vo);
                }
                if(blueScore.equals(redScore)){
                    worldCupCompetitor.setMatchResult(0);
                    worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
                    //增加积分明细
                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
                    vo.setIntegral(worldCup.getDrawIntegral());
                    vo.setType(9);
                    userIntegralChangesClient.saveUserIntegralChanges(vo);
                }
                if(redScore<blueScore){
                    worldCupCompetitor.setMatchResult(-1);
                    worldCupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
                    //增加积分明细
                    SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                    vo.setAppUserId(worldCupCompetitor.getAppUserId());
                    vo.setIntegral(worldCup.getLoseIntegral());
                    vo.setType(10);
                    userIntegralChangesClient.saveUserIntegralChanges(vo);
                }
                worldCupCompetitor.setOpponentScore(redScore);
                worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral());
                //增加积分明细
                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                vo.setAppUserId(worldCupCompetitor.getAppUserId());
                vo.setIntegral(worldCup.getParticipationIntegral());
                vo.setType(6);
                userIntegralChangesClient.saveUserIntegralChanges(vo);
                worldCupCompetitorService.save(worldCupCompetitor);
                worldCupCompetitors.add(worldCupCompetitor);
            }
        }
        //添加勋章
        for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) {
            Integer appUserId = worldCupCompetitor.getAppUserId();
            //常胜将军
            if(1 == worldCupCompetitor.getMatchResult()){
                int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId).eq("matchResult", 1));
                StudentHonor studentHonor = new StudentHonor();
                studentHonor.setAppUserId(appUserId);
                studentHonor.setHonorType(5);
                studentHonor.setNumber(count);
                studentHonorClient.saveStudentHonor(studentHonor);
            }
            //越战越勇
            int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId));
            StudentHonor studentHonor = new StudentHonor();
            studentHonor.setAppUserId(appUserId);
            studentHonor.setHonorType(6);
            studentHonor.setNumber(count);
            studentHonorClient.saveStudentHonor(studentHonor);
        }
    }
}