Jelajahi Sumber

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

zouxuan 5 tahun lalu
induk
melakukan
762c72baae

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1160,6 +1160,16 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param userId:
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
+    List<CourseSchedule> findUserCourses2(@Param("userId") Integer userId,
+                                         @Param("teacherIds") List<Integer> teacherIds);
+
+    /**
+     * @describe 获取学生相关的课程
+     * @author Joburgess
+     * @date 2020/2/10
+     * @param userId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+     */
     List<CourseSchedule> findUserCoursesWithPay(@Param("userId") Integer userId,
                                          @Param("teacherIds") List<Integer> teacherIds);
 

+ 5 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -2171,7 +2171,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
         List<Integer> allTeacherIds = organAndSubjectTeachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());
 
-        List<CourseSchedule> userCourses = courseScheduleDao.findUserCourses(userId, allTeacherIds);
+        List<CourseSchedule> userCourses = courseScheduleDao.findUserCourses2(userId, allTeacherIds);
 
         if (!CollectionUtils.isEmpty(userCourses)) {
             Map<CourseSchedule.CourseScheduleType, List<CourseSchedule>> courseTypeCourseMap = userCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getType));
@@ -2355,8 +2355,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 }
             }
         }
-        now.plusDays(1);
-        Date applyStartDate = Date.from(now.atStartOfDay(zoneId).toInstant());
+        Date applyStartDate = Date.from(now.plusDays(1).atStartOfDay(zoneId).toInstant());
         Date applyEndDate = Date.from(now.plusMonths(buyMonths).atStartOfDay(zoneId).toInstant());
         Date firstMonday = DateUtil.getWeekDayWithDate(applyStartDate, Calendar.MONDAY);
         Date secondSunday = DateUtil.getWeekDayWithDate(applyEndDate, Calendar.SUNDAY);
@@ -2839,7 +2838,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                     orderNo,
                     baseApiUrl+"/api-student/studentOrder/notify",
                     baseApiUrl+"/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
-                    "vip课购买",
+                    "陪练课购买",
                     practiceGroupBuyParams.getName(),
                     practiceGroupBuyParams.getStudentId(),
                     classFee,
@@ -3086,12 +3085,14 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             );
 
             Map<String,BigDecimal> routingFee = (Map<String,BigDecimal>)payMap.get("routingFee");
+            newOrder.setOrderNo(orderNo);
             newOrder.setOrganId(practiceGroup.getOrganId());
             newOrder.setComAmount(routingFee.get("COM"));
             newOrder.setPerAmount(routingFee.get("PER"));
             newOrder.setMerNos((String) payMap.get("routingMerNos"));
             newOrder.setPaymentChannel((String) payMap.get("type"));
             newOrder.setUpdateTime(new Date());
+            newOrder.setCreateTime(new Date());
             studentPaymentOrderService.insert(newOrder);
 
             return BaseController.succeed(payMap);

+ 19 - 20
mec-biz/src/main/resources/config/contracts/practice.ftl

@@ -74,9 +74,9 @@
 </head>
 <body style="font-family:'SimSun'">
     <div class="container">
-        <h1>网络管乐基础课购买协议</h1>
+        <h1>网络管乐基础课购买协议</h1>
         <h2>重要提示</h2>
-        欢迎使用大雅乐盟(下称“本公司”)在线网络管乐基础课程服务,本协议为用户购买本公司在线网络管乐基础课程(下称“课程”)之事宜订立的协议。请用户在购买和使用在线乐基础服务前仔细阅读本协议。如用户不同意本协议任何条款,请勿购买或使用在线乐基础服务(下称“本服务”)。用户点击“购买”选项并支付网乐基础费用,即视为用户已阅读并同意接受本协议的约束,本协议即构成本公司与用户之间具有约束力的法律文件。<br />
+        欢迎使用大雅乐盟(下称“本公司”)网络管乐基础课(下称“网管课”)服务,本协议为用户购买本公司网管课之事宜订立的协议。请用户在购买和使用网管课服务前仔细阅读本协议。如用户不同意本协议任何条款,请勿购买或使用网管课服务(下称“本服务”)。用户点击“购买”选项并支付网管课费用,即视为用户已阅读并同意接受本协议的约束,本协议即构成本公司与用户之间具有约束力的法律文件。<br />
         未满18周岁的用户应在法定监护人的陪同下阅读后,并且应在法定监护人的同意和指导下购买和使用本服务。
 
 
