2
0

fix: 在线用户数和搜索

This commit is contained in:
caiyuchao
2025-02-28 10:47:39 +08:00
parent 9c11e5abe6
commit e739cc110a
6 changed files with 51 additions and 32 deletions

View File

@@ -1,8 +1,5 @@
package org.wfc.system.controller;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -11,10 +8,7 @@ import org.springframework.web.bind.annotation.RestController;
import org.wfc.common.core.web.controller.BaseController;
import org.wfc.common.core.web.domain.AjaxResult;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.common.mybatis.domain.BaseData;
import org.wfc.system.domain.UOrder;
import org.wfc.system.domain.UPackage;
import org.wfc.system.domain.UUser;
import org.wfc.system.service.IUOrderService;
import org.wfc.system.service.IUPackageService;
import org.wfc.system.service.IUUserService;
@@ -45,20 +39,7 @@ public class UOrderController extends BaseController {
@GetMapping("/page")
public TableDataInfo page(UOrder uOrder) {
startPage();
List<UOrder> list = uOrderService.list(Wrappers.<UOrder>lambdaQuery()
.like(StrUtil.isNotBlank(uOrder.getOrderNo()), UOrder::getOrderNo, uOrder.getOrderNo())
.eq(ObjectUtil.isNotNull(uOrder.getStatus()), UOrder::getStatus, uOrder.getStatus())
.eq(ObjectUtil.isNotNull(uOrder.getType()), UOrder::getType, uOrder.getType())
.orderByDesc(BaseData::getCreateTime)
);
for (UOrder order : list) {
UUser uUser = uUserService.getById(order.getUserId());
order.setUserName(uUser.getUserName());
if (ObjectUtil.isNotNull(order.getPackageId())) {
UPackage uPackage = packageService.getById(order.getPackageId());
order.setPackageName(uPackage.getPackageName());
}
}
List<UOrder> list = uOrderService.listOrder(uOrder);
return getDataTable(list);
}

View File

@@ -1,8 +1,11 @@
package org.wfc.system.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.wfc.system.domain.UOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.wfc.system.domain.UOrder;
import java.util.List;
/**
* <p>
@@ -14,5 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
@DS("user")
public interface UOrderMapper extends BaseMapper<UOrder> {
List<UOrder> listOrder(@Param("item") UOrder item);
}

View File

@@ -1,7 +1,9 @@
package org.wfc.system.service;
import org.wfc.system.domain.UOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import org.wfc.system.domain.UOrder;
import java.util.List;
/**
* <p>
@@ -12,5 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @since 2025-01-03
*/
public interface IUOrderService extends IService<UOrder> {
List<UOrder> listOrder(UOrder item);
}

View File

@@ -20,16 +20,18 @@ import org.wfc.omada.api.monitor.model.OperationResponseGetDashboardOverview;
import org.wfc.omada.api.organization.OmadaSiteApi;
import org.wfc.omada.api.organization.model.OperationResponseGridVoSiteSummaryInfo;
import org.wfc.omada.api.organization.model.SiteSummaryInfo;
import org.wfc.system.api.domain.SysUser;
import org.wfc.system.domain.convert.SysDashboardConvert;
import org.wfc.system.domain.vo.SysDashboardSiteVo;
import org.wfc.system.domain.vo.SysDashboardVo;
import org.wfc.system.mapper.UUserMapper;
import org.wfc.system.service.ISysDashboardService;
import org.wfc.user.api.domain.UUser;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* @description:
@@ -117,17 +119,18 @@ public class SysDashboardServiceImpl implements ISysDashboardService {
// 注册用户数和在线用户数
Long registerUserNum = userMapper.selectCount(Wrappers.lambdaQuery());
Integer onlineUserNum = 0;
Collection<String> keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
Set<String> sets = new HashSet<>();
for (String key : keys) {
LoginUser user = redisService.getCacheObject(key);
Object userObj = user.getUser();
if (!(userObj instanceof SysUser)) {
onlineUserNum++;
if (userObj instanceof UUser) {
UUser uUser = (UUser) userObj;
sets.add(uUser.getUserName());
}
}
sysDashboardVo.setRegisterUserNum(registerUserNum);
sysDashboardVo.setOnlineUserNum(onlineUserNum);
sysDashboardVo.setOnlineUserNum(sets.size());
return sysDashboardVo;
}

View File

@@ -1,10 +1,12 @@
package org.wfc.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.wfc.system.domain.UOrder;
import org.wfc.system.mapper.UOrderMapper;
import org.wfc.system.service.IUOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
@@ -17,4 +19,8 @@ import org.springframework.stereotype.Service;
@Service
public class UOrderServiceImpl extends ServiceImpl<UOrderMapper, UOrder> implements IUOrderService {
@Override
public List<UOrder> listOrder(UOrder item) {
return this.baseMapper.listOrder(item);
}
}

View File

@@ -1,5 +1,29 @@
<?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="org.wfc.system.mapper.UOrderMapper">
<select id="listOrder" resultType="org.wfc.system.domain.UOrder">
SELECT
o.*,
u.user_name,
p.package_name
FROM
u_order o
LEFT JOIN u_user u ON o.user_id = u.user_id
AND u.del_flag = 0
LEFT JOIN u_package p ON o.package_id = p.id
AND p.del_flag = 0
WHERE
o.del_flag = 0
<if test="item.userName != null and item.userName != ''">
AND u.user_name like concat('%', #{item.userName}, '%')
</if>
<if test="item.status != null">
AND o.status = #{item.status}
</if>
<if test="item.type != null">
AND o.type = #{item.type}
</if>
ORDER BY
o.create_time DESC
</select>
</mapper>