nickchange
2023-10-31 986989a2b7a49353598fda317e3bdaed59f09abc
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -11,6 +11,7 @@
import com.dsh.competition.entity.UserCompetition;
import com.dsh.competition.feignclient.account.AppUserClient;
import com.dsh.competition.feignclient.account.model.AppUser;
import com.dsh.competition.feignclient.course.CoursePackagePaymentClient;
import com.dsh.competition.feignclient.model.*;
import com.dsh.competition.model.*;
import com.dsh.competition.service.CompetitionService;
@@ -25,9 +26,11 @@
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.Synchronized;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
@@ -254,6 +257,9 @@
    @Autowired
    private CompetitionService competitionService;
    @Resource
    private  CoursePackagePaymentClient coursePackagePaymentClient;
    @ResponseBody
    @PostMapping("/api/competition/paymentCompetition")
@@ -262,23 +268,18 @@
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil paymentCompetition(PaymentCompetitionVo paymentCompetitionVo){
    public synchronized ResultUtil paymentCompetition(PaymentCompetitionVo paymentCompetitionVo){
        try {
            Competition byId = competitionService.getById(paymentCompetitionVo.getId());
            Date date = byId.getEndTime(); // Assuming you have a Date object
            // Check if the date is past the current time
            boolean isPast = date.after(new Date());
            if (!isPast) {
                return new ResultUtil(0,"已超过截至报名时间");
            }
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
                return ResultUtil.tokenErr();
@@ -286,6 +287,33 @@
            if (byId.getRegisterCondition()==3){
             Integer counts =    coursePackagePaymentClient.isHave(uid);
                if (counts==0){
                    return new ResultUtil(0,"当前赛事仅限已购课学员报名");
                }
            }
            if (byId.getRegisterCondition()==2){
                AppUser appUser = appUserClient.queryAppUser(uid);
                if (appUser.getIsVip()==0){
                    return new ResultUtil(0,"当前赛事仅限年度会员报名");
                }else {
                    Date vipEndTime = appUser.getVipEndTime();
                    Date currentTime = new Date(); // Current time
                    if (vipEndTime.before(currentTime)) {
                        return new ResultUtil(0,"您的年度会员已过期,请续费");
                    }
                }
            }
            return cttService.paymentCompetition(uid, paymentCompetitionVo);
        }catch (Exception e){
            e.printStackTrace();