From 1e4b518f48933b58864368fdf3b8fdff94186dc6 Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Wed, 25 Dec 2024 17:06:44 +0800 Subject: [PATCH] feat: add dashboard --- .../user/controller/UAccountController.java | 7 ++- .../service/impl/UAccountServiceImpl.java | 22 +++++---- .../main/resources/mapper/user/UCdrMapper.xml | 47 ++++++++++++------- 3 files changed, 50 insertions(+), 26 deletions(-) diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UAccountController.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UAccountController.java index 3ba78f6..e8e4948 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UAccountController.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UAccountController.java @@ -27,7 +27,7 @@ import java.util.List; * @since 2024-12-23 */ @RestController -@RequestMapping("/user/uAccount") +@RequestMapping("/account") public class UAccountController extends BaseController { @Autowired @@ -51,6 +51,11 @@ public class UAccountController extends BaseController { return success(uAccountService.getById(id)); } + @GetMapping(value = "/dashboard") + public AjaxResult dashboard() { + return success(uAccountService.getByUser()); + } + @PostMapping public AjaxResult add(@RequestBody UAccount uAccount) { return toAjax(uAccountService.save(uAccount)); diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UAccountServiceImpl.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UAccountServiceImpl.java index 7012d7a..302da48 100644 --- a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UAccountServiceImpl.java +++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UAccountServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,7 +30,6 @@ import org.wfc.user.service.IUAccountService; import java.math.BigDecimal; import java.util.Date; import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; /** @@ -40,6 +40,7 @@ import java.util.stream.Collectors; * @author sys * @since 2024-12-23 */ +@Slf4j @Service public class UAccountServiceImpl extends ServiceImpl implements IUAccountService { @@ -62,14 +63,15 @@ public class UAccountServiceImpl extends ServiceImpl i DateTime endTime = DateUtil.offsetSecond(current, -30); List accounts = this.list(Wrappers.lambdaQuery().gt(UAccount::getEndTime, endTime)); // 更新账户已使用流量,已使用时长 - List statCdr = ucdrMapper.getByUser(null, current.getTime(), endTime.getTime()); for (UAccount account : accounts) { - for (UCdrUserVo stat : statCdr) { - if (Objects.equals(account.getUserId(), stat.getId())) { - account.setTrafficUsed(stat.getTrafficUp() + stat.getTrafficDown()); - account.setDurationUsed(stat.getDuration()); - } + if (ObjectUtil.isNull(account.getUserId())) { + continue; } + List statCdr = ucdrMapper.getByUser(account.getUserId(), account.getStartTime().getTime(), account.getEndTime().getTime()); + statCdr.stream().findFirst().ifPresent(stat -> { + account.setTrafficUsed(stat.getTrafficUp() + stat.getTrafficDown()); + account.setDurationUsed(stat.getDuration()); + }); } this.updateBatchById(accounts); @@ -83,7 +85,11 @@ public class UAccountServiceImpl extends ServiceImpl i if (CollUtil.isNotEmpty(userIds)) { List clients = clientMapper.selectList(Wrappers.lambdaQuery().in(UClient::getUserId, userIds)); for (UClient client : clients) { - omadaAuthorizedClientApi.cancelAuthClient(client.getSiteId(), client.getClientMac()); + try { + omadaAuthorizedClientApi.cancelAuthClient(client.getSiteId(), client.getClientMac()); + } catch (Exception e) { + log.info("unAuth error: {}", e.getMessage()); + } } } 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 af938b1..9e03983 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 @@ -4,21 +4,36 @@