@@ -85,13 +85,13 @@
         1.2 本公司可以随时更新本协议的各项条款,包括但不限于增加新的服务类型或功能,更新后的协议条款一经本公司公布或更新即生效并代替原来的协议条款,无需另行通知,用户可以及时关注并阅读本协议最新版本;用户继续使用本服务的,视为用户接受本协议的最新更新版本;用户不接受本协议最新版本的,应立即停止使用本服务。
         
         <h2>第二条 课程的购买、授课及退费</h2>
-        2.1 用户购买的课程为在线网络管乐基础课程。每节课的时长为25分钟,每周授课次数为1~2次。具体收费标准、课时、有效期等如下表:
+        2.1 用户购买的课程为网管课。每节课时长为25分钟,用户可自行选择每周授课次数1次或2次。具体收费标准、课时、有效期等如下表:
         <table border="1" style="width: 100%; border-collapse: collapse;">
             <tr>
-                <th>课程类型</th>
-                <th>课时数</th>
-                <th>有效期</th>
-                <th>费用</th>
+                <th style="text-align: center;">课程类型</th>
+                <th style="text-align: center;">课时数</th>
+                <th style="text-align: center;">有效期</th>
+                <th style="text-align: center;">费用</th>
             </tr>
             <tr>
                 <td style="text-align: center;">网管课</td>
@@ -101,12 +101,11 @@
             </tr>
         </table>
         2.2 用户购课后,需在有效期内完成所购全部课程(以课程后台有效期为准)。除本协议另有约定外,若用户未能在课程有效期内上完课程,则课程自动结束,本公司不再提供课程。<br />
-        2.3 课程内容以及授课时间以课程表为准。<br />
-        2.4 为保证良好的学习效果,用户及本公司安排的授课老师均不能随意调整课程表。用户申请调课应当通过管乐迷APP申请,用户和授课老师不得私自约定调课。用户或授课老师要求调整上课时间的,经双方协商一致后,须至少提前1天调整课程,如遇到不可抗力事件、意外等紧急情况须至少提前4小时取消课程。如用户未按照规定申请调课,则按照原课程安排执行课程计划。<br />
-        2.5 用户未能按时上课的,课程将按时开始和结束,用户不得要求延。<br />
+        2.3 网管课课程内容以及授课时间以课程表为准。<br />
+        2.4 为保证良好的学习效果,用户及本公司安排的授课老师均不能随意调整课程表。用户调课均需通过管乐迷APP提出申请,用户和授课老师不得私自约定调课。用户或授课老师要求调整上课时间的,经双方协商一致后,须至少提前1天调整课程,如遇到不可抗力事件、意外等紧急情况须至少提前4小时取消课程。如用户未按照规定申请调课,则按照原课程安排执行课程计划。<br />
+        2.5 用户未能按时上课的,课程将按时开始和结束,用户不得要求延期补课。<br />
         2.6 由于本公司的原因(包括但不限于指导老师未能按时上线、临时无法授课、中途因故终止授课、授课过程中软件系统出现故障持续10分钟等)导致用户无法正常上课的,该次课程不扣除课时。<br />
-        2.7 用户在购买课程前,应当仔细阅读本协议。用户购课后,非因本公司原因,用户所购课程不予退款。<br />
-        2.8 因本公司原因造成退款的,双方按照用户时间上课时长计算费用。用户使用支付宝、微信支付方式缴费,退费收取银行手续费,金额为退费金额的0.6%。退费时,用户须退回本公司已开的发票和收据。
+        2.7 用户在购买课程前,应当仔细阅读本协议。用户购买课程后,非因本公司原因,用户所购课程不予退款。
 
         <h2>第三条 本公司权利和义务</h2>
         3.1 本公司有权根据本协议相关条款获得用户支付的课程费用。<br />
@@ -115,15 +114,15 @@
         3.4 本公司将尽全力保证所提供的各项服务均能够正常使用;但是因不可抗力以及用户一方的原因造成不能正常使用本公司所提供的各项服务,包括但不限于互联网运营商提供的网络中断、用户不具备上网条件(包括不具备软硬件条件或者软硬件故障)等,则本公司不承担相应责任。
 
         <h2>第四条 用户的权利和义务</h2>
