trick9191 6 år sedan
förälder
incheckning
21e1fedec1
56 ändrade filer med 913 tillägg och 216 borttagningar
  1. 2 1
      .gitignore
  2. 9 0
      app/app-iot-server/pom.xml
  3. 9 0
      app/public-health-server/pom.xml
  4. 1 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/function/FunctionDO.java
  5. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/base/role/RoleDO.java
  6. 29 2
      common/common-entity/src/main/java/com/yihu/jw/entity/base/user/UserHideModuleFunctionDO.java
  7. 14 1
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java
  8. 3 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/specialist/SpecialistMapping.java
  9. 62 74
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/base/FunctionVO.java
  10. 188 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/specialist/SignFamilyDoctorVO.java
  11. 1 1
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/Envelop.java
  12. 2 2
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/ListEnvelop.java
  13. 2 2
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/MixEnvelop.java
  14. 1 1
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/ObjEnvelop.java
  15. 1 1
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/PageEnvelop.java
  16. 11 4
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/endpoint/EnvelopRestEndpoint.java
  17. 8 5
      common/common-util/pom.xml
  18. 0 1
      common/common-web/src/main/java/com/yihu/jw/web/handler/GlobalExceptionHandler.java
  19. 4 0
      gateway/ag-basic/pom.xml
  20. 9 2
      gateway/ag-basic/src/main/resources/application.yml
  21. 14 1
      server/svr-configuration/src/main/resources/bootstrap.yml
  22. 0 46
      server/svr-log-server/src/main/resources/bootstrap.yml
  23. 25 27
      server/svr-log-server/pom.xml
  24. 0 0
      server/svr-zipkin/readme.MD
  25. 3 5
      server/svr-log-server/src/main/java/com/yihu/jw/LogServerApplication.java
  26. 3 4
      server/svr-log-server/src/main/resources/application.yml
  27. 0 0
      server/svr-zipkin/src/main/resources/banner.txt
  28. 26 0
      server/svr-zipkin/src/main/resources/bootstrap.yml
  29. 4 0
      svr/svr-base/pom.xml
  30. 42 0
      svr/svr-base/src/main/java/com/yihu/jw/base/config/SwaggerDocs.java
  31. 16 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/SaasDefaultModuleDao.java
  32. 11 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/UserHideModuleFunctionDao.java
  33. 12 10
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/function/FunctionEndpoint.java
  34. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/module/ModuleEndpoint.java
  35. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/module/ModuleFunctionEndpoint.java
  36. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/RoleEndpoint.java
  37. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/RoleModuleFunctionEndpoint.java
  38. 94 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasDefaultModuleEndpoint.java
  39. 3 3
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasEndpoint.java
  40. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasModuleEndpoint.java
  41. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/system/SystemDictEndpoint.java
  42. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/system/SystemDictEntryEndpoint.java
  43. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/theme/ThemeEndpoint.java
  44. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserEndpoint.java
  45. 94 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserHideModuleFunctionEndpoint.java
  46. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserRoleEndpoint.java
  47. 0 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/ModuleService.java
  48. 14 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/SaasDefaultModuleService.java
  49. 25 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/SaasService.java
  50. 13 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/UserHideModuleFunctionService.java
  51. 1 4
      svr/svr-base/src/main/resources/application.yml
  52. 9 1
      svr/svr-base/src/main/resources/bootstrap.yml
  53. 45 0
      svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/controller/SpecialistController.java
  54. 73 1
      svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/SpecialistService.java
  55. 16 0
      svr/svr-wlyy-specialist/src/main/resources/bootstrap.yml
  56. 2 2
      wlyy-parent-pom/pom.xml

+ 2 - 1
.gitignore

@ -10,7 +10,6 @@
.idea/
data/*
.idea_modules/
build/*.jar
.settings
.cache
.generated-mima*
@ -79,3 +78,5 @@ sql/hive-thriftserver/test_warehouses
# For R session data
.RHistory
.RData
build/
docs/

+ 9 - 0
app/app-iot-server/pom.xml

@ -148,6 +148,15 @@
            <artifactId>fastdfs-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
        </dependency>
        <dependency>
            <groupId>eu.medsea.mimeutil</groupId>
            <artifactId>mime-util</artifactId>
            <version>2.1.3</version>
        </dependency>
    </dependencies>
    <build>

+ 9 - 0
app/public-health-server/pom.xml

@ -127,6 +127,15 @@
            <artifactId>swagger-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>eu.medsea.mimeutil</groupId>
            <artifactId>mime-util</artifactId>
            <version>2.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
        </dependency>
    </dependencies>
    <build>

+ 1 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/function/FunctionDO.java

@ -9,6 +9,7 @@ import javax.persistence.Table;
import javax.persistence.Transient;
/**
 * 功能 - Entity
 * WlyyFunction entity. @author MyEclipse Persistence Tools
 */
@Entity

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/role/RoleDO.java

