mirror of
https://github.com/thousmile/molly-multi-tenant.git
synced 2025-12-30 04:32:26 +00:00
添加,自定义排序
This commit is contained in:
@@ -45,7 +45,7 @@ function createService() {
|
||||
case 400010:
|
||||
case 400011:
|
||||
case 400012:
|
||||
logout(apiData.message, "登录过期")
|
||||
logout("登录过期", apiData.message)
|
||||
return Promise.reject(new Error(apiData.message))
|
||||
case 400444:
|
||||
case 400445:
|
||||
|
||||
@@ -13,10 +13,10 @@ x-tenant-id: {{tenantId}}
|
||||
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
|
||||
|
||||
{
|
||||
"username": "eRiiBycWxMc8F0f3RIaaSuwVW+WsgDZcYUe+xqQEJklBjIzhRVhzjlRYDjyV6si93PN8fzgqt0olvbfUOnxtHauWGNoFQndqm5Ak71eau6IIKe0Z7VeV7IntNjO18JpogmkNrjAeAIXkCWNW09gmWeBkK2oAnaVSdK0E+tdPLnJNWmioXuApPVdF6yOWXDqF/UmNtBUz/Ytm/Mg76QRUvnudb6fVrfzJ2Fd6NBN4u07pr53VrZO9mb+a9dewURVWni4p++FrQoWcM6Kc6swfGgFWGQ7+oBOgs5nURsNwpGX3A1uwcaPRUS9ILzwOyxjAfNNxIl1XkFfNnSHpBQ54Ag==",
|
||||
"password": "eRiiBycWxMc8F0f3RIaaSuwVW+WsgDZcYUe+xqQEJklBjIzhRVhzjlRYDjyV6si93PN8fzgqt0olvbfUOnxtHauWGNoFQndqm5Ak71eau6IIKe0Z7VeV7IntNjO18JpogmkNrjAeAIXkCWNW09gmWeBkK2oAnaVSdK0E+tdPLnJNWmioXuApPVdF6yOWXDqF/UmNtBUz/Ytm/Mg76QRUvnudb6fVrfzJ2Fd6NBN4u07pr53VrZO9mb+a9dewURVWni4p++FrQoWcM6Kc6swfGgFWGQ7+oBOgs5nURsNwpGX3A1uwcaPRUS9ILzwOyxjAfNNxIl1XkFfNnSHpBQ54Ag==",
|
||||
"password": "bbBZpMGRm6Mflw8qaVD7AdRNWoaFbtJ21Tf4Ra4t5dK3eRo2VSPl+Z4QH3d5vy3rWdQTuiP1da5ERTbXoz2ZyAifq4w6GsJC0jZZav3e8KZunezWC8GQJmmTMbgTwV+XvEdafa3Asb9Q9lcRRCoJ1/trzHDMq9MUiEF/0bT32ULp9Lmz/CjilsZuj1tETLXEFxV3W3H7QgGiK8qRqehfqfGAQf/hLOij0954Wa2G9FLhKBdAtvxUzxu4RCRlzTVYoEEUOiWBqgp5/3YSR/XAnI0GW/xzQg2uQj1xs6I9lvB1tk3IfczLPqeqmc3nQaP8dylv1hUAFOaKe7fCtNqurQ==",
|
||||
"username": "pMHtPBxc54hHAiM5WJW2R4hXNQc4wzz9ELuuKPQKGkEpy8ntNTazGq3LyMka9X6rBvAD59imR0CJMWwXs0tATv6TEMzYgjo/cpk8ZjF0vuiROisRYkfnAwteVEkeH0QitmVw6ker1rtlf8QhDxLb/qHhEqO5BdV02x8Mbr2329AHIRx6Hse48HTp3kEXvhc1GvFcE31Wfbh65qwpc2uos8Wp88YuKdNpthYipOShhDwPAx/cwsN2+Y76atIoD03ZaaOlAm/UxfmHYDbCj6sch07ngYAKm0JOfcXECzAkoFkCLUZZGSyhZy3PsP7riCkQ0GHNHgbGdCtMnTc4ajA19A==",
|
||||
"codeKey": "5jXzuwcoUzbtnHNh",
|
||||
"codeText": "55g9"
|
||||
"codeText": "fpvn"
|
||||
}
|
||||
|
||||
> {%
|
||||
|
||||
@@ -7,7 +7,7 @@ Authorization: Bearer {{tokenValue}}
|
||||
|
||||
|
||||
### 分页查询设备
|
||||
GET {{baseUrl}}/cms/device/query?includeCauu=true
|
||||
GET {{baseUrl}}/cms/device/query?includeCauu=false&orderByColumns=createUser,lastUpdateTime,deviceId
|
||||
Content-Type: application/json
|
||||
x-tenant-id: {{tenantId}}
|
||||
x-project-id: {{projectId}}
|
||||
|
||||
@@ -6,6 +6,8 @@ import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;
|
||||
|
||||
@@ -53,4 +55,16 @@ public class PagePO implements java.io.Serializable {
|
||||
@Schema(description = "结束日期")
|
||||
private LocalDate endDate;
|
||||
|
||||
/**
|
||||
* 排序的方向 "desc" 或者 "asc".
|
||||
*/
|
||||
@Schema(description = "排序的方向, true: 顺序、false: 倒序")
|
||||
private boolean asc;
|
||||
|
||||
/**
|
||||
* 排序的字段,如: createUser,lastUpdateTime
|
||||
*/
|
||||
@Schema(description = "排序的字段,如: createUser,lastUpdateTime")
|
||||
private Set<String> orderByColumns;
|
||||
|
||||
}
|
||||
|
||||
@@ -162,7 +162,7 @@ public class JwtTokenServiceImpl implements JwtTokenService {
|
||||
// 删除 被挤下线 的消息提示
|
||||
removeLoginUser(forcedOfflineKey);
|
||||
var errMsg = String.format("您的账号在[ %s ]被其他用户拥下线了!", offlineTime);
|
||||
log.info("errMsg {}", errMsg);
|
||||
log.warn("errMsg {}", errMsg);
|
||||
throw new JwtAuthException(errMsg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.xaaef.molly.tenant.base.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -19,9 +20,11 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.xaaef.molly.common.consts.MbpConst.CREATE_TIME;
|
||||
|
||||
@@ -121,6 +124,19 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T extends BaseEntity> exte
|
||||
wrapper.between(String.format("DATE(%s)", CREATE_TIME), params.getStartDate(), LocalDate.now());
|
||||
}
|
||||
}
|
||||
// 排序
|
||||
if (CollectionUtil.isNotEmpty(params.getOrderByColumns())) {
|
||||
var orderByColumns = params.getOrderByColumns()
|
||||
.stream()
|
||||
.map(column -> column.replaceAll("([A-Z])", "_$1").toLowerCase())
|
||||
.collect(Collectors.toList());
|
||||
if (params.isAsc()) {
|
||||
wrapper.orderByAsc(orderByColumns);
|
||||
} else {
|
||||
wrapper.orderByDesc(orderByColumns);
|
||||
}
|
||||
}
|
||||
// 搜索
|
||||
if (StringUtils.isNotBlank(params.getKeywords()) && columns != null && !columns.isEmpty()) {
|
||||
wrapper.and(childWrapper -> {
|
||||
var index = 0;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import axios, { AxiosResponse, type AxiosInstance, type AxiosRequestConfig } from "axios"
|
||||
import { useUserStoreHook } from "@/store/modules/user"
|
||||
import { ElMessage, ElMessageBox } from "element-plus"
|
||||
import { get, merge } from "lodash-es"
|
||||
import { getToken } from "./cache/local-storage"
|
||||
import { useProjectStoreHook } from "@/store/modules/project"
|
||||
import { getEnvBaseURLPrefix } from "."
|
||||
import { ISimpleProject } from "@/types/base"
|
||||
import axios, {AxiosResponse, type AxiosInstance, type AxiosRequestConfig} from "axios"
|
||||
import {useUserStoreHook} from "@/store/modules/user"
|
||||
import {ElMessage, ElMessageBox} from "element-plus"
|
||||
import {get, merge} from "lodash-es"
|
||||
import {getToken} from "./cache/local-storage"
|
||||
import {useProjectStoreHook} from "@/store/modules/project"
|
||||
import {getEnvBaseURLPrefix} from "."
|
||||
import {ISimpleProject} from "@/types/base"
|
||||
|
||||
/** 创建请求实例 */
|
||||
function createService() {
|
||||
@@ -41,7 +41,7 @@ function createService() {
|
||||
case 400010:
|
||||
case 400011:
|
||||
case 400012:
|
||||
logout(apiData.message, "登录过期")
|
||||
logout("登录过期", apiData.message)
|
||||
return Promise.reject(new Error(apiData.message))
|
||||
case 400444:
|
||||
ElMessage.error(apiData.message)
|
||||
@@ -180,22 +180,22 @@ function httpRequest<T>(config: AxiosRequestConfig): Promise<T> {
|
||||
|
||||
/** 单独抽离的get工具函数 */
|
||||
function httpGet<T, P>(url: string, params?: T): Promise<P> {
|
||||
return httpRequest<P>({ method: "get", url, params })
|
||||
return httpRequest<P>({method: "get", url, params})
|
||||
}
|
||||
|
||||
/** 单独抽离的post工具函数 */
|
||||
function httpPost<T, P>(url: string, data?: T): Promise<P> {
|
||||
return httpRequest<P>({ method: "post", url, data })
|
||||
return httpRequest<P>({method: "post", url, data})
|
||||
}
|
||||
|
||||
/** 单独抽离的put工具函数 */
|
||||
function httpPut<T, P>(url: string, data?: T): Promise<P> {
|
||||
return httpRequest<P>({ method: "put", url, data })
|
||||
return httpRequest<P>({method: "put", url, data})
|
||||
}
|
||||
|
||||
/** 单独抽离的delete工具函数 */
|
||||
function httpDelete<T, P>(url: string, params?: T): Promise<P> {
|
||||
return httpRequest<P>({ method: "delete", url, params })
|
||||
return httpRequest<P>({method: "delete", url, params})
|
||||
}
|
||||
|
||||
export { httpRequest, httpGet, httpPost, httpPut, httpDelete, axiosRequest }
|
||||
export {httpRequest, httpGet, httpPost, httpPut, httpDelete, axiosRequest}
|
||||
|
||||
Reference in New Issue
Block a user