Kaynağa Gözat

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

humingfen 7 yıl önce
ebeveyn
işleme
fc8feeadba
100 değiştirilmiş dosya ile 4843 ekleme ve 1489 silme
  1. 12 7
      app/app-iot-server/pom.xml
  2. 1 1
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/third/wlyy/MonitoringHealthPlatformController.java
  3. 2 2
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/third/wlyy/MonitoringHealthService.java
  4. 2 2
      app/public-health-server/pom.xml
  5. 4 2
      common-lib-parent-pom/pom.xml
  6. 50 0
      common/common-entity-es/pom.xml
  7. 1 1
      common/common-entity/src/main/java/com/yihu/jw/iot/datainput/Data.java
  8. 14 4
      common/common-entity/src/main/java/com/yihu/jw/iot/datainput/DataBodySignsDO.java
  9. 1 2
      common/common-entity/src/main/java/com/yihu/jw/iot/datainput/StepInfoDO.java
  10. 1 1
      common/common-entity/src/main/java/com/yihu/jw/iot/datainput/WeRunDataDO.java
  11. 1 1
      common/common-entity/src/main/java/com/yihu/jw/iot/device/LocationDataDO.java
  12. 2 22
      common/common-entity/pom.xml
  13. 9 0
      common/common-entity/src/main/java/com/yihu/jw/base/user/BaseRoleDO.java
  14. 194 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/AccountDO.java
  15. 135 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ActiveRecordDO.java
  16. 267 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ActivityDO.java
  17. 238 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/CreditsDetailDO.java
  18. 77 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ExchangeGoodsDO.java
  19. 119 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/GoodsDO.java
  20. 195 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskDO.java
  21. 64 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskDictDO.java
  22. 75 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskGoodsDO.java
  23. 138 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskPatientDetailDO.java
  24. 75 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskRangDO.java
  25. 105 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskRuleDO.java
  26. 179 11
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientHospitalRecordDO.java
  27. 94 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientLabelDO.java
  28. 83 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientLabelInfoDO.java
  29. 83 77
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistArticleDO.java
  30. 126 117
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistConsultDO.java
  31. 116 108
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistDO.java
  32. 65 17
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistPatientRelationDO.java
  33. 7 2
      common/common-exception/pom.xml
  34. 52 0
      common/common-exception/src/main/java/com/yihu/jw/exception/advice/MyControllerAdvice.java
  35. 10 3
      common/common-fegin/pom.xml
  36. 1 1
      common/common-fegin/src/main/java/com/yihu/jw/fegin/DemoFeign.java
  37. 3 2
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/login/LoginFeign.java
  38. 15 9
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/user/BaseRoleFeign.java
  39. 1 1
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/user/EmployFeign.java
  40. 69 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/base/LoginFeignFallbackFactory.java
  41. 5 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/user/BaseRoleFeignFallbackFactory.java
  42. 2 2
      common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/user/EmployeeFeignFallbackFactory.java
  43. 1 1
      common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/iot/device/IotPatientDeviceFallbackFactory.java
  44. 1 1
      common/common-fegin/src/main/java/com/yihu/jw/fegin/iot/device/IotPatientDeviceFeign.java
  45. 2 2
      common/common-request-mapping/pom.xml
  46. 1 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseUserRequestMapping.java
  47. 65 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/health/bank/HealthBankMapping.java
  48. 9 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/specialist/SpecialistMapping.java
  49. 40 0
      common/common-rest-model-es/pom.xml
  50. 1 1
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/FigureLabelDataModelVO.java
  51. 14 3
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/LocationDataVO.java
  52. 12 8
      common/common-rest-model/pom.xml
  53. 1 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/EnvelopRestController.java
  54. 1 1
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/base/BaseEnvelop.java
  55. 42 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/base/BaseEnvelopStatus.java
  56. 0 23
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/common/SaveModel.java
  57. 44 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/specialist/AssistantVO.java
  58. 110 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/specialist/PatientLabelVO.java
  59. 94 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/specialist/PatientRelationVO.java
  60. 2 2
      common/common-util/pom.xml
  61. BIN
      data/elasticsearch/nodes/0/_state/global-0.st
  62. 0 0
      data/elasticsearch/nodes/0/node.lock
  63. 94 0
      server/svr-admin-server/pom.xml
  64. 4 0
      server/svr-admin-server/readme.MD
  65. 25 0
      server/svr-admin-server/src/main/java/com.yihu.admin/AdminServer.java
  66. 48 0
      server/svr-admin-server/src/main/java/com.yihu.admin/config/NotifierConfig.java
  67. 133 0
      server/svr-admin-server/src/main/java/com.yihu.admin/email/JKZLMailNotifier.java
  68. 40 0
      server/svr-admin-server/src/main/resources/application.yml
  69. 27 0
      server/svr-admin-server/src/main/resources/bootstrap.yml
  70. 4 0
      server/svr-admin-server/src/main/resources/logback.xml
  71. 5 5
      server/svr-configuration/pom.xml
  72. 9 2
      server/svr-configuration/src/main/resources/application.yml
  73. 9 6
      server/svr-configuration/src/main/resources/bootstrap.yml
  74. 1 1
      server/svr-discovery/pom.xml
  75. 1 1
      server/svr-discovery/src/main/resources/application.yml
  76. 69 0
      server/svr-yihu-admin-server/pom.xml
  77. 5 0
      server/svr-yihu-admin-server/readme.MD
  78. 33 0
      server/svr-yihu-admin-server/src/main/java/com.yihu.admin/YihuAdminServer.java
  79. 66 0
      server/svr-yihu-admin-server/src/main/resources/application.yml
  80. 17 0
      server/svr-yihu-admin-server/src/main/resources/bootstrap.yml
  81. 4 0
      server/svr-yihu-admin-server/src/main/resources/logback.xml
  82. 82 26
      svr-lib-parent-pom/pom.xml
  83. 31 18
      svr/svr-base/pom.xml
  84. 7 2
      svr/svr-base/src/main/java/com/yihu/jw/SvrBaseApplication.java
  85. 193 191
      svr/svr-base/src/main/java/com/yihu/jw/business/base/controller/FunctionController.java
  86. 25 25
      svr/svr-base/src/main/java/com/yihu/jw/business/base/controller/ModuleController.java
  87. 24 24
      svr/svr-base/src/main/java/com/yihu/jw/business/base/controller/SaasController.java
  88. 41 0
      svr/svr-base/src/main/java/com/yihu/jw/business/demo/DemoController.java
  89. 116 117
      svr/svr-base/src/main/java/com/yihu/jw/business/login/contorller/LoginController.java
  90. 124 126
      svr/svr-base/src/main/java/com/yihu/jw/business/login/service/LoginService.java
  91. 0 69
      svr/svr-base/src/main/java/com/yihu/jw/business/sms/controller/SMSController.java
  92. 92 81
      svr/svr-base/src/main/java/com/yihu/jw/business/user/contorller/BaseRoleController.java
  93. 128 132
      svr/svr-base/src/main/java/com/yihu/jw/business/user/contorller/EmployController.java
  94. 31 28
      svr/svr-base/src/main/java/com/yihu/jw/business/user/dao/BaseRoleDao.java
  95. 184 174
      svr/svr-base/src/main/java/com/yihu/jw/business/user/service/BaseRoleService.java
  96. 3 6
      svr/svr-base/src/main/java/com/yihu/jw/business/user/service/EmployService.java
  97. 10 4
      svr/svr-base/src/main/java/com/yihu/jw/config/jpa/HibernateProperties.java
  98. 24 13
      svr/svr-base/src/main/resources/application.yml
  99. 1 1
      svr/svr-base/src/main/resources/bootstrap.yml
  100. 0 0
      svr/svr-demo/pom.xml

+ 12 - 7
app/app-iot-server/pom.xml

@ -1,18 +1,21 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yihu.ehr.iot</groupId>
    <artifactId>app-iot-server</artifactId>
    <packaging>war</packaging>
    <version>1.0.0</version>
    <parent>
        <groupId>com.yihu.jw</groupId>
        <artifactId>svr-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../svr-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.ehr.iot</groupId>
    <artifactId>app-iot-server</artifactId>
    <packaging>war</packaging>
    <version>${parent.version}</version>
    <!-- 依赖包 -->
    <dependencies>
        <dependency>
@ -230,12 +233,10 @@
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-request-mapping</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.base</groupId>
@ -246,6 +247,10 @@
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model-es</artifactId>
        </dependency>
    </dependencies>
    <build>

+ 1 - 1
app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/third/wlyy/MonitoringHealthPlatformController.java

@ -3,11 +3,11 @@ package com.yihu.ehr.iot.controller.third.wlyy;
import com.yihu.ehr.iot.controller.common.BaseController;
import com.yihu.ehr.iot.service.third.wlyy.MonitoringHealthService;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.LocationDataVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import iot.device.LocationDataVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

+ 2 - 2
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/third/wlyy/MonitoringHealthService.java

@ -8,9 +8,9 @@ import com.yihu.ehr.iot.service.common.BaseService;
import com.yihu.ehr.iot.util.http.HttpHelper;
import com.yihu.ehr.iot.util.http.HttpResponse;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.LocationDataVO;
import com.yihu.jw.util.date.DateUtil;
import io.swagger.annotations.ApiOperation;
import iot.device.LocationDataVO;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -44,7 +44,7 @@ public class MonitoringHealthService extends BaseService{
     * @param diseaseCondition
     * @return
     */
    public Envelop<LocationDataVO> findDeviceLocations(Integer diseaseCondition,Integer page,Integer size,String type) throws IOException {
    public Envelop<LocationDataVO> findDeviceLocations(Integer diseaseCondition, Integer page, Integer size, String type) throws IOException {
        Envelop<LocationDataVO> envelop = new Envelop<>();
        Envelop<LocationDataVO> envelopTmp = null;
        JSONArray jsonArray = new JSONArray();

+ 2 - 2
app/public-health-server/pom.xml

@ -4,12 +4,12 @@
    <groupId>com.yihu.ehr.iot</groupId>
    <artifactId>public-health-server</artifactId>
    <packaging>war</packaging>
    <version>1.0.0</version>
    <version>${parent.version}</version>
    <parent>
        <groupId>com.yihu.jw</groupId>
        <artifactId>svr-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../svr-lib-parent-pom/pom.xml</relativePath>
    </parent>

+ 4 - 2
common-lib-parent-pom/pom.xml

@ -6,18 +6,20 @@
    <parent>
        <groupId>com.yihu.jw</groupId>
        <artifactId>svr-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../svr-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.base</groupId>
    <artifactId>common-lib-parent-pom</artifactId>
    <version>1.0.0</version>
    <version>1.0.2</version>
    <packaging>pom</packaging>
    <modules>
        <module>../common/common-entity</module>
        <module>../common/common-rest-model</module>
        <module>../common/common-rest-model-es</module>
        <module>../common/common-exception</module>
        <module>../common/common-request-mapping</module>
        <module>../common/common-util</module>

+ 50 - 0
common/common-entity-es/pom.xml

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.yihu.base</groupId>
        <artifactId>common-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <relativePath>../../common-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>common-entity-es</artifactId>
    <version>${parent.version}</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest-common</artifactId>
            <version>2.4.0</version>
        </dependency>
    </dependencies>
</project>

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/iot/datainput/Data.java

@ -1,4 +1,4 @@
package com.yihu.jw.iot.datainput;
package com.yihu.jw.datainput;
/**
 * 具体各项体征指标数据值
 * @author lith on 2018/01/17.

+ 14 - 4
common/common-entity/src/main/java/com/yihu/jw/iot/datainput/DataBodySignsDO.java

@ -1,6 +1,7 @@
package com.yihu.jw.iot.datainput;
package com.yihu.jw.datainput;
import com.yihu.base.es.config.model.SaveModel;
import io.searchbox.annotations.JestId;
import java.util.List;
@ -8,9 +9,10 @@ import java.util.List;
 * 体征数据实体类,新的标准的数据格式
 * @author lith on 2018/01/17.
 */
public class DataBodySignsDO extends SaveModel {
public class DataBodySignsDO {
    @JestId
    private String id;
    private String access_token; //访问token
    private String data_source; //数据来源
    private String sn;          //设备序列码
@ -22,6 +24,14 @@ public class DataBodySignsDO extends SaveModel {
    private String username;    //用户名
    private String usercode;    //用户在系统中的code,唯一识别
    public String getId() {
        return this.id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getAccess_token() {
        return access_token;
    }

+ 1 - 2
common/common-entity/src/main/java/com/yihu/jw/iot/datainput/StepInfoDO.java

@ -1,6 +1,5 @@
package com.yihu.jw.iot.datainput;
package com.yihu.jw.datainput;
import com.fasterxml.jackson.annotation.JsonInclude;
/**
 * 微信运动具体时间步数实体类
 * @author lith on 2018/01/17.

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/iot/datainput/WeRunDataDO.java

@ -1,4 +1,4 @@
package com.yihu.jw.iot.datainput;
package com.yihu.jw.datainput;
import java.util.List;

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/iot/device/LocationDataDO.java

@ -1,4 +1,4 @@
package com.yihu.jw.iot.device;
package com.yihu.jw.device;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;

+ 2 - 22
common/common-entity/pom.xml

@ -6,12 +6,12 @@
    <parent>
        <groupId>com.yihu.base</groupId>
        <artifactId>common-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../common-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>common-entity</artifactId>
    <version>1.0.0</version>
    <version>${parent.version}</version>
    <dependencies>
@ -36,25 +36,5 @@
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest-common</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest-common</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>2.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.base</groupId>
            <artifactId>common-data-es</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
</project>

+ 9 - 0
common/common-entity/src/main/java/com/yihu/jw/base/user/BaseRoleDO.java

@ -21,6 +21,7 @@ public class BaseRoleDO extends IdEntityWithOperation implements java.io.Seriali
	private String name;
	private Integer status;
	private String remark;
	private String code;
	// Constructors
@ -74,4 +75,12 @@ public class BaseRoleDO extends IdEntityWithOperation implements java.io.Seriali
		this.remark = remark;
	}
	@Column(name = "code", length = 50)
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
}

+ 194 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/AccountDO.java

@ -0,0 +1,194 @@
package com.yihu.jw.entity.health.bank;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;
/**
 * Created by wang zhinan on 2018/4/26.
 */
@Entity
@Table(name = "wlyy_health_bank_account")
public class AccountDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId; //saasId
    @Column(name = "patient_id")
    private String patientId;//居民id
    @Column(name = "account_name")
    private String accountName;//账户名
    @Column(name = "total")
    private int total;//积分总数
    @Column(name = "password")
    private String password;//密码
    @Column(name = "card_number")
    private String cardNumber;//卡号
    @Column(name = "hospital_name")
    private String hospitalName;//社区名字
    @Column(name = "hospital")
    private String hospital;//社区
    @Transient
    private Long sum;//总积分(已用积分和剩余积分)
    @Transient
    private int usedTotal;//已用积分
    @Transient
    private Long nowTotal;//今日获取积分
    @Transient
    private Long activityTotal;//参与活动数;
    @Transient
    private Long taskTotal;//参与任务数;
    @Transient
    private int teamRanking;//团队排名
    @Transient
    private int cityRanking;//全市排名
    @Transient
    private List<String> patientIds;//团队居民id
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public String getAccountName() {
        return accountName;
    }
    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }
    public int getTotal() {
        return total;
    }
    public void setTotal(int total) {
        this.total = total;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public int getUsedTotal() {
        return usedTotal;
    }
    public void setUsedTotal(int usedTotal) {
        this.usedTotal = usedTotal;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getCardNumber() {
        return cardNumber;
    }
    public void setCardNumber(String cardNumber) {
        this.cardNumber = cardNumber;
    }
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    public Long getSum() {
        return sum;
    }
    public void setSum(Long sum) {
        this.sum = sum;
    }
    public Long getNowTotal() {
        return nowTotal;
    }
    public void setNowTotal(Long nowTotal) {
        this.nowTotal = nowTotal;
    }
    public Long getActivityTotal() {
        return activityTotal;
    }
    public void setActivityTotal(Long activityTotal) {
        this.activityTotal = activityTotal;
    }
    public Long getTaskTotal() {
        return taskTotal;
    }
    public void setTaskTotal(Long taskTotal) {
        this.taskTotal = taskTotal;
    }
    public int getTeamRanking() {
        return teamRanking;
    }
    public void setTeamRanking(int teamRanking) {
        this.teamRanking = teamRanking;
    }
    public int getCityRanking() {
        return cityRanking;
    }
    public void setCityRanking(int cityRanking) {
        this.cityRanking = cityRanking;
    }
    public List<String> getPatientIds() {
        return patientIds;
    }
    public void setPatientIds(List<String> patientIds) {
        this.patientIds = patientIds;
    }
}

+ 135 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ActiveRecordDO.java

@ -0,0 +1,135 @@
package com.yihu.jw.entity.health.bank;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.IdEntity;
import com.yihu.jw.IdEntityWithOperation;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
 * Created by 刘文彬 on 2018/6/12.
 */
@Entity
@Table(name = "wlyy_health_bank_active_record")
@EntityListeners(AuditingEntityListener.class)
public class ActiveRecordDO extends IdEntity implements Serializable {
    private String saasId; //saasId
    private String taskId;  //wlyy_health_bank_task任务表的id
    private String taskTitle;//任务标题
    private String activityId;//wlyy_health_bank_activity表的id
    private String activityTitle;//活动标题
    private Integer originalStatus;//原先状态
    private Integer currentStatus;//当前状态
    private String patientId;//居民code
    private String patientName;//居民名称
    private Integer teamId;//wlyy_admin_team医生行政团队的id
    private Date createTime;
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "task_id")
    public String getTaskId() {
        return taskId;
    }
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }
    @Column(name = "task_title")
    public String getTaskTitle() {
        return taskTitle;
    }
    public void setTaskTitle(String taskTitle) {
        this.taskTitle = taskTitle;
    }
    @Column(name = "activity_id")
    public String getActivityId() {
        return activityId;
    }
    public void setActivityId(String activityId) {
        this.activityId = activityId;
    }
    @Column(name = "activity_title")
    public String getActivityTitle() {
        return activityTitle;
    }
    public void setActivityTitle(String activityTitle) {
        this.activityTitle = activityTitle;
    }
    @Column(name = "original_status")
    public Integer getOriginalStatus() {
        return originalStatus;
    }
    public void setOriginalStatus(Integer originalStatus) {
        this.originalStatus = originalStatus;
    }
    @Column(name = "current_status")
    public Integer getCurrentStatus() {
        return currentStatus;
    }
    public void setCurrentStatus(Integer currentStatus) {
        this.currentStatus = currentStatus;
    }
    @Column(name = "patient_id")
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    @Column(name = "patient_name")
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    @Column(name = "team_id")
    public Integer getTeamId() {
        return teamId;
    }
    public void setTeamId(Integer teamId) {
        this.teamId = teamId;
    }
    @CreatedDate
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "create_time", nullable = true, length = 0,updatable = false)
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

+ 267 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ActivityDO.java

@ -0,0 +1,267 @@
package com.yihu.jw.entity.health.bank;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
 * Created by wang zhinan on 2018/4/26.
 */
@Entity
@Table(name = "wlyy_health_bank_activity")
public class ActivityDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;//saasId
    @Column(name = "organizer")
    private String organizer; // 主办方&&发布机构
    @Column(name = "title")
    private String title;//活动标题
    @Column(name = "description")
    private String description;//活动说明
    @Column(name = "location")
    private String location;//活动地点
    @Column(name = "img")
    private String img;//活动图片
    @Column(name = "start_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date startTime;//开始时间
    @Column(name = "end_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date endTime; //结束时间
    @Column(name = "status")
    private int status;//状态(1代表有效,0代表无效,-1代表过期)
    @Column(name = "is_flag")
    private String isFlag;//标识是否有问卷(1:有,-1:没有)
    @Column(name = "area")
    private String area;//区域
    @Column(name = "area_type")
    private int areaType; //区域类型
    @Column(name = "remark")
    private String remark;//活动备注
    @Column(name = "type")
    private String type;//活动类型
    @Transient
    private String patientId;//居民id
    @Transient
    private String openId;//微信编码
    @Transient
    private String unionId;
    @Transient
    private String patientIdcard;//身份证号
    @Transient
    private Long total;//参加总数
    @Transient
    private int activityRanking;//活动中的排名
    @Transient
    private List<TaskPatientDetailDO> taskPatientDetailDOS;//参与活动详情
    @Transient
    private Long sum;//活动积分总数
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getOrganizer() {
        return organizer;
    }
    public void setOrganizer(String organizer) {
        this.organizer = organizer;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getLocation() {
        return location;
    }
    public void setLocation(String location) {
        this.location = location;
    }
    public String getImg() {
        return img;
    }
    public void setImg(String img) {
        this.img = img;
    }
    public Date getStartTime() {
        return startTime;
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public String getIsFlag() {
        return isFlag;
    }
    public void setIsFlag(String isFlag) {
        this.isFlag = isFlag;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public String getArea() {
        return area;
    }
    public void setArea(String area) {
        this.area = area;
    }
    public int getAreaType() {
        return areaType;
    }
    public void setAreaType(int areaType) {
        this.areaType = areaType;
    }
    public String getOpenId() {
        return openId;
    }
    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public Long getTotal() {
        return total;
    }
    public void setTotal(Long total) {
        this.total = total;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public List<TaskPatientDetailDO> getTaskPatientDetailDOS() {
        return taskPatientDetailDOS;
    }
    public void setTaskPatientDetailDOS(List<TaskPatientDetailDO> taskPatientDetailDOS) {
        this.taskPatientDetailDOS = taskPatientDetailDOS;
    }
    public String getUnionId() {
        return unionId;
    }
    public void setUnionId(String unionId) {
        this.unionId = unionId;
    }
    public String getPatientIdcard() {
        return patientIdcard;
    }
    public void setPatientIdcard(String patientIdcard) {
        this.patientIdcard = patientIdcard;
    }
    public int getActivityRanking() {
        return activityRanking;
    }
    public void setActivityRanking(int activityRanking) {
        this.activityRanking = activityRanking;
    }
    public Long getSum() {
        return sum;
    }
    public void setSum(Long sum) {
        this.sum = sum;
    }
}

+ 238 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/CreditsDetailDO.java

@ -0,0 +1,238 @@
package com.yihu.jw.entity.health.bank;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
/**
 * Created by wang zhinan on 2018/4/27.
 */
@Entity
@Table(name = "wlyy_health_bank_credits_detail")
public class CreditsDetailDO extends IdEntityWithOperation implements Serializable{
    @Column(name = "saas_id")
    private String saasId; //saasid
    @Column(name = "trade_type")
    private String tradeType; //交易类型交易类型:普通任务(NORMAL_TASK)、活动任务(ACTIVITY_TASK)、兑换商品(EXCHANGE_GOODS)
    @Column(name = "transaction_id")
    private String transactionId;//业务ID
    @Column(name="integrate")
    private int integrate;//积分
    @Column(name = "status")
    private int status;//状态(有效/无效)
    @Column(name = "trade_direction")
    private int tradeDirection;//交易方向
    @Column(name = "account_id")
    private String accountId;//账户id
    @Column(name = "patient_id")
    private String patientId;//居民id
    @Column(name = "hospital")
    private String hospital;//社区
    @Column(name = "description")
    private String description;//积分获取说明
    @Transient
    private TaskDO taskDO;//任务对象
    @Transient
    private String activityId;//活动ID
    @Transient
    private ActivityDO activityDO;//活动对象
    @Transient
    private String flag ; // 标识是什么任务
    @Transient
    private Integer total;  //总积分
    @Transient
    private String name; //居民名称
    @Transient
    private String idCard; //身份证号码
    @Transient
    private String openId;//微信编号
    @Transient
    private Long stepNumber;//步数
    @Transient
    private String unionId;
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public int getIntegrate() {
        return integrate;
    }
    public void setIntegrate(int integrate) {
        this.integrate = integrate;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public String getAccountId() {
        return accountId;
    }
    public void setAccountId(String accountId) {
        this.accountId = accountId;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public int getTradeDirection() {
        return tradeDirection;
    }
    public void setTradeDirection(int tradeDirection) {
        this.tradeDirection = tradeDirection;
    }
    public String getTransactionId() {
        return transactionId;
    }
    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }
    public String getTradeType() {
        return tradeType;
    }
    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }
    public TaskDO getTaskDO() {
        return taskDO;
    }
    public void setTaskDO(TaskDO taskDO) {
        this.taskDO = taskDO;
    }
    public ActivityDO getActivityDO() {
        return activityDO;
    }
    public void setActivityDO(ActivityDO activityDO) {
        this.activityDO = activityDO;
    }
    public String getFlag() {
        return flag;
    }
    public void setFlag(String flag) {
        this.flag = flag;
    }
    public Integer getTotal() {
        return total;
    }
    public void setTotal(Integer total) {
        this.total = total;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getIdCard() {
        return idCard;
    }
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    public String getOpenId() {
        return openId;
    }
    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Long getStepNumber() {
        return stepNumber;
    }
    public void setStepNumber(Long stepNumber) {
        this.stepNumber = stepNumber;
    }
    public String getActivityId() {
        return activityId;
    }
    public void setActivityId(String activityId) {
        this.activityId = activityId;
    }
    public String getUnionId() {
        return unionId;
    }
    public void setUnionId(String unionId) {
        this.unionId = unionId;
    }
}

+ 77 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ExchangeGoodsDO.java

@ -0,0 +1,77 @@
package com.yihu.jw.entity.health.bank;/**
 * Created by nature of king on 2018/5/3.
 */
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
/**
 * @author wangzhinan
 * @create 2018-05-03 15:17
 * @desc exchange goods
 **/
@Entity
@Table(name = "wlyy_health_bank_exchange_goods")
public class ExchangeGoodsDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;//saasid
    @Column(name = "goods_id")
    private String goodsId;//商品id
    @Column(name = "integrate")
    private String integrate;//积分
    @Column(name = "patient_id")
    private String patientId;//居民id
    @Transient
    private GoodsDO goodsDO;//商品对象
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getGoodsId() {
        return goodsId;
    }
    public void setGoodsId(String goodsId) {
        this.goodsId = goodsId;
    }
    public String getIntegrate() {
        return integrate;
    }
    public void setIntegrate(String integrate) {
        this.integrate = integrate;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public GoodsDO getGoodsDO() {
        return goodsDO;
    }
    public void setGoodsDO(GoodsDO goodsDO) {
        this.goodsDO = goodsDO;
    }
}

+ 119 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/GoodsDO.java

@ -0,0 +1,119 @@
package com.yihu.jw.entity.health.bank;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
 * Created by wang zhinan on 2018/4/27.
 */
@Entity
@Table(name = "wlyy_health_bank_goods")
public class GoodsDO extends IdEntityWithOperation implements Serializable{
    @Column(name = "saas_id")
    private String saasId;//saasid
    @Column(name = "name")
    private String name;//商品名称
    @Column(name = "img_url")
    private String imgUrl;//图片地址
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "start_time")
    private Date startTime;//开始时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "over_time")
    private Date overTime;//结束时间
    @Column(name = "status")
    private String status;//状态
    @Column(name = "require_integrate")
    private String requireIntegrate; //兑换产品所需积分
    @Column(name = "content")
    private String content;//商品内容
    @Column(name = "community")
    private String community;//社区字段
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getImgUrl() {
        return imgUrl;
    }
    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }
    public Date getStartTime() {
        return startTime;
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public Date getOverTime() {
        return overTime;
    }
    public void setOverTime(Date overTime) {
        this.overTime = overTime;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public String getRequireIntegrate() {
        return requireIntegrate;
    }
    public void setRequireIntegrate(String requireIntegrate) {
        this.requireIntegrate = requireIntegrate;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getCommunity() {
        return community;
    }
    public void setCommunity(String community) {
        this.community = community;
    }
}

+ 195 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskDO.java

@ -0,0 +1,195 @@
package com.yihu.jw.entity.health.bank;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
 * Created by wamg zhinan 2018/4/27.
 */
@Entity
@Table(name = "wlyy_health_bank_task")
public class TaskDO extends IdEntityWithOperation implements Serializable{
    @Column(name = "saas_id")
    private String saasId; //saasid
    @Column(name = "title")
    private String title; //任务标题
    @Column(name = "content")
    private String content; //任务内容
    @Column(name = "type")
    private String type; //交易类型
    @Column(name = "transaction_id")
    private String transactionId; // 业务id
    @Column(name = "period")
    private int period; //周期性
    @Column(name = "task_code")
    private String taskCode ; // 标识是什么任务
    @Column(name = "status")
    private int status; //状态
    @Column(name = "rule_code")
    private String ruleCode;//规则code
    @Column(name = "start_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date startTime;//开始时间
    @Column(name = "end_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date endTime; //结束时间
    @Transient
    private ActivityDO activityDO;//活动详情
    @Transient
    private String patientId;//居民id
    @Transient
    private String openId;//微信编码
    @Transient
    private Long total;//参加总数
    @Transient
    private List<TaskPatientDetailDO> taskPatientDetailDOS;//参与人详情
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getTransactionId() {
        return transactionId;
    }
    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }
    public int getPeriod() {
        return period;
    }
    public void setPeriod(int period) {
        this.period = period;
    }
    public String getTaskCode() {
        return taskCode;
    }
    public void setTaskCode(String taskCode) {
        this.taskCode = taskCode;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public String getRuleCode() {
        return ruleCode;
    }
    public void setRuleCode(String ruleCode) {
        this.ruleCode = ruleCode;
    }
    public Date getStartTime() {
        return startTime;
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public ActivityDO getActivityDO() {
        return activityDO;
    }
    public void setActivityDO(ActivityDO activityDO) {
        this.activityDO = activityDO;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public List<TaskPatientDetailDO> getTaskPatientDetailDOS() {
        return taskPatientDetailDOS;
    }
    public void setTaskPatientDetailDOS(List<TaskPatientDetailDO> taskPatientDetailDOS) {
        this.taskPatientDetailDOS = taskPatientDetailDOS;
    }
    public Long getTotal() {
        return total;
    }
    public void setTotal(Long total) {
        this.total = total;
    }
    public String getOpenId() {
        return openId;
    }
    public void setOpenId(String openId) {
        this.openId = openId;
    }
}

+ 64 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskDictDO.java

@ -0,0 +1,64 @@
package com.yihu.jw.entity.health.bank;/**
 * Created by nature of king on 2018/6/8.
 */
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * @author wangzhinan
 * @create 2018-06-08 14:32
 * @desc 任务字典
 **/
@Entity
@Table(name = "wlyy_health_bank_task_dict" )
public class TaskDictDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private  String saasId;//环境id
    @Column(name = "dictType")
    private String dictType;//字典类型
    @Column(name = "dict_code")
    private String dictCode;//字典code
    @Column(name = "dict_name")
    private String dictName;//字典名称
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getDictType() {
        return dictType;
    }
    public void setDictType(String dictType) {
        this.dictType = dictType;
    }
    public String getDictCode() {
        return dictCode;
    }
    public void setDictCode(String dictCode) {
        this.dictCode = dictCode;
    }
    public String getDictName() {
        return dictName;
    }
    public void setDictName(String dictName) {
        this.dictName = dictName;
    }
}

+ 75 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskGoodsDO.java

@ -0,0 +1,75 @@
package com.yihu.jw.entity.health.bank;/**
 * Created by nature of king on 2018/6/8.
 */
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * @author wangzhinan
 * @create 2018-06-08 14:40
 * @desc 活动商品
 **/
@Entity
@Table(name = "wlyy_health_bank_task_goods")
public class TaskGoodsDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;//环境id
    @Column(name = "task_id")
    private String taskId;//任务id
    @Column(name = "img")
    private String img;//商品图片
    @Column(name = "name")
    private String name;//商品名称
    @Column(name = "integrate")
    private int integrate;//积分
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getTaskId() {
        return taskId;
    }
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }
    public String getImg() {
        return img;
    }
    public void setImg(String img) {
        this.img = img;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getIntegrate() {
        return integrate;
    }
    public void setIntegrate(int integrate) {
        this.integrate = integrate;
    }
}

+ 138 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskPatientDetailDO.java

@ -0,0 +1,138 @@
package com.yihu.jw.entity.health.bank;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
/**
 * Created by wamg zhinan 2018/4/27.
 */
@Entity
@Table(name = "wlyy_health_bank_task_patient_detail")
public class TaskPatientDetailDO extends IdEntityWithOperation implements Serializable{
    @Column(name = "saas_id")
    private String saasId; //saasid
    @Column(name = "status")
    private int status;//任务完整状态:1完成,0参与,-1作废
    @Column(name = "patient_id")
    private String patientId;//居民id
    @Column(name = "patient_idcard")
    private String patientIdcard;//居民身份证
    @Column(name = "patient_openid")
    private String patientOpenid;//居民openid
    @Column(name = "doctor_id")
    private String doctorId;//医生id
    @Column(name = "task_id")
    private String taskId;//任务id
    @Column(name = "activity_id")
    private String activityId;//活动id
    @Column(name = "total")
    private Long total;//活动中获取的积分
    @Column(name = "union_id")
    private String unionId;
    @Transient
    private AccountDO accountDO;//账户信息
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public String getPatientIdcard() {
        return patientIdcard;
    }
    public void setPatientIdcard(String patientIdcard) {
        this.patientIdcard = patientIdcard;
    }
    public String getPatientOpenid() {
        return patientOpenid;
    }
    public void setPatientOpenid(String patientOpenid) {
        this.patientOpenid = patientOpenid;
    }
    public String getDoctorId() {
        return doctorId;
    }
    public void setDoctorId(String doctorId) {
        this.doctorId = doctorId;
    }
    public String getTaskId() {
        return taskId;
    }
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }
    public String getActivityId() {
        return activityId;
    }
    public void setActivityId(String activityId) {
        this.activityId = activityId;
    }
    public Long getTotal() {
        return total;
    }
    public void setTotal(Long total) {
        this.total = total;
    }
    public AccountDO getAccountDO() {
        return accountDO;
    }
    public void setAccountDO(AccountDO accountDO) {
        this.accountDO = accountDO;
    }
    public String getUnionId() {
        return unionId;
    }
    public void setUnionId(String unionId) {
        this.unionId = unionId;
    }
}

+ 75 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskRangDO.java

@ -0,0 +1,75 @@
package com.yihu.jw.entity.health.bank;/**
 * Created by nature of king on 2018/6/8.
 */
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * @author wangzhinan
 * @create 2018-06-08 14:43
 * @desc 活动范围
 **/
@Entity
@Table(name = "wlyy_health_bank_task_rang")
public class TaskRangDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;//环境id
    @Column(name = "task_id")
    private String taskId;//任务id
    @Column(name = "key")
    private String key;//范围KEY
    @Column(name = "value")
    private String value;// 范围value
    @Column(name = "status")
    private int status;//状态
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getTaskId() {
        return taskId;
    }
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }
    public String getKey() {
        return key;
    }
    public void setKey(String key) {
        this.key = key;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
}

+ 105 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskRuleDO.java

@ -0,0 +1,105 @@
package com.yihu.jw.entity.health.bank;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * Created by wamg zhinan 2018/4/27.
 */
@Entity
@Table(name = "wlyy_health_bank_task_rule")
public class TaskRuleDO extends IdEntityWithOperation implements Serializable{
    @Column(name = "saas_id")
    private String saasId; //saasid
    @Column(name = "name")
    private String name;//规则名称
    @Column(name = "description")
    private String description;//规则描述
    @Column(name = "integrate")
    private int integrate; //积分
    @Column(name = "trade_direction")
    private int tradeDirection;//交易方向 1增、-1减、0清零
    @Column(name = "type")
    private String type;//规则类型:NORMAL-手动,AUTO-自动
    @Column(name = "status")
    private int status; //状态
    @Column(name = "java_class_path")
    private String javaClassPath;//java反射类路径
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public int getIntegrate() {
        return integrate;
    }
    public void setIntegrate(int integrate) {
        this.integrate = integrate;
    }
    public int getTradeDirection() {
        return tradeDirection;
    }
    public void setTradeDirection(int tradeDirection) {
        this.tradeDirection = tradeDirection;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public String getJavaClassPath() {
        return javaClassPath;
    }
    public void setJavaClassPath(String javaClassPath) {
        this.javaClassPath = javaClassPath;
    }
}

+ 179 - 11
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientHospitalRecordDO.java

@ -13,14 +13,48 @@ import java.io.Serializable;
@Entity
@Table(name = "wlyy_patient_hospital_record")
public class PatientHospitalRecordDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;//
    private String code;//智业记录code
    @Column(name = "third_code")
    private String thirdCode;//智业记录code
    @Column(name = "event_code")
    private String eventCode; // 事件code
    @Column(name = "patient")
    private String patient;//患者
    @Column(name = "patient_name")
    private String patientName;//患者姓名
    @Column(name = "type")
    private String type;//出院:1;住院:0
    @Column(name = "hospital")
    private String hospital; //医院
    @Column(name = "hospital_name")
    private String hospitalName;
    @Column(name = "doctor")
    private String doctor; //医生
    @Column(name = "doctor_name")
    private String doctorName;
    @Column(name = "city")
    private String city; //城市
    @Column(name = "city_name")
    private String cityName;
    @Column(name = "town")
    private String town; //城镇
    @Column(name = "town_name")
    private String townName;
    @Column(name = "remark")
    private String remark; //备注
    @Column(name = "diagnosis")
    private String diagnosis; //诊断
    @Column(name = "label")
    private String label; //标签
    @Column(name = "label_name")
    private String labelName;
    @Column(name = "dept")
    private String dept;//部门
    @Column(name = "dept_name")
    private String deptName;
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
@ -29,16 +63,150 @@ public class PatientHospitalRecordDO extends IdEntityWithOperation implements Se
        this.saasId = saasId;
    }
    @Column(name = "code")
    public String getCode() {
        return code;
    public String getThirdCode() {
        return thirdCode;
    }
    public void setCode(String code) {
        this.code = code;
    public void setThirdCode(String thirdCode) {
        this.thirdCode = thirdCode;
    }
    @Column(name = "patient")
    public String getEventCode() {
        return eventCode;
    }
    public void setEventCode(String eventCode) {
        this.eventCode = eventCode;
    }
    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 getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getDiagnosis() {
        return diagnosis;
    }
    public void setDiagnosis(String diagnosis) {
        this.diagnosis = diagnosis;
    }
    public String getLabel() {
        return label;
    }
    public void setLabel(String label) {
        this.label = label;
    }
    public String getLabelName() {
        return labelName;
    }
    public void setLabelName(String labelName) {
        this.labelName = labelName;
    }
    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 getPatient() {
        return patient;
    }
@ -47,7 +215,7 @@ public class PatientHospitalRecordDO extends IdEntityWithOperation implements Se
        this.patient = patient;
    }
    @Column(name = "patient_name")
    public String getPatientName() {
        return patientName;
    }
@ -56,7 +224,7 @@ public class PatientHospitalRecordDO extends IdEntityWithOperation implements Se
        this.patientName = patientName;
    }
    @Column(name = "type")
    public String getType() {
        return type;
    }

+ 94 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientLabelDO.java

@ -0,0 +1,94 @@
//package com.yihu.jw.entity.specialist;
//
//import com.yihu.jw.IdEntityWithOperation;
//
//import javax.persistence.Column;
//import javax.persistence.Entity;
//import javax.persistence.Table;
//import java.io.Serializable;
//
///**
// * Created by Trick on 2018/5/29.
// */
//@Entity
//@Table(name = "wlyy_patient_label")
//public class PatientLabelDO extends IdEntityWithOperation implements Serializable {
//
//    @Column(name = "saas_id")
//    private String saasId;
//    @Column(name = "label_name")
//    private String labelName;//标签名称',
//    @Column(name = "label_code")
//    private String labelCode;//标签code',
//    @Column(name = "label_type")
//    private String labelType;//标签类型:1.装病类型;2.健康情况;3.自定义',
//    @Column(name = "sort")
//    private Integer sort;//排序',
//    @Column(name = "team_code")
//    private String teamCode;//团队code',
//    @Column(name = "del")
//    private String del;//1:有效;0:删除',
//
//
//    public String getSaasId() {
//        return saasId;
//    }
//
//    public void setSaasId(String saasId) {
//        this.saasId = saasId;
//    }
//
//
//    public String getLabelName() {
//        return labelName;
//    }
//
//    public void setLabelName(String labelName) {
//        this.labelName = labelName;
//    }
//
//
//    public String getLabelCode() {
//        return labelCode;
//    }
//
//    public void setLabelCode(String labelCode) {
//        this.labelCode = labelCode;
//    }
//
//
//    public String getLabelType() {
//        return labelType;
//    }
//
//    public void setLabelType(String labelType) {
//        this.labelType = labelType;
//    }
//
//
//    public Integer getSort() {
//        return sort;
//    }
//
//    public void setSort(Integer sort) {
//        this.sort = sort;
//    }
//
//
//    public String getTeamCode() {
//        return teamCode;
//    }
//
//    public void setTeamCode(String teamCode) {
//        this.teamCode = teamCode;
//    }
//
//
//    public String getDel() {
//        return del;
//    }
//
//    public void setDel(String del) {
//        this.del = del;
//    }
//}

+ 83 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientLabelInfoDO.java

@ -0,0 +1,83 @@
//package com.yihu.jw.entity.specialist;
//
//import com.yihu.jw.IdEntityWithOperation;
//
//import javax.persistence.Column;
//import javax.persistence.Entity;
//import javax.persistence.Table;
//import java.io.Serializable;
//
///**
// * Created by Trick on 2018/5/29.
// */
//@Entity
//@Table(name = "wlyy_patient_label_info")
//public class PatientLabelInfoDO extends IdEntityWithOperation implements Serializable {
//
//    @Column(name = "saas_id")
//    private String saasId;
//    @Column(name = "patient")
//    private String patient;//居民code',
//    @Column(name = "label_name")
//    private String labelName;//标签名称',
//    @Column(name = "label_code")
//    private String labelCode;//标签code',
//    @Column(name = "label_type")
//    private String labelType;//标签类别',
//    @Column(name = "team_code")
//    private String teamCode;//团队code',
//
//
//    public String getSaasId() {
//        return saasId;
//    }
//
//    public void setSaasId(String saasId) {
//        this.saasId = saasId;
//    }
//
//
//    public String getPatient() {
//        return patient;
//    }
//
//    public void setPatient(String patient) {
//        this.patient = patient;
//    }
//
//
//    public String getLabelName() {
//        return labelName;
//    }
//
//    public void setLabelName(String labelName) {
//        this.labelName = labelName;
//    }
//
//
//    public String getLabelCode() {
//        return labelCode;
//    }
//
//    public void setLabelCode(String labelCode) {
//        this.labelCode = labelCode;
//    }
//
//
//    public String getLabelType() {
//        return labelType;
//    }
//
//    public void setLabelType(String labelType) {
//        this.labelType = labelType;
//    }
//
//
//    public String getTeamCode() {
//        return teamCode;
//    }
//
//    public void setTeamCode(String teamCode) {
//        this.teamCode = teamCode;
//    }
//}

+ 83 - 77
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistArticleDO.java

@ -1,77 +1,83 @@
package com.yihu.jw.entity.specialist;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * Created by Trick on 2018/4/24.
 */
@Entity
@Table(name = "wlyy_specialist_Article")
public class SpecialistArticleDO extends IdEntityWithOperation implements Serializable {
    private String saasId;
    private String patient;//居民
    private String patientName;//居民
    private String doctor;//医生
    private String doctorName;//医生
    private String article;//文章
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "patient_name")
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "article")
    public String getArticle() {
        return article;
    }
    public void setArticle(String article) {
        this.article = article;
    }
}
//package com.yihu.jw.entity.specialist;
//
//import com.yihu.jw.IdEntityWithOperation;
//
//import javax.persistence.Column;
//import javax.persistence.Entity;
//import javax.persistence.Table;
//import java.io.Serializable;
//
///**
// * Created by Trick on 2018/4/24.
// */
//@Entity
//@Table(name = "wlyy_specialist_Article")
//public class SpecialistArticleDO extends IdEntityWithOperation implements Serializable {
//
//    @Column(name = "saas_id")
//    private String saasId;
//    @Column(name = "patient")
//    private String patient;//居民
//    @Column(name = "patient_name")
//    private String patientName;//居民
//    @Column(name = "doctor")
//    private String doctor;//医生
//    @Column(name = "doctor_name")
//    private String doctorName;//医生
//    @Column(name = "article")
//    private String article;//文章
//
//
//    public String getSaasId() {
//        return saasId;
//    }
//
//    public void setSaasId(String saasId) {
//        this.saasId = saasId;
//    }
//
//
//    public String getPatient() {
//        return patient;
//    }
//
//    public void setPatient(String patient) {
//        this.patient = patient;
//    }
//
//
//    public String getPatientName() {
//        return patientName;
//    }
//
//    public void setPatientName(String patientName) {
//        this.patientName = patientName;
//    }
//
//
//    public String getDoctor() {
//        return doctor;
//    }
//
//    public void setDoctor(String doctor) {
//        this.doctor = doctor;
//    }
//
//
//    public String getDoctorName() {
//        return doctorName;
//    }
//
//    public void setDoctorName(String doctorName) {
//        this.doctorName = doctorName;
//    }
//
//
//    public String getArticle() {
//        return article;
//    }
//
//    public void setArticle(String article) {
//        this.article = article;
//    }
//}

+ 126 - 117
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistConsultDO.java

@ -1,117 +1,126 @@
package com.yihu.jw.entity.specialist;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * Created by Trick on 2018/4/24.
 */
@Entity
@Table(name = "wlyy_specialist_consult")
public class SpecialistConsultDO extends IdEntityWithOperation implements Serializable {
    private String saasId;
    private String consult;//关联咨询code
    private String doctor;//专科医生
    private String doctorName;//专科医生姓名
    private String type;//类型:1.家庭医生咨询,2.居民咨询
    private String member;//咨询对象
    private String memberName;//咨询对象
    private String status;// 1.咨询完成,0.咨询进行中
    private String reply;// 1.专科医生已经参与;0.~未参与
    private String content;//咨询内容
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "consult")
    public String getConsult() {
        return consult;
    }
    public void setConsult(String consult) {
        this.consult = consult;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Column(name = "member")
    public String getMember() {
        return member;
    }
    public void setMember(String member) {
        this.member = member;
    }
    @Column(name = "member_name")
    public String getMemberName() {
        return memberName;
    }
    public void setMemberName(String memberName) {
        this.memberName = memberName;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "reply")
    public String getReply() {
        return reply;
    }
    public void setReply(String reply) {
        this.reply = reply;
    }
    @Column(name = "content")
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
}
//package com.yihu.jw.entity.specialist;
//
//import com.yihu.jw.IdEntityWithOperation;
//
//import javax.persistence.Column;
//import javax.persistence.Entity;
//import javax.persistence.Table;
//import java.io.Serializable;
//
///**
// * Created by Trick on 2018/4/24.
// */
//@Entity
//@Table(name = "wlyy_specialist_consult")
//public class SpecialistConsultDO extends IdEntityWithOperation implements Serializable {
//    @Column(name = "saas_id")
//    private String saasId;
//    @Column(name = "consult")
//    private String consult;//关联咨询code
//    @Column(name = "doctor")
//    private String doctor;//专科医生
//    @Column(name = "doctor_name")
//    private String doctorName;//专科医生姓名
//    @Column(name = "type")
//    private String type;//类型:1.家庭医生咨询,2.居民咨询
//    @Column(name = "member")
//    private String member;//咨询对象
//    @Column(name = "member_name")
//    private String memberName;//咨询对象
//    @Column(name = "status")
//    private String status;// 1.咨询完成,0.咨询进行中
//    @Column(name = "reply")
//    private String reply;// 1.专科医生已经参与;0.~未参与
//    @Column(name = "content")
//    private String content;//咨询内容
//
//
//    public String getSaasId() {
//        return saasId;
//    }
//
//    public void setSaasId(String saasId) {
//        this.saasId = saasId;
//    }
//
//
//    public String getConsult() {
//        return consult;
//    }
//
//    public void setConsult(String consult) {
//        this.consult = consult;
//    }
//
//
//    public String getDoctor() {
//        return doctor;
//    }
//
//    public void setDoctor(String doctor) {
//        this.doctor = doctor;
//    }
//
//
//    public String getDoctorName() {
//        return doctorName;
//    }
//
//    public void setDoctorName(String doctorName) {
//        this.doctorName = doctorName;
//    }
//
//
//    public String getType() {
//        return type;
//    }
//
//    public void setType(String type) {
//        this.type = type;
//    }
//
//
//    public String getMember() {
//        return member;
//    }
//
//    public void setMember(String member) {
//        this.member = member;
//    }
//
//
//    public String getMemberName() {
//        return memberName;
//    }
//
//    public void setMemberName(String memberName) {
//        this.memberName = memberName;
//    }
//
//
//    public String getStatus() {
//        return status;
//    }
//
//    public void setStatus(String status) {
//        this.status = status;
//    }
//
//
//    public String getReply() {
//        return reply;
//    }
//
//    public void setReply(String reply) {
//        this.reply = reply;
//    }
//
//
//    public String getContent() {
//        return content;
//    }
//
//    public void setContent(String content) {
//        this.content = content;
//    }
//}

+ 116 - 108
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistDO.java

@ -1,108 +1,116 @@
package com.yihu.jw.entity.specialist;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * Created by Trick on 2018/4/24.
 */
@Entity
@Table(name = "wlyy_specialist")
public class SpecialistDO extends IdEntityWithOperation implements Serializable {
    private String saasId;
    private String name; //专科医生姓名
    private String profession; //专业
    private String professionName; // 专业名称
    private String dept; //科室
    private String deptName; //科室名称
    private String hospital;//医院
    private String hospitalName;//医院名称
    private String del;//1:有效;0:删除
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "profession")
    public String getProfession() {
        return profession;
    }
    public void setProfession(String profession) {
        this.profession = profession;
    }
    @Column(name = "profession_name")
    public String getProfessionName() {
        return professionName;
    }
    public void setProfessionName(String professionName) {
        this.professionName = professionName;
    }
    @Column(name = "dept")
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    @Column(name = "dept_name")
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    @Column(name = "hospital")
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    @Column(name = "hospital_name")
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    @Column(name = "del")
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
}
//package com.yihu.jw.entity.specialist;
//
//import com.yihu.jw.IdEntityWithOperation;
//
//import javax.persistence.Column;
//import javax.persistence.Entity;
//import javax.persistence.Table;
//import java.io.Serializable;
//
///**
// * Created by Trick on 2018/4/24.
// */
//@Entity
//@Table(name = "wlyy_specialist")
//public class SpecialistDO extends IdEntityWithOperation implements Serializable {
//    @Column(name = "saas_id")
//    private String saasId;
//    @Column(name = "name")
//    private String name; //专科医生姓名
//    @Column(name = "profession")
//    private String profession; //专业
//    @Column(name = "profession_name")
//    private String professionName; // 专业名称
//    @Column(name = "dept")
//    private String dept; //科室
//    @Column(name = "dept_name")
//    private String deptName; //科室名称
//
//    @Column(name = "hospital")
//    private String hospital;//医院
//    @Column(name = "hospital_name")
//    private String hospitalName;//医院名称
//    @Column(name = "del")
//    private String del;//1:有效;0:删除
//
//
//    public String getSaasId() {
//        return saasId;
//    }
//
//    public void setSaasId(String saasId) {
//        this.saasId = saasId;
//    }
//
//
//    public String getName() {
//        return name;
//    }
//
//    public void setName(String name) {
//        this.name = name;
//    }
//
//
//    public String getProfession() {
//        return profession;
//    }
//
//    public void setProfession(String profession) {
//        this.profession = profession;
//    }
//
//
//    public String getProfessionName() {
//        return professionName;
//    }
//
//
//    public void setProfessionName(String professionName) {
//        this.professionName = professionName;
//    }
//
//
//    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 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 getDel() {
//        return del;
//    }
//
//    public void setDel(String del) {
//        this.del = del;
//    }
//}

+ 65 - 17
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistPatientRelationDO.java

@ -15,23 +15,61 @@ import java.util.Date;
@Table(name = "wlyy_specialist_patient_relation")
public class SpecialistPatientRelationDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "discharge_record")
    private String dischargeRecord;//最新出院记录
    @Column(name = "doctor")
    private String doctor;//专科医生
    @Column(name = "doctor_name")
    private String doctorName;//专科医生姓名
    @Column(name = "patient")
    private String patient;// 居民(患者)
    @Column(name = "patient_name")
    private String patientName;//居民(患者)姓名
    @Column(name = "health_assistant")
    private String healthAssistant;//计管师
    @Column(name = "health_assistant_name")
    private String healthAssistantName;//计管师
    @Column(name = "status")
    private String status;//1.已经分配,0,待分配
    @Column(name = "pk_code")
    private String pkCode; //服务包code
    @Column(name = "sign_code")
    private String signCode;//签约code
    @Column(name = "sign_doctor")
    private String signDoctor;//签约医生
    @Column(name = "sign_doctor_name")
    private String signDoctorName;//签约医生
    @Column(name = "health_doctor")
    private String healthDoctor;//健康管理师
    @Column(name = "health_doctor_name")
    private String healthDoctorName;//健康管理师姓名
    @Column(name = "sign_year")
    private String signYear;//签约年度
    @Column(name = "team_code")
    private Integer teamCode;//签约团队
    @Column(name = "sign_date")
    private Date signDate;//签约日期
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
@ -40,7 +78,7 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.saasId = saasId;
    }
    @Column(name = "discharge_record")
    public String getDischargeRecord() {
        return dischargeRecord;
    }
@ -49,7 +87,7 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.dischargeRecord = dischargeRecord;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
@ -58,7 +96,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
@ -67,7 +104,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.doctorName = doctorName;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
@ -76,7 +112,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.patient = patient;
    }
    @Column(name = "patient_name")
    public String getPatientName() {
        return patientName;
    }
@ -85,7 +120,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.patientName = patientName;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
@ -94,7 +128,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.status = status;
    }
    @Column(name = "sign_code")
    public String getSignCode() {
        return signCode;
    }
@ -103,7 +136,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.signCode = signCode;
    }
    @Column(name = "sign_doctor")
    public String getSignDoctor() {
        return signDoctor;
    }
@ -112,7 +144,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.signDoctor = signDoctor;
    }
    @Column(name = "sign_doctor_name")
    public String getSignDoctorName() {
        return signDoctorName;
    }
@ -121,7 +152,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.signDoctorName = signDoctorName;
    }
    @Column(name = "health_doctor")
    public String getHealthDoctor() {
        return healthDoctor;
    }
@ -130,7 +160,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.healthDoctor = healthDoctor;
    }
    @Column(name = "health_doctor_name")
    public String getHealthDoctorName() {
        return healthDoctorName;
    }
@ -139,7 +168,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.healthDoctorName = healthDoctorName;
    }
    @Column(name = "sign_year")
    public String getSignYear() {
        return signYear;
    }