@ -36,7 +36,7 @@ public class RoleDO extends IntegerIdentityEntityWithOperator {
	//角色类型
	private Type type;
	@Column(name = "saas_id", length = 50)
	@Column(name = "saas_id", nullable = false, length = 50)
	public String getSaasId() {
		return this.saasId;
	}

+ 29 - 2
common/common-entity/src/main/java/com/yihu/jw/entity/base/user/UserHideModuleFunctionDO.java

@ -2,6 +2,7 @@ package com.yihu.jw.entity.base.user;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
@ -9,14 +10,40 @@ import javax.persistence.Table;
 * Created by progr1mmer on 2018/8/14.
 */
@Entity
@Table(name = "base_employ_hide_module_function")
@Table(name = "base_user_hide_module_function")
public class UserHideModuleFunctionDO extends IntegerIdentityEntity {
    //用户ID
    private String employId;
    private String userId;
    //模块ID
    private Integer moduleId;
    //功能ID(该字段为空则直接隐藏上级模块)
    private Integer functionId;
    @Column(name = "user_id", nullable = false, length = 50)
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    @Column(name = "module_id", nullable = false)
    public Integer getModuleId() {
        return moduleId;
    }
    public void setModuleId(Integer moduleId) {
        this.moduleId = moduleId;
    }
    @Column(name = "function_id")
    public Integer getFunctionId() {
        return functionId;
    }
    public void setFunctionId(Integer functionId) {
        this.functionId = functionId;
    }
}

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

@ -35,6 +35,12 @@ public class BaseRequestMapping {
        public static final String PREFIX  = "/saas_module";
    }
    /**
     * SAAS默认模块
     */
    public static class SaasDefaultModule extends Basic {
        public static final String PREFIX  = "/saas_default_module";
    }
    /**
     * 模块
@ -88,12 +94,19 @@ public class BaseRequestMapping {
    }
    /**
     * 用户
     * 用户角色
     */
    public static class UserRole extends Basic {
        public static final String PREFIX  = "/user_role";
    }
    /**
     * 用户取消的模块或者功能
     */
    public static class UserHideModuleFunction extends Basic {
        public static final String PREFIX  = "/user_hide_module_function";
    }
    /**
     * 角色
     */

+ 3 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/specialist/SpecialistMapping.java

@ -33,6 +33,9 @@ public class SpecialistMapping {
        public static final String findPatientTeamList ="/findPatientTeamList";
        public static final String findPatientSignSpecialist ="/findPatientSignSpecialist";
        public static final String findPatientSignSpecialistInfo ="/findPatientSignSpecialistInfo";
        public static final String findDoctorAndDoctorHealthBySpecialDoctor ="/findDoctorAndDoctorHealthBySpecialDoctor";
        public static final String findSpecialistSignFamilyPatientCout ="/findSpecialistSignFamilyPatientCout";
        public static final String getSpecialistSignFamilyPatientByName ="/getSpecialistSignFamilyPatientByName";

+ 62 - 74
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/base/FunctionVO.java

@ -1,65 +1,60 @@
package com.yihu.jw.restmodel.base.base;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.*;
/**
 * Created by chenweida on 2017/5/19.
 */
public class FunctionVO {
    private String id;
    private String name; //功能名称
    private String saasId; // saasid
    private String parentCode; //父功能code
    private Integer status; //状态 -1 删除 0 禁用 可用
@ApiModel(value = "FunctionVO", description = "功能")
public class FunctionVO implements Serializable {
    @ApiModelProperty(value = "id", example = "1" )
    protected Integer id;
    @ApiModelProperty(value = "创建日期", example = "2018-03-14 11:35:34" )
    protected Date createTime;
    @ApiModelProperty(value = "创建者", example = "0dae0003590016e5b3865e377b2f8615" )
    protected String createUser;
    @ApiModelProperty(value = "创建者用户名", example = "Progr1mmer" )
    protected String createUserName;
    @ApiModelProperty(value = "修改日期", example = "2018-03-14 11:35:34" )
    protected Date updateTime;
    @ApiModelProperty(value = "修改者", example = "0dae0003590016e5b3865e377b2f8615" )
    protected String updateUser;
    @ApiModelProperty(value = "修改者用户名", example = "Progr1mmer" )
    protected String updateUserName;
    //功能名称
    @ApiModelProperty(value = "名称", example = "功能1" )
    private String name;
    //网关url前缀
    @ApiModelProperty(value = "网关url前缀", example = "/base" )
    private String prefix;
    //功能对应的后台url路径
    @ApiModelProperty(value = "功能对应的后台url路径", example = "/function/list" )
    private String url;
    private String createUser;
    private String createUserName;
    private Date createTime;
    private String updateUser;
    private String updateUserName;
    private Date updateTime;
    private String remark; //备注
    private List<FunctionVO> children = new ArrayList<>();
    private String text;
    public String getId() {
    //备注
    @ApiModelProperty(value = "备注", example = "我是备注" )
    private String remark;
    public Integer getId() {
        return id;
    }
    public void setId(String id) {
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getParentCode() {
        return parentCode;
    }
    public void setParentCode(String parentCode) {
        this.parentCode = parentCode;
    }
    public Integer getStatus() {
        return status;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    public Date getCreateTime() {
        return createTime;
    }
    public void setStatus(Integer status) {
        this.status = status;
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
@ -78,12 +73,13 @@ public class FunctionVO {
        this.createUserName = createUserName;
    }
    public Date getCreateTime() {
        return createTime;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
@ -102,36 +98,20 @@ public class FunctionVO {
        this.updateUserName = updateUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public List<FunctionVO> getChildren() {
        return children;
    public String getName() {
        return name;
    }
    public void setChildren(List<FunctionVO> children) {
        this.children = children;
    public void setName(String name) {
        this.name = name;
    }
    public String getText() {
        return name;
    public String getPrefix() {
        return prefix;
    }
    public void setText(String text) {
        this.text = text;
    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }
    public String getUrl() {
@ -141,4 +121,12 @@ public class FunctionVO {
    public void setUrl(String url) {
        this.url = url;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 188 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/specialist/SignFamilyDoctorVO.java

@ -0,0 +1,188 @@
package com.yihu.jw.restmodel.specialist;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
/**
 * @author huangwenjie
 * @date 2018/8/20 15:40
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "专病医生关联的家庭医生信息", description = "专病医生关联的家庭医生信息")
public class SignFamilyDoctorVO {
	@ApiModelProperty("医生Code")
	private String code;
	@ApiModelProperty("姓名")
	private String name;
	@ApiModelProperty("性别(1男,2女)")
	private Integer sex;
	@ApiModelProperty("生日")
	private Date birthday;
	@ApiModelProperty("头像http地址")
	private String photo;
	@ApiModelProperty("手机号")
	private String mobile;
	@ApiModelProperty("医院代码")
	private String hospital;
	@ApiModelProperty("医院名称")
	private String hospitalName;
	@ApiModelProperty("科室代码")
	private String dept;
	@ApiModelProperty("科室名称")
	private String deptName;
	@ApiModelProperty("职称代码")
	private String job;
	@ApiModelProperty("职称名称")
	private String jobName;
	@ApiModelProperty("类型:1专科医生,2全科医生,3健康管理师")
	private Integer level;
	@ApiModelProperty("类二维码")
	private String qrcode;
	@ApiModelProperty("更新时间")
	private Date czrq;
	@ApiModelProperty("状态(1正常,0删除)")
	private Integer del;
	@ApiModelProperty("身份证号")
	private String idcard;
	
	public String getCode() {
		return code;
	}
	
	public void setCode(String code) {
		this.code = code;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public Integer getSex() {
		return sex;
	}
	
	public void setSex(Integer sex) {
		this.sex = sex;
	}
	
	public Date getBirthday() {
		return birthday;
	}
	
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	
	public String getPhoto() {
		return photo;
	}
	
	public void setPhoto(String photo) {
		this.photo = photo;
	}
	
	public String getMobile() {
		return mobile;
	}
	
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	
	public String getHospital() {
		return hospital;
	}
	
	public void setHospital(String hospital) {
		this.hospital = hospital;
	}
	
	public String getHospitalName() {
		return hospitalName;
	}
	
	public void setHospitalName(String hospitalName) {
		this.hospitalName = hospitalName;
	}
	
	public String getDept() {
		return dept;
	}
	
	public void setDept(String dept) {
		this.dept = dept;
	}
	
	public String getDeptName() {
		return deptName;
	}
	
	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}
	
	public String getJob() {
		return job;
	}
	
	public void setJob(String job) {
		this.job = job;
	}
	
	public String getJobName() {
		return jobName;
	}
	
	public void setJobName(String jobName) {
		this.jobName = jobName;
	}
	
	public Integer getLevel() {
		return level;
	}
	
	public void setLevel(Integer level) {
		this.level = level;
	}
	
	public String getQrcode() {
		return qrcode;
	}
	
	public void setQrcode(String qrcode) {
		this.qrcode = qrcode;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
	public Date getCzrq() {
		return czrq;
	}
	
	public void setCzrq(Date czrq) {
		this.czrq = czrq;
	}
	
	public Integer getDel() {
		return del;
	}
	
	public void setDel(Integer del) {
		this.del = del;
	}
	
	public String getIdcard() {
		return idcard;
	}
	
	public void setIdcard(String idcard) {
		this.idcard = idcard;
	}
}

+ 1 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/Envelop.java

@ -12,7 +12,7 @@ import java.io.Serializable;
 * 快速集成 {@link com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint}
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(description = "基础实体")
@ApiModel(value = "Envelop", description = "基础实体")
public class Envelop implements Serializable {
    @ApiModelProperty("信息")

+ 2 - 2
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/ListEnvelop.java

@ -22,10 +22,10 @@ import java.util.List;
 * @author llh
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "ListResult", description = "获取实体列表返回定义")
@ApiModel(value = "ListEnvelop<T>", description = "获取实体列表返回")
public class ListEnvelop<T> extends Envelop {
    @ApiModelProperty("列表内容")
    @ApiModelProperty(value = "列表内容")
    private List<T> detailModelList = new ArrayList<>(0);
    public List<T> getDetailModelList() {

+ 2 - 2
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/MixEnvelop.java

@ -23,7 +23,7 @@ import java.util.List;
 * @author llh
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "ListResult", description = "通用的实体")
@ApiModel(value = "MixEnvelop<T, J>", description = "通用的实体")
public class MixEnvelop<T, J> extends Envelop {
    private static final long serialVersionUID = 2076324875575488461L;
@ -43,7 +43,7 @@ public class MixEnvelop<T, J> extends Envelop {
    @ApiModelProperty("列表内容")
    private List<T> detailModelList = new ArrayList<>(0);
    @ApiModelProperty("内容")
    @ApiModelProperty("实体内容")
    private J obj = (J)new HashMap<>(0);
    public int getCurrPage() {

+ 1 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/ObjEnvelop.java

@ -21,7 +21,7 @@ import java.util.HashMap;
 * @author llh
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(description = "获取单个实体信息返回")
@ApiModel(value = "ObjEnvelop<J>", description = "获取单个实体信息返回")
public class ObjEnvelop<J> extends Envelop {
    @ApiModelProperty("内容")

+ 1 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/PageEnvelop.java

@ -23,7 +23,7 @@ import java.util.List;
 * @author llh
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "EnvelopPage<T>", description = "分页查询返回")
@ApiModel(value = "PageEnvelop<T>", description = "分页查询返回")
public class PageEnvelop<T> extends Envelop implements Serializable {
    private static final long serialVersionUID = 2076324875575488461L;

+ 11 - 4
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/endpoint/EnvelopRestEndpoint.java

@ -119,12 +119,19 @@ public abstract class EnvelopRestEndpoint {
        return mixEnvelop;
    }
    protected Envelop failed(String message) {
        return failed(message, -10000);
    protected <E extends Envelop> E failed(String message, Class<E> clazz) {
        return failed(message, -10000, clazz);
    }
    protected Envelop failed(String message, int status) {
        return success(message, status);
    protected <E extends Envelop> E failed(String message, int status, Class<E> clazz) {
        try {
            E envelop = clazz.newInstance();
            envelop.setMessage(message);
            envelop.setStatus(status);
            return envelop;
        } catch (Exception e) {
            return null;
        }
    }
    protected <T> T toEntity(String json, Class<T> target) throws IOException {

+ 8 - 5
common/common-util/pom.xml

@ -19,6 +19,10 @@
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.stuxuhai</groupId>
            <artifactId>jpinyin</artifactId>
@ -29,11 +33,10 @@
            <artifactId>json</artifactId>
            <version>${version.json}</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.apache.activemq</groupId>-->
            <!--<artifactId>activemq-all</artifactId>-->
            <!--<version>5.14.2</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-util</artifactId>

+ 0 - 1
common/common-web/src/main/java/com/yihu/jw/web/handler/GlobalExceptionHandler.java

@ -5,7 +5,6 @@ import com.yihu.jw.restmodel.web.Envelop;
import feign.FeignException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MissingServletRequestParameterException;

+ 4 - 0
gateway/ag-basic/pom.xml

@ -53,6 +53,10 @@
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <!--<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>-->
        <!-- 安全认证中心-->
        <dependency>

+ 9 - 2
gateway/ag-basic/src/main/resources/application.yml

@ -10,7 +10,14 @@ zuul:
      serviceId: svr-iot
    svr-base:
      path: /base/**
      serviceId: svr-base
      serviceId: svr-base-sxy
    demo:
      path: /baidu/**
      url: https://www.baidu.com
      url: https://www.baidu.com
spring:
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      percentage: 1.0

+ 14 - 1
server/svr-configuration/src/main/resources/bootstrap.yml

@ -25,4 +25,17 @@ spring:
        git:
          uri: ${wlyy.spring.config.git.uri:http://192.168.1.220:10080/jiwei/wlyy2.0.config.git}
          basedir: /usr/local/wlyy2.0-config
        default-label: ${wlyy.spring.config.git.label:jwdev}
        default-label: ${wlyy.spring.config.git.label:jwdev}
---
spring:
  profiles: jwprod
##git配置
  cloud:
    config:
      failFast: true #启动快速失败 即链接不到配置服务就启动失败
      server:
        git:
          uri: ${wlyy.spring.config.git.uri:http://192.168.1.220:10080/jiwei/wlyy2.0.config.git}
          basedir: /usr/local/wlyy2.0-config
        default-label: ${wlyy.spring.config.git.label:jwprod}

+ 0 - 46
server/svr-log-server/src/main/resources/bootstrap.yml

@ -1,46 +0,0 @@
##优先读取 boostarap配置 然后在读取application。yml的配置
spring:
  #从发现服务里面取配置服务的信息
  cloud:
    config:
      failFast: true ##启动快速失败 即链接不到配置服务就启动失败
      username: jw
      password: jkzl
      discovery:
        enabled: true ##使用发现服务
        service-id: svr-configurations ##配置服务的名字
---
spring:
  profiles: jwdev
##发现服务的地址
eureka:
  client:
    serviceUrl:
      #http://账号:密码@127.0.0.1:8761/eureka/
      defaultZone: http://jw:jkzl@172.19.103.33:8761/eureka/
---
spring:
  profiles: jwtest
eureka:
  client:
    serviceUrl:
      #http://账号:密码@127.0.0.1:8761/eureka/
      defaultZone: http://jw:jkzl@172.19.103.33:8761/eureka/
---
spring:
  profiles: jwprod
eureka:
  client:
    serviceUrl:
      #http://账号:密码@127.0.0.1:8761/eureka/
      defaultZone: http://jw:jkzl@127.0.0.1:8761/eureka/

+ 25 - 27
server/svr-log-server/pom.xml

@ -9,11 +9,28 @@
        <version>2.0.0</version>
        <relativePath>../../wlyy-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yih.jw</groupId>
    <artifactId>svr-log-server</artifactId>
    <version>${parent.version}</version>
    <artifactId>svr-zipkin</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-server</artifactId>
@ -33,39 +50,20 @@
            <version>1.21.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>svr-logServer</finalName>
        <finalName>svr-zipkin</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <mainClass>com.yihu.jw.LogServerApplication</mainClass>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
                </configuration>
            </plugin>
        </plugins>

server/svr-log-server/readme.MD → server/svr-zipkin/readme.MD


+ 3 - 5
server/svr-log-server/src/main/java/com/yihu/jw/LogServerApplication.java

@ -1,19 +1,17 @@
package com.yihu.jw;
package com.yihu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import zipkin.server.EnableZipkinServer;
/**
 * Created by chenweida on 2017/5/18.
 */
@SpringBootApplication
@EnableDiscoveryClient
@EnableZipkinServer
public class LogServerApplication {
public class SvrZipkin {
    public static void main(String[] args) {
        SpringApplication.run(LogServerApplication.class, args);
        SpringApplication.run(SvrZipkin.class, args);
    }
}

+ 3 - 4
server/svr-log-server/src/main/resources/application.yml

@ -1,12 +1,11 @@
spring:
  application:
    name: svr-logServer
server:
  port: 9411
---
spring:
  profiles: jwdev
##分布式日志存在es里面
#分布式日志存在es里面
zipkin:
  storage:
    type: elasticsearch

server/svr-log-server/src/main/resources/banner.txt → server/svr-zipkin/src/main/resources/banner.txt


+ 26 - 0
server/svr-zipkin/src/main/resources/bootstrap.yml

@ -0,0 +1,26 @@
##优先读取 boostarap配置 然后在读取application。yml的配置
spring:
  application:
    name: svr-zipkin
  #从发现服务里面取配置服务的信息
  cloud:
    config:
      failFast: true #启动快速失败 即链接不到配置服务就启动失败
      username: jw
      password: jkzl
---
spring:
  profiles: jwdev
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://172.17.110.212:1221}
      label: ${wlyy.spring.config.label:jwdev}
---
spring:
  profiles: jwtest
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://172.17.110.212:1221}
      label: ${wlyy.spring.config.label:jwdev}

+ 4 - 0
svr/svr-base/pom.xml

@ -54,6 +54,10 @@
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <!--<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>-->
        <dependency>
            <groupId>org.json</groupId>

+ 42 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/config/SwaggerDocs.java

@ -0,0 +1,42 @@
package com.yihu.jw.base.config;
import io.github.swagger2markup.GroupBy;
import io.github.swagger2markup.Language;
import io.github.swagger2markup.Swagger2MarkupConfig;
import io.github.swagger2markup.Swagger2MarkupConverter;
import io.github.swagger2markup.builder.Swagger2MarkupConfigBuilder;
import io.github.swagger2markup.markup.builder.MarkupLanguage;
import java.net.URL;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
 * Created by progr1mmer on 2018/8/21.
 */
public class SwaggerDocs {
    public static void main(String[] args) throws Exception {
        //1.请求 http://ip:port/swagger-resources获取group
        String group = "Default";
        //2.定义请求地址 new URL("http://ip:port/v2/api-docs?group=" + groupName)
        URL remoteSwaggerFile = new URL("http://127.0.0.1:10020/v2/api-docs?group=" + group); //项目的swagger-ui地址
        //3.定义文件输出路径
        String prefix = Thread.currentThread().getContextClassLoader().getResource("").getPath();
        Path outputFile = Paths.get(prefix.substring(prefix.lastIndexOf(":") + 1, prefix.indexOf("target") - 1) + "/build/" + group); //文档输出地址
        Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
                .withMarkupLanguage(MarkupLanguage.ASCIIDOC)
                .withOutputLanguage(Language.ZH)
                .withPathsGroupedBy(GroupBy.TAGS)
                .withGeneratedExamples()
                .withoutInlineSchema()
                //.withBasePathPrefix()
                .build();
        Swagger2MarkupConverter converter = Swagger2MarkupConverter.from(remoteSwaggerFile)
                .withConfig(config)
                .build();
        converter.toFile(outputFile);
    }
}

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

@ -0,0 +1,16 @@
package com.yihu.jw.base.dao;
import com.yihu.jw.entity.base.saas.SaasDO;
import com.yihu.jw.entity.base.saas.SaasDefaultModuleDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by progr1mmer on 2018/8/17.
 */
public interface SaasDefaultModuleDao extends PagingAndSortingRepository<SaasDefaultModuleDO, Integer>, JpaSpecificationExecutor<SaasDefaultModuleDO> {
    List<SaasDefaultModuleDO> findByType(SaasDO.Type type);
}

+ 11 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/UserHideModuleFunctionDao.java

@ -0,0 +1,11 @@
package com.yihu.jw.base.dao;
import com.yihu.jw.entity.base.user.UserHideModuleFunctionDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by progr1mmer on 2018/8/20.
 */
public interface UserHideModuleFunctionDao extends PagingAndSortingRepository<UserHideModuleFunctionDO, Integer>, JpaSpecificationExecutor<UserHideModuleFunctionDO> {
}

+ 12 - 10
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/function/FunctionEndpoint.java

@ -2,6 +2,7 @@ package com.yihu.jw.base.endpoint.function;
import com.yihu.jw.base.service.FunctionService;
import com.yihu.jw.entity.base.function.FunctionDO;
import com.yihu.jw.restmodel.base.base.FunctionVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
@ -30,12 +32,12 @@ public class FunctionEndpoint extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.Function.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建")
    public ObjEnvelop<FunctionDO> create (
    public ObjEnvelop<FunctionVO> create (
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        FunctionDO functionDO = toEntity(jsonData, FunctionDO.class);
        functionDO = functionService.save(functionDO);
        return success(functionDO);
        return success(convertToModel(functionDO, FunctionVO.class));
    }
    @PostMapping(value = BaseRequestMapping.Function.DELETE)
@ -49,20 +51,20 @@ public class FunctionEndpoint extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.Function.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "更新")
    public Envelop update (
    public ObjEnvelop<FunctionVO> update (
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        FunctionDO functionDO = toEntity(jsonData, FunctionDO.class);
        if (null == functionDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", ObjEnvelop.class);
        }
        functionDO = functionService.save(functionDO);
        return success(functionDO);
        return success(convertToModel(functionDO, FunctionVO.class));
    }
    @GetMapping(value = BaseRequestMapping.Function.PAGE)
    @ApiOperation(value = "获取分页")
    public PageEnvelop<FunctionDO> page (
    public PageEnvelop<FunctionVO> page (
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
@ -73,14 +75,14 @@ public class FunctionEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<FunctionDO> functionDOS = functionService.search(fields, filters, sorts, page, size);
        List<FunctionVO> functionDOS = functionService.search(fields, filters, sorts, page, size);
        int count = (int)functionService.getCount(filters);
        return success(functionDOS, count, page, size);
        return success(convertToModels(functionDOS, new ArrayList<>(), FunctionVO.class), count, page, size);
    }
    @GetMapping(value = BaseRequestMapping.Function.LIST)
    @ApiOperation(value = "获取列表")
    public ListEnvelop<FunctionDO> list (
    public ListEnvelop<FunctionVO> list (
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
@ -88,7 +90,7 @@ public class FunctionEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
        List<FunctionDO> functionDOS = functionService.search(fields, filters, sorts);
        return success(functionDOS);
        return success(convertToModels(functionDOS, new ArrayList<>(), FunctionVO.class));
    }
}

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/module/ModuleEndpoint.java

@ -43,7 +43,7 @@ public class ModuleEndpoint extends EnvelopRestEndpoint {
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
        moduleService.delete(ids);
        moduleService.delete(ids.split(","));
        return success("删除成功");
    }
@ -54,7 +54,7 @@ public class ModuleEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        ModuleDO module = toEntity(jsonData, ModuleDO.class);
        if (null == module.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        module = moduleService.save(module);
        return success(module);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/module/ModuleFunctionEndpoint.java

@ -54,7 +54,7 @@ public class ModuleFunctionEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        ModuleFunctionDO moduleFunctionDO = toEntity(jsonData, ModuleFunctionDO.class);
        if (null == moduleFunctionDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        moduleFunctionDO = moduleFunctionService.save(moduleFunctionDO);
        return success(moduleFunctionDO);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/RoleEndpoint.java

@ -54,7 +54,7 @@ public class RoleEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        RoleDO roleDO = toEntity(jsonData, RoleDO.class);
        if (null == roleDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        roleDO = roleService.save(roleDO);
        return success(roleDO);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/RoleModuleFunctionEndpoint.java

@ -54,7 +54,7 @@ public class RoleModuleFunctionEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        RoleModuleFunctionDO roleModuleFunctionDO = toEntity(jsonData, RoleModuleFunctionDO.class);
        if (null == roleModuleFunctionDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        roleModuleFunctionDO = roleModuleFunctionService.save(roleModuleFunctionDO);
        return success(roleModuleFunctionDO);

+ 94 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasDefaultModuleEndpoint.java

@ -0,0 +1,94 @@
package com.yihu.jw.base.endpoint.saas;
import com.yihu.jw.base.service.SaasDefaultModuleService;
import com.yihu.jw.entity.base.saas.SaasDefaultModuleDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * Created by progr1mmer on 2018/8/16.
 */
@RestController
@RequestMapping(value = BaseRequestMapping.SaasDefaultModule.PREFIX)
@Api(value = "Saas默认模块管理", description = "Saas默认模块管理服务接口", tags = {"wlyy基础服务 - Saas默认模块管理服务接口"})
public class SaasDefaultModuleEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private SaasDefaultModuleService saasDefaultModuleService;
    @PostMapping(value = BaseRequestMapping.SaasDefaultModule.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建")
    public ObjEnvelop<SaasDefaultModuleDO> create (
            @ApiParam(name = "json", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        SaasDefaultModuleDO saasDefaultModuleDO = toEntity(jsonData, SaasDefaultModuleDO.class);
        saasDefaultModuleDO = saasDefaultModuleService.save(saasDefaultModuleDO);
        return success(saasDefaultModuleDO);
    }
    @PostMapping(value = BaseRequestMapping.SaasDefaultModule.DELETE)
    @ApiOperation(value = "删除")
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
        saasDefaultModuleService.delete(ids);
        return success("删除成功");
    }
    @PostMapping(value = BaseRequestMapping.SaasDefaultModule.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "更新")
    public Envelop update (
            @ApiParam(name = "json", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        SaasDefaultModuleDO saasDefaultModuleDO = toEntity(jsonData, SaasDefaultModuleDO.class);
        if (null == saasDefaultModuleDO.getId()) {
            return failed("ID不能为空", Envelop.class);
        }
        saasDefaultModuleDO = saasDefaultModuleService.save(saasDefaultModuleDO);
        return success(saasDefaultModuleDO);
    }
    @GetMapping(value = BaseRequestMapping.SaasDefaultModule.PAGE)
    @ApiOperation(value = "获取分页")
    public PageEnvelop<SaasDefaultModuleDO> page (
            @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 = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<SaasDefaultModuleDO> saasDefaultModuleDOS = saasDefaultModuleService.search(fields, filters, sorts, page, size);
        int count = (int)saasDefaultModuleService.getCount(filters);
        return success(saasDefaultModuleDOS, count, page, size);
    }
    @GetMapping(value = BaseRequestMapping.SaasDefaultModule.LIST)
    @ApiOperation(value = "获取列表")
    public ListEnvelop<SaasDefaultModuleDO> list (
            @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) throws Exception {
        List<SaasDefaultModuleDO> saasDefaultModuleDOS = saasDefaultModuleService.search(fields, filters, sorts);
        return success(saasDefaultModuleDOS);
    }
}

+ 3 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasEndpoint.java

@ -41,7 +41,7 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "user", value = "Json数据", required = true)
            @RequestParam(value = "user") UserDO userDO) throws Exception {
        if (userService.search("username=" + userDO.getUsername()).size() > 0) {
            return failed("管理员用户名已存在");
            return failed("管理员用户名已存在", Envelop.class);
        }
        userDO.setEnabled(true);
        userDO.setLocked(false);
@ -69,7 +69,7 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        SaasDO saasDO = toEntity(jsonData, SaasDO.class);
        if (null == saasDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        saasDO = saasService.save(saasDO);
        return success(saasDO);
@ -115,7 +115,7 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "status") SaasDO.Status status) throws Exception {
        SaasDO saasDO = saasService.retrieve(id);
        if (null == saasDO) {
            return failed("无相关SAAS配置");
            return failed("无相关SAAS配置", Envelop.class);
        }
        saasDO.setStatus(status);
        saasService.save(saasDO);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasModuleEndpoint.java

@ -54,7 +54,7 @@ public class SaasModuleEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        SaasModuleDO saasModuleDO = toEntity(jsonData, SaasModuleDO.class);
        if (null == saasModuleDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        saasModuleDO = saasModuleService.save(saasModuleDO);
        return success(saasModuleDO);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/system/SystemDictEndpoint.java

@ -54,7 +54,7 @@ public class SystemDictEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        SystemDictDO systemDictDO = toEntity(jsonData, SystemDictDO.class);
        if (null == systemDictDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        systemDictDO = systemDictService.save(systemDictDO);
        return success(systemDictDO);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/system/SystemDictEntryEndpoint.java

@ -54,7 +54,7 @@ public class SystemDictEntryEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        SystemDictEntryDO systemDictEntryDO = toEntity(jsonData, SystemDictEntryDO.class);
        if (null == systemDictEntryDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        systemDictEntryDO = systemDictEntryService.save(systemDictEntryDO);
        return success(systemDictEntryDO);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/theme/ThemeEndpoint.java

@ -54,7 +54,7 @@ public class ThemeEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        ThemeDO theme = toEntity(jsonData, ThemeDO.class);
        if (null == theme.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        theme = themeService.save(theme);
        return success(theme);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserEndpoint.java

@ -54,7 +54,7 @@ public class UserEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        UserDO userDO = toEntity(jsonData, UserDO.class);
        if (null == userDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        userDO = userService.save(userDO);
        return success(userDO);

+ 94 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserHideModuleFunctionEndpoint.java

@ -0,0 +1,94 @@
package com.yihu.jw.base.endpoint.user;
import com.yihu.jw.base.service.UserHideModuleFunctionService;
import com.yihu.jw.entity.base.user.UserHideModuleFunctionDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * Created by progr1mmer on 2018/8/16.
 */
@RestController
@RequestMapping(value = BaseRequestMapping.UserHideModuleFunction.PREFIX)
@Api(value = "用户模块功能管理", description = "用户模块功能管理服务接口", tags = {"wlyy基础服务 - 用户模块功能管理服务接口"})
public class UserHideModuleFunctionEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private UserHideModuleFunctionService userHideModuleFunctionService;
    @PostMapping(value = BaseRequestMapping.UserHideModuleFunction.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建")
    public ObjEnvelop<UserHideModuleFunctionDO> create (
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        UserHideModuleFunctionDO userHideModuleFunctionDO = toEntity(jsonData, UserHideModuleFunctionDO.class);
        userHideModuleFunctionDO = userHideModuleFunctionService.save(userHideModuleFunctionDO);
        return success(userHideModuleFunctionDO);
    }
    @PostMapping(value = BaseRequestMapping.UserHideModuleFunction.DELETE)
    @ApiOperation(value = "删除")
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
        userHideModuleFunctionService.delete(ids);
        return success("删除成功");
    }
    @PostMapping(value = BaseRequestMapping.UserHideModuleFunction.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "更新")
    public Envelop update (
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        UserHideModuleFunctionDO userHideModuleFunctionDO = toEntity(jsonData, UserHideModuleFunctionDO.class);
        if (null == userHideModuleFunctionDO.getId()) {
            return failed("ID不能为空", Envelop.class);
        }
        userHideModuleFunctionDO = userHideModuleFunctionService.save(userHideModuleFunctionDO);
        return success(userHideModuleFunctionDO);
    }
    @GetMapping(value = BaseRequestMapping.UserHideModuleFunction.PAGE)
    @ApiOperation(value = "获取分页")
    public PageEnvelop<UserHideModuleFunctionDO> page (
            @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 = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<UserHideModuleFunctionDO> userHideModuleFunctionDOS = userHideModuleFunctionService.search(fields, filters, sorts, page, size);
        int count = (int)userHideModuleFunctionService.getCount(filters);
        return success(userHideModuleFunctionDOS, count, page, size);
    }
    @GetMapping(value = BaseRequestMapping.UserHideModuleFunction.LIST)
    @ApiOperation(value = "获取列表")
    public ListEnvelop<UserHideModuleFunctionDO> list (
            @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) throws Exception {
        List<UserHideModuleFunctionDO> userHideModuleFunctionDOS = userHideModuleFunctionService.search(fields, filters, sorts);
        return success(userHideModuleFunctionDOS);
    }
}

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserRoleEndpoint.java

@ -54,7 +54,7 @@ public class UserRoleEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
        UserRoleDO userRoleDO = toEntity(jsonData, UserRoleDO.class);
        if (null == userRoleDO.getId()) {
            return failed("ID不能为空");
            return failed("ID不能为空", Envelop.class);
        }
        userRoleDO = userRoleService.save(userRoleDO);
        return success(userRoleDO);

+ 0 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/ModuleService.java

@ -6,7 +6,6 @@ import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * Created by chenweida on 2017/5/19.
 */
@ -16,5 +15,4 @@ public class ModuleService extends BaseJpaService<ModuleDO, ModuleDao> {
    @Autowired
    private ModuleDao moduleDao;
}

+ 14 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/SaasDefaultModuleService.java

@ -0,0 +1,14 @@
package com.yihu.jw.base.service;
import com.yihu.jw.base.dao.SaasDefaultModuleDao;
import com.yihu.jw.entity.base.saas.SaasDefaultModuleDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * Created by progr1mmer on 2018/8/17.
 */
@Service
public class SaasDefaultModuleService extends BaseJpaService<SaasDefaultModuleDO, SaasDefaultModuleDao> {
}

+ 25 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/SaasService.java

@ -1,14 +1,22 @@
package com.yihu.jw.base.service;
import com.yihu.jw.base.dao.SaasDefaultModuleDao;
import com.yihu.jw.base.dao.SaasModuleDao;
import com.yihu.jw.base.dao.UserDao;
import com.yihu.jw.entity.base.saas.SaasDO;
import com.yihu.jw.base.dao.SaasDao;
import com.yihu.jw.entity.base.saas.SaasDefaultModuleDO;
import com.yihu.jw.entity.base.saas.SaasModuleDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
 * Created by chenweida on 2017/5/19.
 */
@ -19,11 +27,27 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
    private SaasDao saasDao;
    @Autowired
    private UserDao userDao;
    @Autowired
    private SaasDefaultModuleDao saasDefaultModuleDao;
    @Autowired
    private SaasModuleDao saasModuleDao;
    @Transactional
    public SaasDO save(SaasDO saas, UserDO user) {
        user = userDao.save(user);
        saas.setManager(user.getId());
        return super.save(saas);
        saas = saasDao.save(saas);
        String saasId = saas.getId();
        List<SaasDefaultModuleDO> saasDefaultModuleDOS = saasDefaultModuleDao.findByType(saas.getType());
        List<SaasModuleDO> saasModuleDOS = new ArrayList<>();
        saasDefaultModuleDOS.forEach(item -> {
            SaasModuleDO saasModuleDO = new SaasModuleDO();
            saasModuleDO.setSaasId(saasId);
            saasModuleDO.setModuleId(item.getModuleId());
            saasModuleDOS.add(saasModuleDO);
        });
        saasModuleDao.save(saasModuleDOS);
        return saas;
    }
    @Transactional

+ 13 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/UserHideModuleFunctionService.java

@ -0,0 +1,13 @@
package com.yihu.jw.base.service;
import com.yihu.jw.base.dao.UserHideModuleFunctionDao;
import com.yihu.jw.entity.base.user.UserHideModuleFunctionDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * Created by progr1mmer on 2018/8/20.
 */
@Service
public class UserHideModuleFunctionService extends BaseJpaService<UserHideModuleFunctionDO, UserHideModuleFunctionDao> {
}

+ 1 - 4
svr/svr-base/src/main/resources/application.yml

@ -22,7 +22,6 @@ spring:
    min-evictable-idle-time-millis: 3600000 #连接池中连接,在时间段内一直空闲,被逐出连接池的时间(1000*60*60),以毫秒为单位
    time-between-eviction-runs-millis: 300000 #在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位,一般比minEvictableIdleTimeMillis小
hibernate:
  dialect: org.hibernate.dialect.MySQL5Dialect
  show_sql: true
@ -44,13 +43,11 @@ spring:
    username: root
    password: 123456
  zipkin:
    base-url: http://192.168.131.173:${server.svr-logServer-port} #日志追踪的地址
    base-url: http://localhost:9411 #日志追踪的地址
  sleuth:
    sampler:
      percentage: 1.0 #采用需要的请求的百分比 默认是0.1 即 10%
---
spring:
  profiles: jwtest

+ 9 - 1
svr/svr-base/src/main/resources/bootstrap.yml

@ -21,4 +21,12 @@ spring:
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://172.17.110.212:1221}
      label: ${wlyy.spring.config.label:jwdev}
      label: ${wlyy.spring.config.label:jwdev}
---
spring:
  profiles: jwprod
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://172.17.110.212:1221}
      label: ${wlyy.spring.config.label:jwprod}

+ 45 - 0
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/controller/SpecialistController.java

@ -263,6 +263,51 @@ public class SpecialistController extends EnvelopRestEndpoint {
            return MixEnvelop.getError(e.getMessage());
        }
    }
    
    @GetMapping(value = SpecialistMapping.specialist.findDoctorAndDoctorHealthBySpecialDoctor)
    @ApiOperation(value = "获取当前专科医生有关联的家庭医生和健管师列表")
    public MixEnvelop findDoctorAndDoctorHealthBySpecialDoctor(
            @ApiParam(name = "doctor", value = "专科医生code") @RequestParam(required = true)String doctor){
        try {
            return specialistService.findDoctorAndDoctorHealthBySpecialDoctor(doctor);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
    
    @GetMapping(value = SpecialistMapping.specialist.findSpecialistSignFamilyPatientCout)
    @ApiOperation(value = "获取专科医生家庭医生共管居民数目")
    public MixEnvelop<Long, Long> findSpecialistSignFamilyPatientCout(
            @ApiParam(name = "specialdoctor", value = "专科医生") @RequestParam(required = true)String specialdoctor,
            @ApiParam(name = "familydoctor", value = "家庭医生") @RequestParam(required = true)String familydoctor
    ){
        try {
            return specialistService.findSpecialistSignFamilyPatientCout(specialdoctor,familydoctor);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
    
    @GetMapping(value = SpecialistMapping.specialist.getSpecialistSignFamilyPatientByName)
    @ApiOperation(value = "搜索专科医生家庭医生共管居民")
    public MixEnvelop<PatientRelationVO, PatientRelationVO> getSpecialistSignFamilyPatientByName(
            @ApiParam(name = "specialdoctor", value = "专科医生") @RequestParam(required = true)String specialdoctor,
            @ApiParam(name = "familydoctor", value = "家庭医生") @RequestParam(required = true)String familydoctor,
            @ApiParam(name = "nameKey", value = "居民姓名模糊") @RequestParam(required = false)String nameKey,
            @ApiParam(name = "page", value = "第几页,1开始") @RequestParam(required = true)Integer page,
            @ApiParam(name = "size", value = "每页大小") @RequestParam(required = true)Integer size) {
        try {
            return specialistService.getSpecialistSignFamilyPatientByName(specialdoctor,familydoctor,nameKey,page,size);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }

+ 73 - 1
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/SpecialistService.java

@ -5,6 +5,7 @@ import com.yihu.jw.entity.specialist.*;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.specialist.*;
import com.yihu.jw.rm.specialist.SpecialistMapping;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
@ -493,6 +494,7 @@ public class SpecialistService{
                " r.create_time AS createTime," +
                " r.status," +
                " r.sign_status AS signStatus  " +
                " r.team_code AS teamCode  " +
                " FROM " +
                " wlyy_specialist_patient_relation r " +
                " JOIN "+basedb+".wlyy_doctor d ON r.doctor = d.code " +
@ -594,7 +596,77 @@ public class SpecialistService{
        List<PatientSignInfoVO> patientSignInfoVOs = jdbcTemplate.query(sql,new BeanPropertyRowMapper(PatientSignInfoVO.class));
        return MixEnvelop.getSuccess(SpecialistMapping.api_success,patientSignInfoVOs.get(0));
    }
    
    public MixEnvelop findDoctorAndDoctorHealthBySpecialDoctor(String doctor) {
        String sql = "SELECT " +
                "doctor.CODE AS CODE," +
                "doctor.NAME AS NAME," +
                "doctor.sex AS sex," +
                "doctor.birthday AS birthday," +
                "doctor.photo AS photo," +
                "doctor.mobile AS mobile," +
                "doctor.hospital AS hospital," +
                "doctor.hospital_name AS hospitalName," +
                "doctor.dept AS dept," +
                "doctor.dept_name AS deptName," +
                "doctor.job AS job," +
                "doctor.job_name AS jobName," +
                "doctor.LEVEL AS LEVEL," +
                "doctor.qrcode AS qrcode," +
                "doctor.czrq AS czrq," +
                "doctor.del AS del," +
                "doctor.idcard AS idcard " +
                "FROM wlyy.wlyy_doctor doctor RIGHT JOIN ( " +
                "SELECT a.doctor AS doctorcode FROM wlyy.wlyy_sign_family a RIGHT JOIN ( " +
                "SELECT patient FROM wlyy_specialist_patient_relation WHERE sign_status> 0 AND `status`>=0 AND doctor='"+doctor+"') b ON a.patient=b.patient WHERE a.`status`=1 " +
                "UNION  " +
                "SELECT a.doctor_health AS doctorcode FROM wlyy.wlyy_sign_family a RIGHT JOIN ( " +
                "SELECT patient FROM wlyy_specialist_patient_relation WHERE sign_status> 0 AND `status`>=0 AND doctor='"+doctor+"') b ON a.patient=b.patient WHERE a.`status`=1) " +
                "t ON doctor.CODE=t.doctorcode";
        List<SignFamilyDoctorVO> patientSignInfoVOs = jdbcTemplate.query(sql,new BeanPropertyRowMapper(SignFamilyDoctorVO.class));
        return MixEnvelop.getSuccess(SpecialistMapping.api_success,patientSignInfoVOs);
    }
    
    public MixEnvelop<Long,Long> findSpecialistSignFamilyPatientCout(String specialdoctor, String familydoctor) {
    
        String sql = "SELECT count(1) AS total " +
                "FROM wlyy.wlyy_sign_family a WHERE a.`status`=1 AND a.expenses_status=1 " +
                "AND patient IN (" +
                "SELECT patient FROM wlyy_specialist.wlyy_specialist_patient_relation WHERE sign_status> 0 AND `status`>=0 " +
                "AND doctor='"+specialdoctor+"') " +
                "AND (a.doctor='"+familydoctor+"' OR a.doctor_health='"+familydoctor+"') ";
    
        List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sql);
        Long count = 0L;
        if(rstotal!=null&&rstotal.size()>0){
            count = (Long) rstotal.get(0).get("total");
        }
        return MixEnvelop.getSuccess(SpecialistMapping.api_success,count);
    }
    
    public MixEnvelop<PatientRelationVO,PatientRelationVO> getSpecialistSignFamilyPatientByName(String specialdoctor, String familydoctor, String nameKey, Integer page, Integer size) {
        String sql ="SELECT " +
                "p.CODE AS patient," +
                "p.`name` AS patientName," +
                "p.photo," +
                "IFNULL(YEAR (from_days(datediff(now(),p.birthday))),'未知') age," +
                "p.sex " +
                "FROM wlyy.wlyy_patient p " +
                "JOIN ( " +
                " SELECT a.patient FROM wlyy.wlyy_sign_family a WHERE patient IN (" +
                "  SELECT patient FROM wlyy_specialist_patient_relation WHERE sign_status> 0 AND `status`>=0 " +
                "  AND doctor='"+specialdoctor+"') " +
                "  AND (a.doctor='"+familydoctor+"' OR a.doctor_health='"+familydoctor+"') ";
        if(StringUtils.isNotBlank(nameKey)){
            sql= sql + "  AND a.NAME LIKE '%"+nameKey+"%' ";
        }
        sql= sql +" AND a.`status`=1 AND a.expenses_status=1) s ON p.CODE=s.patient" +
                " LIMIT "+(page-1)*size+","+size;
    
        List<PatientRelationVO> patientRelationVOs = jdbcTemplate.query(sql,new BeanPropertyRowMapper(PatientRelationVO.class));
    
        return MixEnvelop.getSuccess(SpecialistMapping.api_success,patientRelationVOs);
    }
//    public Envelop<Boolean> createSpecialists(List<SpecialistDO> info){

+ 16 - 0
svr/svr-wlyy-specialist/src/main/resources/bootstrap.yml

@ -18,6 +18,22 @@ spring:
---
spring:
  profiles: jwtest
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://172.17.110.212:1221}
      label: ${wlyy.spring.config.label:jwdev}
---
spring:
  profiles: jwdevtest
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://172.17.110.212:1221}
      label: ${wlyy.spring.config.label:jwdev}
---
spring:
  profiles: prod
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://172.17.110.212:1221}

+ 2 - 2
wlyy-parent-pom/pom.xml

@ -56,7 +56,7 @@
        <module>../server/svr-discovery</module><!--发现服务-->
        <!-- 暂时保留 -->
        <!--<module>../server/svr-dashboard</module>--><!--监控服务-->
        <!--<module>../server/svr-log-server</module>--><!--分布式追踪服务-->
        <module>../server/svr-zipkin</module> <!--分布式追踪服务-->
        <!-- 暂时保留 -->
        <!-- 网关服务 -->
@ -371,7 +371,7 @@
                <version>${asciidoctor.maven.plugin.version}</version>
                <configuration>
                    <sourceDirectory>build</sourceDirectory>
                    <outputDirectory>build/asciidoc/${project.version}</outputDirectory>
                    <outputDirectory>docs/${project.version}</outputDirectory>
                    <headerFooter>true</headerFooter>
                    <doctype>book</doctype>
                    <sourceHighlighter>coderay</sourceHighlighter>