From a9628f681a7048cbd3f66c2847ea1c7bf195ef38 Mon Sep 17 00:00:00 2001
From: wuyibo <771227828@qq.com>
Date: Fri, 14 Jul 2023 09:37:28 +0800
Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E6=88=90xxl-job?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 5 +
ruoyi-modules/ruoyi-system/pom.xml | 4 +
.../system/controller/WxUserController.java | 8 ++
.../domain/vo/CompetitionTeamVsTeamVo.java | 4 +
.../system/job/CompetitionJobHandler.java | 103 ++++++++++++++++++
.../system/mapper/CompetitionMapper.java | 2 +
.../mapper/CompetitionTeamVsTeamMapper.java | 5 +
.../system/service/ICompetitionService.java | 2 +
.../ICompetitionTeamVsTeamService.java | 4 +
.../service/impl/CompetitionServiceImpl.java | 5 +
.../CompetitionTeamVsTeamServiceImpl.java | 10 ++
.../mapper/system/CompetitionMapper.xml | 3 +
.../system/CompetitionTeamVsTeamMapper.xml | 97 +++++++++++++++++
13 files changed, 252 insertions(+)
create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/job/CompetitionJobHandler.java
diff --git a/pom.xml b/pom.xml
index 76fa5e7a..b5f5605d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -190,6 +190,11 @@
mybatis-plus-boot-starter
3.5.3.1
-->
+
+ com.xuxueli
+ xxl-job-core
+ 2.2.0
+
com.baidu.aip
java-sdk
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index 5b65a044..14822bf3 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -96,6 +96,10 @@
org.projectlombok
lombok
+
+ com.xuxueli
+ xxl-job-core
+
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WxUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WxUserController.java
index ecaeafc2..67d327b4 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WxUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WxUserController.java
@@ -120,6 +120,14 @@ public class WxUserController extends BaseController
return toAjax(wxUserService.deleteWxUserByIds(ids));
}
+ @ApiOperation(ApiTerminal.wxMiniProgram+"根据用户id修改个人数据")
+ @PostMapping(value = "/edit")
+ @ResponseBody
+ public AjaxResult editInfo(@RequestBody WxUser wxUser)
+ {
+ return AjaxResult.success(wxUserService.updateWxUser(wxUser));
+ }
+
@ApiOperation(ApiTerminal.wxMiniProgram+"根据用户id查询个人中心详情")
@PostMapping("/detail/{userId}")
@ResponseBody
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java
index 65943b90..bf30ad24 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java
@@ -20,7 +20,11 @@ public class CompetitionTeamVsTeamVo extends CompetitionTeamVsTeam {
@ApiModelProperty(value = "客队logo", required = false)
private String guestTeamLogo;
+ @ApiModelProperty(value = "客队队长openid", required = false)
+ private String guestTeamOpenId;
+ @ApiModelProperty(value = "主队队长openid", required = false)
+ private String mainTeamOpenId;
@ApiModelProperty(value = "中文状态", required = false)
private String statusName;
@ApiModelProperty(value = "比赛日期", required = false)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/job/CompetitionJobHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/job/CompetitionJobHandler.java
new file mode 100644
index 00000000..7675d14a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/job/CompetitionJobHandler.java
@@ -0,0 +1,103 @@
+package com.ruoyi.system.job;
+import com.ruoyi.system.domain.Competition;
+import com.ruoyi.system.domain.CompetitionTeamVsTeam;
+import com.ruoyi.system.domain.enums.CompetitionStatusEnum;
+import com.ruoyi.system.domain.enums.WxAppletsTemplateIdsEnum;
+import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo;
+import com.ruoyi.system.domain.vo.TemplateDataVo;
+import com.ruoyi.system.domain.vo.WxMssVo;
+import com.ruoyi.system.service.ICompetitionService;
+import com.ruoyi.system.service.ICompetitionTeamVsTeamService;
+import com.ruoyi.system.service.WxAppletsService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class CompetitionJobHandler {
+ @Resource
+ private ICompetitionService competitionService;
+
+ @Resource
+ private ICompetitionTeamVsTeamService competitionTeamVsTeamService;
+
+ @Resource
+ private WxAppletsService wxAppletsService;
+
+ /** 赛会状态修改
+ * 根据比赛时间修改比赛完成-定时任务
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob("competitionFinishJob")
+ public ReturnT execute(String param) throws Exception {
+ competitionService.updateCompetitionFinish();
+ return ReturnT.SUCCESS;
+ }
+
+ /**
+ * 根据比赛时间修改比赛-队长完成-定时任务
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob("competitionVsFinishJob")
+ public ReturnT competitionVsFinishJob(String param) throws Exception {
+ CompetitionTeamVsTeam competitionTeamVsTeam = new CompetitionTeamVsTeam();
+ competitionTeamVsTeamService.competitionVsTeamStatusUpdate(competitionTeamVsTeam);
+ return ReturnT.SUCCESS;
+ }
+ /**
+ * 根据 球队VS球队 推送给队长-定时任务
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob("pushScheduleTeamVsTeamJob")
+ public ReturnT pushScheduleTeamVsTeamJob(String param) throws Exception {
+ CompetitionTeamVsTeam competitionTeamVsTeam=new CompetitionTeamVsTeam();
+ competitionTeamVsTeam.setIsDeleted(0);
+ List list = competitionTeamVsTeamService.getTodaySchedule(competitionTeamVsTeam);
+ //循环推送消息
+ for (CompetitionTeamVsTeamVo vo : list) {
+ //主队
+ if(!StringUtils.isEmpty(vo)&&!StringUtils.isEmpty(vo.getMainTeamOpenId())) {
+ // Competition competition = competitionService.getById(vo.getCompetitionId());
+ WxMssVo wxMssVo = new WxMssVo();
+ wxMssVo.setTemplate_id(WxAppletsTemplateIdsEnum.COMPETITION_COURSE_REMIND.getCode());
+ wxMssVo.setTouser(vo.getMainTeamOpenId());
+ Map map = new HashMap<>();
+ map.put("thing1", new TemplateDataVo(vo.getMainTeamName()+" VS "+vo.getGuestTeamName()));
+ map.put("thing2", new TemplateDataVo(vo.getCompetitionDate() +" " +vo.getTheTime()));
+ map.put("thing3", new TemplateDataVo(vo.getVsType()));
+ map.put("thing4", new TemplateDataVo("你的球队今天有比赛哦,快去为自己的球队冲榜"));
+ wxMssVo.setData(map);
+ wxAppletsService.pushOneUser(wxMssVo);
+ }
+ //客队
+ if(!StringUtils.isEmpty(vo)&&!StringUtils.isEmpty(vo.getGuestTeamOpenId())) {
+ // Competition competition = competitionService.getById(vo.getCompetitionId());
+ WxMssVo wxMssVo = new WxMssVo();
+ wxMssVo.setTemplate_id(WxAppletsTemplateIdsEnum.COMPETITION_COURSE_REMIND.getCode());
+ wxMssVo.setTouser(vo.getGuestTeamOpenId());
+ Map map = new HashMap<>();
+ map.put("thing1", new TemplateDataVo(vo.getMainTeamName()+" VS "+vo.getGuestTeamName()));
+ map.put("thing2", new TemplateDataVo(vo.getCompetitionDate() +" " +vo.getTheTime()));
+ map.put("thing3", new TemplateDataVo(vo.getVsType()));
+ map.put("thing4", new TemplateDataVo("你的球队今天有比赛哦,快去为自己的球队冲榜"));
+ wxMssVo.setData(map);
+ wxAppletsService.pushOneUser(wxMssVo);
+ }
+ }
+ return ReturnT.SUCCESS;
+ }
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionMapper.java
index 1dfebb4c..9b925312 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionMapper.java
@@ -66,4 +66,6 @@ public interface CompetitionMapper
CompetitionExcleVo getTeamEnrollExcleImpData(Long competitionId, Long userId);
List getMyJoinCompetition(CompetitionVo competition);
+
+ int updateCompetitionFinish();
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionTeamVsTeamMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionTeamVsTeamMapper.java
index e244f3e2..0aca3a95 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionTeamVsTeamMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionTeamVsTeamMapper.java
@@ -4,6 +4,7 @@ import java.util.List;
import com.ruoyi.system.domain.CompetitionTeamVsTeam;
import com.ruoyi.system.domain.vo.CompetitionTeamIntegralVo;
import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo;
+import com.ruoyi.system.service.ICompetitionResultService;
import org.apache.ibatis.annotations.Param;
/**
@@ -76,4 +77,8 @@ public interface CompetitionTeamVsTeamMapper
List getLatelySchedule(CompetitionTeamVsTeam competitionTeamVsTeam);
List getCompetitionTeamIntegralListById(@Param("id") Long id);
+
+ int competitionVsTeamStatusUpdate(CompetitionTeamVsTeam competitionTeamVsTeam);
+
+ List getTodaySchedule(ICompetitionResultService competitionResultService);
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionService.java
index b79b3cef..af1b5dff 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionService.java
@@ -87,4 +87,6 @@ public interface ICompetitionService
Boolean edit(Competition entity);
CompetitionExcleVo importExcleData(Long competitionId,Map maplist, Sheet sheet);
+ //根据当前时间修改已经完成的赛会数据
+ int updateCompetitionFinish();
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionTeamVsTeamService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionTeamVsTeamService.java
index f816dba8..2a8c63bf 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionTeamVsTeamService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionTeamVsTeamService.java
@@ -76,4 +76,8 @@ public interface ICompetitionTeamVsTeamService
Boolean competitionScoreSubmit(List request);
Boolean deleteBatchByIds(Ids ids);
+
+ int competitionVsTeamStatusUpdate(CompetitionTeamVsTeam competitionTeamVsTeam);
+
+ List getTodaySchedule(CompetitionTeamVsTeam competitionTeamVsTeam);
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionServiceImpl.java
index 856b3892..83450fe5 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionServiceImpl.java
@@ -688,4 +688,9 @@ public class CompetitionServiceImpl implements ICompetitionService
}
return excleVo;
}
+
+ @Override
+ public int updateCompetitionFinish() {
+ return competitionMapper.updateCompetitionFinish();
+ }
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionTeamVsTeamServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionTeamVsTeamServiceImpl.java
index 29188138..db5db4e1 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionTeamVsTeamServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionTeamVsTeamServiceImpl.java
@@ -299,4 +299,14 @@ public class CompetitionTeamVsTeamServiceImpl implements ICompetitionTeamVsTeamS
competitionTeamVsTeamMapper.deleteCompetitionTeamVsTeamByIds(idList);
return Boolean.TRUE;
}
+
+ @Override
+ public int competitionVsTeamStatusUpdate(CompetitionTeamVsTeam competitionTeamVsTeam) {
+ return competitionTeamVsTeamMapper.competitionVsTeamStatusUpdate(competitionTeamVsTeam);
+ }
+
+ @Override
+ public List getTodaySchedule(CompetitionTeamVsTeam competitionTeamVsTeam) {
+ return competitionTeamVsTeamMapper.getTodaySchedule(competitionResultService);
+ }
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionMapper.xml
index 9260abe7..1f8a0b9f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionMapper.xml
@@ -344,6 +344,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
+
+ update competition set status = 2 where status <> 2 and competition_end_time now()
+
delete from competition where id = #{id}
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionTeamVsTeamMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionTeamVsTeamMapper.xml
index 71318972..bdb2ff6a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionTeamVsTeamMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionTeamVsTeamMapper.xml
@@ -251,6 +251,100 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY t.competition_of_team_id
ORDER BY sum(t.integral) desc
+
insert into competition_team_vs_team
@@ -348,6 +442,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and batch_number = #{batchNumber}
+
+ update competition_team_vs_team set status = 2 where status <> 2 and competition_time now()
+
delete from competition_team_vs_team where id = #{id}