Explorar o código

后台接口修改

wangjun %!s(int64=3) %!d(string=hai) anos
pai
achega
ecf3c15fcd
Modificáronse 33 ficheiros con 3101 adicións e 11 borrados
  1. 3 0
      business/base-service/src/main/java/com/yihu/jw/hospital/dict/WlyyHospitalSysDictDao.java
  2. 0 1
      business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java
  3. 9 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorDO.java
  4. 87 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseLinkDictDO.java
  5. 210 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseMenuDictDO.java
  6. 86 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseMenuShowDO.java
  7. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/base/module/SaasTypeModuleDO.java
  8. 298 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/article/KnowledgeArticleDictDO.java
  9. 55 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/article/KnowledgeArticleMenuDO.java
  10. 3 3
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/article/KnowledgeArticleUserDO.java
  11. 1 1
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/wx/GraphicMessageFeign.java
  12. 59 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java
  13. 2 1
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java
  14. 19 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeArticleDeptDao.java
  15. 40 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeArticleDictDao.java
  16. 22 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeArticleMenuDao.java
  17. 16 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeArticleUserDao.java
  18. 17 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeCategoryDao.java
  19. 27 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseLinkDictDao.java
  20. 23 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseMenuDictDao.java
  21. 18 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseMenuShowDao.java
  22. 433 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/article/ArticleEndpoint.java
  23. 12 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/doctor/BaseDoctorEndpoint.java
  24. 309 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseMenuManageEndpoint.java
  25. 65 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseMenuNoLoginEndpoint.java
  26. 469 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeArticleService.java
  27. 20 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeArticleUserService.java
  28. 80 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeCategoryService.java
  29. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorHospitalService.java
  30. 14 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java
  31. 691 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/menu/BaseMenuManageService.java
  32. 6 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/org/BaseOrgService.java
  33. 5 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/role/MenuService.java

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/dict/WlyyHospitalSysDictDao.java

@ -42,4 +42,7 @@ public interface WlyyHospitalSysDictDao extends PagingAndSortingRepository<WlyyH
    @Query("from WlyyHospitalSysDictDO where dictName = ?1  and  hospital=?2 and sort >= ?3 order by sort asc")
    @Query("from WlyyHospitalSysDictDO where dictName = ?1  and  hospital=?2 and sort >= ?3 order by sort asc")
    List<WlyyHospitalSysDictDO> findByDictNameSortOrderBySort(String dictName,String hospital,Integer sort);
    List<WlyyHospitalSysDictDO> findByDictNameSortOrderBySort(String dictName,String hospital,Integer sort);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1  and  dictCode=?2 ")
    WlyyHospitalSysDictDO findOneByDictNameAndDictCode(String dictName,String dictCode);
}
}

+ 0 - 1
business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java

@ -371,7 +371,6 @@ public class BasePatientService<T, R extends CrudRepository> extends BaseJpaServ
        return list.get(0);
        return list.get(0);
    }
    }
    public Boolean updatePatientPw(String id,String pw,String orgPw){
    public Boolean updatePatientPw(String id,String pw,String orgPw){
        BasePatientDO patientDO = basePatientDao.findOne(id);
        BasePatientDO patientDO = basePatientDao.findOne(id);
        String orgPwMd5 = MD5.md5Hex(orgPw + "{" + patientDO.getSalt() + "}");
        String orgPwMd5 = MD5.md5Hex(orgPw + "{" + patientDO.getSalt() + "}");

+ 9 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorDO.java

@ -6,6 +6,7 @@ import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.Date;
@ -290,7 +291,15 @@ public class BaseDoctorDO extends UuidIdentityEntityWithOperator {
    private String doctorLat;//医生当前定位地址纬度
    private String doctorLat;//医生当前定位地址纬度
    private String doctorLon;//医生当前定位地址经度
    private String doctorLon;//医生当前定位地址经度
    private String doctorLocateAddress;//医生定位地址
    private String doctorLocateAddress;//医生定位地址
    private String levelName;
    @Transient
    public String getLevelName() {
        return levelName;
    }
    public void setLevelName(String levelName) {
        this.levelName = levelName;
    }
    @Column(name = "visit_time")
    @Column(name = "visit_time")
    public String getVisitTime() {
    public String getVisitTime() {

+ 87 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseLinkDictDO.java

@ -0,0 +1,87 @@
package com.yihu.jw.entity.base.menu;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name = "base_link_dict")
public class BaseLinkDictDO extends UuidIdentityEntityWithCreateTime {
    private String name;
    private String linkUrl;
    private String isShow;
    private Integer linkSort;
    private String isDel;
    private String status;
    private String showName;
    private String statusName;
    @Transient
    public String getShowName() {
        return showName;
    }
    public void setShowName(String showName) {
        this.showName = showName;
    }
    @Transient
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "link_url")
    public String getLinkUrl() {
        return linkUrl;
    }
    public void setLinkUrl(String linkUrl) {
        this.linkUrl = linkUrl;
    }
    @Column(name = "is_show")
    public String getIsShow() {
        return isShow;
    }
    public void setIsShow(String isShow) {
        this.isShow = isShow;
    }
    @Column(name = "link_sort")
    public Integer getLinkSort() {
        return linkSort;
    }
    public void setLinkSort(Integer linkSort) {
        this.linkSort = linkSort;
    }
    @Column(name = "is_del")
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
}

+ 210 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseMenuDictDO.java

@ -0,0 +1,210 @@
package com.yihu.jw.entity.base.menu;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name = "base_menu_dict")
public class BaseMenuDictDO extends UuidIdentityEntityWithOperator {
    private String parentId;
    private String name;
    private Integer menuSort;
    private String icon;
    private String url;
    private String isShow;
    private Integer status;
    private String remark;
    private Integer menuLevel;
    private String functionType;
    private String menuLocation;
    private String menuImg;
    private String functionName;
    private String locaTionName;
    private String showName;
    private String statusName;
    private String parentName;
    private String isDel;
    private String bgImg;
    private String menuTitle;
    private String describtion;
    @Column(name = "bg_img")
    public String getBgImg() {
        return bgImg;
    }
    public void setBgImg(String bgImg) {
        this.bgImg = bgImg;
    }
    @Column(name = "menu_title")
    public String getMenuTitle() {
        return menuTitle;
    }
    public void setMenuTitle(String menuTitle) {
        this.menuTitle = menuTitle;
    }
    @Column(name = "describtion")
    public String getDescribtion() {
        return describtion;
    }
    public void setDescribtion(String describtion) {
        this.describtion = describtion;
    }
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
    @Transient
    public String getParentName() {
        return parentName;
    }
    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
    @Transient
    public String getFunctionName() {
        return functionName;
    }
    public void setFunctionName(String functionName) {
        this.functionName = functionName;
    }
    @Transient
    public String getLocaTionName() {
        return locaTionName;
    }
    public void setLocaTionName(String locaTionName) {
        this.locaTionName = locaTionName;
    }
    @Transient
    public String getShowName() {
        return showName;
    }
    public void setShowName(String showName) {
        this.showName = showName;
    }
    @Transient
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
    @Column(name = "parent_id")
    public String getParentId() {
        return parentId;
    }
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "menu_sort")
    public Integer getMenuSort() {
        return menuSort;
    }
    public void setMenuSort(Integer menuSort) {
        this.menuSort = menuSort;
    }
    @Column(name = "icon")
    public String getIcon() {
        return icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    @Column(name = "url")
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    @Column(name = "is_show")
    public String getIsShow() {
        return isShow;
    }
    public void setIsShow(String isShow) {
        this.isShow = isShow;
    }
    @Column(name = "status")
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    @Column(name = "remark")
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    @Column(name = "menu_level")
    public Integer getMenuLevel() {
        return menuLevel;
    }
    public void setMenuLevel(Integer menuLevel) {
        this.menuLevel = menuLevel;
    }
    @Column(name = "function_type")
    public String getFunctionType() {
        return functionType;
    }
    public void setFunctionType(String functionType) {
        this.functionType = functionType;
    }
    @Column(name = "menu_location")
    public String getMenuLocation() {
        return menuLocation;
    }
    public void setMenuLocation(String menuLocation) {
        this.menuLocation = menuLocation;
    }
    @Column(name = "menu_img")
    public String getMenuImg() {
        return menuImg;
    }
    public void setMenuImg(String menuImg) {
        this.menuImg = menuImg;
    }
}

+ 86 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseMenuShowDO.java

@ -0,0 +1,86 @@
package com.yihu.jw.entity.base.menu;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "base_menu_show")
public class BaseMenuShowDO extends UuidIdentityEntityWithCreateTime {
    private String modelId;
    private String modelName;
    private String menuId;
    private String menuName;
    private String isDel;
    private Integer menuSort;
    private String styleCode;
    private String styleName;
    @Column(name = "model_id")
    public String getModelId() {
        return modelId;
    }
    public void setModelId(String modelId) {
        this.modelId = modelId;
    }
    @Column(name = "model_name")
    public String getModelName() {
        return modelName;
    }
    public void setModelName(String modelName) {
        this.modelName = modelName;
    }
    @Column(name = "menu_id")
    public String getMenuId() {
        return menuId;
    }
    public void setMenuId(String menuId) {
        this.menuId = menuId;
    }
    @Column(name = "menu_name")
    public String getMenuName() {
        return menuName;
    }
    public void setMenuName(String menuName) {
        this.menuName = menuName;
    }
    @Column(name = "is_del")
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
    @Column(name = "menu_sort")
    public Integer getMenuSort() {
        return menuSort;
    }
    public void setMenuSort(Integer menuSort) {
        this.menuSort = menuSort;
    }
    @Column(name = "style_code")
    public String getStyleCode() {
        return styleCode;
    }
    public void setStyleCode(String styleCode) {
        this.styleCode = styleCode;
    }
    @Column(name = "style_name")
    public String getStyleName() {
        return styleName;
    }
    public void setStyleName(String styleName) {
        this.styleName = styleName;
    }
}

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/module/SaasTypeModuleDO.java

@ -145,7 +145,7 @@ public class SaasTypeModuleDO extends UuidIdentityEntityWithOperator {
		this.isMust = isMust;
		this.isMust = isMust;
	}
	}
	@Column(name = "level")
	@Column(name = "saas_level")
	public Integer getLevel() {
	public Integer getLevel() {
		return level;
		return level;
	}
	}

+ 298 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/article/KnowledgeArticleDictDO.java

@ -0,0 +1,298 @@
package com.yihu.jw.entity.hospital.article;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
/**
 * 健康文章
 * @author huangwenjie
 * @date 2019/9/10 13:58
 */
@Entity
@Table(name = "wlyy_knowledge_article_dict")
public class KnowledgeArticleDictDO extends UuidIdentityEntity {
	
	private String createUser; // 创建人
	private String createUserName; // 创建人
	private String createUserDept; // 创建人科室CODE
	private String createUserDeptName; // 创建人科室名称
	private String title;   // 文章标题
	private String categoryFirst;    // 1级分类标识
	private String categoryFirstName;    // 1级分类标识
	private String categorySecond;    // 2级分类标识
	private String categorySecondName;    // 2级分类标识
	private String content; // 文章内容
	private String source;  // 文章来源--客服
	private String image;   // 封面图片
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
	private Date createTime;  // 添加时间
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
	private Date updateTime;  // 编辑时间
	private Integer del; // 是否删除,1正常,0删除
	private Integer status;// 0未审核 1已审核
	private String cancelReason;//退回理由
	private Integer used;//常用数
	private Integer readCount;//已读数
	private Integer collection;//收藏数量
	private Integer fabulous;//点赞数量
	@Column(name = "is_share")
	private Integer share;//分享 数量
	private String intro;//简介
	@Transient
	private Integer isUsed;//是否已设置常用
	@Transient
	private KnowledgeArticleUserDO knowledgeArticleUserDO;
	@Transient
	private String deptName;
	@Transient
	private String hospitalName;
	private Date checkTime;
	private Integer releaseStatus;
	@Column(name = "check_time")
	public Date getCheckTime() {
		return checkTime;
	}
	public void setCheckTime(Date checkTime) {
		this.checkTime = checkTime;
	}
	@Column(name = "release_status")
	public Integer getReleaseStatus() {
		return releaseStatus;
	}
	public void setReleaseStatus(Integer releaseStatus) {
		this.releaseStatus = releaseStatus;
	}
	public String getCreateUser() {
		return createUser;
	}
	
	public void setCreateUser(String createUser) {
		this.createUser = createUser;
	}
	
	public String getTitle() {
		return title;
	}
	
	public void setTitle(String title) {
		this.title = title;
	}
	
	public String getCategoryFirst() {
		return categoryFirst;
	}
	
	public void setCategoryFirst(String categoryFirst) {
		this.categoryFirst = categoryFirst;
	}
	
	public String getCategorySecond() {
		return categorySecond;
	}
	
	public void setCategorySecond(String categorySecond) {
		this.categorySecond = categorySecond;
	}
	
	public String getContent() {
		return content;
	}
	
	public void setContent(String content) {
		this.content = content;
	}
	
	public String getSource() {
		return source;
	}
	
	public void setSource(String source) {
		this.source = source;
	}
	
	public String getImage() {
		return image;
	}
	
	public void setImage(String image) {
		this.image = image;
	}
	
	public Date getCreateTime() {
		return createTime;
	}
	
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
	public Date getUpdateTime() {
		return updateTime;
	}
	
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	
	public Integer getDel() {
		return del;
	}
	
	public void setDel(Integer del) {
		this.del = del;
	}
	
	public Integer getStatus() {
		return status;
	}
	
	public void setStatus(Integer status) {
		this.status = status;
	}
	
	public String getCancelReason() {
		return cancelReason;
	}
	
	public void setCancelReason(String cancelReason) {
		this.cancelReason = cancelReason;
	}
	
	public String getCreateUserName() {
		return createUserName;
	}
	
	public void setCreateUserName(String createUserName) {
		this.createUserName = createUserName;
	}
	
	public String getCategoryFirstName() {
		return categoryFirstName;
	}
	
	public void setCategoryFirstName(String categoryFirstName) {
		this.categoryFirstName = categoryFirstName;
	}
	
	public String getCategorySecondName() {
		return categorySecondName;
	}
	
	public void setCategorySecondName(String categorySecondName) {
		this.categorySecondName = categorySecondName;
	}
	
	public String getCreateUserDept() {
		return createUserDept;
	}
	
	public void setCreateUserDept(String createUserDept) {
		this.createUserDept = createUserDept;
	}
	
	public String getCreateUserDeptName() {
		return createUserDeptName;
	}
	
