LiTaohong 7 年 前
コミット
8af6699cb7
100 ファイル変更4961 行追加268 行削除
  1. 8 7
      app/app-iot-server/pom.xml
  2. 4 0
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/common/BaseController.java
  3. 129 37
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/common/FileUploadController.java
  4. 1 1
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/device/IotDeviceController.java
  5. 1 0
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/security/config/EhrWebSecurityConfiguration.java
  6. 66 58
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/common/FileUploadService.java
  7. 2 2
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/common/SystemDictService.java
  8. 17 15
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/company/CompanyService.java
  9. 24 7
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/device/DeviceService.java
  10. 7 5
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/product/ProductService.java
  11. 32 5
      app/app-iot-server/src/main/resources/application.yml
  12. 2 2
      app/public-health-server/pom.xml
  13. 3 2
      common-lib-parent-pom/pom.xml
  14. 2 2
      common/common-entity/pom.xml
  15. 10 0
      common/common-entity/src/main/java/com/yihu/jw/base/base/SaasDO.java
  16. 10 10
      common/common-entity/src/main/java/com/yihu/jw/base/sms/BaseSmsDO.java
  17. 38 0
      common/common-entity/src/main/java/com/yihu/jw/base/user/BaseEmployDO.java
  18. 9 0
      common/common-entity/src/main/java/com/yihu/jw/base/user/BaseRoleDO.java
  19. 127 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/AccountDO.java
  20. 108 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ActivityDO.java
  21. 48 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ActivityRuleDO.java
  22. 171 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/CreditsDetailDO.java
  23. 77 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ExchangeGoodsDO.java
  24. 119 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/GoodsDO.java
  25. 116 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskDO.java
  26. 93 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskDetailDO.java
  27. 49 0
      common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskRuleDO.java
  28. 217 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientHospitalRecordDO.java
  29. 87 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientLabelDO.java
  30. 77 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientLabelInfoDO.java
  31. 77 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistArticleDO.java
  32. 117 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistConsultDO.java
  33. 108 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistDO.java
  34. 200 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistPatientRelationDO.java
  35. 5 4
      common/common-entity/src/main/java/com/yihu/jw/iot/device/IotDeviceOrderDO.java
  36. 101 0
      common/common-entity/src/main/java/com/yihu/jw/rehabilitation/RehabilitationInformationDO.java
  37. 81 0
      common/common-entity/src/main/java/com/yihu/jw/rehabilitation/RehabilitationPerformanceDO.java
  38. 71 0
      common/common-entity/src/main/java/com/yihu/jw/rehabilitation/RehabilitationPlanningDO.java
  39. 68 0
      common/common-entity/src/main/java/com/yihu/jw/rehabilitation/RehabilitationTreatmentProgramDO.java
  40. 7 2
      common/common-exception/pom.xml
  41. 52 0
      common/common-exception/src/main/java/com/yihu/jw/exception/advice/MyControllerAdvice.java
  42. 7 4
      common/common-fegin/pom.xml
  43. 1 1
      common/common-fegin/src/main/java/com/yihu/jw/fegin/DemoFeign.java
  44. 6 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/base/SaasFeign.java
  45. 52 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/login/LoginFeign.java
  46. 34 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/sms/RegisterSmsFeign.java
  47. 15 9
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/user/BaseRoleFeign.java
  48. 7 2
      common/common-fegin/src/main/java/com/yihu/jw/fegin/base/user/EmployFeign.java
  49. 25 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/common/security/LoginSmsFeign.java
  50. 69 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/base/LoginFeignFallbackFactory.java
  51. 5 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/base/SaasFeignFallbackFactory.java
  52. 5 0
      common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/user/BaseRoleFeignFallbackFactory.java
  53. 6 2
      common/common-fegin/src/main/java/com/yihu/jw/fegin/fallbackfactory/base/user/EmployeeFeignFallbackFactory.java
  54. 2 2
      common/common-request-mapping/pom.xml
  55. 5 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseLoginRequestMapping.java
  56. 15 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseSecurityRequestMapping.java
  57. 1 1
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseSmsRequestMapping.java
  58. 1 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseUserRequestMapping.java
  59. 37 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/health/bank/HealthBankMapping.java
  60. 75 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/rehabilitation/RehabilitationRequestMapping.java
  61. 20 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/specialist/SpecialistMapping.java
  62. 3 2
      common/common-rest-model/pom.xml
  63. 8 8
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/Envelop.java
  64. 0 3
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/EnvelopList.java
  65. 4 19
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/EnvelopPage.java
  66. 2 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/EnvelopRestController.java
  67. 10 34
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/base/BaseEnvelop.java
  68. 42 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/base/BaseEnvelopStatus.java
  69. 1 1
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotDeviceOrderVO.java
  70. 91 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/rehabilitation/RehabilitationInformationVO.java
  71. 71 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/rehabilitation/RehabilitationPerformanceVO.java
  72. 63 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/rehabilitation/RehabilitationPlanningVO.java
  73. 57 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/rehabilitation/RehabilitationTreatmentProgramVO.java
  74. 64 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/specialist/PatientRelationVO.java
  75. 166 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/specialist/SpecialistPatientRelationVO.java
  76. 33 2
      common/common-util/pom.xml
  77. 168 0
      common/common-util/src/main/java/com/yihu/jw/util/common/ConvertToSpellUtils.java
  78. 148 0
      common/common-util/src/main/java/com/yihu/jw/util/common/IdCardUtil.java
  79. 8 3
      common/common-util/src/main/java/com/yihu/jw/util/common/LatitudeUtils.java
  80. 43 0
      common/common-util/src/main/java/com/yihu/jw/util/common/MobileUtils.java
  81. 58 0
      common/common-util/src/main/java/com/yihu/jw/util/common/NetworkUtil.java
  82. 39 0
      common/common-util/src/main/java/com/yihu/jw/util/common/SmsValidateCodeUtils.java
  83. 221 0
      common/common-util/src/main/java/com/yihu/jw/util/http/HttpClientUtil.java
  84. 72 0
      common/common-util/src/main/java/com/yihu/jw/vo/ValidateCode.java
  85. 94 0
      server/svr-admin-server/pom.xml
  86. 4 0
      server/svr-admin-server/readme.MD
  87. 25 0
      server/svr-admin-server/src/main/java/com.yihu.admin/AdminServer.java
  88. 48 0
      server/svr-admin-server/src/main/java/com.yihu.admin/config/NotifierConfig.java
  89. 133 0
      server/svr-admin-server/src/main/java/com.yihu.admin/email/JKZLMailNotifier.java
  90. 40 0
      server/svr-admin-server/src/main/resources/application.yml
  91. 27 0
      server/svr-admin-server/src/main/resources/bootstrap.yml
  92. 4 0
      server/svr-admin-server/src/main/resources/logback.xml
  93. 5 5
      server/svr-configuration/pom.xml
  94. 9 2
      server/svr-configuration/src/main/resources/application.yml
  95. 9 6
      server/svr-configuration/src/main/resources/bootstrap.yml
  96. 7 2
      server/svr-discovery/pom.xml
  97. 185 0
      server/svr-discovery/src/main/java/com.yihu.jw/controller/DiscoveryController.java
  98. 1 1
      server/svr-discovery/src/main/resources/application.yml
  99. 69 0
      server/svr-yihu-admin-server/pom.xml
  100. 0 0
      server/svr-yihu-admin-server/readme.MD

+ 8 - 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>

+ 4 - 0
app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/common/BaseController.java

