wangliang 5 lat temu
rodzic
commit
ff725209f8

+ 43 - 0
themis-backend/src/main/java/com/qmth/themis/backend/api/TBUserController.java

@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.gson.Gson;
 import com.qmth.themis.backend.config.DictionaryConfig;
+import com.qmth.themis.backend.elasticsearch.entity.ETEStudentEntity;
+import com.qmth.themis.backend.elasticsearch.repository.ETEStudentRepo;
+import com.qmth.themis.backend.elasticsearch.service.ETEStudentService;
 import com.qmth.themis.backend.mongodb.entity.*;
 import com.qmth.themis.backend.util.ServletUtil;
 import com.qmth.themis.business.constant.SystemConstant;
@@ -159,6 +162,46 @@ public class TBUserController {
     @Resource
     MongoTemplate mongoTemplate;
 
+    @Resource
+    ETEStudentService eteStudentService;
+
+    @Resource
+    ETEStudentRepo eteStudentRepo;
+
+    @ApiOperation(value = "es查询接口")
+    @RequestMapping(value = "/es/list", method = RequestMethod.GET)
+    @Transactional
+    public Result esList() {
+//        eteStudentService.createIndex();
+        List<ETEStudentEntity> list = new ArrayList<>();
+        for (int i = 0; i < 10; i++) {
+            //学生档案
+            ETEStudentEntity eteStudentEntity = new ETEStudentEntity();
+            eteStudentEntity.setId(Constants.idGen.next());
+            eteStudentEntity.setOrgId(1L);
+            eteStudentEntity.setIdentity("test" + i);
+            eteStudentEntity.setPassword("123456");
+            eteStudentEntity.setIdcardNumber(RandomStringUtils.randomAlphanumeric(18));
+            eteStudentEntity.setMobileNumber(RandomStringUtils.randomNumeric(11));
+            eteStudentEntity.setName("java" + i + RandomStringUtils.randomAlphanumeric(30));
+            eteStudentEntity.setGender(1);
+            eteStudentEntity.setBasePhotoPath("http://11111");
+            eteStudentEntity.setCreateTime(new Date());
+            list.add(eteStudentEntity);
+        }
+        eteStudentService.saveAll(list);
+//        Iterator<ETEStudentEntity> iterator = eteStudentService.findAll();
+        org.springframework.data.domain.Page<ETEStudentEntity> eteStudentEntityPage1 = (org.springframework.data.domain.Page<ETEStudentEntity>) eteStudentService.queryName("2");
+//        List<ETEStudentEntity> eteStudentEntityList = eteStudentService.findByNameLike("java");
+        org.springframework.data.domain.Page<ETEStudentEntity> eteStudentEntityPage2 = (org.springframework.data.domain.Page<ETEStudentEntity>) eteStudentService.queryMobileNumber("2");
+//        Optional<ETEStudentEntity> eteStudentEntity = eteStudentRepo.findById(eteStudentEntityPage.getContent().get(0).getId());
+        Map map = new HashMap();
+        map.put(SystemConstant.RECORDS, eteStudentEntityPage1);
+        map.put(SystemConstant.RECORDS + 2, eteStudentEntityPage2);
+//        map.put("bean", eteStudentEntity.get());
+        return ResultUtil.ok(map);
+    }
+
     @ApiOperation(value = "用户查询接口")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     @Transactional

+ 169 - 0
themis-backend/src/main/java/com/qmth/themis/backend/elasticsearch/entity/ETEStudentEntity.java

@@ -0,0 +1,169 @@
+package com.qmth.themis.backend.elasticsearch.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.elasticsearch.annotations.Document;
+import org.springframework.data.elasticsearch.annotations.Field;
+import org.springframework.data.elasticsearch.annotations.FieldType;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: elasticsearch 学生档案 entity
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/6
+ */
+@ApiModel(value = "TEStudent", description = "学生档案")
+@Document(indexName = "student_index", shards = 1, replicas = 0)
+public class ETEStudentEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "机构ID")
+    @TableId(value = "org_id")
+    private Long orgId;
+
+    @ApiModelProperty(value = "证件号")
+    @TableId(value = "identity")
+//    @Field(type = FieldType.Keyword)
+//    @Field(type = FieldType.Auto)
+    private String identity;
+
+    @ApiModelProperty(value = "登陆密码,密文保存")
+    @TableId(value = "password")
+    private String password;
+
+    @ApiModelProperty(value = "身份证号")
+    @TableId(value = "idcard_number")
+    private String idcardNumber;
+
+    @ApiModelProperty(value = "手机号")
+    @TableId(value = "mobile_number")
+    @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String mobileNumber;
+
+    @ApiModelProperty(value = "姓名")
+    @TableId(value = "name")
+    @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    //keyword:存储数据时候,不会分词建立索引
+    //text:存储数据时候,会自动分词,并生成索引(这是很智能的,但在有些字段里面是没用的,所以对于有些字段使用text则浪费了空间)。
+    private String name;
+
+    @ApiModelProperty(value = "性别")
+    @TableId(value = "gender")
+//    @Field(type = FieldType.Integer)
+    private Integer gender;
+
+    @ApiModelProperty(value = "底照保存地址")
+    @TableId(value = "base_photo_path")
+    private String basePhotoPath;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableId(value = "create_time")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableId(value = "update_time")
+    private Date updateTime;
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public String getIdentity() {
+        return identity;
+    }
+
+    public void setIdentity(String identity) {
+        this.identity = identity;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getIdcardNumber() {
+        return idcardNumber;
+    }
+
+    public void setIdcardNumber(String idcardNumber) {
+        this.idcardNumber = idcardNumber;
+    }
+
+    public String getMobileNumber() {
+        return mobileNumber;
+    }
+
+    public void setMobileNumber(String mobileNumber) {
+        this.mobileNumber = mobileNumber;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getGender() {
+        return gender;
+    }
+
+    public void setGender(Integer gender) {
+        this.gender = gender;
+    }
+
+    public String getBasePhotoPath() {
+        return basePhotoPath;
+    }
+
+    public void setBasePhotoPath(String basePhotoPath) {
+        this.basePhotoPath = basePhotoPath;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 31 - 0
themis-backend/src/main/java/com/qmth/themis/backend/elasticsearch/repository/ETEStudentRepo.java

@@ -0,0 +1,31 @@
+package com.qmth.themis.backend.elasticsearch.repository;
+
+import com.qmth.themis.backend.elasticsearch.entity.ETEStudentEntity;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @Description: elasticsearch 学生档案 repo
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/7
+ */
+@Repository
+public interface ETEStudentRepo extends ElasticsearchRepository<ETEStudentEntity, Long> {
+
+    //默认的注释
+    Page<ETEStudentEntity> findByName(String name, Pageable pageable);
+
+    Page<ETEStudentEntity> findByIdentity(String identity, Pageable pageable);
+
+    Page<ETEStudentEntity> findByMobileNumber(String mobileNumber, Pageable pageable);
+
+    List<ETEStudentEntity> findByNameLike(String keyword);
+
+
+}

+ 41 - 0
themis-backend/src/main/java/com/qmth/themis/backend/elasticsearch/service/ETEStudentService.java

@@ -0,0 +1,41 @@
+package com.qmth.themis.backend.elasticsearch.service;
+
+import com.qmth.themis.backend.elasticsearch.entity.ETEStudentEntity;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.elasticsearch.annotations.Query;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+* @Description: elasticsearch 学生档案 服务类
+* @Param:  
+* @return:  
+* @Author: wangliang
+* @Date: 2020/7/6 
+*/ 
+public interface ETEStudentService {
+
+    void createIndex();
+
+    void deleteIndex(String index);
+
+    void save(ETEStudentEntity docBean);
+
+    void saveAll(List<ETEStudentEntity> list);
+
+    Iterator<ETEStudentEntity> findAll();
+
+    Page<ETEStudentEntity> findByName(String name, Pageable pageable);
+
+    Page<ETEStudentEntity> findByIdentity(String identity, Pageable pageable);
+
+    Page<ETEStudentEntity> findByMobileNumber(String mobileNumber, Pageable pageable);
+
+    Page<ETEStudentEntity> queryName(String key);
+
+    Page<ETEStudentEntity> queryMobileNumber(String key);
+
+    List<ETEStudentEntity> findByNameLike(String keyword);
+}

+ 88 - 0
themis-backend/src/main/java/com/qmth/themis/backend/elasticsearch/service/impl/ETEStudentServiceImpl.java

@@ -0,0 +1,88 @@
+package com.qmth.themis.backend.elasticsearch.service.impl;
+
+import com.qmth.themis.backend.elasticsearch.entity.ETEStudentEntity;
+import com.qmth.themis.backend.elasticsearch.repository.ETEStudentRepo;
+import com.qmth.themis.backend.elasticsearch.service.ETEStudentService;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @Description: elasticsearch 学生档案 服务实现类
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/6
+ */
+@Service
+public class ETEStudentServiceImpl implements ETEStudentService {
+
+    @Resource
+    ETEStudentRepo eteStudentRepo;
+
+    @Resource
+    ElasticsearchRestTemplate elasticsearchRestTemplate;
+
+    Pageable pageable = PageRequest.of(0, 10);
+
+    @Override
+    public void createIndex() {
+//        elasticsearchRestTemplate.createIndex(ETEStudentEntity.class);
+    }
+
+    @Override
+    public void deleteIndex(String index) {
+//        elasticsearchRestTemplate.deleteIndex(index);
+    }
+
+    @Override
+    public void save(ETEStudentEntity docBean) {
+        eteStudentRepo.save(docBean);
+    }
+
+    @Override
+    public void saveAll(List<ETEStudentEntity> list) {
+        eteStudentRepo.saveAll(list);
+    }
+
+    @Override
+    public Iterator<ETEStudentEntity> findAll() {
+        return eteStudentRepo.findAll().iterator();
+    }
+
+    @Override
+    public Page<ETEStudentEntity> findByName(String name, Pageable pageable) {
+        return eteStudentRepo.findByName(name, pageable);
+    }
+
+    @Override
+    public Page<ETEStudentEntity> findByIdentity(String identity, Pageable pageable) {
+        return eteStudentRepo.findByIdentity(identity, pageable);
+    }
+
+    @Override
+    public Page<ETEStudentEntity> findByMobileNumber(String mobileNumber, Pageable pageable) {
+        return eteStudentRepo.findByMobileNumber(mobileNumber, pageable);
+    }
+
+    @Override
+    public Page<ETEStudentEntity> queryName(String key) {
+        return eteStudentRepo.findByName(key, pageable);
+    }
+
+    @Override
+    public Page<ETEStudentEntity> queryMobileNumber(String key) {
+        return eteStudentRepo.findByMobileNumber(key, pageable);
+    }
+
+    @Override
+    public List<ETEStudentEntity> findByNameLike(String keyword) {
+        return eteStudentRepo.findByNameLike(keyword);
+    }
+}

+ 1 - 1
themis-backend/src/main/resources/application.properties

@@ -189,4 +189,4 @@ prefix.url.admin=api/admin
 
 #\u65E0\u9700\u9274\u6743\u7684url
 no.auth.urls=/webjars/**,/druid/**,/swagger-ui.html,/doc.html,/swagger-resources/**,/v2/api-docs,/webjars/springfox-swagger-ui/**,/api/admin/user/login/account
-common.system.urls=/api/admin/sys/getMenu,/api/admin/user/logout,/api/admin/sys/env,/api/admin/user/list
+common.system.urls=/api/admin/sys/getMenu,/api/admin/user/logout,/api/admin/sys/env,/api/admin/user/list,/api/admin/user/es/list