	public void setCreateUserDeptName(String createUserDeptName) {
		this.createUserDeptName = createUserDeptName;
	}
	public Integer getUsed() {
		return used;
	}
	public void setUsed(Integer used) {
		this.used = used;
	}
	@Transient
	public String getDeptName() {
		return deptName;
	}
	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}
	@Transient
	public String getHospitalName() {
		return hospitalName;
	}
	public void setHospitalName(String hospitalName) {
		this.hospitalName = hospitalName;
	}
	public Integer getCollection() {
		return collection;
	}
	public void setCollection(Integer collection) {
		this.collection = collection;
	}
	public Integer getFabulous() {
		return fabulous;
	}
	public void setFabulous(Integer fabulous) {
		this.fabulous = fabulous;
	}
	@Column(name = "is_share")
	public Integer getShare() {
		return share;
	}
	public void setShare(Integer share) {
		this.share = share;
	}
	public Integer getReadCount() {
		return readCount;
	}
	public void setReadCount(Integer readCount) {
		this.readCount = readCount;
	}
	@Transient
	public Integer getIsUsed() {
		return isUsed;
	}
	public void setIsUsed(Integer isUsed) {
		this.isUsed = isUsed;
	}
	@Transient
	public KnowledgeArticleUserDO getKnowledgeArticleUserDO() {
		return knowledgeArticleUserDO;
	}
	public void setKnowledgeArticleUserDO(KnowledgeArticleUserDO knowledgeArticleUserDO) {
		this.knowledgeArticleUserDO = knowledgeArticleUserDO;
	}
	public String getIntro() {
		return intro;
	}
	public void setIntro(String intro) {
		this.intro = intro;
	}
}

+ 55 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/article/KnowledgeArticleMenuDO.java

@ -0,0 +1,55 @@
package com.yihu.jw.entity.hospital.article;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 健康文章部门关系表
 * @author huangwenjie
 * @date 2019/9/18 10:00
 */
@Entity
@Table(name = "wlyy_knowledge_article_menu")
public class KnowledgeArticleMenuDO extends UuidIdentityEntity {
	
	/**
	 * 文章ID
	 */
	private String articleId;
	
	/**
	 * 菜单id
	 */
	private String menuId;
	
	/**
	 * 菜单名称
	 */
	private String menuName;
	public String getArticleId() {
		return articleId;
	}
	public void setArticleId(String articleId) {
		this.articleId = articleId;
	}
	public String getMenuId() {
		return menuId;
	}
	public void setMenuId(String menuId) {
		this.menuId = menuId;
	}
	public String getMenuName() {
		return menuName;
	}
	public void setMenuName(String menuName) {
		this.menuName = menuName;
	}
}

+ 3 - 3
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/article/KnowledgeArticleUserDO.java

@ -30,7 +30,7 @@ public class KnowledgeArticleUserDO extends UuidIdentityEntityWithOperator {
	@Transient
	@Transient
	KnowledgeArticleDO knowledgeArticleDO;
	KnowledgeArticleDictDO knowledgeArticleDO;
	@Column(name = "user_code")
	@Column(name = "user_code")
	public String getUser() {
	public String getUser() {
@ -123,11 +123,11 @@ public class KnowledgeArticleUserDO extends UuidIdentityEntityWithOperator {
	}
	}
	@Transient
	@Transient
	public KnowledgeArticleDO getKnowledgeArticleDO() {
	public KnowledgeArticleDictDO getKnowledgeArticleDO() {
		return knowledgeArticleDO;
		return knowledgeArticleDO;
	}
	}
	public void setKnowledgeArticleDO(KnowledgeArticleDO knowledgeArticleDO) {
	public void setKnowledgeArticleDO(KnowledgeArticleDictDO knowledgeArticleDO) {
		this.knowledgeArticleDO = knowledgeArticleDO;
		this.knowledgeArticleDO = knowledgeArticleDO;
	}
	}
}
}

+ 1 - 1
common/common-fegin/src/main/java/com/yihu/jw/fegin/base/wx/GraphicMessageFeign.java

@ -3,7 +3,7 @@ package com.yihu.jw.fegin.base.wx;
import com.yihu.jw.exception.business.JiWeiException;
import com.yihu.jw.exception.business.JiWeiException;
import com.yihu.jw.fegin.fallbackfactory.base.wx.GraphicMessageFeignFallbackFactory;
import com.yihu.jw.fegin.fallbackfactory.base.wx.GraphicMessageFeignFallbackFactory;
import com.yihu.jw.common.CommonContants;
import com.yihu.jw.common.CommonContants;
import com.yihu.jw.restmodel.web.MixEnvelop;;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.base.WechatRequestMapping;
import com.yihu.jw.rm.base.WechatRequestMapping;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.http.MediaType;

+ 59 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -208,6 +208,64 @@ public class BaseRequestMapping {
        public static final String findLoginRoleMenuTree  = "/findLoginRoleMenuTree";
        public static final String findLoginRoleMenuTree  = "/findLoginRoleMenuTree";
    }
    }
    /**
     * 首页菜单字典
     */
    public static class MenuDict extends Basic {
        public static final String PREFIX  = "/baseMenuDict";
        public static final String createMenuDict  = "/createMenuDict";
        public static final String STATUS  = "/status";
        public static final String IS_NAME_EXIST  = "/isNameExist";
        public static final String MOVE_UP  = "/moveUp";
        public static final String MOVE_DOWN  = "/moveDown";
        public static final String GET_TREE  = "/getTree";
        public static final String FIND_ALL  = "/findAll";
        public static final String findOneMenuDict  = "/findOneMenuDict";
        public static final String deleteMenuDict  = "/deleteMenuDict";
    }
    /**
     * 首页菜单免登录
     */
    public static class MenuNologin extends Basic {
        public static final String PREFIX  = "/open/noLogin";
        public static final String findAllMenu  = "/findAllMenu";
        public static final String findMenuByParentId  = "/findMenuByParentId";
        public static final String findArticleByMenuId= "/findArticleByMenuId";
    }
    /**
     * 友情链接
     */
    public static class LinkDict extends Basic {
        public static final String PREFIX  = "/baseLinkDict";
        public static final String createLinkDict = "/createLinkDict";
        public static final String linkStatus  = "/linkStatus";
        public static final String linkShow  = "/linkShow";
        public static final String MOVELinkUP  = "/moveLinkUp";
        public static final String MOVELinkDOWN  = "/moveLinkDown";
        public static final String GET_TREE  = "/getTree";
        public static final String findLinkDictALL  = "/findLinkDictALL";
        public static final String findOneLink  = "/findOneLink";
        public static final String deleteLink  = "/deleteLink";
    }
    /**
     * 首页菜单
     */
    public static class MenuShow extends Basic {
        public static final String PREFIX  = "/baseLinkDict";
        public static final String createMenuShow = "/createMenuShow";
        public static final String menuShowstatus  = "/menuShowstatus";
        public static final String IS_NAME_EXIST  = "/isNameExist";
        public static final String MOVEMenuShowUP  = "/moveMenuShowUp";
        public static final String MOVEMenuShowDOWN  = "/moveMenuShowDown";
        public static final String GET_TREE  = "/getTree";
        public static final String findMenuShow  = "/findMenuShow";
        public static final String findMenuShowDict  = "/findMenuShowDict";
        public static final String findRoleMenuTree  = "/findRoleMenuTree";
        public static final String findLoginRoleMenuTree  = "/findLoginRoleMenuTree";
    }
    /**
    /**
     * 错误码
     * 错误码
     */
     */
