[fix] 添加流量管理

This commit is contained in:
wujiawei 2024-01-25 12:09:59 +08:00
parent 0040a97521
commit 05edb16c41
29 changed files with 1015 additions and 925 deletions

View File

@ -1,109 +0,0 @@
package wu.framework.lazy.cloud.heartbeat.server.application;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowRemoveCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowStoryCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowUpdateCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowQueryListCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowQueryOneCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
**/
public interface VisitorFlowApplication {
/**
* describe 新增访客端流量
*
* @param visitorFlowStoryCommand 新增访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorFlow> story(VisitorFlowStoryCommand visitorFlowStoryCommand);
/**
* describe 批量新增访客端流量
*
* @param visitorFlowStoryCommandList 批量新增访客端流量
* @return {@link Result<List<VisitorFlow>>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<List<VisitorFlow>> batchStory(List<VisitorFlowStoryCommand> visitorFlowStoryCommandList);
/**
* describe 更新访客端流量
*
* @param visitorFlowUpdateCommand 更新访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorFlow> updateOne(VisitorFlowUpdateCommand visitorFlowUpdateCommand);
/**
* describe 查询单个访客端流量
*
* @param visitorFlowQueryOneCommand 查询单个访客端流量
* @return {@link Result<VisitorFlowDTO>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorFlowDTO> findOne(VisitorFlowQueryOneCommand visitorFlowQueryOneCommand);
/**
* describe 查询多个访客端流量
*
* @param visitorFlowQueryListCommand 查询多个访客端流量
* @return {@link Result <List<VisitorFlowDTO>>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result <List<VisitorFlowDTO>> findList(VisitorFlowQueryListCommand visitorFlowQueryListCommand);
/**
* describe 分页查询多个访客端流量
*
* @param visitorFlowQueryListCommand 分页查询多个访客端流量
* @return {@link Result <LazyPage<VisitorFlowDTO>>} 分页访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result <LazyPage<VisitorFlowDTO>> findPage(int size,int current,VisitorFlowQueryListCommand visitorFlowQueryListCommand);
/**
* describe 删除访客端流量
*
* @param visitorFlowRemoveCommand 删除访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorFlow> remove(VisitorFlowRemoveCommand visitorFlowRemoveCommand);
}

View File

@ -0,0 +1,114 @@
package wu.framework.lazy.cloud.heartbeat.server.application;
import com.wu.framework.response.Result;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorPortFlowDTO;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorPortFlowStoryCommand;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
**/
public interface VisitorPortFlowApplication {
/**
* describe 新增访客端流量
*
* @param visitorPortFlowStoryCommand 新增访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorPortFlow> story(VisitorPortFlowStoryCommand visitorPortFlowStoryCommand);
/**
* describe 批量新增访客端流量
*
* @param visitorPortFlowStoryCommandList 批量新增访客端流量
* @return {@link Result<List< VisitorPortFlow >>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<List<VisitorPortFlow>> batchStory(List<VisitorPortFlowStoryCommand> visitorPortFlowStoryCommandList);
/**
* describe 更新访客端流量
*
* @param visitorPortFlowUpdateCommand 更新访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorPortFlow> updateOne(VisitorPortFlowUpdateCommand visitorPortFlowUpdateCommand);
/**
* describe 查询单个访客端流量
*
* @param visitorPortFlowQueryOneCommand 查询单个访客端流量
* @return {@link Result< VisitorPortFlowDTO >} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorPortFlowDTO> findOne(VisitorPortFlowQueryOneCommand visitorPortFlowQueryOneCommand);
/**
* describe 查询多个访客端流量
*
* @param visitorPortFlowQueryListCommand 查询多个访客端流量
* @return {@link Result <List<VisitorPortFlowDTO>>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result <List<VisitorPortFlowDTO>> findList(VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand);
/**
* describe 分页查询多个访客端流量
*
* @param visitorPortFlowQueryListCommand 分页查询多个访客端流量
* @return {@link Result <LazyPage<VisitorPortFlowDTO>>} 分页访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result <LazyPage<VisitorPortFlowDTO>> findPage(int size, int current, VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand);
/**
* describe 删除访客端流量
*
* @param visitorPortFlowRemoveCommand 删除访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorPortFlow> remove(VisitorPortFlowRemoveCommand visitorPortFlowRemoveCommand);
/**
* 根据客户端查询流量
* @param size 分页大小
* @param current 分页
* @param visitorPortFlowQueryListCommand 查询条件
* @return {@link Result<LazyPage< VisitorFlowDTO >>} 分页访客端流量DTO对象
*/
Result<LazyPage<VisitorFlowDTO>> findClientFlowPage(int size, int current, VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand);
}

View File

@ -1,93 +0,0 @@
package wu.framework.lazy.cloud.heartbeat.server.application.assembler;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowRemoveCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowStoryCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowUpdateCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowQueryListCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowQueryOneCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
import org.mapstruct.factory.Mappers;
import org.mapstruct.Mapper;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
**/
@Mapper
public interface VisitorFlowDTOAssembler {
/**
* describe MapStruct 创建的代理对象
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlowDTOAssembler INSTANCE = Mappers.getMapper(VisitorFlowDTOAssembler.class);
/**
* describe 应用层存储入参转换成 领域对象
*
* @param visitorFlowStoryCommand 保存访客端流量对象
* @return {@link VisitorFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlow toVisitorFlow(VisitorFlowStoryCommand visitorFlowStoryCommand);
/**
* describe 应用层更新入参转换成 领域对象
*
* @param visitorFlowUpdateCommand 更新访客端流量对象
* @return {@link VisitorFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlow toVisitorFlow(VisitorFlowUpdateCommand visitorFlowUpdateCommand);
/**
* describe 应用层查询入参转换成 领域对象
*
* @param visitorFlowQueryOneCommand 查询单个访客端流量对象参数
* @return {@link VisitorFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlow toVisitorFlow(VisitorFlowQueryOneCommand visitorFlowQueryOneCommand);
/**
* describe 应用层查询入参转换成 领域对象
*
* @param visitorFlowQueryListCommand 查询集合访客端流量对象参数
* @return {@link VisitorFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlow toVisitorFlow(VisitorFlowQueryListCommand visitorFlowQueryListCommand);
/**
* describe 应用层删除入参转换成 领域对象
*
* @param visitorFlowRemoveCommand 删除访客端流量对象参数
* @return {@link VisitorFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlow toVisitorFlow(VisitorFlowRemoveCommand visitorFlowRemoveCommand);
/**
* describe 持久层领域对象转换成DTO对象
*
* @param visitorFlow 访客端流量领域对象
* @return {@link VisitorFlowDTO} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlowDTO fromVisitorFlow(VisitorFlow visitorFlow);
}

View File

@ -0,0 +1,87 @@
package wu.framework.lazy.cloud.heartbeat.server.application.assembler;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.*;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorPortFlowQueryListCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorPortFlowDTO;
import org.mapstruct.factory.Mappers;
import org.mapstruct.Mapper;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
**/
@Mapper
public interface VisitorPortFlowDTOAssembler {
/**
* describe MapStruct 创建的代理对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorPortFlowDTOAssembler INSTANCE = Mappers.getMapper(VisitorPortFlowDTOAssembler.class);
/**
* describe 应用层存储入参转换成 领域对象
*
* @param visitorPortFlowStoryCommand 保存访客端流量对象
* @return {@link VisitorPortFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorPortFlow toVisitorFlow(VisitorPortFlowStoryCommand visitorPortFlowStoryCommand);
/**
* describe 应用层更新入参转换成 领域对象
*
* @param visitorPortFlowUpdateCommand 更新访客端流量对象
* @return {@link VisitorPortFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorPortFlow toVisitorFlow(VisitorPortFlowUpdateCommand visitorPortFlowUpdateCommand);
/**
* describe 应用层查询入参转换成 领域对象
*
* @param visitorPortFlowQueryOneCommand 查询单个访客端流量对象参数
* @return {@link VisitorPortFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorPortFlow toVisitorFlow(VisitorPortFlowQueryOneCommand visitorPortFlowQueryOneCommand);
/**
* describe 应用层查询入参转换成 领域对象
*
* @param visitorPortFlowQueryListCommand 查询集合访客端流量对象参数
* @return {@link VisitorPortFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorPortFlow toVisitorFlow(VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand);
/**
* describe 应用层删除入参转换成 领域对象
*
* @param visitorPortFlowRemoveCommand 删除访客端流量对象参数
* @return {@link VisitorPortFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorPortFlow toVisitorFlow(VisitorPortFlowRemoveCommand visitorPortFlowRemoveCommand);
/**
* describe 持久层领域对象转换成DTO对象
*
* @param visitorPortFlow 访客端流量领域对象
* @return {@link VisitorPortFlowDTO} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorPortFlowDTO fromVisitorFlow(VisitorPortFlow visitorPortFlow);
}

View File

@ -17,8 +17,8 @@ import java.lang.Boolean;
**/
@Data
@Accessors(chain = true)
@Schema(title = "visitor_flow_query_List_command",description = "访客端流量")
public class VisitorFlowQueryListCommand {
@Schema(title = "visitor_port_flow_query_List_command",description = "访客端流量")
public class VisitorPortFlowQueryListCommand {
/**

View File

@ -17,8 +17,8 @@ import java.lang.Boolean;
**/
@Data
@Accessors(chain = true)
@Schema(title = "visitor_flow_query_one_command",description = "访客端流量")
public class VisitorFlowQueryOneCommand {
@Schema(title = "visitor_port_flow_query_one_command",description = "访客端流量")
public class VisitorPortFlowQueryOneCommand {
/**

View File

@ -17,8 +17,8 @@ import java.lang.Boolean;
**/
@Data
@Accessors(chain = true)
@Schema(title = "visitor_flow_remove_command",description = "访客端流量")
public class VisitorFlowRemoveCommand {
@Schema(title = "visitor_port_flow_remove_command",description = "访客端流量")
public class VisitorPortFlowRemoveCommand {
/**

View File

@ -17,8 +17,8 @@ import java.lang.Boolean;
**/
@Data
@Accessors(chain = true)
@Schema(title = "visitor_flow_story_command",description = "访客端流量")
public class VisitorFlowStoryCommand {
@Schema(title = "visitor_port_flow_story_command",description = "访客端流量")
public class VisitorPortFlowStoryCommand {
/**

View File

@ -17,8 +17,8 @@ import java.lang.Boolean;
**/
@Data
@Accessors(chain = true)
@Schema(title = "visitor_flow_update_command",description = "访客端流量")
public class VisitorFlowUpdateCommand {
@Schema(title = "visitor_port_flow_update_command",description = "访客端流量")
public class VisitorPortFlowUpdateCommand {
/**

View File

@ -1,80 +1,66 @@
package wu.framework.lazy.cloud.heartbeat.server.application.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.v3.oas.annotations.media.Schema;
import java.lang.String;
import java.time.LocalDateTime;
import java.lang.Long;
import java.lang.Integer;
import java.lang.Boolean;
import java.util.List;
/**
* describe 访客端流量
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
**/
@Data
@Accessors(chain = true)
@Schema(title = "visitor_flow_command_dto",description = "访客端流量")
@Schema(title = "visitor_port_flow_command_dto", description = "访客端流量")
public class VisitorFlowDTO {
/**
*
* 客户端ID
*/
@Schema(description ="客户端ID",name ="clientId",example = "")
@Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
*
* 创建时间
*/
@Schema(description ="创建时间",name ="createTime",example = "")
@Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
*
* 主键
*/
@Schema(description ="主键",name ="id",example = "")
@Schema(description = "主键", name = "id", example = "")
private Long id;
/**
*
* 当前访客当前进口流量
*/
@Schema(description ="当前访客当前进口流量",name ="inFlow",example = "")
@Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
private Integer inFlow;
/**
*
* 是否删除
*/
@Schema(description ="是否删除",name ="isDeleted",example = "")
private Boolean isDeleted;
/**
*
* 当前访客出口流量
*/
@Schema(description ="当前访客出口流量",name ="outFlow",example = "")
@Schema(description = "当前访客出口流量", name = "outFlow", example = "")
private Integer outFlow;
/**
*
* 修改时间
*/
@Schema(description ="修改时间",name ="updateTime",example = "")
@Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
/**
*
* 访客端口
* 当前访客下所有端口的流量
*/
@Schema(description ="访客端口",name ="visitorPort",example = "")
private Integer visitorPort;
@Schema(description = "当前访客下所有端口的流量")
private List<VisitorPortFlowDTO> visitorPortFlowDTOList;
}

View File

@ -0,0 +1,80 @@
package wu.framework.lazy.cloud.heartbeat.server.application.dto;
import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.v3.oas.annotations.media.Schema;
import java.lang.String;
import java.time.LocalDateTime;
import java.lang.Long;
import java.lang.Integer;
import java.lang.Boolean;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
**/
@Data
@Accessors(chain = true)
@Schema(title = "visitor_port_flow_command_dto",description = "访客端流量")
public class VisitorPortFlowDTO {
/**
*
* 客户端ID
*/
@Schema(description ="客户端ID",name ="clientId",example = "")
private String clientId;
/**
*
* 创建时间
*/
@Schema(description ="创建时间",name ="createTime",example = "")
private LocalDateTime createTime;
/**
*
* 主键
*/
@Schema(description ="主键",name ="id",example = "")
private Long id;
/**
*
* 当前访客当前进口流量
*/
@Schema(description ="当前访客当前进口流量",name ="inFlow",example = "")
private Integer inFlow;
/**
*
* 是否删除
*/
@Schema(description ="是否删除",name ="isDeleted",example = "")
private Boolean isDeleted;
/**
*
* 当前访客出口流量
*/
@Schema(description ="当前访客出口流量",name ="outFlow",example = "")
private Integer outFlow;
/**
*
* 修改时间
*/
@Schema(description ="修改时间",name ="updateTime",example = "")
private LocalDateTime updateTime;
/**
*
* 访客端口
*/
@Schema(description ="访客端口",name ="visitorPort",example = "")
private Integer visitorPort;
}

View File

@ -1,144 +0,0 @@
package wu.framework.lazy.cloud.heartbeat.server.application.impl;
import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
import wu.framework.lazy.cloud.heartbeat.server.application.VisitorFlowApplication;
import org.springframework.web.bind.annotation.*;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
import org.springframework.beans.factory.annotation.Autowired;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowRemoveCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowStoryCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowUpdateCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowQueryListCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowQueryOneCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.assembler.VisitorFlowDTOAssembler;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
import java.util.stream.Collectors;
import jakarta.annotation.Resource;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlowRepository;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
**/
@LazyApplication
public class VisitorFlowApplicationImpl implements VisitorFlowApplication {
@Resource
VisitorFlowRepository visitorFlowRepository;
/**
* describe 新增访客端流量
*
* @param visitorFlowStoryCommand 新增访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorFlow> story(VisitorFlowStoryCommand visitorFlowStoryCommand) {
VisitorFlow visitorFlow = VisitorFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorFlowStoryCommand);
return visitorFlowRepository.story(visitorFlow);
}
/**
* describe 批量新增访客端流量
*
* @param visitorFlowStoryCommandList 批量新增访客端流量
* @return {@link Result<List<VisitorFlow>>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<List<VisitorFlow>> batchStory(List<VisitorFlowStoryCommand> visitorFlowStoryCommandList) {
List<VisitorFlow> visitorFlowList = visitorFlowStoryCommandList.stream().map( VisitorFlowDTOAssembler.INSTANCE::toVisitorFlow).collect(Collectors.toList());
return visitorFlowRepository.batchStory(visitorFlowList);
}
/**
* describe 更新访客端流量
*
* @param visitorFlowUpdateCommand 更新访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorFlow> updateOne(VisitorFlowUpdateCommand visitorFlowUpdateCommand) {
VisitorFlow visitorFlow = VisitorFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorFlowUpdateCommand);
return visitorFlowRepository.story(visitorFlow);
}
/**
* describe 查询单个访客端流量
*
* @param visitorFlowQueryOneCommand 查询单个访客端流量
* @return {@link Result<VisitorFlowDTO>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorFlowDTO> findOne(VisitorFlowQueryOneCommand visitorFlowQueryOneCommand) {
VisitorFlow visitorFlow = VisitorFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorFlowQueryOneCommand);
return visitorFlowRepository.findOne(visitorFlow).convert(VisitorFlowDTOAssembler.INSTANCE::fromVisitorFlow);
}
/**
* describe 查询多个访客端流量
*
* @param visitorFlowQueryListCommand 查询多个访客端流量
* @return {@link Result<List<VisitorFlowDTO>>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<List<VisitorFlowDTO>> findList(VisitorFlowQueryListCommand visitorFlowQueryListCommand) {
VisitorFlow visitorFlow = VisitorFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorFlowQueryListCommand);
return visitorFlowRepository.findList(visitorFlow) .convert(visitorFlows -> visitorFlows.stream().map(VisitorFlowDTOAssembler.INSTANCE::fromVisitorFlow).collect(Collectors.toList())) ;
}
/**
* describe 分页查询多个访客端流量
*
* @param visitorFlowQueryListCommand 分页查询多个访客端流量
* @return {@link Result<LazyPage<VisitorFlowDTO>>} 分页访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<LazyPage<VisitorFlowDTO>> findPage(int size,int current,VisitorFlowQueryListCommand visitorFlowQueryListCommand) {
VisitorFlow visitorFlow = VisitorFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorFlowQueryListCommand);
return visitorFlowRepository.findPage(size,current,visitorFlow) .convert(page -> page.convert(VisitorFlowDTOAssembler.INSTANCE::fromVisitorFlow)) ;
}
/**
* describe 删除访客端流量
*
* @param visitorFlowRemoveCommand 删除访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorFlow> remove(VisitorFlowRemoveCommand visitorFlowRemoveCommand) {
VisitorFlow visitorFlow = VisitorFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorFlowRemoveCommand);
return visitorFlowRepository.remove(visitorFlow);
}
}

View File

@ -0,0 +1,186 @@
package wu.framework.lazy.cloud.heartbeat.server.application.impl;
import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
import wu.framework.lazy.cloud.heartbeat.server.application.VisitorPortFlowApplication;
import com.wu.framework.response.Result;
import wu.framework.lazy.cloud.heartbeat.server.application.assembler.VisitorPortFlowDTOAssembler;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorPortFlowDTO;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorPortFlowQueryListCommand;
import java.util.ArrayList;
import java.util.Map;
import java.util.stream.Collectors;
import jakarta.annotation.Resource;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlowRepository;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
**/
@LazyApplication
public class VisitorPortFlowApplicationImpl implements VisitorPortFlowApplication {
@Resource
VisitorPortFlowRepository visitorPortFlowRepository;
/**
* describe 新增访客端流量
*
* @param visitorPortFlowStoryCommand 新增访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorPortFlow> story(VisitorPortFlowStoryCommand visitorPortFlowStoryCommand) {
VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowStoryCommand);
return visitorPortFlowRepository.story(visitorPortFlow);
}
/**
* describe 批量新增访客端流量
*
* @param visitorPortFlowStoryCommandList 批量新增访客端流量
* @return {@link Result<List< VisitorPortFlow >>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<List<VisitorPortFlow>> batchStory(List<VisitorPortFlowStoryCommand> visitorPortFlowStoryCommandList) {
List<VisitorPortFlow> visitorPortFlowList = visitorPortFlowStoryCommandList.stream().map(VisitorPortFlowDTOAssembler.INSTANCE::toVisitorFlow).collect(Collectors.toList());
return visitorPortFlowRepository.batchStory(visitorPortFlowList);
}
/**
* describe 更新访客端流量
*
* @param visitorPortFlowUpdateCommand 更新访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorPortFlow> updateOne(VisitorPortFlowUpdateCommand visitorPortFlowUpdateCommand) {
VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowUpdateCommand);
return visitorPortFlowRepository.story(visitorPortFlow);
}
/**
* describe 查询单个访客端流量
*
* @param visitorPortFlowQueryOneCommand 查询单个访客端流量
* @return {@link Result< VisitorFlowDTO >} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorPortFlowDTO> findOne(VisitorPortFlowQueryOneCommand visitorPortFlowQueryOneCommand) {
VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowQueryOneCommand);
return visitorPortFlowRepository.findOne(visitorPortFlow).convert(VisitorPortFlowDTOAssembler.INSTANCE::fromVisitorFlow);
}
/**
* describe 查询多个访客端流量
*
* @param visitorFlowQueryListCommand 查询多个访客端流量
* @return {@link Result<List< VisitorFlowDTO >>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<List<VisitorPortFlowDTO>> findList(VisitorPortFlowQueryListCommand visitorFlowQueryListCommand) {
VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorFlowQueryListCommand);
return visitorPortFlowRepository.findList(visitorPortFlow).convert(visitorFlows -> visitorFlows.stream().map(VisitorPortFlowDTOAssembler.INSTANCE::fromVisitorFlow).collect(Collectors.toList()));
}
/**
* describe 分页查询多个访客端流量
*
* @param visitorPortFlowQueryListCommand 分页查询多个访客端流量
* @return {@link Result<LazyPage< VisitorPortFlowDTO >>} 分页访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<LazyPage<VisitorPortFlowDTO>> findPage(int size, int current, VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand) {
VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowQueryListCommand);
return visitorPortFlowRepository.findPage(size, current, visitorPortFlow).convert(page -> page.convert(VisitorPortFlowDTOAssembler.INSTANCE::fromVisitorFlow));
}
/**
* describe 删除访客端流量
*
* @param visitorPortFlowRemoveCommand 删除访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorPortFlow> remove(VisitorPortFlowRemoveCommand visitorPortFlowRemoveCommand) {
VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowRemoveCommand);
return visitorPortFlowRepository.remove(visitorPortFlow);
}
/**
* 根据客户端查询流量
*
* @param size 分页大小
* @param current 分页
* @param visitorPortFlowQueryListCommand 查询条件
* @return {@link Result<LazyPage< VisitorFlowDTO >>} 分页访客端流量DTO对象
*/
@Override
public Result<LazyPage<VisitorFlowDTO>> findClientFlowPage(int size, int current, VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand) {
VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowQueryListCommand);
return visitorPortFlowRepository.findPageGroupByClientId(size, current, visitorPortFlow).convert(visitorPortFlowLazyPage -> {
List<String> clientIdList = visitorPortFlowLazyPage.getRecord().stream().map(VisitorPortFlow::getClientId).toList();
List<VisitorPortFlow> visitorPortFlowList = visitorPortFlowRepository.findListByClientIds(clientIdList);
// 根据客户端进行分组
List<VisitorPortFlowDTO> visitorPortFlowDTOList = visitorPortFlowList.stream().map(VisitorPortFlowDTOAssembler.INSTANCE::fromVisitorFlow).toList();
Map<String/*客户端ID*/, List<VisitorPortFlowDTO>> client_port_flow_map = visitorPortFlowDTOList.stream().collect(Collectors.groupingBy(visitorPortFlowDTO -> visitorPortFlowDTO.getClientId()));
Map<String/*客户端ID*/, Integer/*客户端进口流量*/> client_in_flow = visitorPortFlowDTOList.stream()
.collect(
Collectors.groupingBy(VisitorPortFlowDTO::getClientId,
Collectors.summingInt(VisitorPortFlowDTO::getInFlow)));
Map<String/*客户端ID*/, Integer/*客户端出口流量*/> client_out_flow = visitorPortFlowDTOList.stream()
.collect(
Collectors.groupingBy(VisitorPortFlowDTO::getClientId,
Collectors.summingInt(VisitorPortFlowDTO::getOutFlow)));
return visitorPortFlowLazyPage.convert(visitorPortFlow1 -> {
String clientId = visitorPortFlow1.getClientId();
VisitorFlowDTO visitorFlowDTO = new VisitorFlowDTO();
visitorFlowDTO.setClientId(clientId);
visitorFlowDTO.setInFlow(client_in_flow.getOrDefault(clientId, 0));
visitorFlowDTO.setOutFlow(client_out_flow.getOrDefault(clientId, 0));
visitorFlowDTO.setVisitorPortFlowDTOList(client_port_flow_map.getOrDefault(clientId, new ArrayList<>()));
return visitorFlowDTO;
});
});
}
}

View File

@ -1,142 +0,0 @@
package wu.framework.lazy.cloud.heartbeat.server.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import com.wu.framework.inner.layer.web.EasyController;
import org.springframework.web.bind.annotation.*;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
import org.springframework.beans.factory.annotation.Autowired;
import jakarta.annotation.Resource;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowRemoveCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowStoryCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowUpdateCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowQueryListCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.VisitorFlowQueryOneCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.VisitorFlowApplication;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyController
**/
@Tag(name = "访客端流量提供者")
@EasyController("/visitor/flow")
public class VisitorFlowProvider {
@Resource
private VisitorFlowApplication visitorFlowApplication;
/**
* describe 新增访客端流量
*
* @param visitorFlowStoryCommand 新增访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "新增访客端流量")
@PostMapping("/story")
public Result<VisitorFlow> story(@RequestBody VisitorFlowStoryCommand visitorFlowStoryCommand){
return visitorFlowApplication.story(visitorFlowStoryCommand);
}
/**
* describe 批量新增访客端流量
*
* @param visitorFlowStoryCommandList 批量新增访客端流量
* @return {@link Result<List<VisitorFlow>>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "批量新增访客端流量")
@PostMapping("/batchStory")
public Result<List<VisitorFlow>> batchStory(@RequestBody List<VisitorFlowStoryCommand> visitorFlowStoryCommandList){
return visitorFlowApplication.batchStory(visitorFlowStoryCommandList);
}
/**
* describe 更新访客端流量
*
* @param visitorFlowUpdateCommand 更新访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "更新访客端流量")
@PutMapping("/updateOne")
public Result<VisitorFlow> updateOne(@RequestBody VisitorFlowUpdateCommand visitorFlowUpdateCommand){
return visitorFlowApplication.updateOne(visitorFlowUpdateCommand);
}
/**
* describe 查询单个访客端流量
*
* @param visitorFlowQueryOneCommand 查询单个访客端流量
* @return {@link Result<VisitorFlowDTO>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "查询单个访客端流量")
@GetMapping("/findOne")
public Result<VisitorFlowDTO> findOne(@ModelAttribute VisitorFlowQueryOneCommand visitorFlowQueryOneCommand){
return visitorFlowApplication.findOne(visitorFlowQueryOneCommand);
}
/**
* describe 查询多个访客端流量
*
* @param visitorFlowQueryListCommand 查询多个访客端流量
* @return {@link Result<List<VisitorFlowDTO>>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "查询多个访客端流量")
@GetMapping("/findList")
public Result<List<VisitorFlowDTO>> findList(@ModelAttribute VisitorFlowQueryListCommand visitorFlowQueryListCommand){
return visitorFlowApplication.findList(visitorFlowQueryListCommand);
}
/**
* describe 分页查询多个访客端流量
*
* @param visitorFlowQueryListCommand 分页查询多个访客端流量
* @return {@link Result<LazyPage<VisitorFlowDTO>>} 分页访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "分页查询多个访客端流量")
@GetMapping("/findPage")
public Result<LazyPage<VisitorFlowDTO>> findPage(@Parameter(description ="分页大小") @RequestParam(defaultValue = "10", value = "size") int size,
@Parameter(description ="当前页数") @RequestParam(defaultValue = "1", value = "current") int current,@ModelAttribute VisitorFlowQueryListCommand visitorFlowQueryListCommand){
return visitorFlowApplication.findPage(size,current,visitorFlowQueryListCommand);
}
/**
* describe 删除访客端流量
*
* @param visitorFlowRemoveCommand 删除访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "删除访客端流量")
@DeleteMapping("/remove")
public Result<VisitorFlow> remove(@ModelAttribute VisitorFlowRemoveCommand visitorFlowRemoveCommand){
return visitorFlowApplication.remove(visitorFlowRemoveCommand);
}
}

View File

@ -0,0 +1,154 @@
package wu.framework.lazy.cloud.heartbeat.server.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import com.wu.framework.inner.layer.web.EasyController;
import org.springframework.web.bind.annotation.*;
import com.wu.framework.response.Result;
import jakarta.annotation.Resource;
import wu.framework.lazy.cloud.heartbeat.server.application.VisitorPortFlowApplication;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorPortFlowDTO;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyController
**/
@Tag(name = "访客端流量提供者")
@EasyController("/visitor/port/flow")
public class VisitorPortFlowProvider {
@Resource
private VisitorPortFlowApplication visitorPortFlowApplication;
/**
* describe 新增访客端流量
*
* @param visitorPortFlowStoryCommand 新增访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "新增访客端流量")
@PostMapping("/story")
public Result<VisitorPortFlow> story(@RequestBody VisitorPortFlowStoryCommand visitorPortFlowStoryCommand){
return visitorPortFlowApplication.story(visitorPortFlowStoryCommand);
}
/**
* describe 批量新增访客端流量
*
* @param visitorPortFlowStoryCommandList 批量新增访客端流量
* @return {@link Result<List< VisitorPortFlow >>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "批量新增访客端流量")
@PostMapping("/batchStory")
public Result<List<VisitorPortFlow>> batchStory(@RequestBody List<VisitorPortFlowStoryCommand> visitorPortFlowStoryCommandList){
return visitorPortFlowApplication.batchStory(visitorPortFlowStoryCommandList);
}
/**
* describe 更新访客端流量
*
* @param visitorPortFlowUpdateCommand 更新访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "更新访客端流量")
@PutMapping("/updateOne")
public Result<VisitorPortFlow> updateOne(@RequestBody VisitorPortFlowUpdateCommand visitorPortFlowUpdateCommand){
return visitorPortFlowApplication.updateOne(visitorPortFlowUpdateCommand);
}
/**
* describe 查询单个访客端流量
*
* @param visitorPortFlowQueryOneCommand 查询单个访客端流量
* @return {@link Result< VisitorPortFlowDTO >} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "查询单个访客端流量")
@GetMapping("/findOne")
public Result<VisitorPortFlowDTO> findOne(@ModelAttribute VisitorPortFlowQueryOneCommand visitorPortFlowQueryOneCommand){
return visitorPortFlowApplication.findOne(visitorPortFlowQueryOneCommand);
}
/**
* describe 查询多个访客端流量
*
* @param visitorPortFlowQueryListCommand 查询多个访客端流量
* @return {@link Result<List< VisitorPortFlowDTO >>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "查询多个访客端流量")
@GetMapping("/findList")
public Result<List<VisitorPortFlowDTO>> findList(@ModelAttribute VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand){
return visitorPortFlowApplication.findList(visitorPortFlowQueryListCommand);
}
/**
* describe 分页查询多个访客端流量
*
* @param visitorPortFlowQueryListCommand 分页查询多个访客端流量
* @return {@link Result<LazyPage< VisitorPortFlowDTO >>} 分页访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "分页查询多个访客端流量")
@GetMapping("/findPage")
public Result<LazyPage<VisitorPortFlowDTO>> findPage(@Parameter(description ="分页大小") @RequestParam(defaultValue = "10", value = "size") int size,
@Parameter(description ="当前页数") @RequestParam(defaultValue = "1", value = "current") int current, @ModelAttribute VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand){
return visitorPortFlowApplication.findPage(size,current, visitorPortFlowQueryListCommand);
}
/**
* 根据客户端查询流量
* @param size 分页大小
* @param current 分页
* @param visitorPortFlowQueryListCommand 查询条件
* @return {@link Result<LazyPage< VisitorFlowDTO >>} 分页访客端流量DTO对象
*/
@Operation(summary = "分页查询多个访客端流量")
@GetMapping("/findClientFlowPage")
public Result<LazyPage<VisitorFlowDTO>> findClientFlowPage(@Parameter(description ="分页大小") @RequestParam(defaultValue = "10", value = "size") int size,
@Parameter(description ="当前页数") @RequestParam(defaultValue = "1", value = "current") int current, @ModelAttribute VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand){
return visitorPortFlowApplication.findClientFlowPage(size,current, visitorPortFlowQueryListCommand);
}
/**
* describe 删除访客端流量
*
* @param visitorPortFlowRemoveCommand 删除访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Operation(summary = "删除访客端流量")
@DeleteMapping("/remove")
public Result<VisitorPortFlow> remove(@ModelAttribute VisitorPortFlowRemoveCommand visitorPortFlowRemoveCommand){
return visitorPortFlowApplication.remove(visitorPortFlowRemoveCommand);
}
}

View File

@ -1,106 +0,0 @@
package wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
import org.springframework.beans.factory.annotation.Autowired;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDomainRepository
**/
public interface VisitorFlowRepository {
/**
* describe 新增访客端流量
*
* @param visitorFlow 新增访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorFlow> story(VisitorFlow visitorFlow);
/**
* describe 批量新增访客端流量
*
* @param visitorFlowList 批量新增访客端流量
* @return {@link Result<List<VisitorFlow>>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<List<VisitorFlow>> batchStory(List<VisitorFlow> visitorFlowList);
/**
* describe 查询单个访客端流量
*
* @param visitorFlow 查询单个访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorFlow> findOne(VisitorFlow visitorFlow);
/**
* describe 查询多个访客端流量
*
* @param visitorFlow 查询多个访客端流量
* @return {@link Result<List<VisitorFlow>>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<List<VisitorFlow>> findList(VisitorFlow visitorFlow);
/**
* describe 分页查询多个访客端流量
*
* @param size 当前页数
* @param current 当前页
* @param visitorFlow 分页查询多个访客端流量
* @return {@link Result<LazyPage<VisitorFlow>>} 分页访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<LazyPage<VisitorFlow>> findPage(int size,int current,VisitorFlow visitorFlow);
/**
* describe 删除访客端流量
*
* @param visitorFlow 删除访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorFlow> remove(VisitorFlow visitorFlow);
/**
* describe 是否存在访客端流量
*
* @param visitorFlow 是否存在访客端流量
* @return {@link Result<Boolean>} 访客端流量是否存在
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<Boolean> exists(VisitorFlow visitorFlow);
}

View File

@ -17,8 +17,8 @@ import java.lang.Boolean;
**/
@Data
@Accessors(chain = true)
@Schema(title = "visitor_flow",description = "访客端流量")
public class VisitorFlow {
@Schema(title = "visitor_port_flow",description = "访客端流量")
public class VisitorPortFlow {
/**

View File

@ -0,0 +1,117 @@
package wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow;
import ch.qos.logback.classic.util.LevelToSyslogSeverity;
import com.wu.framework.response.Result;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDomainRepository
**/
public interface VisitorPortFlowRepository {
/**
* describe 新增访客端流量
*
* @param visitorPortFlow 新增访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorPortFlow> story(VisitorPortFlow visitorPortFlow);
/**
* describe 批量新增访客端流量
*
* @param visitorPortFlowList 批量新增访客端流量
* @return {@link Result<List< VisitorPortFlow >>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<List<VisitorPortFlow>> batchStory(List<VisitorPortFlow> visitorPortFlowList);
/**
* describe 查询单个访客端流量
*
* @param visitorPortFlow 查询单个访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorPortFlow> findOne(VisitorPortFlow visitorPortFlow);
/**
* describe 查询多个访客端流量
*
* @param visitorPortFlow 查询多个访客端流量
* @return {@link Result<List< VisitorPortFlow >>} 访客端流量DTO对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<List<VisitorPortFlow>> findList(VisitorPortFlow visitorPortFlow);
/**
* describe 分页查询多个访客端流量
*
* @param size 当前页数
* @param current 当前页
* @param visitorPortFlow 分页查询多个访客端流量
* @return {@link Result<LazyPage< VisitorPortFlow >>} 分页访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<LazyPage<VisitorPortFlow>> findPage(int size, int current, VisitorPortFlow visitorPortFlow);
/**
* describe 删除访客端流量
*
* @param visitorPortFlow 删除访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<VisitorPortFlow> remove(VisitorPortFlow visitorPortFlow);
/**
* describe 是否存在访客端流量
*
* @param visitorPortFlow 是否存在访客端流量
* @return {@link Result<Boolean>} 访客端流量是否存在
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
Result<Boolean> exists(VisitorPortFlow visitorPortFlow);
/**
* 根据客户端查询流量
*
* @param size 分页大小
* @param current 分页
* @param visitorPortFlow 查询条件
* @return {@link Result<LazyPage< VisitorPortFlow >>} 分页访客端流量DTO对象
*/
Result<LazyPage<VisitorPortFlow>> findPageGroupByClientId(int size, int current, VisitorPortFlow visitorPortFlow);
/**
* 根据客户端ID查询出 客户端所有的进出口流量
* @param clientIdList 客户端ID
* @return 客户端所有的进出口流量
*/
List<VisitorPortFlow> findListByClientIds(List<String> clientIdList);
}

View File

@ -1,9 +1,10 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.VisitorFlowDO;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.VisitorPortFlowDO;
import org.mapstruct.factory.Mappers;
import org.mapstruct.Mapper;
/**
* describe 访客端流量
*
@ -12,7 +13,7 @@ import org.mapstruct.Mapper;
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
**/
@Mapper
public interface VisitorFlowConverter {
public interface VisitorPortFlowConverter {
/**
@ -24,25 +25,25 @@ public interface VisitorFlowConverter {
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlowConverter INSTANCE = Mappers.getMapper(VisitorFlowConverter.class);
VisitorPortFlowConverter INSTANCE = Mappers.getMapper(VisitorPortFlowConverter.class);
/**
* describe 实体对象 转换成领域对象
*
* @param visitorFlowDO 访客端流量实体对象
* @return {@link VisitorFlow} 访客端流量领域对象
* @param visitorPortFlowDO 访客端流量实体对象
* @return {@link VisitorPortFlow} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlow toVisitorFlow(VisitorFlowDO visitorFlowDO);
VisitorPortFlow toVisitorFlow(VisitorPortFlowDO visitorPortFlowDO);
/**
* describe 领域对象 转换成实体对象
*
* @param visitorFlow 访客端流量领域对象
* @return {@link VisitorFlowDO} 访客端流量实体对象
* @param visitorPortFlow 访客端流量领域对象
* @return {@link VisitorPortFlowDO} 访客端流量实体对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
VisitorFlowDO fromVisitorFlow(VisitorFlow visitorFlow);
VisitorPortFlowDO fromVisitorFlow(VisitorPortFlow visitorPortFlow);
}

View File

@ -2,14 +2,11 @@ package wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import com.wu.framework.inner.lazy.stereotype.LazyTableIndex;
import com.wu.framework.inner.layer.stereotype.LayerField;
import com.wu.framework.inner.layer.stereotype.LayerField.LayerFieldType;
import com.wu.framework.inner.lazy.stereotype.LazyTable;
import com.wu.framework.inner.lazy.stereotype.LazyTableField;
import com.wu.framework.inner.lazy.stereotype.*;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import java.lang.String;
import java.time.LocalDateTime;
import java.lang.Long;
@ -24,9 +21,9 @@ import java.lang.Boolean;
**/
@Data
@Accessors(chain = true)
@LazyTable(tableName = "visitor_flow",schema = "wu_lazy_cloud_netty_server",comment = "访客端流量")
@Schema(title = "visitor_flow",description = "访客端流量")
public class VisitorFlowDO {
@LazyTable(tableName = "visitor_port_flow",comment = "访客端流量")
@Schema(title = "visitor_port_flow",description = "访客端流量")
public class VisitorPortFlowDO {
/**

View File

@ -8,7 +8,7 @@ package wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper;
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
**/
public interface VisitorFlowMapper {
public interface VisitorPortFlowMapper {

View File

@ -1,152 +0,0 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.persistence;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.VisitorFlowDO;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter.VisitorFlowConverter;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper.VisitorFlowMapper;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlowRepository;
import org.springframework.stereotype.Repository;
import java.util.stream.Collectors;
import com.wu.framework.inner.lazy.database.expand.database.persistence.stream.wrapper.LazyWrappers;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
import jakarta.annotation.Resource;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import com.wu.framework.inner.lazy.database.expand.database.persistence.stream.lambda.LazyLambdaStream;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructurePersistence
**/
@Repository
public class VisitorFlowRepositoryImpl implements VisitorFlowRepository {
@Resource
LazyLambdaStream lazyLambdaStream;
/**
* describe 新增访客端流量
*
* @param visitorFlow 新增访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorFlow> story(VisitorFlow visitorFlow) {
VisitorFlowDO visitorFlowDO = VisitorFlowConverter.INSTANCE.fromVisitorFlow(visitorFlow);
lazyLambdaStream.upsertRemoveNull(visitorFlowDO);
return ResultFactory.successOf();
}
/**
* describe 批量新增访客端流量
*
* @param visitorFlowList 批量新增访客端流量
* @return {@link Result<List<VisitorFlow>>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<List<VisitorFlow>> batchStory(List<VisitorFlow> visitorFlowList) {
List<VisitorFlowDO> visitorFlowDOList = visitorFlowList.stream().map(VisitorFlowConverter.INSTANCE::fromVisitorFlow).collect(Collectors.toList());
lazyLambdaStream.upsert(visitorFlowDOList);
return ResultFactory.successOf();
}
/**
* describe 查询单个访客端流量
*
* @param visitorFlow 查询单个访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorFlow> findOne(VisitorFlow visitorFlow) {
VisitorFlowDO visitorFlowDO = VisitorFlowConverter.INSTANCE.fromVisitorFlow(visitorFlow);
VisitorFlow visitorFlowOne = lazyLambdaStream.selectOne(LazyWrappers.lambdaWrapperBean(visitorFlowDO), VisitorFlow.class);
return ResultFactory.successOf(visitorFlowOne);
}
/**
* describe 查询多个访客端流量
*
* @param visitorFlow 查询多个访客端流量
* @return {@link Result<List<VisitorFlow>>} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<List<VisitorFlow>> findList(VisitorFlow visitorFlow) {
VisitorFlowDO visitorFlowDO = VisitorFlowConverter.INSTANCE.fromVisitorFlow(visitorFlow);
List<VisitorFlow> visitorFlowList = lazyLambdaStream.selectList(LazyWrappers.lambdaWrapperBean(visitorFlowDO), VisitorFlow.class);
return ResultFactory.successOf(visitorFlowList);
}
/**
* describe 分页查询多个访客端流量
*
* @param size 当前页数
* @param current 当前页
* @param visitorFlow 分页查询多个访客端流量
* @return {@link Result<LazyPage<VisitorFlow>>} 分页访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<LazyPage<VisitorFlow>> findPage(int size,int current,VisitorFlow visitorFlow) {
VisitorFlowDO visitorFlowDO = VisitorFlowConverter.INSTANCE.fromVisitorFlow(visitorFlow);
LazyPage<VisitorFlow> lazyPage = new LazyPage<>(current,size);
LazyPage<VisitorFlow> visitorFlowLazyPage = lazyLambdaStream.selectPage(LazyWrappers.lambdaWrapperBean(visitorFlowDO),lazyPage, VisitorFlow.class);
return ResultFactory.successOf(visitorFlowLazyPage);
}
/**
* describe 删除访客端流量
*
* @param visitorFlow 删除访客端流量
* @return {@link Result<VisitorFlow>} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorFlow> remove(VisitorFlow visitorFlow) {
VisitorFlowDO visitorFlowDO = VisitorFlowConverter.INSTANCE.fromVisitorFlow(visitorFlow);
// lazyLambdaStream.delete(LazyWrappers.lambdaWrapperBean(visitorFlowDO));
return ResultFactory.successOf();
}
/**
* describe 是否存在访客端流量
*
* @param visitorFlow 访客端流量领域对象
* @return {@link Result<Boolean>} 是否存在 true 存在false 不存在
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<Boolean> exists(VisitorFlow visitorFlow) {
VisitorFlowDO visitorFlowDO = VisitorFlowConverter.INSTANCE.fromVisitorFlow(visitorFlow);
Boolean exists=lazyLambdaStream.exists(LazyWrappers.lambdaWrapperBean(visitorFlowDO));
return ResultFactory.successOf(exists);
}
}

View File

@ -0,0 +1,182 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.persistence;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter.VisitorPortFlowConverter;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlowRepository;
import org.springframework.stereotype.Repository;
import java.util.stream.Collectors;
import com.wu.framework.inner.lazy.database.expand.database.persistence.stream.wrapper.LazyWrappers;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
import jakarta.annotation.Resource;
import com.wu.framework.inner.lazy.database.expand.database.persistence.stream.lambda.LazyLambdaStream;
import java.util.List;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.VisitorPortFlowDO;
/**
* describe 访客端流量
*
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructurePersistence
**/
@Repository
public class VisitorPortFlowRepositoryImpl implements VisitorPortFlowRepository {
@Resource
LazyLambdaStream lazyLambdaStream;
/**
* describe 新增访客端流量
*
* @param visitorPortFlow 新增访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorPortFlow> story(VisitorPortFlow visitorPortFlow) {
VisitorPortFlowDO visitorPortFlowDO = VisitorPortFlowConverter.INSTANCE.fromVisitorFlow(visitorPortFlow);
lazyLambdaStream.upsertRemoveNull(visitorPortFlowDO);
return ResultFactory.successOf();
}
/**
* describe 批量新增访客端流量
*
* @param visitorPortFlowList 批量新增访客端流量
* @return {@link Result<List< VisitorPortFlow >>} 访客端流量新增后领域对象集合
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<List<VisitorPortFlow>> batchStory(List<VisitorPortFlow> visitorPortFlowList) {
List<VisitorPortFlowDO> visitorPortFlowDOList = visitorPortFlowList.stream().map(VisitorPortFlowConverter.INSTANCE::fromVisitorFlow).collect(Collectors.toList());
lazyLambdaStream.upsert(visitorPortFlowDOList);
return ResultFactory.successOf();
}
/**
* describe 查询单个访客端流量
*
* @param visitorPortFlow 查询单个访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorPortFlow> findOne(VisitorPortFlow visitorPortFlow) {
VisitorPortFlowDO visitorPortFlowDO = VisitorPortFlowConverter.INSTANCE.fromVisitorFlow(visitorPortFlow);
VisitorPortFlow visitorPortFlowOne = lazyLambdaStream.selectOne(LazyWrappers.lambdaWrapperBean(visitorPortFlowDO), VisitorPortFlow.class);
return ResultFactory.successOf(visitorPortFlowOne);
}
/**
* describe 查询多个访客端流量
*
* @param visitorPortFlow 查询多个访客端流量
* @return {@link Result<List< VisitorPortFlow >>} 访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<List<VisitorPortFlow>> findList(VisitorPortFlow visitorPortFlow) {
VisitorPortFlowDO visitorPortFlowDO = VisitorPortFlowConverter.INSTANCE.fromVisitorFlow(visitorPortFlow);
List<VisitorPortFlow> visitorPortFlowList = lazyLambdaStream.selectList(LazyWrappers.lambdaWrapperBean(visitorPortFlowDO), VisitorPortFlow.class);
return ResultFactory.successOf(visitorPortFlowList);
}
/**
* describe 分页查询多个访客端流量
*
* @param size 当前页数
* @param current 当前页
* @param visitorPortFlow 分页查询多个访客端流量
* @return {@link Result<LazyPage< VisitorPortFlow >>} 分页访客端流量领域对象
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<LazyPage<VisitorPortFlow>> findPage(int size, int current, VisitorPortFlow visitorPortFlow) {
VisitorPortFlowDO visitorPortFlowDO = VisitorPortFlowConverter.INSTANCE.fromVisitorFlow(visitorPortFlow);
LazyPage<VisitorPortFlow> lazyPage = new LazyPage<>(current, size);
LazyPage<VisitorPortFlow> visitorFlowLazyPage = lazyLambdaStream.selectPage(LazyWrappers.lambdaWrapperBean(visitorPortFlowDO), lazyPage, VisitorPortFlow.class);
return ResultFactory.successOf(visitorFlowLazyPage);
}
/**
* describe 删除访客端流量
*
* @param visitorPortFlow 删除访客端流量
* @return {@link Result< VisitorPortFlow >} 访客端流量
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<VisitorPortFlow> remove(VisitorPortFlow visitorPortFlow) {
VisitorPortFlowDO visitorPortFlowDO = VisitorPortFlowConverter.INSTANCE.fromVisitorFlow(visitorPortFlow);
lazyLambdaStream.delete(LazyWrappers.lambdaWrapperBean(visitorPortFlowDO));
return ResultFactory.successOf();
}
/**
* describe 是否存在访客端流量
*
* @param visitorPortFlow 访客端流量领域对象
* @return {@link Result<Boolean>} 是否存在 true 存在false 不存在
* @author Jia wei Wu
* @date 2024/01/24 05:19 下午
**/
@Override
public Result<Boolean> exists(VisitorPortFlow visitorPortFlow) {
VisitorPortFlowDO visitorPortFlowDO = VisitorPortFlowConverter.INSTANCE.fromVisitorFlow(visitorPortFlow);
Boolean exists = lazyLambdaStream.exists(LazyWrappers.lambdaWrapperBean(visitorPortFlowDO));
return ResultFactory.successOf(exists);
}
/**
* 根据客户端查询流量
*
* @param size 分页大小
* @param current 分页
* @param visitorPortFlow 查询条件
* @return {@link Result<LazyPage< VisitorPortFlow >>} 分页访客端流量DTO对象
*/
@Override
public Result<LazyPage<VisitorPortFlow>> findPageGroupByClientId(int size, int current, VisitorPortFlow visitorPortFlow) {
VisitorPortFlowDO visitorPortFlowDO = VisitorPortFlowConverter.INSTANCE.fromVisitorFlow(visitorPortFlow);
LazyPage<VisitorPortFlow> lazyPage = new LazyPage<>(current, size);
LazyPage<VisitorPortFlow> visitorFlowLazyPage = lazyLambdaStream
.selectPage(
LazyWrappers.lambdaWrapperBean(visitorPortFlowDO)
.groupBy(VisitorPortFlowDO::getClientId),
lazyPage,
VisitorPortFlow.class);
return ResultFactory.successOf(visitorFlowLazyPage);
}
/**
* 根据客户端ID查询出 客户端所有的进出口流量
*
* @param clientIdList 客户端ID
* @return 客户端所有的进出口流量
*/
@Override
public List<VisitorPortFlow> findListByClientIds(List<String> clientIdList) {
return lazyLambdaStream.selectList(LazyWrappers.<VisitorPortFlowDO>lambdaWrapper()
.in(VisitorPortFlowDO::getClientId,clientIdList), VisitorPortFlow.class);
}
}

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper.VisitorFlowMapper">
<resultMap id="BaseResultMap" type="wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.VisitorFlowDO">
<mapper namespace="wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper.VisitorPortFlowMapper">
<resultMap id="BaseResultMap" type="wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.VisitorPortFlowDO">
<result column="client_id" property="clientId" />
<result column="create_time" property="createTime" />
<id column="id" property="id" />

View File

@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Role;
import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelFlowAdapter;
import wu.framework.lazy.cloud.heartbeat.common.advanced.flow.HandleChannelFlowAdvanced;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlowRepository;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlowRepository;
import wu.framework.lazy.cloud.heartbeat.server.netty.flow.ServerHandlerInFlowHandler;
import wu.framework.lazy.cloud.heartbeat.server.netty.flow.ServerHandlerOutFlowHandler;
@ -25,8 +25,8 @@ public class ServerFlowConfiguration {
*/
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerHandlerInFlowHandler serverHandlerInFlowHandler(VisitorFlowRepository visitorFlowRepository) {
return new ServerHandlerInFlowHandler(visitorFlowRepository);
public ServerHandlerInFlowHandler serverHandlerInFlowHandler(VisitorPortFlowRepository visitorPortFlowRepository) {
return new ServerHandlerInFlowHandler(visitorPortFlowRepository);
}
/**
@ -36,8 +36,8 @@ public class ServerFlowConfiguration {
*/
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerHandlerOutFlowHandler serverHandlerOutFlowHandler(VisitorFlowRepository visitorFlowRepository) {
return new ServerHandlerOutFlowHandler(visitorFlowRepository);
public ServerHandlerOutFlowHandler serverHandlerOutFlowHandler(VisitorPortFlowRepository visitorPortFlowRepository) {
return new ServerHandlerOutFlowHandler(visitorPortFlowRepository);
}

View File

@ -5,17 +5,17 @@ import org.springframework.util.ObjectUtils;
import wu.framework.lazy.cloud.heartbeat.common.advanced.flow.AbstractHandleChannelFlowAdvanced;
import wu.framework.lazy.cloud.heartbeat.common.advanced.flow.ChannelFlow;
import wu.framework.lazy.cloud.heartbeat.common.enums.ChannelFlowEnum;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlowRepository;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlowRepository;
/**
* 进口流量处理
*/
public class ServerHandlerInFlowHandler extends AbstractHandleChannelFlowAdvanced {
private final VisitorFlowRepository visitorFlowRepository;
private final VisitorPortFlowRepository visitorPortFlowRepository;
public ServerHandlerInFlowHandler(VisitorFlowRepository visitorFlowRepository) {
this.visitorFlowRepository = visitorFlowRepository;
public ServerHandlerInFlowHandler(VisitorPortFlowRepository visitorPortFlowRepository) {
this.visitorPortFlowRepository = visitorPortFlowRepository;
}
/**
@ -42,25 +42,25 @@ public class ServerHandlerInFlowHandler extends AbstractHandleChannelFlowAdvance
Integer flow = channelFlow.flow();
// 进口流量处理
VisitorFlow visitorFlow = new VisitorFlow();
visitorFlow.setInFlow(flow);
visitorFlow.setClientId(clientId);
visitorFlow.setVisitorPort(port);
visitorFlow.setIsDeleted(false);
VisitorPortFlow visitorPortFlow = new VisitorPortFlow();
visitorPortFlow.setInFlow(flow);
visitorPortFlow.setClientId(clientId);
visitorPortFlow.setVisitorPort(port);
visitorPortFlow.setIsDeleted(false);
// 查询是否存在已有流量 而后进行统计汇总
VisitorFlow findOneVisitorFlowQuery = new VisitorFlow();
findOneVisitorFlowQuery.setClientId(clientId);
findOneVisitorFlowQuery.setVisitorPort(port);
visitorFlowRepository.findOne(findOneVisitorFlowQuery).accept(existVisitorFlow -> {
VisitorPortFlow findOneVisitorPortFlowQuery = new VisitorPortFlow();
findOneVisitorPortFlowQuery.setClientId(clientId);
findOneVisitorPortFlowQuery.setVisitorPort(port);
visitorPortFlowRepository.findOne(findOneVisitorPortFlowQuery).accept(existVisitorFlow -> {
Integer inFlow = existVisitorFlow.getInFlow();
Integer outFlow = existVisitorFlow.getOutFlow();
if(!ObjectUtils.isEmpty(inFlow)){
visitorFlow.setInFlow(visitorFlow.getInFlow()+inFlow);
visitorPortFlow.setInFlow(visitorPortFlow.getInFlow()+inFlow);
}
if (!ObjectUtils.isEmpty(outFlow)) {
visitorFlow.setOutFlow( outFlow);
visitorPortFlow.setOutFlow( outFlow);
}
});
visitorFlowRepository.story(visitorFlow);
visitorPortFlowRepository.story(visitorPortFlow);
}
}

View File

@ -5,17 +5,17 @@ import org.springframework.util.ObjectUtils;
import wu.framework.lazy.cloud.heartbeat.common.advanced.flow.AbstractHandleChannelFlowAdvanced;
import wu.framework.lazy.cloud.heartbeat.common.advanced.flow.ChannelFlow;
import wu.framework.lazy.cloud.heartbeat.common.enums.ChannelFlowEnum;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlow;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorFlowRepository;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlowRepository;
/**
* 出口流量处理
*/
public class ServerHandlerOutFlowHandler extends AbstractHandleChannelFlowAdvanced {
private final VisitorFlowRepository visitorFlowRepository;
private final VisitorPortFlowRepository visitorPortFlowRepository;
public ServerHandlerOutFlowHandler(VisitorFlowRepository visitorFlowRepository) {
this.visitorFlowRepository = visitorFlowRepository;
public ServerHandlerOutFlowHandler(VisitorPortFlowRepository visitorPortFlowRepository) {
this.visitorPortFlowRepository = visitorPortFlowRepository;
}
/**
@ -42,25 +42,25 @@ public class ServerHandlerOutFlowHandler extends AbstractHandleChannelFlowAdvanc
Integer flow = channelFlow.flow();
// 进口流量处理
VisitorFlow visitorFlow = new VisitorFlow();
visitorFlow.setOutFlow(flow);
visitorFlow.setClientId(clientId);
visitorFlow.setVisitorPort(port);
visitorFlow.setIsDeleted(false);
VisitorPortFlow visitorPortFlow = new VisitorPortFlow();
visitorPortFlow.setOutFlow(flow);
visitorPortFlow.setClientId(clientId);
visitorPortFlow.setVisitorPort(port);
visitorPortFlow.setIsDeleted(false);
// 查询是否存在已有流量 而后进行统计汇总
VisitorFlow findOneVisitorFlowQuery = new VisitorFlow();
findOneVisitorFlowQuery.setClientId(clientId);
findOneVisitorFlowQuery.setVisitorPort(port);
visitorFlowRepository.findOne(findOneVisitorFlowQuery).accept(existVisitorFlow -> {
VisitorPortFlow findOneVisitorPortFlowQuery = new VisitorPortFlow();
findOneVisitorPortFlowQuery.setClientId(clientId);
findOneVisitorPortFlowQuery.setVisitorPort(port);
visitorPortFlowRepository.findOne(findOneVisitorPortFlowQuery).accept(existVisitorFlow -> {
Integer outFlow = existVisitorFlow.getOutFlow();
Integer inFlow = existVisitorFlow.getInFlow();
if (!ObjectUtils.isEmpty(outFlow)) {
visitorFlow.setOutFlow(visitorFlow.getOutFlow() + outFlow);
visitorPortFlow.setOutFlow(visitorPortFlow.getOutFlow() + outFlow);
}
if (!ObjectUtils.isEmpty(inFlow)) {
visitorFlow.setInFlow( inFlow);
visitorPortFlow.setInFlow( inFlow);
}
});
visitorFlowRepository.story(visitorFlow);
visitorPortFlowRepository.story(visitorPortFlow);
}
}

View File

@ -36,6 +36,10 @@ module.exports = {
type: "put",
},
visitorClientFlowPage: {
url: "/visitor/port/flow/findClientFlowPage",
type: "get",
},
networkMappingPage: {
url: "/internal/network/penetration/mapping/findPage",
type: "get",

View File

@ -37,21 +37,10 @@
total: total,
}"
>
<template #tool_bar>
<el-button
title="弹窗式"
v-permission="['add']"
size="small"
type="primary"
@click="handleEdit(buttons.add.name)"
>
{{ buttons.add.name }}
</el-button>
</template>
<el-table-column prop="clientId" label="客户端ID"></el-table-column>
<el-table-column prop="onLineState" label="客户端在线状态">
<el-table-column prop="outFlow" label="客户端出口流量">
</el-table-column>
<el-table-column prop="stagingState" label="暂存状态">
<el-table-column prop="inFlow" label="客户端进口流量">
</el-table-column>
<el-table-column fixed="right" label="操作">
<template v-slot:default="{ row }">
@ -63,24 +52,9 @@
>
{{ buttons.offLine.name }}
</el-button>
<el-button
v-permission="['sendMessage']"
@click.prevent="handleArouse2SendMessage(row)"
type="primary"
size="small"
>
{{ buttons.sendMessage.name }}
</el-button>
</template>
</el-table-column>
</ve-table>
<!--发送消息到客户端-->
<cloud-server-send-message2-clinet
v-if="showDialog"
:rowData="rowData"
:showDialog="showDialog"
@closeDialog="handelDialog($event)"
/>
</div>
</template>
<script>
@ -107,7 +81,7 @@ export default {
</script>
<script setup>
import { reactive, toRefs, ref, onMounted, getCurrentInstance } from "vue";
import { reactive, toRefs, ref, onMounted } from "vue";
//?
import {
onSubmit,
@ -115,13 +89,13 @@ import {
handleSizeChange,
handleCurrentChange,
} from "@/views/layoutpages/common";
import CloudServerSendMessage2Clinet from "@/views/layoutpages/cloud_network/components/CloudServerSendMessage2Clinet.vue";
const { proxy } = getCurrentInstance();
const queryForm = ref(null);
const tableData = ref([]);
// eslint-disable-next-line no-unused-vars
const rowData = ref(null);
// eslint-disable-next-line no-unused-vars
const showDialog = ref(false);
const params = reactive({
@ -132,52 +106,6 @@ const params = reactive({
});
const { clientId, size, current, total } = toRefs(params);
/**
* @description: dialog事件
* @param {*}
* @return {*}
*/
const handelDialog = (e) => {
showDialog.value = e;
getDataList();
};
/**
* @description:添加or编辑事件
* @param {*}
* @return {*}
*/
const handleArouse2SendMessage = (row = null) => {
showDialog.value = true;
rowData.value = row;
};
/**
* @description:
* @param {*}
* @return {*}
*/
const handleOffLine = (clientId) => {
proxy
.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "error",
})
.then(async () => {
const { code } = await VE_API.cloudNetwork.cloudClientDelete({
clientId,
});
if (code == "00") {
getDataList();
}
})
.catch(() => {
proxy.$message({
type: "info",
message: "已取消删除",
});
});
};
/**
* @description: 获取列表数据
* @param {*}
@ -185,7 +113,7 @@ const handleOffLine = (clientId) => {
*/
const getDataList = async () => {
const { code, data } =
await VE_API.cloudNetwork.cloudClientFindPage(params);
await VE_API.cloudNetwork.visitorClientFlowPage(params);
if (code === 0) {
const { size, current, total, record } = data;
params.size = size;