|
@@ -9,6 +9,7 @@
|
|
|
<resultMap type="com.ym.mec.biz.dal.entity.VipGroup" id="VipGroup">
|
|
|
<result column="id_" property="id"/>
|
|
|
<result column="user_id_" property="userId"/>
|
|
|
+ <result column="username_" property="userName"/>
|
|
|
<result column="single_class_minutes_" property="singleClassMinutes"/>
|
|
|
<result column="payment_expire_date_" property="paymentExpireDate"/>
|
|
|
<result column="courses_expire_date_" property="coursesExpireDate"/>
|
|
@@ -25,6 +26,10 @@
|
|
|
<result column="online_classes_unit_price_" property="onlineClassesUnitPrice"/>
|
|
|
<result column="offline_classes_unit_price_" property="offlineClassesUnitPrice"/>
|
|
|
<result column="total_price_" property="totalPrice"/>
|
|
|
+ <result column="student_num_" property="studentNum"/>
|
|
|
+ <result column="total_class_times_" property="totalClassTimes"/>
|
|
|
+ <result column="current_class_times_" property="currentClassTimes"/>
|
|
|
+ <result column="is_salary_" property="isSalary"/>
|
|
|
</resultMap>
|
|
|
|
|
|
<resultMap id="studentManageVipGroup" type="com.ym.mec.biz.dal.dto.StudentManageVipGroupDto" extends="VipGroup">
|
|
@@ -81,6 +86,42 @@
|
|
|
SELECT * FROM vip_group ORDER BY id_
|
|
|
</select>
|
|
|
|
|
|
+ <sql id="vipGroupQueryCondition">
|
|
|
+ <where>
|
|
|
+ <if test="search!=null and search!=''">
|
|
|
+ vg.name LIKE CONCAT('%',#{search},'%')
|
|
|
+ </if>
|
|
|
+ <if test="organId!=null">
|
|
|
+ AND FIND_IN_SET(#{organId},vg.organ_id_list_)
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ </sql>
|
|
|
+
|
|
|
+ <select id="findAllByOrgan" resultMap="VipGroup">
|
|
|
+ SELECT
|
|
|
+ vg.*,
|
|
|
+ su.username_,
|
|
|
+ cg.student_num_,
|
|
|
+ cg.total_class_times_,
|
|
|
+ cg.current_class_times_
|
|
|
+ FROM
|
|
|
+ vip_group vg
|
|
|
+ LEFT JOIN sys_user su ON vg.user_id_=su.id_
|
|
|
+ LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_=vgcgm.vip_group_id_
|
|
|
+ LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
|
|
|
+ <include refid="vipGroupQueryCondition"/>
|
|
|
+ ORDER BY vg.id_
|
|
|
+ <include refid="global.limit"/>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="countVipGroupByOrgan" resultType="int">
|
|
|
+ SELECT
|
|
|
+ count(*)
|
|
|
+ FROM
|
|
|
+ vip_group vg
|
|
|
+ <include refid="vipGroupQueryCondition"/>
|
|
|
+ </select>
|
|
|
+
|
|
|
<!-- 向数据库增加一条记录 -->
|
|
|
<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.VipGroup" useGeneratedKeys="true" keyColumn="id"
|
|
|
keyProperty="id">
|
|
@@ -149,6 +190,9 @@
|
|
|
<if test="totalPrice != null">
|
|
|
total_price_ = #{totalPrice},
|
|
|
</if>
|
|
|
+ <if test="isSalary!=null">
|
|
|
+ is_salary_=#{isSalary}
|
|
|
+ </if>
|
|
|
</set>
|
|
|
WHERE id_ = #{id}
|
|
|
</update>
|
|
@@ -304,4 +348,93 @@
|
|
|
WHERE cs.status_="NOT_START" AND cs.type_="VIP" AND vgcgm.vip_group_id_=#{vipGroupId}
|
|
|
GROUP BY cs.teach_mode_
|
|
|
</select>
|
|
|
+
|
|
|
+ <resultMap id="vipGroupStudentDto" type="com.ym.mec.biz.dal.dto.VipGroupStudentDto">
|
|
|
+ <result column="id_" property="id"/>
|
|
|
+ <result column="username_" property="userName"/>
|
|
|
+ <result column="total_class_times_" property="totalClassTimes"/>
|
|
|
+ <result column="current_class_times_" property="currentClassTimes"/>
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <select id="findVipGroupStudents" resultMap="vipGroupStudentDto">
|
|
|
+ SELECT
|
|
|
+ su.id_,
|
|
|
+ su.username_,
|
|
|
+ cg.total_class_times_,
|
|
|
+ cg.current_class_times_
|
|
|
+ FROM
|
|
|
+ vip_group_class_group_mapper vgcgm
|
|
|
+ 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.id_=#{vipGroupId}
|
|
|
+ ORDER BY su.id_
|
|
|
+ <include refid="global.limit"/>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="countVipGroupStudents" resultType="int">
|
|
|
+ SELECT
|
|
|
+ count(*)
|
|
|
+ FROM
|
|
|
+ vip_group_class_group_mapper vgcgm
|
|
|
+ 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_
|
|
|
+ WHERE vgcgm.id_=#{vipGroupId}
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <resultMap id="teachingRecord" type="com.ym.mec.biz.dal.dto.VipGroupCourseSchduleRecordDto">
|
|
|
+ <result column="id_" property="id"/>
|
|
|
+ <result column="start_class_time_" property="startClassTime"/>
|
|
|
+ <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
|
|
|
+ <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
|
|
|
+ <result column="is_salary_" property="isSalary" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <sql id="teachingRecordQueryCondition">
|
|
|
+ <where>
|
|
|
+ vgcgm.vip_group_id_=#{vipGroupId}
|
|
|
+ <if test="startTime!=null and endTime!=null">
|
|
|
+ cs.class_date_ BETWEEN #{startTime} AND #{endTime}
|
|
|
+ </if>
|
|
|
+ <if test="teachMode!=null and teachMode!=''">
|
|
|
+ cs.teach_mode_=#{teachMode}
|
|
|
+ </if>
|
|
|
+ <if test="status!=null and status!=''">
|
|
|
+ cs.status_=#{status}
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ </sql>
|
|
|
+
|
|
|
+ <select id="findTeachingRecord">
|
|
|
+ SELECT
|
|
|
+ cs.id_,
|
|
|
+ CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
|
|
|
+ cs.status_,
|
|
|
+ cs.teach_mode_,
|
|
|
+ cs.is_salary_
|
|
|
+ FROM
|
|
|
+ vip_group_class_group_mapper vgcgm
|
|
|
+ LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
|
|
|
+ <include refid="teachingRecordQueryCondition"/>
|
|
|
+ ORDER BY cs.id_
|
|
|
+ <include refid="global.limit"/>
|
|
|
+ </select>
|
|
|
+ <select id="countTeachingRecord">
|
|
|
+ SELECT
|
|
|
+ COUNT(*)
|
|
|
+ FROM
|
|
|
+ vip_group_class_group_mapper vgcgm
|
|
|
+ LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
|
|
|
+ <include refid="teachingRecordQueryCondition"/>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getClassTimes" resultType="com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo">
|
|
|
+ SELECT
|
|
|
+ cg.total_class_times_ totalClassTimes,
|
|
|
+ cg.current_class_times_ currentClassTimes
|
|
|
+ FROM
|
|
|
+ vip_group_class_group_mapper vgcgm
|
|
|
+ LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
|
|
|
+ WHERE vgcgm.vip_group_id_=#{vipGroupId}
|
|
|
+ </select>
|
|
|
</mapper>
|