|
@@ -6,7 +6,9 @@ import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
import com.yonge.cooleshow.common.constant.SysConfigConstant;
|
|
|
import com.yonge.cooleshow.common.controller.BaseController;
|
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
+import com.yonge.toolset.payment.util.DistributedLock;
|
|
|
import com.yonge.toolset.utils.date.DateUtil;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.redisson.api.RBucket;
|
|
@@ -32,6 +34,7 @@ import java.util.concurrent.TimeUnit;
|
|
|
@RestController
|
|
|
@RequestMapping("${app-config.url.admin:}/task")
|
|
|
@ApiIgnore
|
|
|
+@Slf4j
|
|
|
public class TaskController extends BaseController {
|
|
|
@Autowired
|
|
|
private UserOrderService userOrderService;
|
|
@@ -82,6 +85,7 @@ public class TaskController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private UserMusicService userMusicService;
|
|
|
+
|
|
|
/***
|
|
|
* 轮询用户订单
|
|
|
* @author liweifan
|
|
@@ -90,9 +94,17 @@ public class TaskController extends BaseController {
|
|
|
*/
|
|
|
@GetMapping("/pollingOrder")
|
|
|
public HttpResponseResult pollingOrder() {
|
|
|
- userOrderService.pollingOrder();
|
|
|
- userPaymentCoreService.scanPaymentTimeoutOrderRecord();
|
|
|
- userPaymentCoreService.scanRefundOrderRecord();
|
|
|
+
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("pollingOrder", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ userOrderService.pollingOrder();
|
|
|
+ userPaymentCoreService.scanPaymentTimeoutOrderRecord();
|
|
|
+ userPaymentCoreService.scanRefundOrderRecord();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("pollingOrder error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return succeed();
|
|
|
}
|
|
|
|
|
@@ -104,24 +116,48 @@ public class TaskController extends BaseController {
|
|
|
*/
|
|
|
@GetMapping("/daysTask")
|
|
|
public HttpResponseResult<Boolean> daysTask() {
|
|
|
- //超过天数无琴房课的解除绑定关系
|
|
|
- userBindingTeacherService.unbindTask();
|
|
|
- //平台老师结算
|
|
|
- platformCashAccountRecordService.updateWaitRecord();
|
|
|
+
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("daysTask", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ //超过天数无琴房课的解除绑定关系
|
|
|
+ userBindingTeacherService.unbindTask();
|
|
|
+ //平台老师结算
|
|
|
+ platformCashAccountRecordService.updateWaitRecord();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("daysTask error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return succeed(true);
|
|
|
}
|
|
|
|
|
|
// 老师作业布置
|
|
|
@PostMapping(value = "/teacherSend")
|
|
|
public HttpResponseResult<Object> sendTodayNotRepliedAndNotDecorateHomework() {
|
|
|
- courseScheduleService.sendTodayNotRepliedAndNotDecorateHomework();
|
|
|
+
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("teacherSend", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ courseScheduleService.sendTodayNotRepliedAndNotDecorateHomework();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("teacherSend error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
|
//老师课酬
|
|
|
@PostMapping(value = "/teacherEarning")
|
|
|
public HttpResponseResult<Object> sendTeacherEarning() {
|
|
|
- userAccountRecordService.sendTeacherEarning();
|
|
|
+
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("teacherEarning", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ userAccountRecordService.sendTeacherEarning();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("teacherEarning error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
@@ -142,14 +178,30 @@ public class TaskController extends BaseController {
|
|
|
//营销活动
|
|
|
@PostMapping(value = "/activityState")
|
|
|
public HttpResponseResult<Object> activityState() {
|
|
|
- activityPlanService.activityState();
|
|
|
+
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("activityState", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ activityPlanService.activityState();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("activityState error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
|
//活动中定时轮询
|
|
|
@PostMapping(value = "/activityIng")
|
|
|
public HttpResponseResult<Object> activityIng() {
|
|
|
- activityPlanService.activityIng();
|
|
|
+
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("activityIng", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ activityPlanService.activityIng();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("activityIng error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
@@ -161,7 +213,14 @@ public class TaskController extends BaseController {
|
|
|
@GetMapping("/test")
|
|
|
public HttpResponseResult<Object> test(@RequestParam("activityId") Long activityId) {
|
|
|
|
|
|
- activityPlanEvaluationService.successActivity(activityId);
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("test", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ activityPlanEvaluationService.successActivity(activityId);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("test error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
@@ -172,15 +231,21 @@ public class TaskController extends BaseController {
|
|
|
@GetMapping("/virtualNumber")
|
|
|
public HttpResponseResult<Object> virtualNumber() {
|
|
|
|
|
|
- // 曲目
|
|
|
- musicSheetService.setVirtualNumber();
|
|
|
- // 专辑
|
|
|
- musicAlbumService.setVirtualNumber();
|
|
|
- // 视频课 暂时不做课程数据
|
|
|
- // videoLessonGroupService.setVirtualNumber();
|
|
|
- // 个人风采
|
|
|
- teacherStyleVideoService.setVirtualNumber();
|
|
|
-
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("virtualNumber", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ // 曲目
|
|
|
+ musicSheetService.setVirtualNumber();
|
|
|
+ // 专辑
|
|
|
+ musicAlbumService.setVirtualNumber();
|
|
|
+ // 视频课 暂时不做课程数据
|
|
|
+ // videoLessonGroupService.setVirtualNumber();
|
|
|
+ // 个人风采
|
|
|
+ teacherStyleVideoService.setVirtualNumber();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("virtualNumber error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
@@ -189,10 +254,15 @@ public class TaskController extends BaseController {
|
|
|
*/
|
|
|
@GetMapping("/batchSending")
|
|
|
public HttpResponseResult<Object> batchSending() {
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("batchSending", () -> {
|
|
|
+ try {
|
|
|
|
|
|
- // 群发消息定时
|
|
|
- customerServiceBatchSendingService.scheduleSendMessage();
|
|
|
-
|
|
|
+ // 群发消息定时
|
|
|
+ customerServiceBatchSendingService.scheduleSendMessage();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("batchSending error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
@@ -202,10 +272,15 @@ public class TaskController extends BaseController {
|
|
|
*/
|
|
|
@GetMapping("/destroyLiveRoom")
|
|
|
public HttpResponseResult<Object> destroyLiveRoom() {
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("destroyLiveRoom", () -> {
|
|
|
+ try {
|
|
|
|
|
|
- // 群发消息定时
|
|
|
- liveRoomService.destroyLiveRoom();
|
|
|
-
|
|
|
+ // 群发消息定时
|
|
|
+ liveRoomService.destroyLiveRoom();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("destroyLiveRoom error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
@@ -231,10 +306,15 @@ public class TaskController extends BaseController {
|
|
|
*/
|
|
|
@GetMapping("/sendPlatformAuditMessage")
|
|
|
public HttpResponseResult<Object> sendPlatformAuditMessage() {
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("sendPlatformAuditMessage", () -> {
|
|
|
+ try {
|
|
|
|
|
|
- // 群发消息定时
|
|
|
- tenantUnbindRecordService.sendPlatformAuditMessage();
|
|
|
-
|
|
|
+ // 群发消息定时
|
|
|
+ tenantUnbindRecordService.sendPlatformAuditMessage();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("sendPlatformAuditMessage error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
@@ -244,10 +324,15 @@ public class TaskController extends BaseController {
|
|
|
*/
|
|
|
@GetMapping("/sendTenantAlbumMessage")
|
|
|
public HttpResponseResult<Object> sendTenantAlbumMessage() {
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("sendTenantAlbumMessage", () -> {
|
|
|
+ try {
|
|
|
|
|
|
- // 群发消息定时
|
|
|
- userTenantAlbumRecordService.sendTenantAlbumMessage();
|
|
|
-
|
|
|
+ // 群发消息定时
|
|
|
+ userTenantAlbumRecordService.sendTenantAlbumMessage();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("sendTenantAlbumMessage error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
return HttpResponseResult.succeed();
|
|
|
}
|
|
|
|
|
@@ -257,12 +342,26 @@ public class TaskController extends BaseController {
|
|
|
*/
|
|
|
@GetMapping("/workOverdue")
|
|
|
public void workOverdue(){
|
|
|
- userMusicService.workOverdue();
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("workOverdue", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ userMusicService.workOverdue();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("workOverdue error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
}
|
|
|
|
|
|
//课程开始前一20分组提醒
|
|
|
@GetMapping("/courseStartRemind")
|
|
|
public void courseStartRemind(){
|
|
|
- courseScheduleService.courseStartRemind();
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("courseStartRemind", () -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ courseScheduleService.courseStartRemind();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("courseStartRemind error", e);
|
|
|
+ }
|
|
|
+ }, 10L, TimeUnit.SECONDS);
|
|
|
}
|
|
|
}
|