@ -2,8 +2,10 @@ package com.yihu.ehr.iot.controller.common;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.util.rest.Envelop;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -18,6 +20,8 @@ public class BaseController {
    protected String clientId;
    @Value("${server.contextPath}")
    protected String contextPath;
    @Autowired
    protected HttpServletRequest request;
    public Envelop failed(String errMsg) {
        Envelop envelop = new Envelop();

+ 129 - 37
app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/common/FileUploadController.java

@ -2,6 +2,7 @@ package com.yihu.ehr.iot.controller.common;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.base.fastdfs.FastDFSHelper;
import com.yihu.ehr.iot.service.common.FileUploadService;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.common.UploadVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
@ -13,11 +14,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.URLDecoder;
import java.util.Base64;
import java.util.Map;
/**
 * @author yeshijie on 2017/12/7.
@ -31,6 +34,10 @@ public class FileUploadController extends BaseController {
    private FastDFSHelper fastDFSHelper;
    @Value("${fast-dfs.public-server}")
    private String fastdfs_file_url;
    @Autowired
    private FileUploadService fileUploadService;
    @Value("${neiwang.enable}")
    private Boolean isneiwang;  //如果不是内网项目要转到到内网在上传
    @PostMapping(value = IotRequestMapping.FileUpload.api_upload_stream_img)
    @ApiOperation(value = "文件流上传图片", notes = "文件流上传图片")
@ -56,13 +63,22 @@ public class FileUploadController extends BaseController {
            String fileName = fullName.substring(0, fullName.lastIndexOf("."));
            //上传到fastdfs
            ObjectNode objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, "");
            ObjectNode objectNode = null;
            //解析返回的objectNode
            UploadVO uploadVO = new UploadVO();
            uploadVO.setFileName(fileName);
            uploadVO.setFileType(fileType);
            uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", ""));
            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", ""));
            UploadVO uploadVO = null;
            if(isneiwang){
                objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, "");
                uploadVO = new UploadVO();
                uploadVO.setFileName(fileName);
                uploadVO.setFileType(fileType);
                uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", ""));
                uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", ""));
            }else {
                uploadVO = fileUploadService.request(request,file.getInputStream(),fullName);
                if(uploadVO==null){
                    return Envelop.getError("文件上传失败",IotRequestMapping.api_iot_fail);
                }
            }
            return Envelop.getSuccess(IotRequestMapping.Common.message_success_create, uploadVO);
        }catch (Exception e){
            e.printStackTrace();
@ -95,13 +111,23 @@ public class FileUploadController extends BaseController {
            String fileName = fullName.substring(0, fullName.lastIndexOf("."));
            //上传到fastdfs
            ObjectNode objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, "");
            ObjectNode objectNode = null;
            //解析返回的objectNode
            UploadVO uploadVO = new UploadVO();
            uploadVO.setFileName(fileName);
            uploadVO.setFileType(fileType);
            uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", ""));
            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", ""));
            UploadVO uploadVO = null;
            if(isneiwang){
                objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, "");
                uploadVO = new UploadVO();
                uploadVO.setFileName(fileName);
                uploadVO.setFileType(fileType);
                uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", ""));
                uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", ""));
            }else {
                uploadVO = fileUploadService.request(request,file.getInputStream(),fullName);
                if(uploadVO==null){
                    return Envelop.getError("文件上传失败",IotRequestMapping.api_iot_fail);
                }
            }
            return Envelop.getSuccess(IotRequestMapping.Common.message_success_create, uploadVO);
        }catch (Exception e){
            e.printStackTrace();
@ -119,13 +145,23 @@ public class FileUploadController extends BaseController {
            String fileType = fullName.substring(fullName.lastIndexOf(".") + 1).toLowerCase();
            String fileName = fullName.substring(0, fullName.lastIndexOf("."));
            //上传到fastdfs
            ObjectNode objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, "");
            ObjectNode objectNode = null;
            //解析返回的objectNode
            UploadVO uploadVO = new UploadVO();
            uploadVO.setFileName(fileName);
            uploadVO.setFileType(fileType);
            uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", ""));
            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", ""));
            UploadVO uploadVO = null;
            if(isneiwang){
                objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, "");
                uploadVO = new UploadVO();
                uploadVO.setFileName(fileName);
                uploadVO.setFileType(fileType);
                uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", ""));
                uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", ""));
            }else {
                uploadVO = fileUploadService.request(request,file.getInputStream(),fullName);
                if(uploadVO==null){
                    return Envelop.getError("文件上传失败",IotRequestMapping.api_iot_fail);
                }
            }
            return Envelop.getSuccess(IotRequestMapping.Common.message_success_create, uploadVO);
        } catch (Exception e) {
            e.printStackTrace();
@ -143,25 +179,28 @@ public class FileUploadController extends BaseController {
            String is = URLDecoder.decode(fileStreams[1],"UTF-8").replace(" ","+");
            byte[] in = Base64.getDecoder().decode(is);
            String pictureName = fileStreams[0].substring(0,fileStreams[0].length()-1);
            String fileExtension = pictureName.substring(pictureName.lastIndexOf(".") + 1).toLowerCase();
            String description = null;
            if ((pictureName != null) && (pictureName.length() > 0)) {
                int dot = pictureName.lastIndexOf('.');
                if ((dot > -1) && (dot < (pictureName.length()))) {
                    description = pictureName.substring(0, dot);
                }
            }
            InputStream inputStream = new ByteArrayInputStream(in);
            ObjectNode objectNode = fastDFSHelper.upload(inputStream, "png", "");
            String groupName = objectNode.get("groupName").toString();
            String remoteFileName = objectNode.get("remoteFileName").toString();
            ObjectNode objectNode = null;
            //上传到fastdfs
            String fileType = "png";
            //解析返回的objectNode
            UploadVO uploadVO = new UploadVO();
            uploadVO.setFileName(remoteFileName);
            uploadVO.setFileType(groupName);
            uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", ""));
            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", ""));
            UploadVO uploadVO = null;
            if(isneiwang){
                objectNode = fastDFSHelper.upload(inputStream, fileType, "");
                String groupName = objectNode.get("groupName").toString();
                String remoteFileName = objectNode.get("remoteFileName").toString();
                uploadVO = new UploadVO();
                uploadVO.setFileName(remoteFileName);
                uploadVO.setFileType(groupName);
                uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", ""));
                uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", ""));
            }else {
                uploadVO = fileUploadService.request(request,inputStream,"");
                if(uploadVO ==null){
                    return Envelop.getError("文件上传失败",IotRequestMapping.api_iot_fail);
                }
            }
            //返回文件路径
            return Envelop.getSuccess(IotRequestMapping.FileUpload.message_success_upload, uploadVO);
        }catch (Exception e){
@ -170,4 +209,57 @@ public class FileUploadController extends BaseController {
        }
    }
    @RequestMapping(value = "commonUpload", method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation("公共的文件上传")
    public Envelop<UploadVO> commonUpload(HttpServletRequest request) {
        InputStream in = null;
        try {
            String paths = request.getParameter("filePaths");
            ObjectNode result = null;
            if (StringUtils.isBlank(paths)) {
                //为空是文件上传
                MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
                // 文件保存的临时路径
                Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
                String fileName = null;
                for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
                    // 上传文件
                    MultipartFile mf = entity.getValue();
                    fileName = mf.getOriginalFilename();
                    in = mf.getInputStream();
                    result = fastDFSHelper.upload(in, fileName.substring(fileName.lastIndexOf(".") + 1), "");
                }
            } else {
                String[] pathArr = paths.split(",");
                for (String path : pathArr) {
                    //传路径自己去路径上传
                    File file = new File(path);
                    String fileName = null;
                    if (file.exists()) {
                        fileName = file.getName();
                        in = new FileInputStream(file);
                        result = fastDFSHelper.upload(in, fileName.substring(fileName.lastIndexOf(".") + 1), "");
                    }
                }
            }
            //解析返回的objectNode
            UploadVO uploadVO = new UploadVO();
            uploadVO.setFullUri(result.get("fid").toString().replaceAll("\"", ""));
            uploadVO.setFullUrl(fastdfs_file_url + result.get("fid").toString().replaceAll("\"", ""));
            return Envelop.getSuccess(IotRequestMapping.FileUpload.message_success_upload, result);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(IotRequestMapping.FileUpload.message_fail_upload, IotRequestMapping.api_iot_fail);
        }finally {
            if(in!=null){
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

+ 1 - 1
app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/device/IotDeviceController.java

@ -164,7 +164,7 @@ public class IotDeviceController extends BaseController{
                                          @ApiParam(name = "purcharseId", value = "采购id", defaultValue = "")
                                          @RequestParam(value = "purcharseId", required = true) String purcharseId) {
        try {
            return deviceService.uploadStream(file,purcharseId);
            return deviceService.uploadStream(file,purcharseId,request);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(IotRequestMapping.FileUpload.message_fail_upload, IotRequestMapping.api_iot_fail);

+ 1 - 0
app/app-iot-server/src/main/java/com/yihu/ehr/iot/security/config/EhrWebSecurityConfiguration.java

@ -74,6 +74,7 @@ public class EhrWebSecurityConfiguration extends WebSecurityConfigurerAdapter {
                .antMatchers("/front/views/signin.html").permitAll()
                .antMatchers("/login/**").permitAll()
                .antMatchers("/svr-iot/wlyy/**").permitAll()//健康监测平台没有做登录(这里添加免登录验证)
                .antMatchers("/svr-iot/fileUpload/commonUpload").permitAll()//公共的文件上传(这里添加免登录验证)
                .antMatchers("/front/views/**").hasRole("USER")
                .antMatchers("/**").hasRole("USER")
                .and().formLogin().loginPage("/login")

+ 66 - 58
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/common/FileUploadService.java

@ -1,18 +1,22 @@
package com.yihu.ehr.iot.service.common;
import com.yihu.ehr.iot.constant.ServiceApi;
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.alibaba.fastjson.JSONObject;
import com.yihu.jw.restmodel.iot.common.UploadVO;
import io.swagger.annotations.ApiParam;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.io.InputStream;
import java.nio.charset.Charset;
/**
 * @author yeshijie on 2017/12/7.
@ -20,60 +24,64 @@ import java.util.Map;
@Service
public class FileUploadService extends BaseService{
    /**
     * 文件流上传图片
     * @param file
     * @return
     */
    public Envelop<UploadVO> uploadImg(MultipartFile file) throws IOException{
        Map<String, Object> params = new HashMap<>();
        params.put("file", file);
        HttpResponse response = HttpHelper.post(iotUrl + ServiceApi.FileUpload.UploadImg, params);
        Envelop<UploadVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }
    @Value("${neiwang.wlyy}")
    private String neiwangWlyy;  //内网的项目地址
    /**
     * 文件流上传附件
     * @param file
     * @return
     * @throws Exception
     */
    public Envelop<UploadVO> uploadAttachment(MultipartFile file) throws Exception{
        Map<String, Object> params = new HashMap<>();
        params.put("file", file);
        HttpResponse response = HttpHelper.post(iotUrl + ServiceApi.FileUpload.UploadattAchment, params);
        Envelop<UploadVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }
    /**
     * 文件流上传文件
     * @param file
     * 通用的文件上传
     * @param request
     * @param in
     * @param fileName
     * @return
     * @throws Exception
     */
    public Envelop<UploadVO> uploadStream(MultipartFile file) throws Exception {
        Map<String, Object> params = new HashMap<>();
        params.put("file", file);
        HttpResponse response = HttpHelper.post(iotUrl + ServiceApi.FileUpload.UploadStream, params);
        Envelop<UploadVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }
    public UploadVO request(HttpServletRequest request, InputStream in, String fileName) {
        String url = neiwangWlyy + "/svr-iot/fileUpload/commonUpload";//uri请求路径 http://172.19.103.88/wlyy/upload/chat
    /**
     * base64上传图片
     * @param jsonData
     * @return
     * @throws Exception
     */
    public Envelop<UploadVO> uploadImages(@ApiParam(name = "jsonData", value = "头像转化后的输入流") @RequestBody String jsonData) throws Exception {
        Map<String, Object> params = new HashMap<>();
        params.put("jsonData", jsonData);
        HttpResponse response = HttpHelper.post(iotUrl + ServiceApi.FileUpload.UploadString, params);
        Envelop<UploadVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        String result = "";
        UploadVO uploadVO = null;
        try {
            HttpPost httpPost = new HttpPost(url);
            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
            builder.addBinaryBody("file", in, ContentType.MULTIPART_FORM_DATA, fileName);// 文件流
            builder.addTextBody("filename", fileName);// 类似浏览器表单提交,对应input的name和value
            if (!org.springframework.util.StringUtils.isEmpty(request.getParameter("type"))) {
                builder.addTextBody("type", request.getParameter("type")); //发送类型
            }
            HttpEntity entity = builder.build();
            httpPost.setEntity(entity);
            HttpResponse response = httpClient.execute(httpPost);// 执行提交
            HttpEntity responseEntity = response.getEntity();
            if (responseEntity != null) {
                // 将响应内容转换为字符串
                result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8"));
            }
            JSONObject jsonObject = JSONObject.parseObject(result);
            if(jsonObject.getInteger("status")==200){
                JSONObject obj = jsonObject.getJSONObject("obj");
                uploadVO = new UploadVO();
                uploadVO.setFileName(obj.getString("groupName"));
                uploadVO.setFileType(obj.getString("remoteFileName"));
                uploadVO.setFullUri(obj.getString("fid"));
                uploadVO.setFullUrl(obj.getString("fileUrl"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                httpClient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return uploadVO;
    }
}

+ 2 - 2
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/common/SystemDictService.java

@ -57,13 +57,13 @@ public class SystemDictService extends BaseService{
                envelop.setStatus(200);
            }else {
                envelop.setStatus(-1);
                envelop.setErrorMsg(result.getErrorMsg());
                envelop.setMessage(result.getErrorMsg());
            }
            return envelop;
        } catch (Exception e) {
            e.printStackTrace();
            envelop.setStatus(-1);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            envelop.setMessage(ErrorCode.SystemError.toString());
            return envelop;
        }
    }

+ 17 - 15
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/company/CompanyService.java

@ -11,6 +11,7 @@ import com.yihu.ehr.iot.util.http.HttpResponse;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.company.IotCompanyCertificateVO;
import com.yihu.jw.restmodel.iot.company.IotCompanyVO;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -24,7 +25,8 @@ import java.util.Map;
@Service
public class CompanyService extends BaseService {
    private String roleId = "10268";//物联网默认用户角色
    @Value("${ehr.user.roleId}")
    private String roleId;//物联网默认用户角色
    /**
     * 分页查找企业
@ -68,34 +70,34 @@ public class CompanyService extends BaseService {
        Result login_code = existence("login_code",iotCompany.getAccount());
        if(login_code.isSuccessFlg()){
            envelop.setStatus(-1);
            envelop.setErrorMsg("该账号已存在");
            envelop.setMessage("该账号已存在");
            return envelop;
        }
        //验证身份证
        Result id_card_no = existence("id_card_no",iotCompany.getContactsIdcard());
        if(id_card_no.isSuccessFlg()){
            envelop.setStatus(-1);
            envelop.setErrorMsg("该身份证号已被注册,请确认。");
            envelop.setMessage("该身份证号已被注册,请确认。");
            return envelop;
        }
        //验证邮件
        Result email = existence("email",iotCompany.getContactsEmail());
        if(email.isSuccessFlg()){
            envelop.setStatus(-1);
            envelop.setErrorMsg("该邮箱已存在");
            envelop.setMessage("该邮箱已存在");
            return envelop;
        }
        //验证手机号
        Result telephone = existence("telephone",iotCompany.getContactsMobile());
        if(telephone.isSuccessFlg()){
            envelop.setStatus(-1);
            envelop.setErrorMsg("该手机号码已存在");
            envelop.setMessage("该手机号码已存在");
            return envelop;
        }
        Envelop<UserModel> userModelEnvelop = updateUser(iotCompany);
        if(userModelEnvelop.getStatus()!=200){
            envelop.setStatus(-1);
            envelop.setErrorMsg(userModelEnvelop.getErrorMsg());
            envelop.setMessage(userModelEnvelop.getMessage());
            return envelop;
        }
@ -115,22 +117,22 @@ public class CompanyService extends BaseService {
    private Envelop<IotCompanyVO> userVerification(IotCompanyVO iotCompany,Envelop<IotCompanyVO> envelop){
        if(StringUtils.isEmpty(iotCompany.getAccount())){
            envelop.setStatus(-1);
            envelop.setErrorMsg("账号不能为空");
            envelop.setMessage("账号不能为空");
            return envelop;
        }
        if(StringUtils.isEmpty(iotCompany.getContactsIdcard())){
            envelop.setStatus(-1);
            envelop.setErrorMsg("身份证号不能为空");
            envelop.setMessage("身份证号不能为空");
            return envelop;
        }
        if(StringUtils.isEmpty(iotCompany.getContactsEmail())){
            envelop.setStatus(-1);
            envelop.setErrorMsg("邮箱不能为空");
            envelop.setMessage("邮箱不能为空");
            return envelop;
        }
        if(StringUtils.isEmpty(iotCompany.getContactsMobile())){
            envelop.setStatus(-1);
            envelop.setErrorMsg("手机号码账号不能为空");
            envelop.setMessage("手机号码账号不能为空");
            return envelop;
        }
@ -189,13 +191,13 @@ public class CompanyService extends BaseService {
                envelop.setStatus(200);
            }else {
                envelop.setStatus(-1);
                envelop.setErrorMsg(result.getErrorMsg());
                envelop.setMessage(result.getErrorMsg());
            }
            return envelop;
        } catch (Exception e) {
            e.printStackTrace();
            envelop.setStatus(-1);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            envelop.setMessage(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
@ -217,16 +219,16 @@ public class CompanyService extends BaseService {
            ObjectResult result = toModel(response.getBody(),ObjectResult.class);
            if(result.isSuccessFlg()){
                envelop.setStatus(200);
                envelop.setSuccessMsg("修改成功");
                envelop.setMessage("修改成功");
            }else {
                envelop.setStatus(-1);
                envelop.setErrorMsg(result.getErrorMsg());
                envelop.setMessage(result.getErrorMsg());
            }
            return envelop;
        } catch (Exception e) {
            e.printStackTrace();
            envelop.setStatus(-1);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            envelop.setMessage(ErrorCode.SystemError.toString());
            return envelop;
        }
    }

+ 24 - 7
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/device/DeviceService.java

@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.base.fastdfs.FastDFSHelper;
import com.yihu.ehr.iot.constant.ServiceApi;
import com.yihu.ehr.iot.service.common.BaseService;
import com.yihu.ehr.iot.service.common.FileUploadService;
import com.yihu.ehr.iot.util.excel.AExcelReader;
import com.yihu.ehr.iot.util.excel.reader.IotDeviceImportVOReader;
import com.yihu.ehr.iot.util.http.HttpHelper;
@ -13,13 +14,16 @@ import com.yihu.ehr.iot.util.http.HttpResponse;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.iot.common.ExistVO;
import com.yihu.jw.restmodel.iot.common.UploadVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
@ -33,6 +37,10 @@ public class DeviceService extends BaseService{
    @Autowired
    private FastDFSHelper fastDFSHelper;
    @Value("${neiwang.enable}")
    private Boolean isneiwang;  //如果不是内网项目要转到到内网在上传
    @Autowired
    private FileUploadService fileUploadService;
    /**
     * 创建设备
@ -186,7 +194,7 @@ public class DeviceService extends BaseService{
     * @return
     * @throws IOException
     */
    public Envelop<IotDeviceImportRecordVO> uploadStream(MultipartFile file,String purcharseId) throws Exception {
    public Envelop<IotDeviceImportRecordVO> uploadStream(MultipartFile file,String purcharseId,HttpServletRequest request) throws Exception {
        String res = isImporting(purcharseId);
        JSONObject json = JSON.parseObject(res);
        if(json.getInteger("status")==200){
@ -208,22 +216,31 @@ public class DeviceService extends BaseService{
        String fileName = fullName.substring(0, fullName.lastIndexOf("."));
        //上传到fastdfs
        ObjectNode objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, "");
        ObjectNode objectNode = null;
        Map<String, Object> params = params = new HashMap<>();;
        if(isneiwang){
            objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, "");
            params.put("url", objectNode.get("fid").toString().replaceAll("\"", ""));
        }else {
            UploadVO uploadVO = fileUploadService.request(request,file.getInputStream(),fullName);
            if(uploadVO==null){
                return Envelop.getError("文件上传失败");
            }
            params.put("url", uploadVO.getFullUri());
        }
        //解析excel封装对象
        AExcelReader excelReader = new IotDeviceImportVOReader();
        excelReader.read(file.getInputStream());
        List<IotDeviceImportVO> correctLs = excelReader.getCorrectLs();
        Map<String, Object> params = new HashMap<>();
        params.put("purcharseId", purcharseId);
        params.put("jsonData", JSONObject.toJSONString(correctLs));
        params.put("fileName", fileName);
        params.put("url", objectNode.get("fid").toString().replaceAll("\"", ""));
        String ret = HttpHelper.postBody(iotUrl + ServiceApi.Device.ImportDevice,JSONObject.toJSONString(params));
        Envelop<IotDeviceImportRecordVO> envelop = objectMapper.readValue(ret,Envelop.class);
//        HttpResponse response = HttpHelper.post(iotUrl + ServiceApi.Device.ImportDevice, params);
//        Envelop<IotDeviceImportRecordVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }

+ 7 - 5
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/product/ProductService.java

@ -14,6 +14,7 @@ import com.yihu.jw.restmodel.iot.product.IotProductVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
@ -27,9 +28,10 @@ import java.util.Map;
@Service
public class ProductService extends BaseService {
//    @Value("ehr.metadata.domain")
    private String version = "59083976eebd";//版本
    private String reference = "000000065a965615966b3a40c86ceba7";//标准来源
    @Value("${ehr.metadata.version}")
    private String version;//版本 59083976eebd
    @Value("${ehr.metadata.reference}")
    private String reference;//标准来源 000000065a965615966b3a40c86ceba7
    /**
     * 测量数据(ehr标准规范管理-平台标准-标准数据集)
@ -55,13 +57,13 @@ public class ProductService extends BaseService {
                envelop.setStatus(200);
            }else {
                envelop.setStatus(-1);
                envelop.setErrorMsg(result.getErrorMsg());
                envelop.setMessage(result.getErrorMsg());
            }
            return envelop;
        } catch (Exception e) {
            e.printStackTrace();
            envelop.setStatus(-1);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            envelop.setMessage(ErrorCode.SystemError.toString());
            return envelop;
        }
    }

+ 32 - 5
app/app-iot-server/src/main/resources/application.yml

@ -65,9 +65,15 @@ service-gateway:
third:
  wlyy:
    url: http://ehr.yihu.com/wlyy/
    url: http://172.19.103.88:9092/wlyy/
    appid: 915d0345-5b1d-11e6-8344-fa163e8aee61
    appsecret: 915d0345-5b1d-11e6-8344-fa163e8aee57
ehr:
  user:
    roleId: 10268
  metadata:
    version: 59083976eebd
    reference: 000000065a965615966b3a40c86ceba7
fast-dfs:
  tracker-server: 172.19.103.54:22122
@ -75,7 +81,10 @@ fast-dfs:
logging:
  path: /data/logger
  file: app-iot-server
##如果是外网项目就是flase 内网是true
neiwang:
  enable: true
  wlyy: http://localhost:9099/iot/
---
spring:
  profiles: jwtest
@ -95,16 +104,25 @@ service-gateway:
  portalOuterUrl: http://27.154.233.186:10280/api/v1.0/portal
third:
  wlyy:
    url: http://ehr.yihu.com/wlyy/
    url: http://172.19.103.88:9092/wlyy/
    appid: 915d0345-5b1d-11e6-8344-fa163e8aee61
    appsecret: 915d0345-5b1d-11e6-8344-fa163e8aee57
ehr:
  user:
    roleId: 10268
  metadata:
    version: 59083976eebd
    reference: 000000065a965615966b3a40c86ceba7
fast-dfs:
  tracker-server: 172.19.103.54:22122
  public-server: http://172.19.103.54:80/
logging:
  path: /data/logger
  file: app-iot-server
##如果是外网项目就是flase,false会调用内网http接口项目提交  内网是true直接上传fastDfs
neiwang:
  enable: true
  wlyy: http://172.19.103.88:9099/iot/
---
spring:
  profiles: jwprod
@ -126,12 +144,21 @@ third:
    url: http://www.yihu.com/wlyy/
    appid: 915d0345-5b1d-11e6-8344-fa163e8aee61
    appsecret: 915d0345-5b1d-11e6-8344-fa163e8aee57
ehr:
  user:
    roleId: 10268
  metadata:
    version: 59083976eebd
    reference: 000000065a965615966b3a40c86ceba7
fast-dfs:
  tracker-server: 11.1.2.9:22122
  accessUrl: http://11.1.2.9
logging:
  path: /data/logger
  file: app-iot-server
##如果是外网项目就是flase 内网是true
neiwang:
  enable: false
  wlyy: http://59.61.92.90:9099/iot/
#单点登录
#GET http://172.19.103.73:10260/oauth/sso?response_type=token&client_id=uzs5G0HgTp&state=sxy&scope=read&redirect_uri=http://192.168.1.221:8010/ehr/browser/common/login/signin?idCardNo=362321200108017313&user=admin

+ 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>

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

@ -6,14 +6,15 @@
    <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>

+ 2 - 2
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>

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/base/base/SaasDO.java

@ -20,6 +20,7 @@ public class SaasDO extends IdEntityWithOperation implements java.io.Serializabl
	private String name;//名称
	private Integer status;//状态 -1 已删除 0待审核 1审核通过 2 审核不通过
	private String remark;//备注
	private String familyTel;
	// Constructors
	/** default constructor */
@ -53,4 +54,13 @@ public class SaasDO extends IdEntityWithOperation implements java.io.Serializabl
	public void setRemark(String remark) {
		this.remark = remark;
	}
	@Column(name = "family_tel", length = 100)
	public String getFamilyTel() {
		return familyTel;
	}
	public void setFamilyTel(String familyTel) {
		this.familyTel = familyTel;
	}
}

+ 10 - 10
common/common-entity/src/main/java/com/yihu/jw/base/sms/BaseSmsDO.java

@ -21,11 +21,11 @@ public class BaseSmsDO extends IdEntityWithOperation implements java.io.Serializ
	private String mobile;	//电话号码
	private String ip;	//发送短信的ip地址
	private Integer type;	//发送短信的类别
	private String captcha;	//验证码 1微信端注册,2微信端找回密码,3医生端找回密码,4患者登录,5医生登录
	private String captcha;	//验证码 1居民端注册,2居民端找回密码,3医生端找回密码,4居民登录,5医生登录
	private String content;	// 短信内容
	private Date deadline;	//过期时间
	private Integer status;	//短信状态 状态,0未发送,1已发送
	private Date czrq;//操作日期
//	private Date czrq;//操作日期
	// Constructors
@ -133,12 +133,12 @@ public class BaseSmsDO extends IdEntityWithOperation implements java.io.Serializ
		this.status = status;
	}
	@Column(name = "czrq")
	public Date getCzrq() {
		return czrq;
	}
	public void setCzrq(Date czrq) {
		this.czrq = czrq;
	}
//	@Column(name = "czrq")
//	public Date getCzrq() {
//		return czrq;
//	}
//
//	public void setCzrq(Date czrq) {
//		this.czrq = czrq;
//	}
}

+ 38 - 0
common/common-entity/src/main/java/com/yihu/jw/base/user/BaseEmployDO.java

@ -20,12 +20,16 @@ public class BaseEmployDO extends IdEntityWithOperation implements java.io.Seria
	private String saasId; //saasIDF
	private String name; //名字
	private String pyCode; //拼音
	private String ssc;//医保卡号
	private String sex; //性别
	private String photo; //头像
	private String skill;//专长
	private String workPortal;//医生门户首页
	private String email;//邮箱
	private String phone;//联系电话
	private String password;//账户密码
	private String salt;//账户密码的盐
	private String idcard;//身份证号
	private String secondPhone;//备用电话
	private String familyTel;//家庭电话(固)
	private String officeTel;//办公电话(固)
@ -211,5 +215,39 @@ public class BaseEmployDO extends IdEntityWithOperation implements java.io.Seria
		this.status = status;
	}
	@Column(name = "password")
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Column(name = "salt")
	public String getSalt() {
		return salt;
	}
	public void setSalt(String salt) {
		this.salt = salt;
	}
	@Column(name = "idcard")
	public String getIdcard() {
		return idcard;
	}
	public void setIdcard(String idcard) {
		this.idcard = idcard;
	}
	@Column(name = "ssc")
	public String getSsc() {
		return ssc;
	}
	public void setSsc(String ssc) {
		this.ssc = ssc;
	}
}

+ 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;
	}
}

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

@ -0,0 +1,127 @@
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/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 String sum;//总积分(已用积分和剩余积分)
    @Transient
    private int usedTotal;//已用积分
    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 String getSum() {
        return sum;
    }
    public void setSum(String sum) {
        this.sum = sum;
    }
}

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