@ -148,9 +176,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.signYear = signYear;
    }
    @Column(name = "sign_date")
    public Date getSignDate() {
        return signDate;
    }
@ -159,7 +184,6 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
        this.signDate = signDate;
    }
    @Column(name = "team_code")
    public Integer getTeamCode() {
        return teamCode;
    }
@ -167,4 +191,28 @@ public class SpecialistPatientRelationDO extends IdEntityWithOperation implement
    public void setTeamCode(Integer teamCode) {
        this.teamCode = teamCode;
    }
    public String getHealthAssistant() {
        return healthAssistant;
    }
    public void setHealthAssistant(String healthAssistant) {
        this.healthAssistant = healthAssistant;
    }
    public String getHealthAssistantName() {
        return healthAssistantName;
    }
    public void setHealthAssistantName(String healthAssistantName) {
        this.healthAssistantName = healthAssistantName;
    }
    public String getPkCode() {
        return pkCode;
    }
    public void setPkCode(String pkCode) {
        this.pkCode = pkCode;
    }
}

+ 7 - 2
common/common-exception/pom.xml

@ -6,13 +6,13 @@
    <parent>
        <groupId>com.yihu.base</groupId>
        <artifactId>common-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../common-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>common-exception</artifactId>
    <version>1.0.0</version>
    <version>${parent.version}</version>
    <dependencies>
        <dependency>
@ -39,5 +39,10 @@
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>
    </dependencies>
</project>

+ 52 - 0
common/common-exception/src/main/java/com/yihu/jw/exception/advice/MyControllerAdvice.java

@ -0,0 +1,52 @@
//package com.yihu.jw.exception.advice;
//
//import com.yihu.jw.exception.ApiException;
//import com.yihu.jw.restmodel.common.base.BaseEnvelop;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.ControllerAdvice;
//import org.springframework.web.bind.annotation.ExceptionHandler;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.cloud.sleuth.Tracer;
//import org.json.JSONObject;
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 统一异常处理器
// * Created by 刘文彬 on 2018/5/9.
// */
//@ControllerAdvice
//public class MyControllerAdvice {
//    @Autowired
//    private Tracer tracer;
//    private final Logger logger = LoggerFactory.getLogger(this.getClass());
//
//
//    @ResponseBody
//    @ExceptionHandler(value = ApiException.class)
//    public BaseEnvelop myErrorHandler(ApiException ex) {
//        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
//        tracer.getCurrentSpan().tag("ApiExcepiton.Tag",new JSONObject(request.getParameterMap()).toString());
//        tracer.getCurrentSpan().logEvent(ex.getMessage());
//        logger.error(ex.getMessage());
//        return BaseEnvelop.getError(ex.getMessage(),ex.getErrorCode());
//    }
//
//    @ResponseBody
//    @ExceptionHandler(value = Exception.class)
//    public BaseEnvelop myErrorHandler2(Exception ex) {
//        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
//        tracer.getCurrentSpan().tag("Excepiton.Tag",new JSONObject(request.getParameterMap()).toString());
//        tracer.getCurrentSpan().logEvent(ex.getMessage());
//        logger.error(ex.getMessage());
//        return BaseEnvelop.getError(ex.getMessage());
//    }
//
//
//}

+ 10 - 3
common/common-fegin/pom.xml

@ -6,26 +6,33 @@
    <parent>
        <groupId>com.yihu.base</groupId>
        <artifactId>common-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../common-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>common-fegin</artifactId>
    <version>1.0.0</version>
    <version>${parent.version}</version>
    <dependencies>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-exception</artifactId>
            <version>${parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model</artifactId>
            <version>${parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-request-mapping</artifactId>
            <version>${parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model</artifactId>
            <artifactId>common-rest-model-es</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.base</groupId>

+ 1 - 1
common/common-fegin/src/main/java/com/yihu/jw/fegin/DemoFeign.java

@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam;
)
public interface DemoFeign {
    @RequestMapping(value = Contants.patient.findByCode, method = RequestMethod.GET)
    @RequestMapping(value = "/demo/findByCode", method = RequestMethod.GET)
    String findByCode(@RequestParam(value = "code", required = true) String code);
}

+ 3 - 2
common/common-fegin/src/main/java/com/yihu/jw/fegin/base/login/LoginFeign.java

@ -1,6 +1,7 @@
package com.yihu.jw.fegin.base.login;
import com.yihu.jw.fegin.fallbackfactory.base.base.FunctionFeignFallbackFactory;
import com.yihu.jw.fegin.fallbackfactory.base.base.LoginFeignFallbackFactory;
import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
@ -23,13 +24,13 @@ import javax.servlet.http.HttpServletResponse;
 */
@FeignClient(
        name = CommonContants.svr_base // name值是eurika的实例名字
//        ,fallbackFactory  = FunctionFeignFallbackFactory.class
        ,fallbackFactory  = LoginFeignFallbackFactory.class
)
@RequestMapping(value = BaseLoginRequestMapping.api_common)
public interface LoginFeign {
    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_checkoutInfo, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    Envelop checkoutInfo();
    BaseEnvelop checkoutInfo(@RequestParam(value = "ssc", required = true) String ssc,@RequestParam(value = "idcard", required = true) String idcard);
    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_accountSub, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    Envelop register(

+ 15 - 9
common/common-fegin/src/main/java/com/yihu/jw/fegin/base/user/BaseRoleFeign.java

@ -5,6 +5,8 @@ import com.yihu.jw.fegin.fallbackfactory.base.user.BaseRoleFeignFallbackFactory;
import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.rm.base.BaseUserRequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@ -16,15 +18,16 @@ import org.springframework.web.bind.annotation.*;
        name = CommonContants.svr_base // name值是eurika的实例名字
        ,fallbackFactory  = BaseRoleFeignFallbackFactory.class
)
@RequestMapping(BaseUserRequestMapping.api_user_common)
public interface BaseRoleFeign {
    
    @RequestMapping(value = BaseUserRequestMapping.BaseRole.api_create,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST)
    @RequestMapping(value = BaseUserRequestMapping.BaseRole.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.POST)
    Envelop create(@RequestBody String jsonData) throws JiWeiException;
    @RequestMapping(value =  BaseUserRequestMapping.BaseRole.api_update,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.PUT)
    @RequestMapping(value = BaseUserRequestMapping.BaseRole.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.PUT)
    Envelop update(@RequestBody String jsonData) throws JiWeiException;
    @RequestMapping(value =  BaseUserRequestMapping.BaseRole.api_delete,method = RequestMethod.DELETE)
    @RequestMapping(value = BaseUserRequestMapping.BaseRole.api_delete, method = RequestMethod.DELETE)
    Envelop delete(@PathVariable(value = "id") String id) throws JiWeiException;
    @GetMapping(value = BaseUserRequestMapping.BaseRole.api_getById)
@ -44,16 +47,19 @@ public interface BaseRoleFeign {
            @RequestParam(value = "filters", required = false) String filters,
            @RequestParam(value = "sorts", required = false) String sorts) throws JiWeiException;
    @RequestMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_create,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST)
    @RequestMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.POST)
    Envelop createRoleMenus(@RequestBody String jsonData) throws JiWeiException;
    @RequestMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_update,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST)
    @RequestMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.POST)
    Envelop updateRoleMenus(@RequestBody String jsonData) throws JiWeiException;
    @RequestMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_delete,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST)
    @RequestMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_delete, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.POST)
    Envelop deleteRoleMenus(@RequestBody String jsonData) throws JiWeiException;
    @RequestMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_getListNoPage,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST)
    @RequestMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_getListNoPage, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.POST)
    Envelop getMenuList(@RequestBody String jsonData) throws JiWeiException;
}
    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_getRoleByPhoneAndSaasId, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    Envelop getPhoneAndSaasId(@RequestParam(value = "phone", required = true) String phone, @RequestParam(value = "saasId", required = true) String saasId);
}

+ 1 - 1
common/common-fegin/src/main/java/com/yihu/jw/fegin/base/user/EmployFeign.java

@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
public interface EmployFeign {
    @RequestMapping(value = BaseUserRequestMapping.BaseEmploy.api_create,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST)
    Envelop create(@RequestBody String jsonData) throws JiWeiException;
    Envelop create(@RequestBody String jsonData);
    @RequestMapping(value =  BaseUserRequestMapping.BaseEmploy.api_update,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.PUT)
    Envelop update(@RequestBody String jsonData) throws JiWeiException;

+ 69 - 0
common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/base/LoginFeignFallbackFactory.java

@ -0,0 +1,69 @@
package com.yihu.jw.fegin.fallbackfactory.base.base;
import com.yihu.jw.fegin.base.login.LoginFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelopStatus;
import feign.hystrix.FallbackFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.stereotype.Component;
/**
 * Created by 刘文彬 on 2018/5/8.
 */
@Component
public class LoginFeignFallbackFactory implements FallbackFactory<LoginFeign> {
    @Autowired
    private Tracer tracer;
    @Override
    public LoginFeign create(Throwable e) {
        return new LoginFeign() {
            /**
             * 注册校验姓名、身份证、医保卡号信息
             * @param ssc
             * @param idcard
             * @return
             */
            @Override
            public BaseEnvelop checkoutInfo(String ssc,String idcard) {
                tracer.getCurrentSpan().logEvent("校验医保卡、身份证、手机号接口错误:原因:"+e.getMessage());
                return Envelop.getError(e.getMessage(), BaseEnvelopStatus.system_error.getCode());
            }
            /**
             *注册账号
             * @param mobilePhone
             * @param saasId
             * @param type
             * @param captcha
             * @param name
             * @param password
             * @param idcard
             * @param ssc
             * @return
             */
            @Override
            public Envelop register(String mobilePhone, String saasId, int type, String captcha, String name, String password, String idcard, String ssc) {
                tracer.getCurrentSpan().logEvent("注册账号接口错误:原因:"+e.getMessage());
                return Envelop.getError(e.getMessage(),BaseEnvelopStatus.system_error.getCode());
            }
            /**
             * 登录账号
             * @param mobilePhone
             * @param password
             * @param saasId
             * @param captcha
             * @return
             */
            @Override
            public Envelop login(String mobilePhone, String password, String saasId, String captcha) {
                tracer.getCurrentSpan().logEvent("登录账号接口错误:原因:"+e.getMessage());
                return Envelop.getError(e.getMessage(),BaseEnvelopStatus.system_error.getCode());
            }
        };
    }
}

+ 5 - 0
common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/user/BaseRoleFeignFallbackFactory.java

@ -98,6 +98,11 @@ public class BaseRoleFeignFallbackFactory implements FallbackFactory<BaseRoleFei
                throw new JiWeiException(e);
            }
            @Override
            public Envelop getPhoneAndSaasId(String phone, String saasId) {
                return null;
            }
        };
    }
}

+ 2 - 2
common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/user/EmployeeFeignFallbackFactory.java

