Selaa lähdekoodia

1、试听课

Joburgess 5 vuotta sitten
vanhempi
commit
cc42a83e96

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherCourseRewardDao.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.CourseTeacherSalaryStatisticsDto;
 import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -43,6 +44,8 @@ public interface TeacherCourseRewardDao extends BaseDAO<Long, TeacherCourseRewar
     List<TeacherCourseReward> findTeacherCourseRewards(Map<String, Object> params);
     int countTeacherCourseRewards(Map<String, Object> params);
 
-//    TeacherCourseReward findTeacherCourseRewardWith
+    TeacherCourseReward findTeacherCourseRewardWithGroup(@Param("teacherId") Integer teacherId,
+                                                    @Param("groupId") String groupId,
+                                                    @Param("groupType")GroupType groupType);
 
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -124,6 +124,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     private CourseScheduleEvaluateDao courseScheduleEvaluateDao;
     @Autowired
     private StudentRegistrationDao studentRegistrationDao;
+    @Autowired
+    private TeacherCourseRewardService teacherCourseRewardService;
 
     private static Map<Integer, Map<Integer, List<Integer>>> schoolSubjectTeachersMap;
 
@@ -3168,6 +3170,12 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             LOGGER.error("网管课[{}]购买协议错误:{}",order.getMusicGroupId(),e.getMessage(),e.getMessage());
         }
 
