diff --git a/sql/wfc_user_db/wfc_user_db.sql b/sql/wfc_user_db/wfc_user_db.sql index b8626de..17763cb 100644 --- a/sql/wfc_user_db/wfc_user_db.sql +++ b/sql/wfc_user_db/wfc_user_db.sql @@ -63,6 +63,7 @@ CREATE TABLE `u_cdr` ( `rate_limit_profile_id` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'Rate limit profile ID. ', `up_time` bigint(20) NULL DEFAULT NULL COMMENT 'Up time (unit: s).', `last_seen_time` bigint(20) NULL DEFAULT NULL COMMENT 'Last found time, timestamp (ms). ', + `activity` bigint(20) DEFAULT NULL COMMENT 'Activity download speed (Bytes/s)', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '0' COMMENT 'delete flag', `create_by` bigint(20) NULL DEFAULT NULL COMMENT 'creater', `create_time` datetime NULL DEFAULT NULL COMMENT 'create time', diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UCdrController.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UCdrController.java index 0369cc8..bfca929 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UCdrController.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UCdrController.java @@ -9,6 +9,7 @@ import org.wfc.common.core.web.controller.BaseController; import org.wfc.common.core.web.page.TableDataInfo; import org.wfc.user.domain.bo.UCdrClientBo; import org.wfc.user.domain.vo.UCdrClientVo; +import org.wfc.user.domain.vo.UCdrHistoryUserVo; import org.wfc.user.domain.vo.UCdrUserVo; import org.wfc.user.service.IUCdrService; @@ -43,7 +44,7 @@ public class UCdrController extends BaseController { * * @return 结果 */ - @GetMapping("/getByUser") + @GetMapping("/getOne") public R getByUser() { UCdrUserVo result = cdrService.getByUser(); return R.ok(result); @@ -54,11 +55,23 @@ public class UCdrController extends BaseController { * * @return 结果 */ - @GetMapping("/getByClient") + @GetMapping("/pageClient") public TableDataInfo getByClient(UCdrClientBo clientBo) { startPage(); List result = cdrService.getByClient(clientBo); return getDataTable(result); } + /** + * 根据用户查询cdr记录 + * + * @return 结果 + */ + @GetMapping("/pageHistory") + public TableDataInfo getHistoryByUser() { + startPage(); + List result = cdrService.getHistoryByUser(); + return getDataTable(result); + } + } diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UClientController.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UClientController.java index 5e63704..2849e01 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UClientController.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UClientController.java @@ -1,14 +1,21 @@ package org.wfc.user.controller; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; 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; import org.wfc.common.core.domain.R; +import org.wfc.common.core.web.controller.BaseController; +import org.wfc.common.core.web.page.TableDataInfo; import org.wfc.user.api.domain.bo.UClientBo; +import org.wfc.user.domain.vo.UClientCurrentVo; +import org.wfc.user.domain.vo.UClientHistoryUserVo; import org.wfc.user.service.IUClientService; +import java.util.List; + /** *

* 用户平台_AP设备表 前端控制器 @@ -18,8 +25,8 @@ import org.wfc.user.service.IUClientService; * @since 2024-12-09 */ @RestController -@RequestMapping("/user/uClient") -public class UClientController { +@RequestMapping("/client") +public class UClientController extends BaseController { @Autowired private IUClientService clientService; @@ -33,4 +40,28 @@ public class UClientController { return R.ok(result); } + /** + * 根据用户查询当前接入设备 + * + * @return 结果 + */ + @GetMapping("/pageCurrentClient") + public TableDataInfo getCurrentClients() { + startPage(); + List result = clientService.getCurrentClients(); + return getDataTable(result); + } + + /** + * 根据用户查询历史设备 + * + * @return 结果 + */ + @GetMapping("/pageHistoryClient") + public TableDataInfo getHistoryByUser() { + startPage(); + List result = clientService.getHistoryByUser(); + return getDataTable(result); + } + } diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/UCdr.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/UCdr.java index 4324355..b117f3d 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/UCdr.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/UCdr.java @@ -66,4 +66,7 @@ public class UCdr extends BaseData { @Schema(description = "Last found time, timestamp (ms). ") private Long lastSeenTime; + + @Schema(description = "Activity download speed (Bytes/s)") + private Long activity; } diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UCdrHistoryUserVo.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UCdrHistoryUserVo.java new file mode 100644 index 0000000..26f64a4 --- /dev/null +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UCdrHistoryUserVo.java @@ -0,0 +1,21 @@ +package org.wfc.user.domain.vo; + +import lombok.Data; + +/** + * @description: cdr历史vo + * @author: cyc + * @since: 2024-12-17 + */ +@Data +public class UCdrHistoryUserVo { + private Long id; + private String clientName; + private String clientMac; + private String clientDeviceType; + private Long startTime; + private Long endTime; + private Long duration; + private Long trafficDown; + private Long trafficUp; +} diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UCdrUserVo.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UCdrUserVo.java index 81ef0fd..753a777 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UCdrUserVo.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UCdrUserVo.java @@ -15,4 +15,5 @@ public class UCdrUserVo { private Long duration; private Long trafficDown; private Long trafficUp; + private Long activity; } diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UClientCurrentVo.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UClientCurrentVo.java new file mode 100644 index 0000000..b3e7d4b --- /dev/null +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UClientCurrentVo.java @@ -0,0 +1,20 @@ +package org.wfc.user.domain.vo; + +import lombok.Data; + +/** + * @description: 当前接入设备Vo + * @author: cyc + * @since: 2024-12-17 + */ +@Data +public class UClientCurrentVo { + private Long id; + private String clientName; + private String clientMac; + private String clientDeviceType; + private Long upTime; + private Long trafficDown; + private Long trafficUp; + private Long activity; +} diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UClientHistoryUserVo.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UClientHistoryUserVo.java new file mode 100644 index 0000000..d340e94 --- /dev/null +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/vo/UClientHistoryUserVo.java @@ -0,0 +1,21 @@ +package org.wfc.user.domain.vo; + +import lombok.Data; + +/** + * @description: 历史设备vo + * @author: cyc + * @since: 2024-12-17 + */ +@Data +public class UClientHistoryUserVo { + private Long id; + private String clientName; + private String clientMac; + private String clientDeviceType; + private Long startTime; + private Long endTime; + private Long duration; + private Long trafficDown; + private Long trafficUp; +} diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UCdrMapper.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UCdrMapper.java index 784c08d..1b008c9 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UCdrMapper.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UCdrMapper.java @@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param; import org.wfc.user.domain.UCdr; import org.wfc.user.domain.bo.UCdrClientBo; import org.wfc.user.domain.vo.UCdrClientVo; +import org.wfc.user.domain.vo.UCdrHistoryUserVo; import org.wfc.user.domain.vo.UCdrUserVo; import java.util.List; @@ -23,4 +24,5 @@ public interface UCdrMapper extends BaseMapper { List getByClient(@Param("client") UCdrClientBo client); + List getHistoryByUser(@Param("userId") Long userId); } diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UClientMapper.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UClientMapper.java index 1b5d554..dd04caf 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UClientMapper.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UClientMapper.java @@ -1,7 +1,12 @@ package org.wfc.user.mapper; -import org.wfc.user.domain.UClient; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.wfc.user.domain.UClient; +import org.wfc.user.domain.vo.UClientHistoryUserVo; +import org.wfc.user.domain.vo.UClientCurrentVo; + +import java.util.List; /** *

@@ -13,4 +18,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface UClientMapper extends BaseMapper { + List getCurrentClients(@Param("userId") Long userId); + + List getHistoryByUser(@Param("userId") Long userId); } diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUCdrService.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUCdrService.java index b062ac0..dc49e1b 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUCdrService.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUCdrService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.wfc.user.domain.UCdr; import org.wfc.user.domain.bo.UCdrClientBo; import org.wfc.user.domain.vo.UCdrClientVo; +import org.wfc.user.domain.vo.UCdrHistoryUserVo; import org.wfc.user.domain.vo.UCdrUserVo; import java.util.List; @@ -22,6 +23,8 @@ public interface IUCdrService extends IService { List getByClient(UCdrClientBo client); + List getHistoryByUser(); + void addCdrInfoByOmadaApi(); } diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUClientService.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUClientService.java index e8a0eec..bf20d9c 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUClientService.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUClientService.java @@ -3,6 +3,10 @@ package org.wfc.user.service; import com.baomidou.mybatisplus.extension.service.IService; import org.wfc.user.api.domain.bo.UClientBo; import org.wfc.user.domain.UClient; +import org.wfc.user.domain.vo.UClientCurrentVo; +import org.wfc.user.domain.vo.UClientHistoryUserVo; + +import java.util.List; /** *

@@ -16,4 +20,7 @@ public interface IUClientService extends IService { boolean recordClientUser(UClientBo uClientBo); + List getCurrentClients(); + + List getHistoryByUser(); } diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UCdrServiceImpl.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UCdrServiceImpl.java index 7f3bc03..ebc0308 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UCdrServiceImpl.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UCdrServiceImpl.java @@ -26,6 +26,7 @@ import org.wfc.user.domain.UClient; import org.wfc.user.domain.UDevice; import org.wfc.user.domain.bo.UCdrClientBo; import org.wfc.user.domain.vo.UCdrClientVo; +import org.wfc.user.domain.vo.UCdrHistoryUserVo; import org.wfc.user.domain.vo.UCdrUserVo; import org.wfc.user.mapper.UCdrMapper; import org.wfc.user.service.IUCdrHistoryService; @@ -79,6 +80,12 @@ public class UCdrServiceImpl extends ServiceImpl implements IU return this.baseMapper.getByClient(client); } + @Override + public List getHistoryByUser() { + LoginUser loginUser = SecurityUtils.getLoginUser(); + return this.baseMapper.getHistoryByUser(loginUser.getUserid()); + } + @Override public void addCdrInfoByOmadaApi() { ResponseEntity siteResp = omadaSiteApi.getSiteList(1, 1000); diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UClientServiceImpl.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UClientServiceImpl.java index 8c1c062..beea191 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UClientServiceImpl.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UClientServiceImpl.java @@ -1,15 +1,23 @@ package org.wfc.user.service.impl; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.wfc.common.core.domain.LoginUser; +import org.wfc.common.security.utils.SecurityUtils; import org.wfc.user.api.domain.bo.UClientBo; import org.wfc.user.domain.UClient; +import org.wfc.user.domain.vo.UClientCurrentVo; +import org.wfc.user.domain.vo.UClientHistoryUserVo; import org.wfc.user.mapper.UClientMapper; import org.wfc.user.service.IUClientService; +import java.util.Collections; +import java.util.List; + /** *

* 用户平台_用户设备表 服务实现类 @@ -35,4 +43,22 @@ public class UClientServiceImpl extends ServiceImpl impl } return this.saveOrUpdate(uClient); } + + @Override + public List getCurrentClients() { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + return Collections.emptyList(); + } + return this.baseMapper.getCurrentClients(loginUser.getUserid()); + } + + @Override + public List getHistoryByUser() { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + return Collections.emptyList(); + } + return this.baseMapper.getHistoryByUser(loginUser.getUserid()); + } } diff --git a/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UCdrMapper.xml b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UCdrMapper.xml index 3efd102..b854fc0 100644 --- a/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UCdrMapper.xml +++ b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UCdrMapper.xml @@ -7,6 +7,7 @@ cdr.user_id id, min( ch.start_time ) start_time, max( cdr.last_seen_time ) end_time, + max( cdr.activity ) activity, sum( ifnull( cdr.up_time, 0 ))+ sum( ifnull( ch.duration, 0 )) duration, @@ -72,4 +73,36 @@ AND c.client_mac = like concat('%', #{client.clientMac}, '%') + + diff --git a/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UClientMapper.xml b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UClientMapper.xml index cc639a0..37d679b 100644 --- a/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UClientMapper.xml +++ b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UClientMapper.xml @@ -2,4 +2,53 @@ + + + + diff --git a/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UUserMapper.xml b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UUserMapper.xml index e0b9896..901162f 100644 --- a/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UUserMapper.xml +++ b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UUserMapper.xml @@ -75,6 +75,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND u.phonenumber like concat('%', #{phonenumber}, '%') + + AND u.email like concat('%', #{email}, '%') + AND date_format(u.create_time,'%Y%m%d') >= date_format(#{params.beginTime},'%Y%m%d')