Quellcode durchsuchen

我的家人模块代码提交

liuwenbin vor 6 Jahren
Ursprung
Commit
15ab54106b
16 geänderte Dateien mit 803 neuen und 24 gelöschten Zeilen
  1. 22 0
      business/base-service/src/main/java/com/yihu/jw/message/dao/MessageDao.java
  2. 169 0
      business/base-service/src/main/java/com/yihu/jw/message/service/MessageService.java
  3. 19 21
      common/common-entity/src/main/java/com/yihu/jw/entity/base/message/BaseMessageDO.java
  4. 11 1
      common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientFamilyMemberDO.java
  5. 100 0
      common/common-entity/src/main/java/com/yihu/jw/entity/myFamily/PatientApplyLog.java
  6. 7 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/patient/PatientRequestMapping.java
  7. 5 0
      svr/svr-patient/pom.xml
  8. 11 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/dao/myFamily/PatientApplyLogDao.java
  9. 29 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/dao/myFamily/PatientFamilyMemberDao.java
  10. 41 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/myFamily/MyFamilyEndpoint.java
  11. 181 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/MyFamilyService.java
  12. 12 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/PatientApplyLogService.java
  13. 53 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/PatientFamilyMemberService.java
  14. 13 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/BasePatientService.java
  15. 123 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/util/PinYinUtil.java
  16. 7 2
      svr/svr-patient/src/main/resources/application.yml

+ 22 - 0
business/base-service/src/main/java/com/yihu/jw/message/dao/MessageDao.java

@ -0,0 +1,22 @@
package com.yihu.jw.message.dao;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * @author liuwenbin on 2018/11/28.
 */
public interface MessageDao extends PagingAndSortingRepository<BaseMessageDO, String>, JpaSpecificationExecutor<BaseMessageDO> {
    @Query("select m from BaseMessageDO m where m.platform=?1 and m.receiver=?2 and m.saasId=?3 and m.del=1 and m.msgTypeCode like ?4 order by m.readState desc")
    List<BaseMessageDO> messageList(Integer platform, String code, String saasId,String msgTypeCode);
    @Query("select count(m.*) from BaseMessageDO m where m.platform=?1 and m.receiver=?2 and m.saasId=?3 and m.del=1 and m.msgTypeCode like ?4 and m.readState=1")
    Integer countMessage(Integer platform, String code, String saasId,String msgTypeCode);
}

+ 169 - 0
business/base-service/src/main/java/com/yihu/jw/message/service/MessageService.java

@ -0,0 +1,169 @@
package com.yihu.jw.message.service;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import com.yihu.jw.message.dao.MessageDao;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.collections.map.HashedMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
 * @author liuwenbin on 2018/11/28.
 */
@Service
public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
    @Autowired
    private MessageDao messageDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 消息列表
     * @param platform
     * @param code
     * @param saasId
     * @param page
     * @param pageSize
     * @return
     */
    public List<Map<String,Object>> messageList(Integer platform,String code,String saasId,Integer page,Integer pageSize){
        if(page==null){
            page = 0;
        }else if(page > 0)
        {
            page = page -1;
        }
        if (pageSize <= 0) {
            pageSize = 10;
        }
        // 排序
        Sort sort = new Sort(Sort.Direction.DESC, "createTime");
        // 分页信息
        List<BaseMessageDO> applyList = messageDao.messageList(platform,code,saasId,"00%");
        Integer applyReadCount = messageDao.countMessage(platform,code,saasId,"00%");
        List<BaseMessageDO> systemList = messageDao.messageList(platform,code,saasId,"01%");
        Integer systemReadCount = messageDao.countMessage(platform,code,saasId,"01%");
        List<Map<String,Object>> resultList = new LinkedList<>();
        Map<String,Object> applyMap = new HashedMap();
        applyMap.put("name","应用消息");
        applyMap.put("count",applyReadCount);
        applyMap.put("message",applyList.size()>0?applyList.get(0).getMsgContent():null);
        resultList.add(applyMap);
        Map<String,Object> systemMap = new HashedMap();
        systemMap.put("name","系统消息");
        systemMap.put("count",systemReadCount);
        systemMap.put("message",systemList.size()>0?systemList.get(0).getMsgContent():null);
        resultList.add(systemMap);
        Integer unReadPageSize = pageSize;
        if(page==0){
            unReadPageSize=unReadPageSize-2;
        }
        //1、未读消息(置顶)
        List<Map<String, Object>> unReadResult = messageListSql(platform,code,saasId,0,page,unReadPageSize);
        for(Map<String, Object> one:unReadResult){
            Map<String,Object> unReadMap = new HashedMap();
            unReadMap.put("name",one.get("sender_name"));
            unReadMap.put("count",one.get("num"));
            unReadMap.put("message",one.get("msg_content"));
            resultList.add(unReadMap);
        }
        if(unReadResult.size()<unReadPageSize){
            page = messageCountSql(platform,code,saasId,1,page,pageSize);
            //2、已读消息
            List<Map<String, Object>> readResult = messageListSql(platform,code,saasId,1,page,unReadPageSize);
            for(Map<String, Object> one:readResult){
                Map<String,Object> readMap = new HashedMap();
                readMap.put("name",one.get("sender_name"));
                readMap.put("count",one.get("num"));
                readMap.put("message",one.get("msg_content"));
                resultList.add(readMap);
            }
        }
        return resultList;
    }
    public BaseMessageDO create(BaseMessageDO messageDO){
        return messageDao.save(messageDO);
    }
    private List<Map<String, Object>> messageListSql(Integer platform,String code,String saasId,Integer readState,Integer page,Integer pageSize){
        String sql =" SELECT " +
                " a.*, b.msg_content " +
                " FROM " +
                " ( " +
                "  SELECT " +
                "   m.sender, " +
                "   m.sender_name, " +
                "   count(*) as num, " +
                "   max(m.create_time) AS create_time " +
                "  FROM " +
                "   base_message m " +
                "  WHERE " +
                "   m.platform = '"+platform+"' " +
                "  AND m.receiver = '"+code+"' " +
                "  AND m.saas_id = '"+saasId+"' " +
                "  AND m.del = 1 " +
                "  AND m.read_state = "+readState+" " +
                "  GROUP BY " +
                "   m.sender, " +
                "   m.sender_name " +
                "  LIMIT "+page+", " +
                "  "+pageSize+" " +
                " ) a " +
                " LEFT JOIN base_message b ON a.sender = b.sender " +
                " AND a.create_time = b.create_time " +
                " AND b.platform = '"+platform+"' " +
                " AND b.receiver = '"+code+"' " +
                " AND b.saas_id = '"+saasId+"' " +
                " AND b.del = 1 " +
                " AND m.read_state = "+readState;
        return jdbcTemplate.queryForList(sql);
    }
    private Integer messageCountSql(Integer platform,String code,String saasId,Integer readState,Integer page,Integer originalPageSize){
        String sql ="  SELECT count(*) as num " +
                "  FROM " +
                "   base_message m " +
                "  WHERE " +
                "   m.platform = '"+platform+"' " +
                "  AND m.receiver = '"+code+"' " +
                "  AND m.saas_id = '"+saasId+"' " +
                "  AND m.del = 1 " +
                "  AND m.read_state = "+readState+" " +
                "  GROUP BY " +
                "   m.sender, " +
                "   m.sender_name " ;
        Integer count  = jdbcTemplate.queryForObject(sql,Integer.class);
        if(count<=(originalPageSize-2)){
            return page-1;
        }else{
            Integer s = (count-(originalPageSize-2))/originalPageSize;
            Integer y = (count-(originalPageSize-2))%originalPageSize;
            if(y>0){
                return page-(s+2);
            }else{
                return page-(s+1);
            }
        }
    }
}

Datei-Diff unterdrückt, da er zu groß ist
+ 19 - 21
common/common-entity/src/main/java/com/yihu/jw/entity/base/message/BaseMessageDO.java


+ 11 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientFamilyMemberDO.java

@ -15,8 +15,9 @@ public class BasePatientFamilyMemberDO extends UuidIdentityEntityWithOperator {
    private String patient;//居民code',
    private String familyMember;//家庭成员code',
    private Integer familyRelation;//家庭关系',
    private Integer familyRelation;//家庭关系关系 1配偶 2父亲 3母亲 4公公 5婆婆 6岳父 7岳母 8子女',
    private Integer isAuthorize;//是否授权0:未授权,1:已授权,默认为1',
    private Integer del;//删除标志(1正常,0删除)
    @Column(name = "patient")
    public String getPatient() {
@ -53,4 +54,13 @@ public class BasePatientFamilyMemberDO extends UuidIdentityEntityWithOperator {
    public void setIsAuthorize(Integer isAuthorize) {
        this.isAuthorize = isAuthorize;
    }
    @Column(name = "del")
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 100 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/myFamily/PatientApplyLog.java

@ -0,0 +1,100 @@
package com.yihu.jw.entity.myFamily;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * @author liuwenbin on 2018/11/30.
 */
@Entity
@Table(name = "patient_apply_for_log")
public class PatientApplyLog extends IntegerIdentityEntity {
    private String patientFamilyMemberName;//家庭成员名称
    private String patienyFamilyMemberCode;//家庭成员code
    private String qrCode;//二维码地址
    private Date failureTime;//失效时间
    private Integer status;//1、添加家人(默认),2、邀请登录,3、通过,4、拒绝
    private Integer del;//删除标志(1正常,0删除)申请人主动终止申请
    private Date createTime;//创建时间
    private String createUser;//申请人
    private String createUserName;//申请人姓名
    public String getPatientFamilyMemberName() {
        return patientFamilyMemberName;
    }
    public void setPatientFamilyMemberName(String patientFamilyMemberName) {
        this.patientFamilyMemberName = patientFamilyMemberName;
    }
    public String getPatienyFamilyMemberCode() {
        return patienyFamilyMemberCode;
    }
    public void setPatienyFamilyMemberCode(String patienyFamilyMemberCode) {
        this.patienyFamilyMemberCode = patienyFamilyMemberCode;
    }
    public String getQrCode() {
        return qrCode;
    }
    public void setQrCode(String qrCode) {
        this.qrCode = qrCode;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getFailureTime() {
        return failureTime;
    }
    public void setFailureTime(Date failureTime) {
        this.failureTime = failureTime;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
}

+ 7 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/patient/PatientRequestMapping.java

@ -23,6 +23,13 @@ public class PatientRequestMapping {
    public static class SignPackage extends Basic {
        public static final String PREFIX  = "/signPackage";
    }
    /**
     * myFamily
     */
    public static class MyFamily extends Basic {
        public static final String PREFIX  = "/myFamily";
        public static final String getMyFamilyBindingRole  = "/getMyFamilyBindingRole";
    }

+ 5 - 0
svr/svr-patient/pom.xml

@ -93,6 +93,11 @@
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-util</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>base-service</artifactId>
            <version>${parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-web</artifactId>

+ 11 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/dao/myFamily/PatientApplyLogDao.java

@ -0,0 +1,11 @@
package com.yihu.jw.patient.dao.myFamily;
import com.yihu.jw.entity.myFamily.PatientApplyLog;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * @author liuwenbin on 2018/11/30.
 */
public interface PatientApplyLogDao extends PagingAndSortingRepository<PatientApplyLog, String>, JpaSpecificationExecutor<PatientApplyLog> {
}

+ 29 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/dao/myFamily/PatientFamilyMemberDao.java

@ -0,0 +1,29 @@
package com.yihu.jw.patient.dao.myFamily;
import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * @author liuwenbin on 2018/11/27.
 */
public interface PatientFamilyMemberDao extends PagingAndSortingRepository<BasePatientFamilyMemberDO, String>, JpaSpecificationExecutor<BasePatientFamilyMemberDO> {
    @Query("select m from BasePatientFamilyMemberDO m where m.del=1 and m.patient=?1")
    List<BasePatientFamilyMemberDO> getByPatient(String patient);
    @Query("select m from BasePatientFamilyMemberDO m where m.del=1 and m.patient=?1 and m.familyRelation=?2")
    List<BasePatientFamilyMemberDO> getByPatientAndFamilyRelation(String patient,Integer familyRelation);
    @Query("select m from BasePatientFamilyMemberDO m where m.del=1 and m.familyMember=?1")
    List<BasePatientFamilyMemberDO> getByFamilyMember(String familyMember);
    @Query("select m from BasePatientFamilyMemberDO m where m.del=1 and m.familyMember=?1 and m.familyRelation=?2")
    List<BasePatientFamilyMemberDO> getByFamilyMemberAndFamilyRelation(String familyMember,Integer familyRelation);
    @Query("select m from BasePatientFamilyMemberDO m where m.del=1 and m.familyMember=?1 and m.familyRelation in (?2,?3)")
    List<BasePatientFamilyMemberDO> getByFamilyMemberAndFamilyRelation(String familyMember,Integer familyRelation1,Integer familyRelation2);
}

+ 41 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/myFamily/MyFamilyEndpoint.java

@ -0,0 +1,41 @@
package com.yihu.jw.patient.endpoint.myFamily;
import com.yihu.jw.patient.service.myFamily.MyFamilyService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.patient.PatientRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
 * @author liuwenbin on 2018/11/27.
 */
@RestController
@RequestMapping(PatientRequestMapping.MyFamily.PREFIX)
@Api(value = "居民的我的家人模块", description = "居民的我的家人模块", tags = {"居民端 - 我的家人"})
public class MyFamilyEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private MyFamilyService myFamilyService;
    @GetMapping(value = PatientRequestMapping.MyFamily.getMyFamilyBindingRole)
    @ApiOperation(value = "获取我的家人")
    public Envelop getMyFamilyBindingRole() throws Exception {
        try{
            List<Map<String,Object>> basePatients = myFamilyService.getMyFamilyBindingRole(getUID());
            return success(basePatients);
        }catch (Exception e){
            e.printStackTrace();
            return failed(e.getMessage());
        }
    }
}

+ 181 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/MyFamilyService.java

@ -0,0 +1,181 @@
package com.yihu.jw.patient.service.myFamily;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
import com.yihu.jw.entity.myFamily.PatientApplyLog;
import com.yihu.jw.message.service.MessageService;
import com.yihu.jw.patient.service.personal_Info.BasePatientService;
import org.apache.commons.collections.map.HashedMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.*;
/**
 * @author liuwenbin on 2018/11/27.
 */
@Service
public class MyFamilyService {
    @Autowired
    private PatientFamilyMemberService patientFamilyMemberService;
    @Autowired
    private BasePatientService patientService;
    @Autowired
    private MessageService messageService;
    @Value("${}")
    public List<Map<String,Object>> getMyFamilyBindingRole(String patient) throws Exception{
        //获取用户的信息,根据完善信息获取男女
        BasePatientDO patientDO = patientService.findByIdAndDel(patient);
        Integer sex = patientDO.getSex();
        LinkedList<String> role = new LinkedList<>(Arrays.asList("配偶","父亲","母亲","公公","婆婆","岳父","岳母","女婿","儿媳","子女"));
        Map<String,Map<String,Object>> map = new HashedMap();
        for(int i =0;i<role.size();i++){
            Map<String,Object> m = new HashedMap();
            m.put("name",role.get(i));
            m.put("isBinding",0);
            m.put("key",(i+1));
            map.put((i+1)+"",m);
        }
        if(sex==1){//男(自己、配偶、父亲、母亲、岳父、岳母、女婿、儿媳、子女)
            map.remove("4");//公公
            map.remove("5");//婆婆
        }else if(sex==2){//女(自己、配偶、父亲、母亲、公公、婆婆、女婿、儿媳、子女)
            map.remove("6");//岳父
            map.remove("7");//岳母
        }
        List<BasePatientFamilyMemberDO> list = patientFamilyMemberService.getByPatientAndFamilyRelation(patient,null);
        list.addAll(patientFamilyMemberService.getByFamilyMemberAndRelation(patient,null));
        for(BasePatientFamilyMemberDO one:list){
            Integer relation = one.getFamilyRelation();
            if(one.getFamilyMember().equals(patient)){//需要关系转换
                BasePatientDO p = patientService.findByIdAndDel(patient);
                relation = familyRelationTrans(one.getFamilyRelation(),p.getSex());
            }
            if(relation==10){continue;}
            Map<String,Object> relationMap = map.get(relation.toString());
            relationMap.put("isBinding",1);
        }
        List<BasePatientFamilyMemberDO> childrenList = patientFamilyMemberService.getByPatientAndFamilyRelation(patient,10);
        childrenList.addAll(patientFamilyMemberService.getByFamilyMemberAndRelation(patient,2,3));
        if(childrenList.size()==2){
            map.get("10").put("isBinding",1);
        }
        List<Map<String,Object>> resultList = new ArrayList();
        Iterator iter = map.entrySet().iterator(); // 获得map的Iterator
        while (iter.hasNext()) {
            String key = iter.next().toString();
            resultList.add(map.get(key));
        }
        return resultList;
    }
    public void bindingMyFamily(String saasId,String patient,String familyMobile,Integer platform) throws Exception{
        //1、检验手机号码是否有存在账号,
        //2、没有存在账号的,预注册一个账号,调用预注册接口
        BasePatientDO familyPatient = null;
        //3、生成申请绑定的记录,二维码
        PatientApplyLog patientApplyLog = new PatientApplyLog();
        patientApplyLog.setPatientFamilyMemberName(familyPatient.getName());
        patientApplyLog.setPatienyFamilyMemberCode(familyPatient.getId());
        String qrCode = "";
        patientApplyLog.setQrCode(qrCode);
//        Integer failurTime =
//        patientApplyLog.setFailureTime();
//        patientApplyLog.setDel(1);
//        patientApplyLog.setCreateTime(new Date());
//        patientApplyLog.setCreateUser();
//        patientApplyLog.setCreateUserName();
        //4、发送绑定家人的系统消息
        BaseMessageDO messageDO = new BaseMessageDO();
        messageDO.setSaasId(saasId);
        messageDO.setReceiver(familyPatient.getId());
        messageDO.setReceiverName(familyPatient.getName());
        messageDO.setSender(patient);
        BasePatientDO patientDO = patientService.findByIdAndDel(patient);
        messageDO.setSenderName(patientDO.getName());
        messageDO.setSenderPhoto(patientDO.getPhoto());
        messageDO.setTitle("家人绑定");
        messageDO.setMsgDigest("");
        messageDO.setMsgContent("");
        messageDO.setMsgTypeCode("010801");
        messageDO.setMsgTypeName("");
        messageDO.setPlatform(platform);
        messageDO.setReadState(0);
        messageDO.setReadonly(0);
        messageDO.setDel("1");
        messageDO.setCreateTime(new Date());
        messageService.save(messageDO);
    }
    /**
     * 家庭关系转换
     * @param familyRelation
     * @param sex 1男,2女
     */
    public Integer familyRelationTrans(Integer familyRelation,Integer sex){
        //1"配偶",2"父亲",3"母亲",4"公公",5"婆婆",6"岳父",7"岳母",8"女婿",9"儿媳",10"子女"
        Integer relationTrans = null;
        switch (familyRelation){
            case 1 :relationTrans = 1;break;
            case 2 :relationTrans = 10;break;
            case 3 :relationTrans = 10;break;
            case 4 :relationTrans = 9;break;
            case 5 :relationTrans = 9;break;
            case 6 :relationTrans = 8;break;
            case 7 :relationTrans = 8;break;
            case 8 :{
                if(sex==1){
                    relationTrans = 6;break;
                }else if(sex==2){
                    relationTrans = 7;break;
                }else{
                    break;
                }
            }
            case 9 : {
                if (sex == 1) {
                    relationTrans = 4;
                    break;
                } else if (sex == 2) {
                    relationTrans = 5;
                    break;
                } else {
                    break;
                }
            }
            case 10:{
                if (sex == 1) {
                    relationTrans = 2;
                    break;
                } else if (sex == 2) {
                    relationTrans = 3;
                    break;
                } else {
                    break;
                }
            }
        }
        return relationTrans;
    }
}

+ 12 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/PatientApplyLogService.java

@ -0,0 +1,12 @@
package com.yihu.jw.patient.service.myFamily;
import com.yihu.jw.entity.myFamily.PatientApplyLog;
import com.yihu.jw.patient.dao.myFamily.PatientApplyLogDao;
import com.yihu.mysql.query.BaseJpaService;
/**
 * @author liuwenbin on 2018/11/30.
 */
public class PatientApplyLogService extends BaseJpaService<PatientApplyLog, PatientApplyLogDao> {
}

+ 53 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/PatientFamilyMemberService.java

@ -0,0 +1,53 @@
package com.yihu.jw.patient.service.myFamily;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
import com.yihu.jw.patient.dao.myFamily.PatientFamilyMemberDao;
import com.yihu.jw.patient.dao.personal_info.BasePatientDao;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @author liuwenbin on 2018/11/27.
 */
@Service
public class PatientFamilyMemberService extends BaseJpaService<BasePatientDO, BasePatientDao> {
    @Autowired
    private PatientFamilyMemberDao patientFamilyMemberDao;
    /**
     * 获取已绑定家人的信息
     * @param patient
     */
    public List<BasePatientFamilyMemberDO> getByPatientAndFamilyRelation(String patient,Integer familyRelation){
        List<BasePatientFamilyMemberDO> list = null;
        if(familyRelation==null){
            list = patientFamilyMemberDao.getByPatient(patient);
        }else{
            list = patientFamilyMemberDao.getByPatientAndFamilyRelation(patient,familyRelation);
        }
        return list;
    }
    public List<BasePatientFamilyMemberDO> getByFamilyMemberAndRelation(String familyMember,Integer familyRelation){
        List<BasePatientFamilyMemberDO> list = null;
        if(familyRelation==null){
            list = patientFamilyMemberDao.getByFamilyMember(familyMember);
        }else{
            list = patientFamilyMemberDao.getByFamilyMemberAndFamilyRelation(familyMember,familyRelation);
        }
        return list;
    }
    public List<BasePatientFamilyMemberDO> getByFamilyMemberAndRelation(String familyMember,Integer familyRelation1,Integer familyRelation2){
        List<BasePatientFamilyMemberDO> list = patientFamilyMemberDao.getByFamilyMemberAndFamilyRelation(familyMember,familyRelation1,familyRelation2);
        return list;
    }
}

+ 13 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/BasePatientService.java

@ -155,4 +155,17 @@ public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatien
        }
        return ConstantUtils.SUCCESS;
    }
    /**
     * 根据patient的id获取居民信息
     * @param patient
     * @return
     */
    public BasePatientDO findByIdAndDel(String patient) throws Exception{
        BasePatientDO basePatientDO = basePatientDao.findByIdAndDel(patient,"1");
        if(basePatientDO==null){
            throw new Exception("not patient");
        }
        return basePatientDO;
    }
}

+ 123 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/util/PinYinUtil.java

@ -0,0 +1,123 @@
package com.yihu.jw.patient.util;
import com.google.common.collect.Lists;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class PinYinUtil {
	/** 
     * 获取汉字串拼音首字母,英文字符不变 
     * @param chinese 汉字串 
     * @return 汉语拼音首字母 
     */ 
    public static String getFirstSpell(String chinese) { 
        StringBuffer pybf = new StringBuffer();
        char[] arr = chinese.toCharArray();
        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            for (int i = 0; i < arr.length; i++) {
                    if (arr[i] > 128) {
                            try {
                                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
                                    if (temp != null) {
                                            pybf.append(temp[0].charAt(0));
                                    }
                            } catch (BadHanyuPinyinOutputFormatCombination e) {
                                    e.printStackTrace();
                            }
                    } else {
                            pybf.append(arr[i]);
                    }
            }
            return pybf.toString().replaceAll("\\W", "").trim();
    } 
    /** 
     * 获取汉字串拼音,英文字符不变 
     * @param chinese 汉字串 
     * @return 汉语拼音 
     */ 
    public static String getFullSpell(String chinese) { 
            StringBuffer pybf = new StringBuffer(); 
            char[] arr = chinese.toCharArray(); 
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); 
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); 
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); 
            for (int i = 0; i < arr.length; i++) { 
                    if (arr[i] > 128) { 
                            try { 
                                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]); 
                            } catch (BadHanyuPinyinOutputFormatCombination e) { 
                                    e.printStackTrace(); 
                            } 
                    } else { 
                            pybf.append(arr[i]); 
                    } 
            } 
            return pybf.toString(); 
    }
    /**
     * 字符串按拼音排序
     * @param list
     * @return
     */
    public static Map<String,List<Object>> pingYinSort(List<String> list){
            Map<String,List<Object>>  map =  new LinkedHashMap<>();
            String[] alphatables = {"a", "b", "c", "d", "e", "f", "g", "h", "i",
                    "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
            for (String alpha : alphatables){
                    for(String one:list){
                            String firstSpell = PinYinUtil.getFirstSpell(one).substring(0,1);
                            if (alpha.equals(firstSpell)){
                                    List<Object> resultList = null;
                                    if(map.get(alpha)==null){
                                            resultList = new ArrayList();
                                    }else{
                                            resultList = map.get(alpha);
                                    }
                                    resultList.add(one);
                                    map.put(alpha,resultList);
                            }
                    }
            }
            return map;
    }
    /**
    * 字符串按拼音排序
    * @param
    * @return
    */
    public static Map<String,Object> pingYinSort(Map<String, Map<String,Object>> result){
            Map<String,Object>  map =  new LinkedHashMap <>();
            String[] alphatables = {"a", "b", "c", "d", "e", "f", "g", "h", "i",
                    "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
            if (result.size() > 0) {
                    List<Map<String,Object>> list = Lists.newArrayList(result.values());
                    for (String alpha : alphatables){
                            List<Map<String,Object>> resultList = new ArrayList<>();
                            for (Map<String,Object> one : list){
                                    String name = String.valueOf(one.get("name"));
                                    String firstSpell = PinYinUtil.getFirstSpell(name).substring(0,1);
                                    if (alpha.equals(firstSpell)){
                                            resultList.add(one);
                                            map.put(alpha,resultList);
                                    }
                            }
                    }
                    return map;
            } else {
                    return map;
            }
    }
}

+ 7 - 2
svr/svr-patient/src/main/resources/application.yml

@ -102,6 +102,8 @@ fastDFS:
# 短信发送地址
jw:
  smsUrl: http://svr-base:10020/sms_gateway/send
myFamily:
  qrCodeFailurTime: 2
---
spring:
  profiles: jwtest
@ -129,7 +131,8 @@ spring:
    port: 6379 # Redis server port.
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
myFamily:
  qrCodeFailurTime: 2
---
spring:
  profiles: prod
@ -153,4 +156,6 @@ spring:
    host: 172.19.103.88 # Redis server host.
    port: 6379 # Redis server port.
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
  fastdfs_file_url: http://172.19.103.54:80/
myFamily:
  qrCodeFailurTime: 2