package com.ym.mec.task;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

import com.ym.mec.common.config.FeignConfiguration;
import com.ym.mec.task.fallback.TaskRemoteServiceFallback;

@FeignClient(name = "web-server", contextId = "TaskRemoteService", configuration = { FeignConfiguration.class }, fallback = TaskRemoteServiceFallback.class)
public interface TaskRemoteService {

	@GetMapping(value = "task/pushWaitSendMessageTask")
	// 每天9点推送前一天22点之后的推送消息
	public void pushWaitSendMessageTask();

	@GetMapping(value = "task/pushTeacherExceptionAttendanceTask")
	// 教师异常考勤推送
	public void pushTeacherExceptionAttendanceTask();

	@GetMapping(value = "task/updateMusicGroupStudentFeeStatus")
	// 更新学员缴费状态（新）
	public void updateMusicGroupStudentFeeStatus();

	@GetMapping(value = "task/refreshPaymentFeeStatus")
	// 刷新付费状态
	public void refreshPaymentFeeStatus();

	@GetMapping(value = "task/refreshUserMusicGroupPaymentStatusTask")
	// 刷新学员乐团付费状态
	public void refreshUserMusicGroupPaymentStatusTask();

	@GetMapping(value = "task/vipGroupAwardedMonthlyRewards")
	// vip课月度奖励
	public void vipGroupAwardedMonthlyRewards();

	@GetMapping(value = "task/updateCourseScheduleToOverStatus")
	// 更新课程状态至已结束
	void updateCourseScheduleToOverStatus();

	@GetMapping("task/pushNoSignOutMessage")
	// 推送未签退消息提醒
	public void pushNoSignOutMessage();

	@GetMapping("task/vipGroupTeacherSalarySettlement")
	// vip课课酬结算
	public void vipGroupTeacherSalarySettlement();

	@GetMapping("task/practiceTeacherSalarySettlement")
	// 陪练课课酬结算
	public void practiceTeacherSalarySettlement();

	@GetMapping("task/musicGroupTeacherSalarySettlement")
	void MusicGroupTeacherSalarySettlement();

	@GetMapping("task/studentCoursesScheduleRemind")
	// 学生有课提醒
	public void studentCoursesScheduleRemind();

	@GetMapping("task/studentSignInRemind")
	// 学生上课提醒
	public void studentSignInRemind();

	@GetMapping("task/studentHomeworkRemind")
	// 学生作业提醒
	public void studentHomeworkRemind();

	@GetMapping("task/teacherCoursesScheduleRemind")
	// 老师有课提醒
	public void teacherCoursesScheduleRemind();

	@GetMapping("task/teacherSignInRemind")
	// 老师上课提醒
	public void teacherSignInRemind();

	@GetMapping("task/homeworkNoReplyRemind")
	// 老师未回复作业提醒
	public void homeworkNoReplyRemind();

	@GetMapping("task/queryOrderStatus")
	// 订单状态查询
	public void queryOrderStatus();

	@GetMapping("task/updateVipGroupToFinishedStatus")
	// 更新VIP课程状态至已结束
	public void updateVipGroupToFinishedStatus();

	@GetMapping("task/stopVipGroupWithNoCreate")
	// 取消达到报名时间未达到报名人数的vip课
	public void stopVipGroupWithNoCreate();

	@GetMapping("task/teacherCourseStatistic")
	// 老师课酬统计
	public void teacherCourseStatistic();

	//更新历史陪练课至已结束
	@GetMapping("task/updateHistoryPracticeGroupStatus")
	public void updateHistoryPracticeGroupStatus();

	//练习报告定时推送
	@GetMapping("task/pushStudyReport")
	void pushStudyReport();

	//新增待填写月报定时推送(推送老师)
	@GetMapping("task/pushNeedPostReport")
	void pushNeedPostReport();

	//预生成待提交月报
	@GetMapping("task/createEvaluate")
	void createEvaluate();

	//新增待填写评论定时推送(推送老师)
	@GetMapping("task/pushNeedReview2Teacher")
	void pushNeedReview2Teacher();

	//对外无学生课程组提醒
	@GetMapping("task/noStudentsCourseGroupRemind")
	void noStudentsCourseGroupRemind();

	@GetMapping("task/finishCourseGroup")
	void finishCourseGroup();

	@GetMapping("task/exercisesSituationStatistics")
	void exercisesSituationStatistics();

	//更新学生运营指标
	@GetMapping("task/updateStudentOperatingTag")
	void updateStudentOperatingTag();

	// 更新乐团缴费日历的状态
	@GetMapping("task/updateMusicGroupPaymentCalenderStatus")
	void updateMusicGroupPaymentCalenderStatus();

	//老师本周应布置课外训练
	@GetMapping("task/studentServeRemind")
	void studentServeRemind();

	//经营报表
	@GetMapping("task/operatingReport")
	void operatingReport();

	//商品库存预警
	@GetMapping("task/repertoryWarn")
    void goodsRepertoryFBIWarnTask();

	//自动确认收货
	@GetMapping("task/autoAffirmReceiveTask")
    void autoAffirmReceiveTask();

	//首页数据统计
	@GetMapping("task/countIndexBaseData")
	void countIndexBaseData();
}
