支持分页查询

master
DongZeLiang 2023-12-02 22:06:51 +08:00
parent ce3ca434be
commit 6ad8afdda3
13 changed files with 76 additions and 15 deletions

View File

@ -0,0 +1,31 @@
package com.muyu.common;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author: DongZeLiang
* @date: 2023/12/2
* @Description:
* @Version: 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageList<T> {
/**
*
*/
private List<T> rows;
/**
*
*/
private long total;
}

View File

@ -1,5 +1,6 @@
package com.muyu.controller; package com.muyu.controller;
import com.muyu.common.PageList;
import com.muyu.common.Result; import com.muyu.common.Result;
import com.muyu.domain.req.CheckPositionReq; import com.muyu.domain.req.CheckPositionReq;
import com.muyu.domain.req.GearReq; import com.muyu.domain.req.GearReq;
@ -34,9 +35,9 @@ public class VehicleInstanceController {
* @return * @return
*/ */
@PostMapping("/list") @PostMapping("/list")
public Result<List<VehicleInstanceResp>> list(@RequestBody VehicleInstanceListReq vehicleInstanceListReq){ public Result<PageList<VehicleInstanceResp>> list(@RequestBody VehicleInstanceListReq vehicleInstanceListReq){
List<VehicleInstanceResp> list = vehicleInstanceService.queryList(vehicleInstanceListReq); PageList<VehicleInstanceResp> pageList = vehicleInstanceService.queryList(vehicleInstanceListReq);
return Result.success(list); return Result.success(pageList);
} }
/** /**

View File

@ -16,6 +16,16 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
public class VehicleInstanceListReq { public class VehicleInstanceListReq {
/**
*
*/
private Long page;
/**
*
*/
private Long pageSize;
/** /**
* VIN * VIN
*/ */
@ -26,4 +36,7 @@ public class VehicleInstanceListReq {
*/ */
private boolean online; private boolean online;
} }

View File

@ -1,5 +1,6 @@
package com.muyu.service; package com.muyu.service;
import com.muyu.common.PageList;
import com.muyu.domain.Vehicle; import com.muyu.domain.Vehicle;
import com.muyu.domain.req.CheckPositionReq; import com.muyu.domain.req.CheckPositionReq;
import com.muyu.domain.req.GearReq; import com.muyu.domain.req.GearReq;
@ -7,8 +8,6 @@ import com.muyu.domain.req.MsgReq;
import com.muyu.domain.req.VehicleInstanceListReq; import com.muyu.domain.req.VehicleInstanceListReq;
import com.muyu.domain.resp.VehicleInstanceResp; import com.muyu.domain.resp.VehicleInstanceResp;
import java.util.List;
/** /**
* @author DongZeLiang * @author DongZeLiang
* @version 1.0 * @version 1.0
@ -26,10 +25,12 @@ public interface VehicleInstanceService {
/** /**
* *
*
* @param vehicleInstanceListReq * @param vehicleInstanceListReq
*
* @return * @return
*/ */
List<VehicleInstanceResp> queryList (VehicleInstanceListReq vehicleInstanceListReq); PageList<VehicleInstanceResp> queryList (VehicleInstanceListReq vehicleInstanceListReq);
/** /**
* *

View File

@ -1,5 +1,6 @@
package com.muyu.service.impl; package com.muyu.service.impl;
import com.muyu.common.PageList;
import com.muyu.common.Result; import com.muyu.common.Result;
import com.muyu.domain.Vehicle; import com.muyu.domain.Vehicle;
import com.muyu.domain.model.PositionModel; import com.muyu.domain.model.PositionModel;
@ -70,7 +71,7 @@ public class VehicleInstanceServiceImpl implements VehicleInstanceService {
* @return * @return
*/ */
@Override @Override
public List<VehicleInstanceResp> queryList (VehicleInstanceListReq vehicleInstanceListReq) { public PageList<VehicleInstanceResp> queryList (VehicleInstanceListReq vehicleInstanceListReq) {
Stream<VehicleInstance> stream = LocalContainer.vehicleDataMap.values() Stream<VehicleInstance> stream = LocalContainer.vehicleDataMap.values()
.stream(); .stream();
if (StringUtils.isNotBlank(vehicleInstanceListReq.getVin())){ if (StringUtils.isNotBlank(vehicleInstanceListReq.getVin())){
@ -82,9 +83,16 @@ public class VehicleInstanceServiceImpl implements VehicleInstanceService {
stream = stream.sorted(Comparator.comparingInt(o -> (o.isOnline() ? 0 : 1))); stream = stream.sorted(Comparator.comparingInt(o -> (o.isOnline() ? 0 : 1)));
} }
return stream return PageList.<VehicleInstanceResp>builder()
.map(VehicleInstanceResp::instanceBuild) .total(LocalContainer.total())
.toList(); .rows(
stream
.map(VehicleInstanceResp::instanceBuild)
.skip((vehicleInstanceListReq.getPage() - 1) * vehicleInstanceListReq.getPageSize())
.limit(vehicleInstanceListReq.getPageSize())
.toList()
)
.build();
} }
/** /**

View File

@ -41,4 +41,11 @@ public class LocalContainer {
return vehicleDataMap.get(vin); return vehicleDataMap.get(vin);
} }
/**
* 线
* @return
*/
public static long total () {
return vehicleDataMap.size();
}
} }

View File

@ -1 +0,0 @@
.app-container[data-v-21bce1ff]{padding:10px 5px 0 10px;background-color:#f4f4f5}.el-row[data-v-21bce1ff]{&:last-child{margin-bottom:0}}.bg-purple[data-v-21bce1ff]{background:#f4f4f5}.grid-content[data-v-21bce1ff]{border-radius:4px;overflow-x:hidden;overflow-y:auto}.grid-content[data-v-21bce1ff]::-webkit-scrollbar{width:4px}.grid-content[data-v-21bce1ff]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.grid-content[data-v-21bce1ff]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.vehicleDiv[data-v-21bce1ff]{height:50px;margin:0 0 10px 0}.contentMain[data-v-21bce1ff]{margin-top:10px}.vehicleDataTab[data-v-21bce1ff]{width:100%;overflow-y:auto;overflow-x:hidden}.vehicleDataTab[data-v-21bce1ff]::-webkit-scrollbar{width:4px}.vehicleDataTab[data-v-21bce1ff]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.vehicleDataTab[data-v-21bce1ff]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.el-form-item__label[data-v-21bce1ff]{padding:0}.el-form-item[data-v-21bce1ff]{margin-bottom:5px}

View File

@ -0,0 +1 @@
.app-container[data-v-1ee9ff37]{padding:10px 5px 0 10px;background-color:#f4f4f5}.el-row[data-v-1ee9ff37]{&:last-child{margin-bottom:0}}.bg-purple[data-v-1ee9ff37]{background:#f4f4f5}.grid-content[data-v-1ee9ff37]{border-radius:4px;overflow-x:hidden;overflow-y:auto}.grid-content[data-v-1ee9ff37]::-webkit-scrollbar{width:4px}.grid-content[data-v-1ee9ff37]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.grid-content[data-v-1ee9ff37]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.vehicleDiv[data-v-1ee9ff37]{height:50px;margin:0 0 10px 0}.contentMain[data-v-1ee9ff37]{margin-top:10px}.vehicleDataTab[data-v-1ee9ff37]{width:100%;overflow-y:auto;overflow-x:hidden}.vehicleDataTab[data-v-1ee9ff37]::-webkit-scrollbar{width:4px}.vehicleDataTab[data-v-1ee9ff37]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.vehicleDataTab[data-v-1ee9ff37]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.el-form-item__label[data-v-1ee9ff37]{padding:0}.el-form-item[data-v-1ee9ff37]{margin-bottom:5px}

View File

@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/favicon.ico><title>车辆</title><link href=/static/css/app.949a0224.css rel=preload as=style><link href=/static/css/chunk-elementUI.c1c3b808.css rel=preload as=style><link href=/static/css/chunk-libs.3dfb7769.css rel=preload as=style><link href=/static/js/app.6f0c16a5.js rel=preload as=script><link href=/static/js/chunk-elementUI.25be3ec1.js rel=preload as=script><link href=/static/js/chunk-libs.2ec7c235.js rel=preload as=script><link href=/static/css/chunk-elementUI.c1c3b808.css rel=stylesheet><link href=/static/css/chunk-libs.3dfb7769.css rel=stylesheet><link href=/static/css/app.949a0224.css rel=stylesheet></head><body><noscript><strong>We're sorry but 车辆 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var n,o,c=t[0],i=t[1],l=t[2],f=0,s=[];f<c.length;f++)o=c[f],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&s.push(a[o][0]),a[o]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);d&&d(t);while(s.length)s.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var c=r[o];0!==a[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={runtime:0},a={runtime:0},u=[];function c(e){return i.p+"static/js/"+({}[e]||e)+"."+{"chunk-019c66da":"ded8571e","chunk-15a779e0":"18bdfa69","chunk-22cea610":"a50359dd","chunk-510f32e7":"18a692c7","chunk-630a64ed":"8295bd3f"}[e]+".js"}function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r={"chunk-15a779e0":1,"chunk-22cea610":1,"chunk-510f32e7":1,"chunk-630a64ed":1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="static/css/"+({}[e]||e)+"."+{"chunk-019c66da":"31d6cfe0","chunk-15a779e0":"758283f0","chunk-22cea610":"3c7f5ad9","chunk-510f32e7":"1510e3c5","chunk-630a64ed":"9a9361c6"}[e]+".css",a=i.p+n,u=document.getElementsByTagName("link"),c=0;c<u.length;c++){var l=u[c],f=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(f===n||f===a))return t()}var s=document.getElementsByTagName("style");for(c=0;c<s.length;c++){l=s[c],f=l.getAttribute("data-href");if(f===n||f===a)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],d.parentNode.removeChild(d),r(u)},d.href=a;var h=document.getElementsByTagName("head")[0];h.appendChild(d)})).then((function(){o[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var u=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=u);var l,f=document.createElement("script");f.charset="utf-8",f.timeout=120,i.nc&&f.setAttribute("nonce",i.nc),f.src=c(e);var s=new Error;l=function(t){f.onerror=f.onload=null,clearTimeout(d);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",s.name="ChunkLoadError",s.type=n,s.request=o,r[1](s)}a[e]=void 0}};var d=setTimeout((function(){l({type:"timeout",target:f})}),12e4);f.onerror=f.onload=l,document.head.appendChild(f)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var l=window["webpackJsonp"]=window["webpackJsonp"]||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var s=0;s<l.length;s++)t(l[s]);var d=f;r()})([]);</script><script src=/static/js/chunk-elementUI.25be3ec1.js></script><script src=/static/js/chunk-libs.2ec7c235.js></script><script src=/static/js/app.6f0c16a5.js></script></body></html> <!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/favicon.ico><title>车辆</title><link href=/static/css/app.949a0224.css rel=preload as=style><link href=/static/css/chunk-elementUI.c1c3b808.css rel=preload as=style><link href=/static/css/chunk-libs.3dfb7769.css rel=preload as=style><link href=/static/js/app.9c27f141.js rel=preload as=script><link href=/static/js/chunk-elementUI.2491fb2f.js rel=preload as=script><link href=/static/js/chunk-libs.2ec7c235.js rel=preload as=script><link href=/static/css/chunk-elementUI.c1c3b808.css rel=stylesheet><link href=/static/css/chunk-libs.3dfb7769.css rel=stylesheet><link href=/static/css/app.949a0224.css rel=stylesheet></head><body><noscript><strong>We're sorry but 车辆 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var n,o,c=t[0],i=t[1],l=t[2],f=0,s=[];f<c.length;f++)o=c[f],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&s.push(a[o][0]),a[o]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);d&&d(t);while(s.length)s.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var c=r[o];0!==a[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={runtime:0},a={runtime:0},u=[];function c(e){return i.p+"static/js/"+({}[e]||e)+"."+{"chunk-019c66da":"ded8571e","chunk-5b078ae0":"c5f8595b","chunk-22cea610":"a50359dd","chunk-510f32e7":"18a692c7","chunk-630a64ed":"8295bd3f"}[e]+".js"}function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r={"chunk-5b078ae0":1,"chunk-22cea610":1,"chunk-510f32e7":1,"chunk-630a64ed":1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="static/css/"+({}[e]||e)+"."+{"chunk-019c66da":"31d6cfe0","chunk-5b078ae0":"ab6918ec","chunk-22cea610":"3c7f5ad9","chunk-510f32e7":"1510e3c5","chunk-630a64ed":"9a9361c6"}[e]+".css",a=i.p+n,u=document.getElementsByTagName("link"),c=0;c<u.length;c++){var l=u[c],f=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(f===n||f===a))return t()}var s=document.getElementsByTagName("style");for(c=0;c<s.length;c++){l=s[c],f=l.getAttribute("data-href");if(f===n||f===a)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],d.parentNode.removeChild(d),r(u)},d.href=a;var h=document.getElementsByTagName("head")[0];h.appendChild(d)})).then((function(){o[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var u=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=u);var l,f=document.createElement("script");f.charset="utf-8",f.timeout=120,i.nc&&f.setAttribute("nonce",i.nc),f.src=c(e);var s=new Error;l=function(t){f.onerror=f.onload=null,clearTimeout(d);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",s.name="ChunkLoadError",s.type=n,s.request=o,r[1](s)}a[e]=void 0}};var d=setTimeout((function(){l({type:"timeout",target:f})}),12e4);f.onerror=f.onload=l,document.head.appendChild(f)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var l=window["webpackJsonp"]=window["webpackJsonp"]||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var s=0;s<l.length;s++)t(l[s]);var d=f;r()})([]);</script><script src=/static/js/chunk-elementUI.2491fb2f.js></script><script src=/static/js/chunk-libs.2ec7c235.js></script><script src=/static/js/app.9c27f141.js></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long