@ -22,10 +22,10 @@ public class EmployeeFeignFallbackFactory  implements FallbackFactory<EmployFeig
    public EmployFeign create(Throwable e) {
        return new EmployFeign() {
            @Override
            public Envelop create(@RequestBody String jsonData) throws JiWeiException {
            public Envelop create(@RequestBody String jsonData){
                tracer.getCurrentSpan().logEvent("创建用户失败:原因:"+e.getMessage());
                tracer.getCurrentSpan().logEvent("jsonData:"+jsonData);
                throw new JiWeiException(e);
                return null;
            }
            @Override

+ 1 - 1
common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/iot/device/IotPatientDeviceFallbackFactory.java

@ -4,8 +4,8 @@ import com.yihu.jw.fegin.iot.device.IotPatientDeviceFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import com.yihu.jw.restmodel.iot.device.LocationDataVO;
import feign.hystrix.FallbackFactory;
import iot.device.LocationDataVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.stereotype.Component;

+ 1 - 1
common/common-fegin/src/main/java/com/yihu/jw/fegin/iot/device/IotPatientDeviceFeign.java

@ -5,8 +5,8 @@ import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import com.yihu.jw.restmodel.iot.device.LocationDataVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import iot.device.LocationDataVO;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

+ 2 - 2
common/common-request-mapping/pom.xml

@ -6,13 +6,13 @@
    <parent>
        <groupId>com.yihu.base</groupId>
        <artifactId>common-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../common-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>common-request-mapping</artifactId>
    <version>1.0.0</version>
    <version>${parent.version}</version>
    <dependencies>

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

@ -16,6 +16,7 @@ public class BaseUserRequestMapping {
        public static final String api_getOne="/baseRole/getOne";
        public static final String api_getListPage="/baseRole/list";
        public static final String api_getMenusByroleId="/baseMenus/{roleId}";
        public static final String api_getRoleByPhoneAndSaasId="/baseRole/phoneAndSaasId";
        public static final String message_success_create = "baseRole create success";
        public static final String message_success_update = "baseRole update success";

+ 65 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/health/bank/HealthBankMapping.java

@ -0,0 +1,65 @@
package com.yihu.jw.rm.health.bank;
import javax.print.DocFlavor;
/**
 * Created by Trick on 2018/2/7.
 */
public class HealthBankMapping {
    public static final String api_health_bank_common = "svr-health-bank";
    public static final Integer api_health_bank_fail = -1;
    public static final String api_success ="success";
    public static class healthBank{
        public static final String createAccount = "/createAccount";
        public static final String selectAccount = "/selectAccount";
        public static final String findAccount = "/findAccount";
        public static final String findAccounByCondition ="/findAccounByCondition";
        public static final String createTask = "/createTask";
        public static final String deleteTask ="/deleteTask";
        public static final String findTask = "/findTask";
        public static final String updateTask ="/updateTask";
        public static final String selectByCode ="/selectByCode";
        public static final String createTaskDetail = "/createTaskDetail";
        public static final String createTaskRule = "/createTaskRule";
        public static final String updateTaskRule = "/updateTaskRule";
        public static final String findTaskRule ="/findTaskRule";
        public static final String createTaskDict = "/createTaskDict";
        public static final String updateTaskDict = "/updateTaskDict";
        public static final String findTaskDict ="/findTaskDict";
        public static final String createTaskGoods = "/createTaskGoods";
        public static final String updateTaskGoods = "/updateTaskGoods";
        public static final String findTaskGoods ="/findTaskGoods";
        public static final String createTaskRang = "/createTaskRang";
        public static final String updateTaskRang = "/updateTaskRang";
        public static final String findTaskRang = "/findTaskRang";
        public static final String attendTask = "/attendTask";
        public static final String selectByPatient = "/selectByPatient";
        public static final String createActivity="/createActivity";
        public static final String findActivity="/findActivity";
        public static final String updateActivity="/updateActivity";
        public static final String createActivityInfo ="/createActivityInfo";
        public static final String findActivityInfo = "/findActivityInfo";
        public static final String updateActivityInfo ="/updateActivityInfo";
        public static final String createGoods = "/createGoods";
        public static final String findGoods ="/findGoods";
        public static final String updateGoods ="/updateGoods";
        public static final String createCreditsDetail = "/createCreditsDetail";
        public static final String findCreditsLogInfo ="/findCreditsLogInfo";
        public static final String selectByActivity = "/selectByActivity";
        public static final String selectByRanking = "/selectByRanking";
        public static final String selectByActivityRanking = "/selectByActivityRanking";
        public static final String selectByActivityRanking1 = "/selectByActivityRanking1";
        public static final String updateCreditsLogInfo ="/updateCreditsLogInfo";
        public static final String exchangeGoods = "/exchangeGoods";
        public static final String findExchangeGoods="/findExchangeGoods";
        public static final String updateRule = "/updateRule";
        public static final String insertRule = "/insertRule";
        public static final String deleteRule = "/deleteRule";
        public static final String findRules = "/findRules";
        public static final String createActiveRecord="/createActiveRecord";
        public static final String doctorAddIntegrate = "/doctorAddIntegrate";
        public static final String addStepIntegrate = "/addStepIntegrate";
    }
}

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

@ -16,5 +16,14 @@ public class SpecialistMapping {
        public static final String createConsult = "/createConsult";
        public static final String createArticle = "/createArticle";
        public static final String findSpecialistPatientRelation = "/findSpecialistPatientRelation";
        public static final String findSpecialistPatientRelationCout = "/findSpecialistPatientRelationCout";
        public static final String findNoLabelPatientRelation ="/findNoLabelPatientRelation";
        public static final String saveHealthAssistant ="/saveHealthAssistant";
        public static final String findPatientRelatioByAssistant ="/findPatientRelatioByAssistant";
        public static final String getPatientByLabel ="/getPatientByLabel";
        public static final String getLabelpatientCount ="/getLabelpatientCount";
        public static final String getAssistantPatientCount ="/getAssistantPatientCount";
        public static final String getDoctorPatientByName ="/getDoctorPatientByName";
        public static final String findPatientNoAssistant ="/findPatientNoAssistant";
    }
}

+ 40 - 0
common/common-rest-model-es/pom.xml

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.yihu.base</groupId>
        <artifactId>common-lib-parent-pom</artifactId>
        <version>1.0.2</version>
        <relativePath>../../common-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>common-rest-model-es</artifactId>
    <version>${parent.version}</version>
    <dependencies>
        <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest-common</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.13</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>
    </dependencies>
</project>

+ 1 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/FigureLabelDataModelVO.java

@ -1,4 +1,4 @@
package com.yihu.jw.restmodel.iot.device;
package iot.device;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.searchbox.annotations.JestId;

+ 14 - 3
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/LocationDataVO.java

@ -1,7 +1,7 @@
package com.yihu.jw.restmodel.iot.device;
package iot.device;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.iot.common.SaveModel;
import io.searchbox.annotations.JestId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
@ -12,7 +12,10 @@ import org.springframework.data.elasticsearch.core.geo.GeoPoint;
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "设备地址信息", description = "设备地址信息")
public class LocationDataVO extends SaveModel {
public class LocationDataVO {
    @JestId
    private String id;
    @ApiModelProperty("设备绑定的居民身份证")
    private String idCard;
@ -38,6 +41,14 @@ public class LocationDataVO extends SaveModel {
    @ApiModelProperty("创建时间")
    private String createTime;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getIdCard() {
        return idCard;
    }

+ 12 - 8
common/common-rest-model/pom.xml

@ -6,13 +6,13 @@
    <parent>
        <groupId>com.yihu.base</groupId>
        <artifactId>common-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../common-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>common-rest-model</artifactId>
    <version>1.0.0</version>
    <version>${parent.version}</version>
    <dependencies>
        <dependency>
@ -22,6 +22,7 @@
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-util</artifactId>
            <version>${parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.base</groupId>
@ -30,6 +31,7 @@
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-exception</artifactId>
            <version>${parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
@ -52,14 +54,16 @@
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>2.1.3.RELEASE</version>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest</artifactId>
            <version>2.4.0</version>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-exception</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-exception</artifactId>
        </dependency>
    </dependencies>
</project>

+ 1 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/EnvelopRestController.java

@ -2,6 +2,7 @@ package com.yihu.jw.restmodel.common;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.exception.code.ExceptionCode;
import com.yihu.jw.util.date.DateUtil;

+ 1 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/base/BaseEnvelop.java

@ -14,7 +14,7 @@ public class BaseEnvelop {
    @ApiModelProperty("信息")
    protected String message;
    @ApiModelProperty("状态(200成功,-1是失败)")
    protected Integer status;
    protected Integer status = BaseEnvelopStatus.success.getCode();
    public BaseEnvelop() {
    }

+ 42 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/base/BaseEnvelopStatus.java

@ -0,0 +1,42 @@
package com.yihu.jw.restmodel.common.base;
/**
 * Created by chenweida on 2018/5/8 0008.
 */
public enum BaseEnvelopStatus {
    success("请求成功", 200),
    system_error("系统错误",-10000),
    //------------------登陆 权限相关 start ------------------
    status_10100("账号不存在", 10100),
    status_10101("密码错误", 10101),
    status_10102("用户未登录", 10102),
    status_10103("登陆超时", 10103),
    status_10104("账号被挤", 10104),
    status_10105("账号没权限", 10105),
    status_10106("账号已存在", 10106),;
    //------------------登陆 权限相关 end ------------------
    BaseEnvelopStatus(String name, Integer code) {
        this.name = name;
        this.code = code;
    }
    private String name;
    private Integer code;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getCode() {
        return code;
    }
    public void setCode(Integer code) {
        this.code = code;
    }
}

+ 0 - 23
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/common/SaveModel.java

@ -1,23 +0,0 @@
package com.yihu.jw.restmodel.iot.common;
import io.searchbox.annotations.JestId;
/**
 * @author yeshijie on 2018/3/2.
 */
public class SaveModel {
    @JestId
    private String id;
    public SaveModel() {
    }
    public String getId() {
        return this.id;
    }
    public void setId(String id) {
        this.id = id;
    }
}

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

@ -0,0 +1,44 @@
package com.yihu.jw.restmodel.specialist;
/**
 * Created by Trick on 2018/5/31.
 */
public class AssistantVO {
    private String doctor;
    private String patient;
    private String healthAssistant;
    private String healthAssistantName;
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getHealthAssistant() {
        return healthAssistant;
    }
    public void setHealthAssistant(String healthAssistant) {
        this.healthAssistant = healthAssistant;
    }
    public String getHealthAssistantName() {
        return healthAssistantName;
    }
    public void setHealthAssistantName(String healthAssistantName) {
        this.healthAssistantName = healthAssistantName;
    }
}

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

@ -0,0 +1,110 @@
package com.yihu.jw.restmodel.specialist;
import io.swagger.annotations.ApiModelProperty;
/**
 * Created by Trick on 2018/6/8.
 */
public class PatientLabelVO {
    @ApiModelProperty("居民code")
    private String code;
    @ApiModelProperty("居民")
    private String name ;
    @ApiModelProperty("年龄")
    private String age;
    @ApiModelProperty("标签名称")
    private String labelName;
    @ApiModelProperty("标签类型")
    private String labelType;
    @ApiModelProperty("标签code")
    private String label;
    @ApiModelProperty("居民头像")
    private String photo;
    @ApiModelProperty("居民健康情况")
    private String health;
    @ApiModelProperty("居民健康情况code")
    private String healthcode;
    @ApiModelProperty("性别")
    private String sex;
    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 String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getLabelName() {
        return labelName;
    }
    public void setLabelName(String labelName) {
        this.labelName = labelName;
    }
    public String getLabelType() {
        return labelType;
    }
    public void setLabelType(String labelType) {
        this.labelType = labelType;
    }
    public String getLabel() {
        return label;
    }
    public void setLabel(String label) {
        this.label = label;
    }
    public String getPhoto() {
        return photo;
    }
    public void setPhoto(String photo) {
        this.photo = photo;
    }
    public String getHealth() {
        return health;
    }
    public void setHealth(String health) {
        this.health = health;
    }
    public String getHealthcode() {
        return healthcode;
    }
    public void setHealthcode(String healthcode) {
        this.healthcode = healthcode;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
}

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

@ -0,0 +1,94 @@
package com.yihu.jw.restmodel.specialist;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * Created by Trick on 2018/5/30.
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "居民信息", description = "居民信息")
public class PatientRelationVO {
    @ApiModelProperty("居民code")
    private String patient;
    @ApiModelProperty("居民姓名")
    private String patientName;
    @ApiModelProperty("年龄")
    private String age;
    @ApiModelProperty("性别")
    private String sex;
    @ApiModelProperty("头像")
    private String photo;
    @ApiModelProperty("出院时间")
    private String createTime;
    @ApiModelProperty("居民健康情况")
    private String health;
    @ApiModelProperty("居民健康情况code")
    private String healthcode;
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getPhoto() {
        return photo;
    }
    public void setPhoto(String photo) {
        this.photo = photo;
    }
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getHealth() {
        return health;
    }
    public void setHealth(String health) {
        this.health = health;
    }
    public String getHealthcode() {
        return healthcode;
    }
    public void setHealthcode(String healthcode) {
        this.healthcode = healthcode;
    }
}

+ 2 - 2
common/common-util/pom.xml

@ -6,12 +6,12 @@
    <parent>
        <groupId>com.yihu.base</groupId>
        <artifactId>common-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../common-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>common-util</artifactId>
    <version>1.0.0</version>
    <version>${parent.version}</version>
    <dependencies>
        <dependency>

BIN
data/elasticsearch/nodes/0/_state/global-0.st


+ 0 - 0
data/elasticsearch/nodes/0/node.lock


+ 94 - 0
server/svr-admin-server/pom.xml

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.yihu.jw</groupId>
        <artifactId>svr-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <relativePath>../../svr-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>svr-admin-server</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator-docs</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--服务器监监听-->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server-ui-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server-ui-turbine</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</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.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
        </dependency>
        <dependency>
            <groupId>com.netflix.servo</groupId>
            <artifactId>servo-core</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>svr-admin-server</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>com.yihu.admin.AdminServer</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

+ 4 - 0
server/svr-admin-server/readme.MD

@ -0,0 +1,4 @@
监测服务器
官网地址
http://codecentric.github.io/spring-boot-admin/1.5.3/#_reminder_notifications

+ 25 - 0
server/svr-admin-server/src/main/java/com.yihu.admin/AdminServer.java

@ -0,0 +1,25 @@
package com.yihu.admin;
import de.codecentric.boot.admin.config.EnableAdminServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.MailSender;
/**
 * Created by chenweida on 2017/8/15.
 */
@Configuration
@EnableAutoConfiguration
@EnableAdminServer
@SpringBootApplication
public class AdminServer {
    public static void main(String[] args) {
        SpringApplication.run(AdminServer.class, args);
    }
}

+ 48 - 0
server/svr-admin-server/src/main/java/com.yihu.admin/config/NotifierConfig.java

@ -0,0 +1,48 @@
package com.yihu.admin.config;
import com.yihu.admin.email.JKZLMailNotifier;
import de.codecentric.boot.admin.config.NotifierConfiguration;
import de.codecentric.boot.admin.notify.RemindingNotifier;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.mail.MailSender;
import org.springframework.scheduling.annotation.Scheduled;
import java.util.concurrent.TimeUnit;
/**
 * Created by chenweida on 2018/5/10 0010.
 */
@Configuration
@AutoConfigureAfter({MailSenderAutoConfiguration.class})
@AutoConfigureBefore({NotifierConfiguration.MailNotifierConfiguration.class})
public class NotifierConfig {
    @Autowired
    private MailSender mailSender;
    @Bean
    @Primary
    public RemindingNotifier remindingNotifier() {
        RemindingNotifier remindingNotifier = new RemindingNotifier(mailNotifier());
        //默认情况下,每5分钟发送一次提醒
        remindingNotifier.setReminderPeriod(TimeUnit.MINUTES.toMillis(5));
        return remindingNotifier;
    }
    
    public NotifierConfig() {
        System.out.println("初始化数据");
    }
    @Bean("mailNotifier")
    @ConfigurationProperties("spring.boot.admin.notify.mail")
    public JKZLMailNotifier mailNotifier() {
        return new JKZLMailNotifier(mailSender);
    }
}

+ 133 - 0
server/svr-admin-server/src/main/java/com.yihu.admin/email/JKZLMailNotifier.java

@ -0,0 +1,133 @@
package com.yihu.admin.email;
import de.codecentric.boot.admin.event.ClientApplicationEvent;
import de.codecentric.boot.admin.notify.MailNotifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Component;
import java.util.Arrays;
/**
 * Created by chenweida on 2018/5/8 0008.
 * de.codecentric.boot.admin.config.NotifierConfiguration
 */
public class JKZLMailNotifier extends MailNotifier {
    private static final String DEFAULT_SUBJECT = "#{application.name} (#{application.id}) is #{to.status}";
    private static final String DEFAULT_TEXT = "#{application.name} (#{application.id})\nstatus changed from #{from.status} to #{to.status}\n\n#{application.healthUrl}";
    private final SpelExpressionParser parser = new SpelExpressionParser();
    private Logger logger = LoggerFactory.getLogger(JKZLMailNotifier.class);
    private final MailSender sender;
    /**
     * recipients of the mail
     */
    private String to[] = {"root@localhost"};
    /**
     * cc-recipients of the mail
     */
    private String cc[];
    /**
     * sender of the change
     */
    private String from = null;
    /**
     * Mail Text. SpEL template using event as root;
     */
    private Expression text;
    /**
     * Mail Subject. SpEL template using event as root;
     */
    private Expression subject;
    public JKZLMailNotifier(MailSender sender) {
        super(sender);
        logger.info("init email");
        this.sender = sender;
        this.subject = parser.parseExpression(DEFAULT_SUBJECT, ParserContext.TEMPLATE_EXPRESSION);
        this.text = parser.parseExpression(DEFAULT_TEXT, ParserContext.TEMPLATE_EXPRESSION);
    }
    @Override
    protected void doNotify(ClientApplicationEvent event) {
        logger.info("send email");
        EvaluationContext context = new StandardEvaluationContext(event);
        SimpleMailMessage message = new SimpleMailMessage();
        //发送给别人  支持多个接收人
        message.setTo(to);
        //发送人 可配置
        message.setFrom(from);
        //发送的邮件名称  默认是 微服务ID + 状态
        // 例如
        // SPRING-CLOUD-SVR-SIMPLE1 (9ac26abe) is OFFLINE
        message.setSubject(subject.getValue(context, String.class));
        //邮件内容  默认是微服务 +状态
        // 例如
        // SPRING-CLOUD-SVR-SIMPLE1 (9ac26abe) status changed from UNKNOWN to OFFLINE
        // http://MS-20180328WODJ:8080/health
        message.setText(text.getValue(context, String.class));
        // 抄送  为null  不需要填写
        message.setCc(cc);
        sender.send(message);
    }
    public void setTo(String[] to) {
        this.to = Arrays.copyOf(to, to.length);
    }
    public String[] getTo() {
        return Arrays.copyOf(to, to.length);
    }
    public void setCc(String[] cc) {
        this.cc = Arrays.copyOf(cc, cc.length);
    }
    public String[] getCc() {
        return Arrays.copyOf(cc, cc.length);
    }
    public void setFrom(String from) {
        this.from = from;
    }
    public String getFrom() {
        return from;
    }
    public void setSubject(String subject) {
        this.subject = parser.parseExpression(subject, ParserContext.TEMPLATE_EXPRESSION);
    }
    public String getSubject() {
        return subject.getExpressionString();
    }
    public void setText(String text) {
        this.text = parser.parseExpression(text, ParserContext.TEMPLATE_EXPRESSION);
    }
    public String getText() {
        return text.getExpressionString();
    }
}

+ 40 - 0
server/svr-admin-server/src/main/resources/application.yml

@ -0,0 +1,40 @@
server:
  port: 8082
spring:
  application:
    name: svr-admin-server
  mail:
    host: smtp.qq.com
    port: 465
    username: 1501877145@qq.com
    protocol: smtp
    password: uihqhvqtrnkwhdhf #QQ的授权码
    properties:
      mail:
        smtp:
          auth: true
          socketFactory:
           class: javax.net.ssl.SSLSocketFactory
          starttls: true
          required: true
  boot:
    admin:
      url: http://localhost:${server.port}
      notify:
        mail:
          to: 494679975@qq.com
          from: 1501877145@qq.com
      routes:
        endpoints: env,metrics,dump,jolokia,info,configprops,trace,logfile,refresh,flyway,liquibase,heapdump,loggers,auditevents,hystrix.stream.
  jackson:
    serialization:
      indent_output: true
management:
  security:
    enabled: false

+ 27 - 0
server/svr-admin-server/src/main/resources/bootstrap.yml

@ -0,0 +1,27 @@
##优先读取 boostarap配置 然后在读取application。yml的配置
spring:
  #从发现服务里面取配置服务的信息
  cloud:
    config:
      username: jw
      password: jkzl
      failFast: true ##启动快速失败 即链接不到配置服务就启动失败
      discovery:
        enabled: true ##使用发现服务
        service-id: svr-configurations ##配置服务的名字
##发现服务的地址
eureka:
  client:
    serviceUrl:
      #http://账号:密码@127.0.0.1:8761/eureka/
      defaultZone: http://jw:jkzl@127.0.0.1:8761//eureka/
  instance:
    #eurika使用IP不使用host
    prefer-ip-address: true
    #定制化在eurika中显示的名称
    ##instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}

+ 4 - 0
server/svr-admin-server/src/main/resources/logback.xml

@ -0,0 +1,4 @@
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <jmxConfigurator/>
</configuration>

+ 5 - 5
server/svr-configuration/pom.xml

@ -14,7 +14,7 @@
    <groupId>com.yihu.jw</groupId>
    <artifactId>svr-configuration</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
@ -29,10 +29,10 @@
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-security</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>

+ 9 - 2
server/svr-configuration/src/main/resources/application.yml

@ -18,8 +18,15 @@ eureka:
    ##instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
management:
  security:
    enabled: false
logging:
  file: ${logging.path}svr-configuration.log
  path: G:\idea_workspace\jkzl_git\jkzl-start\logs\
  level:
    root: INFO
---
spring:

+ 9 - 6
server/svr-configuration/src/main/resources/bootstrap.yml

@ -4,10 +4,12 @@ spring:
  jmx:
    default-domain: ${spring.application.name}
security:
  user:
    name: jw
    password:  jkzl
#security:
#  user:
#    name: jw
#    password:  jkzl
eureka:
  client:
@ -19,7 +21,8 @@ eureka:
    #定制化在eurika中显示的名称
    ##instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
    appname: svr-configurations
    health-check-url-path: /health
@ -36,7 +39,7 @@ spring:
      server:
        git:
          uri: http://192.168.1.220:10080/jiwei/wlyy2.0.config.git
        default-label: master
        default-label: jwdev
---

+ 1 - 1
server/svr-discovery/pom.xml

@ -13,7 +13,7 @@
    <groupId>com.yihu.jw</groupId>
    <artifactId>svr-discovery</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>

+ 1 - 1
server/svr-discovery/src/main/resources/application.yml

@ -16,7 +16,7 @@ eureka:
    fetch-registry: false #如果是做高可用的发现服务那就要改成true
  server:
    enable-self-preservation: true  #是否开启自我保护模式,默认为true。
    enable-self-preservation: false  #是否开启自我保护模式,默认为true。
    eviction-interval-timer-in-ms: 60000 #eureka server清理无效节点的时间间隔,默认60000毫秒,即60秒

+ 69 - 0
server/svr-yihu-admin-server/pom.xml

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>jkzl-start</artifactId>
        <groupId>com.yihu</groupId>
        <version>1.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>svr-yihu-admin-server</artifactId>
    <properties>
        <version.yihu.admin>1.2.0</version.yihu.admin>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>admin-server-starter</artifactId>
            <version>${version.yihu.admin}</version>
        </dependency>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>admin-server-ui-starter</artifactId>
            <version>${version.yihu.admin}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>svr-yihu-admin-server</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>com.yihu.admin.AdminServer</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

+ 5 - 0
server/svr-yihu-admin-server/readme.MD

@ -0,0 +1,5 @@
监测服务器
http://192.168.131.102:8999/admin/index/index.html
官网地址
http://codecentric.github.io/spring-boot-admin/1.5.3/#_reminder_notifications

+ 33 - 0
server/svr-yihu-admin-server/src/main/java/com.yihu.admin/YihuAdminServer.java

@ -0,0 +1,33 @@
package com.yihu.admin;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.elasticsearch.jest.JestAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.context.annotation.Configuration;
/**
 * Created by chenweida on 2017/8/15.
 */
@SpringBootApplication(exclude = {
        JestAutoConfiguration.class,
        ElasticsearchAutoConfiguration.class,
        ElasticsearchRepositoriesAutoConfiguration.class,
        ElasticsearchDataAutoConfiguration.class,
        DataSourceAutoConfiguration.class,
        JdbcTemplateAutoConfiguration.class,
        HibernateJpaAutoConfiguration.class
})
public class YihuAdminServer {
    public static void main(String[] args) {
        SpringApplication.run(YihuAdminServer.class, args);
    }
}

+ 66 - 0
server/svr-yihu-admin-server/src/main/resources/application.yml

@ -0,0 +1,66 @@
server:
  port: 8999  ##端口修改 前端工程也需要改造
spring:
  application:
    name: svr-yihu-admin-server
  data:
    elasticsearch:
      jest:
        discovery-enabled: false #开启嗅探
        conn-timeout: 60 # 连接时间单位是秒
        read-timeout: 60 # 读取时间单位是秒
        multith-readed: true #开启多线程
        max-total-connection: 50 ##最大连接
        max-connection-idle-time: 50 #最大等待时间
  elasticsearch:
    jest:
      read-timeout: ${spring.data.elasticsearch.jest.read-timeout}
      multith-readed: ${spring.data.elasticsearch.jest.multith-readed}
logging:
  file: ${logging.path}svr-yihu-admin-server.log
  path: G:\idea_workspace\jkzl_git\jkzl-start\logs\
  level:
    root: INFO
management:
  health:
    db:
      enabled: false
---
spring:
  profiles: jwdev
  data:
    elasticsearch:
      cluster-name: jkzl #es集群的名字
      cluster-nodes: 172.19.103.68:9300  #多个逗号分割
      cluster-nodes-jest:  http://172.19.103.68:9200 #多个逗号分割
  elasticsearch:
    jest:
      uris: ${spring.data.elasticsearch.cluster-nodes-jest}
---
spring:
  profiles: jwtest
  data:
    elasticsearch:
      cluster-name: jkzl #es集群的名字
      cluster-nodes: 172.19.103.68:9300  #多个逗号分割
      cluster-nodes-jest: http://172.19.103.68:9200  #多个逗号分割
---
spring:
  profiles: jwprod
  data:
    elasticsearch:
      cluster-name: jkzl #es集群的名字
      cluster-nodes: 172.19.103.68:9300  #多个逗号分割
      cluster-nodes-jest: http://172.19.103.68:9200  #多个逗号分割

+ 17 - 0
server/svr-yihu-admin-server/src/main/resources/bootstrap.yml

@ -0,0 +1,17 @@
##发现服务的地址
eureka:
  client:
    serviceUrl:
      #http://账号:密码@127.0.0.1:8761/eureka/
      defaultZone: http://jw:jkzl@127.0.0.1:8761//eureka/
  instance:
    #eurika使用IP不使用host
    prefer-ip-address: true
    #定制化在eurika中显示的名称
    ##instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
management:
  security:
    enabled: false

+ 4 - 0
server/svr-yihu-admin-server/src/main/resources/logback.xml

@ -0,0 +1,4 @@
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <jmxConfigurator/>
</configuration>

+ 82 - 26
svr-lib-parent-pom/pom.xml

@ -11,7 +11,7 @@
    <groupId>com.yihu.jw</groupId>
    <artifactId>svr-lib-parent-pom</artifactId>
    <version>1.0.0</version>
    <version>1.0.2</version>
    <packaging>pom</packaging>
    <developers>
        <developer>
@ -27,9 +27,9 @@
    <!--deploy 的时候发布到这个服务器-->
    <distributionManagement>
        <repository>
            <id>test</id>
            <name>testRespository</name>
            <url>http://172.19.103.43:8081/nexus/content/repositories/test/</url>
            <id>jkzlRepositories</id>
            <name>jkzlRepositories</name>
            <url>http://172.19.103.43:8081/nexus/content/repositories/jkzlRepositories/</url>
        </repository>
    </distributionManagement>
    <modules>
@ -38,6 +38,7 @@
        <module>../server/svr-discovery</module><!--发现服务-->
        <module>../server/svr-dashboard</module><!--监控服务-->
        <module>../server/svr-logServer</module><!--分布式追踪服务-->
        <module>../server/svr-yihu-admin-server</module><!--分布式追踪服务-->
        <!--业务微服务-->
        <module>../svr/svr-base</module><!--基础微服务-->
@ -53,12 +54,10 @@
    <properties>
        <version.mysql>5.1.38</version.mysql>
        <version.jackson>2.8.1</version.jackson>
        <version.myCommon>1.0.0</version.myCommon>
        <version.myCommon>1.0.2</version.myCommon>
        <version.spring-data-hadoop>2.3.0.RELEASE</version.spring-data-hadoop>
        <version.springside>4.2.3-GA</version.springside>
        <version.zipkin>1.24.0</version.zipkin>
        <version.hibernate>5.0.12.Final</version.hibernate>
        <version.hibernate-jpa>1.0.0.Final</version.hibernate-jpa>
        <version.servlet-api>3.1.0</version.servlet-api>
        <version.swagger>2.7.0</version.swagger>
        <version.swagger-ui>2.7.0</version.swagger-ui>
@ -81,16 +80,53 @@
        <version.joda-time>2.8.2</version.joda-time>
        <version.solr>5.5.1</version.solr>
        <version.fastdfs>1.25</version.fastdfs>
        <version.spring-boot-admin>1.5.7</version.spring-boot-admin>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <asciidoctor.maven.plugin.version>1.5.5</asciidoctor.maven.plugin.version>
        <asciidoctorj.version>1.5.5</asciidoctorj.version>
        <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
        <version.yihu.admin>1.2.0</version.yihu.admin>
    </properties>
    <!--dependencyManagement作用子配置不写版本默认继承父配置-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.yihu</groupId>
                <artifactId>admin-client-starter</artifactId>
                <version>${version.yihu.admin}</version>
            </dependency>
            <dependency>
                <groupId>com.yihu</groupId>
                <artifactId>admin-server-starter</artifactId>
                <version>${version.yihu.admin}</version>
            </dependency>
            <dependency>
                <groupId>com.yihu</groupId>
                <artifactId>admin-server-ui-starter</artifactId>
                <version>${version.yihu.admin}</version>
            </dependency>
            <!--服务器监监听-->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-server</artifactId>
                <version>${version.spring-boot-admin}</version>
            </dependency>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-server-ui</artifactId>
                <version>${version.spring-boot-admin}</version>
            </dependency>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-server-ui-hystrix</artifactId>
                <version>${version.spring-boot-admin}</version>
            </dependency>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-server-ui-turbine</artifactId>
                <version>${version.spring-boot-admin}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
@ -102,11 +138,11 @@
            <dependency>
                <groupId>com.yihu.base</groupId>
                <artifactId>common-async</artifactId>
                <version>${version.myCommon}</version>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>com.yihu.base</groupId>
                <artifactId>common-security</artifactId>
                <groupId>com.yihu.jw</groupId>
                <artifactId>common-fegin</artifactId>
                <version>${version.myCommon}</version>
            </dependency>
            <dependency>
@ -129,6 +165,11 @@
                <artifactId>common-rest-model</artifactId>
                <version>${version.myCommon}</version>
            </dependency>
            <dependency>
                <groupId>com.yihu.jw</groupId>
                <artifactId>common-rest-model-es</artifactId>
                <version>${version.myCommon}</version>
            </dependency>
            <dependency>
                <groupId>com.yihu.jw</groupId>
                <artifactId>svr-base</artifactId>
@ -142,22 +183,22 @@
            <dependency>
                <groupId>com.yihu.base</groupId>
                <artifactId>common-swagger</artifactId>
                <version>${version.myCommon}</version>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>com.yihu.base</groupId>
                <artifactId>common-data-mysql</artifactId>
                <version>${version.myCommon}</version>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>com.yihu.base</groupId>
                <artifactId>common-log</artifactId>
                <version>${version.myCommon}</version>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>com.yihu.base</groupId>
                <artifactId>common-quartz</artifactId>
                <version>${version.myCommon}</version>
                <version>1.0.0</version>
            </dependency>
            <!--数据库驱动 start-->
            <dependency>
@ -215,23 +256,23 @@
                <classifier>GA</classifier>
            </dependency>
            <!--hibernate start-->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${version.hibernate}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.1-api</artifactId>
                <version>${version.hibernate-jpa}</version>
            </dependency>
            <!--<dependency>-->
                <!--<groupId>org.hibernate</groupId>-->
                <!--<artifactId>hibernate-core</artifactId>-->
                <!--<version>${version.hibernate}</version>-->
            <!--</dependency>-->
            <!--<dependency>-->
                <!--<groupId>org.hibernate.javax.persistence</groupId>-->
                <!--<artifactId>hibernate-jpa-2.1-api</artifactId>-->
                <!--<version>${version.hibernate-jpa}</version>-->
            <!--</dependency>-->
            <!--hibernate end-->
            <!--fastdfs start-->
            <dependency>
                <groupId>com.yihu.base</groupId>
                <artifactId>common-data-fastdfs</artifactId>
                <version>${version.myCommon}</version>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.csource</groupId>
@ -466,6 +507,21 @@
                </configuration>
                <version>3.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--编译插件 end-->
            <plugin>
                <groupId>org.asciidoctor</groupId>

+ 31 - 18
svr/svr-base/pom.xml

@ -6,32 +6,45 @@
    <parent>
        <groupId>com.yihu.jw</groupId>
        <artifactId>svr-lib-parent-pom</artifactId>
        <version>1.0.0</version>
        <version>1.0.2</version>
        <relativePath>../../svr-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>svr-base</artifactId>
    <version>1.0.0</version>
    <version>${parent.version}</version>
    <packaging>war</packaging>
    <dependencies>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>admin-client-starter</artifactId>
            <version>${version.yihu.admin}</version>
        </dependency>
        <!--公共的 start-->
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.data</groupId>
                    <artifactId>spring-data-elasticsearch</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-entity</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.data</groupId>
                    <artifactId>spring-data-elasticsearch</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.yihu.base</groupId>
                    <artifactId>common-data-es</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>com.yihu</groupId>-->
            <!--<artifactId>common-data-es-starter</artifactId>-->
            <!--<version>1.1.0</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-request-mapping</artifactId>
@ -44,10 +57,6 @@
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-util</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.base</groupId>
            <artifactId>common-swagger</artifactId>
@ -66,10 +75,10 @@
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--<exclusions>-->
                <!--<exclusion>-->
                    <!--<groupId>org.springframework.boot</groupId>-->
                    <!--<artifactId>spring-boot-starter-tomcat</artifactId>-->
                <!--</exclusion>-->
            <!--<exclusion>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-tomcat</artifactId>-->
            <!--</exclusion>-->
            <!--</exclusions>-->
        </dependency>
        <dependency>
@ -168,9 +177,13 @@
            <version>1.0.0</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-data-redis</artifactId>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-data-redis</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>svr-base</finalName>

+ 7 - 2
svr/svr-base/src/main/java/com/yihu/jw/SvrBaseApplication.java

@ -6,9 +6,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.elasticsearch.jest.JestAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@ -26,11 +26,16 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@ComponentScan(basePackages={"com"})
@EnableJpaAuditing
@EnableAutoConfiguration(exclude = {
        ElasticsearchRepositoriesAutoConfiguration.class
        ElasticsearchAutoConfiguration.class,
        ElasticsearchRepositoriesAutoConfiguration.class,
        ElasticsearchDataAutoConfiguration.class,
        JestAutoConfiguration.class
})
public class SvrBaseApplication {
    public static void main(String[] args) {
        SpringApplication.run(SvrBaseApplication.class, args);
    }
}

+ 193 - 191
svr/svr-base/src/main/java/com/yihu/jw/business/base/controller/FunctionController.java

@ -1,191 +1,193 @@
package com.yihu.jw.business.base.controller;
import com.yihu.jw.base.base.FunctionDO;
import com.yihu.jw.business.base.service.FunctionService;
import com.yihu.jw.business.base.service.ModuleFunService;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.restmodel.base.base.FunctionVO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
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.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by chenweida on 2017/5/19.
 */
@RestController
@RequestMapping(BaseRequestMapping.api_base_common)
@Api(value = "功能模块", description = "功能模块接口管理")
public class FunctionController extends EnvelopRestController {
    @Autowired
    private FunctionService functionService;
    @Autowired
    private ModuleFunService moduleFunService;
    @PostMapping(value = BaseRequestMapping.Function.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建功能", notes = "创建单个功能")
    public Envelop createFunction(
            @ApiParam(name = "json_data", value = "", defaultValue = "")
            @RequestBody String jsonData) {
        try {
            FunctionDO function = toEntity(jsonData, FunctionDO.class);
            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_create, functionService.createFunction(function));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @PutMapping(value = BaseRequestMapping.Function.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "修改功能", notes = "修改功能")
    public Envelop updateFunction(
            @ApiParam(name = "json_data", value = "", defaultValue = "")
            @RequestBody String jsonData) {
        try {
            FunctionDO function = toEntity(jsonData, FunctionDO.class);
            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_update, functionService.updateFunction(function));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @DeleteMapping(value = BaseRequestMapping.Function.api_delete)
    @ApiOperation(value = "删除功能", notes = "删除功能")
    public Envelop deleteFunction(
            @ApiParam(name = "ids", value = "ids")
            @PathVariable(value = "ids", required = true) String ids) {
        try {
            functionService.deleteFunction(ids);
            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_delete );
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @GetMapping(value = BaseRequestMapping.Function.api_getById)
    @ApiOperation(value = "根据code查找功能", notes = "根据code查找功能")
    public Envelop findByCode(
            @ApiParam(name = "id", value = "id")
            @PathVariable(value = "id", required = true) String id
    ) {
        try {
            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_find, functionService.findById(id));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @RequestMapping(value = BaseRequestMapping.Function.api_getList, method = RequestMethod.GET)
    @ApiOperation(value = "获取父功能列表(分页)")
    public Envelop getFunctions(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,code,name,url,parentCode,status,remark")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            //code like 1,name大于aa ,code 等于1 , defaultValue = "code?1;name>aa;code=1"
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
            @RequestParam(value = "size", required = false) int size,
            @ApiParam(name = "page", value = "页码", defaultValue = "1")
            @RequestParam(value = "page", required = false) int page,
            HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        if(StringUtils.isBlank(sorts)){
            sorts = "-updateTime";
        }
       if(StringUtils.isBlank(filters)){
            filters = "parentCode=0;";
        }else{
            filters="parentCode=0;"+filters;
        }
        //得到list数据
        List<FunctionDO> list = functionService.search(fields, filters, sorts, page, size);
        if(list!=null){
            for(FunctionDO func:list){//循环遍历,设置是否有子节点
                List<FunctionDO> children = functionService.getChildren(func.getId());
                func.setChildren(children);
            }
        }
        //获取总数
        long count=functionService.getCount(filters);
        //封装头信息
        pagedResponse(request, response, count, page, size);
        //封装返回格式
        List<FunctionVO> mFunctions = convertToModels(list, new ArrayList<>(list.size()), FunctionVO.class, fields);
        return Envelop.getSuccessListWithPage(BaseRequestMapping.Function.message_success_find_functions,mFunctions, page, size,count);
    }
    @GetMapping(value = BaseRequestMapping.Function.api_getListNoPage)
    @ApiOperation(value = "获取功能列表,并且封装成jstree,不分页")
    public Envelop getAppsNoPage(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "code,name,saasId,parentCode,remark")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
        //得到list数据
        List<FunctionDO> list = functionService.search(fields,filters,sorts);
        List<Object> functions = new ArrayList<>();
        if(list!=null){
            for(FunctionDO func:list){
                String code = func.getId();
                func = functionService.getAllChildren(code);
                functions.add(func);
            }
        }
        //封装返回格式
        List<FunctionVO> mFunctions = convertToModels(functions, new ArrayList<>(functions.size()), FunctionVO.class, fields);
        return Envelop.getSuccessList(BaseRequestMapping.Function.message_success_find_functions,mFunctions);
    }
    @PutMapping(value = BaseRequestMapping.Function.api_assignFunction, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "给对应的模块分配功能")
    public Envelop assignModule(
            @ApiParam(name = "moduleId", value = "moduleId", defaultValue = "")
            @RequestParam String moduleId,
            @ApiParam(name = "functionIds", value = "功能的code,可以传多个,逗号分割", defaultValue = "")
            @RequestParam String functionIds) {
        try {
            functionService.assignFunction(moduleId,functionIds);
            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_assign_function);
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @GetMapping(value = BaseRequestMapping.Function.api_getModuleFunctions, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "查询saas的模块")
    public Envelop getModuleFunctions(
            @ApiParam(name = "saasId", value = "saasId", defaultValue = "")
            @RequestParam String saasId) {
        try {
            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_find_functions_module,functionService.getModuleFunctions(saasId));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @GetMapping(value =BaseRequestMapping.Function.api_getChildren )
    @ApiOperation(value="查找子节点")
    public Envelop getChildren(@PathVariable String code){
        List<FunctionDO> children = functionService.getChildren(code);
        return Envelop.getSuccess("查询成功",children);
    }
}
//package com.yihu.jw.business.base.controller;
//
//import com.yihu.jw.base.base.FunctionDO;
//import com.yihu.jw.business.base.service.FunctionService;
//import com.yihu.jw.business.base.service.ModuleFunService;
//import com.yihu.jw.exception.ApiException;
//import com.yihu.jw.restmodel.base.base.FunctionVO;
//import com.yihu.jw.restmodel.common.Envelop;
//import com.yihu.jw.restmodel.common.EnvelopRestController;
//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.lang.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.http.MediaType;
//import org.springframework.web.bind.annotation.*;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * Created by chenweida on 2017/5/19.
// */
//@RestController
//@RequestMapping(BaseRequestMapping.api_base_common)
//@Api(value = "功能模块", description = "功能模块接口管理")
//public class FunctionController extends EnvelopRestController {
//    @Autowired
//    private FunctionService functionService;
//    @Autowired
//    private ModuleFunService moduleFunService;
//
//    @PostMapping(value = BaseRequestMapping.Function.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "创建功能", notes = "创建单个功能")
//    public Envelop createFunction(
//            @ApiParam(name = "json_data", value = "", defaultValue = "")
//            @RequestBody String jsonData) {
//        try {
//            FunctionDO function = toEntity(jsonData, FunctionDO.class);
//            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_create, functionService.createFunction(function));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }catch (Exception e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @PutMapping(value = BaseRequestMapping.Function.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "修改功能", notes = "修改功能")
//    public Envelop updateFunction(
//            @ApiParam(name = "json_data", value = "", defaultValue = "")
//            @RequestBody String jsonData) {
//        try {
//            FunctionDO function = toEntity(jsonData, FunctionDO.class);
//            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_update, functionService.updateFunction(function));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//    @DeleteMapping(value = BaseRequestMapping.Function.api_delete)
//    @ApiOperation(value = "删除功能", notes = "删除功能")
//    public Envelop deleteFunction(
//            @ApiParam(name = "ids", value = "ids")
//            @PathVariable(value = "ids", required = true) String ids) {
//        try {
//            functionService.deleteFunction(ids);
//            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_delete );
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @GetMapping(value = BaseRequestMapping.Function.api_getById)
//    @ApiOperation(value = "根据code查找功能", notes = "根据code查找功能")
//    public Envelop findByCode(
//            @ApiParam(name = "id", value = "id")
//            @PathVariable(value = "id", required = true) String id
//    ) {
//        try {
//            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_find, functionService.findById(id));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//
//    @RequestMapping(value = BaseRequestMapping.Function.api_getList, method = RequestMethod.GET)
//    @ApiOperation(value = "获取父功能列表(分页)")
//    public Envelop getFunctions(
//            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,code,name,url,parentCode,status,remark")
//            @RequestParam(value = "fields", required = false) String fields,
//            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
//            //code like 1,name大于aa ,code 等于1 , defaultValue = "code?1;name>aa;code=1"
//            @RequestParam(value = "filters", required = false) String filters,
//            @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
//            @RequestParam(value = "sorts", required = false) String sorts,
//            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
//            @RequestParam(value = "size", required = false) int size,
//            @ApiParam(name = "page", value = "页码", defaultValue = "1")
//            @RequestParam(value = "page", required = false) int page,
//            HttpServletRequest request,
//            HttpServletResponse response) throws Exception {
//
//        if(StringUtils.isBlank(sorts)){
//            sorts = "-updateTime";
//        }
//       if(StringUtils.isBlank(filters)){
//            filters = "parentCode=0;";
//        }else{
//            filters="parentCode=0;"+filters;
//        }
//
//        //得到list数据
//        List<FunctionDO> list = functionService.search(fields, filters, sorts, page, size);
//        if(list!=null){
//            for(FunctionDO func:list){//循环遍历,设置是否有子节点
//                List<FunctionDO> children = functionService.getChildren(func.getId());
//                func.setChildren(children);
//            }
//        }
//
//        //获取总数
//        long count=functionService.getCount(filters);
//        //封装头信息
//        pagedResponse(request, response, count, page, size);
//        //封装返回格式
//        List<FunctionVO> mFunctions = convertToModels(list, new ArrayList<>(list.size()), FunctionVO.class, fields);
//
//        return Envelop.getSuccessListWithPage(BaseRequestMapping.Function.message_success_find_functions,mFunctions, page, size,count);
//    }
//
//
//    @GetMapping(value = BaseRequestMapping.Function.api_getListNoPage)
//    @ApiOperation(value = "获取功能列表,并且封装成jstree,不分页")
//    public Envelop getAppsNoPage(
//            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "code,name,saasId,parentCode,remark")
//            @RequestParam(value = "fields", required = false) String fields,
//            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
//            @RequestParam(value = "filters", required = false) String filters,
//            @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
//            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
//        //得到list数据
//        List<FunctionDO> list = functionService.search(fields,filters,sorts);
//        List<Object> functions = new ArrayList<>();
//        if(list!=null){
//            for(FunctionDO func:list){
//                String code = func.getId();
//                func = functionService.getAllChildren(code);
//                functions.add(func);
//            }
//        }
//        //封装返回格式
//        List<FunctionVO> mFunctions = convertToModels(functions, new ArrayList<>(functions.size()), FunctionVO.class, fields);
//        return Envelop.getSuccessList(BaseRequestMapping.Function.message_success_find_functions,mFunctions);
//    }
//
//    @PutMapping(value = BaseRequestMapping.Function.api_assignFunction, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "给对应的模块分配功能")
//    public Envelop assignModule(
//            @ApiParam(name = "moduleId", value = "moduleId", defaultValue = "")
//            @RequestParam String moduleId,
//            @ApiParam(name = "functionIds", value = "功能的code,可以传多个,逗号分割", defaultValue = "")
//            @RequestParam String functionIds) {
//        try {
//            functionService.assignFunction(moduleId,functionIds);
//            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_assign_function);
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @GetMapping(value = BaseRequestMapping.Function.api_getModuleFunctions, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "查询saas的模块")
//    public Envelop getModuleFunctions(
//            @ApiParam(name = "saasId", value = "saasId", defaultValue = "")
//            @RequestParam String saasId) {
//        try {
//            return Envelop.getSuccess(BaseRequestMapping.Function.message_success_find_functions_module,functionService.getModuleFunctions(saasId));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @GetMapping(value =BaseRequestMapping.Function.api_getChildren )
//    @ApiOperation(value="查找子节点")
//    public Envelop getChildren(@PathVariable String code){
//        List<FunctionDO> children = functionService.getChildren(code);
//        return Envelop.getSuccess("查询成功",children);
//    }
//}

+ 25 - 25
svr/svr-base/src/main/java/com/yihu/jw/business/base/controller/ModuleController.java

@ -30,31 +30,31 @@ public class ModuleController extends EnvelopRestController {
    @Autowired
    private ModuleService moduleService;
    @PostMapping(value = BaseRequestMapping.Module.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建模块", notes = "创建单个模块")
    public Envelop createModule(
            @ApiParam(name = "json_data", value = "", defaultValue = "")
            @RequestBody String jsonData) {
        try {
            ModuleDO module = toEntity(jsonData, ModuleDO.class);
            return Envelop.getSuccess(BaseRequestMapping.Module.message_success_create, moduleService.createModule(module));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @PutMapping(value = BaseRequestMapping.Module.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "修改模块", notes = "修改模块")
    public Envelop updateModule(
            @ApiParam(name = "json_data", value = "", defaultValue = "")
            @RequestBody String jsonData) {
        try {
            ModuleDO module = toEntity(jsonData, ModuleDO.class);
            return Envelop.getSuccess(BaseRequestMapping.Module.message_success_update, moduleService.updateModule(module));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
//    @PostMapping(value = BaseRequestMapping.Module.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "创建模块", notes = "创建单个模块")
//    public Envelop createModule(
//            @ApiParam(name = "json_data", value = "", defaultValue = "")
//            @RequestBody String jsonData) {
//        try {
//            ModuleDO module = toEntity(jsonData, ModuleDO.class);
//            return Envelop.getSuccess(BaseRequestMapping.Module.message_success_create, moduleService.createModule(module));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//    @PutMapping(value = BaseRequestMapping.Module.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "修改模块", notes = "修改模块")
//    public Envelop updateModule(
//            @ApiParam(name = "json_data", value = "", defaultValue = "")
//            @RequestBody String jsonData) {
//        try {
//            ModuleDO module = toEntity(jsonData, ModuleDO.class);
//            return Envelop.getSuccess(BaseRequestMapping.Module.message_success_update, moduleService.updateModule(module));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
    @DeleteMapping(value = BaseRequestMapping.Module.api_delete)
    @ApiOperation(value = "删除模块", notes = "删除模块")

+ 24 - 24
svr/svr-base/src/main/java/com/yihu/jw/business/base/controller/SaasController.java

@ -28,31 +28,31 @@ public class SaasController extends EnvelopRestController {
    @Autowired
    private SaasService saasService;
    @PostMapping(value = BaseRequestMapping.Saas.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建Saas配置", notes = "创建单个Saas配置")
    public Envelop createSaas(
            @ApiParam(name = "json_data", value = "", defaultValue = "")
            @RequestBody String jsonData) {
        try {
            SaasDO saas = toEntity(jsonData, SaasDO.class);
            return Envelop.getSuccess(BaseRequestMapping.Saas.message_success_create, saasService.createSaas(saas));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
//    @PostMapping(value = BaseRequestMapping.Saas.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "创建Saas配置", notes = "创建单个Saas配置")
//    public Envelop createSaas(
//            @ApiParam(name = "json_data", value = "", defaultValue = "")
//            @RequestBody String jsonData) {
//        try {
//            SaasDO saas = toEntity(jsonData, SaasDO.class);
//            return Envelop.getSuccess(BaseRequestMapping.Saas.message_success_create, saasService.createSaas(saas));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
    @PutMapping(value = BaseRequestMapping.Saas.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "修改Saas配置", notes = "修改Saas配置")
    public Envelop updateSaas(
            @ApiParam(name = "json_data", value = "", defaultValue = "")
            @RequestBody String jsonData) {
        try {
            SaasDO saas = toEntity(jsonData, SaasDO.class);
            return Envelop.getSuccess(BaseRequestMapping.Saas.message_success_update, saasService.updateSaas(saas));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
//    @PutMapping(value = BaseRequestMapping.Saas.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "修改Saas配置", notes = "修改Saas配置")
//    public Envelop updateSaas(
//            @ApiParam(name = "json_data", value = "", defaultValue = "")
//            @RequestBody String jsonData) {
//        try {
//            SaasDO saas = toEntity(jsonData, SaasDO.class);
//            return Envelop.getSuccess(BaseRequestMapping.Saas.message_success_update, saasService.updateSaas(saas));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
    @DeleteMapping(value = BaseRequestMapping.Saas.api_delete, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "删除Saas配置", notes = "删除Saas配置")

+ 41 - 0
svr/svr-base/src/main/java/com/yihu/jw/business/demo/DemoController.java

@ -0,0 +1,41 @@
package com.yihu.jw.business.demo;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty;
import com.yihu.jw.business.user.dao.BaseRoleDao;
import com.yihu.jw.exception.SystemException;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.fegin.DemoFeign;
import com.yihu.jw.restmodel.common.Envelop;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
 * Created by chenweida on 2017/5/10.
 */
@RestController
@RequestMapping("/demo")
@Api(description = "demo例子")
@RefreshScope
public class DemoController {
    @Autowired
    private BaseRoleDao baseRoleDao;
    @ApiOperation(value = "根据code查找患者")
    @GetMapping(value = "findByCode")
    public Envelop findByCode(
            @ApiParam(name = "code", value = "患者code", required = false) @RequestParam(value = "code", required = false) String code) {
        baseRoleDao.findAllByName("管理员");
        return  Envelop.getSuccess("成功");
    }
}

+ 116 - 117
svr/svr-base/src/main/java/com/yihu/jw/business/login/contorller/LoginController.java

@ -1,117 +1,116 @@
package com.yihu.jw.business.login.contorller;
//import com.yihu.base.security.properties.SecurityProperties;
//import com.yihu.base.security.sms.mobile.MobileCheck;
//import com.yihu.base.security.sms.process.SmsValidateCodeProcessor;
import com.yihu.jw.base.user.BaseEmployDO;
import com.yihu.jw.business.login.service.LoginService;
import com.yihu.jw.business.user.dao.EmployDao;
import com.yihu.jw.business.user.service.EmployService;
import com.yihu.jw.fegin.common.security.LoginSmsFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.rm.base.BaseLoginRequestMapping;
import com.yihu.jw.rm.base.BaseUserRequestMapping;
import com.yihu.jw.util.common.ConvertToSpellUtils;
import com.yihu.jw.util.security.MD5;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.bouncycastle.util.encoders.Base64;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.InetAddress;
import java.util.UUID;
/**
 * Created by 刘文彬 on 2018/4/11.
 */
@RestController
@RequestMapping(BaseLoginRequestMapping.api_common)
@Api(description = "注册账户(医生端、微信端、用户端)")
public class LoginController extends EnvelopRestController {
    @Autowired
    private LoginService loginService;
    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_checkoutInfo, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "注册校验信息", notes = "注册校验姓名、身份证、医保卡号信息")
    public BaseEnvelop checkoutInfo(){
        //校验姓名、身份证以及医保卡号信息是否正确
        return null;
    }
    /**
     * 注册账号-提交
     * @param mobilePhone
     * @param saasId
     * @param type
     * @param captcha
     * @param name
     * @param password
     * @param idcard
     * @param ssc
     * @return
     */
    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_accountSub, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "注册账号", notes = "注册校验姓名、身份证、医保卡号信息")
    public Envelop register(
            @ApiParam(name = "mobilePhone", value = "电话号码(账号)", required = true) @RequestParam(value = "mobilePhone", required = true) String mobilePhone,
            @ApiParam(name = "saasId", value = "saasID", required = true) @RequestParam(value = "saasId", required = true) String saasId,
            @ApiParam(name = "type", value = "1微信端注册,2微信端找回密码,3医生端找回密码,4患者登录,5医生登录", required = true) @RequestParam(value = "type", required = true) int type,
            @ApiParam(name = "captcha", value = "短信验证码", required = true) @RequestParam(value = "captcha", required = true) String captcha,
            @ApiParam(name = "name", value = "姓名", required = true) @RequestParam(value = "name", required = true) String name,
            @ApiParam(name = "password", value = "账户密码", required = true) @RequestParam(value = "password", required = true) String password,
            @ApiParam(name = "idcard", value = "身份证", required = true) @RequestParam(value = "idcard", required = true) String idcard,
            @ApiParam(name = "ssc", value = "医保卡号", required = true) @RequestParam(value = "ssc", required = true) String ssc){
        try {
            //判断验证码是否正确
            Envelop envelop = new Envelop();//smsService.checkSms(mobilePhone,saasId,type,captcha);
            if(true){//if(envelop.getStatus()==200){
                return loginService.register(mobilePhone,password,saasId,name,idcard,ssc);
            }else{
                return envelop;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new Envelop();
    }
    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_login, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public Envelop login(@ApiParam(name = "mobilePhone", value = "电话号码(账号)", required = false) @RequestParam(value = "mobilePhone", required = false) String mobilePhone,
                      @ApiParam(name = "password", value = "password", required = false) @RequestParam(value = "password", required = false) String password,
                      @ApiParam(name = "saasId", value = "saasID", required = true) @RequestParam(value = "saasId", required = true) String saasId,
                         @ApiParam(name = "captcha", value = "短信验证码", required = false) @RequestParam(value = "captcha", required = false) String captcha){
       return loginService.login(mobilePhone,password,saasId,captcha);
    }
    @PostMapping("/logout")
    public Envelop logout(){
        HttpHeaders headers = new HttpHeaders();
        headers.add("Accept", "*/*");
        headers.add("Cache-Control", "no-cache");
        RestTemplate restTemplate = new RestTemplate();
        MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
        //设置http请求实体
        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
        restTemplate.postForObject("http://localhost:8088/logout", requestEntity, String.class);
        return new Envelop();
    }
}
//package com.yihu.jw.business.login.contorller;
//
////import com.yihu.base.security.properties.SecurityProperties;
////import com.yihu.base.security.sms.mobile.MobileCheck;
////import com.yihu.base.security.sms.process.SmsValidateCodeProcessor;
//import com.yihu.jw.base.user.BaseEmployDO;
//import com.yihu.jw.business.login.service.LoginService;
//import com.yihu.jw.business.user.dao.EmployDao;
//import com.yihu.jw.business.user.service.EmployService;
//import com.yihu.jw.exception.ApiException;
//import com.yihu.jw.fegin.common.security.LoginSmsFeign;
//import com.yihu.jw.restmodel.common.Envelop;
//import com.yihu.jw.restmodel.common.EnvelopRestController;
//import com.yihu.jw.restmodel.common.base.BaseEnvelop;
//import com.yihu.jw.rm.base.BaseLoginRequestMapping;
//import com.yihu.jw.rm.base.BaseUserRequestMapping;
//import com.yihu.jw.util.common.ConvertToSpellUtils;
//import com.yihu.jw.util.security.MD5;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam;
//import org.bouncycastle.util.encoders.Base64;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.http.HttpEntity;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.MediaType;
//import org.springframework.util.LinkedMultiValueMap;
//import org.springframework.util.MultiValueMap;
//import org.springframework.util.StringUtils;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.client.RestTemplate;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//import java.net.InetAddress;
//import java.util.UUID;
//
///**
// * Created by 刘文彬 on 2018/4/11.
// */
//@RestController
//@RequestMapping(BaseLoginRequestMapping.api_common)
//@Api(description = "注册账户(医生端、微信端、用户端)")
//public class LoginController extends EnvelopRestController {
//
//    @Autowired
//    private LoginService loginService;
//
//
//    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_checkoutInfo, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "注册校验信息", notes = "注册校验姓名、身份证、医保卡号信息")
//    public BaseEnvelop checkoutInfo(@ApiParam(name = "ssc", value = "医保卡号", required = true) @RequestParam(value = "ssc", required = true) String ssc,
//                                    @ApiParam(name = "idcard", value = "身份证", required = true) @RequestParam(value = "idcard", required = true) String idcard) throws ApiException{
//
//        //校验姓名、身份证以及医保卡号信息是否正确
////        throw new IOException();
//        return null;
//    }
//
//    /**
//     * 注册账号-提交
//     * @param mobilePhone
//     * @param saasId
//     * @param type
//     * @param captcha
//     * @param name
//     * @param password
//     * @param idcard
//     * @param ssc
//     * @return
//     */
//    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_accountSub, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "注册账号", notes = "注册账号")
//    public Envelop register(
//            @ApiParam(name = "mobilePhone", value = "电话号码(账号)", required = true) @RequestParam(value = "mobilePhone", required = true) String mobilePhone,
//            @ApiParam(name = "saasId", value = "saasID", required = true) @RequestParam(value = "saasId", required = true) String saasId,
//            @ApiParam(name = "type", value = "1微信端注册,2微信端找回密码,3医生端找回密码,4患者登录,5医生登录", required = true) @RequestParam(value = "type", required = true) int type,
//            @ApiParam(name = "captcha", value = "短信验证码", required = true) @RequestParam(value = "captcha", required = true) String captcha,
//            @ApiParam(name = "name", value = "姓名", required = true) @RequestParam(value = "name", required = true) String name,
//            @ApiParam(name = "password", value = "账户密码", required = true) @RequestParam(value = "password", required = true) String password,
//            @ApiParam(name = "idcard", value = "身份证", required = true) @RequestParam(value = "idcard", required = true) String idcard,
//            @ApiParam(name = "ssc", value = "医保卡号", required = true) @RequestParam(value = "ssc", required = true) String ssc) throws Exception{
//        //判断验证码是否正确
//        Envelop envelop = new Envelop();//smsService.checkSms(mobilePhone,saasId,type,captcha);
//        if(true){//if(envelop.getStatus()==200){
//            return loginService.register(mobilePhone,password,saasId,name,idcard,ssc);
//        }else{
//            return envelop;
//        }
//    }
//
//    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_login, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    public Envelop login(@ApiParam(name = "mobilePhone", value = "电话号码(账号)", required = false) @RequestParam(value = "mobilePhone", required = false) String mobilePhone,
//                      @ApiParam(name = "password", value = "password", required = false) @RequestParam(value = "password", required = false) String password,
//                      @ApiParam(name = "saasId", value = "saasID", required = true) @RequestParam(value = "saasId", required = true) String saasId,
//                         @ApiParam(name = "captcha", value = "短信验证码", required = false) @RequestParam(value = "captcha", required = false) String captcha) throws ApiException,Exception{
//
//        return loginService.login(mobilePhone,password,saasId,captcha);
//    }
//
////    @PostMapping("/logout")
////    public Envelop logout(){
////        HttpHeaders headers = new HttpHeaders();
////        headers.add("Accept", "*/*");
////        headers.add("Cache-Control", "no-cache");
////        RestTemplate restTemplate = new RestTemplate();
////        MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
////        //设置http请求实体
////        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
////        restTemplate.postForObject("http://localhost:8088/logout", requestEntity, String.class);
////        return new Envelop();
////    }
//
//}

+ 124 - 126
svr/svr-base/src/main/java/com/yihu/jw/business/login/service/LoginService.java

@ -1,131 +1,129 @@
package com.yihu.jw.business.login.service;
import com.yihu.base.mysql.query.BaseJpaService;
import com.yihu.jw.base.login.BaseLoginAccountDO;
import com.yihu.jw.base.user.BaseEmployDO;
import com.yihu.jw.business.user.dao.EmployDao;
import com.yihu.jw.business.user.service.EmployService;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.rm.base.BaseLoginRequestMapping;
import com.yihu.jw.util.common.ConvertToSpellUtils;
import com.yihu.jw.util.security.MD5;
import io.swagger.annotations.ApiParam;
import org.bouncycastle.util.encoders.Base64;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.client.RestTemplate;
import java.beans.Transient;
import java.util.UUID;
/**
 * Created by 刘文彬 on 2018/4/26.
 */
@Service
public class LoginService  extends BaseJpaService<BaseEmployDO,EmployDao> {
    @Autowired
    private EmployDao employDao;
    @Autowired
    private EmployService employService;
    @Value("${server.web-gateway-port}")
    private String port;
    public BaseEnvelop checkoutInfo(){
        //校验姓名、身份证以及医保卡号信息是否正确
        return null;
    }
    @Transactional
    public Envelop register(String mobilePhone,String password,String saasId,String name,String idcard,String ssc){
        //判断账号是否重复
        BaseEmployDO baseEmployDO = employDao.findByPhoneAndSaasId(mobilePhone,saasId);
        if(baseEmployDO!=null){
            return Envelop.getError("该手机号已注册!");
        }
        //保存账户基础信息
        BaseEmployDO employeeDO = new BaseEmployDO();
        employeeDO.setId(UUID.randomUUID().toString().replaceAll("-", ""));
        employeeDO.setSaasId(saasId);
        employeeDO.setName(name);
        employeeDO.setPyCode(ConvertToSpellUtils.changeToInitialPinYin(name));
        employeeDO.setIdcard(idcard);
        employeeDO.setSsc(ssc);
        employeeDO.setPhone(mobilePhone);
        String salt= UUID.randomUUID().toString().replace("-","");
        employeeDO.setSalt(salt);
        employeeDO.setPassword(MD5.GetMD5Code(password + salt));
        employService.createBaseEmployDO(employeeDO);
        return login(employeeDO.getPhone(),employeeDO.getPassword(),saasId,"");
    }
    public Envelop login(String mobilePhone,String password,String saasId,String captcha){
        BaseEmployDO baseEmployDO = employService.findByPhoneAndSaasId(mobilePhone,saasId);
        if(baseEmployDO==null){
            return Envelop.getError("该账户不存在!");
        }
        HttpHeaders headers = new HttpHeaders();
        headers.add("Accept", "*/*");
        headers.add("Cache-Control", "no-cache");
        //client_id:client_securt
        byte[] a = Base64.encode((saasId+":").getBytes());
        String client_id = new String(a);
        headers.add("Authorization","Basic "+client_id);//MTox
        String token = "";
        //传参数JSON格式
        //  封装参数,千万不要替换为Map与HashMap,否则参数无法传递
        MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
        //判断是短信登录还是账号密码登录
        if(StringUtils.isEmpty(captcha)){
            //  也支持中文
            params.add("username", mobilePhone+","+saasId);
            params.add("password", MD5.GetMD5Code(password+baseEmployDO.getSalt()));
            //设置http请求实体
            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
            RestTemplate restTemplate = new RestTemplate();
            token = restTemplate.postForObject("http://localhost:"+port+"/authentication/form", requestEntity, String.class);
        }else{
            params.add("mobile", mobilePhone+","+saasId);
            params.add("sms", captcha);
            //设置http请求实体
            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
            RestTemplate restTemplate = new RestTemplate();
            token = restTemplate.postForObject("http://localhost:"+port+"/authentication/mobile", requestEntity, String.class);
        }
        if(!StringUtils.isEmpty(token)){
            return Envelop.getSuccess("登录成功!",token);
        }else{
            return Envelop.getError("登录失败!");
        }
    }
//    public Envelop logout(){
//package com.yihu.jw.business.login.service;
//
//import com.yihu.base.mysql.query.BaseJpaService;
//import com.yihu.jw.base.login.BaseLoginAccountDO;
//import com.yihu.jw.base.user.BaseEmployDO;
//import com.yihu.jw.business.user.dao.EmployDao;
//import com.yihu.jw.business.user.service.EmployService;
//import com.yihu.jw.exception.ApiException;
//import com.yihu.jw.restmodel.common.Envelop;
//import com.yihu.jw.restmodel.common.base.BaseEnvelop;
//import com.yihu.jw.rm.base.BaseLoginRequestMapping;
//import com.yihu.jw.util.common.ConvertToSpellUtils;
//import com.yihu.jw.util.security.MD5;
//import io.swagger.annotations.ApiParam;
//import org.bouncycastle.util.encoders.Base64;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.http.HttpEntity;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.MediaType;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//import org.springframework.util.LinkedMultiValueMap;
//import org.springframework.util.MultiValueMap;
//import org.springframework.util.StringUtils;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.client.RestTemplate;
//
//import java.beans.Transient;
//import java.util.UUID;
//
///**
// * Created by 刘文彬 on 2018/4/26.
// */
//@Service
//public class LoginService  extends BaseJpaService<BaseEmployDO,EmployDao> {
//
//    @Autowired
//    private EmployDao employDao;
//    @Autowired
//    private EmployService employService;
//
//    @Value("${server.web-gateway-port}")
//    private String port;
//    public BaseEnvelop checkoutInfo(){
//
//        //校验姓名、身份证以及医保卡号信息是否正确
//
//        return null;
//    }
//
//    @Transactional
//    public Envelop register(String mobilePhone,String password,String saasId,String name,String idcard,String ssc) throws Exception {
//
//        //判断账号是否重复
//        BaseEmployDO baseEmployDO = employService.findByPhoneAndSaasId(mobilePhone,saasId);
//        if(baseEmployDO!=null){
//            return Envelop.getError("该手机号已注册!");
//        }
//
//        //保存账户基础信息
//        BaseEmployDO employeeDO = new BaseEmployDO();
//        employeeDO.setId(UUID.randomUUID().toString().replaceAll("-", ""));
//        employeeDO.setSaasId(saasId);
//        employeeDO.setName(name);
//        employeeDO.setPyCode(ConvertToSpellUtils.changeToInitialPinYin(name));
//        employeeDO.setIdcard(idcard);
//        employeeDO.setSsc(ssc);
//        employeeDO.setPhone(mobilePhone);
//        String salt= UUID.randomUUID().toString().replace("-","");
//        employeeDO.setSalt(salt);
//        employeeDO.setPassword(MD5.GetMD5Code(password + salt));
//        employService.createBaseEmployDO(employeeDO);
//
//        return login(employeeDO.getPhone(),employeeDO.getPassword(),saasId,"");
//    }
//
//
//    public Envelop login(String mobilePhone,String password,String saasId,String captcha) throws Exception{
//        BaseEmployDO baseEmployDO = employService.findByPhoneAndSaasId(mobilePhone,saasId);
//        HttpHeaders headers = new HttpHeaders();
//        headers.add("Accept", "*/*");
//        headers.add("Cache-Control", "no-cache");
//        RestTemplate restTemplate = new RestTemplate();
//        //client_id:client_securt
//        byte[] a = Base64.encode((saasId+":").getBytes());
//        String client_id = new String(a);
//        headers.add("Authorization","Basic "+client_id);//MTox
//        String token = "";
//        //传参数JSON格式
//        //  封装参数,千万不要替换为Map与HashMap,否则参数无法传递
//        MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
//        //设置http请求实体
//        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
//        restTemplate.postForObject("http://localhost:"+port+"/logout", requestEntity, String.class);
//        //判断是短信登录还是账号密码登录
//        if(StringUtils.isEmpty(captcha)){
//
//            //  也支持中文
//            params.add("username", mobilePhone+","+saasId);
//            params.add("password", MD5.GetMD5Code(password+baseEmployDO.getSalt()));
//            //设置http请求实体
//            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
//            RestTemplate restTemplate = new RestTemplate();
//            token = restTemplate.postForObject("http://localhost:"+port+"/authentication/form", requestEntity, String.class);
//        }else{
//            params.add("mobile", mobilePhone+","+saasId);
//            params.add("sms", captcha);
//            //设置http请求实体
//            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
//            RestTemplate restTemplate = new RestTemplate();
//            token = restTemplate.postForObject("http://localhost:"+port+"/authentication/mobile", requestEntity, String.class);
//        }
//
//        if(!StringUtils.isEmpty(token)){
//            return Envelop.getSuccess("登录成功!",token);
//        }else{
//            return Envelop.getError("登录失败!");
//        }
//    }
}
//
////    public Envelop logout(){
////        HttpHeaders headers = new HttpHeaders();
////        headers.add("Accept", "*/*");
////        headers.add("Cache-Control", "no-cache");
////        RestTemplate restTemplate = new RestTemplate();
////        MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
////        //设置http请求实体
////        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
////        restTemplate.postForObject("http://localhost:"+port+"/logout", requestEntity, String.class);
////    }
//}

+ 0 - 69
svr/svr-base/src/main/java/com/yihu/jw/business/sms/controller/SMSController.java

@ -1,69 +0,0 @@
package com.yihu.jw.business.sms.controller;
import com.yihu.jw.base.sms.BaseSmsDO;
import com.yihu.jw.business.sms.service.SmsService;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.restmodel.base.sms.SmsVO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.rm.base.BaseSmsRequestMapping;
import com.yihu.jw.util.common.MobileUtils;
import com.yihu.jw.util.common.NetworkUtil;
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.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by chenweida on 2017/5/19.
 * 注册发送短信验证码
 */
@RestController
@RequestMapping(BaseSmsRequestMapping.api_common)
@Api(value = "短信模块", description = "短信模块接口管理")
public class SMSController extends EnvelopRestController {
    @Autowired
    private SmsService smsService;
    @ApiOperation(value = "(注册、找回密码)发送校验码")
    @PostMapping(value = BaseSmsRequestMapping.Sms.api_sms_send, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public BaseEnvelop send(@ApiParam(name = "mobile", value = "手机号码", required = true) @RequestParam(value = "mobile", required = true) String mobile,
                            @ApiParam(name = "type", value = "短信验证码类型", required = true) @RequestParam(value = "type", required = true) int type,
                            @ApiParam(name = "saasId", value = "saasId", required = true) @RequestParam(value = "saasId", required = true) String saasId,
                            HttpServletRequest request) throws IOException {
        try {
            if (type > 10 || type < 1) {
                return BaseEnvelop.getError("无效的请求!");
            }
            if (StringUtils.isEmpty(mobile)) {
                return BaseEnvelop.getError("手机号码不允许为空!");
            }
            if(!MobileUtils.checkCellphone(mobile)){
                return BaseEnvelop.getError("手机号码格式不正确!");
            }
            // 获取ip地址
            String ip = NetworkUtil.getIpAddress(request);
            if (StringUtils.isEmpty(ip)) {
                return  BaseEnvelop.getError("无效的ip请求!");
            }
            BaseEnvelop envelop1 = smsService.send(mobile,ip,type,saasId);
            return envelop1;
        } catch (Exception e) {
            error(e);
            return  BaseEnvelop.getError("手机号有误,无法发送验证!");
        }
    }
}

+ 92 - 81
svr/svr-base/src/main/java/com/yihu/jw/business/user/contorller/BaseRoleController.java

@ -1,46 +1,45 @@
//package com.yihu.jw.business.user.contorller;
//
//import com.yihu.jw.base.user.BaseEmployRoleDO;
//import com.yihu.jw.base.user.BaseMenuDO;
//import com.yihu.jw.base.user.BaseRoleDO;
//import com.yihu.jw.base.user.BaseRoleMenuDO;
//import com.yihu.jw.business.user.service.BaseRoleMenuService;
//import com.yihu.jw.business.user.service.BaseRoleService;
//import com.yihu.jw.exception.ApiException;
//import com.yihu.jw.exception.code.ExceptionCode;
//import com.yihu.jw.restmodel.base.user.BaseEmployVO;
//import com.yihu.jw.restmodel.base.user.BaseRoleVO;
//import com.yihu.jw.restmodel.common.Envelop;
//import com.yihu.jw.restmodel.common.EnvelopRestController;
//import com.yihu.jw.rm.base.BaseUserRequestMapping;
//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.http.MediaType;
//import org.springframework.web.bind.annotation.*;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.text.ParseException;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * Created by LiTaohong on 2017/11/28.
// */
//@RestController
//@RequestMapping(BaseUserRequestMapping.api_user_common)
//@Api(description = "基础角色")
//public class BaseRoleController extends EnvelopRestController {
//
//    @Autowired
//    private BaseRoleService baseRoleService;
//
package com.yihu.jw.business.user.contorller;
import com.yihu.jw.base.user.BaseEmployRoleDO;
import com.yihu.jw.base.user.BaseMenuDO;
import com.yihu.jw.base.user.BaseRoleDO;
import com.yihu.jw.base.user.BaseRoleMenuDO;
import com.yihu.jw.business.user.service.BaseRoleService;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.exception.code.ExceptionCode;
import com.yihu.jw.restmodel.base.user.BaseEmployVO;
import com.yihu.jw.restmodel.base.user.BaseRoleVO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.rm.base.BaseUserRequestMapping;
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.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by LiTaohong on 2017/11/28.
 */
@RestController
@RequestMapping(BaseUserRequestMapping.api_user_common)
@Api(description = "基础角色")
public class BaseRoleController extends EnvelopRestController {
    @Autowired
    private BaseRoleService baseRoleService;
//    @Autowired
//    private BaseRoleMenuService baseRoleMenuService;
//
//    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "创建角色", notes = "创建单个角色")
//    public Envelop createRole(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
@ -51,7 +50,7 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "修改角色", notes = "修改角色")
//    public Envelop updateBaseRole(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
@ -62,7 +61,7 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_getById, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "查询单个角色", notes = "根据角色id查询角色信息")
//    public Envelop getOneRoleById(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
@ -73,7 +72,7 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_getOne, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "查询单个角色", notes = "根据平台和角色名称查询角色信息")
//    public Envelop getOneRoleBySaasIdAndName(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
@ -84,7 +83,7 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_getlistNoPage, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "查询多个角色", notes = "根据平台id查询所有角色信息,不分页")
//    public Envelop getRoleListBySaasId(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
@ -95,38 +94,38 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @ApiOperation(value = "根据指定条件查询所有角色列表,分页")
//    @GetMapping(value = BaseUserRequestMapping.BaseRole.api_getListPage)
//    public Envelop getRoleListPage(@ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,name,remark") @RequestParam(value = "fields", required = false) String fields,
//                                              @ApiParam(name = "filters", value = "过滤器,为空检索所有条件") @RequestParam(value = "filters", required = false) String filters,
//                                              @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime") @RequestParam(value = "sorts", required = false) String sorts,
//                                              @ApiParam(name = "size", value = "分页大小", defaultValue = "15") @RequestParam(value = "size", required = false) int size,
//                                              @ApiParam(name = "page", value = "页码", defaultValue = "1") @RequestParam(value = "page", required = false) int page,
//                                              HttpServletRequest request, HttpServletResponse response) throws ParseException {
//        if (StringUtils.isBlank(filters)) {
//            return Envelop.getError(BaseUserRequestMapping.BaseRole.message_fail_params_not_present, ExceptionCode.common_error_params_code);
//        } else {
//            filters = "status<>-1;" + filters;
//        }
//        if (StringUtils.isBlank(sorts)) {
//            sorts = "-updateTime";
//        }
//
//        //得到list数据
//        List<BaseRoleVO> list = baseRoleService.search(fields, filters, sorts, page, size);
//
//        //获取总数
//        long count = baseRoleService.getCount(filters);
//        //封装头信息
//        pagedResponse(request, response, count, page, size);
//        //封装返回格式
//        List<BaseRoleVO> mFunctions = convertToModels(list, new ArrayList<>(list.size()), BaseRoleVO.class, fields);
//
//        return Envelop.getSuccessListWithPage(BaseUserRequestMapping.BaseRole.message_success_find, mFunctions, page, size, count);
//    }
//
//
    @ApiOperation(value = "根据指定条件查询所有角色列表,分页")
    @GetMapping(value = BaseUserRequestMapping.BaseRole.api_getListPage)
    public Envelop getRoleListPage(@ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,name,remark") @RequestParam(value = "fields", required = false) String fields,
                                              @ApiParam(name = "filters", value = "过滤器,为空检索所有条件") @RequestParam(value = "filters", required = false) String filters,
                                              @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime") @RequestParam(value = "sorts", required = false) String sorts,
                                              @ApiParam(name = "size", value = "分页大小", defaultValue = "15") @RequestParam(value = "size", required = false) int size,
                                              @ApiParam(name = "page", value = "页码", defaultValue = "1") @RequestParam(value = "page", required = false) int page,
                                              HttpServletRequest request, HttpServletResponse response) throws ParseException {
        if (StringUtils.isBlank(filters)) {
            return Envelop.getError(BaseUserRequestMapping.BaseRole.message_fail_params_not_present, ExceptionCode.common_error_params_code);
        } else {
            filters = "status<>-1;" + filters;
        }
        if (StringUtils.isBlank(sorts)) {
            sorts = "-updateTime";
        }
        //得到list数据
        List<BaseRoleVO> list = baseRoleService.search(fields, filters, sorts, page, size);
        //获取总数
        long count = baseRoleService.getCount(filters);
        //封装头信息
        pagedResponse(request, response, count, page, size);
        //封装返回格式
        List<BaseRoleVO> mFunctions = convertToModels(list, new ArrayList<>(list.size()), BaseRoleVO.class, fields);
        return Envelop.getSuccessListWithPage(BaseUserRequestMapping.BaseRole.message_success_find, mFunctions, page, size, count);
    }
//    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_delete, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "删除角色", notes = "根据角色id删除角色")
//    public Envelop deleteRole(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
@ -138,7 +137,7 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_deleteBySaasId, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "批量删除角色", notes = "删除某一平台下所有角色信息")
//    public Envelop deleteRolesBySaasId(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
@ -150,7 +149,19 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
    @PostMapping(value = BaseUserRequestMapping.BaseRole.api_getRoleByPhoneAndSaasId, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "根据phone和saasid获取role", notes = "根据phone和saasid获取role")
    public Envelop getPhoneAndSaasId(@ApiParam(name = "phone", value = "电话号码(账号)") @RequestParam(value = "phone", required = true) String phone,
                                     @ApiParam(name = "saasId", value = "saasId") @RequestParam(value = "saasId", required = true) String saasId){
        try{
            List<BaseRoleDO> result = baseRoleService.findByPhoneAndSaasId(phone,saasId);
            return Envelop.getSuccess("获取数据成功!",result);
        } catch (ApiException e){
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
//    @ApiOperation(value = "給角色添加菜单", notes = "給角色添加菜单")
//    @PostMapping(value = BaseUserRequestMapping.BaseRoleMenu.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    public Envelop addMenuForRole(@ApiParam(name = "roleId", value = "", defaultValue = "") @RequestBody String roleId,
@ -216,5 +227,5 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//}
}

+ 128 - 132
svr/svr-base/src/main/java/com/yihu/jw/business/user/contorller/EmployController.java

@ -1,56 +1,52 @@
//package com.yihu.jw.business.user.contorller;
//
//import com.yihu.jw.base.base.FunctionDO;
//import com.yihu.jw.base.user.BaseEmployDO;
//import com.yihu.jw.base.user.BaseEmployRoleDO;
//import com.yihu.jw.business.user.service.EmployRoleService;
//import com.yihu.jw.business.user.service.EmployService;
//import com.yihu.jw.exception.ApiException;
//import com.yihu.jw.exception.code.ExceptionCode;
//import com.yihu.jw.restmodel.base.base.FunctionVO;
//import com.yihu.jw.restmodel.base.user.BaseEmployVO;
//import com.yihu.jw.restmodel.common.Envelop;
//import com.yihu.jw.restmodel.common.EnvelopRestController;
//import com.yihu.jw.rm.base.BaseRequestMapping;
//import com.yihu.jw.rm.base.BaseUserRequestMapping;
//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.http.MediaType;
//import org.springframework.web.bind.annotation.*;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.text.ParseException;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * Created by chenweida on 2017/5/11.
// */
//@RestController
//@RequestMapping(BaseUserRequestMapping.api_user_common)
//@Api(description = "医生,行政人员等非患者用户(基础用户)")
//public class EmployController extends EnvelopRestController {
//    @Autowired
//    private EmployService employService;
//
//    @Autowired
//    private EmployRoleService employRoleService;
//
//    @PostMapping(value = BaseUserRequestMapping.BaseEmploy.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "创建用户", notes = "创建单个用户")
//    public Envelop createBaseEmployDO(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
//        try{
//            BaseEmployDO baseEmployDO = toEntity(jsonData,BaseEmployDO.class);
//            return Envelop.getSuccess(BaseUserRequestMapping.BaseEmploy.message_success_create,employService.createBaseEmployDO(baseEmployDO));
//        } catch (ApiException e){
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
package com.yihu.jw.business.user.contorller;
import com.yihu.jw.base.base.FunctionDO;
import com.yihu.jw.base.user.BaseEmployDO;
import com.yihu.jw.base.user.BaseEmployRoleDO;
import com.yihu.jw.business.user.service.EmployService;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.exception.code.ExceptionCode;
import com.yihu.jw.restmodel.base.base.FunctionVO;
import com.yihu.jw.restmodel.base.user.BaseEmployVO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.base.BaseUserRequestMapping;
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.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by chenweida on 2017/5/11.
 */
@RestController
@RequestMapping(BaseUserRequestMapping.api_user_common)
@Api(description = "医生,行政人员等非患者用户(基础用户)")
public class EmployController extends EnvelopRestController {
    @Autowired
    private EmployService employService;
    @PostMapping(value = BaseUserRequestMapping.BaseEmploy.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建用户", notes = "创建单个用户")
    public Envelop createBaseEmployDO(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
        try{
            BaseEmployDO baseEmployDO = toEntity(jsonData,BaseEmployDO.class);
            return Envelop.getSuccess(BaseUserRequestMapping.BaseEmploy.message_success_create,employService.createBaseEmployDO(baseEmployDO));
        } catch (Exception e){
            return Envelop.getError(e.getMessage());
        }
    }
//    @PostMapping(value = BaseUserRequestMapping.BaseEmploy.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ApiOperation(value = "修改用户", notes = "修改用户")
//    public Envelop updateBaseEmployDO(@ApiParam(name = "json_data", value = "", defaultValue = "") @RequestBody String jsonData){
@ -61,81 +57,81 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @ApiOperation(value = "根据id查找用户")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getById)
//    public Envelop getEmployeeById(@ApiParam(name = "id", value = "id", required = true) @RequestParam(value = "id", required = true) String id) {
//        try{
//            return Envelop.getSuccess(BaseUserRequestMapping.BaseEmploy.message_success_find,this.employService.findById(id));
//        } catch (ApiException e){
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @ApiOperation(value = "根据saasId查找所有用户")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getListBySaasId)
//    public Envelop getAllEmployeeBySaasId(@ApiParam(name = "saasId", value = "saasId", required = true) @RequestParam(value = "saasId", required = true) String saasId) {
//        try{
//            return Envelop.getSuccessList(BaseUserRequestMapping.BaseEmploy.message_success_find,this.employService.findAllBySaasId(saasId));
//        } catch (ApiException e){
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//
//    @ApiOperation(value = "根据手机号和saasId查找用户")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getByPhone)
//    public Envelop getEmployeeByPhoneAndSaasId(@ApiParam(name = "phone", value = "phone", required = true) @RequestParam(value = "phone", required = true) String phone,
//                                               @ApiParam(name = "saasId", value = "saasId", required = true) @RequestParam(value = "saasId", required = true) String saasId) {
//        try {
//            return Envelop.getSuccess(BaseUserRequestMapping.BaseEmploy.message_success_find, this.employService.findByPhoneAndSaasId(phone,saasId));
//        } catch (ApiException e) {
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @ApiOperation(value = "根据name模糊查询某saasId平台下的所有用户")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getListByName)
//    public Envelop getListByNameAndSaasId(@ApiParam(name = "saasId", value = "saasId", required = true) @RequestParam(value = "saasId", required = true) String saasId,
//                                          @ApiParam(name = "name", value = "name", required = true) @RequestParam(value = "name", required = true) String name) {
//        try{
//            return Envelop.getSuccessList(BaseUserRequestMapping.BaseEmploy.message_success_find,this.employService.findAllByNameAndSaasId(name,saasId));
//        } catch (ApiException e){
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @ApiOperation(value = "根据指定条件查询用户列表,分页")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getListNoPage)
//    public Envelop getListPageByNameAndSaasId(@ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,name,sex,photo,skill,email,phone,family_tel,introduction,jxzc,lczc,xlzc,xzzc") @RequestParam(value = "fields", required = false) String fields,
//                                              @ApiParam(name = "filters", value = "过滤器,为空检索所有条件") @RequestParam(value = "filters", required = false) String filters,
//                                              @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime") @RequestParam(value = "sorts", required = false) String sorts,
//                                              @ApiParam(name = "size", value = "分页大小", defaultValue = "15") @RequestParam(value = "size", required = false) int size,
//                                              @ApiParam(name = "page", value = "页码", defaultValue = "1") @RequestParam(value = "page", required = false) int page,
//                                              HttpServletRequest request, HttpServletResponse response) throws ParseException {
//        if (StringUtils.isBlank(filters)) {
//            return Envelop.getError(BaseUserRequestMapping.BaseEmploy.message_fail_params_not_present, ExceptionCode.common_error_params_code);
//        } else {
//            filters = "status<>-1;" + filters;
//        }
//        if (StringUtils.isBlank(sorts)) {
//            sorts = "-updateTime";
//        }
//
//        //得到list数据
//        List<BaseEmployVO> list = employService.search(fields, filters, sorts, page, size);
//
//        //获取总数
//        long count = employService.getCount(filters);
//        //封装头信息
//        pagedResponse(request, response, count, page, size);
//        //封装返回格式
//        List<BaseEmployVO> mFunctions = convertToModels(list, new ArrayList<>(list.size()), BaseEmployVO.class, fields);
//
//        return Envelop.getSuccessListWithPage(BaseUserRequestMapping.BaseEmploy.message_success_find, mFunctions, page, size, count);
//    }
//
//
    @ApiOperation(value = "根据id查找用户")
    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getById)
    public Envelop getEmployeeById(@ApiParam(name = "id", value = "id", required = true) @RequestParam(value = "id", required = true) String id) {
        try{
            return Envelop.getSuccess(BaseUserRequestMapping.BaseEmploy.message_success_find,this.employService.findById(id));
        } catch (ApiException e){
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @ApiOperation(value = "根据saasId查找所有用户")
    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getListBySaasId)
    public Envelop getAllEmployeeBySaasId(@ApiParam(name = "saasId", value = "saasId", required = true) @RequestParam(value = "saasId", required = true) String saasId) {
        try{
            return Envelop.getSuccessList(BaseUserRequestMapping.BaseEmploy.message_success_find,this.employService.findAllBySaasId(saasId));
        } catch (ApiException e){
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @ApiOperation(value = "根据手机号和saasId查找用户")
    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getByPhone)
    public Envelop getEmployeeByPhoneAndSaasId(@ApiParam(name = "phone", value = "phone", required = true) @RequestParam(value = "phone", required = true) String phone,
                                               @ApiParam(name = "saasId", value = "saasId", required = true) @RequestParam(value = "saasId", required = true) String saasId) {
        try {
            return Envelop.getSuccess(BaseUserRequestMapping.BaseEmploy.message_success_find, this.employService.findByPhoneAndSaasId(phone,saasId));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @ApiOperation(value = "根据name模糊查询某saasId平台下的所有用户")
    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getListByName)
    public Envelop getListByNameAndSaasId(@ApiParam(name = "saasId", value = "saasId", required = true) @RequestParam(value = "saasId", required = true) String saasId,
                                          @ApiParam(name = "name", value = "name", required = true) @RequestParam(value = "name", required = true) String name) {
        try{
            return Envelop.getSuccessList(BaseUserRequestMapping.BaseEmploy.message_success_find,this.employService.findAllByNameAndSaasId(name,saasId));
        } catch (ApiException e){
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @ApiOperation(value = "根据指定条件查询用户列表,分页")
    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getListNoPage)
    public Envelop getListPageByNameAndSaasId(@ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,name,sex,photo,skill,email,phone,family_tel,introduction,jxzc,lczc,xlzc,xzzc") @RequestParam(value = "fields", required = false) String fields,
                                              @ApiParam(name = "filters", value = "过滤器,为空检索所有条件") @RequestParam(value = "filters", required = false) String filters,
                                              @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime") @RequestParam(value = "sorts", required = false) String sorts,
                                              @ApiParam(name = "size", value = "分页大小", defaultValue = "15") @RequestParam(value = "size", required = false) int size,
                                              @ApiParam(name = "page", value = "页码", defaultValue = "1") @RequestParam(value = "page", required = false) int page,
                                              HttpServletRequest request, HttpServletResponse response) throws ParseException {
        if (StringUtils.isBlank(filters)) {
            return Envelop.getError(BaseUserRequestMapping.BaseEmploy.message_fail_params_not_present, ExceptionCode.common_error_params_code);
        } else {
            filters = "status<>-1;" + filters;
        }
        if (StringUtils.isBlank(sorts)) {
            sorts = "-updateTime";
        }
        //得到list数据
        List<BaseEmployVO> list = employService.search(fields, filters, sorts, page, size);
        //获取总数
        long count = employService.getCount(filters);
        //封装头信息
        pagedResponse(request, response, count, page, size);
        //封装返回格式
        List<BaseEmployVO> mFunctions = convertToModels(list, new ArrayList<>(list.size()), BaseEmployVO.class, fields);
        return Envelop.getSuccessListWithPage(BaseUserRequestMapping.BaseEmploy.message_success_find, mFunctions, page, size, count);
    }
//    @ApiOperation(value = "给某一用户新增角色")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmployRole.api_create)
//    public Envelop createEmployRoles(@ApiParam(name = "employId", value = "employId", required = true) @RequestParam(value = "employId", required = true) String employId,
@ -158,7 +154,7 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @ApiOperation(value = "修改用户角色")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmployRole.api_update)
//    public Envelop updateEmployRole(@ApiParam(name = "employId", value = "employId", required = true) @RequestParam(value = "employId", required = true) String id,
@ -172,7 +168,7 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @ApiOperation(value = "查看用户角色列表,不分页")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmployRole.api_getListNoPage)
//    public Envelop findEmployRoleList(@ApiParam(name = "employId", value = "employId", required = true) @RequestParam(value = "employId", required = true) String employId) {
@ -182,7 +178,7 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//
//    @ApiOperation(value = "删除用户角色")
//    @GetMapping(value = BaseUserRequestMapping.BaseEmployRole.api_delete)
//    public Envelop deleteEmployRoles(@ApiParam(name = "employId", value = "employId", required = true) @RequestParam(value = "employId", required = true) String employId,
@ -200,4 +196,4 @@
//            return Envelop.getError(e.getMessage(), e.getErrorCode());
//        }
//    }
//}
}

+ 31 - 28
svr/svr-base/src/main/java/com/yihu/jw/business/user/dao/BaseRoleDao.java

@ -1,28 +1,31 @@
//package com.yihu.jw.business.user.dao;
//
//import com.yihu.jw.base.user.BaseRoleDO;
//import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
//import org.springframework.data.jpa.repository.Query;
//import org.springframework.data.repository.PagingAndSortingRepository;
//
//import java.util.List;
//
///**
// * Created by LiTaohong on 2017/11/28.
// */
//public interface BaseRoleDao extends PagingAndSortingRepository<BaseRoleDO, String>, JpaSpecificationExecutor<BaseRoleDO> {
//
//
//    @Query("from BaseRoleDO b where b.id = ?1")
//    BaseRoleDO findOneById(String id);
//
//    //角色与saasId为一对多关系
//    @Query("from BaseRoleDO b where b.saasId = ?1")
//    List<BaseRoleDO> findAllBySaasId(String saasId);
//
//    @Query("from BaseRoleDO b where b.saasId = ?1 and b.name = ?2")
//    BaseRoleDO findOneBySaasIdAndName(String saasId,String name);
//
//    @Query("from BaseRoleDO b where b.name like %?1%")
//    List<BaseRoleDO> findAllByName(String name);
//}
package com.yihu.jw.business.user.dao;
import com.yihu.jw.base.user.BaseRoleDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by LiTaohong on 2017/11/28.
 */
public interface BaseRoleDao extends PagingAndSortingRepository<BaseRoleDO, String>, JpaSpecificationExecutor<BaseRoleDO> {
    @Query("from BaseRoleDO b where b.id = ?1")
    BaseRoleDO findOneById(String id);
    //角色与saasId为一对多关系
    @Query("from BaseRoleDO b where b.saasId = ?1")
    List<BaseRoleDO> findAllBySaasId(String saasId);
    @Query("from BaseRoleDO b where b.saasId = ?1 and b.name = ?2")
    BaseRoleDO findOneBySaasIdAndName(String saasId,String name);
    @Query("from BaseRoleDO b where b.name like %?1%")
    List<BaseRoleDO> findAllByName(String name);
    @Query(value="select b.* from base_role b,base_employ e,base_employ_role r where r.role_id=b.id and r.employ_id=e.id and e.phone= ?1 and e.saas_id= ?2",nativeQuery = true)
    List<BaseRoleDO> findByPhoneAndSaasId(String phone,String saasId);
}

+ 184 - 174
svr/svr-base/src/main/java/com/yihu/jw/business/user/service/BaseRoleService.java

@ -1,174 +1,184 @@
//package com.yihu.jw.business.user.service;
//
//import com.netflix.discovery.converters.Auto;
//import com.yihu.base.mysql.query.BaseJpaService;
//import com.yihu.jw.base.user.BaseRoleDO;
//import com.yihu.jw.business.user.dao.BaseRoleDao;
//import com.yihu.jw.exception.ApiException;
//import com.yihu.jw.exception.code.ExceptionCode;
//import com.yihu.jw.rm.base.BaseUserRequestMapping;
//import net.bytebuddy.implementation.bytecode.Throw;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//import org.springframework.util.StringUtils;
//
//import java.util.List;
//
///**
// * Created by LiTaohong on 2017/11/28.
// * 基础角色功能
// */
//@Service
//public class BaseRoleService extends BaseJpaService<BaseRoleDO,BaseRoleDao>{
//    @Autowired
//    private BaseRoleDao baseRoleDao;
//
//    /**
//     * 创建role
//     * @param baseRoleDO
//     * @return
//     */
//    @Transactional
//    public BaseRoleDO createBaseRole(BaseRoleDO baseRoleDO){
//        if (StringUtils.isEmpty(baseRoleDO.getId())) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_is_null, ExceptionCode.common_error_params_code);
//        }
//        if (StringUtils.isEmpty(baseRoleDO.getSaasId())) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_is_null, ExceptionCode.common_error_params_code);
//        }
//        if (StringUtils.isEmpty(baseRoleDO.getName())) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_name_is_null, ExceptionCode.common_error_params_code);
//        }
//        return this.baseRoleDao.save(baseRoleDO);
//    }
//
//    /**
//     * 更新role
//     * @param baseRoleDO
//     * @return
//     */
//    @Transactional
//    public BaseRoleDO updateBaseRole(BaseRoleDO baseRoleDO){
//        if (StringUtils.isEmpty(baseRoleDO.getId())) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_is_null, ExceptionCode.common_error_params_code);
//        }
//        if (StringUtils.isEmpty(baseRoleDO.getSaasId())) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_is_null, ExceptionCode.common_error_params_code);
//        }
//        return this.baseRoleDao.save(baseRoleDO);
//    }
//
//    /**
//     * 根据roleId查询role
//     * @param id
//     * @return
//     */
//    public BaseRoleDO findById(String id){
//        if (StringUtils.isEmpty(id)) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_is_null,ExceptionCode.common_error_params_code);
//        }
//        BaseRoleDO baseRoleDO = this.baseRoleDao.findOneById(id);
//        if (null == baseRoleDO) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_no_exist,ExceptionCode.common_error_params_code);
//        }
//        return baseRoleDO;
//    }
//
//    /**
//     * 查询某要saasId平台下的所有role
//     * @param saasId
//     * @return
//     */
//    public List<BaseRoleDO> findAllBySaasId(String saasId){
//        if (StringUtils.isEmpty(saasId)) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_param_saasid_is_null,ExceptionCode.common_error_params_code);
//        }
//        List<BaseRoleDO> list = this.baseRoleDao.findAllBySaasId(saasId);
//        if (null == list || list.size() == 0) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_no_exist,ExceptionCode.common_error_params_code);
//        }
//        return list;
//    }
//
//    /**
//     * 查找某一平台下某一个role
//     * @param saasId
//     * @param name
//     * @return
//     */
//    public BaseRoleDO findBySaasIdAndName(String saasId,String name){
//        if (StringUtils.isEmpty(saasId)) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_param_saasid_is_null,ExceptionCode.common_error_params_code);
//        }
//        if (StringUtils.isEmpty(name)) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_name_is_null,ExceptionCode.common_error_params_code);
//        }
//        BaseRoleDO baseRoleDO = this.baseRoleDao.findOneBySaasIdAndName(name,saasId);
//        if (null == baseRoleDO) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_role_no_exist,ExceptionCode.common_error_params_code);
//        }
//        return baseRoleDO;
//    }
//
//    /**
//     * 根据name查询所有的role,包括不同平台saasid的
//     * @param name
//     * @return
//     */
//    public List<BaseRoleDO> getRoleListByName(String name){
//        if (StringUtils.isEmpty(name)) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_param_name_is_null,ExceptionCode.common_error_params_code);
//        }
//        List<BaseRoleDO> list = this.baseRoleDao.findAllByName(name);
//        if (null == list || list.size() == 0) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_role_no_exist,ExceptionCode.common_error_params_code);
//        }
//        return list;
//    }
//
//
//    /**
//     * 根据roleId删除role
//     * @param baseRoleDO
//     */
//    @Transactional
//    public void deleteBaseRole(BaseRoleDO baseRoleDO){
//        if (StringUtils.isEmpty(baseRoleDO.getId())) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_is_null, ExceptionCode.common_error_params_code);
//        }
//        if (StringUtils.isEmpty(baseRoleDO.getSaasId())) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_is_null, ExceptionCode.common_error_params_code);
//        }
//        baseRoleDO.setStatus(-1);
//        this.baseRoleDao.save(baseRoleDO);
//    }
//
//    /**
//     * 删除某一saasId相关的所有role
//     * @param saasId
//     */
//    @Transactional
//    public void deleteBaseRolesBySaasId(String saasId){
//        if (StringUtils.isEmpty(saasId)) {
//            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_is_null, ExceptionCode.common_error_params_code);
//        }
//        List<BaseRoleDO> list = this.baseRoleDao.findAllBySaasId(saasId);
//        for(BaseRoleDO baseRoleDO:list){
//            baseRoleDO.setStatus(-1);
//        }
//        this.baseRoleDao.save(list);
//    }
//
//    /**
//     * 根据saasId和name删除角色
//     * @param saasId
//     * @param name
//     */
//    @Transactional
//    public void deleteBaseRoleByNameAndSaasId(String saasId,String name){
//        BaseRoleDO baseRoleDO = this.findBySaasIdAndName(saasId,name);
//        baseRoleDO.setStatus(-1);
//        this.baseRoleDao.save(baseRoleDO);
//    }
//}
package com.yihu.jw.business.user.service;
import com.netflix.discovery.converters.Auto;
import com.yihu.base.mysql.query.BaseJpaService;
import com.yihu.jw.base.user.BaseRoleDO;
import com.yihu.jw.business.user.dao.BaseRoleDao;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.exception.code.ExceptionCode;
import com.yihu.jw.rm.base.BaseUserRequestMapping;
import net.bytebuddy.implementation.bytecode.Throw;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.List;
/**
 * Created by LiTaohong on 2017/11/28.
 * 基础角色功能
 */
@Service
public class BaseRoleService extends BaseJpaService<BaseRoleDO,BaseRoleDao>{
    @Autowired
    private BaseRoleDao baseRoleDao;
    /**
     * 创建role
     * @param baseRoleDO
     * @return
     */
    @Transactional
    public BaseRoleDO createBaseRole(BaseRoleDO baseRoleDO){
        if (StringUtils.isEmpty(baseRoleDO.getId())) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_is_null, ExceptionCode.common_error_params_code);
        }
        if (StringUtils.isEmpty(baseRoleDO.getSaasId())) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_is_null, ExceptionCode.common_error_params_code);
        }
        if (StringUtils.isEmpty(baseRoleDO.getName())) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_name_is_null, ExceptionCode.common_error_params_code);
        }
        return this.baseRoleDao.save(baseRoleDO);
    }
    /**
     * 更新role
     * @param baseRoleDO
     * @return
     */
    @Transactional
    public BaseRoleDO updateBaseRole(BaseRoleDO baseRoleDO){
        if (StringUtils.isEmpty(baseRoleDO.getId())) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_is_null, ExceptionCode.common_error_params_code);
        }
        if (StringUtils.isEmpty(baseRoleDO.getSaasId())) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_is_null, ExceptionCode.common_error_params_code);
        }
        return this.baseRoleDao.save(baseRoleDO);
    }
    /**
     * 根据roleId查询role
     * @param id
     * @return
     */
    public BaseRoleDO findById(String id){
        if (StringUtils.isEmpty(id)) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_is_null,ExceptionCode.common_error_params_code);
        }
        BaseRoleDO baseRoleDO = this.baseRoleDao.findOneById(id);
        if (null == baseRoleDO) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_no_exist,ExceptionCode.common_error_params_code);
        }
        return baseRoleDO;
    }
    /**
     * 查询某要saasId平台下的所有role
     * @param saasId
     * @return
     */
    public List<BaseRoleDO> findAllBySaasId(String saasId){
        if (StringUtils.isEmpty(saasId)) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_param_saasid_is_null,ExceptionCode.common_error_params_code);
        }
        List<BaseRoleDO> list = this.baseRoleDao.findAllBySaasId(saasId);
        if (null == list || list.size() == 0) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_no_exist,ExceptionCode.common_error_params_code);
        }
        return list;
    }
    /**
     * 查找某一平台下某一个role
     * @param saasId
     * @param name
     * @return
     */
    public BaseRoleDO findBySaasIdAndName(String saasId,String name){
        if (StringUtils.isEmpty(saasId)) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_param_saasid_is_null,ExceptionCode.common_error_params_code);
        }
        if (StringUtils.isEmpty(name)) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_name_is_null,ExceptionCode.common_error_params_code);
        }
        BaseRoleDO baseRoleDO = this.baseRoleDao.findOneBySaasIdAndName(name,saasId);
        if (null == baseRoleDO) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_role_no_exist,ExceptionCode.common_error_params_code);
        }
        return baseRoleDO;
    }
    /**
     * 根据name查询所有的role,包括不同平台saasid的
     * @param name
     * @return
     */
    public List<BaseRoleDO> getRoleListByName(String name){
        if (StringUtils.isEmpty(name)) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_param_name_is_null,ExceptionCode.common_error_params_code);
        }
        List<BaseRoleDO> list = this.baseRoleDao.findAllByName(name);
        if (null == list || list.size() == 0) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_role_no_exist,ExceptionCode.common_error_params_code);
        }
        return list;
    }
    /**
     * 根据roleId删除role
     * @param baseRoleDO
     */
    @Transactional
    public void deleteBaseRole(BaseRoleDO baseRoleDO){
        if (StringUtils.isEmpty(baseRoleDO.getId())) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_id_is_null, ExceptionCode.common_error_params_code);
        }
        if (StringUtils.isEmpty(baseRoleDO.getSaasId())) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_is_null, ExceptionCode.common_error_params_code);
        }
        baseRoleDO.setStatus(-1);
        this.baseRoleDao.save(baseRoleDO);
    }
    /**
     * 删除某一saasId相关的所有role
     * @param saasId
     */
    @Transactional
    public void deleteBaseRolesBySaasId(String saasId){
        if (StringUtils.isEmpty(saasId)) {
            throw new ApiException(BaseUserRequestMapping.BaseRole.message_fail_saasid_is_null, ExceptionCode.common_error_params_code);
        }
        List<BaseRoleDO> list = this.baseRoleDao.findAllBySaasId(saasId);
        for(BaseRoleDO baseRoleDO:list){
            baseRoleDO.setStatus(-1);
        }
        this.baseRoleDao.save(list);
    }
    /**
     * 根据saasId和name删除角色
     * @param saasId
     * @param name
     */
    @Transactional
    public void deleteBaseRoleByNameAndSaasId(String saasId,String name){
        BaseRoleDO baseRoleDO = this.findBySaasIdAndName(saasId,name);
        baseRoleDO.setStatus(-1);
        this.baseRoleDao.save(baseRoleDO);
    }
    /**
     * 根据phone(账号)和saasId查询角色列表
     * @param phone
     * @param saasId
     * @return
     */
    public List<BaseRoleDO> findByPhoneAndSaasId(String phone,String saasId){
        return this.baseRoleDao.findByPhoneAndSaasId(phone,saasId);
    }
}