@ -0,0 +1,108 @@
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/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 = "activity_title")
    private String activityTitle;//活动标题
    @Column(name = "activity_content")
    private String activityContent;//活动内容
    @Column(name = "start_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date startTime;//开始时间
    @Column(name = "over_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date overTime; //结束时间
    @Column(name = "status")
    private int status;//状态(上架/下架)
    @Column(name = "hospital")
    private String hospital;//社区
    @Column(name = "organizer")
    private String organizer;//发布者
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getActivityTitle() {
        return activityTitle;
    }
    public void setActivityTitle(String activityTitle) {
        this.activityTitle = activityTitle;
    }
    public String getActivityContent() {
        return activityContent;
    }
    public void setActivityContent(String activityContent) {
        this.activityContent = activityContent;
    }
    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 getOrganizer() {
        return organizer;
    }
    public void setOrganizer(String organizer) {
        this.organizer = organizer;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
}

+ 48 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ActivityRuleDO.java

@ -0,0 +1,48 @@
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 wang zhinan on 2018/4/27.
 */
@Entity
@Table(name = "wlyy_health_bank_activity_rule")
public class ActivityRuleDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;//saasid
    @Column(name = "activity_id")
    private String activityId;//活动id
    @Column(name = "rule_code")
    private String ruleCode;//规则代码
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getActivityId() {
        return activityId;
    }
    public void setActivityId(String activityId) {
        this.activityId = activityId;
    }
    public String getRuleCode() {
        return ruleCode;
    }
    public void setRuleCode(String ruleCode) {
        this.ruleCode = ruleCode;
    }
}

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

@ -0,0 +1,171 @@
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; //交易类型
    @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;//社区
    @Transient
    private TaskDO taskDO;//任务对象
    @Transient
    private ActivityDO activityDO;//活动对象
    @Transient
    private String flag ; // 标识是什么任务
    @Transient
    private Integer total;  //总积分
    @Transient
    private String name; //居民名称
    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;
    }
}

+ 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;
    }
}

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

@ -0,0 +1,116 @@
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")
public class TaskDO extends IdEntityWithOperation implements Serializable{
    @Column(name = "saas_id")
    private String saasId; //saasid
    @Column(name = "task_title")
    private String taskTitle; //任务标题
    @Column(name = "task_content")
    private String taskContent; //任务内容
    @Column(name = "trade_type")
    private String tradeType; //交易类型
    @Column(name = "transaction_id")
    private String transactionId; // 业务id
    @Column(name = "period")
    private int period; //周期性
    @Column(name = "patient_id")
    private String patientId; //居民id
    @Column(name = "task_code")
    private String taskCode ; // 标识是什么任务
    @Transient
    private int status; //状态
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getTaskTitle() {
        return taskTitle;
    }
    public void setTaskTitle(String taskTitle) {
        this.taskTitle = taskTitle;
    }
    public String getTaskContent() {
        return taskContent;
    }
    public void setTaskContent(String taskContent) {
        this.taskContent = taskContent;
    }
    public String getTradeType() {
        return tradeType;
    }
    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }
    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 getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public String getTaskCode() {
        return taskCode;
    }
    public void setTaskCode(String taskCode) {
        this.taskCode = taskCode;
    }
}

+ 93 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskDetailDO.java

@ -0,0 +1,93 @@
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_detail")
public class TaskDetailDO extends IdEntityWithOperation implements Serializable{
    @Column(name = "saas_id")
    private String saasId; //saasid
    @Column(name = "status")
    private String status;//状态(完成/未完成)
    @Column(name = "patient_id")
    private String patientId;//居民id
    @Column(name = "doctor_id")
    private String doctorId;//医生id
    @Column(name = "integrate")
    private int integrate;//积分
    @Column(name = "trade_direction")
    private int tradeDirection;//交易方向
    @Column(name = "task_id")
    private String taskId;//任务id
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public String getDoctorId() {
        return doctorId;
    }
    public void setDoctorId(String doctorId) {
        this.doctorId = doctorId;
    }
    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 getTaskId() {
        return taskId;
    }
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }
}

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

@ -0,0 +1,49 @@
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 = "task_id")
    private String taskId; //任务id
    @Column(name = "rule_code")
    private String ruleCode; //任务编码
    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 getRuleCode() {
        return ruleCode;
    }
    public void setRuleCode(String ruleCode) {
        this.ruleCode = ruleCode;
    }
}

+ 217 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/PatientHospitalRecordDO.java

@ -0,0 +1,217 @@
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_patient_hospital_record")
public class PatientHospitalRecordDO extends IdEntityWithOperation implements Serializable {
    private String saasId;//
    private String thirdCode;//智业记录code
    private String eventCode; // 事件code
    private String patient;//患者
    private String patientName;//患者姓名
    private String type;//出院:1;住院:0
    private String hospital; //医院
    private String hospitalName;
    private String doctor; //医生
    private String doctorName;
    private String city; //城市
    private String cityName;
    private String town; //城镇
    private String townName;
    private String remark; //备注
    private String diagnosis; //诊断
    private String label; //标签
    private String labelName;
    private String dept;//部门
    private String deptName;
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "third_code")
    public String getThirdCode() {
        return thirdCode;
    }
    public void setThirdCode(String thirdCode) {
        this.thirdCode = thirdCode;
    }
    @Column(name = "event_code")
    public String getEventCode() {
        return eventCode;
    }
    public void setEventCode(String eventCode) {
        this.eventCode = eventCode;
    }
    @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 = "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 = "city")
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    @Column(name = "city_name")
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    @Column(name = "town")
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    @Column(name = "town_name")
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    @Column(name = "remark")
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    @Column(name = "diagnosis")
    public String getDiagnosis() {
        return diagnosis;
    }
    public void setDiagnosis(String diagnosis) {
        this.diagnosis = diagnosis;
    }
    @Column(name = "label")
    public String getLabel() {
        return label;
    }
    public void setLabel(String label) {
        this.label = label;
    }
    @Column(name = "label_name")
    public String getLabelName() {
        return labelName;
    }
    public void setLabelName(String labelName) {
        this.labelName = labelName;
    }
    @Column(name = "dept")
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    @Column(name = "dept_ame")
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    @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 = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
}

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

@ -0,0 +1,87 @@
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 {
    private String saasId;
    private String labelName;//标签名称',
    private String labelCode;//标签code',
    private String labelType;//标签类型:1.装病类型;2.健康情况;3.自定义',
    private Integer sort;//排序',
    private String teamCode;//团队code',
    private String del;//1:有效;0:删除',
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "label_name")
    public String getLabelName() {
        return labelName;
    }
    public void setLabelName(String labelName) {
        this.labelName = labelName;
    }
    @Column(name = "label_code")
    public String getLabelCode() {
        return labelCode;
    }
    public void setLabelCode(String labelCode) {
        this.labelCode = labelCode;
    }
    @Column(name = "label_type")
    public String getLabelType() {
        return labelType;
    }
    public void setLabelType(String labelType) {
        this.labelType = labelType;
    }
    @Column(name = "sort")
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    @Column(name = "team_code")
    public String getTeamCode() {
        return teamCode;
    }
    public void setTeamCode(String teamCode) {
        this.teamCode = teamCode;
    }
    @Column(name = "del")
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
}

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

@ -0,0 +1,77 @@
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 {
    private String saasId;
    private String patient;//居民code',
    private String labelName;//标签名称',
    private String labelCode;//标签code',
    private String labelType;//标签类别',
    private String teamCode;//团队code',
    @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 = "label_name")
    public String getLabelName() {
        return labelName;
    }
    public void setLabelName(String labelName) {
        this.labelName = labelName;
    }
    @Column(name = "label_code")
    public String getLabelCode() {
        return labelCode;
    }
    public void setLabelCode(String labelCode) {
        this.labelCode = labelCode;
    }
    @Column(name = "label_type")
    public String getLabelType() {
        return labelType;
    }
    public void setLabelType(String labelType) {
        this.labelType = labelType;
    }
    @Column(name = "team_code")
    public String getTeamCode() {
        return teamCode;
    }
    public void setTeamCode(String teamCode) {
        this.teamCode = teamCode;
    }
}

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

@ -0,0 +1,77 @@
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;
    }
}

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

@ -0,0 +1,117 @@
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;
    }
}

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

@ -0,0 +1,108 @@
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;
    }
}

+ 200 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistPatientRelationDO.java

@ -0,0 +1,200 @@
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;
import java.util.Date;
/**
 * Created by Trick on 2018/4/24.
 */
@Entity
@Table(name = "wlyy_specialist_patient_relation")
public class SpecialistPatientRelationDO extends IdEntityWithOperation implements Serializable {
    private String saasId;
    private String dischargeRecord;//最新出院记录
    private String doctor;//专科医生
    private String doctorName;//专科医生姓名
    private String patient;// 居民(患者)
    private String patientName;//居民(患者)姓名
    private String healthAssistant;//计管师
    private String healthAssistantName;//计管师
    private String status;//1.已经分配,0,待分配
    private String pkCode; //服务包code
    private String signCode;//签约code
    private String signDoctor;//签约医生
    private String signDoctorName;//签约医生
    private String healthDoctor;//健康管理师
    private String healthDoctorName;//健康管理师姓名
    private String signYear;//签约年度
    private Integer teamCode;//签约团队
    private Date signDate;//签约日期
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "discharge_record")
    public String getDischargeRecord() {
        return dischargeRecord;
    }
    public void setDischargeRecord(String dischargeRecord) {
        this.dischargeRecord = dischargeRecord;
    }
    @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 = "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 = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "sign_code")
    public String getSignCode() {
        return signCode;
    }
    public void setSignCode(String signCode) {
        this.signCode = signCode;
    }
    @Column(name = "sign_doctor")
    public String getSignDoctor() {
        return signDoctor;
    }
    public void setSignDoctor(String signDoctor) {
        this.signDoctor = signDoctor;
    }
    @Column(name = "sign_doctor_name")
    public String getSignDoctorName() {
        return signDoctorName;
    }
    public void setSignDoctorName(String signDoctorName) {
        this.signDoctorName = signDoctorName;
    }
    @Column(name = "health_doctor")
    public String getHealthDoctor() {
        return healthDoctor;
    }
    public void setHealthDoctor(String healthDoctor) {
        this.healthDoctor = healthDoctor;
    }
    @Column(name = "health_doctor_name")
    public String getHealthDoctorName() {
        return healthDoctorName;
    }
    public void setHealthDoctorName(String healthDoctorName) {
        this.healthDoctorName = healthDoctorName;
    }
    @Column(name = "sign_year")
    public String getSignYear() {
        return signYear;
    }
    public void setSignYear(String signYear) {
        this.signYear = signYear;
    }
    @Column(name = "sign_date")
    public Date getSignDate() {
        return signDate;
    }
    public void setSignDate(Date signDate) {
        this.signDate = signDate;
    }
    @Column(name = "team_code")
    public Integer getTeamCode() {
        return teamCode;
    }
    public void setTeamCode(Integer teamCode) {
        this.teamCode = teamCode;
    }
    @Column(name = "health_assistant")
    public String getHealthAssistant() {
        return healthAssistant;
    }
    public void setHealthAssistant(String healthAssistant) {
        this.healthAssistant = healthAssistant;
    }
    @Column(name = "health_assistant_name")
    public String getHealthAssistantName() {
        return healthAssistantName;
    }
    public void setHealthAssistantName(String healthAssistantName) {
        this.healthAssistantName = healthAssistantName;
    }
    @Column(name = "pk_code")
    public String getPkCode() {
        return pkCode;
    }
    public void setPkCode(String pkCode) {
        this.pkCode = pkCode;
    }
}

+ 5 - 4
common/common-entity/src/main/java/com/yihu/jw/iot/device/IotDeviceOrderDO.java

@ -23,7 +23,7 @@ public class IotDeviceOrderDO extends IdEntityWithOperation implements Serializa
    private String orderNo;//订单编号
    @Column(name = "order_status")
    private String orderStatus;//订单状态(1新增、2已采购、3已入库)
    private String orderStatus;//订单状态(1草稿、2生效、3已完成、4作废)
    @Column(name = "purchase_time")
    private Date purchaseTime;//采购时间
@ -68,9 +68,10 @@ public class IotDeviceOrderDO extends IdEntityWithOperation implements Serializa
    private Integer del;//删除标志
    public enum DeviceOrderStatus {
        create("新增", "1"),
        purchased("已采购", "2"),
        storaged("已入库", "3");
        create("草稿", "1"),
        effected("生效", "2"),
        completed("已完成", "3"),
        canceled("作废", "4");
        private String name;
        private String value;

+ 101 - 0
common/common-entity/src/main/java/com/yihu/jw/rehabilitation/RehabilitationInformationDO.java

@ -0,0 +1,101 @@
package com.yihu.jw.rehabilitation;
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;
/**
 * 就诊信息表
 * @author humingfen on 2018/4/25.
 */
@Entity
@Table(name = "rehabilitation_information")
public class RehabilitationInformationDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "patient_id")
    private String patientId;//居民id
    @Column(name = "hospital")
    private String hospital;//就诊医院
    @Column(name = "departmen")
    private String departmen;//就诊科室
    @Column(name = "summary")
    private String summary;//诊断小结
    @Column(name = "advice")
    private String advice;//医嘱
    @Column(name = "disease")
    private String disease;//疾病标签
    @Column(name = "discharge_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date dischargeTime;//出院时间
    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 getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public String getDepartmen() {
        return departmen;
    }
    public void setDepartmen(String departmen) {
        this.departmen = departmen;
    }
    public String getSummary() {
        return summary;
    }
    public void setSummary(String summary) {
        this.summary = summary;
    }
    public String getAdvice() {
        return advice;
    }
    public void setAdvice(String advice) {
        this.advice = advice;
    }
    public String getDisease() {
        return disease;
    }
    public void setDisease(String disease) {
        this.disease = disease;
    }
    public Date getDischargeTime() {
        return dischargeTime;
    }
    public void setDischargeTime(Date dischargeTime) {
        this.dischargeTime = dischargeTime;
    }
}

+ 81 - 0
common/common-entity/src/main/java/com/yihu/jw/rehabilitation/RehabilitationPerformanceDO.java

@ -0,0 +1,81 @@
package com.yihu.jw.rehabilitation;
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;
/**
 * 康复计划执行情况表
 * @author humingfen on 2018/4/25.
 */
@Entity
@Table(name = "rehabilitation_performance")
public class RehabilitationPerformanceDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "program_id")
    private String programId;//治疗方案ID
    @Column(name = "start_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private String startTime;//开始执行的时间
    @Column(name = "end_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private String endTime;//结束执行的时间
    @Column(name = "status")
    private Integer status;//执行状态
    @Column(name = "description")
    private String description;//描述身体健康状态详情
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getProgramId() {
        return programId;
    }
    public void setProgramId(String programId) {
        this.programId = programId;
    }
    public String getStartTime() {
        return startTime;
    }
    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }
    public String getEndTime() {
        return endTime;
    }
    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 71 - 0
common/common-entity/src/main/java/com/yihu/jw/rehabilitation/RehabilitationPlanningDO.java

@ -0,0 +1,71 @@
package com.yihu.jw.rehabilitation;
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;
/**
 * 康复计划表
 * @author humingfen on 2018/4/25.
 */
@Entity
@Table(name = "rehabilitation_planning")
public class RehabilitationPlanningDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "patient_id")
    private String patientId;//居民ID
    @Column(name = "program_id")
    private String programId;//治疗方案ID,可多个用逗号隔开
    @Column(name = "recheck_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date recheckTime;//复检时间
    @Column(name = "description")
    private String description;//附加说明,如先执行哪个方案,什么时间执行最佳
    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 getProgramId() {
        return programId;
    }
    public void setProgramId(String programId) {
        this.programId = programId;
    }
    public Date getRecheckTime() {
        return recheckTime;
    }
    public void setRecheckTime(Date recheckTime) {
        this.recheckTime = recheckTime;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 68 - 0
common/common-entity/src/main/java/com/yihu/jw/rehabilitation/RehabilitationTreatmentProgramDO.java

@ -0,0 +1,68 @@
package com.yihu.jw.rehabilitation;
import com.yihu.jw.IdEntityWithOperation;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * 治疗方案表
 * @author humingfen on 2018/4/25.
 */
@Entity
@Table(name = "rehabilitation_treatment_program")
public class RehabilitationTreatmentProgramDO extends IdEntityWithOperation implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "name")
    private String name;
    @Column(name =  "frequency")
    private String frequency;
    @Column(name = "times_daily")
    private Integer timesDaily;
    @Column(name = "description")
    private String description;
    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 getFrequency() {
        return frequency;
    }
    public void setFrequency(String frequency) {
        this.frequency = frequency;
    }
    public Integer getTimesDaily() {
        return timesDaily;
    }
    public void setTimesDaily(Integer timesDaily) {
        this.timesDaily = timesDaily;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 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());
//    }
//
//
//}

+ 7 - 4
common/common-fegin/pom.xml

@ -6,26 +6,29 @@
    <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-request-mapping</artifactId>
            <artifactId>common-rest-model</artifactId>
            <version>${parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model</artifactId>
            <artifactId>common-request-mapping</artifactId>
            <version>${parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</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);
}

+ 6 - 0
common/common-fegin/src/main/java/com/yihu/jw/fegin/base/base/SaasFeign.java

@ -4,7 +4,10 @@ import com.yihu.jw.fegin.fallbackfactory.base.base.SaasFeignFallbackFactory;
import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -19,4 +22,7 @@ public interface SaasFeign {
    @GetMapping(value = BaseRequestMapping.Saas.api_getSaassNoPage)
    Envelop getList(@RequestParam(value = "fields",required = false)String fields,@RequestParam(value = "filters",required = false) String filters,@RequestParam(value = "sorts",required = false) String sorts);
    @GetMapping(value = BaseRequestMapping.Saas.api_getById, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    Envelop findByCode(@RequestParam(value = "id", required = true) String id);
}

+ 52 - 0
common/common-fegin/src/main/java/com/yihu/jw/fegin/base/login/LoginFeign.java

@ -0,0 +1,52 @@
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;
import com.yihu.jw.rm.base.BaseLoginRequestMapping;
import com.yihu.jw.rm.base.BaseRequestMapping;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Created by 刘文彬 on 2018/4/20.
 */
@FeignClient(
        name = CommonContants.svr_base // name值是eurika的实例名字
        ,fallbackFactory  = LoginFeignFallbackFactory.class
)
@RequestMapping(value = BaseLoginRequestMapping.api_common)
public interface LoginFeign {
    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_checkoutInfo, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    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(
            @RequestParam(value = "mobilePhone", required = true) String mobilePhone,
            @RequestParam(value = "saasId", required = true) String saasId,
            @RequestParam(value = "type", required = true) int type,
            @RequestParam(value = "captcha", required = true) String captcha,
            @RequestParam(value = "name", required = true) String name,
            @RequestParam(value = "password", required = true) String password,
            @RequestParam(value = "idcard", required = true) String idcard,
            @RequestParam(value = "ssc", required = true) String ssc);
    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_login, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    Envelop login(@RequestParam(value = "mobilePhone", required = false) String mobilePhone,
                           @RequestParam(value = "password", required = false) String password,
                           @RequestParam(value = "saasId", required = true) String saasId,
                           @RequestParam(value = "captcha", required = false) String captcha);
}

+ 34 - 0
common/common-fegin/src/main/java/com/yihu/jw/fegin/base/sms/RegisterSmsFeign.java

@ -0,0 +1,34 @@
package com.yihu.jw.fegin.base.sms;
import com.yihu.jw.restmodel.CommonContants;
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.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.base.BaseSmsRequestMapping;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * Created by 刘文彬 on 2018/4/23.
 */
@FeignClient(
        name = CommonContants.svr_base // name值是eurika的实例名字
)
@RequestMapping(value = BaseSmsRequestMapping.api_common)
public interface RegisterSmsFeign {
    @PostMapping(value = BaseSmsRequestMapping.Sms.api_sms_send, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    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) throws IOException ;
    }

+ 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);
}

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

@ -6,6 +6,8 @@ import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
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.*;
@ -17,11 +19,11 @@ import org.springframework.web.bind.annotation.*;
        name = CommonContants.svr_base // name值是eurika的实例名字
        ,fallbackFactory  = EmployeeFeignFallbackFactory.class
)
@RequestMapping(value = BaseRequestMapping.api_base_common)
@RequestMapping(value = BaseUserRequestMapping.api_user_common)
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;
@ -57,5 +59,8 @@ public interface EmployFeign {
    @RequestMapping(value = BaseUserRequestMapping.BaseEmployRole.api_getListNoPage,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST)
    Envelop getRoleList(@RequestBody String jsonData) throws JiWeiException;
    @GetMapping(value = BaseUserRequestMapping.BaseEmploy.api_getByPhone)
    Envelop getEmployeeByPhoneAndSaasId(@RequestParam(value = "phone", required = true) String phone,@RequestParam(value = "saasId", required = true) String saasId);
}

+ 25 - 0
common/common-fegin/src/main/java/com/yihu/jw/fegin/common/security/LoginSmsFeign.java

@ -0,0 +1,25 @@
package com.yihu.jw.fegin.common.security;
import com.yihu.jw.fegin.fallbackfactory.base.base.SaasFeignFallbackFactory;
import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.rm.base.BaseLoginRequestMapping;
import com.yihu.jw.rm.base.BaseRequestMapping;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.request.ServletWebRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Created by 刘文彬 on 2018/4/23.
 */
@FeignClient(
        name = CommonContants.svr_base // name值是eurika的实例名字
)
@RequestMapping(value = BaseRequestMapping.api_base_common)
public interface LoginSmsFeign {
    @GetMapping(BaseLoginRequestMapping.BaseLoginAccount.mobileSendSms)
    void createCode(HttpServletRequest request,HttpServletResponse response)throws Exception;
}

+ 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/base/SaasFeignFallbackFactory.java

@ -16,6 +16,11 @@ public class SaasFeignFallbackFactory implements FallbackFactory<SaasFeign> {
            public Envelop getList(@RequestParam(value = "fields") String fields, @RequestParam(value = "filters") String filters, @RequestParam(value = "sorts") String sorts) {
                return null;
            }
            @Override
            public Envelop findByCode(@RequestParam(value = "id") String id) {
                return null;
            }
        };
    }
}

+ 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;
            }
        };
    }
}

+ 6 - 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
@ -97,6 +97,10 @@ public class EmployeeFeignFallbackFactory  implements FallbackFactory<EmployFeig
                throw new JiWeiException(e);
            }
            @Override
            public Envelop getEmployeeByPhoneAndSaasId(String phone, String saasId){
                return null;
            }
        };
    }
}

+ 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>

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

@ -2,6 +2,7 @@ package com.yihu.jw.rm.base;
public class BaseLoginRequestMapping {
    public static final String api_common = BaseRequestMapping.api_base_common + "/login";
    public static final String api_gateway_common = BaseRequestMapping.api_base_common + "/gateway/login";
    /**
     * 用户账号类型
@ -12,6 +13,10 @@ public class BaseLoginRequestMapping {
        public static final String api_delete = "/baseLoginAccount/{ids}";
        public static final String api_getById = "/baseLoginAccount/{id}";
        public static final String api_getOne="/baseLoginAccount";
        public static final String mobileSendSms = "/code/sms";
        public static final String api_checkoutInfo = "/register/checkInfo";
        public static final String api_accountSub = "/register/accountSub";
        public static final String api_login= "/authentication/form";
        public static final String message_success_create = "baseLoginAccount create success";
        public static final String message_success_update = "baseLoginAccount update success";

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

@ -0,0 +1,15 @@
package com.yihu.jw.rm.base;
/**
 * Created by 刘文彬 on 2018/5/4.
 */
public class BaseSecurityRequestMapping {
    public static final String api_common=BaseRequestMapping.api_base_common+"/security";
    public static class BaseToken {
        public static final String api_update_token_expiration_time = "/update/tokenExpiration/time";
        public static final String api_update_token_expiration_second = "/update/tokenExpiration/second";
        public static final String api_update_token_expiration_second2 = "/update/tokenExpiration/second2";
        public static final String api_update_token_expiration = "/update/tokenExpiration";
    }
}

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

@ -21,7 +21,7 @@ public class BaseSmsRequestMapping {
        public static final String message_fail_id_is_null="id is null";
        public static final String api_create="sms";
        public static final String api_sms_send="send";
        public static final String api_update="sms";
        public static final String api_getSmss="getSmss";

+ 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";

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

@ -0,0 +1,37 @@
package com.yihu.jw.rm.health.bank;
/**
 * 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 createTask = "/createTask";
        public static final String deleteTask ="/deleteTask";
        public static final String findTask = "/findTask";
        public static final String updateTask ="/updateTask";
        public static final String createTaskDetail = "/createTaskDetail";
        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 selectByRanking = "/selectByRanking";
        public static final String updateCreditsLogInfo ="/updateCreditsLogInfo";
        public static final String exchangeGoods = "/exchangeGoods";
        public static final String findExchangeGoods="/findExchangeGoods";
    }
}

+ 75 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/rehabilitation/RehabilitationRequestMapping.java

@ -0,0 +1,75 @@
package com.yihu.jw.rm.rehabilitation;
/**
 * Created by humingfen on 2018/4/25 .
 */
public class RehabilitationRequestMapping {
    public static final String api_rehabilitation_common = "svr-rehabilitation";
    /**
     * 公共模块
     */
    public static class Common {
        public static final String message_success_update = "update success";
        public static final String message_success_delete = "delete success";
        public static final String message_success_find = "find success";
        public static final String message_success_create = "create success";
        public static final String message_success_find_functions = "message_success_find_functions";
    }
    public static class Information {
        public static final String information = api_rehabilitation_common + "/information";
        public static final String api_create = "createInformation";
        public static final String api_delete = "delInformation";
        public static final String api_getById = "getInformationById";
        public static final String api_update = "updateInformation";
        public static final String findInformationById = "findInformationById";
        public static final String findInformationByPatientId = "findInformationByPatientId";
        public static final String findInformationPage = "findInformationPage";
    }
    public static class TreatmentProgram {
        public static final String treatmentProgram = api_rehabilitation_common + "/treatmentProgram";
        public static final String findTreatmentProgramPage = "findTreatmentProgramPage";
        public static final String api_create = "createTreatmentProgram";
        public static final String api_delete = "delTreatmentProgram";
        public static final String api_getById = "getTreatmentProgramById";
        public static final String api_update = "updateTreatmentProgram";
        public static final String findTreatmentProgramById = "findTreatmentProgramById";
    }
    public static class Planning {
        public static final String planning = api_rehabilitation_common + "/planning";
        public static final String findPlanningPage = "findPlanningPage";
        public static final String findTreatmentByProgramId = "findTreatmentByProgramId";
        public static final String api_create = "createPlanning";
        public static final String api_delete = "delPlanning";
        public static final String api_getById = "getPlanningById";
        public static final String api_update = "updatePlanning";
        public static final String findPlanningById = "findPlanningById";
    }
    public static class Performance {
        public static final String performance = api_rehabilitation_common + "/performance";
        public static final String findPerformancePage = "findPerformancePage";
        public static final String api_create = "createPerformance";
        public static final String api_delete = "delPerformance";
        public static final String api_getById = "getPerformanceById";
        public static final String api_update = "updatePerformance";
        public static final String findPerformanceById = "findPerformanceById";
    }
}

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

@ -0,0 +1,20 @@
package com.yihu.jw.rm.specialist;
/**
 * Created by Trick on 2018/4/25.
 */
public class SpecialistMapping {
    public static final String api_specialist_common = "svr-specialist";
    public static final Integer api_specialist_fail = -1;
    public static final String api_success ="succes";
    public static class specialist{
        public static final String createSpecialists = "/createSpecialists";
        public static final String createSpecialistRelation = "/createSpecialistRelation";
        public static final String createConsult = "/createConsult";
        public static final String createArticle = "/createArticle";
        public static final String findSpecialistPatientRelation = "/findSpecialistPatientRelation";
    }
}

+ 3 - 2
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>

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

@ -100,14 +100,14 @@ public class Envelop<T> extends BaseEnvelop implements Serializable {
    public static Envelop getSuccess(String message) {
        Envelop envelop = new Envelop();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setStatus(200);
        return envelop;
    }
    public static Envelop getSuccess(String message, Object obj) {
        Envelop envelop = new Envelop();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setObj(obj);
        envelop.setStatus(200);
        return envelop;
@ -115,7 +115,7 @@ public class Envelop<T> extends BaseEnvelop implements Serializable {
    public static Envelop getSuccess(String message, Object obj,Integer total) {
        Envelop envelop = new Envelop();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setObj(obj);
        envelop.setTotalCount(total);
        envelop.setStatus(200);
@ -124,7 +124,7 @@ public class Envelop<T> extends BaseEnvelop implements Serializable {
    public static Envelop getSuccessListWithPage(String message, List detailModelList, int page, int size, Long count) {
        Envelop envelop = new Envelop();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setPageSize(size);
        envelop.setDetailModelList(detailModelList);
        envelop.setCurrPage(page);
@ -135,21 +135,21 @@ public class Envelop<T> extends BaseEnvelop implements Serializable {
    public static Envelop getError(String message, int errorCode) {
        Envelop envelop = new Envelop();
        envelop.setErrorMsg(message);
        envelop.setMessage(message);
        envelop.setStatus(errorCode);
        return envelop;
    }
    public static Envelop getError(String message) {
        Envelop envelop = new Envelop();
        envelop.setErrorMsg(message);
        envelop.setMessage(message);
        envelop.setStatus(-1);
        return envelop;
    }
    public static Envelop getSuccessList(String message, List objList) {
        Envelop envelop = new Envelop();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setDetailModelList(objList);
        envelop.setStatus(200);
        return envelop;
@ -157,7 +157,7 @@ public class Envelop<T> extends BaseEnvelop implements Serializable {
    public static Envelop getSuccessList(String message, List objList,Integer total) {
        Envelop envelop = new Envelop();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setDetailModelList(objList);
        envelop.setTotalCount(total);
        envelop.setStatus(200);

+ 0 - 3
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/EnvelopList.java

@ -29,9 +29,6 @@ public class EnvelopList<T> extends BaseEnvelop implements Serializable {
    @ApiModelProperty("列表内容")
    private List<T> detailModelList;
    public EnvelopList(String errorMsg, String successMsg) {
        super(errorMsg, successMsg);
    }
    public List<T> getDetailModelList() {
        return detailModelList;

+ 4 - 19
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/EnvelopPage.java

@ -59,13 +59,6 @@ public class EnvelopPage<T> extends BaseEnvelop implements Serializable {
        this.detailModelList = detailModelList;
    }
    public String getErrorMsg() {
        return errorMsg;
    }
    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }
    public int getPageSize() {
@ -97,23 +90,15 @@ public class EnvelopPage<T> extends BaseEnvelop implements Serializable {
        this.totalPage = totalPage;
    }
    public String getSuccessMsg() {
        return successMsg;
    }
    public void setSuccessMsg(String successMsg) {
        this.successMsg = successMsg;
    }
    public static EnvelopPage getSuccess(String message) {
        EnvelopPage envelop = new EnvelopPage();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        return envelop;
    }
    public static EnvelopPage getSuccessListWithPage(String message, List detailModelList, int page, int size, Long count) {
        EnvelopPage envelop = new EnvelopPage();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setPageSize(size);
        envelop.setDetailModelList(detailModelList);
        envelop.setCurrPage(page);
@ -123,13 +108,13 @@ public class EnvelopPage<T> extends BaseEnvelop implements Serializable {
    public static EnvelopPage getError(String message, int errorCode) {
        EnvelopPage envelop = new EnvelopPage();
        envelop.setErrorMsg(message);
        envelop.setMessage(message);
        return envelop;
    }
    public static EnvelopPage getSuccessList(String message, List objList) {
        EnvelopPage envelop = new EnvelopPage();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setDetailModelList(objList);
        return envelop;
    }

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

@ -2,6 +2,8 @@ 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.exception.ApiException;
import com.yihu.jw.exception.code.ExceptionCode;
import com.yihu.jw.util.date.DateUtil;

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

@ -11,22 +11,14 @@ import io.swagger.annotations.ApiModelProperty;
@ApiModel(description = "基础实体")
public class BaseEnvelop {
    @ApiModelProperty("错误编码")
    protected String errorCode;
    @ApiModelProperty("成功信息")
    protected String errorMsg;
    @ApiModelProperty("成功信息")
    protected String successMsg;
    @ApiModelProperty("信息")
    protected String message;
    @ApiModelProperty("状态(200成功,-1是失败)")
    protected Integer status;
    protected Integer status = BaseEnvelopStatus.success.getCode();
    public BaseEnvelop() {
    }
    public BaseEnvelop(String errorCode, String errorMsg) {
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }
    public Integer getStatus() {
        return status;
@ -36,47 +28,31 @@ public class BaseEnvelop {
        this.status = status;
    }
    public String getErrorMsg() {
        return errorMsg;
    }
    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }
    public String getSuccessMsg() {
        return successMsg;
    }
    public void setSuccessMsg(String successMsg) {
        this.successMsg = successMsg;
    }
    public String getErrorCode() {
        return errorCode;
    public String getMessage() {
        return message;
    }
    public void setErrorCode(String errorCode) {
        this.errorCode = errorCode;
    public void setMessage(String message) {
        this.message = message;
    }
    public static BaseEnvelop getSuccess(String message) {
        BaseEnvelop envelop = new BaseEnvelop();
        envelop.setSuccessMsg(message);
        envelop.setMessage(message);
        envelop.setStatus(200);
        return envelop;
    }
    public static BaseEnvelop getError(String message, int errorCode) {
        BaseEnvelop envelop = new BaseEnvelop();
        envelop.setErrorMsg(message);
        envelop.setMessage(message);
        envelop.setStatus(errorCode);
        return envelop;
    }
    public static BaseEnvelop getError(String message) {
        BaseEnvelop envelop = new BaseEnvelop();
        envelop.setErrorMsg(message);
        envelop.setMessage(message);
        envelop.setStatus(-1);
        return envelop;
    }

+ 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;
    }
}

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

@ -20,7 +20,7 @@ public class IotDeviceOrderVO extends BaseVO implements Serializable{
    @ApiModelProperty("订单编号")
    private String orderNo;
    @ApiModelProperty("订单状态")
    @ApiModelProperty("订单状态(1草稿、2生效、3已完成、4作废)")
    private String orderStatus;
    @ApiModelProperty("采购时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")

+ 91 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/rehabilitation/RehabilitationInformationVO.java

@ -0,0 +1,91 @@
package com.yihu.jw.restmodel.rehabilitation;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.iot.common.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
/**
 * 就诊信息表
 * @author humingfen on 2018/4/26.
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "就诊记录表", description = "就诊记录表")
public class RehabilitationInformationVO extends BaseVO implements Serializable {
    @ApiModelProperty("居民id")
    private String patientId;
    @ApiModelProperty("就诊医院")
    private String hospital;
    @ApiModelProperty("就诊科室")
    private String department;
    @ApiModelProperty("诊断小结")
    private String summary;
    @ApiModelProperty("医嘱")
    private String advice;
    @ApiModelProperty("疾病标签")
    private String disease;
    @ApiModelProperty("出院时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date dischargeTime;
    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 String getDepartment() {
        return department;
    }
    public void setDepartment(String department) {
        this.department = department;
    }
    public String getSummary() {
        return summary;
    }
    public void setSummary(String summary) {
        this.summary = summary;
    }
    public String getAdvice() {
        return advice;
    }
    public void setAdvice(String advice) {
        this.advice = advice;
    }
    public String getDisease() {
        return disease;
    }
    public void setDisease(String disease) {
        this.disease = disease;
    }
    public Date getDischargeTime() {
        return dischargeTime;
    }
    public void setDischargeTime(Date dischargeTime) {
        this.dischargeTime = dischargeTime;
    }
}

+ 71 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/rehabilitation/RehabilitationPerformanceVO.java

@ -0,0 +1,71 @@
package com.yihu.jw.restmodel.rehabilitation;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.iot.common.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.sql.Date;
/**
 * 康复计划执行情况表
 * @author humingfen on 2018/5/2.
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "康复计划执行情况表", description = "康复计划执行情况表")
public class RehabilitationPerformanceVO extends BaseVO implements Serializable {
    @ApiModelProperty("治疗方案id")
    private String programId;
    @ApiModelProperty("开始执行时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date startTime;
    @ApiModelProperty("结束执行时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date endTime;
    @ApiModelProperty("执行状态")
    private Integer status;
    @ApiModelProperty("身体健康状态说明")
    private String description;
    public String getProgramId() {
        return programId;
    }
    public void setProgramId(String programId) {
        this.programId = programId;
    }
    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 Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 63 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/rehabilitation/RehabilitationPlanningVO.java

@ -0,0 +1,63 @@
package com.yihu.jw.restmodel.rehabilitation;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.iot.common.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
/**
 * 康复计划表
 * @author humingfen on 2018/5/2.
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "康复计划表", description = "康复计划表")
public class RehabilitationPlanningVO extends BaseVO implements Serializable {
    @ApiModelProperty("居民id")
    private String patientId;
    @ApiModelProperty("治疗方案id")
    private String programId;
    @ApiModelProperty("复检时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date recheckTime;
    @ApiModelProperty("附加说明")
    private String description;
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public String getProgramId() {
        return programId;
    }
    public void setProgramId(String programId) {
        this.programId = programId;
    }
    public Date getRecheckTime() {
        return recheckTime;
    }
    public void setRecheckTime(Date recheckTime) {
        this.recheckTime = recheckTime;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 57 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/rehabilitation/RehabilitationTreatmentProgramVO.java

@ -0,0 +1,57 @@
package com.yihu.jw.restmodel.rehabilitation;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.iot.common.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
 * 治疗方案表
 * @author humingfen on 2018/4/27.
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "治疗方案表", description = "治疗方案表")
public class RehabilitationTreatmentProgramVO extends BaseVO implements Serializable {
    @ApiModelProperty("方案名称")
    private String name;
    @ApiModelProperty("训练次数/时间")
    private String frequency;
    @ApiModelProperty("每日次数")
    private Integer timesDaily;
    @ApiModelProperty("附加说明")
    private String description;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getFrequency() {
        return frequency;
    }
    public void setFrequency(String frequency) {
        this.frequency = frequency;
    }
    public Integer getTimesDaily() {
        return timesDaily;
    }
    public void setTimesDaily(Integer timesDaily) {
        this.timesDaily = timesDaily;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

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

@ -0,0 +1,64 @@
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 photo;
    @ApiModelProperty("出院时间")
    private String createTime;
    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;
    }
}

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

@ -0,0 +1,166 @@
package com.yihu.jw.restmodel.specialist;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
/**
 * Created by Trick on 2018/4/25.
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "专科医生与居民匹配关系", description = "专科医生与居民匹配关系")
public class SpecialistPatientRelationVO {
    @ApiModelProperty("saasid")
    private String saasId;
    @ApiModelProperty("最新出院记录")
    private String dischargeRecord;//最新出院记录
    @ApiModelProperty("专科医生")
    private String doctor;//专科医生
    @ApiModelProperty("专科医生姓名")
    private String doctorName;//专科医生姓名
    @ApiModelProperty("居民(患者)")
    private String patient;// 居民(患者)
    @ApiModelProperty("居民(患者)姓名")
    private String patientName;//居民(患者)姓名
    @ApiModelProperty("1.已经分配,0,待分配")
    private String status;//1.已经分配,0,待分配
    @ApiModelProperty("签约code")
    private String signCode;//签约code
    @ApiModelProperty("签约医生")
    private String signDoctor;//签约医生
    @ApiModelProperty("签约医生")
    private String signDoctorName;//签约医生
    @ApiModelProperty("健康管理师")
    private String healthDoctor;//健康管理师
    @ApiModelProperty("健康管理师姓名")
    private String healthDoctorName;//健康管理师姓名
    @ApiModelProperty("签约年度")
    private String signYear;//签约年度
    @ApiModelProperty("签约团队")
    private Integer teamCode;//签约团队
    @ApiModelProperty("签约日期")
    private Date signDate;//签约日期
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getDischargeRecord() {
        return dischargeRecord;
    }
    public void setDischargeRecord(String dischargeRecord) {
        this.dischargeRecord = dischargeRecord;
    }
    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 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 getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public String getSignCode() {
        return signCode;
    }
    public void setSignCode(String signCode) {
        this.signCode = signCode;
    }
    public String getSignDoctor() {
        return signDoctor;
    }
    public void setSignDoctor(String signDoctor) {
        this.signDoctor = signDoctor;
    }
    public String getSignDoctorName() {
        return signDoctorName;
    }
    public void setSignDoctorName(String signDoctorName) {
        this.signDoctorName = signDoctorName;
    }
    public String getHealthDoctor() {
        return healthDoctor;
    }
    public void setHealthDoctor(String healthDoctor) {
        this.healthDoctor = healthDoctor;
    }
    public String getHealthDoctorName() {
        return healthDoctorName;
    }
    public void setHealthDoctorName(String healthDoctorName) {
        this.healthDoctorName = healthDoctorName;
    }
    public String getSignYear() {
        return signYear;
    }
    public void setSignYear(String signYear) {
        this.signYear = signYear;
    }
    public Integer getTeamCode() {
        return teamCode;
    }
    public void setTeamCode(Integer teamCode) {
        this.teamCode = teamCode;
    }
    public Date getSignDate() {
        return signDate;
    }
    public void setSignDate(Date signDate) {
        this.signDate = signDate;
    }
}

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

@ -6,17 +6,48 @@
    <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>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.stuxuhai</groupId>
            <artifactId>jpinyin</artifactId>
            <version>1.1.8</version>
        </dependency>
    </dependencies>
</project>

+ 168 - 0
common/common-util/src/main/java/com/yihu/jw/util/common/ConvertToSpellUtils.java

@ -0,0 +1,168 @@
package com.yihu.jw.util.common;
import com.github.stuxuhai.jpinyin.ChineseHelper;
import com.github.stuxuhai.jpinyin.PinyinFormat;
import com.github.stuxuhai.jpinyin.PinyinHelper;
/**
 * Created by 刘文彬 on 2018/4/18.
 */
public class ConvertToSpellUtils {
    /**
     * 转换为有声调的拼音字符串
     * @param pinYinStr 汉字
     * @return 有声调的拼音字符串
     */
    public static String changeToMarkPinYin(String pinYinStr){
        String tempStr = null;
        try
        {
            tempStr =  PinyinHelper.convertToPinyinString(pinYinStr,  " ", PinyinFormat.WITH_TONE_MARK);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return tempStr;
    }
    /**
     * 转换为数字声调字符串
     * @param pinYinStr 需转换的汉字
     * @return 转换完成的拼音字符串
     */
    public static String changeToNumberPinYin(String pinYinStr){
        String tempStr = null;
        try
        {
            tempStr = PinyinHelper.convertToPinyinString(pinYinStr, " ", PinyinFormat.WITH_TONE_NUMBER);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return tempStr;
    }
    /**
     * 转换为不带音调的拼音字符串
     * @param pinYinStr 需转换的汉字
     * @return 拼音字符串
     */
    public static String changeToTonePinYin(String pinYinStr){
        String tempStr = null;
        try
        {
            tempStr =  PinyinHelper.convertToPinyinString(pinYinStr, " ", PinyinFormat.WITHOUT_TONE);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return tempStr;
    }
    /**
     * 转换为每个汉字对应拼音首字母字符串
     * @param pinYinStr 需转换的汉字
     * @return 拼音字符串
     */
    public static String changeToGetShortPinYin(String pinYinStr){
        String tempStr = null;
        try
        {
            tempStr = PinyinHelper.getShortPinyin(pinYinStr);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return tempStr;
    }
    /**
     * 检查汉字是否为多音字
     * @param pinYinStr 需检查的汉字
     * @return true 多音字,false 不是多音字
     */
    public static boolean checkPinYin(char pinYinStr){
        boolean check  = false;
        try
        {
            check = PinyinHelper.hasMultiPinyin(pinYinStr);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return check;
    }
    /**
     * 简体转换为繁体
     * @param pinYinStr
     * @return
     */
    public static String changeToTraditional(String pinYinStr){
        String tempStr = null;
        try
        {
            tempStr = ChineseHelper.convertToTraditionalChinese(pinYinStr);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return tempStr;
    }
    /**
     * 繁体转换为简体
     * @param pinYinSt
     * @return
     */
    public static String changeToSimplified(String pinYinSt){
        String tempStr = null;
        try
        {
            tempStr = ChineseHelper.convertToSimplifiedChinese(pinYinSt);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return tempStr;
    }
    public static void main(String[] args) {
      String str = "我是谁";
      System.out.println(ConvertToSpellUtils.changeToTonePinYin(str));
      System.out.println(ConvertToSpellUtils.checkPinYin('重'));
    }
    //汉字转首字母大写的拼音
    public static String changeToInitialPinYin(String pinYinStr){
        String origin = changeToTonePinYin(pinYinStr);
        String[] perChinese =  origin.split("\\s+");
        String result ="";
        for(String one : perChinese){
            result += one.toUpperCase();
        }
        return result;
    }
}

+ 148 - 0
common/common-util/src/main/java/com/yihu/jw/util/common/IdCardUtil.java

@ -0,0 +1,148 @@
package com.yihu.jw.util.common;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
 * Created by Administrator on 2016.08.17.
 * 身份证工具类
 */
public class IdCardUtil {
//    /**
//     * 根据身份证的号码算出当前身份证持有者的年龄
//     *
//     * @param
//     * @throws Exception
//     */
//    public static int getAgeForIdcard(String card)
//            throws Exception {
//        int age = 0;
//        if (card.length() == 18) {
//            String year = card.substring(6).substring(0, 4);// 得到年份
//            String yue = card.substring(10).substring(0, 2);// 得到月份
//            // String day=CardCode.substring(12).substring(0,2);//得到日
//            Date date = new Date();// 得到当前的系统时间
//            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//            String fyear = format.format(date).substring(0, 4);// 当前年份
//            String fyue = format.format(date).substring(5, 7);// 月份
//            if (Integer.parseInt(yue) <= Integer.parseInt(fyue)) { // 当前月份大于用户出身的月份表示已过生
//                age = Integer.parseInt(fyear) - Integer.parseInt(year) + 1;
//            } else {// 当前用户还没过生
//                age = Integer.parseInt(fyear) - Integer.parseInt(year);
//            }
//        } else if (card.length() == 15) {
//            String uyear = "19" + card.substring(6, 8);// 年份
//            String uyue = card.substring(8, 10);// 月份
//            Date date = new Date();// 得到当前的系统时间
//            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//            String fyear = format.format(date).substring(0, 4);// 当前年份
//            String fyue = format.format(date).substring(5, 7);// 月份
//            // String fday=format.format(date).substring(8,10);
//            if (Integer.parseInt(uyue) <= Integer.parseInt(fyue)) { // 当前月份大于用户出身的月份表示已过生
//                age = Integer.parseInt(fyear) - Integer.parseInt(uyear) + 1;
//            } else {// 当前用户还没过生
//                age = Integer.parseInt(fyear) - Integer.parseInt(uyear);
//            }
//
//        }
//        return age;
//    }
    /**
     * 根据身份证的号码算出当前身份证持有者的年龄
     *
     * @param
     * @throws Exception
     */
    public static int getAgeForIdcard(String idcard) {
        try {
            int age = 0;
            if (StringUtils.isEmpty(idcard)) {
                return age;
            }
            String birth = "";
            if (idcard.length() == 18) {
                birth = idcard.substring(6, 14);
            } else if (idcard.length() == 15) {
                birth = "19" + idcard.substring(6, 12);
            }
            int year = Integer.valueOf(birth.substring(0, 4));
            int month = Integer.valueOf(birth.substring(4, 6));
            int day = Integer.valueOf(birth.substring(6));
            Calendar cal = Calendar.getInstance();
            age = cal.get(Calendar.YEAR) - year;
            //周岁计算
            if (cal.get(Calendar.MONTH) < (month - 1) || (cal.get(Calendar.MONTH) == (month - 1) && cal.get(Calendar.DATE) < day)) {
                age--;
            }
            return age;
        } catch (Exception e) {
        }
        return -1;
    }
    /**
     * 身份证提取出身日期
     *
     * @param card
     * @return
     * @throws Exception
     */
    public static Date getBirthdayForIdcard(String card)
            throws Exception {
        Date b = null;
        if (card.length() == 18) {
            String year = card.substring(6).substring(0, 4);// 得到年份
            String yue = card.substring(10).substring(0, 2);// 得到月份
            String ri = card.substring(12).substring(0, 2);// 得到日
            // String day=CardCode.substring(12).substring(0,2);//得到日
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            b = format.parse(year + "-" + yue + "-" + ri);
        } else if (card.length() == 15) {
            String uyear = "19" + card.substring(6, 8);// 年份
            String uyue = card.substring(8, 10);// 月份
            String uri = card.substring(10, 12);// 得到日
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            b = format.parse(uyear + "-" + uyue + "-" + uri);
        }
        return b;
    }
//    public static
//    if (cardId.length() == 15 || cardId.length() == 18) {
//        if (!this.cardCodeVerifySimple(cardId)) {
//            error.put("cardId", "15位或18位身份证号码不正确");
//        } else {
//            if (cardId.length() == 18 && !this.cardCodeVerify(cardId)) {
//                error.put("cardId", "18位身份证号码不符合国家规范");
//            }
//        }
//    } else {
//        error.put("cardId", "身份证号码长度必须等于15或18位");
//    }
    private boolean cardCodeVerifySimple(String cardcode) {
        //第一代身份证正则表达式(15位)
        String isIDCard1 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";
        //第二代身份证正则表达式(18位)
        String isIDCard2 ="^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[A-Z])$";
        //验证身份证
        if (cardcode.matches(isIDCard1) || cardcode.matches(isIDCard2)) {
            return true;
        }
        return false;
    }
}

+ 8 - 3
common/common-util/src/main/java/com/yihu/jw/util/common/LatitudeUtils.java

@ -16,7 +16,10 @@ import java.util.UUID;
public class LatitudeUtils {
    public static final String KEY_1 = "7d9fbeb43e975cd1e9477a7e5d5e192a";
    /**
     * 没有ak有的服务请求获取不到地址
     */
    public static final String ak = "wm9Cih17l010vL91nOfTbu8M";
@ -30,7 +33,7 @@ public class LatitudeUtils {
        try {
            //将地址转换成utf-8的16进制
            address = URLEncoder.encode(address, "UTF-8");
            URL tirc = new URL("http://api.map.baidu.com/geocoder?address="+ address +"&output=json&key="+ UUID.randomUUID().toString().replace("-",""));
            URL tirc = new URL("http://api.map.baidu.com/geocoder/v2/?address="+ address +"&output=json&key="+ UUID.randomUUID().toString().replace("-","")+"&ak="+ak);
            in = new BufferedReader(new InputStreamReader(tirc.openStream(),"UTF-8"));
@ -58,7 +61,9 @@ public class LatitudeUtils {
            e.printStackTrace();
        }finally{
            try {
                in.close();
                if(in!=null){
                    in.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

+ 43 - 0
common/common-util/src/main/java/com/yihu/jw/util/common/MobileUtils.java

@ -0,0 +1,43 @@
package com.yihu.jw.util.common;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * Created by 刘文彬 on 2018/4/23.
 */
public class MobileUtils {
    public static Boolean checkMobile(String mobile) {
        return checkCellphone(mobile);
    }
    /**
     * 验证手机号码
     * <p>
     * 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
     * 联通号码段:130、131、132、136、185、186、145
     * 电信号码段:133、153、180、189,181
     *
     * @param cellphone
     * @return
     */
    public static boolean checkCellphone(String cellphone) {
        String regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,1,5-9]))\\d{8}$";
        return check(cellphone, regex);
    }
    /**
     * 使用正则表达式进行表单验证
     */
    public static boolean check(String str, String regex) {
        boolean flag = false;
        try {
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(str);
            flag = matcher.matches();
        } catch (Exception e) {
            flag = false;
        }
        return flag;
    }
}

+ 58 - 0
common/common-util/src/main/java/com/yihu/jw/util/common/NetworkUtil.java

@ -0,0 +1,58 @@
package com.yihu.jw.util.common;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
/** 
 * 常用获取客户端信息的工具 
 *  
 */
public final class NetworkUtil {
	/**
	 * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址;
	 *
	 * @param request
	 * @return
	 * @throws IOException
	 */
	public final static String getIpAddress(HttpServletRequest request) throws IOException {
		// 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
		String ip = request.getHeader("X-Forwarded-For");
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
				ip = request.getHeader("Proxy-Client-IP");
			}
			if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
				ip = request.getHeader("WL-Proxy-Client-IP");
			}
			if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
				ip = request.getHeader("HTTP_CLIENT_IP");
			}
			if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
				ip = request.getHeader("HTTP_X_FORWARDED_FOR");
			}
			if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
				ip = request.getRemoteAddr();
			}
		} else if (ip.length() > 15) {
			String[] ips = ip.split(",");
			for (int index = 0; index < ips.length; index++) {
				String strIp = (String) ips[index];
				if (!("unknown".equalsIgnoreCase(strIp))) {
					ip = strIp;
					break;
				}
			}
		}
		return ip;
	}
}

+ 39 - 0
common/common-util/src/main/java/com/yihu/jw/util/common/SmsValidateCodeUtils.java

@ -0,0 +1,39 @@
package com.yihu.jw.util.common;
import com.yihu.jw.vo.ValidateCode;
import org.springframework.web.context.request.ServletWebRequest;
import java.util.Random;
/**
 * Created by 刘文彬 on 2018/4/23.
 */
public class SmsValidateCodeUtils {
    /**
     *
     * @param length 短信验证码长度
     * @param expireIn 短信验证码过期时间
     * @return
     */
    public static ValidateCode generate(int length,int expireIn) {
        String code = getFixLenthString(length);
        ValidateCode validateCode = new ValidateCode(code, expireIn);
        return validateCode;
    }
    /*
 * 返回长度为【strLength】的随机数,在前面补0
 */
    private static String getFixLenthString(int strLength) {
        Random rm = new Random();
        // 获得随机数
        double pross = (1 + rm.nextDouble()) * Math.pow(10, strLength);
        // 将获得的获得随机数转化为字符串
        String fixLenthString = String.valueOf(pross);
        // 返回固定的长度的随机数
        return fixLenthString.substring(1, strLength + 1);
    }
}

+ 221 - 0
common/common-util/src/main/java/com/yihu/jw/util/http/HttpClientUtil.java

@ -0,0 +1,221 @@
package com.yihu.jw.util.http;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Component
public class HttpClientUtil {
    /**
     * 发送post请求
     *
     * @param url     请求地址
     * @param params  请求参数
     * @param chatSet 编码格式
     * @return
     */
    public  String post(String url, List<NameValuePair> params, String chatSet) {
        // 创建默认的httpClient实例.
        CloseableHttpClient httpclient = HttpClients.createDefault();
        // 创建httppost
        HttpPost httppost = new HttpPost(url);
        UrlEncodedFormEntity uefEntity;
        try {
            uefEntity = new UrlEncodedFormEntity(params, chatSet);
            httppost.setEntity(uefEntity);
            CloseableHttpResponse response = httpclient.execute(httppost);
            try {
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    return EntityUtils.toString(entity, chatSet);
                }
            } finally {
                response.close();
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接,释放资源
            try {
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
    /**
     * 发送get请求
     *
     * @param url     请求地址
     * @param chatSet 编码格式
     * @return
     */
    public  String get(String url, String chatSet) {
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            // 创建httpget.
            HttpGet httpget = new HttpGet(url);
            // 执行get请求.
            CloseableHttpResponse response = httpclient.execute(httpget);
            try {
                // 获取响应实体
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    return EntityUtils.toString(entity, chatSet);
                }
            } finally {
                response.close();
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接,释放资源
            try {
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
    /**
     * http调用方法,(健康之路开放平台)
     *
     * @param url
     * @param params
     * @return
     * @throws Exception
     */
    public  String httpPost(String url, Map<String, String> params) throws Exception {
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            HttpPost httpPost = new HttpPost(url);
            if (params != null && params.size() > 0) {
                List<NameValuePair> valuePairs = new ArrayList<NameValuePair>(params.size());
                for (Map.Entry<String, String> entry : params.entrySet()) {
                    NameValuePair nameValuePair = new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue()));
                    valuePairs.add(nameValuePair);
                }
                UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(valuePairs, "UTF-8");
                httpPost.setEntity(formEntity);
            }
            CloseableHttpResponse resp = httpclient.execute(httpPost);
            try {
                HttpEntity entity = resp.getEntity();
                String respContent = EntityUtils.toString(entity, "UTF-8").trim();
                return respContent;
            } finally {
                resp.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            httpclient.close();
        }
    }
    /**
     * 获取加密后参数集合(健康之路开放平台)
     *
     * @param params
     * @return
     */
    public  Map<String, String> getSecretParams(Map<String, String> params, String appId, String secret) {
        String timestamp = Long.toString(System.currentTimeMillis());
        params.put("timestamp", timestamp);
        StringBuilder stringBuilder = new StringBuilder();
        // 对参数名进行字典排序  
        String[] keyArray = params.keySet().toArray(new String[0]);
        Arrays.sort(keyArray);
        // 拼接有序的参数名-值串  
        stringBuilder.append(appId);
        for (String key : keyArray) {
            stringBuilder.append(key).append(params.get(key));
        }
        String codes = stringBuilder.append(secret).toString();
        String sign = org.apache.commons.codec.digest.DigestUtils.shaHex(codes).toUpperCase();
        // 添加签名,并发送请求  
        params.put("appId", appId);
        params.put("sign", sign);
        return params;
    }
    public static String postBody(String url, JSONObject params) {
        RestTemplate restTemplate = new RestTemplate();
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(type);
        headers.add("Accept", MediaType.ALL_VALUE.toString());
        headers.add("Cache-Control", "no-cache");
        org.springframework.http.HttpEntity<String> formEntity = new org.springframework.http.HttpEntity<String>(params.toString(), headers);
        String ret = restTemplate.postForObject(url, formEntity, String.class);
        return ret;
    }
    public  void putBody(String url, JSONObject params) {
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        org.springframework.http.HttpEntity<String> formEntity = new org.springframework.http.HttpEntity<String>(params.toString(), headers);
        restTemplate.put(url, formEntity, String.class);
    }
    /**
     * 发送post请求
     *
     * @param url     请求地址
     * @param params  请求参数
     * @return
     */
    public String iotPostBody(String url, String params) {
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        org.springframework.http.HttpEntity<String> formEntity = new org.springframework.http.HttpEntity<String>(params, headers);
        String ret = restTemplate.postForObject(url, formEntity, String.class);
        return ret;
    }
}

+ 72 - 0
common/common-util/src/main/java/com/yihu/jw/vo/ValidateCode.java

@ -0,0 +1,72 @@
package com.yihu.jw.vo;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
 * Created by 刘文彬 on 2018/4/23.
 */
public class ValidateCode implements Serializable {
    private String code;
    private LocalDateTime expireTime;
    private LocalDateTime createTime=LocalDateTime.now();
    public ValidateCode() {
    }
    public ValidateCode(String code, int expireIn) {
        this.code = code;
        this.expireTime = LocalDateTime.now().plusMinutes(expireIn);
    }
    public ValidateCode(String code, LocalDateTime expireTime) {
        this.code = code;
        this.expireTime = expireTime;
    }
    public boolean isExpried() {
        return LocalDateTime.now().isAfter(expireTime);
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public LocalDateTime getExpireTime() {
        return expireTime;
    }
    public void setExpireTime(LocalDateTime expireTime) {
        this.expireTime = expireTime;
    }
    public String getExpireTimeString() {
        return expireTime.format(DateTimeFormatter.ISO_DATE_TIME);
    }
    public void setExpireTimeString(String strTime) {
        expireTime = LocalDateTime.parse(strTime, DateTimeFormatter.ISO_DATE_TIME);
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }
    public String getCreateTimeString() {
        return createTime.format(DateTimeFormatter.ISO_DATE_TIME);
    }
    public void setCreateTimeString(String createTime) {
        this.createTime = LocalDateTime.parse(createTime, DateTimeFormatter.ISO_DATE_TIME);
    }
}

+ 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
---

+ 7 - 2
server/svr-discovery/pom.xml

@ -13,12 +13,13 @@
    <groupId>com.yihu.jw</groupId>
    <artifactId>svr-discovery</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <!--<artifactId>spring-cloud-starter-eureka-server</artifactId>-->
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
@ -37,6 +38,10 @@
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
        </dependency>
    </dependencies>
    <build>

+ 185 - 0
server/svr-discovery/src/main/java/com.yihu.jw/controller/DiscoveryController.java

@ -0,0 +1,185 @@
package com.yihu.jw.controller;
import com.netflix.appinfo.DataCenterInfo;
import com.netflix.appinfo.EurekaInstanceConfig;
import com.netflix.appinfo.InstanceInfo;
import com.netflix.appinfo.LeaseInfo;
import com.netflix.discovery.shared.Application;
import com.netflix.eureka.EurekaServerContext;
import com.netflix.eureka.cluster.PeerEurekaNode;
import com.netflix.eureka.registry.PeerAwareInstanceRegistry;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
/**
 * Created by chenweida on 2018/5/5 0005.
 */
@RestController
@RequestMapping(value = "/discovery", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class DiscoveryController {
    @Autowired
    private EurekaServerContext eurekaServerContext;
    /**
     * 获取发现服务的信息
     * @return
     */
    @GetMapping("eurukaMessage")
    public String eurukaMessage() {
        JSONObject jo = new JSONObject();
        jo.put("euruka服务器数", eurekaServerContext.getPeerEurekaNodes().getPeerEurekaNodes().size());
        EurekaInstanceConfig eurekaInstanceConfig = eurekaServerContext.getApplicationInfoManager().getEurekaInstanceConfig();
        jo.put("appGroupName", eurekaInstanceConfig.getAppGroupName());
        jo.put("getAppname", eurekaInstanceConfig.getAppname());
        jo.put("getASGName", eurekaInstanceConfig.getASGName());
        jo.put("DataCenterInfo-name", eurekaInstanceConfig.getDataCenterInfo().getName());
        jo.put("getDefaultAddressResolutionOrder", eurekaInstanceConfig.getDefaultAddressResolutionOrder());
        jo.put("getHealthCheckUrl", eurekaInstanceConfig.getHealthCheckUrl());
        jo.put("getHealthCheckUrlPath", eurekaInstanceConfig.getHealthCheckUrlPath());
        jo.put("getHomePageUrl", eurekaInstanceConfig.getHomePageUrl());
        jo.put("getHomePageUrlPath", eurekaInstanceConfig.getHomePageUrlPath());
        jo.put("getHostName", eurekaInstanceConfig.getHostName(true));
        jo.put("getInstanceId", eurekaInstanceConfig.getInstanceId());
        jo.put("getIpAddress", eurekaInstanceConfig.getIpAddress());
        jo.put("getLeaseExpirationDurationInSeconds", eurekaInstanceConfig.getLeaseExpirationDurationInSeconds());
        jo.put("getLeaseRenewalIntervalInSeconds", eurekaInstanceConfig.getLeaseRenewalIntervalInSeconds());
        jo.put("getMetadataMap", eurekaInstanceConfig.getMetadataMap());
        jo.put("getNamespace", eurekaInstanceConfig.getNamespace());
        jo.put("getNonSecurePort", eurekaInstanceConfig.getNonSecurePort());
        jo.put("getSecureHealthCheckUrl", eurekaInstanceConfig.getSecureHealthCheckUrl());
        jo.put("getSecurePort", eurekaInstanceConfig.getSecurePort());
        jo.put("getSecurePortEnabled", eurekaInstanceConfig.getSecurePortEnabled());
        jo.put("getSecureVirtualHostName", eurekaInstanceConfig.getSecureVirtualHostName());
        jo.put("getSecureHealthCheckUrl", eurekaInstanceConfig.getSecureHealthCheckUrl());
        JSONArray ja = new JSONArray();
        for (int i = 0; i < eurekaServerContext.getPeerEurekaNodes().getPeerNodesView().size(); i++) {
            PeerEurekaNode peerEurekaNode = eurekaServerContext.getPeerEurekaNodes().getPeerNodesView().get(i);
            JSONObject temp = new JSONObject();
            temp.put("服务器地址(serviceUrl)", peerEurekaNode.getServiceUrl());
            temp.put("batcherName", peerEurekaNode.getBatcherName());
            ja.add(temp);
        }
        jo.put("euruka服务器资料", ja);
        return jo.toString();
    }
    /**
     * 获取注册服务的信息
     * @return
     */
    @GetMapping("eurukaApplicationMessage")
    public String eurukaApplicationMessage() {
        PeerAwareInstanceRegistry peerAwareInstanceRegistry = eurekaServerContext.getRegistry();
        JSONObject jo = new JSONObject();
        jo.put("注册到发现服务的应用数目:", peerAwareInstanceRegistry.getApplications().size());
        JSONArray ja = new JSONArray();
        for (int i = 0; i < peerAwareInstanceRegistry.getApplications().getRegisteredApplications().size(); i++) {
            Application application = peerAwareInstanceRegistry.getApplications().getRegisteredApplications().get(i);
            JSONObject temp = new JSONObject();
            temp.put("名称", application.getName());
            ja.add(temp);
        }
        jo.put("服务列表",ja);
        return jo.toString();
    }
    /**
     * 注册服务
     * @param instanceId
     * @param appName
     * @param appGroupName
     * @param ipAddr
     * @param sid
     * @param port
     * @param securePort
     * @param homePageUrl
     * @param statusPageUrl
     * @param healthCheckUrl
     * @param secureHealthCheckUrl
     * @param vipAddress
     * @param secureVipAddress
     * @param countryId
     * @param dataCenterInfo
     * @param hostName
     * @param status
     * @param overriddenstatus
     * @param leaseInfo
     * @param isCoordinatingDiscoveryServer
     * @param metadata
     * @param lastUpdatedTimestamp
     * @param lastDirtyTimestamp
     * @param actionType
     * @param asgName
     * @return
     */
    @PostMapping("register")
    public String register(
            @RequestParam("instanceId") String instanceId,
            @RequestParam("app") String appName,
            @RequestParam("appGroupName") String appGroupName,
            @RequestParam("ipAddr") String ipAddr,
            @RequestParam("sid") String sid,
            @RequestParam("port") InstanceInfo.PortWrapper port,
            @RequestParam("securePort") InstanceInfo.PortWrapper securePort,
            @RequestParam("homePageUrl") String homePageUrl,
            @RequestParam("statusPageUrl") String statusPageUrl,
            @RequestParam("healthCheckUrl") String healthCheckUrl,
            @RequestParam("secureHealthCheckUrl") String secureHealthCheckUrl,
            @RequestParam("vipAddress") String vipAddress,
            @RequestParam("secureVipAddress") String secureVipAddress,
            @RequestParam("countryId") int countryId,
            @RequestParam("dataCenterInfo") DataCenterInfo dataCenterInfo,
            @RequestParam("hostName") String hostName,
            @RequestParam("status") InstanceInfo.InstanceStatus status,
            @RequestParam("overriddenstatus") InstanceInfo.InstanceStatus overriddenstatus,
            @RequestParam("leaseInfo") LeaseInfo leaseInfo,
            @RequestParam("isCoordinatingDiscoveryServer") Boolean isCoordinatingDiscoveryServer,
            @RequestParam("metadata") HashMap<String, String> metadata,
            @RequestParam("lastUpdatedTimestamp") Long lastUpdatedTimestamp,
            @RequestParam("lastDirtyTimestamp") Long lastDirtyTimestamp,
            @RequestParam("actionType") InstanceInfo.ActionType actionType,
            @RequestParam("asgName") String asgName
    ) {
        try {
            InstanceInfo info = new InstanceInfo(
                    instanceId, appName, appGroupName, ipAddr,
                    sid, port, securePort, homePageUrl,
                    statusPageUrl, healthCheckUrl, secureHealthCheckUrl, vipAddress,
                    secureVipAddress, countryId, dataCenterInfo, hostName,
                    status, overriddenstatus, leaseInfo, isCoordinatingDiscoveryServer,
                    metadata, lastUpdatedTimestamp, lastDirtyTimestamp, actionType, asgName);
            eurekaServerContext.getRegistry().register(info, true);
            return "注册成功";
        } catch (Exception e) {
            return "注册失败";
        }
    }
    /**
     * 取消注册
     * @param appName
     * @param id
     * @param isReplication
     * @return
     */
    @PostMapping("cancel")
    public String cancel(
            @RequestParam("appName") String appName,
            @RequestParam("id") String id,
            @RequestParam("isReplication") boolean isReplication
    ) {
        try {
            eurekaServerContext.getRegistry().cancel(appName, id, isReplication);
            return "取消成功";
        } catch (Exception e) {
            return "取消失败";
        }
    }
}

+ 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>

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


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません