UPDATE practice_group
SET user_id_ = #{teacherId},
update_time_ = NOW()
WHERE id_ = #{practiceGroupId}
UPDATE practice_group
subject_id_=#{subjectId},
memo_=#{memo},
name_=#{name},
group_status_=#{groupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
type_ =#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
educational_teacher_id_=#{educationalTeacherId},
update_time_ = NOW()
WHERE id_ = #{id}
UPDATE practice_group
group_status_=#{group.groupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
update_time_ = NOW()
WHERE id_ = #{group.id}
UPDATE practice_group SET memo_ = #{memo},update_time_ = NOW() WHERE id_ = #{groupId}
SELECT *
FROM practice_group
WHERE id_ = #{id}
SELECT *
FROM practice_group
INSERT INTO practice_group
(id_,name_,type_,subject_id_,user_id_,student_id_,single_class_minutes_,organ_id_,courses_start_date_,courses_expire_date_,create_time_,update_time_,memo_,buy_months_,drill_times_on_week_,drill_times_json_,group_status_,be_renew_group_id_,educational_teacher_id_)
VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subjectId},#{userId},#{studentId},#{singleClassMinutes},#{organId},#{coursesStartDate},#{coursesExpireDate},NOW(),NOW(),#{memo},#{buyMonths},#{drillTimesOnWeek},#{drillTimesJson},#{groupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{beRenewGroupId},#{educationalTeacherId})
SELECT *
FROM practice_group
WHERE student_id_ = #{userId}
AND type_='FREE'
SELECT * FROM practice_group
SELECT COUNT(*)
FROM practice_group
SELECT *
FROM practice_group
WHERE user_id_ = #{userId}
AND (courses_start_date_ BETWEEN DATE_FORMAT(#{startDate}, '%Y-%m-%d') AND DATE_FORMAT(#{endDate}, '%Y-%m-%d'))
SELECT COUNT(*)
FROM practice_group
WHERE student_id_ = #{userId}
AND group_status_ = 'NORMAL'
AND type_='FREE'
AND create_time_ > '2020-03-25'
SELECT count(*) FROM practice_group pg
SELECT pg.*,
su.real_name_ teacher_name_
FROM
practice_group pg
LEFT JOIN sys_user su ON pg.user_id_ = su.id_
ORDER BY pg.id_ DESC
SELECT *
FROM practice_group
WHERE student_id_ = #{userId}
AND type_='CHARGE'
ORDER BY create_time_ DESC
LIMIT 1;
SELECT pg.*,
su.real_name_,
su.avatar_,
s.name_ subject_name_
FROM practice_group pg
LEFT JOIN sys_user su ON pg.user_id_ = su.id_
LEFT JOIN `subject` s ON pg.subject_id_ = s.id_
WHERE student_id_ = #{userId}
AND (pg.group_status_ = 'NORMAL' OR pg.group_status_ = 'LOCK')
AND pg.type_='CHARGE'
SELECT pg.*,
su.real_name_,
su.avatar_,
s.name_ subject_name_
FROM practice_group pg
LEFT JOIN sys_user su ON pg.user_id_ = su.id_
LEFT JOIN `subject` s ON pg.subject_id_ = s.id_
WHERE student_id_ = #{userId}
AND courses_start_date_ = #{date}
AND group_status_ = 'LOCK'
AND pg.type_='CHARGE'
SELECT *
FROM practice_group
WHERE student_id_ = #{userId}
AND id_ = #{groupId};
SELECT pg.*, su.real_name_ teacher_name_
FROM practice_group pg
LEFT JOIN sys_user su ON pg.user_id_ = su.id_
WHERE pg.student_id_ = #{userId}
AND pg.id_ = #{groupId};
SELECT *
FROM practice_group
WHERE courses_expire_date_ < NOW()
AND group_status_ = 'NORMAL'
AND pg.educational_teacher_id_ IS NOT NULL
AND pg.educational_teacher_id_ IS NULL
AND (pg.name_ LIKE CONCAT('%',#{search},'%') OR pg.id_= #{search})
AND pg.user_id_=#{teacherId}
AND pg.student_id_ = #{studentId}
AND pg.group_status_ = #{groupStatus}
AND pg.group_status_ IN ('NORMAL', 'FINISH')
AND FIND_IN_SET(pg.organ_id_,#{organId})
AND pg.educational_teacher_id_=#{educationalTeacherId}
AND pg.be_renew_group_id_ IS NULL AND pg.type_='CHARGE'
AND pg.be_renew_group_id_ IS NOT NULL AND pg.type_='CHARGE'
AND pg.type_='FREE'
AND pg.type_=#{practiceGroupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
SELECT *
FROM practice_group
WHERE id_ = #{groupId} FOR
UPDATE
SELECT *
FROM practice_group
WHERE student_id_ = #{userId}
AND group_status_ = #{groupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
SELECT *
FROM practice_group
WHERE student_id_ = #{userId}
AND courses_start_date_ = #{date}
AND group_status_ = 'LOCK'
SELECT *
FROM practice_group
WHERE student_id_ = #{userId}
AND courses_start_date_ <= #{date}
AND group_status_ = 'LOCK'
pg.group_status_ != 'LOCK'
AND DATE_FORMAT(cse.create_time_, '%Y-%m') = #{month}
AND (pg.name_ LIKE CONCAT('%',#{search},'%') OR pg.id_= #{search})
AND pg.user_id_=#{teacherId}
AND FIND_IN_SET(pg.organ_id_,#{organId})
AND pg.courses_expire_date_ >= #{month}
AND pg.type_='CHARGE'
AND pg.type_='FREE'
SELECT pg.*,cse.id_ evaluate_id_,cse.status_ evaluate_status_,
su.real_name_ teacher_name_
FROM
practice_group pg
LEFT JOIN sys_user su ON pg.user_id_ = su.id_
LEFT JOIN course_schedule_evaluate cse ON pg.id_=cse.music_group_id_
ORDER BY pg.id_ DESC
SELECT count(*) FROM practice_group pg
LEFT JOIN course_schedule_evaluate cse ON pg.id_=cse.music_group_id_
= 1
AND pg.courses_start_date_ <= #{nowDate,jdbcType=DATE}
AND pg.courses_expire_date_ >= #{afterDate,jdbcType=DATE}
]]>
AND DATE_FORMAT(pg.courses_expire_date_, '%d') = DATE_FORMAT(#{afterDate}, '%d')
= DATE_FORMAT(#{afterDate}, '%d') ]]>
AND cg.del_flag_ = 0
SELECT COUNT(*) total_class_times_,class_group_id_ id_ from course_schedule WHERE class_group_id_ IN
#{classGroupId}
= #{startDate,jdbcType=DATE} AND class_date_ <=#{endDate,jdbcType=DATE} ]]>
AND (del_flag_ =0 OR del_flag_ IS NULL)
GROUP BY class_group_id_
SELECT pg.*, s.name_ subject_name_, su.real_name_ edu_teacher_name_
FROM practice_group pg
LEFT JOIN subject s on pg.subject_id_ = s.id_
LEFT JOIN sys_user su on pg.educational_teacher_id_ = su.id_
WHERE pg.id_ = #{id}
SELECT COUNT(a.student_id_) FROM
(SELECT DISTINCT(pg.`student_id_`),pg.`organ_id_` FROM `practice_group` pg WHERE pg.`group_status_` in
('NORMAL','FINISH')) a
LEFT JOIN (SELECT pg.`student_id_` ,max(concat(cs.`class_date_`,' ',cs.`end_class_time_` )) lastClassDate FROM
`practice_group` pg
LEFT JOIN `course_schedule` cs on cs.`music_group_id_` = pg.`id_` and cs.`group_type_` = 'PRACTICE'
WHERE pg.type_='FREE' AND cs.`group_type_` = 'PRACTICE'
GROUP BY pg.`student_id_` ) b on a.student_id_ = b.student_id_
left join (SELECT pg.`student_id_` ,min(pg.`create_time_`) firstBuyTime
FROM `practice_group` pg WHERE pg.type_='CHARGE' AND pg.`group_status_` in ('NORMAL','FINISH') GROUP
BY pg.`student_id_` ) c
on a.student_id_ = c.student_id_
left join `sys_user` u on u.`id_` = a.student_id_
left join `organization` o on o.`id_` = a.organ_id_
SELECT o.`name_` organ_name_,a.student_id_,u.`username_` student_name_,u.phone_,
b.lastClassDate last_class_date_,c.firstBuyTime first_buy_time_,
CASE WHEN DATEDIFF(c.firstBuyTime,b.lastClassDate) < 0 THEN 0 ELSE DATEDIFF(c.firstBuyTime,b.lastClassDate)
END interval_day_,
CASE WHEN c.firstBuyTime IS NULL THEN 0 ELSE 1 END buy_practice_,d.teacher_name_,d.course_group_teacher_
FROM
(SELECT DISTINCT(pg.`student_id_`),pg.`organ_id_` FROM `practice_group` pg WHERE pg.`group_status_` in
('NORMAL','FINISH')) a
LEFT JOIN (SELECT pg.`student_id_` ,max(concat(cs.`class_date_`,' ',cs.`end_class_time_` )) lastClassDate FROM
`practice_group` pg
LEFT JOIN `course_schedule` cs on cs.`music_group_id_` = pg.`id_`
WHERE pg.type_='FREE' AND cs.`group_type_` = 'PRACTICE'
GROUP BY pg.`student_id_` ) b on a.student_id_ = b.student_id_
left join (SELECT pg.`student_id_` ,min(pg.`create_time_`) firstBuyTime
FROM `practice_group` pg
WHERE pg.type_='CHARGE' AND pg.`group_status_` IN ('NORMAL','FINISH') GROUP
BY pg.`student_id_` ) c ON a.student_id_ = c.student_id_
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT su.real_name_) teacher_name_,pg.student_id_,GROUP_CONCAT(DISTINCT suc.real_name_) course_group_teacher_
FROM `practice_group` pg
LEFT JOIN `course_schedule` cs ON cs.`music_group_id_` = pg.`id_`
LEFT JOIN sys_user su ON su.id_ = cs.actual_teacher_id_
LEFT JOIN sys_user suc ON suc.id_ = pg.user_id_
WHERE cs.`group_type_` = 'PRACTICE' AND pg.`group_status_` IN ('NORMAL','FINISH') GROUP BY pg.`student_id_` ) d ON a.student_id_ = d.student_id_
LEFT JOIN `sys_user` u ON u.`id_` = a.student_id_
LEFT JOIN `organization` o ON o.`id_` = a.organ_id_
(u.id_ = #{search} OR u.`username_` LIKE CONCAT('%',#{search},'%'))
AND c.firstBuyTime IS NULL
AND c.firstBuyTime IS NOT NULL
AND FIND_IN_SET(a.organ_id_,#{organId})
SELECT pg.student_id_,
su.username_ student_name_,
o.name_ organ_name_,
MAX(pg.courses_expire_date_) expire_date_,
CASE WHEN type_='FREE' THEN 0 ELSE 1 END buy_practice_
FROM practice_group pg
LEFT JOIN organization o on o.id_ = pg.organ_id_
LEFT JOIN sys_user su ON su.id_ = pg.student_id_
WHERE pg.group_status_ IN ('NORMAL','FINISH')
AND FIND_IN_SET(pg.organ_id_, #{organIds})
GROUP BY pg.student_id_,o.id_
SELECT
DISTINCT su.id_ userId,su.username_ userName, su.avatar_ avatar, su.phone_ phone
FROM
sys_user su
LEFT JOIN practice_group pg ON pg.student_id_ = su.id_
WHERE
1=1
AND su.organ_id_ IN
#{organId}
AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
AND pg.student_id_ NOT IN (
SELECT student_id_ FROM practice_group WHERE type_='CHARGE'
)
AND NOT EXISTS (
SELECT user_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=pg.student_id_ AND cs.teach_mode_='ONLINE' AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) > NOW()
)
SELECT
COUNT(DISTINCT su.id_)
FROM
sys_user su
LEFT JOIN practice_group pg ON pg.student_id_ = su.id_
WHERE
1=1
AND su.organ_id_ IN
#{organId}
AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
AND pg.student_id_ NOT IN (
SELECT student_id_ FROM practice_group WHERE type_='CHARGE'
)
AND NOT EXISTS (
SELECT user_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=pg.student_id_ AND cs.teach_mode_='ONLINE' AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) > NOW()
)
SELECT su.id_ userId,su.username_ userName,su.avatar_ avatar
FROM teacher t
LEFT JOIN sys_user su ON t.id_=su.id_
WHERE
FIND_IN_SET(#{subjectId}, t.subject_id_)
AND (t.organ_id_ = #{studentOrganId} OR FIND_IN_SET(#{studentOrganId},t.flow_organ_range_))
AND NOT EXISTS (SELECT user_id_ FROM practice_group WHERE student_id_=#{studentId} AND t.id_=user_id_ AND type_='TRIAL')
SELECT pg.subject_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_
LEFT JOIN practice_group pg ON cssp.music_group_id_=pg.id_
WHERE cssp.group_type_='PRACTICE' AND cssp.user_id_=#{studentId} ORDER BY CONCAT(cs.class_date_, ' ', cs.start_class_time_) DESC LIMIT 1
SELECT
pg.id_,
pg.name_,
pg.user_id_,
su.real_name_ teacher_name_,
MIN(CONCAT(cs.class_date_, ' ', cs.start_class_time_)) courses_start_date_,
MAX(CONCAT(cs.class_date_, ' ', cs.end_class_time_)) courses_expire_date_,
pg.memo_
FROM
practice_group pg
LEFT JOIN course_schedule cs ON cs.music_group_id_ = pg.id_
LEFT JOIN sys_user su ON su.id_=pg.user_id_
WHERE
pg.student_id_ = #{studentId}
AND cs.group_type_ = 'PRACTICE'
AND pg.type_ = 'TRIAL'
GROUP BY pg.id_
ORDER BY pg.id_
SELECT
COUNT(pg.id_)
FROM
practice_group pg
WHERE
pg.student_id_ = #{studentId}
AND pg.type_ = 'TRIAL'
SELECT
cs.id_,
cs.music_group_id_,
cs.group_type_,
cs.class_group_id_,
cs.status_,
cs.subsidy_,
cs.class_date_,
CONCAT(cs.class_date_, ' ', cs.start_class_time_) start_class_time_,
CONCAT(cs.class_date_, ' ', cs.end_class_time_) end_class_time_,
cs.teacher_id_,
cs.actual_teacher_id_,
cs.create_time_,
cs.update_time_,
cs.teach_mode_,
cs.type_,
cs.name_,
cs.student_num_,
cs.leave_student_num_,
cs.teaching_content_,
cs.note_,
cs.schoole_id_
FROM
practice_group pg
LEFT JOIN course_schedule cs ON cs.music_group_id_ = pg.id_
WHERE
pg.type_ = 'TRIAL'
AND pg.user_id_ = #{teacherId}
AND pg.student_id_ = #{studentId}
AND cs.group_type_ = 'PRACTICE'
SELECT COUNT(id_)
FROM practice_group pg
WHERE
pg.type_ = 'TRIAL'
AND pg.user_id_ = #{teacherId}
AND pg.student_id_ = #{studentId}
SELECT COUNT(id_) FROM practice_group WHERE type_='CHARGE' AND student_id_=#{studentId} AND group_status_ IN ('NORMAL', 'FINISH')