提交 eaec24d4 authored 作者: ZTL's avatar ZTL

新增:

1.`实体清单事件获取`接口 2.`获取指定事件对应的实体`接口 3.`获取实体详情`接口
上级 b1987d19
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>3.0.2</spring-boot.version> <spring-boot.version>3.0.2</spring-boot.version>
<hibernate.version>6.6.0.Final</hibernate.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
...@@ -44,8 +45,8 @@ ...@@ -44,8 +45,8 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.dameng</groupId> <groupId>com.dameng</groupId>
<artifactId>DmDialect-for-hibernate6.1</artifactId> <artifactId>DmDialect-for-hibernate6.6</artifactId>
<version>8.1.4.6</version> <version>8.1.4.93</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
......
package org.aircas.entitylist.controller; package org.aircas.entitylist.controller;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.aircas.entitylist.entity.DEvent; import org.aircas.entitylist.entity.*;
import org.aircas.entitylist.entity.DTO.DEventDTO; import org.aircas.entitylist.entity.VO.DEventVO;
import org.aircas.entitylist.entity.VO.EventEntityDetailVO;
import org.aircas.entitylist.entity.VO.EventEntityVO;
import org.aircas.entitylist.service.EntityListService; import org.aircas.entitylist.service.EntityListService;
import org.aircas.entitylist.util.Result;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
...@@ -13,8 +16,8 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -13,8 +16,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
@RestController @RestController
@RequestMapping("/application_system") @RequestMapping("/application_system")
...@@ -24,16 +27,63 @@ public class EntityListController { ...@@ -24,16 +27,63 @@ public class EntityListController {
@Resource @Resource
private EntityListService entityListService; private EntityListService entityListService;
/**
* 查询`event_type`为`实体清单`的事件
* @param page
* @param size
* @param sortBy
* @return
*/
@GetMapping("/risk_list") @GetMapping("/risk_list")
public Page<DEventDTO> getRiskList(@RequestParam(defaultValue = "0") int page, public Result<Page<DEventVO>> getRiskList(@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size, @RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "id") String sortBy) { @RequestParam(defaultValue = "id") String sortBy) {
// 仅查询`event_type`为`实体清单`的事件 // 仅查询`event_type`为`实体清单`的事件
DEvent dEvent = new DEvent(); DEvent dEvent = new DEvent();
dEvent.setEventType(Event_Type); dEvent.setEventType(Event_Type);
Pageable pageable = PageRequest.of(page, size, Sort.by(sortBy)); Pageable pageable = PageRequest.of(page, size, Sort.by(sortBy));
Page<DEvent> riskList = entityListService.getRiskList(dEvent, pageable); Page<DEvent> riskList = entityListService.getRiskList(dEvent, pageable);
return riskList.map(DEventDTO::new); return Result.ok(riskList.map(DEventVO::new));
} }
/**
* 获取指定事件下的实体清单
*
* @param event_id
* @param page
* @param size
* @param sortBy
* @return
*/
@GetMapping("/event_entity_list")
public Result getEventEntityList(@RequestParam String event_id,
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "id") String sortBy) {
// 获取指定event_id下的实体清单
DEntity dEntity = new DEntity();
dEntity.setEvent_id(event_id);
Pageable pageable = PageRequest.of(page, size, Sort.by(sortBy));
Page<DEntity> eventEntityPage = entityListService.getEntityList(dEntity, pageable);
return Result.ok(eventEntityPage.map(EventEntityVO::new));
}
/**
* 获取指定实体的详细信息
*
* // todo : event_entity_id的含义
* @param event_entity_id 实体id
* @return
*/
@GetMapping("/event_entity_detail")
public Result getEventEntityDetail(@RequestParam String event_entity_id) {
DEntity dEntity = new DEntity();
dEntity.setId(event_entity_id);
DEntity entity = Optional.of(entityListService.getEntityList(dEntity, Pageable.unpaged()).getContent().get(0)).orElse(null);
List<DDomain> domain = entityListService.getdomainByEntityId(entity.getId());
List<DAddress> address = entityListService.getAddressByEntityId(entity.getId());
List<DAlias> alias = entityListService.getAliasByEntityId(entity.getId());
EventEntityDetailVO eventEntityDetailDTO = new EventEntityDetailVO(entity, domain, alias, address);
return Result.ok(eventEntityDetailDTO);
}
} }
...@@ -23,20 +23,25 @@ public class DAddress { ...@@ -23,20 +23,25 @@ public class DAddress {
// 城市 // 城市
private String city; private String city;
// 城市_中文 // 城市_中文
private String city_zh; @Column(name = "city_zh")
private String cityZh;
// 省份 // 省份
private String province; private String province;
// 省份_中文 // 省份_中文
private String province_zh; @Column(name = "province_zh")
private String provinceZh;
// 国家 // 国家
private String country; private String country;
// 国家_中文 // 国家_中文
private String country_zh; @Column(name = "country_zh")
private String countryZh;
// 地址对应的实体编号 // 地址对应的实体编号
private String entity_id; @Column(name = "entity_id")
private String entityId;
// 实体所处的清单类别 // 实体所处的清单类别
private String type; private String type;
// 创建时间 // 创建时间
@Column(name = "created_time")
private LocalDateTime createdTime; private LocalDateTime createdTime;
} }
package org.aircas.entitylist.entity; package org.aircas.entitylist.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
import jakarta.persistence.Id; import jakarta.persistence.Id;
import jakarta.persistence.Table; import jakarta.persistence.Table;
...@@ -20,7 +21,8 @@ public class DAlias { ...@@ -20,7 +21,8 @@ public class DAlias {
// 实体所处的清单类别 // 实体所处的清单类别
private String type; private String type;
// 实体id // 实体id
private String entity_id; @Column(name = "ENTITY_ID")
private String entityId;
// 创建时间 // 创建时间
private LocalDateTime createdTime; private LocalDateTime createdTime;
} }
package org.aircas.entitylist.entity; package org.aircas.entitylist.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
import jakarta.persistence.Id; import jakarta.persistence.Id;
import jakarta.persistence.Table; import jakarta.persistence.Table;
...@@ -14,7 +15,9 @@ public class DDomain { ...@@ -14,7 +15,9 @@ public class DDomain {
@Id @Id
private String id; private String id;
private String name; private String name;
private String entity_id; @Column(name = "entity_id")
private String entityId;
private String type; private String type;
@Column(name = "created_time")
private LocalDateTime createdTime; private LocalDateTime createdTime;
} }
...@@ -30,6 +30,6 @@ public class DEntity { ...@@ -30,6 +30,6 @@ public class DEntity {
private String status; private String status;
// 创建时间 // 创建时间
private LocalDateTime createdTime; private LocalDateTime createdTime;
// 实体id // 实体id todo:这个字段与id有什么区别
private String entityId; private String entityId;
} }
package org.aircas.entitylist.entity.DTO; package org.aircas.entitylist.entity.VO;
import lombok.Data; import lombok.Data;
import org.aircas.entitylist.entity.DEvent; import org.aircas.entitylist.entity.DEvent;
@Data @Data
public class DEventDTO { public class DEventVO {
private String event_id; private String event_id;
private String title; private String title;
private String title_en; private String title_en;
private String type; private String type;
private String date; private String date;
public DEventDTO(DEvent event) { public DEventVO(DEvent event) {
this.event_id = event.getId(); this.event_id = event.getId();
this.title = event.getTitle(); this.title = event.getTitle();
this.title_en = event.getTitle_en(); this.title_en = event.getTitle_en();
......
package org.aircas.entitylist.entity.VO;
import lombok.Data;
import org.aircas.entitylist.entity.DAddress;
import org.aircas.entitylist.entity.DAlias;
import org.aircas.entitylist.entity.DDomain;
import org.aircas.entitylist.entity.DEntity;
import java.util.List;
import java.util.stream.Collectors;
@Data
public class EventEntityDetailVO {
private String entity_id;
private String name;
private String entity_type;
private String status;
private String sanction_reason;
private List<DomainVO> domains;
private List<AddressVO> addresses;
private List<AliasVO> aliases;
public EventEntityDetailVO(DEntity dEntity, List<DDomain> dDomains, List<DAlias> dAliases, List<DAddress> dAddresses) {
this.entity_id = dEntity.getId();
this.name = dEntity.getName();
this.entity_type = dEntity.getEntity_type();
this.status = dEntity.getStatus();
this.domains = dDomains.stream().map(DomainVO::new).collect(Collectors.toList());
this.addresses = dAddresses.stream().map(AddressVO::new).collect(Collectors.toList());
this.aliases = dAliases.stream().map(AliasVO::new).collect(Collectors.toList());
}
}
@Data
class DomainVO {
private String id;
private String name;
public DomainVO(DDomain dDomain) {
this.id = dDomain.getId();
this.name = dDomain.getName();
}
}
@Data
class AddressVO {
private String id;
private String text;
private String text_zh;
private String province;
private String city;
private String province_zh;
private String city_zh;
public AddressVO(DAddress dAddress) {
if (dAddress != null) {
this.id = dAddress.getId();
this.text = dAddress.getText();
this.text_zh = dAddress.getText_zh();
this.province = dAddress.getProvince();
this.city = dAddress.getCity();
this.province_zh = dAddress.getProvinceZh();
this.city_zh = dAddress.getCityZh();
}
}
}
@Data
class AliasVO {
private String id;
private String name;
private String name_zh;
public AliasVO(DAlias dAlias) {
this.id = dAlias.getId();
this.name = dAlias.getName();
this.name_zh = dAlias.getName_zh();
}
}
package org.aircas.entitylist.entity.VO;
import lombok.Data;
import org.aircas.entitylist.entity.DEntity;
@Data
public class EventEntityVO {
private String event_entity_id;
private String entity_name;
private String entity_type;
private String status;
public EventEntityVO(DEntity dEntity) {
this.event_entity_id = dEntity.getId();
this.entity_name = dEntity.getName();
this.entity_type = dEntity.getEntity_type();
this.status = dEntity.getStatus();
}
}
package org.aircas.entitylist.repository;
import org.aircas.entitylist.entity.DAddress;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
public interface DAddressRepository extends JpaRepository<DAddress, String>, JpaSpecificationExecutor<DAddress> {
List<DAddress> findByEntityId(String entityId);
}
package org.aircas.entitylist.repository;
import org.aircas.entitylist.entity.DAlias;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
public interface DAliasRepository extends JpaRepository<DAlias, String>, JpaSpecificationExecutor<DAlias> {
List<DAlias> findByEntityId(String entityId);
}
package org.aircas.entitylist.repository;
import org.aircas.entitylist.entity.DDomain;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
public interface DDomainRepository extends JpaRepository<DDomain, String>, JpaSpecificationExecutor<DDomain> {
List<DDomain> findByEntityId(String entityId);
}
package org.aircas.entitylist.repository;
import org.aircas.entitylist.entity.DEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface DEntityRepository extends JpaRepository<DEntity, String>, JpaSpecificationExecutor<DEntity> {
}
package org.aircas.entitylist.service; package org.aircas.entitylist.service;
import org.aircas.entitylist.entity.DEvent; import org.aircas.entitylist.entity.*;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
...@@ -8,4 +8,13 @@ import java.util.List; ...@@ -8,4 +8,13 @@ import java.util.List;
public interface EntityListService { public interface EntityListService {
Page<DEvent> getRiskList(DEvent dEvent, Pageable pageable); Page<DEvent> getRiskList(DEvent dEvent, Pageable pageable);
Page<DEntity> getEntityList(DEntity dEntity, Pageable pageable);
List<DDomain> getdomainByEntityId(String entityId);
List<DAddress> getAddressByEntityId(String entityId);
List<DAlias> getAliasByEntityId(String entityId);
} }
package org.aircas.entitylist.service.serviceImpl; package org.aircas.entitylist.service.serviceImpl;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.aircas.entitylist.entity.DEvent; import org.aircas.entitylist.entity.*;
import org.aircas.entitylist.repository.DEventRepository; import org.aircas.entitylist.repository.*;
import org.aircas.entitylist.service.EntityListService; import org.aircas.entitylist.service.EntityListService;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
...@@ -18,10 +18,25 @@ public class EntityListServiceImpl implements EntityListService { ...@@ -18,10 +18,25 @@ public class EntityListServiceImpl implements EntityListService {
@Resource @Resource
private DEventRepository dEventRepository; private DEventRepository dEventRepository;
@Resource
private DEntityRepository dEntityRepository;
@Resource
private DAliasRepository dAliasRepository;
@Resource
private DDomainRepository dDomainRepository;
@Resource
private DAddressRepository dAddressRepository;
@Override @Override
public Page<DEvent> getRiskList(DEvent dEvent, Pageable pageable) { public Page<DEvent> getRiskList(DEvent dEvent, Pageable pageable) {
Specification<DEvent> specification = (root, query, criteriaBuilder) -> { Specification<DEvent> specification = (root, query, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>(); List<Predicate> predicates = new ArrayList<>();
if (dEvent.getId() != null) {
predicates.add(criteriaBuilder.equal(root.get("id"), dEvent.getId()));
}
if (dEvent.getTitle() != null) { if (dEvent.getTitle() != null) {
predicates.add(criteriaBuilder.like(root.get("title"), "%" + dEvent.getTitle() + "%")); predicates.add(criteriaBuilder.like(root.get("title"), "%" + dEvent.getTitle() + "%"));
} }
...@@ -42,4 +57,44 @@ public class EntityListServiceImpl implements EntityListService { ...@@ -42,4 +57,44 @@ public class EntityListServiceImpl implements EntityListService {
return dEventRepository.findAll(specification, pageable); return dEventRepository.findAll(specification, pageable);
} }
@Override
public Page<DEntity> getEntityList(DEntity dEntity, Pageable pageable) {
Specification<DEntity> specification = (root, query, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>();
if (dEntity.getId() != null) {
predicates.add(criteriaBuilder.equal(root.get("id"), dEntity.getId()));
}
if (dEntity.getName() != null) {
predicates.add(criteriaBuilder.like(root.get("title"), "%" + dEntity.getName() + "%"));
}
if (dEntity.getEntity_type() != null) {
predicates.add(criteriaBuilder.like(root.get("title_en"), "%" + dEntity.getEntity_type() + "%"));
}
if (dEntity.getEntityId() != null) {
predicates.add(criteriaBuilder.equal(root.get("eventType"), dEntity.getEntityId()));
}
if (dEntity.getPostDate() != null) {
predicates.add(criteriaBuilder.equal(root.get("postDate"), dEntity.getPostDate()));
}
return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
};
return dEntityRepository.findAll(specification, pageable);
}
@Override
public List<DDomain> getdomainByEntityId(String entityId) {
return dDomainRepository.findByEntityId(entityId);
}
@Override
public List<DAddress> getAddressByEntityId(String entityId) {
return dAddressRepository.findByEntityId(entityId);
}
@Override
public List<DAlias> getAliasByEntityId(String entityId) {
return dAliasRepository.findByEntityId(entityId);
}
} }
package org.aircas.entitylist.util;
import lombok.Data;
@Data
public class Result<T> {
private Integer code;
private String msg;
private T data;
public Result() {
super();
}
public Result(Integer code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public static Result ok() {
Result result = new Result();
result.setCode(ResultConstant.SUCCESS_CODE);
result.setMsg(ResultConstant.SUCCESS_MSG);
return result;
}
public static Result ok(String msg) {
Result result = new Result();
result.setCode(ResultConstant.SUCCESS_CODE);
result.setMsg(msg);
return result;
}
public static Result ok(Object data) {
Result result = new Result();
result.setCode(ResultConstant.SUCCESS_CODE);
result.setMsg(ResultConstant.SUCCESS_MSG);
result.setData(data);
return result;
}
public static Result ok(Object data, String msg) {
Result result = new Result();
result.setCode(ResultConstant.SUCCESS_CODE);
result.setMsg(msg);
result.setData(data);
return result;
}
public static Result queryError(String msg) {
Result result = new Result();
result.setCode(ResultConstant.QUERY_ERROR_CODE);
result.setMsg(msg);
return result;
}
public static Result failure() {
Result result = new Result();
result.setCode(ResultConstant.FAILURE_CODE);
result.setMsg(ResultConstant.FAILURE_MSG);
return result;
}
public static Result failure(String msg) {
Result result = new Result();
result.setCode(ResultConstant.FAILURE_CODE);
result.setMsg(msg);
return result;
}
public static Result failure(Object data) {
Result result = new Result();
result.setCode(ResultConstant.FAILURE_CODE);
result.setMsg(ResultConstant.FAILURE_MSG);
result.setData(data);
return result;
}
}
package org.aircas.entitylist.util;
/**
* @description 结果状态码封装
*/
public class ResultConstant {
public static final int SUCCESS_CODE = 200;
public static final int FAILURE_CODE = 400;
public static final int QUERY_ERROR_CODE = 500;
public static final String SUCCESS_MSG = "success";
public static final String FAILURE_MSG = "failed";
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论