diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/controller/DataCollectorController.java b/src/main/java/cn/lihongjie/coal/dataCollector/controller/DataCollectorController.java new file mode 100644 index 00000000..f524451c --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dataCollector/controller/DataCollectorController.java @@ -0,0 +1,54 @@ +package cn.lihongjie.coal.dataCollector.controller; + +import cn.lihongjie.coal.annotation.OrgScope; +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.dataCollector.dto.CreateDataCollectorDto; +import cn.lihongjie.coal.dataCollector.dto.DataCollectorDto; +import cn.lihongjie.coal.dataCollector.dto.UpdateDataCollectorDto; +import cn.lihongjie.coal.dataCollector.service.DataCollectorService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/dataCollector") +@SysLog(module = "数据采集器") +@Slf4j +@OrgScope +public class DataCollectorController { + @Autowired private DataCollectorService service; + + @PostMapping("/create") + public DataCollectorDto create(@RequestBody CreateDataCollectorDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public DataCollectorDto update(@RequestBody UpdateDataCollectorDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public DataCollectorDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/dto/CreateDataCollectorDto.java b/src/main/java/cn/lihongjie/coal/dataCollector/dto/CreateDataCollectorDto.java new file mode 100644 index 00000000..99211b80 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dataCollector/dto/CreateDataCollectorDto.java @@ -0,0 +1,17 @@ +package cn.lihongjie.coal.dataCollector.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; +import cn.lihongjie.coal.dataCollector.controller.DataCollectorController; +import cn.lihongjie.coal.errorMsg.ErrorMsgCode; +import cn.lihongjie.coal.validator.OrgUniq; +import cn.lihongjie.coal.validator.RequireCode; +import cn.lihongjie.coal.validator.RequireName; + +import lombok.Data; + +@Data +@RequireName +@RequireCode +@OrgUniq(fields = {"code"}, message = ErrorMsgCode.UNIQ_CODE, entityClass = DataCollectorController.class) +@OrgUniq(fields = {"name"}, message = ErrorMsgCode.UNIQ_NAME, entityClass = DataCollectorController.class) +public class CreateDataCollectorDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/dto/DataCollectorDto.java b/src/main/java/cn/lihongjie/coal/dataCollector/dto/DataCollectorDto.java new file mode 100644 index 00000000..084e659e --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dataCollector/dto/DataCollectorDto.java @@ -0,0 +1,25 @@ +package cn.lihongjie.coal.dataCollector.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +import org.hibernate.annotations.Comment; + +import java.time.LocalDateTime; + +@Data +public class DataCollectorDto extends OrgCommonDto { + + private String appKey; + private String appSecret; + + @Comment("心跳时间") + private LocalDateTime heartbeatTime; + + @Comment("最后登录时间") + private LocalDateTime lastLoginTime; + + @Comment("最后登出时间") + private LocalDateTime lastLogoutTime; +} diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/dto/UpdateDataCollectorDto.java b/src/main/java/cn/lihongjie/coal/dataCollector/dto/UpdateDataCollectorDto.java new file mode 100644 index 00000000..ca499eb8 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dataCollector/dto/UpdateDataCollectorDto.java @@ -0,0 +1,17 @@ +package cn.lihongjie.coal.dataCollector.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; +import cn.lihongjie.coal.dataCollector.controller.DataCollectorController; +import cn.lihongjie.coal.errorMsg.ErrorMsgCode; +import cn.lihongjie.coal.validator.OrgUniq; +import cn.lihongjie.coal.validator.RequireCode; +import cn.lihongjie.coal.validator.RequireName; + +import lombok.Data; + +@Data +@RequireName +@RequireCode +@OrgUniq(fields = {"code"}, message = ErrorMsgCode.UNIQ_CODE, entityClass = DataCollectorController.class) +@OrgUniq(fields = {"name"}, message = ErrorMsgCode.UNIQ_NAME, entityClass = DataCollectorController.class) +public class UpdateDataCollectorDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/entity/DataCollectorEntity.java b/src/main/java/cn/lihongjie/coal/dataCollector/entity/DataCollectorEntity.java new file mode 100644 index 00000000..1d8914a8 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dataCollector/entity/DataCollectorEntity.java @@ -0,0 +1,30 @@ +package cn.lihongjie.coal.dataCollector.entity; + +import cn.lihongjie.coal.base.entity.OrgCommonEntity; + +import jakarta.persistence.Entity; + +import lombok.Data; + +import org.hibernate.annotations.Comment; + +import java.time.LocalDateTime; + +@Data +@Entity +public class DataCollectorEntity extends OrgCommonEntity { + + + private String appKey; + private String appSecret; + + @Comment("心跳时间") + private LocalDateTime heartbeatTime; + + @Comment("最后登录时间") + private LocalDateTime lastLoginTime; + + @Comment("最后登出时间") + private LocalDateTime lastLogoutTime; + +} diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/mapper/DataCollectorMapper.java b/src/main/java/cn/lihongjie/coal/dataCollector/mapper/DataCollectorMapper.java new file mode 100644 index 00000000..5a4c8603 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dataCollector/mapper/DataCollectorMapper.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.dataCollector.mapper; + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.dataCollector.dto.CreateDataCollectorDto; +import cn.lihongjie.coal.dataCollector.dto.DataCollectorDto; +import cn.lihongjie.coal.dataCollector.dto.UpdateDataCollectorDto; +import cn.lihongjie.coal.dataCollector.entity.DataCollectorEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface DataCollectorMapper + extends BaseMapper< + DataCollectorEntity, + DataCollectorDto, + CreateDataCollectorDto, + UpdateDataCollectorDto> {} diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/repository/DataCollectorRepository.java b/src/main/java/cn/lihongjie/coal/dataCollector/repository/DataCollectorRepository.java new file mode 100644 index 00000000..b91f7694 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dataCollector/repository/DataCollectorRepository.java @@ -0,0 +1,9 @@ +package cn.lihongjie.coal.dataCollector.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.dataCollector.entity.DataCollectorEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface DataCollectorRepository extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/service/DataCollectorService.java b/src/main/java/cn/lihongjie/coal/dataCollector/service/DataCollectorService.java new file mode 100644 index 00000000..644d4c1c --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dataCollector/service/DataCollectorService.java @@ -0,0 +1,78 @@ +package cn.lihongjie.coal.dataCollector.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.dataCollector.dto.CreateDataCollectorDto; +import cn.lihongjie.coal.dataCollector.dto.DataCollectorDto; +import cn.lihongjie.coal.dataCollector.dto.UpdateDataCollectorDto; +import cn.lihongjie.coal.dataCollector.entity.DataCollectorEntity; +import cn.lihongjie.coal.dataCollector.mapper.DataCollectorMapper; +import cn.lihongjie.coal.dataCollector.repository.DataCollectorRepository; +import cn.lihongjie.coal.dbFunctions.DbFunctionService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.UUID; + +@Service +@Slf4j +@Transactional +public class DataCollectorService + extends BaseService { + @Autowired private DataCollectorRepository repository; + + @Autowired private DataCollectorMapper mapper; + + @Autowired private ConversionService conversionService; + + @Autowired private DbFunctionService dbFunctionService; + + public DataCollectorDto create(CreateDataCollectorDto request) { + DataCollectorEntity entity = mapper.toEntity(request); + + entity.setAppKey(UUID.randomUUID().toString()); + entity.setAppSecret(UUID.randomUUID().toString()); + this.repository.save(entity); + return getById(entity.getId()); + } + + public DataCollectorDto update(UpdateDataCollectorDto request) { + DataCollectorEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public DataCollectorDto getById(String id) { + DataCollectorEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/resources/scripts/dict/enum/dataCollectorDict.groovy b/src/main/resources/scripts/dict/enum/dataCollectorDict.groovy new file mode 100644 index 00000000..ed25a347 --- /dev/null +++ b/src/main/resources/scripts/dict/enum/dataCollectorDict.groovy @@ -0,0 +1,17 @@ + +package scripts.dict + +import cn.lihongjie.coal.base.dto.CommonQuery +import cn.lihongjie.coal.dataCollector.controller.DataCollectorController +import org.springframework.context.ApplicationContext + +ApplicationContext ioc = ioc + +def controller = ioc.getBean(DataCollectorController.class) + + + + +return controller.list(new CommonQuery()) + +