Browse Source

增加数据接口

Sand 8 years ago
parent
commit
9ed6a3dd44

+ 28 - 0
src/main/java/com/yihu/wlyy/repository/doctor/DoctorAdminTeamDao.java

@ -20,20 +20,48 @@ import java.util.List;
public interface DoctorAdminTeamDao extends
        PagingAndSortingRepository<AdminTeam, Long>,
        JpaSpecificationExecutor<AdminTeam> {
    /**
     * 全科医生团队内的签约数。
     *
     * @param doctorCode
     * @param patterns
     * @return
     */
    @Query("SELECT count(s) FROM SignFamily s WHERE doctor = :doctorCode AND doctorHealth IN (:patterns)")
    Integer getDoctorSignCount(@Param(value = "doctorCode") String doctorCode,
                               @Param(value = "patterns") List<String> patterns);
    /**
     * 团队内,全科医生的签约患者。
     *
     * @param healthDoctorCode
     * @param patterns
     * @return
     */
    @Query("SELECT count(s) FROM SignFamily s WHERE doctorHealth = :healthDoctorCode AND doctor IN (:patterns)")
    Integer getHealthDoctorSignCount(@Param(value = "healthDoctorCode") String healthDoctorCode,
                                     @Param(value = "patterns") List<String> patterns);
    /**
     * 团队内,健康管理师的签约患者。
     *
     * @param healthDoctorCode
     * @param generalDoctors
     * @param pageable
     * @return
     */
    @Query("SELECT p FROM SignFamily s, Patient p WHERE s.doctorHealth = :healthDoctorCode AND s.doctor IN " +
            "(:generalDoctors) AND s.patient = p.code")
    Page<Patient> getHealthDoctorSigningPatients(@Param(value = "healthDoctorCode") String healthDoctorCode,
                                                 @Param(value = "generalDoctors") List<String> generalDoctors,
                                                 Pageable pageable);
    /**
     * 患者所签约团队。
     *
     * @param patientCode
     * @return
     */
    @Query("SELECT  t.id, t.name, d1.code, d1.name, d2.code, d2.name\n" +
            "FROM SignFamily f, Doctor d1, Doctor d2, AdminTeam t, AdminTeamMember m \n" +
            "WHERE d1.code = f.doctor AND f.doctorHealth = d2.code AND f.patient = :patientCode AND m.doctorCode = " +

+ 3 - 2
src/main/java/com/yihu/wlyy/repository/doctor/DoctorAdminTeamMemberDao.java

@ -30,8 +30,9 @@ public interface DoctorAdminTeamMemberDao extends
            ".teamId AND m.doctorCode = d.code ORDER BY d.level")
    List<Doctor> findAllMembers(@Param(value = "teamId") long teamId);
    @Query("SELECT 1 FROM AdminTeamMember WHERE teamId = :teamId AND doctorCode = :doctorCode")
    Integer isMemberExist(@Param(value = "teamId") long teamId, @Param(value = "doctorCode") String doctorCode);
    @Query("SELECT case when count(A) > 0 then true else false END FROM AdminTeamMember A WHERE A.teamId = :teamId " +
            "AND A.doctorCode = :doctorCode")
    Boolean isMemberExist(@Param(value = "teamId") long teamId, @Param(value = "doctorCode") String doctorCode);
    @Query("SELECT d from Hospital h, Doctor d WHERE d.name like :doctorName " +
            "AND h.code = d.hospital AND h.code = :orgCode AND d.code not in " +

+ 5 - 3
src/main/java/com/yihu/wlyy/service/app/team/AdminTeamService.java

@ -7,6 +7,7 @@ import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamMemberDao;
import com.yihu.wlyy.service.BaseService;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@ -139,8 +140,7 @@ public class AdminTeamService extends BaseService {
     * @param doctorCode
     */
    public void addMember(long teamId, String doctorCode) {
        Integer count = memberDao.isMemberExist(teamId, doctorCode);
        if (count == null || count == 0) {
        if (!memberDao.isMemberExist(teamId, doctorCode)) {
            AdminTeamMember member = new AdminTeamMember();
            member.setTeamId(teamId);
            member.setDoctorCode(doctorCode);
@ -157,9 +157,11 @@ public class AdminTeamService extends BaseService {
     * @param teamId
     * @param doctorCode
     */
    public void removeMember(long teamId, String doctorCode) {
    public Pair<Integer, String> removeMember(long teamId, String doctorCode) {
        AdminTeamMember member = memberDao.findByTeamIdAndDoctorCodeOrderByDoctorCodeAsc(teamId, doctorCode);
        if (member != null) memberDao.delete(member);
        return null;
    }
    public List<Doctor> getMembers(long teamId) {

+ 3 - 2
src/main/java/com/yihu/wlyy/web/doctor/team/AdminTeamController.java

@ -13,6 +13,7 @@ import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.tuple.Pair;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@ -162,9 +163,9 @@ public class AdminTeamController extends BaseController {
                               @PathVariable("doctor_code") String doctorCode) {
        try {
            memberService.removeMember(teamId, doctorCode);
            Pair<Integer, String> result = memberService.removeMember(teamId, doctorCode);
            return write(200, "OK", "data", "");
            return write(result.getLeft(), "OK", "data", result.getRight());
        } catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());