@ -406,6 +464,7 @@ public class BaseRequestMapping {
    public static class BaseDoctor extends Basic {
    public static class BaseDoctor extends Basic {
            public static final String PREFIX  = "/baseDoctor";
            public static final String PREFIX  = "/baseDoctor";
        public static final String DOCINFO  = "/docInfo";
        public static final String DOCINFO  = "/docInfo";
        public static final String CREATE  = "/create";
        public static final String getOrgListByTown  = "/getOrgListByTown";
        public static final String getOrgListByTown  = "/getOrgListByTown";
        public static final String enableOrDis  = "/enableOrDis";
        public static final String enableOrDis  = "/enableOrDis";
        public static final String docFullInfo  = "/docFullInfo";
        public static final String docFullInfo  = "/docFullInfo";

+ 2 - 1
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -1143,7 +1143,8 @@ public class BaseHospitalRequestMapping {
        public static final String PREFIX  = "/article";
        public static final String PREFIX  = "/article";
        //获取文章列表
        //获取文章列表
        public static final String searchKnowledgePageList  = "/searchKnowledgePageList";
        public static final String searchKnowledgePageList  = "/searchKnowledgePageList";
        
        //获取文章列表
        public static final String searchKnowledgeList  = "/searchKnowledgeList";
        //获取我的文章列表
        //获取我的文章列表
        public static final String searchMyPageList  = "/searchMyPageList";
        public static final String searchMyPageList  = "/searchMyPageList";
    
    

+ 19 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeArticleDeptDao.java

@ -0,0 +1,19 @@
package com.yihu.jw.base.dao.article;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDeptDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * 健康文章部门关系DAO
 * @author huangwenjie
 * @date 2019/9/18 10:03
 */
public interface KnowledgeArticleDeptDao extends PagingAndSortingRepository<KnowledgeArticleDeptDO, String>, JpaSpecificationExecutor<KnowledgeArticleDeptDO> {
	
	List<KnowledgeArticleDeptDO> findByArticleId(String articleId);
	
	List<KnowledgeArticleDeptDO> findByDept(String dept);
}

+ 40 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeArticleDictDao.java

@ -0,0 +1,40 @@
package com.yihu.jw.base.dao.article;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * 健康文章DAO
 * @author huangwenjie
 * @date 2019/9/10 14:07
 */
public interface KnowledgeArticleDictDao extends PagingAndSortingRepository<KnowledgeArticleDictDO, String>, JpaSpecificationExecutor<KnowledgeArticleDictDO> {
	@Query("select a from KnowledgeArticleDictDO a where a.del=1 and (categoryFirst = ?1 or categorySecond=?1)")
	List<KnowledgeArticleDictDO> findByCategory(String category);
	@Query("select a from KnowledgeArticleDictDO a where a.del=1 and categoryFirst = ?1 ")
	List<KnowledgeArticleDictDO> findByCategoryFirst(String category);
	@Query("select a from KnowledgeArticleDictDO a where a.del=1 and  categorySecond=?1")
	List<KnowledgeArticleDictDO> findByCategorySecond(String category);
	@Query("select a from KnowledgeArticleDictDO a where a.del=1 and a.id=?1")
	KnowledgeArticleDictDO findByIdAndDel(String id);
	@Query("select count(*) from KnowledgeArticleDictDO a where a.del=1 and a.categoryFirst = ?1 and a.releaseStatus=1 ")
	Integer getCountByCategoryFirst(String category);
	@Query(" select count(*) from KnowledgeArticleDictDO a where a.del=1 and  a.categorySecond=?1 and a.releaseStatus=1")
	Integer getCountByCategorySecond(String category);
	@Query("select a from KnowledgeArticleDictDO a where a.del=1 and  a.categorySecond=?1 and a.releaseStatus=1")
	List<KnowledgeArticleDictDO> findByCategorySecondAndPage(String category,Pageable pageRequest);
}

+ 22 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeArticleMenuDao.java

@ -0,0 +1,22 @@
package com.yihu.jw.base.dao.article;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDeptDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleMenuDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * 健康文章部门关系DAO
 * @author huangwenjie
 * @date 2019/9/18 10:03
 */
public interface KnowledgeArticleMenuDao extends PagingAndSortingRepository<KnowledgeArticleMenuDO, String>, JpaSpecificationExecutor<KnowledgeArticleMenuDO> {
	
	List<KnowledgeArticleMenuDO> findByArticleId(String articleId);
	
	List<KnowledgeArticleMenuDO> findByMenuId(String menuId);
}

+ 16 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeArticleUserDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.base.dao.article;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * 健康文章中间库DAO
 * @author
 * @date 2019/9/10 14:07
 */
public interface KnowledgeArticleUserDao extends PagingAndSortingRepository<KnowledgeArticleUserDO, String>, JpaSpecificationExecutor<KnowledgeArticleUserDO> {
	@Query("select a from KnowledgeArticleUserDO a where a.del=1 and a.relationCode=?1 and a.user=?2")
	KnowledgeArticleUserDO findByrelationCodeAndUserAndDel(String relationCode, String user);
}

+ 17 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/article/KnowledgeCategoryDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.base.dao.article;
import com.yihu.jw.entity.hospital.article.KnowledgeCategoryDO;
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;
/**
 * 健康文章分类
 * @author huangwenjie
 */
public interface KnowledgeCategoryDao extends PagingAndSortingRepository<KnowledgeCategoryDO, String>, JpaSpecificationExecutor<KnowledgeCategoryDO> {
	@Query("update KnowledgeCategoryDO c set c.del = 0 where c.id = ?1")
	@Modifying
	void updateDel(String id);
}

+ 27 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseLinkDictDao.java

@ -0,0 +1,27 @@
package com.yihu.jw.base.dao.menu;
import com.yihu.jw.entity.base.menu.BaseLinkDictDO;
import com.yihu.jw.entity.base.menu.BaseMenuDictDO;
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;
public interface BaseLinkDictDao extends PagingAndSortingRepository<BaseLinkDictDO, String>, JpaSpecificationExecutor<BaseLinkDictDO> {
    @Query( value = "select max(t.link_sort) AS \"zuida\" from base_link_dict t where t.is_del='1'",nativeQuery = true)
    Integer getMaxSort();
    @Query( value = "select min(t.link_sort) AS \"zuixiao\" from base_link_dict t  where t.is_del='1'",nativeQuery = true)
    Integer getMinSort();
    @Modifying
    @Query("update BaseLinkDictDO p set p.isDel=?2 where p.id=?1")
    void updateStatus(String id,String status);
    @Modifying
    @Query("update BaseLinkDictDO p set p.isShow=?2 where p.id=?1")
    void updateShow(String id,String status);
    @Modifying
    @Query("update BaseLinkDictDO p set p.isDel=?2 where p.id=?1")
    void updateDel(String id,String status);
}

+ 23 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseMenuDictDao.java

@ -0,0 +1,23 @@
package com.yihu.jw.base.dao.menu;
import com.yihu.jw.entity.base.menu.BaseMenuDictDO;
import com.yihu.jw.entity.base.role.MenuDO;
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;
import java.util.List;
public interface BaseMenuDictDao extends PagingAndSortingRepository<BaseMenuDictDO, String>, JpaSpecificationExecutor<BaseMenuDictDO> {
    @Query( value = "select max(t.menu_sort) AS \"zuida\" from base_menu_dict t where t.parent_id=?1 and t.is_del='1'",nativeQuery = true)
    Integer getMaxSort(String parentId);
    @Query( value = "select min(t.menu_sort) AS \"zuixiao\" from base_menu_dict t where t.parent_id=?1 and t.is_del='1'",nativeQuery = true)
    Integer getMinSort(String parentId);
    @Modifying
    @Query("update BaseMenuDictDO p set p.status=?2 where p.id=?1")
    void updateStatus(String id,Integer status);
    @Query("from BaseMenuDictDO p where p.parentId=?1 and p.isDel='1'")
    List<BaseMenuDictDO> findByParentId(String parentId);
}

+ 18 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseMenuShowDao.java

@ -0,0 +1,18 @@
package com.yihu.jw.base.dao.menu;
import com.yihu.jw.entity.base.menu.BaseMenuDictDO;
import com.yihu.jw.entity.base.menu.BaseMenuShowDO;
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;
public interface BaseMenuShowDao  extends PagingAndSortingRepository<BaseMenuShowDO, String>, JpaSpecificationExecutor<BaseMenuShowDO> {
    @Modifying
    @Query("update BaseMenuShowDO p set p.isDel=?2 where p.id=?1")
    BaseMenuShowDO updateStatus(String id,String status);
    @Query( value = "select max(t.menu_sort) AS \"zuida\" from base_menu_show t where t.is_del='1'",nativeQuery = true)
    Integer getMaxSort();
    @Query( value = "select min(t.menu_sort) AS \"zuixiao\" from base_menu_show t where t.is_del='1'",nativeQuery = true)
    Integer getMinSort();
}

+ 433 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/article/ArticleEndpoint.java

@ -0,0 +1,433 @@
package com.yihu.jw.base.endpoint.article;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.article.KnowledgeArticleDictDao;
import com.yihu.jw.base.dao.article.KnowledgeArticleUserDao;
import com.yihu.jw.base.service.article.KnowledgeArticleService;
import com.yihu.jw.base.service.article.KnowledgeArticleUserService;
import com.yihu.jw.base.service.article.KnowledgeCategoryService;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.patient.BasePatientBusinessDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
import com.yihu.jw.entity.hospital.article.KnowledgeCategoryDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
 * 健康文章
 * @author huangwenjie
 */
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.PREFIX)
@Api(value = "文章管理接口", description = "文章管理接口", tags = {"文章管理接口"})
public class ArticleEndpoint extends EnvelopRestEndpoint {
	
	@Autowired
	private KnowledgeArticleService knowledgeArticleService;
	
	@Autowired
	private KnowledgeCategoryService knowledgeCategoryService;
	@Autowired
	private BaseDoctorHospitalDao doctorHospitalDao;
	@Autowired
	private KnowledgeArticleUserService knowledgeArticleUserService;
	@Autowired
	private KnowledgeArticleUserDao knowledgeArticleUserDao;
	@Autowired
	private KnowledgeArticleDictDao knowledgeArticleDictDao;
	
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.searchKnowledgePageList)
	@ApiOperation(value = "获取文章列表")
	public Envelop searchKnowledgePageList(
//			@ApiParam(name = "category_first", value = "1级分类编码")
//			@RequestParam(value = "category_first", required = false) String category_first,
//			@ApiParam(name = "category_secend", value = "2级分类编码")
//			@RequestParam(value = "category_second", required = false) String category_second,
//			@ApiParam(name = "keyword", value = "关键字")
//			@RequestParam(value = "keyword", required = false) String keyword,
//			@ApiParam(name = "status", value = "审核状态:0未审核,1已审核")
//			@RequestParam(value = "status", required = false) String status,
//			@ApiParam(name = "start", value = "开始时间")
//			@RequestParam(value = "start", required = false) String start,
//			@ApiParam(name = "end", value = "结束时间")
//			@RequestParam(value = "end", required = false) String end,
			@ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
			@RequestParam(value = "fields", required = false) String fields,
			@ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
			@RequestParam(value = "filters", required = false) String filters,
			@ApiParam(name = "sorts", value = "排序,规则参见说明文档")
			@RequestParam(value = "sorts", required = false) String sorts,
			@ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
			@RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
			@ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
			@RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
		try {
			if(StringUtils.isBlank(filters)){
				filters=filters+"del=1";
			}else{
				filters=filters+";del=1";
			}
			List<KnowledgeArticleDictDO> list  = knowledgeArticleService.search(fields,filters,sorts,page,pageSize);
			List<KnowledgeArticleDictDO> totals  = knowledgeArticleService.search(fields,filters,sorts);
			JSONObject result = new JSONObject();
			result.put("total",totals.size());
			result.put("detailModelList",list);
			return success(result);
		}catch (Exception e){
			return failedException(e);
		}
	}
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.searchKnowledgeList)
	@ApiOperation(value = "获取文章列表")
	public Envelop searchKnowledgeList(
			@ApiParam(name = "first", value = "second")
			@RequestParam(value = "first", required = false) String first,
			@ApiParam(name = "second", value = "second")
			@RequestParam(value = "second", required = false) String second,
			@ApiParam(name = "key", value = "关键字")
			@RequestParam(value = "key", required = false) String key,
			@ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
			@RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
			@ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
			@RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
		try {
			return success(knowledgeArticleService.findArticleList(first,second,key,page,pageSize));
		}catch (Exception e){
			return failedException(e);
		}
	}
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.queryById)
	@ApiOperation(value = "根据id查询文章")
	public Envelop queryByCode(
			@ApiParam(name = "id", value = "id", required = true)
			@RequestParam(value = "id", required = true)String id) throws Exception{
			try {
				KnowledgeArticleDictDO articleDO = knowledgeArticleService.retrieve(id);
				KnowledgeArticleUserDO knowledgeArticleUserDO = knowledgeArticleUserDao.findByrelationCodeAndUserAndDel(articleDO.getId(),getUID());
				if (knowledgeArticleUserDO!=null){
					articleDO.setIsUsed(knowledgeArticleUserDO.getUsed());
					articleDO.setKnowledgeArticleUserDO(knowledgeArticleUserDO);
				}
				List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(articleDO.getCreateUser());
				if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
					articleDO.setHospitalName(doctorHospitalDOS.get(0).getOrgName());
					articleDO.setDeptName(doctorHospitalDOS.get(0).getDeptName());
				}
				return success(articleDO);
			}catch (Exception e){
				return failedException(e);
			}
	}
	
	@PostMapping (value = BaseHospitalRequestMapping.KnowledgeArticle.deleteById)
	@ApiOperation(value = "根据id删除文章")
	public Envelop deleteById(
			@ApiParam(name = "id", value = "id,多个使用英文逗号分隔", required = true)
			@RequestParam(value = "id", required = true)String id)throws Exception {
			try {
				knowledgeArticleService.delArticle(id);
				return success("操作成功");
			}catch (Exception e){
				return failedException(e);
			}
	}
	
	@PostMapping (value = BaseHospitalRequestMapping.KnowledgeArticle.saveArticle)
	@ApiOperation(value = "保存/更新文章")
	public Envelop saveArticle(
			@ApiParam(name = "jsonData", value = "Json数据", required = true)
			@RequestParam String jsonData,
			@ApiParam(name = "menuId", value = "菜单id", required = true)
			@RequestParam String menuId)throws Exception {
		try {
			knowledgeArticleService.saveArticle(jsonData,menuId);
			return success("操作成功");
		}catch (Exception e){
			return failedException(e);
		}
	}
	
	@PostMapping (value = BaseHospitalRequestMapping.KnowledgeArticle.reviewArticle)
	@ApiOperation(value = "审核/退回文章")
	public Envelop saveArticle(
			@ApiParam(name = "articleId", value = "文章ID")
			@RequestParam(value = "articleId", required = true) String articleId,
			@ApiParam(name = "status", value = "0未审核,1已审核,2退回")
			@RequestParam(value = "status", required = true) Integer status,
			@ApiParam(name = "reason", value = "退回理由")
			@RequestParam(value = "reason", required = false) String reason
	)throws Exception {
		try {
			knowledgeArticleService.reviewArticle(articleId,status,reason);
			return success("操作成功");
		}catch (Exception e){
			return failedException(e);
		}
	}
	
	
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.searchCategoryList)
	@ApiOperation(value = "获取分类列表")
	public ListEnvelop searchCategoryList(
			@ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
			@RequestParam(value = "fields", required = false) String fields,
			@ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
			@RequestParam(value = "filters", required = false) String filters,
			@ApiParam(name = "sorts", value = "排序,规则参见说明文档")
			@RequestParam(value = "sorts", required = false) String sorts,
			@ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
			@RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
			@ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
			@RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
		try {
			List<KnowledgeCategoryDO> list  = knowledgeCategoryService.search(fields,filters,sorts,page,pageSize);
			List<KnowledgeCategoryDO> result = new ArrayList<>();
			for(KnowledgeCategoryDO knowledgeCategoryDO:list){
				if(knowledgeCategoryDO.getDel() == 1){
					result.add(knowledgeCategoryDO);
				}
			}
			return success(result);
		}catch (Exception e){
			return failedListEnvelopException(e);
		}
	}
	
	@PostMapping (value = BaseHospitalRequestMapping.KnowledgeArticle.saveCategory)
	@ApiOperation(value = "保存/更新分类")
	public Envelop saveCategory(
			@ApiParam(name = "jsonData", value = "Json数据", required = true)
			@RequestParam String jsonData)throws Exception {
		try {
			knowledgeCategoryService.saveCategory(jsonData);
			return success("操作成功");
		} catch (Exception e){
			return failedException(e);
		}
	}
	
	@PostMapping (value = BaseHospitalRequestMapping.KnowledgeArticle.updateDel)
	@ApiOperation(value = "根据分类code删除分类")
	public Envelop updateDel(
			@ApiParam(name = "id", value = "id", required = true)
			@RequestParam(value = "id", required = true)String id)throws Exception {
		try {
			Boolean flag = knowledgeCategoryService.updateDel(id);
			if (flag) {
				return success("操作成功");
			}else{
				return failed("操作失败");
			}
		}catch (Exception e){
			return failedException(e);
		}
		
	}
	@PostMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.saveArticleDept)
	@ApiOperation(value = "设置文章发送的科室")
	public ObjEnvelop saveArticleDept(@ApiParam(name = "articleId", value = "文章ID")
	                                 @RequestParam(value = "articleId",required = true)String articleId,
	                                 @ApiParam(name = "sdJsons", value = "部门与科室关系json")
	                                 @RequestParam(value = "sdJsons",required = true)String sdJsons)throws Exception {
		try {
			return success(knowledgeArticleService.saveArticleDept(articleId,sdJsons));
		}catch (Exception e){
			return failedObjEnvelopException(e);
		}
	}
	
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.findDeptByArticle)
	@ApiOperation(value = "查询文章下的科室")
	public ListEnvelop findDeptByArticle(@ApiParam(name = "articleId", value = "文章ID")
	                                    @RequestParam(value = "articleId",required = true)String articleId)throws Exception {
		try {
			return success(knowledgeArticleService.findDeptByArticle(articleId));
		}catch (Exception e){
			return failedListEnvelopException(e);
		}
	}
	
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.findArticleByDept)
	@ApiOperation(value = "查询部门下发放的文章")
	public ListEnvelop findArticleByDept(@ApiParam(name = "dept", value = "科室")
	                                    @RequestParam(value = "dept",required = true)String dept)throws Exception {
		try {
			return success(knowledgeArticleService.findArticleByDept(dept));
		}catch (Exception e){
			return failedListEnvelopException(e);
		}
	}
	
	@PostMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.saveDeptArticle)
	@ApiOperation(value = "设置科室发送的文章")
	public ObjEnvelop saveDeptArticle(@ApiParam(name = "dept", value = "部门code")
	                                 @RequestParam(value = "dept",required = true)String dept,
	                                 @ApiParam(name = "sdJsons", value = "部门与科室关系json")
	                                 @RequestParam(value = "sdJsons",required = false)String sdJsons)throws Exception {
		try {
			return success(knowledgeArticleService.saveDeptArticle(dept,sdJsons));
		}catch (Exception e){
			return failedObjEnvelopException(e);
		}
	}
	@PostMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.sendPatientBusiness)
	@ApiOperation(value = "发送文章/问卷")
	public ListEnvelop sendPatientBusiness(@ApiParam(name = "json", value = "患者业务关联表")
									  @RequestParam(value = "json",required = false)String json)throws Exception {
		try {
			ListEnvelop listEnvelop = new ListEnvelop();
			JSONArray jsonArray = JSONArray.parseArray(json);
			List<BasePatientBusinessDO> patientBusinessDOList = new ArrayList<>();
			for (int i=0;i<jsonArray.size();i++){
				JSONObject jsonObject = jsonArray.getJSONObject(i);
				BasePatientBusinessDO patientBusinessDO = toEntity(jsonObject.toJSONString(),BasePatientBusinessDO.class);
				patientBusinessDOList.add(patientBusinessDO);
			}
			listEnvelop.setDetailModelList(knowledgeArticleService.sendBusinessToPatient(patientBusinessDOList));
			return  listEnvelop;
		}catch (Exception e){
			return failedListEnvelopException(e);
		}
	}
	@PostMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.setArticleUsed)
	@ApiOperation(value = "设置文章为常用/不常用")
	public ObjEnvelop setArticleUsed(@ApiParam(name = "id", value = "文章id")
									  @RequestParam(value = "id",required = true)String id,
									  @ApiParam(name = "used", value = "常用")
									  @RequestParam(value = "used",required = false)Integer used,
									 @ApiParam(name = "doctor", value = "医生code")
										 @RequestParam(value = "doctor",required = false)String doctor)throws Exception {
		try {
			return success(knowledgeArticleService.setUsed(id,used,doctor));
		}catch (Exception e){
			return failedObjEnvelopException(e);
		}
}
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.searchArticleByStatus)
	@ApiOperation(value = "获取患者文章状态列表")
	public Envelop searchPatientArticleByStatus(
			@ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
			@RequestParam(value = "fields", required = false) String fields,
			@ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
			@RequestParam(value = "filters", required = false) String filters,
			@ApiParam(name = "sorts", value = "排序,规则参见说明文档")
			@RequestParam(value = "sorts", required = false) String sorts,
			@ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
			@RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
			@ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
			@RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
		try {
			if(StringUtils.isBlank(filters)){
				filters=filters+"del=1";
			}else{
				filters=filters+";del=1";
			}
			List<KnowledgeArticleUserDO> list  = knowledgeArticleUserService.search(fields,filters,sorts,page,pageSize);
			for (KnowledgeArticleUserDO knowledgeArticleUserDO:list){
				Integer type = knowledgeArticleUserDO.getRelationType();
				if (type==1){
					KnowledgeArticleDictDO knowledgeArticleDO = knowledgeArticleService.selectById(knowledgeArticleUserDO.getRelationCode());
					if (knowledgeArticleDO!=null){
						List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(knowledgeArticleDO.getCreateUser());
						if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
							knowledgeArticleDO.setDeptName(doctorHospitalDOS.get(0).getDeptName());
							knowledgeArticleDO.setHospitalName(doctorHospitalDOS.get(0).getOrgName());
						}
					}
					knowledgeArticleUserDO.setKnowledgeArticleDO(knowledgeArticleDO);
				}
			}
			List<KnowledgeArticleUserDO> totals  = knowledgeArticleUserService.search(fields,filters,sorts);
			JSONObject result = new JSONObject();
			result.put("total",totals.size());
			result.put("detailModelList",list);
			return success(result);
		}catch (Exception e){
			return failedException(e);
		}
	}
	@PostMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.findArticleByCategoryAndName)
	@ApiOperation(value = "查询文章")
	public MixEnvelop findArticleByCategoryAndName(@ApiParam(name = "categoryFirst", value = "一级分类code")
										   @RequestParam(value = "categoryFirst",required = false)String categoryFirst,
												   @ApiParam(name = "categorySecond", value = "二级分类code")
										   @RequestParam(value = "categorySecond",required = false)String categorySecond,
												   @ApiParam(name = "keyWords", value = "关键词")
										   @RequestParam(value = "keyWords",required = false)String keyWords,
												   @ApiParam(name = "page", value = "当前页")
										   @RequestParam(value = "page",required = false)Integer page,
												   @ApiParam(name = "pageSize", value = "分页大小)")
										   @RequestParam(value = "pageSize",required = false)Integer pageSize)throws Exception {
		MixEnvelop mixEnvelop=knowledgeArticleService.findArticleByCategoryAndName(categoryFirst,categorySecond,keyWords,page,pageSize);
		return mixEnvelop;
	}
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.getArticleGroup)
	@ApiOperation(value = "查询分类")
	public MixEnvelop getGroup(){
		try {
			MixEnvelop envelop = knowledgeCategoryService.findAllGroup();
			return envelop;
		}catch (Exception e){
			return failedMixEnvelopException(e);
		}
	}
	@PostMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.findPatientFavorite)
	@ApiOperation(value = "查询收藏文章")
	public Envelop findPatientFavorite(@ApiParam(name = "patient", value = "病人id")
												   @RequestParam(value = "patient",required = false)String patient,
												   @ApiParam(name = "page", value = "当前页")
												   @RequestParam(value = "page",required = false)Integer page,
												   @ApiParam(name = "pageSize", value = "分页大小)")
												   @RequestParam(value = "pageSize",required = false)Integer pageSize)throws Exception {
		try {
			return success(knowledgeArticleService.findPatientFavorite(patient,page,pageSize));
		}catch (Exception e){
			return failedException(e);
		}
	}
}

