瀏覽代碼

add 教师课酬预警

周箭河 5 年之前
父節點
當前提交
06adfb81d8

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherCourseStatisticsService.java

@@ -3,8 +3,15 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.entity.TeacherCourseStatistics;
 import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
+import com.ym.mec.util.date.DateUtil;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 
 public interface TeacherCourseStatisticsService extends BaseService<Long, TeacherCourseStatistics> {
@@ -17,4 +24,9 @@ public interface TeacherCourseStatisticsService extends BaseService<Long, Teache
      */
     PageInfo<TeacherCourseStatistics> queryPageDetail(TeacherCourseStatisticsQueryInfo queryInfo);
 
+    /**
+     * 乐团课程统计
+     */
+    void teacherCourseStatistic();
+
 }

+ 50 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseStatisticsServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
 
+import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dao.TeacherCourseStatisticsDao;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.TeacherCourseStatistics;
@@ -11,9 +12,11 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -22,6 +25,8 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
 
     @Autowired
     private TeacherCourseStatisticsDao teacherCourseStatisticsDao;
+    @Autowired
+    private SysConfigDao sysConfigDao;
 
     @Override
     public BaseDAO<Long, TeacherCourseStatistics> getDAO() {
@@ -45,4 +50,49 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
         }
         return pageInfo;
     }
+
+    @Override
+    public void teacherCourseStatistic() {
+        Date nextMonthDate = DateUtil.addMonths(new Date(), 1);
+        Date startDate = DateUtil.getFirstDayOfMonth(nextMonthDate);
+        Date endDate = DateUtil.getLastDayOfMonth(nextMonthDate);
+        String salaryConfig = sysConfigDao.findConfigValue("warning_min_course_salary");
+        BigDecimal salary = new BigDecimal(salaryConfig);
+        List<TeacherCourseStatistics> teacherCourseStatisticsList = teacherCourseStatisticsDao.findUserByWarringSalary(startDate, endDate, salary);
+        if (teacherCourseStatisticsList.size() == 0) {
+            return;
+        }
+        List<Integer> userIds = teacherCourseStatisticsList.stream().map(TeacherCourseStatistics::getUserId).collect(Collectors.toList());
+        List<TeacherCourseStatistics> teCourseSalaryStatisAndTypes = teacherCourseStatisticsDao.findUserCourseSalaryByUserIds(userIds, startDate, endDate);
+
+        for (TeacherCourseStatistics teacherCourseStatistics : teacherCourseStatisticsList) {
+            int vipCourseNum = 0;
+            int musicCourseNum = 0;
+            BigDecimal expectVipCourseSalary = BigDecimal.ZERO;
+            BigDecimal expectMusicCourseSalary = BigDecimal.ZERO;
+
+            for (TeacherCourseStatistics teCourseSalaryStatisAndType : teCourseSalaryStatisAndTypes) {
+                if (!teacherCourseStatistics.getUserId().equals(teCourseSalaryStatisAndType.getUserId())) continue;
+
+                if (teCourseSalaryStatisAndType.getGroupType().equals("VIP")) {
+                    expectVipCourseSalary = teCourseSalaryStatisAndType.getExpectTotalSalary();
+                    vipCourseNum = teCourseSalaryStatisAndType.getMusicCourseNum();
+                } else if (teCourseSalaryStatisAndType.getGroupType().equals("MUSIC")) {
+                    expectMusicCourseSalary = teCourseSalaryStatisAndType.getExpectTotalSalary();
+                    musicCourseNum = teCourseSalaryStatisAndType.getMusicCourseNum();
+                }
+            }
+            teacherCourseStatistics.setExpectVipCourseSalary(expectVipCourseSalary);
+            teacherCourseStatistics.setExpectMusicCourseSalary(expectMusicCourseSalary);
+            teacherCourseStatistics.setVipCourseNum(vipCourseNum);
+            teacherCourseStatistics.setMusicCourseNum(musicCourseNum);
+
+            if (teacherCourseStatistics.getSubjectIdList() == null) {
+                teacherCourseStatistics.setSubjectIdList("");
+            }
+            teacherCourseStatistics.setMonth(startDate);
+        }
+
+        teacherCourseStatisticsDao.batchAdd(teacherCourseStatisticsList);
+    }
 }

+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -67,4 +67,8 @@ public interface TaskRemoteService {
 	@GetMapping("task/stopVipGroupWithNoCreate")
 	// 取消达到报名时间未达到报名人数的vip课
 	public void stopVipGroupWithNoCreate();
+
+	@GetMapping("task/teacherCourseStatistic")
+	// 老师课酬统计
+	public void teacherCourseStatistic();
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/TeacherCourseStatisticsTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TeacherCourseStatisticsTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.teacherCourseStatistic();
+	}
+}

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -36,6 +36,9 @@ public class TaskController extends BaseController {
 	@Autowired
 	private StudentPaymentOrderService studentPaymentOrderService;
 
+	@Autowired
+	private TeacherCourseStatisticsService teacherCourseStatisticsService;
+
 	@GetMapping("/refreshPaymentFeeStatus")
 	// 刷新付费状态
 	public void refreshPaymentFeeStatus() {
@@ -126,4 +129,10 @@ public class TaskController extends BaseController {
 		studentPaymentOrderService.queryOrderStatus();
 	}
 
+	//统计老师课酬
+	@GetMapping("/teacherCourseStatistic")
+	public void  teacherCourseStatisticsService() throws Exception {
+		teacherCourseStatisticsService.teacherCourseStatistic();
+	}
+
 }