Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

Joburgess před 5 roky
rodič
revize
47e7c019ae

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SporadicChargeInfoQueryInfo.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -9,7 +10,7 @@ public class SporadicChargeInfoQueryInfo extends QueryInfo {
     private String organId;
 
     @ApiModelProperty(value = "收费类型",required = false)
-    private Integer chargeType;
+    private SporadicChargeTypeEnum chargeType;
 
     @ApiModelProperty(value = "类型",required = false)
     private String type;
@@ -30,11 +31,11 @@ public class SporadicChargeInfoQueryInfo extends QueryInfo {
         this.organId = organId;
     }
 
-    public Integer getChargeType() {
+    public SporadicChargeTypeEnum getChargeType() {
         return chargeType;
     }
 
-    public void setChargeType(Integer chargeType) {
+    public void setChargeType(SporadicChargeTypeEnum chargeType) {
         this.chargeType = chargeType;
     }
 }

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

@@ -124,9 +124,9 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 									}
 									// 判断是助教、主教
 									if (ts.getTeacherRole() == TeachTypeEnum.BISHOP) {
-										ts.setExpectSalary(duration.divide(new BigDecimal(mins)).multiply(tdms.getMainTeacher90MinSalary()));
+										ts.setExpectSalary(duration.divide(new BigDecimal(mins), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(tdms.getMainTeacher90MinSalary()));
 									} else {
-										ts.setExpectSalary(duration.divide(new BigDecimal(mins)).multiply(tdms.getAssistantTeacher90MinSalary()));
+										ts.setExpectSalary(duration.divide(new BigDecimal(mins), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(tdms.getAssistantTeacher90MinSalary()));
 									}
 									list.add(ts);
 								} else if (musicGroup.getSettlementType() == SalarySettlementTypeEnum.TEACHER_DEFAULT) {// 默认课酬

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

@@ -141,12 +141,12 @@ public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Lon
 
 							TeacherDefaultVipGroupSalary tdms = salaryMap.get(vipGroup.getVipGroupCategoryId());
 							if (tdms != null) {
-								if (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType() == SalarySettlementTypeEnum.TEACHER_DEFAULT
+								if (vipGroupSalarySettlementDto.getOnlineSalarySettlement() != null && vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType() == SalarySettlementTypeEnum.TEACHER_DEFAULT
 										&& (ts.getCourseSchedule().getTeachMode() == TeachModeEnum.ONLINE)) {// 线上课
 
 									ts.setExpectSalary(tdms.getOnlineClassesSalary());
 									list.add(ts);
-								} else if (vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType() == SalarySettlementTypeEnum.TEACHER_DEFAULT
+								} else if (vipGroupSalarySettlementDto.getOfflineSalarySettlement() != null && vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType() == SalarySettlementTypeEnum.TEACHER_DEFAULT
 										&& ts.getCourseSchedule().getTeachMode() == TeachModeEnum.OFFLINE) {// 线下课
 									ts.setExpectSalary(tdms.getOfflineClassesSalary());
 									list.add(ts);

+ 13 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1996,7 +1996,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
 				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
 			}
-			stopVipPush(vipGroup.getId(),vipGroup.getName());
+			teacherPush(vipGroup);
+//			stopVipPush(vipGroup.getId(),vipGroup.getName());
     		return;
 		}
 		List<Map<Integer, BigDecimal>> maps = vipGroupDao.countSurplusCourseFee(vipGroupId);
@@ -2009,7 +2010,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			vipGroupDao.update(vipGroup);
 			classGroup.setDelFlag(1);
 			classGroupDao.update(classGroup);
-			stopVipPush(vipGroup.getId(),vipGroup.getName());
+			teacherPush(vipGroup);
+//			stopVipPush(vipGroup.getId(),vipGroup.getName());
 			return;
 		}
 		Map<Integer, BigDecimal> studentSurplusClassFees = MapUtil.convertIntegerMap(maps);
@@ -2046,7 +2048,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //		map.put(vipGroup.getUserId(),vipGroup.getUserId().toString());
 //		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.TEACHER_PUSH_VIP_COURSE_STOP,
 //				map,null,0,"1",vipGroup.getName());
-		stopVipPush(vipGroup.getId(),vipGroup.getName());
+		teacherPush(vipGroup);
+//		stopVipPush(vipGroup.getId(),vipGroup.getName());
+	}
+
+	private void teacherPush(VipGroup vipGroup){
+		Map<Integer,String> map = new HashMap<>(1);
+		map.put(vipGroup.getUserId(),vipGroup.getUserId().toString());
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.TEACHER_PUSH_VIP_COURSE_STOP,
+				map,null,0,"1","TEACHER",vipGroup.getName());
 	}
 
 	private void stopVipPush(Long vipGroupId,String vipGroupName){

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -234,6 +234,7 @@
 	<select id="queryTeacerNoReplyNum" resultMap="Mapper">
 		select cs.actual_teacher_id_ key_,count(1) value_ from student_course_homework sch
 		left join course_schedule cs on sch.course_schedule_id_ = cs.id_
-		where (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND csh.is_replied_ = 0 group by cs.actual_teacher_id_
+		where cs.del_flag_ = 0 AND cs.actual_teacher_id_ IS NOT NULL
+		AND sch.is_replied_ = 0 group by cs.actual_teacher_id_
 	</select>
 </mapper>

+ 4 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1450,7 +1450,10 @@
     </select>
     
     <select id="queryStudentNotStartCourseScheduleIn90Mins" resultMap="Mapper">
-    	select cssp.user_id_ key_,cs.name_ value_ from course_schedule cs right join course_schedule_student_payment cssp on cs.id_ = cssp.course_schedule_id_ where CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt; DATE_ADD(now(),INTERVAL 6 HOUR) and cs.status_ = 'NOT_START'
+    	select cssp.user_id_ key_,cs.name_ value_
+    	from course_schedule cs
+    	right join course_schedule_student_payment cssp on cs.id_ = cssp.course_schedule_id_
+    	where CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt; DATE_ADD(now(),INTERVAL 90 MINUTE) and cs.status_ = 'NOT_START'
     </select>
     
     <select id="queryTeacherCoursesTimesOfTomorrow" resultMap="Mapper">

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/SporadicChargeInfo.xml

@@ -34,7 +34,8 @@
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO sporadic_charge_info
 		(title_,charge_type_,organ_id_,amount_,discount_amount_,detail_,create_time_,update_time_,operator_id_,user_id_)
-		VALUES(#{title},#{chargeType},#{organId},#{amount},#{discountAmount},#{detail},now(),now(),#{operatorId},#{userId})
+		VALUES(#{title},#{chargeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+		#{organId},#{amount},#{discountAmount},#{detail},now(),now(),#{operatorId},#{userId})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->

+ 19 - 18
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -168,13 +168,13 @@
         <where>
             (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
             <if test="teacherId != null">
-                and cs.actual_teacher_id_ = #{teacherId}
+                AND cs.actual_teacher_id_ = #{teacherId}
             </if>
             <if test="courseStartDate != null">
-                and cs.class_date_ &gt;= #{courseStartDate}
+                AND cs.class_date_ &gt;= #{courseStartDate}
             </if>
             <if test="courseEndDate != null">
-                and cs.class_date_ &lt;= #{courseEndDate}
+                AND cs.class_date_ &lt;= #{courseEndDate}
             </if>
             <if test="signInStatus != null and signInStatus != 3">
                 AND ta.sign_in_status_ = #{signInStatus}
@@ -189,10 +189,10 @@
                 AND ta.sign_in_status_ IS NULL
             </if>
             <if test="courseScheduleType != null">
-                and cs.type_ = #{courseScheduleType}
+                AND cs.type_ = #{courseScheduleType}
             </if>
             <if test="classGroupName != null">
-                and cs.name_ like CONCAT('%',#{classGroupName},'%')
+                AND cs.name_ LIKE CONCAT('%',#{classGroupName},'%')
             </if>
         </where>
     </sql>
@@ -204,20 +204,21 @@
             IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_,
             ta.remark_
         FROM
-            course_schedule cs left join teacher_attendance ta  ON ta.course_schedule_id_=cs.id_
+            course_schedule cs
+            LEFT JOIN teacher_attendance ta  ON ta.course_schedule_id_=cs.id_
         <include refid="queryCondition"/>
         ORDER BY cs.class_date_ ASC,cs.start_class_time_ ASC
         <include refid="global.limit"/>
     </select>
 
     <select id="getTeacherPersonalAttendancesCount" resultType="int">
-        SELECT count(cs.id_) FROM course_schedule cs left join teacher_attendance ta
+        SELECT count(cs.id_) FROM course_schedule cs LEFT JOIN teacher_attendance ta
         ON ta.course_schedule_id_=cs.id_
         <include refid="queryCondition"/>
     </select>
 
     <select id="countClassTime" resultType="java.lang.Integer">
-        select count(*) from teacher_attendance where class_group_id_=#{classGroupId} for update
+        SELECT COUNT(*) FROM teacher_attendance WHERE class_group_id_=#{classGroupId} FOR UPDATE
     </select>
     
     <select id="findByTeacherAttendanceInfo" resultMap="TeacherAttendance">
@@ -301,10 +302,10 @@
 
     <select id="queryNoSignOutListByOverMinutes" resultMap="Mapper">
         SELECT ta.teacher_id_ key_,u.real_name_ value_,cs.id_ course_schedule_id_
-        FROM course_schedule cs right join teacher_attendance ta on ta.course_schedule_id_ = cs.id_
-        left join sys_user u on ta.teacher_id_ = u.id_
-        WHERE ta.sign_out_status_ = 0 and date(cs.class_date_) = date(now())
-        and SUBTIME(cs.end_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()
+        FROM course_schedule cs RIGHT JOIN teacher_attendance ta on ta.course_schedule_id_ = cs.id_
+        LEFT JOIN sys_user u on ta.teacher_id_ = u.id_
+        WHERE ta.sign_out_status_ IS NULL
+        AND CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) &lt;= DATE_SUB(now(),INTERVAL #{minutes} MINUTE) AND cs.del_flag_ = 0
     </select>
     <select id="findTeacherIdByCourseSchedule" resultMap="TeacherAttendance">
         SELECT
@@ -345,16 +346,16 @@
     </select>
 
     <update id="updateViPSignOutStatus" parameterType="string">
-    	update teacher_attendance set sign_out_status_ = 1,sign_out_time_= now()
-    	where FIND_IN_SET(course_schedule_id_,#{courseScheduleIdList}) and sign_in_status_ = 1
+    	UPDATE teacher_attendance SET sign_out_status_ = 1,sign_out_time_= now()
+    	WHERE FIND_IN_SET(course_schedule_id_,#{courseScheduleIdList}) AND sign_in_status_ = 1
     </update>
     <update id="cleanCourseTeacherSignInfo">
-        update teacher_attendance
-        set sign_in_time_=null,sign_in_status_=null,sign_out_status_ = null,sign_out_time_= null
-    	where course_schedule_id_=#{courseScheduleId}
+        UPDATE teacher_attendance
+        SET sign_in_time_ = NULL,sign_in_status_=NULL,sign_out_status_ = NULL,sign_out_time_= NULL
+    	WHERE course_schedule_id_=#{courseScheduleId}
     </update>
 
     <delete id="deleteByMusicGroupId" parameterType="map" >
-		DELETE ta FROM teacher_attendance ta left join course_schedule cs on ta.course_schedule_id_ = cs.id_ WHERE ta.music_group_id_=#{musicGroupId} AND ta.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cs.status_ = 'NOT_START'
+		DELETE ta FROM teacher_attendance ta LEFT JOIN course_schedule cs ON ta.course_schedule_id_ = cs.id_ WHERE ta.music_group_id_=#{musicGroupId} AND ta.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cs.status_ = 'NOT_START'
 	</delete>
 </mapper>

+ 0 - 6
mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java

@@ -2,15 +2,11 @@ package com.ym.mec.student.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 import com.ym.mec.biz.dal.dto.SporadicPayDto;
 import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.SporadicChargeInfoService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
@@ -21,12 +17,10 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.apache.poi.util.Internal;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
 import java.util.Map;
 
 @RequestMapping("sporadicChargeInfo")

+ 11 - 16
mec-student/src/main/java/com/ym/mec/student/controller/SysMessageController.java

@@ -1,11 +1,16 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
+import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
+import com.ym.mec.util.validator.CommonValidator;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
-import java.io.IOException;
-import java.util.Map;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -14,17 +19,8 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.SysMessage;
-import com.ym.mec.biz.dal.enums.MessageSendMode;
-import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
-import com.ym.mec.biz.service.SysMessageService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
-import com.ym.mec.util.validator.CommonValidator;
+import java.io.IOException;
+import java.util.Map;
 
 @RestController
 @Api(tags = "消息服务")
@@ -46,7 +42,6 @@ public class SysMessageController extends BaseController {
 		}
 		queryInfo.setUserId(sysUser.getId());
 		queryInfo.setType(MessageSendMode.PUSH.getCode());
-		queryInfo.setStatus(2);
 		return succeed(sysMessageService.queryPage(queryInfo));
 	}