t.id_ as id ,
        t.music_sheet_name_ as musicSheetName,
        t.user_id_ as userId,
        t.composer_ as composer,
        t.music_subject_ as musicSubject,
        t.audio_type_ as audioType,
        t.music_tag_ as musicTag,
        t.play_speed_ as playSpeed,
        t.can_evaluate_ as canEvaluate,
        t.show_fingering_ as showFingering,
        t.charge_type_ as chargeType,
        t.state_ as state,
        t.audit_status_ as auditStatus,
        t.sort_number_ as sortNumber,
        t.top_flag_ as topFlag,
        t.hot_flag_ as hotFlag,
        t.music_price_ as musicPrice,
        t.audio_file_url_ as audioFileUrl,
        t.xml_file_url_ as xmlFileUrl,
        t.has_beat_ as hasBeat,
        t.mp3_type_ as mp3Type,
        t.ext_config_json_ as extConfigJson,
        t.create_time_ as createTime,
        t.create_by_ as createBy,
        t.update_time_ as updateTime,
        t.update_by_ as updateBy,
        t.del_flag_ as delFlag,
        t.audit_version_ as auditVersion,
        t.source_type_ as sourceType,
        t.submit_audit_time_ as submitAuditTime,
        t.remark_ as remark,
        t.reason_ as reason,
        t.notation_ as notation
     
    
        select  
        ,su.username_ as addName
        ,su.avatar_ as addUserAvatar
        ,(select group_concat(mt.name_) from music_tag mt
            where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,(select group_concat(s.name_) from subject s
            where find_in_set(s.id_,t.music_subject_) and s.del_flag_ = 0 ) as subjectNames
        from music_sheet t
        left join sys_user su on t.create_by_ = su.id_
        
            su.del_flag_ = 0
             
            
                and #{param.auditVersion} = t.audit_version_
             
         
        order by
        
            t.top_flag_ desc,t.sort_number_ desc,
         
         t.id_ desc
     
    
        
            and (t.id_ like concat('%',#{param.idAndName},'%') or
            t.music_sheet_name_ like concat('%',#{param.idAndName},'%') or
            t.composer_ like concat ('%',#{param.idAndName},'%') or
            su.username_ like concat ('%',#{param.idAndName},'%') )
         
        
            and
            
                find_in_set(#{item},t.music_tag_)
             
         
        
            and
            
                find_in_set(#{item},t.music_subject_)
             
         
        
            and t.state_ = #{param.state}
         
        
            and t.audit_status_ = #{param.auditStatus}
         
        
            and t.create_by_ = #{param.createBy}
         
        
            and t.del_flag_ = #{param.delFlag}
         
        
            and t.source_type_ = #{param.sourceType}
         
        
            and t.charge_type_ = #{param.chargeType}
         
        
            and t.top_flag_ = #{param.topFlag}
         
     
    
        select distinct  
        ,(select group_concat(mt.name_) from music_tag mt
        where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,(select group_concat(s.name_) from subject s
            where find_in_set(s.id_,t.music_subject_) and s.del_flag_ = 0 ) as subjectNames
        ,(select count(1) from music_favorite f
            where f.music_sheet_id_ = t.id_) as favoriteCount
        ,amr.sort_number_ as albumSortNumber
        from music_sheet t
        left join album_music_relate amr on t.id_ = amr.music_sheet_id_
        
            
                and (t.id_ like concat('%',#{param.idAndName},'%') or
                t.music_sheet_name_ like concat('%',#{param.idAndName},'%'))
             
            
                and
                
                    find_in_set(#{item},t.music_tag_)
                 
             
            
                and
                
                    find_in_set(#{item},t.music_subject_)
                 
             
            
                and t.state_ = #{param.state}
             
            
                and t.del_flag_ = #{param.delFlag}
             
            
                
                    and amr.album_id_ = #{param.id}
                    order by amr.sort_number_ desc, t.id_ desc
                 
                
                    and t.id_ not in(select amr2.music_sheet_id_  from album_music_relate amr2
                        where amr2.album_id_ = #{param.id})
                    order by t.id_ desc
                 
             
         
     
    
        SELECT
             
            ,t.url_ as url
            ,t.midi_url_ as midiUrl
            ,t.metronome_url_ as metronomeUrl
            ,msa.id_ as accompanimentId
            ,msa.music_sheet_id_ as accompanimentMusicSheetId
            ,msa.music_subject_ as accompanimentMusicSubject
            ,msa.audio_file_url_ as accompanimentAudioFileUrl
            ,msa.sort_number_ as accompanimentSortNumber
            ,msa.create_time_ as accompanimentCreateTime
            ,msa.metronome_url_ as accompanimentMetronomeUrl
            ,msa.track_ as track
            ,su.username_ as userName
            ,su.avatar_ as userAvatar
            ,(
                select group_concat(mt.name_) from music_tag mt
                where find_in_set(mt.id_,t.music_tag_)
                and mt.del_flag_ = 0  and mt.state_ = 1
            ) as musicTagNames
            ,s2.name_ as subjectNames
            ,s2.code_ as code
            ,s2.ai_default_frequency_ as aiDefaultFrequency
        FROM music_sheet t
        left join music_sheet_accompaniment msa on msa.music_sheet_id_ = t.id_
        left join sys_user su on t.create_by_ = su.id_
        left join subject s2 on t.music_subject_ = s2.id_
        where t.id_ = #{id}
         order by  msa.sort_number_
     
    
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
        
             
             
             
             
             
             
             
             
         
     
    
        select  
        ,su.username_ as addName
        ,su.avatar_ as addUserAvatar
        ,(select group_concat(mt.name_) from music_tag mt
        where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,(select count(1) as num from music_favorite af
                left join sys_user su on af.user_id_ = su.id_
                where su.del_flag_ = 0 and af.music_sheet_id_ = t.id_) as favoriteCount
        ,(select group_concat(s.name_) from subject s
        where find_in_set(s.id_,t.music_subject_)  and s.del_flag_ = 0) as subjectNames
        
            ,if(mf.id_ is not null,1,0) as favorite
            ,case when mspr.id_ is not null then 1
                when t.charge_type_ = 'FREE' then 1
                else 0 end as play
         
        from music_sheet t
        left join sys_user su on t.create_by_ = su.id_
        left join (select count(1) as num,mf.music_sheet_id_
            from music_favorite mf group by mf.music_sheet_id_) t2 on t2.music_sheet_id_ = t.id_
        
            left join music_sheet_purchase_record mspr
                on mspr.music_sheet_id_ = t.id_
                and mspr.student_id_ = #{param.studentId}
                and order_status_ = 'PAID'
            left join music_favorite mf on t.id_ = mf.music_sheet_id_ and mf.user_id_ = #{param.studentId}
         
        
            su.del_flag_ = 0
             
            
                and #{param.auditVersion} = t.audit_version_
             
         
        order by
        
            t.top_flag_ desc, t.sort_number_ desc, t2.num desc,
         
        t.id_ desc
     
    
        select  
        ,su.username_ as addName
        ,su.avatar_ as addUserAvatar
        ,(select group_concat(mt.name_) from music_tag mt
        where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,(select group_concat(s.name_) from subject s
        where find_in_set(s.id_,t.music_subject_) and s.del_flag_ = 0 ) as subjectNames
        ,if(mf.id_ is not null,1,0) as favorite
        from music_sheet t
        left join sys_user su on t.create_by_ = su.id_
        left join music_sheet_purchase_record mspr on mspr.music_sheet_id_ = t.id_
        left join music_favorite mf on t.id_ = mf.music_sheet_id_ and mspr.student_id_ = mf.user_id_
        
             
            
                and mspr.student_id_ = #{param.studentId}
                and mspr.order_status_ = 'PAID'
             
            
                and mspr.client_type_ = #{param.userType}
             
         
        order by  mspr.id_ desc
     
    
        select  
        ,su.username_ as addName
        ,su.avatar_ as addUserAvatar
        ,(select group_concat(mt.name_) from music_tag mt
        where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,(select group_concat(s.name_) from subject s
        where find_in_set(s.id_,t.music_subject_) and s.del_flag_ = 0 ) as subjectNames
        ,if(mf.id_ is not null,1,0) as favorite
        from music_sheet t
        left join sys_user su on t.create_by_ = su.id_
        left join music_favorite mf on t.id_ = mf.music_sheet_id_
        
            su.del_flag_ = 0
             
            
                and mf.user_id_ = #{param.studentId}
             
         
        order by mf.id_ desc
     
    
        select  
        ,su.username_ as addName
        ,su.avatar_ as addUserAvatar
        ,(select group_concat(mt.name_) from music_tag mt
        where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,(select group_concat(s.name_) from subject s where find_in_set(s.id_,t.music_subject_) ) as subjectNames
        ,if(mf.id_ is not null,1,0) as favorite
        from music_sheet t
        left join sys_user su on t.create_by_ = su.id_
        left join music_sheet_practice_record mspr on mspr.music_sheet_id_ = t.id_
        left join music_favorite mf on t.id_ = mf.music_sheet_id_ and mspr.user_id_ = mf.user_id_
        
            su.del_flag_ = 0
             
            
                and mspr.id_ in
                
                    #{item}
                 
             
         
        
            order by field(mspr.id_,
            
                #{item}
             
         
        )
     
    
        select mspr.music_sheet_id_ as musicSheetId
        ,ms.music_sheet_name_ as musicSheetName
        ,ms.composer_ as composer
        ,ms.music_tag_ as musicTag
        ,(select group_concat(mt.name_) from music_tag mt
        where find_in_set(mt.id_,ms.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,mspr.purchase_price_ as purchasePrice
        ,mspr.order_no_ as orderNo
        ,mspr.purchase_time_ as purchaseTime
        from music_sheet_purchase_record mspr
        left join music_sheet ms on mspr.music_sheet_id_ = ms.id_
        
            mspr.order_status_ = 'PAID'
            
                and (ms.id_ like concat('%',#{param.idAndName} ,'%')
                    or ms.music_sheet_name_ like concat('%',#{param.idAndName},'%'))
             
            
                and mspr.student_id_ = #{param.studentId}
             
            
                and mspr.order_no_ = #{param.orderNo}
             
            
                and
                
                    find_in_set(#{item},ms.music_tag_)
                 
             
            
                and mspr.purchase_time_ > #{param.startTime}
             
            
                and mspr.purchase_time_ < #{param.endTime}
             
            
                and ms.del_flag_ = #{param.delFlag}
             
         
        order by mspr.id_ desc
     
    
        select ms.id_ as musicSheetId
        ,ms.music_sheet_name_ as musicSheetName
        ,ms.composer_ as composer
        ,ms.music_tag_ as musicTag
        ,(select group_concat(mt.name_) from music_tag mt
        where find_in_set(mt.id_,ms.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,ms.play_speed_ as playSpeed
        ,ms.music_price_ as musicPrice
        ,ms.create_time_ as createTime
        ,ms.audit_status_ as auditStatus
        ,su.username_ as auditName
        from music_sheet ms
        left join music_sheet_auth_record msar on ms.id_ = msar.music_sheet_id_
        left join sys_user su on msar.verify_user_id_ = su.id_
        
            
                and (ms.id_ like concat('%',#{param.idAndName} ,'%')
                or ms.music_sheet_name_ like concat('%',#{param.idAndName},'%')
                or ms.composer_ like concat('%',#{param.idAndName},'%'))
             
            
                and ms.create_by_ = #{param.teacherId}
             
            
                and ms.create_time_ > #{param.startTime}
             
            
                and ms.create_time_ < #{param.endTime}
             
            
                and ms.del_flag_ = #{param.delFlag}
             
         
        order by  ms.id_ desc
     
    
        select
        ms.create_by_ as teacherId
        ,su.username_ as username
        ,su.real_name_ as realName
        ,su.phone_ as phone
        ,ms.id_ as musicSheetId
        ,ms.music_sheet_name_ as musicSheetName
        ,ms.composer_ as composer
        ,ms.music_tag_ as musicTag
        ,(select group_concat(mt.name_) from music_tag mt
        where find_in_set(mt.id_,ms.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
        ,ms.play_speed_ as playSpeed
        ,ms.music_price_ as musicPrice
        ,ms.create_time_ as createTime
        ,if(msar.audit_state_ is null,ms.audit_status_,msar.audit_state_) as auditStatus
        ,su2.username_ as auditName
        from music_sheet ms
        left join sys_user su on su.id_ = ms.create_by_
        left join music_sheet_auth_record msar on ms.id_ = msar.music_sheet_id_
        left join sys_user su2 on msar.verify_user_id_ = su2.id_
        
            su.del_flag_ = 0 and
            ms.source_type_  = 'TEACHER' and
            msar.id_ is not null
            
                and (su.id_ like concat('%',#{param.idAndName} ,'%')
                or su.username_ like concat('%',#{param.idAndName},'%')
                or su.phone_ like concat('%',#{param.idAndName},'%'))
             
            
                and su2.username_ like concat('%',#{param.auditName},'%')
             
            
                and msar.audit_state_ = #{param.authStatus}
             
            
                and ms.create_time_ > #{param.startTime}
             
            
                and ms.create_time_ < #{param.endTime}
             
            
                and ms.del_flag_ = #{param.delFlag}
             
            
                and ms.charge_type_ = #{param.chargeType}
             
         
        order by field(ms.audit_status_,'DOING') desc,  ms.submit_audit_time_ desc
     
    
        select count(1)
        from music_sheet
        where user_id_ = #{userId}
        and state_ = 1 and audit_status_ = 'PASS' and del_flag_ = 0 and source_type_ = 'TEACHER'
     
    
        select
            sum(if(ms.source_type_ = 'PLATFORM',1,0)) as musicSheetPlatformCount,
            sum(if(ms.source_type_ = 'TEACHER',1,0)) as musicSheetTeacherCount,
            count(1) as musicSheetCount
        from music_sheet ms
        where ms.state_ = 1 and ms.del_flag_ = 0 and ms.audit_status_ = 'PASS' and ms.charge_type_ = 'CHARGE'
     
    
        SELECT
            ms.id_ as musicSheetId,
            ms.music_sheet_name_ as musicSheetName,
            count(DISTINCT pr.student_id_) as num
        FROM
            music_sheet ms
                LEFT JOIN music_sheet_purchase_record pr ON ms.id_ = pr.music_sheet_id_
        WHERE
            ms.del_flag_=0
          AND ms.charge_type_='CHARGE'
          AND ms.state_=1
          AND pr.order_status_='PAID'
        GROUP BY ms.id_
        ORDER BY count(DISTINCT pr.student_id_)  DESC,ms.id_ desc
        limit 5
     
    
        select
            sum(if(t.audit_status_ = 'DOING',1,0)) as doing,
            sum(if(t.audit_status_ = 'PASS'
                       and t.state_ = 1,1,0)) as pass,
            sum(if(t.audit_status_ = 'UNPASS',1,0)) as upPass
        from
            music_sheet t
        where t.user_id_ = #{userId}
     
    
        select
            t.user_id_ as userId,
            a.musicAlbumNum,
            b.musicSheetNum
        from teacher t
        left join (
            select
                user_id_, count(1) as musicAlbumNum
            from album_favorite
            
                
                    and user_id_ = #{userId}
                 
             
            group by user_id_
        ) a on t.user_id_ = a.user_id_
        left join (
            select
                user_id_, count(1) as musicSheetNum
            from music_favorite
            
                
                    and user_id_ = #{userId}
                 
             
            group by user_id_
        ) b on t.user_id_ = b.user_id_
     
    
        select
            t.user_id_ as userId,
            a.musicSheetNum as musicSheetNum
        from student t
        left join (
            select
                user_id_, count(1) as musicSheetNum
            from music_sheet
            where source_type_ = 'TEACHER' and state_ = 1 and audit_status_ = 'PASS' and del_flag_ = 0
            
                and user_id_ = #{userId}
             
            group by user_id_
        ) a on t.user_id_ = a.user_id_