+ 3 - 6
svr/svr-base/src/main/java/com/yihu/jw/business/user/service/EmployService.java

@ -6,6 +6,7 @@ import com.yihu.jw.base.user.BaseRoleDO;
import com.yihu.jw.business.user.dao.EmployDao;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.exception.code.ExceptionCode;
import com.yihu.jw.restmodel.common.base.BaseEnvelopStatus;
import com.yihu.jw.rm.base.BaseUserRequestMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.*;
@ -90,14 +91,10 @@ public class EmployService extends BaseJpaService<BaseEmployDO,EmployDao> {
     * @param saasId
     * @return
     */
//    @Cacheable(value = "employ#600#300",key = "#employeeDO.id")
    public BaseEmployDO findByPhoneAndSaasId(String phone,String saasId){
        if (StringUtils.isEmpty(phone)) {
            throw new ApiException(BaseUserRequestMapping.BaseEmploy.message_fail_id_is_null,ExceptionCode.common_error_params_code);
        }
    public BaseEmployDO findByPhoneAndSaasId(String phone,String saasId) throws ApiException{
        BaseEmployDO BaseEmployDO = this.employDao.findByPhoneAndSaasId(phone,saasId);
        if (null == BaseEmployDO) {
            throw new ApiException(BaseUserRequestMapping.BaseEmploy.message_fail_id_no_exist,ExceptionCode.common_error_params_code);
            throw new ApiException(BaseEnvelopStatus.status_10100.getName(), BaseEnvelopStatus.status_10100.getCode());
        }
        return BaseEmployDO;
    }

+ 10 - 4
svr/svr-base/src/main/java/com/yihu/jw/config/jpa/HibernateProperties.java

@ -1,9 +1,13 @@
package com.yihu.jw.config.jpa;
import org.hibernate.EmptyInterceptor;
import org.hibernate.Interceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Properties;
/**
@ -20,17 +24,19 @@ public class HibernateProperties {
//    private String naming_strategy;
    @Value("${hibernate.physical_naming_strategy}")
    private String  physical_naming_strategy;
    private String physical_naming_strategy;
    @Value("${hibernate.implicit_naming_strategy}")
    private String implicit_naming_strategy;
    @Autowired
    private List<Interceptor> interceptors;
    public  Properties hibProperties() {
    public Properties hibProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.dialect",dialect);
        properties.put("hibernate.dialect", dialect);
        properties.put("hibernate.show_sql", show_sql);
        properties.put("hibernate.physical_naming_strategy", physical_naming_strategy);
        properties.put("hibernate.implicit_naming_strategy", implicit_naming_strategy);
        properties.put("hibernate.ejb.interceptor", interceptors.get(0));
        return properties;
    }
}

+ 24 - 13
svr/svr-base/src/main/resources/application.yml

@ -2,21 +2,22 @@
spring:
  application:
    name: svr-base  #注册到发现服务的id 如果id一样 eurika会自动做负载
#  jmx:
#    default-domain: svr-base
  jmx:
    default-domain: svr-base
    enabled: true
  data:
    elasticsearch:
      cluster-name: jkzl #es集群的名字
      cluster-nodes: 172.19.103.68:9300  #多个逗号分割
      cluster-nodes-jest: http://172.19.103.68:9200  #多个逗号分割
      repositories:
        enabled: false
      properties:
        client:
          transport:
            sniff: false #开启嗅探集群  用nginx代理一层过后会出现ip解析失败问题
#  data:
#    elasticsearch:
#      cluster-name: jkzl #es集群的名字
#      cluster-nodes: 172.19.103.68:9300  #多个逗号分割
#      cluster-nodes-jest: http://172.19.103.68:9200  #多个逗号分割
#      repositories:
#        enabled: true
#      properties:
#        client:
#          transport:
#            sniff: false #开启嗅探集群  用nginx代理一层过后会出现ip解析失败问题
@ -32,7 +33,17 @@ endpoints:
  info:
    enabled: true
yihu:
  admin:
    client:
      advice:
        http: true #默认true
        sql:
          hibernate: true ##默认false
          springJDBC: true ##默认false
      server:
        ip: 192.168.131.102
        port: 8082
---
spring:

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

@ -28,7 +28,7 @@ eureka:
    serviceUrl:
      #http://账号:密码@127.0.0.1:8761/eureka/
#      defaultZone: http://jw:jkzl@172.19.103.33:8761//eureka/
      defaultZone: http://jw:jkzl@192.168.131.131:8761/eureka/
      defaultZone: http://jw:jkzl@192.168.131.102:8761/eureka/
---
spring:

+ 0 - 0
svr/svr-demo/pom.xml


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor