Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

LiTaohong 6 years ago
parent
commit
04b3bb9c3a

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

@ -120,7 +120,7 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
    public List<Map<String, Object>> applyMessageList(String patient, String msgTypeCode){
    public List<Map<String, Object>> applyMessageList(String patient, String msgTypeCode){
        String sql = "select m.* from base_message m join patient_apply_for_log l on m.relation_data=l.id where  m.msg_type_code='"+msgTypeCode+"' and m.receiver='"+patient+"'";
        String sql = "select m.* from base_message m join patient_apply_for_log l on m.relation_data=l.id where  m.read_state=0 and m.msg_type_code='"+msgTypeCode+"' and m.receiver='"+patient+"'";
        return jdbcTemplate.queryForList(sql);
        return jdbcTemplate.queryForList(sql);
//        return messageDao.applyMessageList(patient,failureTime,msgTypeCode);
//        return messageDao.applyMessageList(patient,failureTime,msgTypeCode);
    }
    }

+ 23 - 79
common/common-entity/src/main/java/com/yihu/jw/entity/base/login/BaseLoginLogDO.java

@ -1,6 +1,7 @@
package com.yihu.jw.entity.base.login;// default package
package com.yihu.jw.entity.base.login;// default package
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.*;
import javax.persistence.*;
@ -13,40 +14,13 @@ import java.util.Date;
@Table(name = "base_login_log")
@Table(name = "base_login_log")
public class BaseLoginLogDO extends UuidIdentityEntity implements java.io.Serializable {
public class BaseLoginLogDO extends UuidIdentityEntity implements java.io.Serializable {
	private String loginType;//'1 短信登录  2 密码登录'
	private String userId;//'登录用户主键 患者code或者医生code'
	private String userId;//'登录用户主键 患者code或者医生code'
	private String saasId;//'saas配置id'
	private String userType;//'1 患者 2医生 '
	private Date createTime;
	private Date createTime;
	private Integer tokenId;//'tokenid'
	private String type;//'1 成功 2失败'
	private String errorMessage;//'错误信息'
	private String phone;//'电话号码'
	private String userAgent;//wlyyusersimple json串
	private String openid;//微信openid
	private String loginType;
	// Constructors
	/** default constructor */
	public BaseLoginLogDO() {
	}
	/** minimal constructor */
	public BaseLoginLogDO(Integer id, Date createTime) {
		this.createTime = createTime;
	}
	@Column(name = "login_type", length = 2)
	public String getLoginType() {
		return this.loginType;
	}
	public void setLoginType(String loginType) {
		this.loginType = loginType;
	}
	@Column(name = "user_id", length = 100)
	@Column(name="user_id")
	public String getUserId() {
	public String getUserId() {
		return userId;
		return userId;
	}
	}
@ -55,70 +29,40 @@ public class BaseLoginLogDO extends UuidIdentityEntity implements java.io.Serial
		this.userId = userId;
		this.userId = userId;
	}
	}
	@Column(name = "saas_id", length = 100)
	public String getSaasId() {
		return this.saasId;
	}
	public void setSaasId(String saasId) {
		this.saasId = saasId;
	}
	@Column(name = "user_type", length = 2)
	public String getUserType() {
		return this.userType;
	}
	public void setUserType(String userType) {
		this.userType = userType;
	}
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "create_time", nullable = false, length = 0)
	@Column(name="create_time")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
	public Date getCreateTime() {
	public Date getCreateTime() {
		return this.createTime;
		return createTime;
	}
	}
	public void setCreateTime(Date createTime) {
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
		this.createTime = createTime;
	}
	}
	@Column(name = "token_id")
	public Integer getTokenId() {
		return this.tokenId;
	@Column(name="user_agent")
	public String getUserAgent() {
		return userAgent;
	}
	}
	public void setTokenId(Integer tokenId) {
		this.tokenId = tokenId;
	public void setUserAgent(String userAgent) {
		this.userAgent = userAgent;
	}
	}
	@Column(name = "type", length = 1)
	public String getType() {
		return this.type;
	@Column(name="openid")
	public String getOpenid() {
		return openid;
	}
	}
	public void setType(String type) {
		this.type = type;
	public void setOpenid(String openid) {
		this.openid = openid;
	}
	}
	@Column(name = "error_message", length = 1000)
	public String getErrorMessage() {
		return this.errorMessage;
	}
	public void setErrorMessage(String errorMessage) {
		this.errorMessage = errorMessage;
	}
	@Column(name = "phone", length = 20)
	public String getPhone() {
		return this.phone;
	@Column(name="login_type")
	public String getLoginType() {
		return loginType;
	}
	}
	public void setPhone(String phone) {
		this.phone = phone;
	public void setLoginType(String loginType) {
		this.loginType = loginType;
	}
	}
}
}

+ 0 - 1
gateway/ag-basic/src/main/java/com/yihu/AgBasicServer.java

@ -23,5 +23,4 @@ public class AgBasicServer extends SpringBootServletInitializer {
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(AgBasicServer.class);
        return application.sources(AgBasicServer.class);
    }
    }
}
}

+ 24 - 0
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/config/TomcatConfig.java

@ -0,0 +1,24 @@
package com.yihu.jw.gateway.config;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.MultipartConfigElement;
/**
 * Created by Trick on 2018/12/18.
 */
@Configuration
public class TomcatConfig {
    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        //单个文件最大
        factory.setMaxFileSize("10240KB"); //KB,MB
        /// 设置总上传数据总大小
        factory.setMaxRequestSize("102400KB");
        return factory.createMultipartConfig();
    }
}

+ 9 - 0
server/svr-authentication/pom.xml

@ -109,6 +109,15 @@
            <groupId>com.yihu.jw</groupId>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model</artifactId>
            <artifactId>common-rest-model</artifactId>
        </dependency>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-entity</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>mysql-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
    </dependencies>
    </dependencies>

+ 15 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/login/dao/BaseLoginLogDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.security.login.dao;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseLoginLogDao extends PagingAndSortingRepository<BaseLoginLogDO, String>, JpaSpecificationExecutor<BaseLoginLogDO> {
    @Query("from BaseLoginLogDO l where l.openid=?1 order by l.createTime desc")
    List<BaseLoginLogDO> findByOpenId(String openid);
}

+ 32 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/login/service/BaseLoginLogService.java

@ -0,0 +1,32 @@
package com.yihu.jw.security.login.service;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.security.login.dao.BaseLoginLogDao;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
@Service
public class BaseLoginLogService<T, R extends CrudRepository> extends BaseJpaService<BaseLoginLogDO, BaseLoginLogDao> {
    @Autowired
    private BaseLoginLogDao baseLoginLogDao;
    /**
     * 根据openid 获取最新的一条数据
     * @param openid
     * @return
     */
    public BaseLoginLogDO findByOpenId(String openid) {
        List<BaseLoginLogDO> loginLogs = baseLoginLogDao.findByOpenId(openid);
        if(!CollectionUtils.isEmpty(loginLogs)){
            return loginLogs.get(0);
        }
        return null;
    }
}

+ 1 - 1
server/svr-authentication/src/main/java/com/yihu/jw/security/model/WlyyUserSimple.java

@ -23,7 +23,7 @@ WlyyUserSimple implements Serializable {
        female
        female
    }
    }
    private String id;
    private String id; //对应患者,医生等表中的id字段
    //用户名
    //用户名
    private String username;
    private String username;
    //姓名
    //姓名

+ 44 - 3
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -1,8 +1,10 @@
package com.yihu.jw.security.oauth2.provider.endpoint;
package com.yihu.jw.security.oauth2.provider.endpoint;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.security.core.userdetails.jdbc.WlyyUserDetailsService;
import com.yihu.jw.security.core.userdetails.jdbc.WlyyUserDetailsService;
import com.yihu.jw.security.login.service.BaseLoginLogService;
import com.yihu.jw.security.model.*;
import com.yihu.jw.security.model.*;
import com.yihu.jw.security.oauth2.core.redis.WlyyRedisVerifyCodeService;
import com.yihu.jw.security.oauth2.core.redis.WlyyRedisVerifyCodeService;
import com.yihu.jw.security.oauth2.provider.WlyyTokenGranter;
import com.yihu.jw.security.oauth2.provider.WlyyTokenGranter;
@ -85,6 +87,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    private WlyyRedisVerifyCodeService wlyyRedisVerifyCodeService;
    private WlyyRedisVerifyCodeService wlyyRedisVerifyCodeService;
    @Autowired
    @Autowired
    private StringRedisTemplate redisTemplate;
    private StringRedisTemplate redisTemplate;
    @Autowired
    private BaseLoginLogService baseLoginLogService;
    @PostConstruct
    @PostConstruct
    private void init() {
    private void init() {
@ -158,11 +162,12 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        wlyyUserSimple.setRefreshToken(token.getRefreshToken().getValue());
        wlyyUserSimple.setRefreshToken(token.getRefreshToken().getValue());
        wlyyUserSimple.setUser(parameters.get("username"));
        wlyyUserSimple.setUser(parameters.get("username"));
        wlyyUserSimple.setState(parameters.get("state"));
        wlyyUserSimple.setState(parameters.get("state"));
        String loginType = parameters.get("login_type");
        String loginType = parameters.get("login_type");
        String openid = parameters.get("openid");
        String openid = parameters.get("openid");
        //更新患者openId
        //更新患者openId
        if(!StringUtils.isEmpty(openid) && !"undefined".equalsIgnoreCase(openid) && "3".equalsIgnoreCase(loginType)){
        BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO();
        if(!StringUtils.isEmpty(openid) && !"undefined".equalsIgnoreCase(openid) && "3".equals(loginType)){
            baseLoginLogDO.setOpenid(openid);
            userDetailsService.updateOpenId(openid,wlyyUserSimple.getId());
            userDetailsService.updateOpenId(openid,wlyyUserSimple.getId());
        }
        }
        if (parameters.get("password") != null) {
        if (parameters.get("password") != null) {
@ -170,6 +175,14 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
            userDetailsService.addFailureCount(username,0);
            userDetailsService.addFailureCount(username,0);
        }
        }
        userDetailsService.setRolePhth(loginType,token,wlyyUserSimple.getId(),redisTemplate);
        userDetailsService.setRolePhth(loginType,token,wlyyUserSimple.getId(),redisTemplate);
        baseLoginLogDO.setUserId(wlyyUserSimple.getId());
        baseLoginLogDO.setCreateTime(new Date());
        String userAgent = JSONObject.toJSONString(wlyyUserSimple);
        baseLoginLogDO.setUserAgent(userAgent);
        baseLoginLogDO.setLoginType(loginType);
        baseLoginLogService.save(baseLoginLogDO);
        return getResponse(wlyyUserSimple);
        return getResponse(wlyyUserSimple);
    }
    }
@ -214,6 +227,24 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        return getResponse(wlyyUserSimple);
        return getResponse(wlyyUserSimple);
    }
    }
    /**
     *
     * @param openid
     * @return
     */
    @RequestMapping(value = "/oauth/getByOpenId", method = RequestMethod.POST)
    public ResponseEntity<Oauth2Envelop<WlyyUserSimple>> getByOpenId( @RequestParam(value = "openid", required = true) String openid) {
        BaseLoginLogDO loginLog = baseLoginLogService.findByOpenId(openid);
        if(loginLog== null){
            throw new UsernameNotFoundException("can't find login log by openod: "+openid);
        }
        String userAgent = loginLog.getUserAgent();
        WlyyUserSimple wlyyUserSimple = JSONObject.parseObject(userAgent, WlyyUserSimple.class);
//        String accessToken = wlyyUserSimple.getAccessToken();
//        OAuth2AccessToken oAuth2AccessToken = tokenStore.readAccessToken(accessToken);
        return getResponse(wlyyUserSimple);
    }
    /**
    /**
     * 登出
     * 登出
     * @param parameters
     * @param parameters
@ -466,7 +497,17 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
            String loginType = parameters.get("login_type");
            String loginType = parameters.get("login_type");
            userDetailsService.setRolePhth(loginType,token,wlyyUserSimple.getId(),redisTemplate);
            userDetailsService.setRolePhth(loginType,token,wlyyUserSimple.getId(),redisTemplate);
            BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO();
            baseLoginLogDO.setUserId(wlyyUserSimple.getId());
            baseLoginLogDO.setCreateTime(new Date());
            String userAgent = JSONObject.toJSONString(wlyyUserSimple);
            baseLoginLogDO.setUserAgent(userAgent);
            baseLoginLogDO.setLoginType(loginType);
            String openid = parameters.get("openid");
            if(!StringUtils.isEmpty(openid) && "undefined".equalsIgnoreCase(openid)){
                baseLoginLogDO.setOpenid(openid);
            }
            baseLoginLogService.save(baseLoginLogDO);
            return getResponse(wlyyUserSimple);
            return getResponse(wlyyUserSimple);
        }
        }
        return null;
        return null;

+ 49 - 49
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/patient/PatientFamilyMemberEndpoint.java

@ -1,49 +1,49 @@
package com.yihu.jw.base.endpoint.patient;
import com.yihu.jw.base.service.patient.PatientFamilyMemberService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
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.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by Trick on 2018/9/3.
 */
@RestController
@RequestMapping(value = BaseRequestMapping.PatientMember.PREFIX)
@Api(value = "家庭成员", description = "家庭成员管理", tags = {"wlyy基础服务 - 家庭成员管理"})
public class PatientFamilyMemberEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private PatientFamilyMemberService patientMemberService;
    @PostMapping(value = BaseRequestMapping.PatientMember.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建")
    public Envelop createFamilyMember(@ApiParam(name = "patient", value = "用户id", required = true)
                                      @RequestParam(value = "patient")String patient,
                                      @ApiParam(name = "member", value = "家庭成员id", required = true)
                                      @RequestParam(value = "member")String member,
                                      @ApiParam(name = "relation", value = "关系 1父亲 2母亲 3老公 4老婆 5儿子 6女儿 7其他", required = true)
                                      @RequestParam(value = "relation")Integer relation)throws Exception{
        patientMemberService.createFamilyMember(patient,member,relation);
        return success("success");
    }
    @PostMapping(value = BaseRequestMapping.PatientMember.DELETE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "删除")
    public Envelop delFamilyMember(@ApiParam(name = "patient", value = "用户id", required = true)
                                      @RequestParam(value = "patient")String patient,
                                      @ApiParam(name = "member", value = "家庭成员id", required = true)
                                      @RequestParam(value = "member")String member)throws Exception{
        patientMemberService.delFamilyMember(patient,member);
        return success("success");
    }
}
//package com.yihu.jw.base.endpoint.patient;
//
//import com.yihu.jw.base.service.patient.PatientFamilyMemberService;
//import com.yihu.jw.restmodel.web.Envelop;
//import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
//import com.yihu.jw.rm.base.BaseRequestMapping;
//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.http.MediaType;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.RestController;
//
///**
// * Created by Trick on 2018/9/3.
// */
//@RestController
//@RequestMapping(value = BaseRequestMapping.PatientMember.PREFIX)
//@Api(value = "家庭成员", description = "家庭成员管理", tags = {"wlyy基础服务 - 家庭成员管理"})
//public class PatientFamilyMemberEndpoint extends EnvelopRestEndpoint {
//
//    @Autowired
//    private PatientFamilyMemberService patientMemberService;
//
//    @PostMapping(value = BaseRequestMapping.PatientMember.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "创建")
//    public Envelop createFamilyMember(@ApiParam(name = "patient", value = "用户id", required = true)
//                                      @RequestParam(value = "patient")String patient,
//                                      @ApiParam(name = "member", value = "家庭成员id", required = true)
//                                      @RequestParam(value = "member")String member,
//                                      @ApiParam(name = "relation", value = "关系 1父亲 2母亲 3老公 4老婆 5儿子 6女儿 7其他", required = true)
//                                      @RequestParam(value = "relation")Integer relation)throws Exception{
//        patientMemberService.createFamilyMember(patient,member,relation);
//        return success("success");
//    }
//
//    @PostMapping(value = BaseRequestMapping.PatientMember.DELETE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "删除")
//    public Envelop delFamilyMember(@ApiParam(name = "patient", value = "用户id", required = true)
//                                      @RequestParam(value = "patient")String patient,
//                                      @ApiParam(name = "member", value = "家庭成员id", required = true)
//                                      @RequestParam(value = "member")String member)throws Exception{
//        patientMemberService.delFamilyMember(patient,member);
//        return success("success");
//    }
//}

+ 121 - 121
svr/svr-base/src/main/java/com/yihu/jw/base/service/patient/PatientFamilyMemberService.java

@ -1,121 +1,121 @@
package com.yihu.jw.base.service.patient;
import com.yihu.jw.base.dao.patient.BasePatientFamilyMemberDao;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.util.idcard.IdCardUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * Created by Trick on 2018/8/31.
 */
@Service
@Transactional
public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamilyMemberDO,BasePatientFamilyMemberDao> {
    @Autowired
    private BasePatientFamilyMemberDao familyMemberDao;
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public String createFamilyMember(String patient,String member,Integer relation)throws Exception{
        BasePatientDO pDo = basePatientDao.findByIdAndDel(patient,"1");
        BasePatientDO mDo = basePatientDao.findByIdAndDel(patient,"1");
        BasePatientFamilyMemberDO family1 = new BasePatientFamilyMemberDO();
        //添加正向关系
        family1.setPatient(patient);
        family1.setFamilyMember(member);
        family1.setFamilyRelation(relation);
        //默认添加已经授权记录,用户同意授权之后调用此接口
        family1.setIsAuthorize(1);
        //添加反向关系
        BasePatientFamilyMemberDO family2 = new BasePatientFamilyMemberDO();
        family1.setPatient(patient);
        family1.setFamilyMember(member);
        family1.setFamilyRelation(familyRelationTrans(mDo,relation));
        //默认添加已经授权记录,用户同意授权之后调用此接口
        family1.setIsAuthorize(1);
        return "1";
    }
    public String delFamilyMember(String patient,String member)throws Exception{
        BasePatientFamilyMemberDO family1 = familyMemberDao.findByPatientAndFamilyMember(patient,member);
        BasePatientFamilyMemberDO family2 = familyMemberDao.findByPatientAndFamilyMember(member,patient);
        familyMemberDao.delete(family1);
        familyMemberDao.delete(family2);
        return "1";
    }
    /**
     * 家庭关系转换
     *
     * @param patient  居民
     * @param relation 关系 1父亲 2母亲 3老公 4老婆 5儿子 6女儿 7其他
     * @return
     */
    public int familyRelationTrans(BasePatientDO patient, Integer relation) throws Exception {
        int relationTrans = 0;
        switch (relation) {
            case 1:
            case 2:
                if (patient.getSex() == 1) {
                    relationTrans = 5;
                } else if (patient.getSex() == 2) {
                    relationTrans = 6;
                } else {
                    relationTrans = 0;
                }
                if (relationTrans == 0) {
                    if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("1")) {
                        relationTrans = 6;
                    } else if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("2")) {
                        relationTrans = 5;
                    }
                }
                break;
            case 3:
                relationTrans = 4;
                break;
            case 4:
                relationTrans = 3;
                break;
            case 5:
            case 6:
                if (patient.getSex() == 1) {
                    relationTrans = 1;
                } else if (patient.getSex() == 2) {
                    relationTrans = 2;
                } else {
                    relationTrans = 0;
                }
                if (relationTrans == 0) {
                    if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("1")) {
                        relationTrans = 2;
                    } else if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("2")) {
                        relationTrans = 1;
                    }
                }
                break;
        }
        return relationTrans;
    }
}
//package com.yihu.jw.base.service.patient;
//
//import com.yihu.jw.base.dao.patient.BasePatientFamilyMemberDao;
//import com.yihu.jw.entity.base.patient.BasePatientDO;
//import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
//import com.yihu.jw.patient.dao.BasePatientDao;
//import com.yihu.jw.restmodel.web.Envelop;
//import com.yihu.jw.util.idcard.IdCardUtil;
//import com.yihu.mysql.query.BaseJpaService;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.jdbc.core.JdbcTemplate;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
///**
// * Created by Trick on 2018/8/31.
// */
//@Service
//@Transactional
//public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamilyMemberDO,BasePatientFamilyMemberDao> {
//
//    @Autowired
//    private BasePatientFamilyMemberDao familyMemberDao;
//
//    @Autowired
//    private BasePatientDao basePatientDao;
//
//    @Autowired
//    private JdbcTemplate jdbcTemplate;
//
//    public String createFamilyMember(String patient,String member,Integer relation)throws Exception{
//
//        BasePatientDO pDo = basePatientDao.findByIdAndDel(patient,"1");
//        BasePatientDO mDo = basePatientDao.findByIdAndDel(patient,"1");
//
//        BasePatientFamilyMemberDO family1 = new BasePatientFamilyMemberDO();
//
//        //添加正向关系
//        family1.setPatient(patient);
//        family1.setFamilyMember(member);
//        family1.setFamilyRelation(relation);
//        //默认添加已经授权记录,用户同意授权之后调用此接口
//        family1.setIsAuthorize(1);
//
//        //添加反向关系
//        BasePatientFamilyMemberDO family2 = new BasePatientFamilyMemberDO();
//
//        family1.setPatient(patient);
//        family1.setFamilyMember(member);
//        family1.setFamilyRelation(familyRelationTrans(mDo,relation));
//        //默认添加已经授权记录,用户同意授权之后调用此接口
//        family1.setIsAuthorize(1);
//
//        return "1";
//    }
//
//    public String delFamilyMember(String patient,String member)throws Exception{
//        BasePatientFamilyMemberDO family1 = familyMemberDao.findByPatientAndFamilyMember(patient,member);
//        BasePatientFamilyMemberDO family2 = familyMemberDao.findByPatientAndFamilyMember(member,patient);
//        familyMemberDao.delete(family1);
//        familyMemberDao.delete(family2);
//        return "1";
//    }
//
//    /**
//     * 家庭关系转换
//     *
//     * @param patient  居民
//     * @param relation 关系 1父亲 2母亲 3老公 4老婆 5儿子 6女儿 7其他
//     * @return
//     */
//    public int familyRelationTrans(BasePatientDO patient, Integer relation) throws Exception {
//        int relationTrans = 0;
//
//        switch (relation) {
//            case 1:
//            case 2:
//                if (patient.getSex() == 1) {
//                    relationTrans = 5;
//                } else if (patient.getSex() == 2) {
//                    relationTrans = 6;
//                } else {
//                    relationTrans = 0;
//                }
//                if (relationTrans == 0) {
//                    if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("1")) {
//                        relationTrans = 6;
//                    } else if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("2")) {
//                        relationTrans = 5;
//                    }
//                }
//                break;
//            case 3:
//                relationTrans = 4;
//                break;
//            case 4:
//                relationTrans = 3;
//                break;
//            case 5:
//            case 6:
//                if (patient.getSex() == 1) {
//                    relationTrans = 1;
//                } else if (patient.getSex() == 2) {
//                    relationTrans = 2;
//                } else {
//                    relationTrans = 0;
//                }
//                if (relationTrans == 0) {
//                    if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("1")) {
//                        relationTrans = 2;
//                    } else if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("2")) {
//                        relationTrans = 1;
//                    }
//                }
//                break;
//        }
//
//        return relationTrans;
//    }
//}

+ 5 - 2
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/MyFamilyService.java

@ -482,7 +482,7 @@ public class MyFamilyService {
        List<Map<String,Object>> resultList = new LinkedList<>();
        List<Map<String,Object>> resultList = new LinkedList<>();
        //已绑定的
        //已绑定的
        List<BasePatientFamilyMemberDO> bindList = patientFamilyMemberService.getByPatientAndFamilyMember(patient);
        List<BasePatientFamilyMemberDO> bindList = patientFamilyMemberService.getByPatientAndFamilyMember(patient);
        BasePatientDO patientDO = patientService.findByIdAndDel(patient);//绑定人
//        BasePatientDO patientDO = patientService.findByIdAndDel(patient);//绑定人
        for(BasePatientFamilyMemberDO one:bindList){
        for(BasePatientFamilyMemberDO one:bindList){
            Map<String,Object> map = new HashedMap();
            Map<String,Object> map = new HashedMap();
            BasePatientDO familyMember = patientService.findByIdAndDel(one.getFamilyMember());
            BasePatientDO familyMember = patientService.findByIdAndDel(one.getFamilyMember());
@ -491,6 +491,7 @@ public class MyFamilyService {
            map.put("nonage",this.nonageByIdcard(familyMember.getIdcard()));//1成年,2未成年
            map.put("nonage",this.nonageByIdcard(familyMember.getIdcard()));//1成年,2未成年
            map.put("name",familyMember.getName());//姓名
            map.put("name",familyMember.getName());//姓名
            map.put("roleName",role.get(one.getFamilyRelation()-1));//角色名称
            map.put("roleName",role.get(one.getFamilyRelation()-1));//角色名称
            map.put("role",one.getFamilyRelation());//角色
            map.put("mobile",familyMember.getMobile());//手机号码
            map.put("mobile",familyMember.getMobile());//手机号码
            map.put("isAuthorize",one.getIsAuthorize());//0:未授权,1:已授权
            map.put("isAuthorize",one.getIsAuthorize());//0:未授权,1:已授权
            map.put("familyMemberId",one.getId());
            map.put("familyMemberId",one.getId());
@ -509,6 +510,7 @@ public class MyFamilyService {
            map.put("nonage",this.nonageByIdcard(familyMember.getIdcard()));//1成年,2未成年
            map.put("nonage",this.nonageByIdcard(familyMember.getIdcard()));//1成年,2未成年
            map.put("name",familyMember.getName());//姓名
            map.put("name",familyMember.getName());//姓名
            map.put("roleName",role.get(Integer.valueOf(one.get("family_bind_role")+"")-1));//角色名称
            map.put("roleName",role.get(Integer.valueOf(one.get("family_bind_role")+"")-1));//角色名称
            map.put("role",Integer.valueOf(one.get("family_bind_role")+""));//角色
            map.put("mobile",familyMember.getMobile());//手机号码
            map.put("mobile",familyMember.getMobile());//手机号码
            //有效期
            //有效期
            Date failurTime = (Date)one.get("failure_time");
            Date failurTime = (Date)one.get("failure_time");
@ -533,6 +535,7 @@ public class MyFamilyService {
            map.put("photo",familyMember.getPhoto());//头像
            map.put("photo",familyMember.getPhoto());//头像
            map.put("name",familyMember.getName());//姓名
            map.put("name",familyMember.getName());//姓名
            map.put("roleName",role.get(Integer.valueOf(one.get("family_bind_role")+"")-1));//角色名称
            map.put("roleName",role.get(Integer.valueOf(one.get("family_bind_role")+"")-1));//角色名称
            map.put("role",Integer.valueOf(one.get("family_bind_role")+""));//角色
            map.put("mobile",familyMember.getMobile());//手机号码
            map.put("mobile",familyMember.getMobile());//手机号码
            Integer status = null;
            Integer status = null;
            if("1".equals(one.get("status")+"")||"2".equals(one.get("status")+"")){
            if("1".equals(one.get("status")+"")||"2".equals(one.get("status")+"")){
@ -565,7 +568,7 @@ public class MyFamilyService {
            patientApplyLog = patientApplyLogService.findById(Integer.valueOf(relationData));
            patientApplyLog = patientApplyLogService.findById(Integer.valueOf(relationData));
            if(patientApplyLog.getFailureTime().getTime()<System.currentTimeMillis()){
            if(patientApplyLog.getFailureTime().getTime()<System.currentTimeMillis()){
                BaseMessageDO msg = messageService.findById(Integer.valueOf(one.get("id")+""));
                BaseMessageDO msg = messageService.findById(Integer.valueOf(one.get("id")+""));
                msg.setReadonly(1);
                msg.setReadState(1);
                msg.setReadTime(new Date());
                msg.setReadTime(new Date());
                messageService.save(msg);
                messageService.save(msg);
               continue;
               continue;