Kaynağa Gözat

Merge branch 'online1' into merge_music_group

周箭河 4 yıl önce
ebeveyn
işleme
d546a8fce2

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SporadicChargeTypeEnum.java

@@ -14,7 +14,8 @@ public enum SporadicChargeTypeEnum implements BaseEnum<Integer, SporadicChargeTy
     RECHARGE(9,"账户充值"),
     MUSIC_UPKEEP(10,"乐保服务"),
     OTHER(11,"其他"),
-    DOUBLE_ELEVEN2020(12,"2020双十一活动");
+    DOUBLE_ELEVEN2020(12,"2020双十一活动"),
+    HIGH_ONLINE_ACTIVITY(13,"网基课活动");
 
     private Integer code;
 

+ 4 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -334,18 +334,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         Map<Integer, Teacher> idTeacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, t -> t, (t1, t2) -> t1));
 
         for (TeacherVipSalaryDto ts : teacherSalaryList) {
-            // 修复兼职老师不管1v?和全职老师1vn的课酬为系统默认课酬(不管线上还是线下课)
-            if (ts.getTeacherJobNature() != JobNatureEnum.FULL_TIME || !org.apache.commons.lang3.StringUtils.equalsIgnoreCase("1v1", ts.getVipGroupCategoryName())) {
-                // 查询默认课酬
-                TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(ts.getUserId(), ts.getVipGroupCategoryId());
-                if (tdvs != null) {
-                    if (ts.getTeachMode() == TeachModeEnum.ONLINE) {
-                        ts.setExpectSalary(tdvs.getOfflineClassesSalary());
-                    } else {
-                        ts.setExpectSalary(tdvs.getOfflineClassesSalary());
-                    }
-                }
-            }else{
+            try {
                 //按照活动重新计算课酬
                 VipGroup vipGroup = vipGroupService.get(Long.valueOf(ts.getMusicGroupId()));
                 Map<String, BigDecimal> teachModeSalaryMap = vipGroupService.countVipGroupCoursePredictFee(vipGroup, ts.getUserId(), ts.getCourseScheduleId());
@@ -354,6 +343,9 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 }else if(TeachModeEnum.OFFLINE.equals(ts.getTeachMode())&&teachModeSalaryMap.containsKey("offlineTeacherSalary")){
                     ts.setExpectSalary(teachModeSalaryMap.get("offlineTeacherSalary"));
                 }
+            } catch (NumberFormatException e) {
+                LOGGER.error("课酬计算错误:",ts.getCourseScheduleId(), e.getCause());
+                ts.setExpectSalary(BigDecimal.ZERO);
             }
             courseScheduleTeacherSalaryDao.update(ts);
         }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -401,8 +401,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setVersion(0);
         BigDecimal balance = BigDecimal.ZERO;
         if (sporadicPayDto.getUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
-            if (chargeInfo.getChargeType().getCode().equals(9)) {
-                throw new BizException("账户充值不支持余额支付");
+            if (chargeInfo.getChargeType().getCode().equals(9)||chargeInfo.getChargeType().getCode().equals(13)) {
+                throw new BizException(chargeInfo.getChargeType().getMsg()+"不支持余额支付");
             }
             SysUserCashAccount userCashAccount = sysUserCashAccountService.get(userId);
 

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SporadicChargeInfoImpl.java

@@ -110,8 +110,8 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
                 if (!appendCourseBalance) {
                     throw new BizException("增加用户课程余额失败");
                 }
-            } else if (info.getChargeType().getCode() == 9) { //零星收费账户充值
-                sysUserCashAccountService.updateBalance(userId, studentPaymentOrder.getActualAmount(), PlatformCashAccountDetailTypeEnum.RECHARGE, "零星收费账户充值", studentPaymentOrder.getTransNo());
+            } else if (info.getChargeType().getCode() == 9 || info.getChargeType().getCode() == 13) { //零星收费账户充值,网基课活动
+                sysUserCashAccountService.updateBalance(userId, studentPaymentOrder.getActualAmount(), PlatformCashAccountDetailTypeEnum.RECHARGE, "零星收费"+info.getChargeType().getMsg(), studentPaymentOrder.getTransNo());
             } else if (info.getOrganId().equals(42) && info.getChargeType().equals(SporadicChargeTypeEnum.LEVEL)) {
                 degreeRegistrationService.updateStatus(studentPaymentOrder);
                 return true;

+ 5 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -764,11 +764,14 @@
 	</select>
 	
 	<select id="queryOnlineCourseByGroupType" resultMap="teacherVipSalaryDto" parameterType="map">
-		SELECT csts.*,cs.teach_mode_,vgc.name_ vip_group_category_name_,vg.vip_group_category_id_, t.job_nature_  FROM `course_schedule_teacher_salary` csts LEFT JOIN `course_schedule` cs on csts.`course_schedule_id_` = cs.`id_` 
+		SELECT csts.*,cs.teach_mode_,vgc.name_ vip_group_category_name_,vg.vip_group_category_id_, t.job_nature_
+		FROM `course_schedule_teacher_salary` csts LEFT JOIN `course_schedule` cs on csts.`course_schedule_id_` = cs.`id_`
 		left join vip_group vg on vg.id_ = csts.music_group_id_ and csts.group_type_ = 'VIP'
 		left join vip_group_category vgc on vgc.id_ = vg.vip_group_category_id_
 		left join teacher t on t.id_ = csts.user_id_ 
-		WHERE cs.`group_type_` = 'VIP' and cs.class_date_ between #{startDate} and #{endDate}
+		WHERE cs.`group_type_` = 'VIP'
+		  AND csts.settlement_time_ IS NULL
+		  and cs.class_date_ between #{startDate} and #{endDate}
 	</select>
 
     <select id="isTeacher" resultType="java.lang.Boolean">

+ 13 - 13
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -1045,12 +1045,14 @@ public class ExportController extends BaseController {
             queryInfo.setUserIds(userIds);
         }
         queryInfo.setPage(1);
-        queryInfo.setRows(49999);
+        if(StringUtils.isBlank(queryInfo.getSearch())||!"ALL".equals(queryInfo.getSearch())){
+            queryInfo.setRows(49999);
+        }
         queryInfo.setIsExport(true);
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
         List<StudentPaymentOrderExportDto> studentPaymentOrderExportDtos = studentPaymentOrderService.ExportQueryPage(params);
-        if (studentPaymentOrderExportDtos.size() > 50000) {
+        if ((StringUtils.isBlank(queryInfo.getSearch())||!"ALL".equals(queryInfo.getSearch())) && studentPaymentOrderExportDtos.size() > 50000) {
             throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
         }
         OutputStream outputStream = response.getOutputStream();
@@ -2309,20 +2311,18 @@ public class ExportController extends BaseController {
 
             String[] header = {"老师编号", "姓名", "分部", "工作类型", "在职状态", "老师状态", "1v1", "1v2", "1v3", "1v4", "1v5", "1v6", "1v7",
                     "网管课", "单技课2.0(主教)", "合奏课2.0(主教)", "综合课2.0(主教)", "集训单技课2.0(主教)", "集训合奏课2.0(主教)",
-                    "基础技能课2.0(主教)", "课堂课2.0(主教)", "单技课3.0(主教)", "合奏课3.0(主教)", "综合课3.0(主教)", "集训单技课3.0(主教)", "集训合奏课3.0(主教)",
+                    "基础技能课2.0(主教)", "课堂课(主教)", "单技课3.0(主教)", "合奏课3.0(主教)", "综合课3.0(主教)", "集训单技课3.0(主教)", "集训合奏课3.0(主教)",
                     "基础技能课3.0(主教)"
                     , "单技课2.0(助教)", "合奏课2.0(助教)", "综合课2.0(助教)", "集训单技课2.0(助教)", "集训合奏课2.0(助教)",
-                    "基础技能课2.0(助教)", "课堂课2.0(助教)", "单技课3.0(助教)", "合奏课3.0(助教)", "综合课3.0(助教)", "集训单技课3.0(助教)", "集训合奏课3.0(助教)",
-                    "基础技能课3.0(助教)", "课堂课3.0", "网络基础训练课1v3", "网络基础训练课1v4", "网络基础训练课1v5", "乐团网管课1v1"};
+                    "基础技能课2.0(助教)", "课堂课(助教)", "单技课3.0(助教)", "合奏课3.0(助教)", "综合课3.0(助教)", "集训单技课3.0(助教)", "集训合奏课3.0(助教)",
+                    "基础技能课3.0(助教)", "网络基础训练课1v3", "网络基础训练课1v4", "网络基础训练课1v5", "乐团网管课1v1"};
             String[] body = {"userId", "realName", "organName", "jobNature", "demissionStatus", "status", "vip1", "vip2", "vip3", "vip4", "vip5", "vip6", "vip7",
-                    "practiceSalary",
-                    "mainSingleSalary2", "mainMixSalary2", "mainComprehensiveSalary2", "mainTraningSigleSalary2", "mainTraningMixSalary2", "mainHighSalary2",
-                    "mainClassroomSalary2", "mainSingleSalary", "mainMixSalary", "mainComprehensiveSalary", "mainTraningSigleSalary", "mainTraningMixSalary", "mainHighSalary",
-                    "mainClassroomSalary",
-                    "assistantSingleSalary2", "assistantMixSalary2", "assistantComprehensiveSalary2", "assistantTraningSigleSalary2", "assistantTraningMixSalary2", "assistantHighSalary2",
-                    "assistantClassroomSalary2", "assistantSingleSalary", "assistantMixSalary", "assistantComprehensiveSalary", "assistantTraningSigleSalary", "assistantTraningMixSalary", "assistantHighSalary",
-                    "assistantClassroomSalary",
-                    "highOnline3Salary", "highOnline4Salary", "highOnline5Salary", "musicNetwork1Salary"};
+                    "practiceSalary","mainSingleSalary2", "mainMixSalary2", "mainComprehensiveSalary2", "mainTraningSigleSalary2", "mainTraningMixSalary2",
+                    "mainHighSalary2","mainClassroomSalary2", "mainSingleSalary", "mainMixSalary", "mainComprehensiveSalary", "mainTraningSigleSalary", "mainTraningMixSalary",
+                    "mainHighSalary",
+                    "assistantSingleSalary2", "assistantMixSalary2", "assistantComprehensiveSalary2", "assistantTraningSigleSalary2", "assistantTraningMixSalary2",
+                    "assistantHighSalary2","assistantClassroomSalary2", "assistantSingleSalary", "assistantMixSalary", "assistantComprehensiveSalary", "assistantTraningSigleSalary", "assistantTraningMixSalary",
+                    "assistantHighSalary","highOnline3Salary", "highOnline4Salary", "highOnline5Salary", "musicNetwork1Salary"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=teacherDefaultSalary-" + DateUtil.getDate(new Date()) + ".xls");