+ 12 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/doctor/BaseDoctorEndpoint.java

@ -9,7 +9,9 @@ import com.yihu.jw.base.service.doctor.excelImport.BaseDoctorExcelDOReader;
import com.yihu.jw.base.service.org.OrgTreeService;
import com.yihu.jw.base.service.org.OrgTreeService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.base.util.JavaBeanUtils;
import com.yihu.jw.base.util.JavaBeanUtils;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.dict.service.BaseIncentiveDictService;
import com.yihu.jw.hospital.dict.service.BaseIncentiveDictService;
import com.yihu.jw.restmodel.base.doctor.BaseDoctorVO;
import com.yihu.jw.restmodel.base.doctor.BaseDoctorVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.Envelop;
@ -70,6 +72,8 @@ public class BaseDoctorEndpoint extends EnvelopRestEndpoint {
    private BaseDoctorExcelDOReader doctorExcelDOReader;
    private BaseDoctorExcelDOReader doctorExcelDOReader;
    @Autowired
    @Autowired
    private BaseIncentiveDictService baseIncentiveDictService;
    private BaseIncentiveDictService baseIncentiveDictService;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Value("${wechat.id}")
    @Value("${wechat.id}")
    private String wechatId;
    private String wechatId;
@ -124,6 +128,14 @@ public class BaseDoctorEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
            @RequestParam(value = "size") int size) throws Exception {
        List<BaseDoctorDO> baseDoctors = baseDoctorService.search(fields, filters, sorts, page, size);
        List<BaseDoctorDO> baseDoctors = baseDoctorService.search(fields, filters, sorts, page, size);
        List<WlyyHospitalSysDictDO> list = wlyyHospitalSysDictDao.findByDictName("doctor_level");
        for(BaseDoctorDO baseDoctorDO:baseDoctors){
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
                if (baseDoctorDO.getLevel().equals(wlyyHospitalSysDictDO.getDictCode())){
                    baseDoctorDO.setLevelName(wlyyHospitalSysDictDO.getDictValue());
                }
            }
        }
        int count = (int) baseDoctorService.getCount(filters);
        int count = (int) baseDoctorService.getCount(filters);
        return success(baseDoctors, count, page, size, BaseDoctorVO.class);
        return success(baseDoctors, count, page, size, BaseDoctorVO.class);
    }
    }

+ 309 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseMenuManageEndpoint.java

@ -0,0 +1,309 @@
package com.yihu.jw.base.endpoint.menu;
import com.yihu.jw.base.service.menu.BaseMenuManageService;
import com.yihu.jw.base.service.role.RoleMenuService;
import com.yihu.jw.base.util.ErrorCodeUtil;
import com.yihu.jw.entity.base.menu.BaseLinkDictDO;
import com.yihu.jw.entity.base.menu.BaseMenuDictDO;
import com.yihu.jw.entity.base.menu.BaseMenuShowDO;
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.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @author yeshijie on 2018/9/26.
 */
