From 78e52da94f8223db86b51a1021236c7f51484a4b Mon Sep 17 00:00:00 2001 From: gaoxq <376340421@qq.com> Date: Sun, 1 Mar 2026 21:28:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E9=A1=B9=E7=9B=AE=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- screen-vue/src/api/bizMenu.js | 12 + screen-vue/src/api/bizUser.js | 12 + screen-vue/src/assets/logo.png | Bin 0 -> 14057 bytes screen-vue/src/components/Layout/editPswd.vue | 142 ++++ screen-vue/src/components/Layout/index.vue | 767 ++++++++++++++++++ screen-vue/src/router/index.js | 81 +- screen-vue/src/views/Login.vue | 4 +- screen-vue/src/views/desktop/index.vue | 353 +------- screen-vue/src/views/error/404.vue | 66 ++ .../screen/Erp/components/ChartV01.vue | 0 .../screen/Erp/components/ChartV02.vue | 0 .../screen/Erp/components/ChartV03.vue | 0 .../screen/Erp/components/ChartV04.vue | 0 .../screen/Erp/components/ChartV05.vue | 0 .../screen/Erp/components/ChartV06.vue | 0 .../screen/Erp/components/ChartV07.vue | 0 .../screen/Erp/components/ChartV08.vue | 0 .../screen/Erp/components/ChartV09.vue | 0 .../screen/Erp/components/detail/indexV01.vue | 0 .../views/{desktop => }/screen/Erp/index.vue | 0 .../screen/Home/components/user/form.vue | 288 +++++++ .../screen/Home/components/user/index.vue | 369 +++++++-- .../views/{desktop => }/screen/Home/index.vue | 2 +- .../views/{desktop => }/screen/Work/index.vue | 0 screen-vue/src/views/screen/index.vue | 356 ++++++++ screen-vue/src/views/system/index.vue | 42 + screen-vue/src/views/system/menu/index.vue | 8 + screen-vue/src/views/system/role/index.vue | 8 + screen-vue/src/views/system/user/index.vue | 8 + .../mybigscreen/Auth/routeController.java | 10 +- .../mini/mybigscreen/Auth/userController.java | 6 +- .../mini/mybigscreen/Config/WebConfig.java | 1 + .../java/com/mini/mybigscreen/Model/Menu.java | 36 + .../mini/mybigscreen/Model/PageResult.java | 8 + .../com/mini/mybigscreen/Model/loginUser.java | 21 + .../com/mini/mybigscreen/Model/userInfo.java | 19 + .../ErpTransactionFlowController.java | 9 +- .../biz/controller/HomeMenuController.java | 61 ++ .../biz/controller/HomeUserController.java | 32 +- .../mini/mybigscreen/biz/domain/HomeMenu.java | 77 ++ .../mini/mybigscreen/biz/domain/HomeUser.java | 56 +- .../biz/mapper/HomeMenuMapper.java | 16 + .../biz/mapper/HomeUserMapper.java | 2 +- .../biz/service/HomeMenuService.java | 16 + .../biz/service/impl/HomeMenuServiceImpl.java | 20 + .../com/mini/mybigscreen/mybatis/demo.java | 2 +- src/main/resources/application.properties | 1 + src/main/resources/mapper/HomeMenuMapper.xml | 24 + src/main/resources/mapper/HomeUserMapper.xml | 10 +- 49 files changed, 2478 insertions(+), 467 deletions(-) create mode 100644 screen-vue/src/api/bizMenu.js create mode 100644 screen-vue/src/api/bizUser.js create mode 100644 screen-vue/src/assets/logo.png create mode 100644 screen-vue/src/components/Layout/editPswd.vue create mode 100644 screen-vue/src/components/Layout/index.vue create mode 100644 screen-vue/src/views/error/404.vue rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV01.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV02.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV03.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV04.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV05.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV06.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV07.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV08.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/ChartV09.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/components/detail/indexV01.vue (100%) rename screen-vue/src/views/{desktop => }/screen/Erp/index.vue (100%) create mode 100644 screen-vue/src/views/screen/Home/components/user/form.vue rename screen-vue/src/views/{desktop => }/screen/Home/components/user/index.vue (57%) rename screen-vue/src/views/{desktop => }/screen/Home/index.vue (99%) rename screen-vue/src/views/{desktop => }/screen/Work/index.vue (100%) create mode 100644 screen-vue/src/views/screen/index.vue create mode 100644 screen-vue/src/views/system/index.vue create mode 100644 screen-vue/src/views/system/menu/index.vue create mode 100644 screen-vue/src/views/system/role/index.vue create mode 100644 screen-vue/src/views/system/user/index.vue create mode 100644 src/main/java/com/mini/mybigscreen/Model/Menu.java create mode 100644 src/main/java/com/mini/mybigscreen/Model/loginUser.java create mode 100644 src/main/java/com/mini/mybigscreen/Model/userInfo.java create mode 100644 src/main/java/com/mini/mybigscreen/biz/controller/HomeMenuController.java create mode 100644 src/main/java/com/mini/mybigscreen/biz/domain/HomeMenu.java create mode 100644 src/main/java/com/mini/mybigscreen/biz/mapper/HomeMenuMapper.java create mode 100644 src/main/java/com/mini/mybigscreen/biz/service/HomeMenuService.java create mode 100644 src/main/java/com/mini/mybigscreen/biz/service/impl/HomeMenuServiceImpl.java create mode 100644 src/main/resources/mapper/HomeMenuMapper.xml diff --git a/screen-vue/src/api/bizMenu.js b/screen-vue/src/api/bizMenu.js new file mode 100644 index 0000000..c523c93 --- /dev/null +++ b/screen-vue/src/api/bizMenu.js @@ -0,0 +1,12 @@ +import request from '@/utils/request' + +/** + * 获取指标信息列表 + */ +export function getHomeMenuList(params) { + return request({ + url: '/biz/homeMenu/list', + method: 'get', + params: params + }) +} \ No newline at end of file diff --git a/screen-vue/src/api/bizUser.js b/screen-vue/src/api/bizUser.js new file mode 100644 index 0000000..8c03087 --- /dev/null +++ b/screen-vue/src/api/bizUser.js @@ -0,0 +1,12 @@ +import request from '@/utils/request' + +/** + * 获取指标信息列表 + */ +export function getHomeUserList(params) { + return request({ + url: '/biz/homeUser/list', + method: 'get', + params: params + }) +} \ No newline at end of file diff --git a/screen-vue/src/assets/logo.png b/screen-vue/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0c9c06d5c05259daff298315487822fea05cdd97 GIT binary patch literal 14057 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 b>Ta0I8MD!RS~AyviqGVwm8B{rOoRU~(DGtr literal 0 HcmV?d00001 diff --git a/screen-vue/src/components/Layout/editPswd.vue b/screen-vue/src/components/Layout/editPswd.vue new file mode 100644 index 0000000..cbeae28 --- /dev/null +++ b/screen-vue/src/components/Layout/editPswd.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/screen-vue/src/components/Layout/index.vue b/screen-vue/src/components/Layout/index.vue new file mode 100644 index 0000000..ed9b575 --- /dev/null +++ b/screen-vue/src/components/Layout/index.vue @@ -0,0 +1,767 @@ + + + + + \ No newline at end of file diff --git a/screen-vue/src/router/index.js b/screen-vue/src/router/index.js index 9835e39..56d585c 100644 --- a/screen-vue/src/router/index.js +++ b/screen-vue/src/router/index.js @@ -1,33 +1,85 @@ import { createRouter, createWebHistory } from 'vue-router' import Login from '@/views/Login.vue' +import Page404 from '@/views/error/404.vue' +import Layout from '@/components/Layout/index.vue' import Dashboard from '@/views/desktop/index.vue' +import bigScreen from '@/views/screen/index.vue' + +// 扫描规则保持不变 +const modules = import.meta.glob('../views/**/index.vue', { + eager: false, + import: 'default' +}) + +const generateRoutes = () => { + const routes = [] + + Object.entries(modules).forEach(([filePath, module]) => { + const excludePaths = [ + 'views/Login.vue', + 'views/desktop/index.vue', + 'views/error/', + 'views/screen/', + ] + if (excludePaths.some(path => filePath.includes(path))) { + return + } + + const routePath = filePath + .replace('../views', '') + .replace('.vue', '') + .toLowerCase() + + const routeName = routePath + .split('/') + .filter(Boolean) + .map(seg => seg.charAt(0).toUpperCase() + seg.slice(1)) + .join('') + + routes.push({ + path: routePath, + name: routeName || 'SystemRoleIndex', + component: module + }) + }) + + return routes +} -// 路由规则 const routes = [ { path: '/', - redirect: '/login' // 默认跳登录页 + redirect: '/login' }, { path: '/login', name: 'Login', component: Login, - meta: { - isPublic: true // 标记为公开页面,无需登录 - } + meta: { isPublic: true } }, { - path: '/dashboard', - name: 'Dashboard', - component: Dashboard, - meta: { - requiresAuth: true // 需要登录验证 - } + path: '/bigScreen', + name: 'bigScreen', + component: bigScreen, + meta: { requiresAuth: true } + }, + { + path: '/', + component: Layout, + meta: { requiresAuth: true }, + children: [ + { + path: 'dashboard', + name: 'Dashboard', + component: Dashboard + }, + ...generateRoutes() + ] }, - // 关键补充:404兜底路由(匹配所有未定义的前端路由) { path: '/:pathMatch(.*)*', - redirect: '/login' // 未知路径重定向到登录页 + name: 'Page404', + component: Page404 } ] @@ -39,15 +91,12 @@ const router = createRouter({ } }) -// 路由守卫:验证登录状态(优化版,增加容错) router.beforeEach((to, from, next) => { - // 公开页面直接放行 if (to.meta.isPublic) { next() return } - // 非公开页面校验token try { const token = localStorage.getItem('token') if (token && token.trim() !== '') { diff --git a/screen-vue/src/views/Login.vue b/screen-vue/src/views/Login.vue index 47d1dd9..d98765d 100644 --- a/screen-vue/src/views/Login.vue +++ b/screen-vue/src/views/Login.vue @@ -68,13 +68,13 @@ const handleLogin = async () => { isLoading.value = true; const res = await login(loginForm.value); localStorage.setItem('token', res.token); - localStorage.setItem('userName', res.userName); + localStorage.setItem('loginUser', JSON.stringify(res.loginUser)); ElMessage.success('登录成功!'); setTimeout(() => { router.push('/dashboard'); }, 3000); } catch (error) { - ElMessage.error(res.msg); + console.log(error); }finally{ isLoading.value = false; } diff --git a/screen-vue/src/views/desktop/index.vue b/screen-vue/src/views/desktop/index.vue index 08ef3f1..3dc7c35 100644 --- a/screen-vue/src/views/desktop/index.vue +++ b/screen-vue/src/views/desktop/index.vue @@ -1,356 +1,17 @@ - - \ No newline at end of file diff --git a/screen-vue/src/views/error/404.vue b/screen-vue/src/views/error/404.vue new file mode 100644 index 0000000..1e83e07 --- /dev/null +++ b/screen-vue/src/views/error/404.vue @@ -0,0 +1,66 @@ + + + + + \ No newline at end of file diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV01.vue b/screen-vue/src/views/screen/Erp/components/ChartV01.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV01.vue rename to screen-vue/src/views/screen/Erp/components/ChartV01.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV02.vue b/screen-vue/src/views/screen/Erp/components/ChartV02.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV02.vue rename to screen-vue/src/views/screen/Erp/components/ChartV02.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV03.vue b/screen-vue/src/views/screen/Erp/components/ChartV03.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV03.vue rename to screen-vue/src/views/screen/Erp/components/ChartV03.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV04.vue b/screen-vue/src/views/screen/Erp/components/ChartV04.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV04.vue rename to screen-vue/src/views/screen/Erp/components/ChartV04.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV05.vue b/screen-vue/src/views/screen/Erp/components/ChartV05.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV05.vue rename to screen-vue/src/views/screen/Erp/components/ChartV05.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV06.vue b/screen-vue/src/views/screen/Erp/components/ChartV06.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV06.vue rename to screen-vue/src/views/screen/Erp/components/ChartV06.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV07.vue b/screen-vue/src/views/screen/Erp/components/ChartV07.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV07.vue rename to screen-vue/src/views/screen/Erp/components/ChartV07.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV08.vue b/screen-vue/src/views/screen/Erp/components/ChartV08.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV08.vue rename to screen-vue/src/views/screen/Erp/components/ChartV08.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/ChartV09.vue b/screen-vue/src/views/screen/Erp/components/ChartV09.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/ChartV09.vue rename to screen-vue/src/views/screen/Erp/components/ChartV09.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/components/detail/indexV01.vue b/screen-vue/src/views/screen/Erp/components/detail/indexV01.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/components/detail/indexV01.vue rename to screen-vue/src/views/screen/Erp/components/detail/indexV01.vue diff --git a/screen-vue/src/views/desktop/screen/Erp/index.vue b/screen-vue/src/views/screen/Erp/index.vue similarity index 100% rename from screen-vue/src/views/desktop/screen/Erp/index.vue rename to screen-vue/src/views/screen/Erp/index.vue diff --git a/screen-vue/src/views/screen/Home/components/user/form.vue b/screen-vue/src/views/screen/Home/components/user/form.vue new file mode 100644 index 0000000..72bd7dc --- /dev/null +++ b/screen-vue/src/views/screen/Home/components/user/form.vue @@ -0,0 +1,288 @@ + + + + + \ No newline at end of file diff --git a/screen-vue/src/views/desktop/screen/Home/components/user/index.vue b/screen-vue/src/views/screen/Home/components/user/index.vue similarity index 57% rename from screen-vue/src/views/desktop/screen/Home/components/user/index.vue rename to screen-vue/src/views/screen/Home/components/user/index.vue index 517e0a8..1c2bfc6 100644 --- a/screen-vue/src/views/desktop/screen/Home/components/user/index.vue +++ b/screen-vue/src/views/screen/Home/components/user/index.vue @@ -3,41 +3,33 @@
- + + + + + - + - - - - - - - - + + +
@@ -70,6 +62,7 @@ empty-text="暂无相关数据" class="data-table" v-loading="loading" + loading-text="正在加载数据..." :header-cell-style="{ background: 'rgba(10, 30, 60, 0.8)', color: '#a0cfff', @@ -86,17 +79,49 @@ borderBottom: '1px solid rgba(64, 158, 255, 0.2)' }" > - - - - - + + + + + + + - -
@@ -115,27 +140,43 @@ /> + + + + + + + \ No newline at end of file diff --git a/screen-vue/src/views/system/index.vue b/screen-vue/src/views/system/index.vue new file mode 100644 index 0000000..bbd935d --- /dev/null +++ b/screen-vue/src/views/system/index.vue @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file diff --git a/screen-vue/src/views/system/menu/index.vue b/screen-vue/src/views/system/menu/index.vue new file mode 100644 index 0000000..02409e3 --- /dev/null +++ b/screen-vue/src/views/system/menu/index.vue @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/screen-vue/src/views/system/role/index.vue b/screen-vue/src/views/system/role/index.vue new file mode 100644 index 0000000..02409e3 --- /dev/null +++ b/screen-vue/src/views/system/role/index.vue @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/screen-vue/src/views/system/user/index.vue b/screen-vue/src/views/system/user/index.vue new file mode 100644 index 0000000..02409e3 --- /dev/null +++ b/screen-vue/src/views/system/user/index.vue @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/src/main/java/com/mini/mybigscreen/Auth/routeController.java b/src/main/java/com/mini/mybigscreen/Auth/routeController.java index ffa14de..33f84bf 100644 --- a/src/main/java/com/mini/mybigscreen/Auth/routeController.java +++ b/src/main/java/com/mini/mybigscreen/Auth/routeController.java @@ -2,6 +2,8 @@ package com.mini.mybigscreen.Auth; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; @Controller public class routeController { @@ -10,9 +12,15 @@ public class routeController { /** * 路由跳转 */ - @GetMapping({"/", "/login", "/dashboard"}) + @GetMapping({"/", "/login", "/bigScreen", "/dashboard"}) public String forwardToIndex() { return "forward:/index.html"; } + + @RequestMapping(value = "/**/{path:[^.]*}") + public String redirect(@PathVariable String path) { + return "forward:/index.html"; + } + } diff --git a/src/main/java/com/mini/mybigscreen/Auth/userController.java b/src/main/java/com/mini/mybigscreen/Auth/userController.java index f2d6d62..3938aca 100644 --- a/src/main/java/com/mini/mybigscreen/Auth/userController.java +++ b/src/main/java/com/mini/mybigscreen/Auth/userController.java @@ -3,6 +3,8 @@ package com.mini.mybigscreen.Auth; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.mini.mybigscreen.Model.LoginRequest; import com.mini.mybigscreen.Model.Result; +import com.mini.mybigscreen.Model.loginUser; +import com.mini.mybigscreen.Model.userInfo; import com.mini.mybigscreen.biz.domain.HomeUser; import com.mini.mybigscreen.biz.service.HomeUserService; import com.mini.mybigscreen.utils.AesUtil; @@ -32,11 +34,11 @@ public class userController { .eq("password", AesUtil.encrypt(loginRequest.getPassword())); HomeUser user = userService.getOne(queryWrapper, true); if (user != null) { - String token = KeyUtil.ObjKey(125,0); + String token = KeyUtil.ObjKey(125, 0); HttpSession session = request.getSession(true); session.setAttribute("userName", user.getUserName()); session.setAttribute("token", token); - return Result.success(token); + return Result.success(new userInfo(token, new loginUser(user.getUname(), user.getUserId(), user.getRoleId(), user.getUserName()))); } return Result.error("账号或密码错误"); } diff --git a/src/main/java/com/mini/mybigscreen/Config/WebConfig.java b/src/main/java/com/mini/mybigscreen/Config/WebConfig.java index 78f9d80..a9f7c33 100644 --- a/src/main/java/com/mini/mybigscreen/Config/WebConfig.java +++ b/src/main/java/com/mini/mybigscreen/Config/WebConfig.java @@ -19,6 +19,7 @@ public class WebConfig implements WebMvcConfigurer { .addPathPatterns("/**") // 拦截所有路径 .excludePathPatterns( "/", + "/login", "/index.html", "/userLogin" ) diff --git a/src/main/java/com/mini/mybigscreen/Model/Menu.java b/src/main/java/com/mini/mybigscreen/Model/Menu.java new file mode 100644 index 0000000..6f13cf7 --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/Model/Menu.java @@ -0,0 +1,36 @@ +package com.mini.mybigscreen.Model; + +import com.mini.mybigscreen.biz.domain.HomeMenu; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@Data +public class Menu implements Serializable { + + private String menuId; + private String parentId; + private String menuName; + private String menuType; + private String path; + private String menuIcon; + private Integer sort; + private Integer isIframe; + // 子菜单列表 + private List children; + + + public Menu(String menuId,String parentId, String menuName, String menuType, String path,String menuIcon, Integer sort, Integer isIframe,List children) { + this.menuId = menuId; + this.parentId = parentId; + this.menuName = menuName; + this.menuType = menuType; + this.path = path; + this.menuIcon = menuIcon; + this.sort = sort; + this.isIframe = isIframe; + this.children = children; + } +} diff --git a/src/main/java/com/mini/mybigscreen/Model/PageResult.java b/src/main/java/com/mini/mybigscreen/Model/PageResult.java index ad179b8..dfbe8b1 100644 --- a/src/main/java/com/mini/mybigscreen/Model/PageResult.java +++ b/src/main/java/com/mini/mybigscreen/Model/PageResult.java @@ -12,4 +12,12 @@ public class PageResult implements Serializable { private Integer currentPage; // 当前页码 private Integer pageSize; // 每页条数 private Integer total; // 总记录数 + + + public PageResult(List list,Integer currentPage,Integer pageSize,Integer total){ + this.list = list; + this.currentPage = currentPage; + this.pageSize = pageSize; + this.total = total; + } } diff --git a/src/main/java/com/mini/mybigscreen/Model/loginUser.java b/src/main/java/com/mini/mybigscreen/Model/loginUser.java new file mode 100644 index 0000000..46579ea --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/Model/loginUser.java @@ -0,0 +1,21 @@ +package com.mini.mybigscreen.Model; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class loginUser implements Serializable { + + private String uname; + private String userId; + private String roleId; + private String userName; + + public loginUser(String uname, String userId, String roleId, String userName) { + this.uname = uname; + this.userId = userId; + this.roleId = roleId; + this.userName = userName; + } +} diff --git a/src/main/java/com/mini/mybigscreen/Model/userInfo.java b/src/main/java/com/mini/mybigscreen/Model/userInfo.java new file mode 100644 index 0000000..d9af591 --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/Model/userInfo.java @@ -0,0 +1,19 @@ +package com.mini.mybigscreen.Model; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@Data +public class userInfo implements Serializable { + + private String token; + private loginUser loginUser; + + public userInfo(String token, loginUser loginUser) { + this.token = token; + this.loginUser = loginUser; + } +} diff --git a/src/main/java/com/mini/mybigscreen/biz/controller/ErpTransactionFlowController.java b/src/main/java/com/mini/mybigscreen/biz/controller/ErpTransactionFlowController.java index dde55cc..f622706 100644 --- a/src/main/java/com/mini/mybigscreen/biz/controller/ErpTransactionFlowController.java +++ b/src/main/java/com/mini/mybigscreen/biz/controller/ErpTransactionFlowController.java @@ -40,13 +40,8 @@ public class ErpTransactionFlowController { .eq(StrUtil.isNotBlank(transactionType), "transaction_type", transactionType) .orderByDesc("create_time"); List flowList = flowService.list(query); - PageUtil pageUtil = new PageUtil<>(pageNum, pageSize, flowList); - List pageData = pageUtil.OkData(); - PageResult result = new PageResult<>(); - result.setList(pageData); // 当前页数据 - result.setCurrentPage(pageNum); // 当前页码 - result.setPageSize(pageSize); // 每页条数 - result.setTotal(flowList.size()); // 总条数 + PageUtil util = new PageUtil<>(pageNum, pageSize, flowList); + PageResult result = new PageResult<>(util.OkData(), pageNum, pageSize, flowList.size()); return Result.success(result); } } diff --git a/src/main/java/com/mini/mybigscreen/biz/controller/HomeMenuController.java b/src/main/java/com/mini/mybigscreen/biz/controller/HomeMenuController.java new file mode 100644 index 0000000..d1b1a6f --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/biz/controller/HomeMenuController.java @@ -0,0 +1,61 @@ +package com.mini.mybigscreen.biz.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mini.mybigscreen.Model.Menu; +import com.mini.mybigscreen.Model.Result; +import com.mini.mybigscreen.biz.domain.HomeMenu; +import com.mini.mybigscreen.biz.service.HomeMenuService; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 菜单表 前端控制器 + *

+ * + * @author gaoxq + * @since 2026-03-01 + */ +@RestController +@RequestMapping("/biz/homeMenu") +public class HomeMenuController { + + + @Resource + private HomeMenuService menuService; + + + @GetMapping("list") + public Result getList() { + List menuList = new ArrayList<>(); + QueryWrapper query = new QueryWrapper<>(); + query.eq("ustatus", "1") + .eq("parent_id", "0") + .orderByAsc("sort"); + List pMenus = menuService.list(query); + for (HomeMenu menu : pMenus) { + QueryWrapper childQuery = new QueryWrapper<>(); + childQuery.eq("parent_id", menu.getMenuId()); + List childMenus = menuService.list(childQuery); + menuList.add(new Menu( + menu.getMenuId(), + menu.getParentId(), + menu.getMenuName(), + menu.getMenuType(), + menu.getPath(), + menu.getMenuIcon(), + menu.getSort(), + menu.getIsIframe(), + childMenus + )); + } + return Result.success(menuList); + } + + +} diff --git a/src/main/java/com/mini/mybigscreen/biz/controller/HomeUserController.java b/src/main/java/com/mini/mybigscreen/biz/controller/HomeUserController.java index 9c626a7..049890a 100644 --- a/src/main/java/com/mini/mybigscreen/biz/controller/HomeUserController.java +++ b/src/main/java/com/mini/mybigscreen/biz/controller/HomeUserController.java @@ -1,11 +1,22 @@ package com.mini.mybigscreen.biz.controller; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mini.mybigscreen.Model.PageResult; +import com.mini.mybigscreen.Model.Result; +import com.mini.mybigscreen.biz.domain.HomeUser; +import com.mini.mybigscreen.biz.service.HomeUserService; +import com.mini.mybigscreen.utils.PageUtil; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** *

- * 前端控制器 + * 前端控制器 *

* * @author gaoxq @@ -15,4 +26,23 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/biz/homeUser") public class HomeUserController { + + @Resource + private HomeUserService userService; + + + @GetMapping("list") + public Result getList(Integer pageNum, Integer pageSize, + String userName, String uname, String ustatus) { + QueryWrapper query = new QueryWrapper<>(); + query.like(StrUtil.isNotBlank(uname), "uname", uname) + .eq(StrUtil.isNotBlank(ustatus), "ustatus", ustatus) + .eq(StrUtil.isNotBlank(userName), "user_name", userName) + .orderByDesc("create_time"); + List userList = userService.list(query); + PageUtil util = new PageUtil<>(pageNum, pageSize, userList); + PageResult result = new PageResult<>(util.OkData(), pageNum, pageSize, userList.size()); + return Result.success(result); + } + } diff --git a/src/main/java/com/mini/mybigscreen/biz/domain/HomeMenu.java b/src/main/java/com/mini/mybigscreen/biz/domain/HomeMenu.java new file mode 100644 index 0000000..f597419 --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/biz/domain/HomeMenu.java @@ -0,0 +1,77 @@ +package com.mini.mybigscreen.biz.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 菜单表 + *

+ * + * @author gaoxq + * @since 2026-03-01 + */ +@Getter +@Setter +@TableName("biz_home_menu") +public class HomeMenu implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableField("create_time") + private LocalDateTime createTime; + + @TableId(value = "menu_id", type = IdType.AUTO) + private String menuId; + + /** + * 父菜单ID(0为顶级菜单) + */ + @TableField("parent_id") + private String parentId; + + /** + * 菜单名称 + */ + @TableField("menu_name") + private String menuName; + + /** + * 菜单类型(M=目录,C=菜单,F=按钮) + */ + @TableField("menu_type") + private String menuType; + + /** + * 路由路径 + */ + @TableField("path") + private String path; + + /** + * 排序号 + */ + @TableField("sort") + private Integer sort; + + /** + * 是否外链(0=否,1=是) + */ + @TableField("is_iframe") + private Integer isIframe; + + /** + * 菜单图标 + */ + @TableField("menu_icon") + private String menuIcon; + + @TableField("ustatus") + private Integer ustatus; +} diff --git a/src/main/java/com/mini/mybigscreen/biz/domain/HomeUser.java b/src/main/java/com/mini/mybigscreen/biz/domain/HomeUser.java index 5a1ebf4..e699766 100644 --- a/src/main/java/com/mini/mybigscreen/biz/domain/HomeUser.java +++ b/src/main/java/com/mini/mybigscreen/biz/domain/HomeUser.java @@ -4,18 +4,20 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import java.io.Serializable; import java.time.LocalDateTime; + import lombok.Getter; import lombok.Setter; /** *

- * + * *

* * @author gaoxq - * @since 2026-02-25 + * @since 2026-02-28 */ @Getter @Setter @@ -25,7 +27,7 @@ public class HomeUser implements Serializable { private static final long serialVersionUID = 1L; @TableField("create_time") - private LocalDateTime createTime; + private String createTime; @TableId(value = "user_id", type = IdType.AUTO) private String userId; @@ -40,26 +42,50 @@ public class HomeUser implements Serializable { private String uname; /** - * 租户id + * 性别 */ - @TableField("f_tenant_id") - private String fTenantId; + @TableField("sex") + private Integer sex; /** - * 流程id + * 电子邮件 */ - @TableField("f_flow_id") - private String fFlowId; + @TableField("email") + private String email; /** - * 流程任务主键 + * 电话号码 */ - @TableField("f_flow_task_id") - private String fFlowTaskId; + @TableField("phone") + private String phone; /** - * 流程任务状态 + * 角色编号 */ - @TableField("f_flow_state") - private Integer fFlowState; + @TableField("role_id") + private String roleId; + + /** + * 模块名称 + */ + @TableField("group_module_id") + private String groupModuleId; + + /** + * 用户状态 + */ + @TableField("ustatus") + private String ustatus; + + /** + * 累计登录次数 + */ + @TableField("login_count") + private Integer loginCount; + + /** + * 最后登录IP + */ + @TableField("last_login_ip") + private String lastLoginIp; } diff --git a/src/main/java/com/mini/mybigscreen/biz/mapper/HomeMenuMapper.java b/src/main/java/com/mini/mybigscreen/biz/mapper/HomeMenuMapper.java new file mode 100644 index 0000000..2a3c234 --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/biz/mapper/HomeMenuMapper.java @@ -0,0 +1,16 @@ +package com.mini.mybigscreen.biz.mapper; + +import com.mini.mybigscreen.biz.domain.HomeMenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 菜单表 Mapper 接口 + *

+ * + * @author gaoxq + * @since 2026-03-01 + */ +public interface HomeMenuMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/mybigscreen/biz/mapper/HomeUserMapper.java b/src/main/java/com/mini/mybigscreen/biz/mapper/HomeUserMapper.java index db92cbe..e4c743a 100644 --- a/src/main/java/com/mini/mybigscreen/biz/mapper/HomeUserMapper.java +++ b/src/main/java/com/mini/mybigscreen/biz/mapper/HomeUserMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; *

* * @author gaoxq - * @since 2026-02-25 + * @since 2026-02-28 */ public interface HomeUserMapper extends BaseMapper { diff --git a/src/main/java/com/mini/mybigscreen/biz/service/HomeMenuService.java b/src/main/java/com/mini/mybigscreen/biz/service/HomeMenuService.java new file mode 100644 index 0000000..34afc68 --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/biz/service/HomeMenuService.java @@ -0,0 +1,16 @@ +package com.mini.mybigscreen.biz.service; + +import com.mini.mybigscreen.biz.domain.HomeMenu; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 菜单表 服务类 + *

+ * + * @author gaoxq + * @since 2026-03-01 + */ +public interface HomeMenuService extends IService { + +} diff --git a/src/main/java/com/mini/mybigscreen/biz/service/impl/HomeMenuServiceImpl.java b/src/main/java/com/mini/mybigscreen/biz/service/impl/HomeMenuServiceImpl.java new file mode 100644 index 0000000..08f8558 --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/biz/service/impl/HomeMenuServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.mybigscreen.biz.service.impl; + +import com.mini.mybigscreen.biz.domain.HomeMenu; +import com.mini.mybigscreen.biz.mapper.HomeMenuMapper; +import com.mini.mybigscreen.biz.service.HomeMenuService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 菜单表 服务实现类 + *

+ * + * @author gaoxq + * @since 2026-03-01 + */ +@Service +public class HomeMenuServiceImpl extends ServiceImpl implements HomeMenuService { + +} diff --git a/src/main/java/com/mini/mybigscreen/mybatis/demo.java b/src/main/java/com/mini/mybigscreen/mybatis/demo.java index ab07076..c0fc235 100644 --- a/src/main/java/com/mini/mybigscreen/mybatis/demo.java +++ b/src/main/java/com/mini/mybigscreen/mybatis/demo.java @@ -29,7 +29,7 @@ public class demo { .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); }) .strategyConfig(builder -> { - builder.addInclude("erp_category") + builder.addInclude("biz_home_menu") .addTablePrefix("biz_") .entityBuilder() .enableLombok() diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 22f365c..5a08dfd 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -10,6 +10,7 @@ spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-request-size=1000MB spring.servlet.multipart.file-size-threshold=10MB +spring.mvc.pathmatch.matching-strategy=ant_path_matcher ## MySQL spring.datasource.url=jdbc:mysql://192.168.31.189:33069/work?useSSL=false&serverTimezone=UTC&characterEncoding=utf8 spring.datasource.username=dream diff --git a/src/main/resources/mapper/HomeMenuMapper.xml b/src/main/resources/mapper/HomeMenuMapper.xml new file mode 100644 index 0000000..b8856a4 --- /dev/null +++ b/src/main/resources/mapper/HomeMenuMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + create_time, menu_id, parent_id, menu_name, menu_type, path, sort, is_iframe, menu_icon, ustatus + + + diff --git a/src/main/resources/mapper/HomeUserMapper.xml b/src/main/resources/mapper/HomeUserMapper.xml index 143c051..27762e9 100644 --- a/src/main/resources/mapper/HomeUserMapper.xml +++ b/src/main/resources/mapper/HomeUserMapper.xml @@ -9,6 +9,14 @@ + + + + + + + + @@ -17,7 +25,7 @@ - create_time, user_id, user_name, password, uname, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state + create_time, user_id, user_name, password, uname, sex, email, phone, role_id, group_module_id, ustatus, login_count, last_login_ip, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state