Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 years ago
parent
commit
73d2b8a395

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

@@ -176,7 +176,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @param userIdList
      * @return
      */
-    List<StudentRegistration> findStudentListByUserIdList(@Param("musicGroupId") String musicGroupId, @Param("userIdList") String userIdList);
+    List<StudentRegistration> findStudentListByUserIdList(@Param("musicGroupId") String musicGroupId, @Param("userIdList") List<Integer> userIdList);
 
     /**
      * @param ids

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRechargeQueryInfo.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.page;
 
+import java.util.Date;
+
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.TransTypeEnum;
 import com.ym.mec.common.page.QueryInfo;
@@ -9,6 +11,10 @@ public class StudentRechargeQueryInfo extends QueryInfo {
 	private DealStatusEnum status;
 	
 	private TransTypeEnum transType;
+	
+	private Date startDate;
+	
+	private Date endDate;
 
 	public DealStatusEnum getStatus() {
 		return status;
@@ -26,4 +32,20 @@ public class StudentRechargeQueryInfo extends QueryInfo {
 		this.transType = transType;
 	}
 
+	public Date getStartDate() {
+		return startDate;
+	}
+
+	public void setStartDate(Date startDate) {
+		this.startDate = startDate;
+	}
+
+	public Date getEndDate() {
+		return endDate;
+	}
+
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
 }

+ 18 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -922,10 +922,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             Map<Integer, Map<String, Integer>> holiday = jiaRiFeignService.query(now.getYear());
             holidayDays = holiday.get(now.getYear());
         }
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 
         WhileNode:
         while (true) {
-            if (classGroup4MixDto.getHoliday() && !holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MM-dd")))) {
+            if (classGroup4MixDto.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MM-dd")))) {
                 now = now.plusDays(1);
                 continue;
             }
@@ -934,8 +935,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
 
                 //课时长度
-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00"),
-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00"))
+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter),
+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter))
                         .toMinutes();
 
 
@@ -972,13 +973,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
@@ -1130,10 +1131,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             Map<Integer, Map<String, Integer>> holiday = jiaRiFeignService.query(now.getYear());
             holidayDays = holiday.get(now.getYear());
         }
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 
         WhileNode:
         while (true) {
-            if (classGroup4MixDto.getHoliday() && !holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MM-dd")))) {
+            if (classGroup4MixDto.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MM-dd")))) {
                 now = now.plusDays(1);
                 continue;
             }
@@ -1142,8 +1144,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
 
                 //课时长度
-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00"),
-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00"))
+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter),
+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter))
                         .toMinutes();
 
 
@@ -1180,13 +1182,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
@@ -1335,14 +1337,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             Map<Integer, Map<String, Integer>> holiday = jiaRiFeignService.query(now.getYear());
             holidayDays = holiday.get(now.getYear());
         }
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 
         WhileNode:
         while (true) {
-            if (classGroup4MixDto.getHoliday() && !holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MM-dd")))) {
-                now = now.plusDays(1);
-                continue;
-            }
-            if (!holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MM-dd")))) {
+            if (classGroup4MixDto.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MM-dd")))) {
                 now = now.plusDays(1);
                 continue;
             }
@@ -1352,8 +1351,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
 
                 //课时长度
-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00"),
-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00"))
+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter),
+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter))
                         .toMinutes();
 
 
@@ -1390,13 +1389,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();

+ 26 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.dto.EducationDemoGroupListDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.StudentDemoGroupQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherManageDemoGroupQueryInfo;
@@ -19,7 +20,7 @@ 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.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +54,10 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 	private SubjectDao subjectDao;
 	@Autowired
 	private SysConfigDao sysConfigDao;
+	@Autowired
+	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
+	@Autowired
+	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 
 	@Override
 	public BaseDAO<Long, DemoGroup> getDAO() {
@@ -180,6 +185,8 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 			throw new BizException("此课程教师在该时段内的课程存在冲突");
 		}
 
+		Date now=new Date();
+
 		SysUser user = sysUserFeignService.queryUserInfo();
 
 		//创建班级
@@ -204,22 +211,32 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 
 		//创建课程
 		DemoGroupCoursesPlan demoGroupCoursesPlan=demoGroupCoursesPlanDao.get(coursePlanId);
-//		List<CourseSchedule> courseScheduleByDemoGroup = demoGroupDao.createCourseSchedulesByDemoGroup(
-//				demoGroup,
-//				demoGroupCoursesPlan.getCoursesStartTime(),
-//				classGroup.getId().longValue());
 		CourseSchedule courseScheduleByDemoGroup = demoGroupDao.createCourseScheduleByDemoGroupPlan(
 				demoGroup,
 				coursePlanId,
 				classGroup.getId().longValue());
-//		String[] classSubjects = courseScheduleDao.findClassSubjects(Arrays.asList(new Integer[]{classGroup.getId()}));
 		StringBuilder className=new StringBuilder(subjectDao.get(demoGroup.getSubjectId().intValue()).getName());
 		className.append("-");
 		className.append(CourseSchedule.CourseScheduleType.DEMO.getMsg());
 		courseScheduleByDemoGroup.setName(className.toString());
-		ArrayList<CourseSchedule> courseSchedules = new ArrayList<>();
-		courseSchedules.add(courseScheduleByDemoGroup);
-		courseScheduleDao.batchAddCourseSchedules(courseSchedules);
+		courseScheduleDao.insert(courseScheduleByDemoGroup);
+
+		CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+		courseScheduleStudentPayment.setUserId(user.getId());
+		courseScheduleStudentPayment.setCourseScheduleId(courseScheduleByDemoGroup.getId());
+		courseScheduleStudentPayment.setClassGroupId(courseScheduleByDemoGroup.getClassGroupId());
+		courseScheduleStudentPayment.setExpectPrice(demoGroup.getPrice());
+		courseScheduleStudentPaymentDao.insert(courseScheduleStudentPayment);
+
+		CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+		courseScheduleTeacherSalary.setCourseScheduleId(courseScheduleByDemoGroup.getId());
+		courseScheduleTeacherSalary.setTeacherRole(TeachTypeEnum.BISHOP);
+		courseScheduleTeacherSalary.setUserId(demoGroup.getUserId());
+		courseScheduleTeacherSalary.setExpectSalary(demoGroup.getPrice());
+		courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+		courseScheduleTeacherSalary.setCreateTime(now);
+		courseScheduleTeacherSalary.setUpdateTime(now);
+		courseScheduleTeacherSalaryDao.insert(courseScheduleTeacherSalary);
 
 		//更新所属分部列表
 		List<Integer> organIds = demoGroupDao.organIdListByDemoGroupId(demoGroup.getId());

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -592,7 +592,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Override
     public List<StudentRegistration> findStudentListByUserIdList(String musicGroupId, List<Integer> userIdList) {
-        return studentRegistrationDao.findStudentListByUserIdList(musicGroupId, StringUtils.join(userIdList,","));
+        return studentRegistrationDao.findStudentListByUserIdList(musicGroupId, userIdList);
     }
 
     @Override

+ 18 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -69,6 +69,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     @Autowired
 	private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
     @Autowired
+	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
+    @Autowired
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
     @Autowired
 	private ImFeignService imFeignService;
@@ -876,7 +878,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public void applyRefund(Long vipGroupId,Integer studentId) {
 
 		StudentApplyRefunds studentApplyRefunds=new StudentApplyRefunds();
-		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId,DealStatusEnum.SUCCESS.getMsg());
+		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId,DealStatusEnum.SUCCESS.getCode());
 		if(null==studentPaymentOrder){
 			throw new BizException("未找到相关订单信息!");
 		}
@@ -979,11 +981,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				}
 				if(Objects.isNull(vipGroupSalaryDto.getActualSalary())){
 					vipGroupSalaryDto.setActualSalary(new BigDecimal(0));
+					vipGroupSalaryDto.setDeductionFee(new BigDecimal(0));
 					vipGroupSalaryDto.setIsSalary(YesOrNoEnum.NO);
 				}else{
+					vipGroupSalaryDto.setDeductionFee(vipGroupSalaryDto.getExpectSalary().subtract(vipGroupSalaryDto.getActualSalary()));
 					vipGroupSalaryDto.setIsSalary(YesOrNoEnum.YES);
 				}
-				vipGroupSalaryDto.setDeductionFee(vipGroupSalaryDto.getExpectSalary().subtract(vipGroupSalaryDto.getActualSalary()));
 			});
 		}
 		if (count == 0) {
@@ -1003,10 +1006,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroupSalaryBaseInfo.getTotalSalary())){
 			vipGroupSalaryBaseInfo.setTotalSalary(new BigDecimal(0));
 		}
-		//扣费总额
-		vipGroupSalaryBaseInfo.setTotalFeeDeduction(vipGroupSalaryBaseInfo.getExpectTotalSalary().subtract(vipGroupSalaryBaseInfo.getTotalSalary()));
 		//扣费笔数
 		vipGroupSalaryBaseInfo.setFeeDeductionNum(vipGroupDao.countVipGroupDeductionNum(queryInfo.getVipGroupId()));
+		//扣费总额
+		if(vipGroupSalaryBaseInfo.getTotalSalary().intValue()>0){
+			vipGroupSalaryBaseInfo.setTotalFeeDeduction(vipGroupSalaryBaseInfo.getExpectTotalSalary().subtract(vipGroupSalaryBaseInfo.getTotalSalary()));
+		}else{
+			vipGroupSalaryBaseInfo.setTotalFeeDeduction(new BigDecimal(0));
+		}
 
 		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId());
 		BigDecimal studentNum=new BigDecimal(classGroup.getStudentNum());
@@ -1073,9 +1080,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			sysUserCashAccountDetail.setAttribute(studentPaymentOrder.getOrderNo());
 			sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
 		}
+
 		vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
     	vipGroup.setStopReason(stopReason);
 		vipGroupDao.update(vipGroup);
+
+		List<CourseSchedule> vipGroupCourseSchedules = courseScheduleDao.findVipGroupCourseSchedules(vipGroupId);
+		List<Long> courseScheduleIds = vipGroupCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+		courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+		courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+		courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
 	}
 
 	@Override

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

@@ -94,7 +94,7 @@
     <insert id="classGroupTeachersInsert" parameterType="java.util.List">
         INSERT INTO class_group_teacher_mapper
         (id_,music_group_id_,class_group_id_,teacher_role_,user_id_,salary_,create_time_,update_time_)
-        VALUES
+        VALUE
         <foreach collection="classGroupTeacherMapperList" item="item" index="index" separator=",">
             (#{item.id},#{item.musicGroupId},#{item.classGroupId},#{item.teacherRole},#{item.userId},#{item.salary},NOW(),NOW())
         </foreach>

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml

@@ -172,6 +172,7 @@
     <sql id="demoGroupQueryCondition">
         <where>
             dgcp.status_=0
+            AND CONCAT(dgcp.course_date_,' ',dgcp.start_time_)&gt;=NOW()
             <if test="search!=null">
                 AND su.username_ like concat('%',#{search},'%')
             </if>

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

@@ -99,7 +99,7 @@
     </select>
 
     <!-- 查询当前表的总记录数 -->
-    <select id="queryCount" resultType="int">
+    <select id="queryCount" resultType="int" parameterType="map">
 		SELECT count(1) FROM student_apply_refunds sar left join student_payment_order spo on sar.orig_payment_order_id_ = spo.id_ 
 		where 1=1 
         <if test="startTime != null">

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

@@ -147,7 +147,7 @@
     </select>
 
     <!-- 查询当前表的总记录数 -->
-    <select id="queryCount" resultType="int">
+    <select id="queryCount" resultType="int" parameterType="map">
         SELECT COUNT(spo.id_) FROM student_payment_order spo
         <include refid="queryPaymentOrder"/>
     </select>

+ 13 - 1
mec-biz/src/main/resources/config/mybatis/StudentRechargeMapper.xml

@@ -106,12 +106,18 @@
         <if test="transType != null">
            and cad.trans_type_ = #{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
+        <if test="startDate != null">
+           and sr.create_time_ &gt;= #{startTime}
+        </if>
+        <if test="endDate != null">
+           and sr.create_time_ &lt;= #{endTime}
+        </if>
         ORDER BY sr.id_
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
-    <select id="queryCount" resultType="int">
+    <select id="queryCount" resultType="int" parameterType="map">
 		SELECT COUNT(1) FROM student_recharge sr left join sys_user u on sr.user_id_ = u.id_ left join sys_user_cash_account_detail cad on sr.user_id_ = cad.user_id_ where 1 = 1
 		<if test="status != null">
            and sr.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -119,6 +125,12 @@
         <if test="transType != null">
            and cad.trans_type_ = #{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
+        <if test="startDate != null">
+           and sr.create_time_ &gt;= #{startTime}
+        </if>
+        <if test="endDate != null">
+           and sr.create_time_ &lt;= #{endTime}
+        </if>
 	</select>
 
     <select id="queryByTransNo" resultMap="StudentRecharge">

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

@@ -452,7 +452,7 @@
     </update>
     
     <select id="queryStudentNum" resultType="map">
-        SELECT count(sr.id_) total_num_,sum(case when sr.create_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_,sum(case when sr.music_group_status_ = 'QUIT' and sr.update_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_ FROM student_registration sr left join music_group mg on sr.music_group_id_ = mg.id_
+        SELECT count(sr.id_) total_num_,sum(case when sr.create_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_,sum(case when sr.music_group_status_ = 'QUIT' and sr.update_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) quit_num_ FROM student_registration sr left join music_group mg on sr.music_group_id_ = mg.id_
         <where>
     		<if test="organId != null">
     			mg.organ_id_ = #{organId}

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

@@ -458,7 +458,7 @@
             LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
             LEFT JOIN class_group_student_mapper cgsm ON vgcgm.class_group_id_=cgsm.class_group_id_
             LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
-        WHERE vgcgm.vip_group_id_=#{vipGroupId}
+        WHERE vgcgm.vip_group_id_=#{vipGroupId} AND cgsm.user_id_ IS NOT NULL
         ORDER BY su.id_
         <include refid="global.limit"/>
     </select>
@@ -582,7 +582,7 @@
             LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_ = vgcgm.vip_group_id_
             LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
             LEFT JOIN course_schedule_student_payment cssp ON cs.id_=cssp.course_schedule_id_
-            WHERE vg.id_=#{vipGroupId} AND cs.status_!='OVER'
+            WHERE vg.id_=#{vipGroupId} AND cs.status_='NOT_START'
         GROUP BY cssp.user_id_
     </select>
     <select id="countTeacherVipGroups" resultType="int">

+ 2 - 1
mec-student/src/main/java/com/ym/mec/student/controller/SysMessageController.java

@@ -16,6 +16,7 @@ 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;
@@ -43,7 +44,7 @@ public class SysMessageController extends BaseController {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
 		queryInfo.setUserId(sysUser.getId());
-		queryInfo.setType(3);
+		queryInfo.setType(MessageSendMode.PUSH.getCode());
 		PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
 		return succeed(pageInfo);
 	}

+ 3 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -91,7 +91,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @GetMapping("/getCurrentCourseStudents")
     public Object getCurrentCourseStudents(StudentAttendanceQueryInfo queryInfo){
         if(Objects.isNull(queryInfo.getClassGroupId())){
-            return failed(HttpStatus.FORBIDDEN, "请指定班级!");
+            return failed("请指定班级!");
         }
         queryInfo.setFilterStatus(StudentAttendanceStatusEnum.DROP_OUT);
         return succeed(studentAttendanceService.getCurrentCourseStudents(queryInfo));
@@ -101,7 +101,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @PostMapping(value = "/classStartDateAdjust",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public Object classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto){
         if(Objects.isNull(classDateAdjustDto.getId())){
-            return failed(HttpStatus.FORBIDDEN, "请指定课程!");
+            return failed("请指定课程!");
         }
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(classDateAdjustDto);
@@ -113,7 +113,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @PostMapping(value = "/courseSwap",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2){
         if(Objects.isNull(courseScheduleId1)||Objects.isNull(courseScheduleId2)){
-            return failed(HttpStatus.FORBIDDEN, "请指定课程!");
+            return failed("请指定课程!");
         }
         scheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
         return succeed();

+ 1 - 1
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/eseal/provider/TsignPlugin.java

@@ -92,7 +92,7 @@ public class TsignPlugin implements ESealPlugin, InitializingBean, DisposableBea
 		}else if(result.getErrCode() == 1500012){
 			return queryAccountIdByIdNo(idcard);
 		}
-		throw new ThirdpartyException("创建个人账户接口调用失败code=" + result.getErrCode() + "msg=" + result.getMsg());
+		throw new ThirdpartyException(result.getMsg());
 	}
 
 	/**

+ 143 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SysMessageController.java

@@ -0,0 +1,143 @@
+package com.ym.mec.web.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.io.IOException;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.GetMapping;
+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;
+
+@RestController
+@Api(tags = "消息服务")
+@RequestMapping("sysMessage")
+public class SysMessageController extends BaseController {
+
+	@Autowired
+	private SysMessageService sysMessageService;
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation("获取所有消息列表")
+	@GetMapping(value = "list")
+	public Object list(SysMessageQueryInfo queryInfo) throws IOException {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		queryInfo.setUserId(sysUser.getId());
+		queryInfo.setType(MessageSendMode.SEO.getCode());
+		PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
+		return succeed(pageInfo);
+	}
+
+	@ApiOperation("一键已读")
+	@PostMapping("batchSetRead")
+	public Object batchSetRead() {
+		int status = 1;
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return sysMessageService.updateStatus(sysUser.getId(), status) > 0 ? succeed() : failed();
+	}
+
+	@ApiOperation("设置已读")
+	@PostMapping("setRead")
+	public Object setRead(Long id) {
+		int status = 1;
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return sysMessageService.updateOneStatus(id, status) > 0 ? succeed() : failed();
+	}
+
+	@ApiOperation(value = "查询用户未读消息条数")
+	@GetMapping("/queryCountOfUnread")
+	public Object queryCountOfUnread() {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
+	}
+
+	/*@ApiOperation(value = "发送短信验证码")
+	@PostMapping("/sendSmsCode")
+	public Object sendSmsCode(String sendCodeType, String mobileNo) {
+
+		SysUser sysUser;
+
+		if (StringUtils.isBlank(mobileNo)) {
+			sysUser = sysUserFeignService.queryUserInfo();
+		} else {
+			sysUser = sysUserFeignService.queryUserByMobile(mobileNo);
+		}
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		Integer userId = sysUser.getId();
+
+		mobileNo = sysUser.getPhone();
+
+		MessageType messageType = MessageType.getMessageType(sendCodeType);
+		if (messageType == null) {
+			throw new BizException("消息类型参数错误");
+		}
+		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
+			throw new BizException("请输入正确的手机号");
+		}
+		sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
+		return succeed();
+	}*/
+
+	/*@ApiOperation(value = "发送短信验证码")
+	@PostMapping("/noAuth/sendSmsCode")
+	public Object noAuthSendSmsCode(String sendCodeType, String mobileNo) {
+		MessageType messageType = MessageType.getMessageType(sendCodeType);
+		if (messageType == null) {
+			throw new BizException("消息类型参数错误");
+		}
+		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
+			throw new BizException("请输入正确的手机号");
+		}
+//		sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
+		return succeed();
+	}*/
+
+	@ApiOperation(value = "发送消息")
+	@PostMapping("/sendMessage")
+	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		Integer userId = sysUser.getId();
+
+		String mobileNo = sysUser.getPhone();
+		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
+			throw new BizException("请输入正确的手机号");
+		}
+		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url);
+		return succeed();
+	}
+}