Browse Source

新增对es查询的支持

chenweida 8 years ago
parent
commit
a54c99ca68

+ 16 - 16
svr-lib-parent-pom/pom.xml

@ -20,17 +20,17 @@
    </developers>
    <!--deploy 的时候发布到这个服务器-->
    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>Releases</name>
            <url>http://172.19.103.43:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Snapshots</name>
            <url>http://172.19.103.43:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
    <repository>
        <id>releases</id>
        <name>Releases</name>
        <url>http://172.19.103.43:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <name>Snapshots</name>
        <url>http://172.19.103.43:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>
    <modules>
        <module>../svr-configuration</module> <!--配置服务-->
@ -272,11 +272,6 @@
                <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
                <version>${version.springBoot}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-elasticsearch</artifactId>
                <version>${version.spring-elasticsearch}</version>
            </dependency>
            <!--springBoot end-->
@ -323,6 +318,11 @@
                <artifactId>spring-data-commons</artifactId>
                <version>${version.spring-data-common}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-elasticsearch</artifactId>
                <version>${version.spring-elasticsearch}</version>
            </dependency>
            <!--spring end-->
            <!--数据库驱动 start-->

+ 4 - 2
svr/svr-quota/src/main/java/com/yihu/jw/SvrQuotaApplication.java

@ -1,17 +1,19 @@
package com.yihu.jw;
package com.yihu.jw.quota;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
/**
 * Created by chenweida on 2017/5/16.
 */
@SpringBootApplication
@EnableDiscoveryClient//服务注册到发现服务
@EnableElasticsearchRepositories(basePackages = "com.yihu.jw.quota.dao.es")
public class SvrQuotaApplication {
    public static void main(String[] args) {
        SpringApplication.run(SvrQuotaApplication.class, args);
    }
}
}

+ 44 - 0
svr/svr-quota/src/main/java/com/yihu/jw/quota/config/ElasticsearchConfig.java

@ -0,0 +1,44 @@
package com.yihu.jw.quota.config;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.transport.TransportAddress;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import java.net.InetAddress;
import java.net.UnknownHostException;
import static org.elasticsearch.node.NodeBuilder.nodeBuilder;
/**
 * Created by chenweida on 2017/5/23.
 */
@Configuration
public class ElasticsearchConfig {
    @Bean
    public ElasticsearchOperations elasticsearchTemplate() {
        ElasticsearchTemplate elasticsearchTemplate= new ElasticsearchTemplate(nodeBuilder().local(true).node().client());
        return elasticsearchTemplate;
    }
//    @Bean
//    public Client client() {
//        TransportClient client = TransportClient.builder().build();
//        try {
//            InetAddress[] i = InetAddress.getAllByName(hostname);
//            TransportAddress address = new InetSocketTransportAddress(i[0], port);
//
//            client.addTransportAddress(address);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//        return client;
//    }
}

+ 46 - 0
svr/svr-quota/src/main/java/com/yihu/jw/quota/controller/QuotaController.java

@ -0,0 +1,46 @@
package com.yihu.jw.quota.controller;
import com.yihu.jw.quota.model.QuotaResult;
import com.yihu.jw.quota.service.QuotaService;
import com.yihu.jw.restmodel.base.BaseContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.exception.ApiException;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
/**
 * Created by chenweida on 2017/5/23.
 */
@RestController
@RequestMapping("quota")
public class QuotaController {
    @Autowired
    private QuotaService quotaService;
    @GetMapping(value = "findBy_Id")
    public Envelop findBy_Id(
            @ApiParam(name = "id", value = "", defaultValue = "")
            @RequestParam(value = "id", required = true) String id) {
        try {
            return Envelop.getSuccess(BaseContants.Function.message_success_create, quotaService.findBy_Id(id));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @GetMapping(value = "findById")
    public Envelop findById(
            @ApiParam(name = "id", value = "", defaultValue = "")
            @RequestParam(value = "id", required = true) String id) {
        try {
            return Envelop.getSuccess(BaseContants.Function.message_success_create, quotaService.findById(id));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
}

+ 15 - 0
svr/svr-quota/src/main/java/com/yihu/jw/quota/dao/es/QuotaResultDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.quota.dao.es;
import com.yihu.jw.quota.model.QuotaResult;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
 * Created by chenweida on 2017/5/23.
 */
public interface QuotaResultDao extends ElasticsearchRepository<QuotaResult, String> {
    @Query("{\"index\":{\"user\" :{\"field\" : {\"id\" : \" ?0\"}}}}")
    QuotaResult findById(String id);
}

+ 209 - 0
svr/svr-quota/src/main/java/com/yihu/jw/quota/model/QuotaResult.java

@ -0,0 +1,209 @@
package com.yihu.jw.quota.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.*;
import java.util.Date;
/**
 * QuotaResult entity. @author MyEclipse Persistence Tools
 */
@Document(indexName = "index", type = "user", shards = 5, replicas = 0, refreshInterval = "-1")
public class QuotaResult implements java.io.Serializable {
    @Id
    private String id;
    private String quotaDate;//统计时间
    private String quatoCode;//指标code
    private String quatoName;//指标name
    private String result;//统计结果
    private String del;//1: 正常 0: 删除
    private String level1Type;//等级 1:团队 2社区机构 3区级 4市级
    private String level2Type;//如果有二级维度那么这个存的是二级维度的code 例如二级维度是性别 那么这个存 1
    private String level2TypeName;//如果有二级维度那么这个存的是二级维度的code 例如二级维度是性别 那么这个存 男
    private String level3Type;//如果有三级维度那么这个存的是三级维度的code 例如三级维度是疾病 那么这个存 1
    private String level3TypeName;//如果有三级维度那么这个存的是三级维度的code 例如三级维度是疾病 那么这个存 高血压
    private String city;//市
    private String cityName;//市级名称
    private String town;//区级
    private String townName;//区级名称
    private String orgCode;//机构code
    private String orgName;//机构名称
    private String qkdoctorName;//全科医生名称 --现在是团队名称
    private String qkdoctorCode;//全科医生code --现在是团队code
    private String qkdoctorJobName;//全科医生职称   用于检验统计线程判断指标是否需要重新生成  等于 1 的时候是不需要
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyyMMdd'T'HHmmss.SSS'Z'")
    @Field(type = FieldType.Date, format = DateFormat.basic_date_time, index = FieldIndex.not_analyzed)
    @CreatedDate
    private Date createTime;//创建时间
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getQuotaDate() {
        return quotaDate;
    }
    public void setQuotaDate(String quotaDate) {
        this.quotaDate = quotaDate;
    }
    public String getQuatoCode() {
        return quatoCode;
    }
    public void setQuatoCode(String quatoCode) {
        this.quatoCode = quatoCode;
    }
    public String getQuatoName() {
        return quatoName;
    }
    public void setQuatoName(String quatoName) {
        this.quatoName = quatoName;
    }
    public String getResult() {
        return result;
    }
    public void setResult(String result) {
        this.result = result;
    }
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
    public String getLevel1Type() {
        return level1Type;
    }
    public void setLevel1Type(String level1Type) {
        this.level1Type = level1Type;
    }
    public String getLevel2Type() {
        return level2Type;
    }
    public void setLevel2Type(String level2Type) {
        this.level2Type = level2Type;
    }
    public String getLevel2TypeName() {
        return level2TypeName;
    }
    public void setLevel2TypeName(String level2TypeName) {
        this.level2TypeName = level2TypeName;
    }
    public String getLevel3Type() {
        return level3Type;
    }
    public void setLevel3Type(String level3Type) {
        this.level3Type = level3Type;
    }
    public String getLevel3TypeName() {
        return level3TypeName;
    }
    public void setLevel3TypeName(String level3TypeName) {
        this.level3TypeName = level3TypeName;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public String getOrgName() {
        return orgName;
    }
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    public String getQkdoctorName() {
        return qkdoctorName;
    }
    public void setQkdoctorName(String qkdoctorName) {
        this.qkdoctorName = qkdoctorName;
    }
    public String getQkdoctorCode() {
        return qkdoctorCode;
    }
    public void setQkdoctorCode(String qkdoctorCode) {
        this.qkdoctorCode = qkdoctorCode;
    }
    public String getQkdoctorJobName() {
        return qkdoctorJobName;
    }
    public void setQkdoctorJobName(String qkdoctorJobName) {
        this.qkdoctorJobName = qkdoctorJobName;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

+ 25 - 0
svr/svr-quota/src/main/java/com/yihu/jw/quota/service/QuotaService.java

@ -0,0 +1,25 @@
package com.yihu.jw.quota.service;
import com.yihu.jw.quota.dao.es.QuotaResultDao;
import com.yihu.jw.quota.model.QuotaResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * Created by chenweida on 2017/5/23.
 */
@Service
public class QuotaService {
    @Autowired
    private QuotaResultDao quotaResultDao;
    public QuotaResult findById(String id) {
        QuotaResult quotaResult=quotaResultDao.findById(id);
        return quotaResult;
    }
    public QuotaResult findBy_Id(String id) {
        QuotaResult quotaResult=quotaResultDao.findOne(id);
        return quotaResult;
    }
}

+ 9 - 0
svr/svr-quota/src/main/resources/application.yml

@ -2,7 +2,16 @@
spring:
  application:
    name:  svr-quota  ##注册到发现服务的id 如果id一样 eurika会自动做负载
  data:
    elasticsearch:
      repositories:
        enabled: true
  elasticsearch:
      jest:
        proxy:
          host: 172.19.103.45
          port: 9300
---
spring: