t.id_ as id
, t.activity_id_ as activityId
, t.user_id_ as userId
, t.order_no_ as orderNo
, t.sub_order_no_ as subOrderNo
, t.create_time_ as createTime
SELECT
FROM activity_registration t
where t.id_ = #{id}
SELECT
,
u.id_ as studentId,u.username_ as username,u.phone_ as phone,u.real_name_ as realName,
b.music_sheet_name_ as musicSheetName,b.max_score_ as maxScore,b.num_ as num,
if(a.num>0, true, false) as rewardFlag
FROM activity_registration t
left join sys_user u on t.user_id_ = u.id_
left join (
select
aur.activity_id_,aur.user_id_,count(1) as num
from activity_user_reward aur
and aur.activity_id_ = #{param.activityId}
group by aur.activity_id_,aur.user_id_
) a on t.activity_id_ = a.activity_id_ and t.user_id_ = a.user_id_
left join (
select
ar.activity_id_,aer.user_id_,
group_concat(DISTINCT ms.music_sheet_name_) as music_sheet_name_,
sum(if(aer.score_ is null, 0, 1)) as num_,
max(aer.score_) as max_score_
from activity_registration ar
left join activity_evaluation_record aer on ar.activity_id_ = aer.activity_id_ and ar.user_id_ = aer.user_id_
left join activity_evaluation ae on aer.evaluation_id_ = ae.id_
left join music_sheet ms on ae.music_sheet_id_ = ms.id_
and aer.activity_id_ = #{param.activityId}
AND aer.resource_id_ IN (#{item} )
and ae.music_sheet_id_ IN
#{item}
group by ar.activity_id_,aer.user_id_
) b on t.activity_id_ = b.activity_id_ and t.user_id_ = b.user_id_
and b.activity_id_ is not null
and t.activity_id_ = #{param.activityId}
AND (
t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or
u.username_ LIKE CONCAT('%', #{param.search}, '%') or
u.phone_ LIKE CONCAT('%', #{param.search}, '%')
)
and (a.num is null or a.num = 0)
and a.num > 0
order by t.create_time_ desc