Selaa lähdekoodia

新增关注模块

chenweida 7 vuotta sitten
vanhempi
commit
6bae61cf5c

+ 191 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/concern/ConcernDo.java

@ -0,0 +1,191 @@
package com.yihu.wlyy.entity.concern;// default package
import com.yihu.wlyy.entity.IdEntity;
import java.sql.Timestamp;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
/**
 * WlyyConcern entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "wlyy_concern")
public class ConcernDO extends IdEntity {
	private String code; //code
	private String patient;//患者code
	private String name;//患者名称
	private String openid;//openID
	private String idcard;//患者身份是在
	private String ssc;//患者社保卡
	private String mobile;//患者手机号
	private Integer status;//状态 -1取消关注 1已关注
	private String teamCode;//关注的团队code
	private Integer concernSource;//关注方式: 1扫描二维码 2页面跳转
	private String concernDoctorCode;//关注的医生code
	private String concernDoctorName;//关注的医生名称
	private Date createTime;//创建时间
	private Date updateTime;//修改时间
	// Constructors
	/** default constructor */
	public ConcernDO() {
	}
	/** full constructor */
	public ConcernDO(String code, String patient, String name, String openid,
					 String idcard, String ssc, String mobile, Integer status,
					 String teamCode, Integer concernSource, String concernDoctorCode,
					 String concernDoctorName, Integer adminTeamCode,
					 Timestamp createTime, Timestamp updateTime) {
		this.code = code;
		this.patient = patient;
		this.name = name;
		this.openid = openid;
		this.idcard = idcard;
		this.ssc = ssc;
		this.mobile = mobile;
		this.status = status;
		this.teamCode = teamCode;
		this.concernSource = concernSource;
		this.concernDoctorCode = concernDoctorCode;
		this.concernDoctorName = concernDoctorName;
		this.createTime = createTime;
		this.updateTime = updateTime;
	}
	@Column(name = "code", nullable = false, length = 200)
	public String getCode() {
		return this.code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	@Column(name = "patient", length = 50)
	public String getPatient() {
		return this.patient;
	}
	public void setPatient(String patient) {
		this.patient = patient;
	}
	@Column(name = "name", nullable = false, length = 50)
	public String getName() {
		return this.name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Column(name = "openid", length = 50)
	public String getOpenid() {
		return this.openid;
	}
	public void setOpenid(String openid) {
		this.openid = openid;
	}
	@Column(name = "idcard", nullable = false, length = 50)
	public String getIdcard() {
		return this.idcard;
	}
	public void setIdcard(String idcard) {
		this.idcard = idcard;
	}
	@Column(name = "ssc", nullable = false, length = 20)
	public String getSsc() {
		return this.ssc;
	}
	public void setSsc(String ssc) {
		this.ssc = ssc;
	}
	@Column(name = "mobile", length = 100)
	public String getMobile() {
		return this.mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	@Column(name = "status", nullable = false)
	public Integer getStatus() {
		return this.status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	@Column(name = "team_code", length = 100)
	public String getTeamCode() {
		return this.teamCode;
	}
	public void setTeamCode(String teamCode) {
		this.teamCode = teamCode;
	}
	@Column(name = "concern_source")
	public Integer getConcernSource() {
		return this.concernSource;
	}
	public void setConcernSource(Integer concernSource) {
		this.concernSource = concernSource;
	}
	@Column(name = "concern_doctor_code", length = 50)
	public String getConcernDoctorCode() {
		return this.concernDoctorCode;
	}
	public void setConcernDoctorCode(String concernDoctorCode) {
		this.concernDoctorCode = concernDoctorCode;
	}
	@Column(name = "concern_doctor_name", length = 200)
	public String getConcernDoctorName() {
		return this.concernDoctorName;
	}
	public void setConcernDoctorName(String concernDoctorName) {
		this.concernDoctorName = concernDoctorName;
	}
	@Column(name = "create_time", length = 0)
	public Date getCreateTime() {
		return this.createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	@Column(name = "update_time", nullable = false, length = 0)
	public Date getUpdateTime() {
		return this.updateTime;
	}
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
}

+ 11 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/doctor/profile/Doctor.java

@ -71,6 +71,8 @@ public class Doctor extends IdEntity {
    private String certificateNum;     //CA证书编号
    private String openid; //医生微信openID
    //=====================非hibernate字段=========================
    private String concernCode;//关注code
    public Double getEvaluateScore() {
        return evaluateScore;
@ -438,4 +440,13 @@ public class Doctor extends IdEntity {
    public void setOpenid(String openid) {
        this.openid = openid;
    }
    @Transient
    public String getConcernCode() {
        return concernCode;
    }
    public void setConcernCode(String concernCode) {
        this.concernCode = concernCode;
    }
}

+ 2 - 2
common/common-entity/src/main/java/com/yihu/wlyy/entity/doctor/team/sign/DoctorTeamMember.java

@ -22,10 +22,10 @@ public class DoctorTeamMember extends IdEntity {
    private String memberCode;
    private String code;
    private String name;
    private Integer type;//医生类型:1专科医生,2全科医生,3健康管理师,4临时专科 5.患者
    private Integer type;//医生类型:1服务医生
    private Date czrq;
    private String del;//是否作废,1正常,0作废
    private String signType;//签约类型(1表示三师签约,2表示家庭签约)
    private String signType;//签约类型(1表示三师签约,2表示家庭签约)  废弃字段
    /**
     * default constructor

+ 43 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/concern/ConcernDao.java

@ -0,0 +1,43 @@
package com.yihu.wlyy.repository.concern;
import com.yihu.wlyy.entity.concern.ConcernDO;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.patient.Patient;
import io.vavr.collection.List;
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.PagingAndSortingRepository;
/**
 * Created by Administrator on 2018/4/4 0004.
 */
public interface ConcernDao extends
        PagingAndSortingRepository<ConcernDO, Long>,
        JpaSpecificationExecutor<ConcernDO> {
    @Query(" from  ConcernDO where code=?1 ")
    ConcernDO findByCode(String concernCode);
    /**
     * 目前是1个团队一个医生的 所以先这么做
     *
     * @param patientCode
     * @return
     */
    @Query("select d from  ConcernDO c,Doctor d where c.concernDoctorCode=d.code and  c.status=1  and  c.patient=?1  ")
    List<Doctor> listDoctorsByPatientCode(String patientCode);
    /**
     * 目前是1个团队一个医生的 所以先这么做
     *
     * @param doctorCode
     * @return
     */
    @Query("select p from  ConcernDO c,Patient p where c.patient=p.code and  c.status=1  and  c.concernDoctorCode=?1")
    List<Patient> listPatientsByDoctorCode(String doctorCode);
    @Query(" from  ConcernDO c where  c.status=1  and  c.patient=?1  and  c.concernDoctorCode=?2")
    ConcernDO findByPatientAndDoctor(String patientCode, String doctorCode);
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/DoctorTeamDao.java

@ -25,7 +25,7 @@ JpaSpecificationExecutor<DoctorTeam> {
	DoctorTeam findByParientCodeAndSignType(String parientCode, String type);
	@Modifying
	@Query("update DoctorTeam a set a.del =0  where a.code = ?1 and signType='2'")
	@Query("update DoctorTeam a set a.del =0  where a.code = ?1 ")
	void deleteTeam(String teamCode);
	/**

+ 2 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/DoctorTeamMemberDao.java

@ -33,9 +33,10 @@ public interface DoctorTeamMemberDao extends PagingAndSortingRepository<DoctorTe
    void updateType1Del(String code);
    @Modifying
    @Query("update DoctorTeamMember a set a.del = '0' where a.team = ?1 and signType='2' ")
    @Query("update DoctorTeamMember a set a.del = '0' where a.team = ?1  ")
    void deleteMember(String code);
    @Query("select count(a) FROM DoctorTeamMember a WHERE a.memberCode =?1 and  a.del='1'")
    Integer teamListByDoctorCode(String doctorCode);

+ 155 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/concern/ConcernService.java

@ -0,0 +1,155 @@
package com.yihu.wlyy.service.app.concern;
import com.yihu.wlyy.entity.concern.ConcernDO;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeam;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeamMember;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.repository.concern.ConcernDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.doctor.DoctorTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorTeamMemberDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.service.BaseService;
import io.vavr.collection.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
/**
 * Created by Administrator on 2018/4/4 0004.
 */
@Service
public class ConcernService extends BaseService {
    @Autowired
    private ConcernDao concernDao;
    @Autowired
    private PatientDao patientDao;
    @Autowired
    private DoctorDao doctorDao;
    @Autowired
    private DoctorTeamDao doctorTeamDao;
    @Autowired
    private DoctorTeamMemberDao doctorTeamDoctorDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 新增患者关注医生
     *
     * @param patientCode
     * @param doctorCode
     * @param concernSource 关注方式: 1扫描二维码 2页面跳转 前端传
     * @return
     */
    @Transactional
    public boolean addConcern(
            String patientCode, String doctorCode, Integer concernSource) {
        Patient patient = patientDao.findByCode(patientCode);
        Doctor doctor = doctorDao.findByCode(doctorCode);
        //新增关注
        ConcernDO concern = new ConcernDO();
        //新增关注的服务团队
        //建立团队
        DoctorTeam doctorTeam = new DoctorTeam();
        String doctorTeamCode = getCode();
        doctorTeam.setName("签约团队患者:" + patient.getName());
        doctorTeam.setCode(doctorTeamCode);
        doctorTeam.setCzrq(new Date());
        doctorTeam.setSignType("2");
        doctorTeam.setDel("1");
        doctorTeamDao.save(doctorTeam);
        concern.setTeamCode(doctorTeamCode);
        //添加团队成员
        DoctorTeamMember wlyyDoctorTeamDoctor = new DoctorTeamMember();
        wlyyDoctorTeamDoctor.setTeam(doctorTeamCode);
        wlyyDoctorTeamDoctor.setMemberCode(doctor.getCode());
        wlyyDoctorTeamDoctor.setName(doctor.getName());
        wlyyDoctorTeamDoctor.setDel("1");
        wlyyDoctorTeamDoctor.setType(1);
        wlyyDoctorTeamDoctor.setCode(getCode());
        wlyyDoctorTeamDoctor.setCzrq(new Date());
        doctorTeamDoctorDao.save(wlyyDoctorTeamDoctor);
        //保存关注记录
        concern.setCode(getCode());
        concern.setName(patient.getName());
        concern.setConcernDoctorCode(doctor.getCode());
        concern.setConcernDoctorName(doctor.getName());
        concern.setCreateTime(new Date());
        concern.setIdcard(patient.getIdcard());
        concern.setMobile(patient.getMobile());
        concern.setSsc(patient.getSsc());
        concern.setOpenid(patient.getOpenid());
        concern.setPatient(patient.getCode());
        concern.setStatus(1);
        concern.setConcernSource(concernSource);
        concernDao.save(concern);
        return true;
    }
    /**
     * 删除患者关注医生
     *
     * @param concernCode 关注code
     * @return
     */
    @Transactional
    public boolean deleteConcern(String concernCode) {
        ConcernDO concern = concernDao.findByCode(concernCode);
        //删除关注
        concern.setStatus(-1);
        //删除团队
        doctorTeamDao.deleteTeam(concern.getTeamCode());
        //删除团队成员
        doctorTeamDoctorDao.deleteMember(concern.getTeamCode());
        return true;
    }
    /**
     * 删除患者关注医生
     *
     * @param patientCode 患者code
     * @param doctorCode
     */
    @Transactional
    public void deleteConcern(String patientCode, String doctorCode) {
        ConcernDO concern = concernDao.findByPatientAndDoctor(patientCode, doctorCode);
        //删除关注
        concern.setStatus(-1);
        //删除团队
        doctorTeamDao.deleteTeam(concern.getTeamCode());
        //删除团队成员
        doctorTeamDoctorDao.deleteMember(concern.getTeamCode());
    }
    /**
     * 获取患者关注医生
     *
     * @param patientCode
     * @return
     */
    public List<Doctor> listDoctorsByPatientCode(String patientCode) {
        List<Doctor> doctors = concernDao.listDoctorsByPatientCode(patientCode);
        return doctors;
    }
    /**
     * 获取患者关注医生
     *
     * @param doctorCode
     * @return
     */
    public List<Patient> listPatientsByDoctorCode(String doctorCode) {
        List<Patient> patients = concernDao.listPatientsByDoctorCode(doctorCode);
        return patients;
    }
}

+ 42 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/concern/DoctorConcernController.java

@ -0,0 +1,42 @@
package com.yihu.wlyy.web.doctor.concern;
import com.yihu.wlyy.service.app.concern.ConcernService;
import com.yihu.wlyy.web.BaseController;
import com.yihu.wlyy.web.WeixinBaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by Administrator on 2018/4/4 0004.
 */
@RestController
@RequestMapping(value = "/doctor/concern")
@Api(description = "医生患者关注")
public class DoctorConcernController extends BaseController {
    @Autowired
    private ConcernService concernService;
    @RequestMapping(value = "/getConcernPatients", method = RequestMethod.GET)
    @ApiOperation(value = "获取医生关注的患者", notes = "")
    public String getConcernDoctors(
            @ApiParam(name = "doctor", value = "医生",required = false) @RequestParam(required = false, name = "doctor") String doctor
    ) {
        try {
            if(StringUtils.isEmpty(doctor)){
                doctor=getUID();
            }
            return write(200,"查询成功","data",concernService.listPatientsByDoctorCode(doctor));
        } catch (Exception e) {
            e.printStackTrace();
            return error(-100, "查询失败");
        }
    }
}

+ 81 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/concern/PatientConcernController.java

@ -0,0 +1,81 @@
package com.yihu.wlyy.web.patient.concern;
import com.yihu.wlyy.service.app.concern.ConcernService;
import com.yihu.wlyy.web.BaseController;
import com.yihu.wlyy.web.WeixinBaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by Administrator on 2018/4/4 0004.
 */
@RestController
@RequestMapping(value = "/patient/concern")
@Api(description = "患者关注")
public class PatientConcernController extends BaseController {
    @Autowired
    private ConcernService concernService;
    @RequestMapping(value = "/addConcern", method = RequestMethod.POST)
    @ApiOperation(value = "新增关注", notes = "")
    public String addConcern(
            @ApiParam(name = "patient", value = "患者", required = false) @RequestParam(required = false, name = "patient") String patient,
            @ApiParam(name = "doctor", value = "医生Code") @RequestParam(required = true, name = "doctor") String doctor,
            @ApiParam(name = "concernSource", value = "关注方式: 1扫描二维码 2页面跳转") @RequestParam(required = true, name = "concernSource") Integer concernSource
    ) {
        try {
            if (StringUtils.isEmpty(patient)) {
                patient = getUID();
            }
            concernService.addConcern(patient, doctor, concernSource);
            return success("关注成功");
        } catch (Exception e) {
            e.printStackTrace();
            return error(-100, "关注失败");
        }
    }
    @RequestMapping(value = "/deleteConcern", method = RequestMethod.POST)
    @ApiOperation(value = "取消关注", notes = "")
    public String deleteConcern(
            @ApiParam(name = "patient", value = "患者", required = false) @RequestParam(required = false, name = "patient") String patient,
            @ApiParam(name = "doctor", value = "医生Code") @RequestParam(required = true, name = "doctor") String doctorCode
    ) {
        try {
            if (StringUtils.isEmpty(patient)) {
                patient = getUID();
            }
            concernService.deleteConcern(patient, doctorCode);
            return success("关注成功");
        } catch (Exception e) {
            e.printStackTrace();
            return error(-100, "关注失败");
        }
    }
    @RequestMapping(value = "/getConcernDoctors", method = RequestMethod.GET)
    @ApiOperation(value = "获取患者关注的医生", notes = "")
    public String getConcernDoctors(
            @ApiParam(name = "patient", value = "患者", required = false) @RequestParam(required = false, name = "patient") String patient
    ) {
        try {
            if (StringUtils.isEmpty(patient)) {
                patient = getUID();
            }
            return write(200, "查询成功", "data", concernService.listDoctorsByPatientCode(patient));
        } catch (Exception e) {
            e.printStackTrace();
            return error(-100, "查询失败");
        }
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/resources/application-dev.yml

@ -4,7 +4,7 @@ spring:
  datasource:
    wlyy:
      url: jdbc:mysql://172.19.103.77/wlyy?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true
      url: jdbc:mysql://172.19.103.77/wlyy_sr?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true
      username: root
      password: 123456
    health: