瀏覽代碼

Merge branch 'dev' of liuwenbin/patient-co-management into dev

yeshijie 7 年之前
父節點
當前提交
e28e93e594

+ 59 - 42
common/common-entity/src/main/java/com/yihu/es/entity/HealthEduArticleES.java

@ -16,54 +16,60 @@ import java.util.List;
public class HealthEduArticleES {
    @JestId
    private String id;
    private String batchNo;//批次号记录发送所属批次
    private String patientCode; // 患者标识
    private String patientName; // 患者名称
    private String doctorCode;  //发送人code(如管理员推送,保存登陆者code)
    private String doctorName;  //发送人名称(如管理员推送,保存登陆者name)
//    private String sendCode;   // 发送人code(如管理员推送,保存登陆者code)
    private String sendName;   // 推送的医生名称(包括医生本人、卫计委)
    private String sendPic;   // 发送人头像
    private String sendSex;   // 发送人性别
    private Long adminTeamCode;// 行政团队
    private String adminTeamName;// 行政团队
    private String hospital; // 所属机构
    private String hospitalName; // 所属机构
    private String town; // 所属区划
    private String townName; // 所属区划
    //说明:如医生推送文章给5个居民,则保存5条userType=1的记录和1条userType=2的记录(共6条)batchNo批次号一样。
    private String batchNo;//批次号记录发送所属批次(ES:必填)
    private String patientCode; // 患者标识(ES)(根据userType的值,userType=1,必填;userType=2,为空)
    private String patientName; // 患者名称(ES)(根据userType的值,userType=1,必填;userType=2,为空)
    private String doctorCode;  //发送人code(doctor表中的code)(ES:必填)
    private String doctorName;  //发送人名称(doctor表中的name)(ES:必填)
    private String sendName;   // 推送人的名称(包括医生本人、卫计委)(ES:必填)(如医生本人推送则记录医生名称,如管理员推送则记录管理员的角色名称)
    //备注:从发送人的信息中获取(doctor表获取)
    private String sendPic;   // 发送人头像(ES)
    private String sendSex;   // 发送人性别(ES)
    private Long adminTeamCode;// 行政团队(ES)
    private String adminTeamName;// 行政团队(ES)
    private String hospital; // 所属机构(ES)
    private String hospitalName; // 所属机构(ES)
    private String town; // 所属区划(ES)
    private String townName; // 所属区划(ES)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyyMMdd'T'HHmmss.SSS'Z'")
    @CreatedDate
    private Date createTime;  // 创建时间
    private Integer sendType;//发送类型 1医生发送 2(管理员)卫纪委发送
    private String sendLevel;   // 发送人级别  1专科医生,2全科医生,3健康管理师 4 管理员
    private String articleId;  //文章id
    private String articleTitle;  //文章标题
    private String articleCover;//文章封面
    private String articleContent; //文章内容
    private String articleCategoryId;//文章类别
    private String firstLevelCategoryId;//文章一级类别id
    private String firstLevelCategoryName;//文章一级类别Name
    private String secondLevelCategoryId;//文章二级类别id
    private String secondLevelCategoryName;//文章二级类别Name
    private String operatorId;//文章作者Id
    private Integer isRead=0;//文章是否已读 0未读,1已读
    private String articleSource;//文章来源
    private List<RoleVo> roleList;//发送者角色
    private String leaveWords;//医生留言
    private String currentUserRoleCode;//发送者当前登录的角色code  currentUserRoleCode与currentUserRoleLevel要一一对应取
    private String currentUserRoleLevel;//发送者当前登录的角色级别  省,市,区,机构,对应1.2.3.4   旧数据默认是2
    private Integer sendSource; //1或者为空 i健康后台推送  2PC端推送
    private Integer allCount;//所有的推送数目
    private Long readNumber;//阅读数(备注和浏览数不一样)
    private Date createTime;  // 创建时间(ES:必填)
    private Integer sendType;//发送类型 1医生发送 2(管理员)卫纪委发送(ES:必填)
    private String sendLevel;   // 发送人级别  1专科医生,2全科医生,3健康管理师 4 管理员(ES)
    private String articleId;  //文章id(ES:必填)
    private String articleTitle;  //文章标题(ES:必填)
    private String articleCover;//文章封面(ES:必填)
    private String articleContent; //文章内容(ES:必填)
    private String articleCategoryId;//文章类别(ES:必填)
    private String firstLevelCategoryId;//文章一级类别id(ES:必填)
    private String firstLevelCategoryName;//文章一级类别Name(ES:必填)
    private String secondLevelCategoryId;//文章二级类别id(ES:必填)
    private String secondLevelCategoryName;//文章二级类别Name(ES:必填)
    private String operatorId;//文章作者Id(ES:必填)
    private Integer isRead=0;//文章是否已读 0未读,1已读(ES:必填)
    private String articleSource;//文章来源(ES:必填)(备注:医生所属机构名称)
    private List<RoleVo> roleList;//发送者角色List(ES:非必填)(备注:管理员有值,普通医生为空)
    private String leaveWords;//医生留言(ES:非必填)
    //说明:如普通医生推送则保存doctor表中的hospital字段,如管理员推送则保存当前角色的code(取wlyy_user_role表中的role字段)
    private String currentUserRoleCode;//发送者当前登录的角色code(ES:必填)
    private String currentUserRoleLevel;//发送者当前登录的角色级别,1、省,2、市,3、区,4、机构(ES:必填)
    private Integer sendSource; //1或者为空 i健康后台推送  2PC端推送(默认旧数据为1)(为后续平台推送统计做备用字段)
    private Integer allCount;//所有的推送数目(ES:必填)
    private Long readNumber;//阅读数(备注:和浏览数不一样)(不保存ES)
    @Transient
    private Boolean newArricleFlag;//新版文章推送标志
    private Boolean newArricleFlag;//新版文章推送标志(不保存ES)
    private Integer userType; // 1、患者,2医生
    //说明:如医生推送文章给5个居民,则保存5条userType=1的记录和1条userType=2的记录(共6条)
    //业务需求:userType=1为居民被推送文章列表;userType=2医生推送的文章列表;
    private Integer userType; // 1、患者,2医生(ES:必填)
    private Date czrq;//阅读时间(默认为空,isRead=0;如isRead=1已读,则该字段有值)(ES:非必填)
    public String getId() {
        return id;
@ -376,4 +382,15 @@ public class HealthEduArticleES {
    public void setReadNumber(Long readNumber) {
        this.readNumber = readNumber;
    }
    public Date getCzrq() {
        return czrq;
    }
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
    public HealthEduArticleES() {
    }
}

+ 15 - 1
edu-article/JkEdu/WebRoot/WEB-INF/classes/Article.sql.xml

@ -8,6 +8,13 @@
		
			]]>
		</Sql>
		<!--<Sql name='getArticleList'>
			<![CDATA[
		select m.*,IFNULL(n.BrowseNumber,0) as BrowseNumber,IFNULL(n.PointNumber,0) as PointNumber,IFNULL(n.CollectionNumber,0) as CollectionNumber,IFNULL(n.PushNumber,0) as CommentNumber, IFNULL(n.PushNumber,0) as PushNumber
		from Org_Article m JOIN User_ArticleStatistics n on m.ArticleId=n.ArticleId where 1=1 @Condition
			]]>
		</Sql>-->
		<Sql name='getArticleListCount'>
			<![CDATA[
	select count(*) from Org_Article m 
@ -15,10 +22,17 @@ LEFT JOIN User_ArticleStatistics n on m.ArticleId=n.ArticleId where 1=1 @Conditi
			]]>
		</Sql>
		<Sql name='getCollectionArticleList'>
		<!--<Sql name='getCollectionArticleList'>
			<![CDATA[
select aa.* ,n.BrowseNumber,n.PointNumber,n.CollectionNumber,n.CommentNumber, IFNULL(n.PushNumber,0) as PushNumber from (
select m.* from Org_Article m  INNER JOIN User_ArticleCollection n on  m.articleid=n.ArticleId and  1=1 @UserParam) as aa LEFT JOIN 
User_ArticleStatistics n on aa.ArticleId=n.ArticleId where 1=1 @Condition
			]]>
		</Sql>-->
		<Sql name='getCollectionArticleList'>
			<![CDATA[
select aa.* ,n.BrowseNumber,n.PointNumber,n.CollectionNumber,IFNULL(n.CommentNumber,0) as CommentNumber, IFNULL(n.PushNumber,0) as PushNumber from (
select m.* from Org_Article m  INNER JOIN User_ArticleCollection n on  m.articleid=n.ArticleId and  1=1 @UserParam) as aa LEFT JOIN
User_ArticleStatistics n on aa.ArticleId=n.ArticleId where 1=1 @Condition
			]]>
		</Sql>

+ 8 - 1
edu-article/JkEdu/WebRoot/WEB-INF/classes/articlePc.sql.xml

@ -1,12 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<das-client>
	<Sqls> 
		 <Sql name='getArticlePcList'>
		 <!--<Sql name='getArticlePcList'>
		 <![CDATA[
				select m.*,IFNULL(n.BrowseNumber,0) as BrowseNumber,IFNULL(n.PointNumber,0) as PointNumber,IFNULL(n.CollectionNumber,0) as CollectionNumber,IFNULL(n.CommentNumber,0) as CommentNumber ,IFNULL(n.PushNumber,0) as PushNumber ,
				(select count(1) from user_articlecollection a where a.ArticleId=m.ArticleId  @Condition2 )as collectionType, IFNULL(n.PushNumber,0) as PushNumber from Org_Article m
				LEFT JOIN User_ArticleStatistics n on m.ArticleId=n.ArticleId where 1=1   and  ArticleState =1  @Condition    order by ArticleOrder desc  ,UpdateTime desc   @PageParam
			]]>
		</Sql>-->
		<Sql name='getArticlePcList'>
			<![CDATA[
				select m.*,IFNULL(n.BrowseNumber,0) as BrowseNumber,IFNULL(n.PointNumber,0) as PointNumber,IFNULL(n.CollectionNumber,0) as CollectionNumber,IFNULL(n.CommentNumber,0) as CommentNumber ,IFNULL(n.PushNumber,0) as PushNumber ,
				(select count(1) from user_articlecollection a where a.ArticleId=m.ArticleId  @Condition2 )as collectionType, IFNULL(n.PushNumber,0) as PushNumber from Org_Article m
				LEFT JOIN User_ArticleStatistics n on m.ArticleId=n.ArticleId where 1=1   and  ArticleState =1  @Condition    order by ArticleOrder desc  ,UpdateTime desc   @PageParam
			]]>
		</Sql>
		<Sql name='getArticlePcListCount'>
			<![CDATA[

二進制
edu-article/JkEdu/WebRoot/WEB-INF/classes/com/yihu/jk/dao/ArticleDao.class


+ 15 - 1
edu-article/JkEdu/src/Article.sql.xml

@ -8,6 +8,13 @@
		
			]]>
		</Sql>
		<!--<Sql name='getArticleList'>
			<![CDATA[
		select m.*,IFNULL(n.BrowseNumber,0) as BrowseNumber,IFNULL(n.PointNumber,0) as PointNumber,IFNULL(n.CollectionNumber,0) as CollectionNumber,IFNULL(n.PushNumber,0) as CommentNumber, IFNULL(n.PushNumber,0) as PushNumber
		from Org_Article m JOIN User_ArticleStatistics n on m.ArticleId=n.ArticleId where 1=1 @Condition
			]]>
		</Sql>-->
		<Sql name='getArticleListCount'>
			<![CDATA[
	select count(*) from Org_Article m 
@ -15,10 +22,17 @@ LEFT JOIN User_ArticleStatistics n on m.ArticleId=n.ArticleId where 1=1 @Conditi
			]]>
		</Sql>
		<Sql name='getCollectionArticleList'>
		<!--<Sql name='getCollectionArticleList'>
			<![CDATA[
select aa.* ,n.BrowseNumber,n.PointNumber,n.CollectionNumber,n.CommentNumber, IFNULL(n.PushNumber,0) as PushNumber from (
select m.* from Org_Article m  INNER JOIN User_ArticleCollection n on  m.articleid=n.ArticleId and  1=1 @UserParam) as aa LEFT JOIN 
User_ArticleStatistics n on aa.ArticleId=n.ArticleId where 1=1 @Condition
			]]>
		</Sql>-->
		<Sql name='getCollectionArticleList'>
			<![CDATA[
select aa.* ,n.BrowseNumber,n.PointNumber,n.CollectionNumber,IFNULL(n.CommentNumber,0) as CommentNumber, IFNULL(n.PushNumber,0) as PushNumber from (
select m.* from Org_Article m  INNER JOIN User_ArticleCollection n on  m.articleid=n.ArticleId and  1=1 @UserParam) as aa LEFT JOIN
User_ArticleStatistics n on aa.ArticleId=n.ArticleId where 1=1 @Condition
			]]>
		</Sql>

+ 8 - 1
edu-article/JkEdu/src/articlePc.sql.xml

@ -1,12 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<das-client>
	<Sqls> 
		 <Sql name='getArticlePcList'>
		 <!--<Sql name='getArticlePcList'>
		 <![CDATA[
				select m.*,IFNULL(n.BrowseNumber,0) as BrowseNumber,IFNULL(n.PointNumber,0) as PointNumber,IFNULL(n.CollectionNumber,0) as CollectionNumber,IFNULL(n.CommentNumber,0) as CommentNumber ,IFNULL(n.PushNumber,0) as PushNumber ,
				(select count(1) from user_articlecollection a where a.ArticleId=m.ArticleId  @Condition2 )as collectionType, IFNULL(n.PushNumber,0) as PushNumber from Org_Article m
				LEFT JOIN User_ArticleStatistics n on m.ArticleId=n.ArticleId where 1=1   and  ArticleState =1  @Condition    order by ArticleOrder desc  ,UpdateTime desc   @PageParam
			]]>
		</Sql>-->
		<Sql name='getArticlePcList'>
			<![CDATA[
				select m.*,IFNULL(n.BrowseNumber,0) as BrowseNumber,IFNULL(n.PointNumber,0) as PointNumber,IFNULL(n.CollectionNumber,0) as CollectionNumber,IFNULL(n.CommentNumber,0) as CommentNumber ,IFNULL(n.PushNumber,0) as PushNumber ,
				(select count(1) from user_articlecollection a where a.ArticleId=m.ArticleId  @Condition2 )as collectionType, IFNULL(n.PushNumber,0) as PushNumber from Org_Article m
				LEFT JOIN User_ArticleStatistics n on m.ArticleId=n.ArticleId where 1=1   and  ArticleState =1  @Condition    order by ArticleOrder desc  ,UpdateTime desc   @PageParam
			]]>
		</Sql>
		<Sql name='getArticlePcListCount'>
			<![CDATA[

+ 2 - 2
edu-article/JkEdu/src/com/yihu/jk/dao/ArticleDao.java

@ -590,7 +590,7 @@ public class ArticleDao {
//			sql.addParamValue(Integer.valueOf(vo.getOperatorRoleLevel())-1);
//			sql.addParamValue(vo.getOperatorRoleCode());
		}
		param3.append(" or  ( OperatorId='"+userCode+"' and UserScope=4 "+(vo.getRoleType()!=null?" and RoleType = "+vo.getRoleType().intValue():"")+" and OperatorRoleCode = "+vo.getOperatorRoleCode()+")");
		param3.append(" or  ( OperatorId='"+userCode+"' and UserScope=4 "+(vo.getRoleType()!=null?" and RoleType = "+vo.getRoleType().intValue():"")+" and OperatorRoleCode = '"+vo.getOperatorRoleCode()+"')");
		if("1".equals(vo.getOperatorRoleLevel())){//省
//			param.append(" and OperatorRoleCode like '"+vo.getOperatorRoleCode().substring(0,3)+"%' ");
		}else if("2".equals(vo.getOperatorRoleLevel())){//市
@ -719,7 +719,7 @@ public class ArticleDao {
//			sql.addParamValue(Integer.valueOf(vo.getOperatorRoleLevel())-1);
//			sql.addParamValue(vo.getOperatorRoleCode());
		}
		param3.append(" or  ( OperatorId='"+userCode+"' and UserScope=4 "+(vo.getRoleType()!=null?" and RoleType = "+vo.getRoleType().intValue():"")+" and OperatorRoleCode = "+vo.getOperatorRoleCode()+")");
		param3.append(" or  ( OperatorId='"+userCode+"' and UserScope=4 "+(vo.getRoleType()!=null?" and RoleType = "+vo.getRoleType().intValue():"")+" and OperatorRoleCode = '"+vo.getOperatorRoleCode()+"')");
		if("1".equals(vo.getOperatorRoleLevel())){//省
//			param.append(" and OperatorRoleCode like '"+vo.getOperatorRoleCode().substring(0,3)+"%' ");
		}else if("2".equals(vo.getOperatorRoleLevel())){//市

+ 167 - 0
patient-co/patient-co-wlyy/doc/技术文档/es/健教文章新增索引.txt

@ -0,0 +1,167 @@
创建索引
POST  http://172.19.103.68:9200/health_edu_article_patient_test
查询索引
GET http://172.19.103.68:9200/health_edu_article_patient_test/
给索引加mapping
POST http://172.19.103.68:9200/health_edu_article_patient_test/health_edu_article_patient_test/_mapping
{
    "health_edu_article_patient": {
        "properties": {
            "currentUserRoleCode": {
                "index": "not_analyzed",
                "type": "string"
            },
            "isRead": {
                "type": "integer"
            },
            "allCount": {
                "type": "integer"
            },
            "articleCover": {
                "index": "not_analyzed",
                "type": "string"
            },
            "doctorName": {
                "index": "not_analyzed",
                "type": "string"
            },
            "adminTeamCode": {
                "type": "long"
            },
            "articleContent": {
                "index": "not_analyzed",
                "type": "string"
            },
            "sendLevel": {
                "index": "not_analyzed",
                "type": "string"
            },
            "id": {
                "type": "string"
            },
            "hospital": {
                "index": "not_analyzed",
                "type": "string"
            },
            "operatorId": {
                "index": "not_analyzed",
                "type": "string"
            },
            "secondLevelCategoryName": {
                "index": "not_analyzed",
                "type": "string"
            },
            "patientCode": {
                "index": "not_analyzed",
                "type": "string"
            },
            "sendPic": {
                "index": "not_analyzed",
                "type": "string"
            },
            "sendSource": {
                "type": "integer"
            },
            "patientName": {
                "index": "not_analyzed",
                "type": "string"
            },
            "articleTitle": {
                "index": "not_analyzed",
                "type": "string"
            },
            "batchNo": {
                "index": "not_analyzed",
                "type": "string"
            },
            "currentUserRoleLevel": {
                "index": "not_analyzed",
                "type": "string"
            },
            "firstLevelCategoryId": {
                "index": "not_analyzed",
                "type": "string"
            },
            "townName": {
                "index": "not_analyzed",
                "type": "string"
            },
            "adminTeamName": {
                "index": "not_analyzed",
                "type": "string"
            },
            "sendName": {
                "index": "not_analyzed",
                "type": "string"
            },
            "town": {
                "index": "not_analyzed",
                "type": "string"
            },
            "articleId": {
                "index": "not_analyzed",
                "type": "string"
            },
            "articleCategoryId": {
                "index": "not_analyzed",
                "type": "string"
            },
            "secondLevelCategoryId": {
                "index": "not_analyzed",
                "type": "string"
            },
            "hospitalName": {
                "index": "not_analyzed",
                "type": "string"
            },
            "roleList": {
                "type": "nested",
                "properties": {
                    "code": {
                        "index": "not_analyzed",
                        "type": "string"
                    },
                    "name": {
                        "index": "not_analyzed",
                        "type": "string"
                    }
                }
            },
            "firstLevelCategoryName": {
                "index": "not_analyzed",
                "type": "string"
            },
            "articleSource": {
                "index": "not_analyzed",
                "type": "string"
            },
            "createTime": {
                "format": "strict_date_optional_time||epoch_millis",
                "type": "date"
            },
            "czrq": {
                "format": "strict_date_optional_time||epoch_millis",
                "type": "date"
            },
            "leaveWords": {
                "index": "not_analyzed",
                "type": "string"
            },
            "doctorCode": {
                "index": "not_analyzed",
                "type": "string"
            },
            "sendType": {
                "type": "integer"
            },
            "userType": {
                "type": "integer"
            },
            "sendSex": {
                "index": "not_analyzed",
                "type": "string"
            }
        }
    }
  }