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 0a7bd2c..0658e48 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 @@ -93,6 +93,7 @@ public class UCdrServiceImpl extends ServiceImpl implements IU return; } List sites = siteResp.getBody().getResult().getData(); + List allClients = clientService.list(Wrappers.lambdaQuery().isNotNull(UClient::getUserId)); // 添加AP设备 addDevices(sites); for (SiteSummaryInfo site : sites) { @@ -105,16 +106,19 @@ public class UCdrServiceImpl extends ServiceImpl implements IU // 添加用户设备 UClient hasClient = addClient(client); // 添加话单 - Long cdrId = addCdr(client, hasClient); - // 添加话单历史 - addCdrHistory(site, client, cdrId); + addCdr(client, hasClient); + } + for (UClient client : allClients) { + UCdr uCdr = this.getOne(Wrappers.lambdaQuery().eq(UCdr::getUserId, client.getUserId()) + .eq(UCdr::getClientId, client.getId())); + addCdrHistory(site, client.getClientMac(), uCdr.getId()); } } } - private void addCdrHistory(SiteSummaryInfo site, ClientInfo client, Long cdrId) { + private void addCdrHistory(SiteSummaryInfo site, String mac, Long cdrId) { // 话单历史 - ResponseEntity pastConnResp = omadaClientInsightApi.getGridPastConnections(site.getSiteId(), 1, 1000, client.getMac()); + ResponseEntity pastConnResp = omadaClientInsightApi.getGridPastConnections(site.getSiteId(), 1, 1000, mac); if (ObjectUtil.isNull(pastConnResp.getBody())) { return; } 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 01ce75c..d511b6b 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 @@ -80,14 +80,11 @@ c.client_name, c.client_mac, c.client_device_type, - min( ch.start_time ) start_time, - max( ch.end_time ) end_time, - sum( - ifnull( ch.duration, 0 )) duration, - sum( - ifnull( ch.traffic_down, 0 )) traffic_down, - sum( - ifnull( ch.traffic_up, 0 )) traffic_up + ch.start_time, + ch.end_time, + ifnull( ch.duration, 0 ) duration, + ifnull( ch.traffic_down, 0 ) traffic_down, + ifnull( ch.traffic_up, 0 ) traffic_up FROM u_cdr cdr LEFT JOIN u_cdr_history ch ON cdr.id = ch.cdr_id @@ -100,10 +97,7 @@ AND cdr.user_id = #{userId} - GROUP BY - cdr.user_id, - cdr.client_id ORDER BY - min( ch.start_time ) DESC + ch.start_time DESC 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 5796050..4304bee 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 @@ -31,11 +31,14 @@ c.client_name, c.client_mac, c.client_device_type, - ch.start_time, - ch.end_time, - ifnull( ch.duration, 0 ) duration, - ifnull( ch.traffic_down, 0 ) traffic_down, - ifnull( ch.traffic_up, 0 ) traffic_up + min( ch.start_time ) start_time, + max( ch.end_time ) end_time, + sum( + ifnull( ch.duration, 0 )) duration, + sum( + ifnull( ch.traffic_down, 0 )) traffic_down, + sum( + ifnull( ch.traffic_up, 0 )) traffic_up FROM u_cdr cdr LEFT JOIN u_cdr_history ch ON cdr.id = ch.cdr_id @@ -48,8 +51,11 @@ AND cdr.user_id = #{userId} + GROUP BY + cdr.user_id, + cdr.client_id ORDER BY - ch.start_time DESC + min( ch.start_time ) DESC