-        4.1 用户应具备完全民事权利能力和完全民事行为能力,有能力对用户使用在线课程服务过程中的一切行为独立承担法律责任。如果用户不具备前述条件的,本公司有权要求用户的法定监护人承担相应的法律责任。<br />
-        4.2 用户购买在线乐基础并付费成功后,本公司为用户开通在线乐基础,非本公司原因致使用户购买的课程产生损耗的,由用户自行承担相应责任。<br />
-        4.3 用户应妥善保管账户和密码,用户账号下发生的所有行为均视为用户行为。用户如果用户的账户、密码丢失,应在服务结束前及时联系本公司,并按照本公司要求提供身份认证信息、付款凭证等资料,经本公司确认无误后将恢复用户权益,否则,用户自行承担相应损失及责任。<br />
-        4.4 用户在购买课程后,有权利享受本公司所提供的网乐基础服务。<br />
+        4.1 用户应具备完全民事权利能力和完全民事行为能力,有能力对用户使用课程服务过程中的一切行为独立承担法律责任。如果用户不具备前述条件的,本公司有权要求用户的法定监护人承担相应的法律责任。<br />
+        4.2 用户购买网管课并付费成功后,本公司为用户开通网管课,非本公司原因致使用户购买的课程产生损耗的,由用户自行承担相应责任。<br />
+        4.3 用户应妥善保管账户和密码,用户账号下发生的所有行为均视为用户行为。如果用户的账户、密码丢失,应在服务结束前及时联系本公司,并按照本公司要求提供身份认证信息、付款凭证等资料,经本公司确认无误后将恢复用户权益,否则,用户自行承担相应损失及责任。<br />
+        4.4 用户在购买课程后,有权利享受本公司所提供的网管课服务。<br />
         4.5 用户向本公司提供信息应当合法、真实和有效。<br />
-        4.6 用户应遵守课程安排,按照本协议的约定按时完成全部网乐基础。用户因故需要调整既定上课时间的,须按照本协议约定进行申请;如未按约定申请调课,所产生后果均由用户自行承担。<br />
-        4.7 用户购买的在线网络管乐基础课程,用户只可以自行使用,不得与其他第三方(用户的法定监护人除外)共同参加网乐基础,也不得将自己的账号转让或提供给任何第三方。<br />
+        4.6 用户应遵守课程安排,按照本协议的约定按时完成全部网管课。用户因故需要调整既定上课时间的,须按照本协议约定进行申请;如未按约定申请调课,所产生后果均由用户自行承担。<br />
+        4.7 用户购买的网管课,用户仅允许自用,不得与其他第三方(用户的法定监护人除外)共同参加网管课,也不得将自己的账号转让或提供给任何第三方。<br />
         4.8 用户不得对授课内容录音、录像、直播或者组织多人同时观看,不得将获得的课程资料进行复制、销售、出租或授权给任何第三方。如本公司发现用户存在上述行为的,本公司有权停止对用户提供课程,并有权追究相关法律责任。<br />
-        4.9 用户不得通过非本公司认可的方式或者非法途径获取在线课程服务,给本公司造成损失的,本公司有权追偿。<br />
+        4.9 用户不得通过非本公司认可的方式或者非法途径获取课程服务,给本公司造成损失的,本公司有权追偿。<br />
         4.10 用户在参加课程时,应遵守课堂纪律,尊重他人合法权益。如果用户上课过程中侵犯他人权益、扰乱正常的上课秩序或者发布不当言论的,本公司有权暂停向用户提供课程服务。如用户多次出现前述情形的,本公司有权终止向用户提供课程服务。<br />
         4.11 用户应始终维护本公司的知识产权以及品牌形象,本协议期间以及本协议因任何原因失效、被撤销、解除或终止后,均不得直接或间接通过任何公众媒体(包括但不限于传统大众媒体,以及微信、微博、博客、直播平台等社交平台)发表损害本公司(包括但不限于其产品、服务及本公司授课老师)声誉的言论或实施任何类似行为,否则本公司有权追究用户的法律责任。
         
@@ -139,7 +138,7 @@
         6.2 本保密义务期限不受本协议期限的限制。本协议失效、被撤销、解除或终止等任何情况下,双方仍应遵守本保密义务。
 
         <h2>第七条 违约责任</h2>
