44323
2023-11-22 f6ba3e15355e22767e69f8fc14ae22523f8db8dc
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
@@ -21,6 +21,7 @@
import com.dsh.competition.feignclient.account.model.Student;
import com.dsh.competition.feignclient.course.CoursePackagePaymentClient;
import com.dsh.competition.feignclient.course.model.PaymentDeductionClassHour;
import com.dsh.competition.feignclient.model.CompetitionUser;
import com.dsh.competition.feignclient.other.StoreClient;
import com.dsh.competition.feignclient.other.model.Store;
import com.dsh.competition.mapper.CompetitionMapper;
@@ -30,6 +31,7 @@
import com.dsh.competition.service.IPaymentCompetitionService;
import com.dsh.competition.service.UserCompetitionService;
import com.dsh.competition.util.*;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -97,7 +99,10 @@
    public List<CompetitionListVo> queryCompetitionList(String cityCode, String content, Integer registerCondition, String heat) throws Exception {
        List<CompetitionListVo> competitionListVos = this.baseMapper.queryCompetitionList(cityCode, content, registerCondition, heat);
        for (CompetitionListVo competitionListVo : competitionListVos) {
            Integer counts =  this.baseMapper.counts(competitionListVo.getId());
            competitionListVo.setHeat(competitionListVo.getHeat()+counts);
        }
        return competitionListVos;
@@ -124,7 +129,6 @@
        // 2.0
        ArrayList<Map<String,Object>> objects = new ArrayList<>();
        if(null != competition.getStoreId()){
            String storeId = competition.getStoreId();
            for (String s : storeId.split(",")) {
                HashMap<String, Object> map = new HashMap<>();
@@ -159,10 +163,11 @@
        competitionInfo.setRegisterEndTime(sdf.format(competition.getRegisterEndTime()));
        competitionInfo.setStartTime(sdf.format(competition.getStartTime()));
        competitionInfo.setIsReal(competition.getRealName());
        competitionInfo.setEndTime(sdf.format(competition.getEndTime()));
        competitionInfo.setAge(competition.getStartAge() + "-" + competition.getEndAge());
        competitionInfo.setProvince(competition.getEntryProvince());
        competitionInfo.setCity(competition.getEntryCity());
        competitionInfo.setProvince(competition.getProvince());
        competitionInfo.setCity(competition.getCity());
        String str = competition.getAddress();
        str = str.substring(str.indexOf("省") + 1);
@@ -210,6 +215,7 @@
    }
    /**
     * 赛事报名
     * @param uid
@@ -222,9 +228,10 @@
        AppUser appUser = appUserClient.queryAppUser(uid);
        String[] split = paymentCompetitionVo.getIds().split(";");
        Competition competition = this.getById(paymentCompetitionVo.getId());
        if ((competition.getBaseNumber()+split.length)>competition.getApplicantsNumber()){
            return ResultUtil.error("报名人数超过最大限制");
        int competitionId = userCompetitionService.count(new QueryWrapper<UserCompetition>().eq("competitionId", paymentCompetitionVo.getId()));
        if ((competitionId+split.length)>competition.getApplicantsNumber()){
            return ResultUtil.error("报名人数超过最大限制");
        }
        BigDecimal money = null;
        if(paymentCompetitionVo.getPayType() == 1 || paymentCompetitionVo.getPayType() == 2){
@@ -233,7 +240,8 @@
        if(paymentCompetitionVo.getPayType() == 3){//玩湃币
            money = new BigDecimal(competition.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN);
            if(money.compareTo(new BigDecimal(appUser.getPlayPaiCoins())) > 0){
                return ResultUtil.error("报名失败,玩湃币不足,请充值");
                return new ResultUtil(2,"报名失败,玩湃币不足,请充值");
            }
        }
        if(paymentCompetitionVo.getPayType() == 4){//课程
@@ -247,7 +255,8 @@
                // 2.0
                Integer integer = coursePackagePaymentClient.queryResidueClassHourById(paymentCompetitionVo.getCoursePaymentId());
                if(new BigDecimal(integer).compareTo(new BigDecimal(competition.getClassPrice())) < 0){
                    return ResultUtil.error( "剩余课时不足,无法完成支付。");
                    return new ResultUtil(3,"剩余课时不足,无法完成支付。");
                }
            }
        }
@@ -292,7 +301,7 @@
            paymentCompetition.setPayOrderNo("");
            paymentCompetitionService.updateById(paymentCompetition);
            competition.setApplicantsNumber(competition.getApplicantsNumber() + 1);
//            competition.setApplicantsNumber(competition.getApplicantsNumber() + 1);
            this.updateById(competition);
        }
        if(paymentCompetitionVo.getPayType() == 4){//课程
@@ -304,6 +313,7 @@
                paymentDeductionClassHour.setClassHour(competition.getClassPrice());
                paymentDeductionClassHour.setCode(code);
                paymentDeductionClassHour.setCourseId(paymentCompetitionVo.getCoursePaymentId());
                paymentDeductionClassHour.setUid(uid);
                coursePackagePaymentClient.paymentDeductionClassHour(paymentDeductionClassHour);
            }
            paymentCompetition = paymentCompetitionService.getById(paymentCompetition.getId());
@@ -549,10 +559,25 @@
    /**
     * 定时任务修改赛事状态
     */
    @Override
    public void taskSetStatus() {
        this.baseMapper.taskSetStatusStart();
        this.baseMapper.taskSetStatusEnd();
        Date currentTime = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(currentTime);
        calendar.add(Calendar.MINUTE, -10);
        Date tenMinutesAgo = calendar.getTime();
        List<PaymentCompetition> payStatus = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>().eq("payStatus", 1).le("insertTime", tenMinutesAgo));
        List<Long> pays = new ArrayList<>();
        for (PaymentCompetition status : payStatus) {
            pays.add(status.getId());
        }
        if (!pays.isEmpty()) {
            this.baseMapper.deleteTenMinutes(pays);
        }
    }
    @Override