+        try {
+            teacherCourseRewardService.addConvertReward(practiceGroup.getStudentId(), practiceGroup.getUserId());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
         Teacher teacher = teacherService.getDetail(practiceGroup.getUserId());
 
         String groupStartTime=DateUtil.dateToString(practiceGroup.getCoursesStartDate(),"yyyy年MM月dd日");

+ 46 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseRewardServiceImpl.java

@@ -2,25 +2,30 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.PracticeGroupDao;
 import com.ym.mec.biz.dal.dao.TeacherCourseRewardDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.TeacherCourseSalaryDetail4WebDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.PracticeGroup;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.page.CourseSalaryQueryInfo4Web;
 import com.ym.mec.biz.service.TeacherCourseRewardService;
 import com.ym.mec.common.dal.BaseDAO;
 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.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class TeacherCourseRewardServiceImpl extends BaseServiceImpl<Long, TeacherCourseReward> implements TeacherCourseRewardService {
@@ -29,6 +34,10 @@ public class TeacherCourseRewardServiceImpl extends BaseServiceImpl<Long, Teache
     private TeacherCourseRewardDao teacherCourseRewardDao;
     @Autowired
     private PracticeGroupDao practiceGroupDao;
+    @Autowired
+    private TeacherDao teacherDao;
+
+    private final static Set<Integer> SPECIAL_ORGAN_IDS = new HashSet<>(Arrays.asList(new Integer[]{15, 16}));
 
     @Override
     public BaseDAO<Long, TeacherCourseReward> getDAO() {
@@ -39,10 +48,41 @@ public class TeacherCourseRewardServiceImpl extends BaseServiceImpl<Long, Teache
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public void addConvertReward(Integer studentId, Integer teacherId) {
         List<CourseSchedule> studentAndTeacherTrialPractices = practiceGroupDao.findStudentAndTeacherTrialPractices(studentId, teacherId);
-        if(CollectionUtils.isEmpty(studentAndTeacherTrialPractices)){
+        if (CollectionUtils.isEmpty(studentAndTeacherTrialPractices)) {
+            return;
+        }
+        studentAndTeacherTrialPractices.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
+
+        Date now = new Date();
+        if (DateUtil.daysBetween(studentAndTeacherTrialPractices.get(studentAndTeacherTrialPractices.size() - 1).getEndClassTime(), now) > 7) {
             return;
         }
 
+        TeacherCourseReward teacherCourseRewardWithGroup = teacherCourseRewardDao.findTeacherCourseRewardWithGroup(teacherId, studentAndTeacherTrialPractices.get(0).getMusicGroupId(), studentAndTeacherTrialPractices.get(0).getGroupType());
+        if (Objects.nonNull(teacherCourseRewardWithGroup)) {
+            return;
+        }
+        PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(studentAndTeacherTrialPractices.get(0).getMusicGroupId()));
+        Teacher teacher = teacherDao.get(teacherId);
+        BigDecimal rewardMoney;
+        if (SPECIAL_ORGAN_IDS.contains(teacher.getTeacherOrganId())) {
+            rewardMoney = new BigDecimal(40);
+        } else {
+            rewardMoney = new BigDecimal(30);
+        }
+        rewardMoney = rewardMoney.multiply(new BigDecimal(studentAndTeacherTrialPractices.size()));
+        TeacherCourseReward teacherCourseReward = new TeacherCourseReward();
+        teacherCourseReward.setMusicGroupId(practiceGroup.getId().toString());
+        teacherCourseReward.setGroupType(GroupType.PRACTICE.getCode());
+        String courseScheduleIdList = StringUtils.join(studentAndTeacherTrialPractices.stream().map(CourseSchedule::getId).collect(Collectors.toList()), ",");
+        teacherCourseReward.setCourseScheduleIdList(courseScheduleIdList);
+        teacherCourseReward.setCourseGroupName(practiceGroup.getName());
+        teacherCourseReward.setOrganId(practiceGroup.getOrganId());
+        teacherCourseReward.setTeacherId(teacherId);
+        teacherCourseReward.setExpectRewardAmount(rewardMoney);
+        teacherCourseReward.setCreateTime(now);
+        teacherCourseReward.setUpdateTime(now);
+        teacherCourseRewardDao.insert(teacherCourseReward);
     }
 
     @Override
@@ -58,7 +98,7 @@ public class TeacherCourseRewardServiceImpl extends BaseServiceImpl<Long, Teache
             params.put("offset", pageInfo.getOffset());
             List<TeacherCourseReward> teacherCourseRewards = teacherCourseRewardDao.findTeacherCourseRewards(params);
             for (TeacherCourseReward teacherCourseReward : teacherCourseRewards) {
-                TeacherCourseSalaryDetail4WebDto t=new TeacherCourseSalaryDetail4WebDto();
+                TeacherCourseSalaryDetail4WebDto t = new TeacherCourseSalaryDetail4WebDto();
                 t.setCourseName(teacherCourseReward.getCourseGroupName());
                 t.setCourseTimes(teacherCourseReward.getCourseScheduleIdList().split(",").length);
                 t.setMemo(teacherCourseReward.getMemo());

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -126,6 +126,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private EmployeeDao employeeDao;
 	@Autowired
 	private GroupDao groupDao;
+	@Autowired
+	private TeacherCourseRewardService teacherCourseRewardService;
 
 	private static final Logger LOGGER = LoggerFactory
 			.getLogger(VipGroup.class);
@@ -1127,6 +1129,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//生成学生单课缴费信息
 		for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
 			courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroupId,classGroupStudent.getUserId());
+			try {
+				teacherCourseRewardService.addConvertReward(classGroupStudent.getUserId(), vipGroupApplyBaseInfoDto.getUserId());
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
 			imGroupMemberList.add(new ImGroupMember(classGroupStudent.getUserId().toString()));
 		}
 

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/TeacherCourseRewardDao.xml

@@ -187,4 +187,15 @@
             AND DATE_FORMAT( settlement_date_, '%Y-%m-%d' ) = #{month}
     </select>
 
+    <select id="findTeacherCourseRewardWithGroup" resultMap="teacherCourseReward">
+        SELECT
+            *
+        FROM
+            teacher_course_reward
+        WHERE
+            teacher_id_ = #{teacherId}
+            AND music_group_id_=#{groupId}
+            AND group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+    </select>
+
 </mapper>

+ 3 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduPracticeGroupController.java

@@ -11,6 +11,7 @@ import com.ym.mec.biz.dal.page.StudentQueryInfo;
 import com.ym.mec.biz.service.EduPracticeGroupService;
 import com.ym.mec.biz.service.PracticeGroupService;
 import com.ym.mec.biz.service.StudentService;
+import com.ym.mec.biz.service.TeacherCourseRewardService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
@@ -48,6 +49,8 @@ public class EduPracticeGroupController extends BaseController {
     private TeacherDao teacherDao;
     @Autowired
     private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private TeacherCourseRewardService teacherCourseRewardService;
 
     List<Integer> excludeOrganIds=new ArrayList<>(Arrays.asList(new Integer[]{36}));
 
@@ -262,5 +265,4 @@ public class EduPracticeGroupController extends BaseController {
         practiceGroupService.update(practiceGroup);
         return succeed();
     }
-
 }