@RestController
@RequestMapping(value = BaseRequestMapping.MenuDict.PREFIX)
@Api(value = "首页菜单管理", description = "首页菜单管理", tags = {"基础服务 - 首页菜单管理"})
public class BaseMenuManageEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseMenuManageService menuService;
    @PostMapping(value = BaseRequestMapping.MenuDict.deleteMenuDict)
    @ApiOperation(value = "删除菜单")
    public Envelop deleteMenuDict(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            menuService.deletMenuDict(id);
            return success("删除成功");
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuDict.createMenuDict)
    @ApiOperation(value = "新建或修改")
    public Envelop create (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) {
        try {
            BaseMenuDictDO baseMenuDictDO = menuService.createOrUpdateMenu(jsonData);
            return success(baseMenuDictDO);
        } catch (Exception e) {
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuDict.findOneMenuDict)
    @ApiOperation(value = "根据id查询链接单条")
    public Envelop findOneMenuDict(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            return success(menuService.findOneMenuDict(id));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuDict.MOVE_DOWN)
    @ApiOperation(value = "下移")
    public Envelop moveDown(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseMenuDictDO baseMenuDictDO = menuService.downMenu(id);
            return success(baseMenuDictDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuDict.MOVE_UP)
    @ApiOperation(value = "上移")
    public Envelop moveUp(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseMenuDictDO baseMenuDictDO = menuService.upMenu(id);
            return success(baseMenuDictDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuDict.STATUS)
    @ApiOperation(value = "生效/失效")
    public Envelop status(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id,
            @ApiParam(name = "status", value = "1生效,0失效", required = true)
            @RequestParam(value = "status") Integer status) {
        try {
            menuService.updateStatus(id, status);
            return success("修改成功");
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = BaseRequestMapping.MenuDict.LIST)
    @ApiOperation(value = "查询菜单字典列表")
    public Envelop findMenuDictByKey(
            @ApiParam(name = "parentId", value = "parentId", required = false)
            @RequestParam(value = "parentId",required = false) String parentId,
            @ApiParam(name = "name", value = "name", required = false)
            @RequestParam(value = "name",required = false) String name) {
        try {
            return success(menuService.findMenuDictByKey(parentId, name));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.LinkDict.createLinkDict)
    @ApiOperation(value = "新建或修改")
    public Envelop createLink (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) {
        try {
            BaseLinkDictDO baseLinkDictDO = menuService.createOrUpdateLink(jsonData);
            return success(baseLinkDictDO);
        } catch (Exception e) {
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.LinkDict.MOVELinkDOWN)
    @ApiOperation(value = "下移")
    public Envelop moveDownDict(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseLinkDictDO baseLinkDictDO = menuService.downlink(id);
            return success(baseLinkDictDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.LinkDict.MOVELinkUP)
    @ApiOperation(value = "上移")
    public Envelop moveLink(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseLinkDictDO baseLinkDictDO = menuService.upLink(id);
            return success(baseLinkDictDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.LinkDict.linkStatus)
    @ApiOperation(value = "生效/失效")
    public Envelop statusLink(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id,
            @ApiParam(name = "status", value = "1生效,0失效", required = true)
            @RequestParam(value = "status") String status) {
        try {
            menuService.updateLinkStatus(id, status);
            return success("修改成功");
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.LinkDict.findOneLink)
    @ApiOperation(value = "根据id查询链接单条")
    public Envelop findOneLink(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            return success(menuService.findOneLinkDict(id));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.LinkDict.deleteLink)
    @ApiOperation(value = "删除链接")
    public Envelop deleteLink(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            menuService.updateLinkDel(id);
            return success("删除成功");
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.LinkDict.linkShow)
    @ApiOperation(value = "生效/失效")
    public Envelop isShow(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id,
            @ApiParam(name = "status", value = "1展示0不展示", required = true)
            @RequestParam(value = "status") String status) {
        try {
            menuService.updateLinkShow(id, status);
            return success("修改成功");
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = BaseRequestMapping.LinkDict.findLinkDictALL)
    @ApiOperation(value = "查询友情链接字典列表")
    public Envelop findLinkDictByKey(
            @ApiParam(name = "name", value = "name", required = false)
            @RequestParam(value = "name",required = false) String name,
            @ApiParam(name = "status", value = "status", required = false)
            @RequestParam(value = "status",required = false) String status) {
        try {
            return success(menuService.findLinkDict(name,status));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuShow.menuShowstatus)
    @ApiOperation(value = "移除")
    public Envelop removeMenu(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            menuService.removeMenu(id);
            return success("修改成功");
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuShow.createMenuShow)
    @ApiOperation(value = "新建或修首页菜单")
    public Envelop createMenuShow (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) {
        try {
            menuService.saveMenuShow(jsonData);
            return success("操作成功");
        } catch (Exception e) {
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuShow.MOVEMenuShowDOWN)
    @ApiOperation(value = "下移")
    public Envelop moveDownShow(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseMenuShowDO  baseMenuShowDO= menuService.downMenuShow(id);
            return success(baseMenuShowDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
    @PostMapping(value = BaseRequestMapping.MenuShow.MOVEMenuShowUP)
    @ApiOperation(value = "上移")
    public Envelop moveUpShow(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseMenuShowDO baseMenuShowDO = menuService.upMenuShow(id);
            return success(baseMenuShowDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = BaseRequestMapping.MenuShow.findMenuShow)
    @ApiOperation(value = "查询首页列表")
    public Envelop findMenuShowByKey(
            @ApiParam(name = "parentId", value = "parentId", required = false)
            @RequestParam(value = "parentId",required = false) String parentId,
            @ApiParam(name = "name", value = "name", required = false)
            @RequestParam(value = "name",required = false) String name) {
        try {
            return success(menuService.findMenuShow());
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = BaseRequestMapping.MenuShow.findMenuShowDict)
    @ApiOperation(value = "查询首页菜单词典列表")
    public Envelop findMenuShowDict(@ApiParam(name = "parentId", value = "parentId", required = false)
                                        @RequestParam(value = "parentId",required = false) String parentId,
                                    @ApiParam(name = "name", value = "name", required = false)
                                        @RequestParam(value = "name",required = false) String name) {
        try {
            return success(menuService.findMenuDictParent(parentId,name));
        }catch (Exception e){
            return failedException(e);
        }
    }
}

+ 65 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseMenuNoLoginEndpoint.java

@ -0,0 +1,65 @@
package com.yihu.jw.base.endpoint.menu;
import com.yihu.jw.base.service.menu.BaseMenuManageService;
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = BaseRequestMapping.MenuNologin.PREFIX)
@Api(value = "首页菜单管理免登录接口", description = "首页菜单管理免登录接口", tags = {"基础服务 - 首页菜单管理免登录接口"})
public class BaseMenuNoLoginEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseMenuManageService menuService;
    @GetMapping(value = BaseRequestMapping.MenuNologin.findAllMenu)
    @ApiOperation(value = "查询首页列表")
    public Envelop findMenuShowByKey(
            @ApiParam(name = "parentId", value = "parentId", required = false)
            @RequestParam(value = "parentId",required = false) String parentId,
            @ApiParam(name = "name", value = "name", required = false)
            @RequestParam(value = "name",required = false) String name) {
        try {
            return success(menuService.findMenuShow());
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = BaseRequestMapping.MenuNologin.findMenuByParentId)
    @ApiOperation(value = "查询二级菜单")
    public Envelop findMenuByParentId(
            @ApiParam(name = "parentId", value = "parentId", required = false)
            @RequestParam(value = "parentId",required = false) String parentId,
            @ApiParam(name = "status", value = "status", required = false)
            @RequestParam(value = "status",required = false) Integer status) {
        try {
            return success(menuService.findByParentId(parentId,status));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = BaseRequestMapping.MenuNologin.findArticleByMenuId)
    @ApiOperation(value = "查询文章")
    public Envelop findArticleByMenuid(
            @ApiParam(name = "menuId", value = "menuId", required = false)
            @RequestParam(value = "menuId",required = true) String menuId,
            @ApiParam(name = "page", value = "page", required = false)
            @RequestParam(value = "page",required = true) Integer page,
            @ApiParam(name = "pageSize", value = "pageSize", required = false)
            @RequestParam(value = "pageSize",required = true) Integer pageSize) {
        try {
            return success(menuService.findArticleByMenuId(menuId,page,pageSize));
        }catch (Exception e){
            return failedException(e);
        }
    }
}

+ 469 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeArticleService.java

@ -0,0 +1,469 @@
package com.yihu.jw.base.service.article;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.article.KnowledgeArticleDictDao;
import com.yihu.jw.base.dao.article.KnowledgeArticleDeptDao;
import com.yihu.jw.base.dao.article.KnowledgeArticleMenuDao;
import com.yihu.jw.base.dao.article.KnowledgeArticleUserDao;
import com.yihu.jw.base.dao.menu.BaseMenuDictDao;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.menu.BaseMenuDictDO;
import com.yihu.jw.entity.base.patient.BasePatientBusinessDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDeptDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.survey.WlyySurveyTemplateDO;
import com.yihu.jw.entity.hospital.survey.WlyySurveyUserDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.survey.dao.SurveyTemplateDao;
import com.yihu.jw.hospital.survey.dao.SurveyUserDao;
import com.yihu.jw.patient.dao.BasePatientBusinessDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.EntityUtils;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
 * 健康文章业务层代码
 * @author huangwenjie
 * @date 2019/9/10 13:54
 */
@Service
public class KnowledgeArticleService extends BaseJpaService<KnowledgeArticleDictDO, KnowledgeArticleDictDao> {
	
	@Autowired
	private KnowledgeArticleDictDao knowledgeArticleDictDao;
	@Autowired
	private BaseMenuDictDao baseMenuDictDao;
	
	@Autowired
	private KnowledgeArticleDeptDao knowledgeArticleDeptDao;
	@Autowired
	private WlyyHospitalSysDictDao hospitalSysDictDao;
	@Autowired
	private BasePatientBusinessDao patientBusinessDao;
	@Autowired
	private KnowledgeArticleUserDao knowledgeArticleUserDao;
	@Autowired
	private BaseDoctorHospitalDao doctorHospitalDao;
	@Autowired
	private BaseDoctorDao doctorDao;
	@Autowired
	private SurveyUserDao surveyUserDao;
	@Autowired
	private SurveyTemplateDao surveyTemplateDao;
	@Autowired
    private HibenateUtils hibenateUtils;
	//查询文章列表
	public List<Map<String,Object>> findArticleList(String first,String second ,String key,Integer page ,Integer pageSize){
		String sql ="select b.id as \"id\", " +
				" b.title as \"title\"," +
				" b.intro as \"intro\"," +
				" b.category_first as \"categoryFirst\"," +
				" b.category_first_name as \"categoryFirstName\"," +
				" b.category_second as \"category_second\"," +
				" b.category_second_name as \"categorySecondName\"," +
				" b.create_user as \"createUser\"," +
				" b.status as \"status\"," +
				" b.used as \"used\"," +
				" b.create_user_name as \"createUserName\"," +
				" b.create_time as \"createTime\"," +
				" b.check_time as \"checkTime\"," +
				" b.release_status as \"releaseStatus\"," +
				" t.menu_id as \"menuId\"," +
				" t.parent_id as \"parentId\"," +
				" t.menu_name as \"menuName\"  " +
				" from wlyy_knowledge_article_menu t left join wlyy_knowledge_article b" +
				" on t.article_id=b.id left join base_menu_dict c " +
				" on c.id= t.menu_id where t.del=1";
		if (StringUtils.isNotBlank(first)){
			sql+=" and t.category_first ='"+first+"'";
		}
		if (StringUtils.isNotBlank(second)){
			sql+=" and t.category_second ='"+second+"'";
		}
		if (StringUtils.isNotBlank(key)){
			sql+=" and (t.title like '%"+first+"&' or t.intro like '%"+key+"%' or t.content like '%"+key+"%')";
		}
		List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
		for (Map<String,Object> map:list){
			if (!"0".equalsIgnoreCase(map.get("parentId").toString())){
				BaseMenuDictDO baseMenuDictDO = baseMenuDictDao.findOne(map.get("parentId").toString());
				if (baseMenuDictDO!=null){
					map.put("parentName",baseMenuDictDO.getName());
				}
			}else {
				map.put("parentName",map.get("menuName").toString());
			}
		}
		return list;
	}
	
	/**
	 * 删除,支持批量
	 * @param id
	 */
	public boolean delArticle(String id){
		String[] split = id.split(",|,");
		String ids = StringUtils.join(split, ",");
		String sql = "update wlyy_knowledge_article a set a.del = 0 where a.id in(" + ids + ")";
		String sqlUser = "update wlyy_knowledge_article_user a set a.del = 0 where a.relation_code in(" + ids + ")";
		String sqlBussiness = "update base_patient_business a set a.del = 0 where a.relation_code in(" + ids + ")";
		int update = jdbcTemplate.update(sql);
		int updateUser = jdbcTemplate.update(sqlUser);
		int updateBussiness  = jdbcTemplate.update(sqlBussiness);
		if (update > 0||updateUser>0||updateBussiness>0) {
			return true;
		}
		return false;
	}
	
	/**
	 * 更新/保存健康文章
	 * @param jsonData
	 * @return
	 * @throws Exception
	 */
	public KnowledgeArticleDictDO saveArticle(String jsonData,String menuId) throws  Exception {
		WlyyHospitalSysDictDO wlyyHospitalSysDictDO = hospitalSysDictDao.findById("EXAMINE");
		KnowledgeArticleDictDO knowledgeArticleDO = EntityUtils.jsonToEntity(jsonData, KnowledgeArticleDictDO.class);
		if (null == knowledgeArticleDO.getId()) {
			// 新增
			knowledgeArticleDO.setId(UUID.randomUUID().toString().replace("-", ""));
			knowledgeArticleDO.setCreateTime(new Date());
//			knowledgeArticleDO.setSource("客服");
			knowledgeArticleDO.setDel(1);
			if (wlyyHospitalSysDictDO!=null&&wlyyHospitalSysDictDO.getDictValue().equalsIgnoreCase("0")){
				knowledgeArticleDO.setStatus(1);
			}
			knowledgeArticleDO = knowledgeArticleDictDao.save(knowledgeArticleDO);
			/*if (StringUtils.isNotBlank(menuId)){
				BaseMenuDictDO baseMenuDictDO = baseMenuDictDao.findOne(menuId);
				KnowledgeArticleMenuDO knowledgeArticleMenuDO = new KnowledgeArticleMenuDO();
				if (baseMenuDictDO!=null){
					knowledgeArticleMenuDO.setArticleId(knowledgeArticleDO.getId());
					knowledgeArticleMenuDO.setMenuId(menuId);
					knowledgeArticleMenuDO.setMenuName(baseMenuDictDO.getName());
				}
			}*/
			return knowledgeArticleDO;
		} else {
			KnowledgeArticleDictDO one = knowledgeArticleDictDao.findOne(knowledgeArticleDO.getId());
			one.setTitle(knowledgeArticleDO.getTitle());
			one.setContent(knowledgeArticleDO.getContent());
			one.setImage(knowledgeArticleDO.getImage());
			one.setUpdateTime(new Date());
			if (wlyyHospitalSysDictDO!=null&&wlyyHospitalSysDictDO.getDictValue().equalsIgnoreCase("0")){
				one.setStatus(1);
			}
			knowledgeArticleDictDao.save(one);
			return  one;
		}
	}
	
	//审核/退回文章
	public KnowledgeArticleDictDO reviewArticle(String articleId,Integer status,String reason) throws Exception{
		KnowledgeArticleDictDO knowledgeArticleDO = knowledgeArticleDictDao.findOne(articleId);
		if (null == knowledgeArticleDO) {
			throw new Exception("该文章不存在");
		} else {
			knowledgeArticleDO.setStatus(status);
			knowledgeArticleDO.setUpdateTime(new Date());
			if(StringUtils.isNotBlank(reason)){
				knowledgeArticleDO.setCancelReason(reason);
			}
			knowledgeArticleDictDao.save(knowledgeArticleDO);
			return  knowledgeArticleDO;
		}
	}
	
	/**
	 * 保存文章科室关系
	 * @param articleId
	 * @param sdJsons
	 * @return
	 * @throws Exception
	 */
	public Boolean saveArticleDept(String articleId,String sdJsons)throws Exception{
		
		//删除之前关系
		List<KnowledgeArticleDeptDO> list = knowledgeArticleDeptDao.findByArticleId(articleId);
		if(list!=null&&list.size()>0){
			knowledgeArticleDeptDao.delete(list);
		}
		
		if(org.apache.commons.lang3.StringUtils.isNotBlank(sdJsons)){
			List<KnowledgeArticleDeptDO> _list = EntityUtils.jsonToList(sdJsons,KnowledgeArticleDeptDO.class);
			if(_list!=null&&_list.size()>0){
				knowledgeArticleDeptDao.save(_list);
			}
		}
		return true;
	}
	
	/**
	 * 查询文章下科室
	 * @param articleId
	 * @return
	 */
	public List<Map<String,Object>> findDeptByArticle(String articleId)throws Exception{
		String sql ="SELECT " +
				" d.article_id AS articleId," +
				" d.dept, " +
				" d.dept_name AS deptName " +
				" FROM " +
				" wlyy_knowledge_article t " +
				" JOIN wlyy_knowledge_article_dept d ON t.id = d.article_id " +
				" WHERE " +
				" t.id = '"+articleId+"'";
		List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
		return list;
	}
	
	/**
	 * 查询部门下的文章
	 * @param dept
	 * @return
	 */
	public List<Map<String,Object>> findArticleByDept(String dept)throws Exception{
		String sql = "SELECT " +
				" t.id as \"id\", " +
				" t.title as \"title\", " +
				" t.create_time AS \"create_time\" ," +
				" t.image AS \"image\" " +
				" FROM " +
				" wlyy_knowledge_article t " +
				" JOIN wlyy_knowledge_article_dept d ON t.id = d.article_id " +
				" WHERE " +
				" d.dept = '"+dept+"'";
		List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
		return list;
	}
	
	/**
	 * 设置部门发送文章
	 * @param dept
	 * @param sdJsons
	 * @return
	 */
	public Boolean saveDeptArticle(String dept, String sdJsons) throws Exception{
		
		//删除之前关系
		List<KnowledgeArticleDeptDO> dels = knowledgeArticleDeptDao.findByDept(dept);
		if(dels!=null&&dels.size()>0){
			knowledgeArticleDeptDao.delete(dels);
		}
		
		if(org.apache.commons.lang3.StringUtils.isNotBlank(sdJsons)){
			List<KnowledgeArticleDeptDO> list = EntityUtils.jsonToList(sdJsons,KnowledgeArticleDeptDO.class);
			if(list!=null&&list.size()>0){
				knowledgeArticleDeptDao.save(list);
			}
		}
		return true;
	}
	/**
	 *	患者接收问卷/文章
	 * @param businessDOS
	 * @return
	 */
	public List<BasePatientBusinessDO> sendBusinessToPatient(List<BasePatientBusinessDO> businessDOS) throws Exception {
		if (businessDOS!=null&&businessDOS.size()!=0){
			for (BasePatientBusinessDO patientBusinessDO:businessDOS){
				BasePatientBusinessDO basePatientBusinessDO = patientBusinessDao.findByPatientAndRelationCodeAndDel(patientBusinessDO.getPatient(),patientBusinessDO.getRelationCode());
				if (basePatientBusinessDO != null) {
					throw new Exception("已发送过!");
				}
				patientBusinessDO.setCreateTime(new Date());
				patientBusinessDO.setUpdateTime(new Date());
				patientBusinessDO.setCreateUser(patientBusinessDO.getDoctor());
				patientBusinessDO.setUpdateUser(patientBusinessDO.getDoctor());
				patientBusinessDO.setCreateUserName(patientBusinessDO.getDoctorName());
				patientBusinessDO.setUpdateUserName(patientBusinessDO.getUpdateUserName());
				patientBusinessDO.setCollection(0);
				patientBusinessDO.setDel(1);
				patientBusinessDO = patientBusinessDao.save(patientBusinessDO);
					if (patientBusinessDO.getRelationType()==1){
						KnowledgeArticleDictDO knowledgeArticleDO = knowledgeArticleDictDao.findByIdAndDel(patientBusinessDO.getRelationCode());
					System.out.println("content:"+JSON.toJSONString(knowledgeArticleDO));
					JSONObject object = new JSONObject();
					object.put("id",knowledgeArticleDO.getId());
					object.put("title",knowledgeArticleDO.getTitle());
					object.put("content",knowledgeArticleDO.getIntro());
					object.put("img",knowledgeArticleDO.getImage());
				}else {
					WlyySurveyUserDO wlyySurveyUserDO = new WlyySurveyUserDO();
					String doctor = patientBusinessDO.getDoctor();
					BaseDoctorDO doctorDO = doctorDao.findById(doctor);
					wlyySurveyUserDO.setDept(doctorDO.getVisitDept());
					wlyySurveyUserDO.setDeptName(doctorDO.getVisitDeptName());
					wlyySurveyUserDO.setDoctor(doctor);
					wlyySurveyUserDO.setDoctorName(doctorDO.getName());
					wlyySurveyUserDO.setStatus(0);
					wlyySurveyUserDO.setPatient(patientBusinessDO.getPatient());
					wlyySurveyUserDO.setPatientName(patientBusinessDO.getPatientName());
					wlyySurveyUserDO.setSurveyTempCode(patientBusinessDO.getRelationCode());
					wlyySurveyUserDO.setSurveyTempTitle(patientBusinessDO.getRelationName());
					wlyySurveyUserDO.setCreateTime(new Date());
					wlyySurveyUserDO.setEndTime(new Date());
					wlyySurveyUserDO = surveyUserDao.save(wlyySurveyUserDO);
					JSONObject object = new JSONObject();
					WlyySurveyTemplateDO wlyySurveyTemplateDO = surveyTemplateDao.findOne(wlyySurveyUserDO.getSurveyTempCode());
					if (null!=wlyySurveyTemplateDO){
						object.put("title",wlyySurveyTemplateDO.getTitle());
						object.put("content",wlyySurveyTemplateDO.getTemplateComment());
						object.put("id",wlyySurveyTemplateDO.getId());
					}
				}
			}
		}
		return businessDOS;
	}
	/**
	 * 设置为1常用或者0不常用
	 * @param id
	 * @param used
	 * @return
	 */
	public KnowledgeArticleDictDO setUsed(String id,Integer used,String doctor){
		KnowledgeArticleDictDO knowledgeArticleDO = knowledgeArticleDictDao.findByIdAndDel(id);
		BaseDoctorDO doctorDO = doctorDao.findById(doctor);
		KnowledgeArticleUserDO knowledgeArticleUserDO =knowledgeArticleUserDao.findByrelationCodeAndUserAndDel(id,doctor);
		if (knowledgeArticleUserDO==null){
			knowledgeArticleUserDO = new KnowledgeArticleUserDO();
			knowledgeArticleUserDO.setRelationCode(id);
			knowledgeArticleUserDO.setRelationName(knowledgeArticleDO.getTitle());
			knowledgeArticleUserDO.setRelationType(1);
			knowledgeArticleUserDO.setDel(1);
			knowledgeArticleUserDO.setUser(doctor);
			if (doctorDO!=null){
				knowledgeArticleUserDO.setUserName(doctorDO.getName());
				knowledgeArticleUserDO.setCreateUserName(doctorDO.getName());
			}
			knowledgeArticleUserDO.setCreateTime(new Date());
			knowledgeArticleUserDO.setUpdateTime(new Date());
			knowledgeArticleUserDO.setCreateUser(doctor);
			knowledgeArticleUserDO.setUpdateUser(doctor);
			knowledgeArticleUserDO.setUsed(used);
			knowledgeArticleUserDO = knowledgeArticleUserDao.save(knowledgeArticleUserDO);
		}
        if (knowledgeArticleDO!=null){
            if (knowledgeArticleDO.getUsed()!=null){
            	if (used==1){
					knowledgeArticleUserDO.setUsed(1);
					knowledgeArticleDO.setUsed(knowledgeArticleDO.getUsed()+1);
				}else if (used==0){
            		knowledgeArticleUserDO.setUsed(0);
            		knowledgeArticleDO.setUsed(knowledgeArticleDO.getUsed()-1);
				}
			}else {
				if (used==1){
					knowledgeArticleDO.setUsed(1);
				}else if (used==0){
					knowledgeArticleDO.setUsed(0);
				}
			}
        }
		knowledgeArticleUserDO.setRelationName(knowledgeArticleDO.getTitle());
        knowledgeArticleUserDao.save(knowledgeArticleUserDO);
		return knowledgeArticleDictDao.save(knowledgeArticleDO);
	}
	public KnowledgeArticleDictDO selectById(String id){
		return knowledgeArticleDictDao.findByIdAndDel(id);
	}
	//根据分类查询文章
	public MixEnvelop findArticleByCategoryAndName(String categoryFirst, String categorySecond, String keyWords, Integer page, Integer pageSize){
		MixEnvelop objEnvelop = new MixEnvelop();
		String sql = "select t.id as \"id\",t.title as \"title\",t.read_count as \"readCount\"," +
				"t.collection as \"collection\",t.fabulous as \"fabulous\",t.is_share as \"share\"," +
                " t.intro as \"intro\",t.category_first_name as \"categoryFirstName\"," +
                " t.category_second_name as \"categorySecondName\" ," +
                "t.content as \"content\",t.image as \"image\",t.create_user_name as \"createUserName\",c.job_title_name as \"jobTitleName\"," +
                "b.dept_name as \"deptName\",b.org_name as \"hospitalName\"," +
				"t.create_time as \"createTime\" " +
				" from wlyy_knowledge_article t left join wlyy_knowledge_article_dept a " +
                " on a.article_id = t.id left join base_doctor_hospital b on b.doctor_code = t.create_user" +
				" left join base_doctor c on c.id = t.create_user where 1=1 and t.del = 1 and t.status = 1";
		if (StringUtils.isNotBlank(categoryFirst)){
		    sql+=" and t.category_first = '"+categoryFirst+"'";
        }
		if (StringUtils.isNotBlank(categorySecond)){
			sql+=" and t.category_second ='"+categorySecond+"'";
		}
        if (StringUtils.isNotBlank(keyWords)){
            sql+=" and (t.create_user_name like '%"+keyWords+"%' or t.title like '%"+keyWords+"%' or t.content like '%"+keyWords+"%' or a.dept_name like '%"+keyWords+"%' )";
        }
		sql+=" group by t.id ,t.title ,t.intro,t.category_first_name ,t.category_second_name ,c.job_title_name," +
				"t.read_count,t.collection,t.fabulous,t.is_share,t.content ,t.image ,t.create_user_name ,b.dept_name ,b.org_name,t.create_time " +
				" order by t.create_time desc";
        List<Map<String,Object>> result = hibenateUtils.createSQLQuery(sql,page,pageSize);
        List<Map<String,Object>> countList = hibenateUtils.createSQLQuery(sql);
        objEnvelop.setObj(result);
        objEnvelop.setTotalCount(countList.size());
        objEnvelop.setPageSize(pageSize);
        objEnvelop.setCurrPage(page);
        return objEnvelop;
	}
	//查询患者收藏的文章列表
	public JSONObject findPatientFavorite(String patient,Integer page,Integer pageSize){
		String sql = "select t.id as \"id\",t.user_code as \"user\",t.user_name as \"userName\"," +
				"t.relation_code as \"relationCode\"," +
				"t.relation_type as \"relationType\"," +
				"t.relation_name as \"relationName\"," +
				"t.is_read as \"isRead\",t.fabulous as \"fabulous\"," +
				"t.is_share as \"share\"," +
				"t.collection as \"collection\",t.used as \"used\",t.del as \"del\"";
		sql+=" from wlyy_knowledge_article_user t left join wlyy_knowledge_article a" +
				" on t.relation_code = a.id where 1=1 and a.del=1 and a.collection=1 ";
		if (StringUtils.isNotEmpty(patient)){
			sql+=" and t.user_code = '"+patient+"'";
		}
		List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
		if(list!=null&&list.size()>0){
			for (Map<String,Object> map:list){
				String relationCode = map.get("relationCode").toString();
				String type =  map.get("relationType").toString();
				if ("1".equalsIgnoreCase(type)){
					KnowledgeArticleDictDO knowledgeArticleDO = this.selectById(relationCode);
					if (knowledgeArticleDO!=null){
						List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(knowledgeArticleDO.getCreateUser());
						if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
							knowledgeArticleDO.setDeptName(doctorHospitalDOS.get(0).getDeptName());
							knowledgeArticleDO.setHospitalName(doctorHospitalDOS.get(0).getOrgName());
						}
					}
					map.put("KnowledgeArticleUserDO",knowledgeArticleDO);
				}
			}
		}
		List<Map<String,Object>> listCount = hibenateUtils.createSQLQuery(sql);
		JSONObject result = new JSONObject();
		result.put("total",listCount.size());
		result.put("detailModelList",list);
		return result;
	}
}

+ 20 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeArticleUserService.java

@ -0,0 +1,20 @@
package com.yihu.jw.base.service.article;
import com.yihu.jw.base.dao.article.KnowledgeArticleUserDao;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * 健康文章中间表层代码
 * @author
 * @date
 */
@Service
public class KnowledgeArticleUserService extends BaseJpaService<KnowledgeArticleUserDO, KnowledgeArticleUserDao> {
	
}

+ 80 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeCategoryService.java

@ -0,0 +1,80 @@
package com.yihu.jw.base.service.article;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.article.KnowledgeArticleDictDao;
import com.yihu.jw.base.dao.article.KnowledgeCategoryDao;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeCategoryDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.net.URLDecoder;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 健康文章分类
 * @author huangwenjie
 */
@Service
public class KnowledgeCategoryService extends BaseJpaService<KnowledgeCategoryDO, KnowledgeCategoryDao> {
	@Autowired
	private KnowledgeCategoryDao knowledgeCategoryDao;
	@Autowired
	private KnowledgeArticleDictDao articleDao;
	
	@Autowired
	private ObjectMapper objectMapper;
	@Autowired
	private HibenateUtils hibenateUtils;
	public KnowledgeCategoryDO saveCategory(String jsonData) throws Exception {
		jsonData = URLDecoder.decode(jsonData,"utf-8");
		KnowledgeCategoryDO knowledgeCategoryDO = objectMapper.readValue(jsonData, KnowledgeCategoryDO.class);
		if (null == knowledgeCategoryDO.getPid()) {
			knowledgeCategoryDO.setPid("0");
		}
		if (null == knowledgeCategoryDO.getId()) {
			// 新增
			knowledgeCategoryDO.setCreateTime(new Date());
			knowledgeCategoryDO.setDel(1);
		} else {
			KnowledgeCategoryDO one = knowledgeCategoryDao.findOne(knowledgeCategoryDO.getId());
			knowledgeCategoryDO.setId(one.getId());
			knowledgeCategoryDO.setDel(one.getDel());
			knowledgeCategoryDO.setUpdateTime(new Date());
		}
		return knowledgeCategoryDao.save(knowledgeCategoryDO);
	}
	
	@Transactional
	public Boolean updateDel(String code) {
		List<KnowledgeArticleDictDO> byCategory = articleDao.findByCategory(code);
		if (null != byCategory && byCategory.size() > 0) {
			return false;
		}
		knowledgeCategoryDao.updateDel(code);
		return true;
	}
	public MixEnvelop findAllGroup(){
		String sqlPid = "select id as \"id\",name as \"name\",pid as \"pid\" from wlyy_knowledge_category  where pid = '0' and del = 1";
		List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sqlPid);
		String child = "select id as \"id\",name as \"name\",pid as \"pid\" from wlyy_knowledge_category  where del = 1";
		if (list.size()>0){
			for (Map<String,Object> map:list){
				String pid = map.get("id").toString();
				child+=" and pid = '"+pid+"'";
				List<Map<String,Object>> childList = hibenateUtils.createSQLQuery(child);
				map.put("childList",childList);
			}
		}
		MixEnvelop envelop = new MixEnvelop();
		envelop.setDetailModelList(list);
		return envelop;
	}
}

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorHospitalService.java

@ -63,7 +63,7 @@ public class BaseDoctorHospitalService extends BaseJpaService<BaseDoctorHospital
     * 根据医生标识获取医生已经选择的机构和职务信息
     * 根据医生标识获取医生已经选择的机构和职务信息
     *
     *
     * @param doctorCode
     * @param doctorCode
     * @return
     * @returnb
     */
     */
    List<Map<String, Object>> getOrgAndDutyListByDoctorCode(String doctorCode) {
    List<Map<String, Object>> getOrgAndDutyListByDoctorCode(String doctorCode) {
        List<Map<String, Object>> result = new ArrayList<>();
        List<Map<String, Object>> result = new ArrayList<>();

+ 14 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -161,7 +161,12 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
            result.put("response",ConstantUtils.FAIL);
            result.put("response",ConstantUtils.FAIL);
            return result;
            return result;
        }
        }
        List<WlyyHospitalSysDictDO> list = wlyyHospitalSysDictDao.findByDictName("doctor_level");
        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
            if (doctors.getLevel().equals(wlyyHospitalSysDictDO.getDictCode())){
                doctors.setLevelName(wlyyHospitalSysDictDO.getDictValue());
            }
        }
        //医生归属业务模块角色信息,非必填,数据可有可没有
        //医生归属业务模块角色信息,非必填,数据可有可没有
        String[] paramNames = {"doctorCode"};
        String[] paramNames = {"doctorCode"};
        Object[] paramValue = {doctorId};
        Object[] paramValue = {doctorId};
@ -251,6 +256,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                "\ttb.orgName AS \"orgName\",\n" +
                "\ttb.orgName AS \"orgName\",\n" +
                "\ttb.deptname AS \"deptname\",\n" +
                "\ttb.deptname AS \"deptname\",\n" +
                "\ttb.doctorDutyName AS \"doctorDutyName\",\n" +
                "\ttb.doctorDutyName AS \"doctorDutyName\",\n" +
                "\ttb.doctor_level AS \"doctorLevel\",\n" +
                "\ttb.mobile AS \"mobile\",";
                "\ttb.mobile AS \"mobile\",";
        if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
        if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
            if (flag){
            if (flag){
@ -280,6 +286,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                "\t\t\t'未知'\n" +
                "\t\t\t'未知'\n" +
                "\t\tEND AS sex,\n" +
                "\t\tEND AS sex,\n" +
                "\t\tdoc.mobile,\n" +
                "\t\tdoc.mobile,\n" +
                "\t\tdoc.doctor_level,\n" +
                "\t\thos.org_name || '/' || dept. NAME || '/' || hos.doctor_duty_name AS org,\n" +
                "\t\thos.org_name || '/' || dept. NAME || '/' || hos.doctor_duty_name AS org,\n" +
                "\t\thos.org_name as orgName,\n" +
                "\t\thos.org_name as orgName,\n" +
                "\t\tdept.NAME as deptname,\n" +
                "\t\tdept.NAME as deptname,\n" +
@ -407,11 +414,17 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
//        List<Map<String,Object>> list = jdbcTemplate.queryForList(finalSql);
//        List<Map<String,Object>> list = jdbcTemplate.queryForList(finalSql);
        Logger.getAnonymousLogger().info("finalCountSql="+countSql);
        Logger.getAnonymousLogger().info("finalCountSql="+countSql);
        int count = jdbcTemplate.queryForObject(countSql,Integer.class);
        int count = jdbcTemplate.queryForObject(countSql,Integer.class);
        List<WlyyHospitalSysDictDO> listDict = wlyyHospitalSysDictDao.findByDictName("doctor_level");
        for (Map<String,Object> map:list){
        for (Map<String,Object> map:list){
            String orgname = map.get("orgName")==null?"":map.get("orgName").toString();
            String orgname = map.get("orgName")==null?"":map.get("orgName").toString();
            String deptname = map.get("deptname")==null?"":map.get("deptname").toString();
            String deptname = map.get("deptname")==null?"":map.get("deptname").toString();
            String doctorDutyName = map.get("doctorDutyName")==null?"":map.get("doctorDutyName").toString();
            String doctorDutyName = map.get("doctorDutyName")==null?"":map.get("doctorDutyName").toString();
            map.put("orgInfo",orgname+"/"+deptname+"/"+doctorDutyName);
            map.put("orgInfo",orgname+"/"+deptname+"/"+doctorDutyName);
            /*for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:listDict){
                if (map.get("doctorlevel").toString().equals(wlyyHospitalSysDictDO.getDictCode())){
                    map.put("levelName",wlyyHospitalSysDictDO.getDictValue());
                }
            }*/
        }
        }
        result.put("count", count);
        result.put("count", count);
        result.put("msg", JavaBeanUtils.getInstance().mapListJson(list));
        result.put("msg", JavaBeanUtils.getInstance().mapListJson(list));

+ 691 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/menu/BaseMenuManageService.java

@ -0,0 +1,691 @@
package com.yihu.jw.base.service.menu;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.article.KnowledgeArticleDictDao;
import com.yihu.jw.base.dao.article.KnowledgeArticleMenuDao;
import com.yihu.jw.base.dao.menu.BaseLinkDictDao;
import com.yihu.jw.base.dao.menu.BaseMenuDictDao;
import com.yihu.jw.base.dao.menu.BaseMenuShowDao;
import com.yihu.jw.entity.base.menu.BaseLinkDictDO;
import com.yihu.jw.entity.base.menu.BaseMenuDictDO;
import com.yihu.jw.entity.base.menu.BaseMenuShowDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@Service
public class BaseMenuManageService {
    @Autowired
    private BaseMenuDictDao baseMenuDictDao;
    @Autowired
    private BaseMenuShowDao baseMenuShowDao;
    @Autowired
    private BaseLinkDictDao baseLinkDictDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private KnowledgeArticleMenuDao knowledgeArticleMenuDao;
    @Autowired
    private KnowledgeArticleDictDao knowledgeArticleDictDao;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    //删除菜单字典
    public void deletMenuDict(String id) throws  Exception{
        BaseMenuDictDO baseMenuDictDO= baseMenuDictDao.findOne(id);
        if (baseMenuDictDO!=null){
            if ("0".equalsIgnoreCase(baseMenuDictDO.getParentId())){
                 List<BaseMenuDictDO> childList = baseMenuDictDao.findByParentId(baseMenuDictDO.getId());
                 if (childList!=null&&childList.size()>0){
                     throw  new Exception("存在子菜单不允许删除");
                 }else {
                     baseMenuDictDO.setIsDel("0");
                 }
            }else {
                if (1==baseMenuDictDO.getStatus()){
                    throw  new Exception("生效的子菜单不允许删除");
                }else{
                    baseMenuDictDO.setIsDel("0");
                }
            }
            baseMenuDictDao.save(baseMenuDictDO);
        }
    }
    //菜单词典查询
    public List<Map<String,Object>> findMenuDictByKey(String parentId, String name){
        String sql = "select t.id as \"id\", " +
                " t.parent_id as \"parentId\", " +
                " t.name as \"name\", " +
                " t.menu_sort as \"menuSort\", " +
                " t.icon as \"icon\", " +
                " t.url as \"url\", " +
                " t.is_show as \"isShow\", " +
                " t.status as \"status\", " +
                " t.create_time as \"createTime\", " +
                " t.remark as \"remark\", " +
                " t.function_type as \"functionType\", " +
                " t.menu_level as \"menuLevel\", " +
                " t.menu_location as \"menuLocation\", " +
                " t.bg_img as \"bgImg\", " +
                " t.menu_title as \"menuTitle\", " +
                " t.describtion as \"describtion\", " +
                " t.menu_img as \"menuImg\"  " +
                "from base_menu_dict t  where 1=1 and t.is_del ='1' ";
        String sqlParent ="select t.id as \"id\", " +
                " t.parent_id as \"parentId\", " +
                " t.name as \"name\", " +
                " t.menu_sort as \"menuSort\", " +
                " t.icon as \"icon\", " +
                " t.url as \"url\", " +
                " t.is_show as \"isShow\", " +
                " t.status as \"status\", " +
                " t.create_time as \"createTime\", " +
                " t.remark as \"remark\", " +
                " t.function_type as \"functionType\", " +
                " t.menu_level as \"menuLevel\", " +
                " t.bg_img as \"bgImg\", " +
                " t.menu_title as \"menuTitle\", " +
                " t.describtion as \"describtion\", " +
                " t.menu_location as \"menuLocation\", " +
                " t.menu_img as \"menuImg\"  " +
                "from base_menu_dict t   where 1=1 and t.is_del ='1' ";
        if (StringUtils.isNoneBlank(parentId)){
            sql+=" and t.parent_id = '"+parentId+"'";
            sqlParent+=" and t.id = '"+parentId+"'";
        }else {
            sqlParent+=" and t.parent_id = '0'";
        }
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.name like '%"+name+"%'";
            sqlParent+=" and t.name like '%"+name+"%'";
        }
        sql+=" order by t.parent_id asc ,t.menu_sort asc ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
        List<Map<String,Object>> listParent = hibenateUtils.createSQLQuery(sqlParent);
        List<WlyyHospitalSysDictDO> menuLocation = wlyyHospitalSysDictDao.findByDictName("menuLocation");
        List<WlyyHospitalSysDictDO> menuFunction = wlyyHospitalSysDictDao.findByDictName("menuFunction");
        List<WlyyHospitalSysDictDO> effect = wlyyHospitalSysDictDao.findByDictName("isEffect");
        for (Map<String,Object> map:listParent){
            List<Map<String,Object>> childList = new ArrayList<>();
            Integer articleParentNum= knowledgeArticleDictDao.getCountByCategoryFirst(map.get("id").toString());
            map.put("articleNum",articleParentNum);
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:effect){
                if (map.get("status").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    map.put("statusName",wlyyHospitalSysDictDO.getDictValue());
                    map.put("isShow",wlyyHospitalSysDictDO.getDictValue().equalsIgnoreCase("1")?"是":"否");
                }
            }
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:menuLocation){
                if (map.get("menuLocation").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    map.put("menuLocationName",wlyyHospitalSysDictDO.getDictValue());
                }
            }
            for (Map<String,Object> mapchild:list){
                if (mapchild.get("parentId").toString().equalsIgnoreCase(map.get("id").toString())){
                   Integer articleChildNum= knowledgeArticleDictDao.getCountByCategorySecond(mapchild.get("id").toString());
                    mapchild.put("articleNum",articleChildNum);
                    for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:effect){
                        if (mapchild.get("status").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                            mapchild.put("statusName",wlyyHospitalSysDictDO.getDictValue());
                            mapchild.put("isShow",wlyyHospitalSysDictDO.getDictValue().equalsIgnoreCase("1")?"是":"否");
                        }
                    }
                    for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:menuFunction){
                        if (mapchild.get("functionType").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                            mapchild.put("functionTypeName",wlyyHospitalSysDictDO.getDictValue());
                        }
                    }
                    childList.add(mapchild);
                }
            }
            map.put("childList",childList);
        }
        return listParent;
    }
    //查询单挑菜单字典
    public BaseMenuDictDO findOneMenuDict(String id){
        BaseMenuDictDO baseMenuDictDO= baseMenuDictDao.findOne(id);
        if (baseMenuDictDO!=null){
            WlyyHospitalSysDictDO menuLocation = wlyyHospitalSysDictDao.findOneByDictNameAndDictCode("menuLocation",baseMenuDictDO.getMenuLocation());
            WlyyHospitalSysDictDO menuFunction = wlyyHospitalSysDictDao.findOneByDictNameAndDictCode("menuFunction",baseMenuDictDO.getFunctionType());
            WlyyHospitalSysDictDO effect = wlyyHospitalSysDictDao.findOneByDictNameAndDictCode("isEffect",baseMenuDictDO.getStatus().toString());
            baseMenuDictDO.setLocaTionName(menuLocation.getDictValue());
            baseMenuDictDO.setFunctionName(menuFunction.getDictValue());
            baseMenuDictDO.setShowName(baseMenuDictDO.getStatus().equals("1")?"是":"否");
            baseMenuDictDO.setStatusName(effect.getDictValue());
            if (!"0".equalsIgnoreCase(baseMenuDictDO.getParentId())){
                BaseMenuDictDO parentDo= baseMenuDictDao.findOne(baseMenuDictDO.getParentId());
                if (parentDo!=null){
                    baseMenuDictDO.setParentName(parentDo.getName());
                }
            }
        }
        return baseMenuDictDO;
    }
    /**
     * 二级菜单下移
     * @param
     * @return
     * @throws Exception
     */
    public BaseMenuDictDO downMenu(String id) throws Exception{
        BaseMenuDictDO baseMenuDictDO= baseMenuDictDao.findOne(id);
        int maxSort = baseMenuDictDao.getMaxSort(baseMenuDictDO.getParentId());
        int sort = 0;
        if(null!=baseMenuDictDO){
            sort = baseMenuDictDO.getMenuSort();
        }
        if (maxSort==sort){
            throw new Exception("不能下移");
        }
        String sql = "select t.id AS \"id\" from base_menu_dict t where t.is_del='1' and t.menu_sort > "+sort+" and " +
                " t.parent_id='"+baseMenuDictDO.getParentId()+"' order by t.menu_sort asc ";
        System.out.println(sql);
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,1,1);
        BaseMenuDictDO upPrevious = new BaseMenuDictDO();
        if (list.size()>0){
            String prviousBannerId = list.get(0).get("id").toString();
            upPrevious =baseMenuDictDao.findOne(prviousBannerId);
        }
        //交换sort值
        baseMenuDictDO.setMenuSort(upPrevious.getMenuSort());
        upPrevious.setMenuSort(sort);
        baseMenuDictDao.save(baseMenuDictDO);
        baseMenuDictDao.save(upPrevious);
        return baseMenuDictDO;
    }
    /**
     * 二级菜单上移
     * * @param
     * @return
     * @throws Exception
     */
    public BaseMenuDictDO upMenu(String id) throws Exception{
        //当前
        BaseMenuDictDO baseMenuDictDO = baseMenuDictDao.findOne(id);
        int minSort = baseMenuDictDao.getMinSort(baseMenuDictDO.getParentId());
        int sort = 0;
        if(null!=baseMenuDictDO){
            sort = baseMenuDictDO.getMenuSort();
        }
        if (minSort==sort){
            throw new Exception("不能上移");
        }
        String sql = " select id AS \"id\" from base_menu_dict where  is_del='1' and menu_sort < "+sort+" and" +
                " parent_id='"+baseMenuDictDO.getParentId()+"'order by menu_sort desc ";
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,1,1);
        BaseMenuDictDO downPrevious = new BaseMenuDictDO();
        if (list.size()>0){
            String prviousBannerId = list.get(0).get("id").toString();
            downPrevious =baseMenuDictDao.findOne(prviousBannerId);
        }
        //获取的下一条b
        //交换sort值
        baseMenuDictDO.setMenuSort(downPrevious.getMenuSort());
        downPrevious.setMenuSort(sort);
        baseMenuDictDao.save(baseMenuDictDO);
        baseMenuDictDao.save(downPrevious);
        return baseMenuDictDO;
    }
    /**
     * 设置生效和失效
     * @param id
     * @param status
     */
    @Transactional(rollbackFor = Exception.class)
    public void updateStatus(String id,Integer status){
        baseMenuDictDao.updateStatus(id,status);
    }
    //新增修改菜单
    public BaseMenuDictDO createOrUpdateMenu(String json) throws  Exception{
        BaseMenuDictDO menuDO = objectMapper.readValue(json,BaseMenuDictDO.class);
        if (StringUtils.isNoneBlank(menuDO.getId())){
            BaseMenuDictDO menuOld = baseMenuDictDao.findOne(menuDO.getId());
            if (menuOld!=null){
                menuOld.setParentId(menuDO.getParentId());
                menuOld.setName(menuDO.getName());
                menuOld.setMenuLocation(menuDO.getMenuLocation());
                menuOld.setFunctionType(menuDO.getFunctionType());
                //menuOld.setIsShow(menuDO.getIsShow());
                menuOld.setMenuImg(menuDO.getMenuImg());
                menuOld.setDescribtion(menuDO.getDescribtion());
                menuOld.setMenuTitle(menuDO.getMenuTitle());
                menuOld.setBgImg(menuDO.getBgImg());
                menuOld.setUpdateTime(new Date());
                menuOld.setIsDel("1");
                menuDO = baseMenuDictDao.save(menuOld);
            }
        }else {
            if (StringUtils.isNoneBlank(menuDO.getParentId())){
                Integer maxSort=baseMenuDictDao.getMaxSort(menuDO.getParentId());
                menuDO.setMenuSort((maxSort==null?0:maxSort)+1);
                menuDO.setIsDel("1");
                menuDO.setIsShow(menuDO.getStatus()==1?"1":"0");
            }else{
                menuDO.setIsDel("1");
                menuDO.setIsShow(menuDO.getStatus()==1?"1":"0");
                menuDO.setMenuSort(1);
            }
            menuDO = baseMenuDictDao.save(menuDO);
        }
        return menuDO;
    }
    //新增修改友情链接
    public BaseLinkDictDO createOrUpdateLink(String json) throws  Exception{
        BaseLinkDictDO linkDictDO = objectMapper.readValue(json,BaseLinkDictDO.class);
        Integer maxSort=baseLinkDictDao.getMaxSort();
        if (StringUtils.isNoneBlank(linkDictDO.getId())){
            BaseLinkDictDO baseLinkDictDO=baseLinkDictDao.findOne(linkDictDO.getId());
            if (baseLinkDictDO!=null){
                baseLinkDictDO.setName(linkDictDO.getName());
                baseLinkDictDO.setLinkUrl(linkDictDO.getLinkUrl());
                //baseLinkDictDO.setLinkSort((maxSort==null?0:maxSort)+1);
                baseLinkDictDO.setIsShow(linkDictDO.getIsShow());
                baseLinkDictDO.setIsDel("1");
                linkDictDO =  baseLinkDictDao.save(baseLinkDictDO);
            }else {
                throw new  NoSuchElementException();
            }
        }else {
            linkDictDO.setLinkSort((maxSort==null?0:maxSort)+1);
            linkDictDO.setIsDel("1");
            linkDictDO =  baseLinkDictDao.save(linkDictDO);
        }
        return linkDictDO;
    }
    public List<Map<String,Object>> findLinkDict(String name,String status){
        String sql="select t.id as \"id\"," +
                " t.name as \"name\"," +
                " t.link_url as \"linkUrl\"," +
                " t.is_show as \"isShow\"," +
                " t.link_sort as \"linkSort\"," +
                " t.create_time as \"createTime\"," +
                " t.is_del as \"isDel\" " +
                " from base_link_dict t where 1=1 and t.is_del='1'";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.name like '%"+name+"%'";
        }
        if (StringUtils.isNoneBlank(status)){
            sql+=" and t.status = '"+status+"'";
        }
        sql+=" order by t.link_sort asc";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
        return list;
    }
    public BaseLinkDictDO findOneLinkDict(String id){
        BaseLinkDictDO baseLinkDictDO= baseLinkDictDao.findOne(id);
        if (baseLinkDictDO!=null){
            WlyyHospitalSysDictDO effect = wlyyHospitalSysDictDao.findOneByDictNameAndDictCode("isEffect",baseLinkDictDO.getStatus());
            baseLinkDictDO.setShowName(baseLinkDictDO.getStatus().equalsIgnoreCase("1")?"是":"否");
            baseLinkDictDO.setStatusName(effect.getDictValue());
        }
        return baseLinkDictDO;
    }
    /**
     * 友情链接下移
     * @param
     * @return
     * @throws Exception
     */
    public BaseLinkDictDO downlink(String id) throws Exception{
        BaseLinkDictDO baseLinkDictDO= baseLinkDictDao.findOne(id);
        int maxSort = baseLinkDictDao.getMaxSort();
        int sort = 0;
        if(null!=baseLinkDictDO){
            sort = baseLinkDictDO.getLinkSort();
        }
        if (maxSort==sort){
            throw new Exception("不能下移");
        }
        String sql = "select t.id AS \"id\" from base_link_dict t where t.is_del='1' and  t.link_sort > "+sort+" order by t.link_sort asc ";
        System.out.println(sql);
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,1,1);
        BaseLinkDictDO upPrevious = new BaseLinkDictDO();
        if (list.size()>0){
            String prviousBannerId = list.get(0).get("id").toString();
            upPrevious =baseLinkDictDao.findOne(prviousBannerId);
        }
        //交换sort值
        baseLinkDictDO.setLinkSort(upPrevious.getLinkSort());
        upPrevious.setLinkSort(sort);
        baseLinkDictDao.save(baseLinkDictDO);
        baseLinkDictDao.save(upPrevious);
        return baseLinkDictDO;
    }
    /**
     * 友情链接上移
     * * @param
     * @return
     * @throws Exception
     */
    public BaseLinkDictDO upLink(String id) throws Exception{
        //当前
        BaseLinkDictDO baseLinkDictDO = baseLinkDictDao.findOne(id);
        int minSort = baseLinkDictDao.getMinSort();
        int sort = 0;
        if(null!=baseLinkDictDO){
            sort = baseLinkDictDO.getLinkSort();
        }
        if (minSort==sort){
            throw new Exception("不能上移");
        }
        String sql = " select id AS \"id\" from base_link_dict where is_del='1' and link_sort < "+sort+" order by link_sort desc ";
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,1,1);
        BaseLinkDictDO downPrevious = new BaseLinkDictDO();
        if (list.size()>0){
            String prviousBannerId = list.get(0).get("id").toString();
            downPrevious =baseLinkDictDao.findOne(prviousBannerId);
        }
        //获取的下一条b
        //交换sort值
        baseLinkDictDO.setLinkSort(downPrevious.getLinkSort());
        downPrevious.setLinkSort(sort);
        baseLinkDictDao.save(baseLinkDictDO);
        baseLinkDictDao.save(downPrevious);
        return baseLinkDictDO;
    }
    /**
     * 设置生效和失效
     * @param id
     * @param status
     */
    @Transactional(rollbackFor = Exception.class)
    public void updateLinkStatus(String id,String status){
        baseLinkDictDao.updateStatus(id,status);
    }
    /**
     * 设置生效和失效
     * @param id
     * @param status
     */
    @Transactional(rollbackFor = Exception.class)
    public void updateLinkShow(String id,String status){
        baseLinkDictDao.updateShow(id,status);
    }
    /**
     * 友情链接删除
     * @param id
     *
     */
    @Transactional(rollbackFor = Exception.class)
    public void updateLinkDel(String id){
        baseLinkDictDao.updateDel(id,"0");
    }
    /**
     * 移除首页菜单
     * @param menuId
     *
     */
    public BaseMenuShowDO removeMenu(String menuId){
        BaseMenuShowDO baseMenuShowDO = baseMenuShowDao.findOne(menuId);
        baseMenuShowDO.setIsDel("0");
        baseMenuShowDao.save(baseMenuShowDO);
        return baseMenuShowDO;
    }
    public  List<Map<String,Object>> findMenuShow(){
        String modelSql = "select t.id as \"id\"," +
                " t.model_id as \"modelId\", " +
                " t.model_name as \"modelName\" from base_menu_show t where t.is_del ='1'" +
                " group by  t.model_id, t.model_name" ;
        List<Map<String,Object>> listModel=hibenateUtils.createSQLQuery(modelSql);
        String sql =" select t.id as \"id\", " +
                " t.model_id as \"modelId\", " +
                " t.model_name as \"modelName\", " +
                " t.menu_id as \"menuId\", " +
                " t.menu_name as \"menuName\", " +
                " t.is_del as \"isDel\"," +
                " t.create_time as \"createTime\"," +
                " t.menu_sort as \"menuSort\"," +
                " t.style_code as \"styleCode\"," +
                " t.style_name as \"styleName\" " +
                " from base_menu_show t left join " +
                " base_menu_dict m on t.menu_id= m.id" +
                " where t.is_del ='1' order by t.model_id asc ,t.menu_sort asc ";
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql);
        String sqlLink =" select t.id as \"id\", " +
                " t.model_id as \"modelId\", " +
                " t.model_name as \"modelName\", " +
                " t.menu_id as \"menuId\", " +
                " t.menu_name as \"menuName\", " +
                " t.is_del as \"isDel\"," +
                " t.create_time as \"createTime\"," +
                " t.menu_sort as \"menuSort\"," +
                " t.style_code as \"styleCode\"," +
                " t.style_name as \"styleName\" " +
                " from base_menu_show t left join " +
                " base_link_dict m on t.menu_id= m.id" +
                " where t.is_del ='1' and t.model_id='03' order by t.menu_sort asc ";
        List<Map<String,Object>> listLink=hibenateUtils.createSQLQuery(sqlLink);
        for (Map<String,Object> map:listModel){
            List<Map<String,Object>> child = new ArrayList<>();
            if("03".equalsIgnoreCase(map.get("modelId").toString())){
                map.put("childList",listLink);
                map.put("childListNum",listLink==null?0:listLink.size());
            }else {
                for (Map<String,Object> childMap:list){
                    if (childMap.get("modelId").toString().equalsIgnoreCase(map.get("modelId").toString())){
                        child.add(childMap);
                    }
                }
            }
            map.put("childList",child);
        }
        return listModel;
    }
    /**
     * 首页菜单展示下移
     * @param
     * @return
     * @throws Exception
     */
    public BaseMenuShowDO downMenuShow(String id) throws Exception{
        BaseMenuShowDO baseMenuShowDO= baseMenuShowDao.findOne(id);
        int maxSort = baseMenuShowDao.getMaxSort();
        int sort = 0;
        if(null!=baseMenuShowDO){
            sort = baseMenuShowDO.getMenuSort();
        }
        if (maxSort==sort){
            throw new Exception("不能下移");
        }
        String sql = "select t.id AS \"id\" from base_menu_show t where t.is_del='1' and t.menu_sort > "+sort+" " +
                " and t.model_id='"+baseMenuShowDO.getModelId()+"'order by t.menu_sort asc ";
        System.out.println(sql);
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,1,1);
        BaseMenuShowDO upPrevious = new BaseMenuShowDO();
        if (list.size()>0){
            String prviousBannerId = list.get(0).get("id").toString();
            upPrevious =baseMenuShowDao.findOne(prviousBannerId);
        }
        //交换sort值
        baseMenuShowDO.setMenuSort(upPrevious.getMenuSort());
        upPrevious.setMenuSort(sort);
        baseMenuShowDao.save(baseMenuShowDO);
        baseMenuShowDao.save(upPrevious);
        return baseMenuShowDO;
    }
    /**
     * 首页菜单展示上移
     * * @param
     * @return
     * @throws Exception
     */
    public BaseMenuShowDO upMenuShow(String id) throws Exception{
        //当前
        BaseMenuShowDO baseMenuShowDO = baseMenuShowDao.findOne(id);
        int minSort = baseMenuShowDao.getMinSort();
        int sort = 0;
        if(null!=baseMenuShowDO){
            sort = baseMenuShowDO.getMenuSort();
        }
        if (minSort==sort){
            throw new Exception("不能上移");
        }
        String sql = " select id AS \"id\" from base_menu_show where is_del='1' and menu_sort < "+sort+" " +
                " and model_id ='"+baseMenuShowDO.getModelId()+"'order by menu_sort desc ";
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,1,1);
        BaseMenuShowDO downPrevious = new BaseMenuShowDO();
        if (list.size()>0){
            String prviousBannerId = list.get(0).get("id").toString();
            downPrevious =baseMenuShowDao.findOne(prviousBannerId);
        }
        //获取的下一条b
        //交换sort值
        baseMenuShowDO.setMenuSort(downPrevious.getMenuSort());
        downPrevious.setMenuSort(sort);
        baseMenuShowDao.save(baseMenuShowDO);
        baseMenuShowDao.save(downPrevious);
        return baseMenuShowDO;
    }
    public void saveMenuShow(String json) throws  Exception{
        List<BaseMenuShowDO> menuShowDO = JSON.parseArray(json,BaseMenuShowDO.class);
        List<WlyyHospitalSysDictDO> list = wlyyHospitalSysDictDao.findByDictName("menuStyle");
        int i =1;
        for (BaseMenuShowDO baseMenuShowDO:menuShowDO){
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
                if (baseMenuShowDO.getStyleCode().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    baseMenuShowDO.setStyleName(wlyyHospitalSysDictDO.getDictValue());
                }
            }
            String modelSql = "select t.id as \"id\"," +
                    " t.model_id as \"modelId\", max(t.menu_sort) as \"maxSort\"" +
                    " from base_menu_show t where t.is_del ='1'" +"and t.model_id='"+baseMenuShowDO.getModelId()+"'"+
                    " group by  t.model_id " ;
            List<Map<String,Object>> listModel=hibenateUtils.createSQLQuery(modelSql);
            if (listModel!=null&&listModel.size()>0){
                baseMenuShowDO.setMenuSort((listModel.get(0).get("maxSort")==null?0:Integer.valueOf(listModel.get(0).get("maxSort").toString()))+i);
            }else {
                baseMenuShowDO.setMenuSort(1);
            }
            baseMenuShowDO.setIsDel("1");
            baseMenuShowDO.setCreateTime(new Date());
            i++;
        }
        baseMenuShowDao.save(menuShowDO);
    }
    public List<Map<String,Object>> findByParentId(String parentId,Integer status){
        String sql = "select t.id as \"id\", " +
                " t.parent_id as \"parentId\", " +
                " t.name as \"name\", " +
                " t.menu_sort as \"menuSort\", " +
                " t.icon as \"icon\", " +
                " t.url as \"url\", " +
                " t.is_show as \"isShow\", " +
                " t.status as \"status\", " +
                " t.create_time as \"createTime\", " +
                " t.remark as \"remark\", " +
                " t.function_type as \"functionType\", " +
                " t.menu_level as \"menuLevel\", " +
                " t.menu_location as \"menuLocation\", " +
                " t.bg_img as \"bgImg\", " +
                " t.menu_title as \"menuTitle\", " +
                " t.describtion as \"describtion\", " +
                " t.menu_img as \"menuImg\"  " +
                "from base_menu_dict t  where 1=1 and t.is_del ='1' ";
        if (StringUtils.isNoneBlank(parentId)){
            sql+=" and t.parent_id='"+parentId+"'";
        }
        if (status!=null){
            sql+=" and t.status="+status+"";
        }
        sql+="order by t.menu_sort asc";
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql);
        return list;
    }
    public MixEnvelop findArticleByMenuId(String menuId,Integer page,Integer pageSize){
        Pageable pageRequest = new PageRequest(page-1,pageSize);
        List<KnowledgeArticleDictDO> list=knowledgeArticleDictDao.findByCategorySecondAndPage(menuId,pageRequest);
        Integer count = knowledgeArticleDictDao.getCountByCategorySecond(menuId);
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setTotalCount(count);
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }
    //菜单词典查询
    public List<Map<String,Object>> findMenuDictParent(String parentId, String name){
        String sqlParent ="select t.id as \"id\", " +
                " t.parent_id as \"parentId\", " +
                " t.name as \"name\", " +
                " t.menu_sort as \"menuSort\", " +
                " t.icon as \"icon\", " +
                " t.url as \"url\", " +
                " t.is_show as \"isShow\", " +
                " t.status as \"status\", " +
                " t.create_time as \"createTime\", " +
                " t.remark as \"remark\", " +
                " t.function_type as \"functionType\", " +
                " t.menu_level as \"menuLevel\", " +
                " t.menu_location as \"menuLocation\", " +
                " t.bg_img as \"bgImg\", " +
                " t.menu_title as \"menuTitle\", " +
                " t.describtion as \"describtion\", " +
                " t.menu_img as \"menuImg\"  " +
                "from base_menu_dict t   where 1=1 and t.is_del ='1' and status =1";
        if (StringUtils.isNoneBlank(parentId)){
            sqlParent+=" and t.id = '"+parentId+"'";
        }else {
            sqlParent+=" and t.parent_id = '0'";
        }
        if (StringUtils.isNoneBlank(name)){
            sqlParent+=" and t.name like '%"+name+"%'";
        }
        List<Map<String,Object>> listParent = hibenateUtils.createSQLQuery(sqlParent);
        List<WlyyHospitalSysDictDO> menuLocation = wlyyHospitalSysDictDao.findByDictName("menuLocation");
        List<WlyyHospitalSysDictDO> effect = wlyyHospitalSysDictDao.findByDictName("isEffect");
        for (Map<String,Object> map:listParent){
            Integer articleParentNum= knowledgeArticleDictDao.getCountByCategoryFirst(map.get("id").toString());
            map.put("articleNum",articleParentNum);
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:effect){
                if (map.get("status").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    map.put("statusName",wlyyHospitalSysDictDO.getDictValue());
                    map.put("isShow",wlyyHospitalSysDictDO.getDictValue().equalsIgnoreCase("1")?"是":"否");
                }
            }
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:menuLocation){
                if (map.get("menuLocation").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    map.put("menuLocationName",wlyyHospitalSysDictDO.getDictValue());
                }
            }
        }
        return listParent;
    }
}

+ 6 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/org/BaseOrgService.java

@ -360,8 +360,12 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
    }
    }
    public String getOrgAreaTree(String saasId){
    public String getOrgAreaTree(String saasId){
        StringBuffer sql = new StringBuffer("SELECT t.* from base_org b,org_tree t,base_org_saas o ")
                .append("WHERE o.saasid='").append(saasId).append("' AND o.org_code = b.`code` AND ")
        StringBuffer sql = new StringBuffer("SELECT t.id as \"id\"," +
                "t.PARENT_CODE as \"PARENT_CODE\"," +
                "t.CODE as\"CODE\"," +
                "t.NAME as \"NAME\"," +
                "t.ORG_LEVEL as \"ORG_LEVEL \" from base_org b,org_tree t,base_org_saas o ")
                .append("WHERE o.saasid='").append(saasId).append("' AND o.org_code = b.code AND ")
                .append("(b.code= t.code or b.city_code=t.code or b.province_code = t.code or b.town_code=t.code)");
                .append("(b.code= t.code or b.city_code=t.code or b.province_code = t.code or b.town_code=t.code)");
        List<TreeNode> treeNodes = new ArrayList<>();
        List<TreeNode> treeNodes = new ArrayList<>();

+ 5 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/role/MenuService.java

@ -3,9 +3,11 @@ package com.yihu.jw.base.service.role;
import com.yihu.jw.base.contant.CommonContant;
import com.yihu.jw.base.contant.CommonContant;
import com.yihu.jw.base.dao.role.MenuDao;
import com.yihu.jw.base.dao.role.MenuDao;
import com.yihu.jw.entity.base.role.MenuDO;
import com.yihu.jw.entity.base.role.MenuDO;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.provider.HibernateUtils;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Transactional;
@ -20,6 +22,8 @@ public class MenuService extends BaseJpaService<MenuDO, MenuDao> {
    @Autowired
    @Autowired
    private MenuDao menuDao;
    private MenuDao menuDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    /**
    /**
     * 设置生效和失效
     * 设置生效和失效
@ -122,4 +126,5 @@ public class MenuService extends BaseJpaService<MenuDO, MenuDao> {
    public MenuDO findOne(String id){
    public MenuDO findOne(String id){
        return menuDao.findOne(id);
        return menuDao.findOne(id);
    }
    }
    //public List<Map<String,Object>> queryMenuBy
}
}