| 
					
				 | 
			
			
				@ -0,0 +1,56 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.care.dao.order; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.team.BaseTeamMemberDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.jpa.repository.JpaRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.jpa.repository.Modifying; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.jpa.repository.Query; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.repository.query.Param; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Set; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * 团队成员 数据库访问层 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public interface BaseTeamMemberDao extends JpaRepository<BaseTeamMemberDO, String>, JpaSpecificationExecutor<BaseTeamMemberDO>  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Query("select doc.name as name,doc.idcard as idcard ,doc.id as doctorCode from BaseDoctorDO doc where doc.id in (select team.doctorCode from BaseTeamMemberDO team where team.teamCode = ?1)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    List<Map<String,Object>> getTeamMemberList(String teamCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Query("select id from BaseTeamMemberDO where teamCode = ?1") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Set<Object> findIdListByTeamCode(String teamCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    List<BaseTeamMemberDO> findByTeamCode(String teamCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Query("SELECT case when count(A) > 0 then true else false END FROM BaseTeamMemberDO A WHERE A.teamCode = :teamCode " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "AND A.doctorCode = :doctorCode AND A.del = '1'") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Boolean isMemberExist(@Param(value = "teamCode") String teamCode, @Param(value = "doctorCode") String doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Modifying 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Query("update BaseTeamMemberDO t SET t.del = '0' where t.teamCode = :teamCode") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    void deleteByTeamCode(@Param("teamCode") String teamCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    BaseTeamMemberDO findByTeamCodeAndDoctorCode(String teamCode, String doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    BaseTeamMemberDO findByTeamCodeAndDoctorCodeAndDel(String teamCode, String doctorCode,String del); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Modifying 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Query("update BaseTeamMemberDO t SET t.del = '0' where t.id = :id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    void deleteById(@Param("id") String id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Query("SELECT d FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "AND m.doctorCode = d.id AND t.del = '1' AND m.del = '1' ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    List<BaseDoctorDO> findAllMembers(@Param(value = "teamCode") String teamCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Query("SELECT d FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "AND m.doctorCode = d.id And d.level=:doctorLevel AND t.del = '1' AND m.del = '1' ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    List<BaseDoctorDO> findAllMembersByLevel(@Param(value = "teamCode") String teamCode,@Param(value = "doctorLevel") Integer doctorLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Query("SELECT count(1) FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "AND m.doctorCode = d.id AND t.del = '1' AND m.del = '1' ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Integer findMemCount(@Param(value = "teamCode") String teamCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |