feat(work): 添加共享账号统计功能并优化列表展示

- 在 ITzSharedAccountService 接口中添加 queryCount 方法,用于查询共享账号数量
- 在 TzSharedAccountController 中添加 count 接口,提供共享账号统计功能
- 在 TzSharedAccountServiceImpl 中实现 queryCount 方法,统计账号总数量、未使用数量和使用中数量- 优化 queryList 方法,按创建时间降序排序共享账号列表
- 移除无效的代码和注释,提高代码可读性
This commit is contained in:
清晨
2025-05-06 11:11:41 +08:00
parent 56ab84283b
commit 6c73947ef3
3 changed files with 43 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
package org.dromara.work.controller;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
@@ -45,6 +46,14 @@ public class TzSharedAccountController extends BaseController {
return tzSharedAccountService.queryPageList(bo, pageQuery);
}
/**
* 共享账号统计
*/
@SaCheckPermission("work:sharedAccount:list")
@GetMapping("/count")
public R<Map<String, Object>> count(TzSharedAccountBo bo) {
return R.ok(tzSharedAccountService.queryCount(bo));
}
/**
* 导出共享账号列表
*/

View File

@@ -7,6 +7,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 共享账号Service接口
@@ -65,4 +66,12 @@ public interface ITzSharedAccountService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 查询共享账号数量
*
* @param bo 查询条件
* @return 共享账号数量
*/
Map<String, Object> queryCount(TzSharedAccountBo bo);
}

View File

@@ -15,6 +15,7 @@ import org.dromara.work.domain.TzSharedAccount;
import org.dromara.work.mapper.TzSharedAccountMapper;
import org.dromara.work.service.ITzSharedAccountService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collection;
@@ -56,6 +57,29 @@ public class TzSharedAccountServiceImpl implements ITzSharedAccountService {
return TableDataInfo.build(result);
}
/**
* 查询共享账号数量
*
* @param bo 查询条件
* @return 共享账号数量
*/
@Override
public Map<String, Object> queryCount(TzSharedAccountBo bo) {
List<TzSharedAccountVo> list = queryList(bo);
//账号总数量
Long count = (long) list.size();
//账号未使用数量
Long notUsedCount = list.stream().filter(item -> item.getStatus() == 0).count();
//账号使用中数量
Long usingCount = list.stream().filter(item -> item.getStatus() == 1).count();
Map<String, Object> map = new HashMap<>();
map.put("count", count);
map.put("notUsedCount", notUsedCount);
map.put("usingCount", usingCount);
return map;
}
/**
* 查询符合条件的共享账号列表
*
@@ -71,7 +95,7 @@ public class TzSharedAccountServiceImpl implements ITzSharedAccountService {
private LambdaQueryWrapper<TzSharedAccount> buildQueryWrapper(TzSharedAccountBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<TzSharedAccount> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(TzSharedAccount::getId);
lqw.orderByDesc(TzSharedAccount::getCreateTime);
lqw.eq(bo.getUserId() != null, TzSharedAccount::getUserId, bo.getUserId());
lqw.like(StringUtils.isNotBlank(bo.getUserName()), TzSharedAccount::getUserName, bo.getUserName());
lqw.eq(StringUtils.isNotBlank(bo.getCode()), TzSharedAccount::getCode, bo.getCode());
@@ -97,7 +121,6 @@ public class TzSharedAccountServiceImpl implements ITzSharedAccountService {
@Override
public Boolean insertByBo(TzSharedAccountBo bo) {
TzSharedAccount add = MapstructUtils.convert(bo, TzSharedAccount.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
@@ -114,17 +137,9 @@ public class TzSharedAccountServiceImpl implements ITzSharedAccountService {
@Override
public Boolean updateByBo(TzSharedAccountBo bo) {
TzSharedAccount update = MapstructUtils.convert(bo, TzSharedAccount.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(TzSharedAccount entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除共享账号信息
*
@@ -134,9 +149,6 @@ public class TzSharedAccountServiceImpl implements ITzSharedAccountService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}