Search in sources :

Example 6 with PaginationDataVO

use of org.mx.service.rest.vo.PaginationDataVO in project main by JohnPeng739.

the class UserManageResource method listUsersPagination.

@Path("users")
@POST
@AuthenticateAround(returnValueClass = PaginationDataVO.class)
public PaginationDataVO<List<UserVO>> listUsersPagination(Pagination pagination) {
    if (pagination == null) {
        pagination = new Pagination();
    }
    try {
        List<User> users = accessor.list(pagination, User.class);
        List<UserVO> userVOs = UserVO.transform(users);
        return new PaginationDataVO<>(pagination, userVOs);
    } catch (UserInterfaceException ex) {
        return new PaginationDataVO<>(ex);
    } catch (Exception ex) {
        if (logger.isErrorEnabled()) {
            logger.error("List users fail.", ex);
        }
        return new PaginationDataVO<>(new UserInterfaceSystemErrorException(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_OTHER_FAIL));
    }
}
Also used : Pagination(org.mx.dal.Pagination) User(org.mx.comps.rbac.dal.entity.User) PaginationDataVO(org.mx.service.rest.vo.PaginationDataVO) UserVO(org.mx.comps.rbac.rest.vo.UserVO) UserInterfaceException(org.mx.error.UserInterfaceException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) UserInterfaceException(org.mx.error.UserInterfaceException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) AuthenticateAround(org.mx.comps.jwt.AuthenticateAround)

Example 7 with PaginationDataVO

use of org.mx.service.rest.vo.PaginationDataVO in project main by JohnPeng739.

the class NotifyServerResource method getOnlineDevices.

/**
 * 获取符合条件的在线设备列表
 *
 * @param state      指定的状态
 * @param later      注册时间晚于指定时间
 * @param early      注册时间早于指定时间
 * @param pagination 分页对象
 * @return 在线设备列表
 */
@Path("onlines")
@POST
public PaginationDataVO<List<OnlineDeviceVO>> getOnlineDevices(@QueryParam("state") String state, @QueryParam("later") long later, @QueryParam("early") long early, Pagination pagination) {
    List<Predicate<OnlineDevice>> filters = new ArrayList<>();
    if (!StringUtils.isBlank(state)) {
        filters.add(onlineDevice -> state.equals(onlineDevice.getState()));
    }
    if (later > 0) {
        filters.add(onlineDevice -> onlineDevice.getRegistryTime() >= later);
    }
    if (early > 0) {
        filters.add(onlineDevice -> onlineDevice.getRegistryTime() <= early);
    }
    Set<OnlineDevice> set = onlineManager.getOnlineDevices(filters);
    if (pagination == null) {
        pagination = new Pagination();
    }
    List<OnlineDevice> list = new ArrayList<>();
    list.addAll(set);
    // 按照注册时间排序
    list.sort((od1, od2) -> (int) (od1.getRegistryTime() - od2.getRegistryTime()));
    pagination.setTotal(set.size());
    List<OnlineDevice> result = new ArrayList<>();
    int skip = (pagination.getPage() - 1) * pagination.getSize();
    int num = Math.min(pagination.getSize(), list.size() - skip);
    for (int index = skip; index < skip + num; index++) {
        result.add(list.get(index));
    }
    return new PaginationDataVO<>(pagination, OnlineDeviceVO.transform(result));
}
Also used : Pagination(org.mx.dal.Pagination) OnlineDevice(org.mx.comps.notify.online.OnlineDevice) PaginationDataVO(org.mx.service.rest.vo.PaginationDataVO) ArrayList(java.util.ArrayList) Predicate(java.util.function.Predicate)

Example 8 with PaginationDataVO

use of org.mx.service.rest.vo.PaginationDataVO in project main by JohnPeng739.

the class AccountManageResource method logs.

@Path("logs")
@POST
@AuthenticateAround(returnValueClass = PaginationDataVO.class)
public PaginationDataVO<List<OperateLogVO>> logs(Pagination pagination, @Context Request request) {
    if (pagination == null) {
        pagination = new Pagination();
    }
    try {
        List<OperateLog> logs = accessor.list(pagination, OperateLog.class);
        List<OperateLogVO> vos = OperateLogVO.transform(logs);
        return new PaginationDataVO(pagination, vos);
    } catch (UserInterfaceException ex) {
        return new PaginationDataVO<>(ex);
    } catch (Exception ex) {
        if (logger.isErrorEnabled()) {
            logger.error("List logs fail.", ex);
        }
        return new PaginationDataVO<>(new UserInterfaceSystemErrorException(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_OTHER_FAIL));
    }
}
Also used : Pagination(org.mx.dal.Pagination) PaginationDataVO(org.mx.service.rest.vo.PaginationDataVO) UserInterfaceException(org.mx.error.UserInterfaceException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) UserInterfaceException(org.mx.error.UserInterfaceException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) OperateLog(org.mx.dal.entity.OperateLog) AuthenticateAround(org.mx.comps.jwt.AuthenticateAround)

Aggregations

Pagination (org.mx.dal.Pagination)8 PaginationDataVO (org.mx.service.rest.vo.PaginationDataVO)8 AuthenticateAround (org.mx.comps.jwt.AuthenticateAround)7 UserInterfaceException (org.mx.error.UserInterfaceException)7 UserInterfaceSystemErrorException (org.mx.error.UserInterfaceSystemErrorException)7 ArrayList (java.util.ArrayList)1 Predicate (java.util.function.Predicate)1 OnlineDevice (org.mx.comps.notify.online.OnlineDevice)1 Accredit (org.mx.comps.rbac.dal.entity.Accredit)1 Department (org.mx.comps.rbac.dal.entity.Department)1 LoginHistory (org.mx.comps.rbac.dal.entity.LoginHistory)1 Privilege (org.mx.comps.rbac.dal.entity.Privilege)1 Role (org.mx.comps.rbac.dal.entity.Role)1 User (org.mx.comps.rbac.dal.entity.User)1 AccreditVO (org.mx.comps.rbac.rest.vo.AccreditVO)1 DepartmentVO (org.mx.comps.rbac.rest.vo.DepartmentVO)1 PrivilegeVO (org.mx.comps.rbac.rest.vo.PrivilegeVO)1 RoleVO (org.mx.comps.rbac.rest.vo.RoleVO)1 UserVO (org.mx.comps.rbac.rest.vo.UserVO)1 OperateLog (org.mx.dal.entity.OperateLog)1