-        一方不履行合同义务或者履行合同义务不符合约定的,均构成违约,守约方有权以书面通知的方式要求违约方纠正其违约行为并采取及时、有效的补救措施消除违约后果,并赔偿守约方因违约方之违约行为而遭致的损失。若违约方在收到守约方的上述通知后5日内未纠正其违约行为的,守约方有权在做出书面通知的情况下,单方解除本协议,违约方应赔偿守约方因此遭致的全部损失。
+        一方不履行合同义务或者履行合同义务不符合约定的,均构成违约,守约方有权以书面通知的方式要求违约方纠正其违约行为并采取及时、有效的补救措施消除违约后果,并赔偿守约方因违约方之违约行为而遭致的损失。若违约方在收到守约方的上述通知后5日内未纠正其违约行为的,守约方有权在做出书面通知的情况下,单方解除本协议,违约方应赔偿守约方因此遭致的全部损失。
 
         <h2>第八条 不可抗力</h2>
         8.1 一方遇到不可抗力事件(指甲乙双方无法控制、无法预见或即使预见也无法避免的事件,该事件妨碍、影响或延误任何一方履行本协议的全部或部分义务,该事件包括但不限于自然灾害(如水灾、地震等)、火灾、政府行为、法律或政策变化、战争或其他任何类似事件)时,受影响方应当立即书面通知对方,并告知该不可抗力事件对本协议可能产生的影响,并在该不可抗力事件发生后5日内向对方提供该事件的详细信息及由有关机构出具的解释受影响方因此无法履行本协议项下全部或部分义务的相关证明。<br />

+ 42 - 19
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2330,26 +2330,49 @@
     </select>
     <select id="findUserCourses" resultMap="CourseSchedule">
         SELECT
-            cs.id_,
-            cs.`type_`,
-            cgtm.`user_id_` teacher_id_
-        FROM
-          `class_group_student_mapper` cgsm
-            LEFT JOIN `class_group` cg ON cgsm.`class_group_id_` = cg.`id_`
-            LEFT JOIN `class_group_teacher_mapper` cgtm ON cgtm.`class_group_id_` = cg.`id_`
-            AND cgtm.`teacher_role_` = 'BISHOP'
-            LEFT JOIN `course_schedule` cs ON cs.`class_group_id_` = cg.`id_`
+        cs.id_,
+        cs.`type_`,
+        cgtm.`user_id_` teacher_id_
+        FROM
+        `class_group_student_mapper` cgsm
+        LEFT JOIN `class_group` cg ON cgsm.`class_group_id_` = cg.`id_`
+        LEFT JOIN `class_group_teacher_mapper` cgtm ON cgtm.`class_group_id_` = cg.`id_`
+        AND cgtm.`teacher_role_` = 'BISHOP'
+        LEFT JOIN `course_schedule` cs ON cs.`class_group_id_` = cg.`id_`
         WHERE
-            cgsm.user_id_=#{userId}
-            AND cgtm.teacher_role_='BISHOP'
-            AND cgsm.status_ = 'NORMAL'
-            AND cg.`type_` IN ( 'NORMAL', 'HIGH', 'VIP' )
-            AND cs.`id_` IS NOT NULL
-            AND cgtm.user_id_ IN
-            <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
-                #{teacherId}
-            </foreach>
-            AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL )
+        cgsm.user_id_=#{userId}
+        AND cgtm.teacher_role_='BISHOP'
+        AND cgsm.status_ = 'NORMAL'
+        AND cg.`type_` IN ( 'NORMAL', 'HIGH', 'VIP' )
+        AND cs.`id_` IS NOT NULL
+        AND cgtm.user_id_ IN
+        <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
+            #{teacherId}
+        </foreach>
+        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL )
+    </select>
+    <select id="findUserCourses2" resultMap="CourseSchedule">
+        SELECT
+        cs.id_,
+        cs.`type_`,
+        cgtm.`user_id_` teacher_id_
+        FROM
+        `class_group_student_mapper` cgsm
+        LEFT JOIN `class_group` cg ON cgsm.`class_group_id_` = cg.`id_`
+        LEFT JOIN `class_group_teacher_mapper` cgtm ON cgtm.`class_group_id_` = cg.`id_`
+        AND cgtm.`teacher_role_` = 'BISHOP'
+        LEFT JOIN `course_schedule` cs ON cs.`class_group_id_` = cg.`id_`
+        WHERE
+        cgsm.user_id_=#{userId}
+        AND cgtm.teacher_role_='BISHOP'
+        AND cgsm.status_ = 'NORMAL'
+        AND cg.`type_` IN ( 'PRACTICE', 'NORMAL', 'HIGH', 'VIP' )
+        AND cs.`id_` IS NOT NULL
+        AND cgtm.user_id_ IN
+        <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
+            #{teacherId}
+        </foreach>
+        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL )
     </select>
     <select id="findUserCoursesWithPay" resultMap="CourseSchedule">
         SELECT