Commit 8aaa1e50 authored by 胡文斌's avatar 胡文斌

合并微前端

parent 5b6613d1
package com.archser.aserver.controller;
import com.archser.aserver.util.redis.InfoSystem;
import com.archser.aserver.util.redis.InfoUser;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.archser.aserver.interceptor.JwtInterceptor;
import com.archser.aserver.model.Menu;
import com.archser.aserver.model.MenuStar;
import com.archser.aserver.model.System;
import com.archser.aserver.service.LogService;
import com.archser.aserver.service.MenuService;
import com.archser.aserver.util.CollectionUtil;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
/**
* 应用菜单相关操作
*
* @author dgq
*/
public class MenuController extends Controller {
@Inject
private LogService logService;
@Inject
private MenuService menuService;
/**
* 获取权限菜单
*/
public void index() {
String username = this.getAttrForStr("username");
Integer userId = Db.queryInt(Db.getSql("getUserId"), username);
List<System> systems = System.dao.template("getSystems").find();
Kv kvSystems = CollectionUtil.toIntMap(systems, "ID");
List<Menu> menus = null;
if ("admin".equals(username)) {
menus = Menu.dao.template("getMenus").find();
} else {
menus = Menu.dao.template("getMenusByUser", Kv.by("userId", userId)).find();
}
List<MenuStar> stars = MenuStar.dao.template("getMenuStar", userId).find();
for (Menu menu : menus) {
System system = (System) kvSystems.get(menu.getSystemId());
if (system != null) {
menu.put("system", system.getName());
menu.put("url", system.getUrl());
menu.put("star", exist(menu.getId(), stars));
List<Menu> abilities = system.get("menus", new ArrayList<Menu>());
abilities.add(menu);
system.put("menus", abilities);
}
}
this.renderJson(Ret.ok("apps", systems));
}
/**
* 获取菜单列表
*/
public void getMenuList() {
try {
Integer sysId = getParaToInt("sysId");
String condStr = getPara("condStr");
renderJson(Ret.ok("data", menuService.getMenuListBySysId(sysId, condStr)));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "获取菜单列表出错,请刷新后重试!"));
}
}
/**
* 保存菜单数据
*/
public void saveMenuData() {
try {
Menu menu = getBean(Menu.class, "menu");
boolean state = menuService.saveMenuData(menu);
renderJson(Ret.ok("msg", state ? "保存菜单数据成功!" : "保存菜单数据出错,请刷新后重试!"));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "保存菜单数据出错,请刷新后重试!"));
}
}
/**
* 删除菜单数据
*/
public void deleteMenu() {
try {
String[] ids = getPara("ids").split(",");
boolean state = menuService.deleteMenu(ids);
renderJson(Ret.ok("msg", state ? "删除菜单数据成功!" : "删除菜单数据出错!"));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "删除菜单数据出错,请刷新后重试!"));
}
}
/**
* 菜单加星
*
* @param menuId
*/
public void star(int menuId) {
String username = this.getAttrForStr("username");
Integer userId = Db.queryInt(Db.getSql("getUserId"), username);
MenuStar star = new MenuStar();
star.setMenuId(menuId);
star.setUserId(userId);
star.set("ID", "SEQ_MENU_STAR.nextval");
Menu MeunStr = Menu.dao.findById(menuId);
System systemStr = System.dao.findById(MeunStr.getSystemId());
if (star.save()) {
this.renderJson(Ret.ok("star", star.getId()));
logService.saveAsLog("operate", username, JwtInterceptor.getIpAddr(getRequest()),
MeunStr.getTitle() + "-菜单加星成功", systemStr.getName());
} else {
this.renderJson(Ret.fail("msg", "菜单加星操作失败"));
logService.saveAsLog("operate", username, JwtInterceptor.getIpAddr(getRequest()),
MeunStr.getTitle() + "-菜单加星失败", systemStr.getName());
}
}
/**
* 取消菜单加星
*
* @param menuId
*/
@SuppressWarnings("unused")
public void cancelStar(int menuId) {
String username = this.getAttrForStr("username");
String app = this.getPara("app");
Integer userId = Db.queryInt(Db.getSql("getUserId"), username);
Menu MeunStr = Menu.dao.findById(menuId);
System systemStr = System.dao.findById(MeunStr.getSystemId());
Db.update(Db.getSqlPara("deleteMenuStar", Kv.by("userId", userId).set("menuId", menuId)));
this.renderJson(Ret.ok("star", 0));
logService.saveAsLog("operate", username, JwtInterceptor.getIpAddr(getRequest()),
MeunStr.getTitle() + "-菜单取消加星成功", systemStr.getName());
}
/**
* 菜单是否加星
*
* @param menuId
* @param stars
* @return
*/
private Integer exist(Integer menuId, List<MenuStar> stars) {
for (MenuStar star : stars) {
if (StrKit.equals(menuId.toString(), star.getMenuId().toString())) {
return star.getId();
}
}
return 0;
}
public void accessLog() {
String routName = getPara("routname");
String app = getPara("app");
String title = Db.queryStr(Db.getSql("findSystemTitleByType"), app);
String username = getAttr("username");
String ip = JwtInterceptor.getIpAddr(getRequest());
String content = title + "-功能访问-" + routName;
logService.saveAsLog("access", username, ip, content, app);
renderJson(Ret.ok());
}
public void getMenuGroup() {
try {
String userName = this.getAttrForStr("username");
Integer userId = InfoUser.getUser(userName).getId();
List<Menu> allMenuList = null;
if ("admin".equals(userName)) {
allMenuList = new Menu().dao().template("getMenuAll").find();
} else {
allMenuList = new Menu().dao().template("getMenuGroup", Kv.by("userId", userId)).find();
}
List<System> systems = System.dao.template("getSystems").find();
Map<Integer, System> systemMap = systems.stream().collect(Collectors.toMap(System::getId, System -> System));
List<MenuStar> stars = MenuStar.dao.template("getMenuStar", userId).find();
// 系统中的菜单,用于系统正常跳转
Map<String, Map<String, List<Menu>>> menuGroup = new LinkedHashMap<>();
// 页面中显示的菜单,过滤隐藏的菜单
Map<String, Map<String, List<Menu>>> viewApps = new LinkedHashMap<>();
for (Menu menu : allMenuList) {
// 处理菜单属性
System system = systemMap.get(menu.getSystemId());
// CP-1679 lidecai 20201211
if (system == null || menu.getFirstLevelName() == null) {
continue;
}
menu.put("system", system.getName());
menu.put("url", system.getUrl());
// 过滤不需要显示的菜单
if (menu.getHidden() == null || menu.getHidden() != 1) {
menu.put("star", exist(menu.getId(), stars));
// 一级菜单组
viewApps.putIfAbsent(menu.getFirstLevelName() == null ? "" : menu.getFirstLevelName(),new HashMap<String, List<Menu>>());
// 二级菜单组
viewApps.get(menu.getFirstLevelName()).putIfAbsent(menu.getSecondLevelName() == null ? "" : menu.getSecondLevelName(),new ArrayList<Menu>());
// 最终菜单
viewApps.get(menu.getFirstLevelName()).get(menu.getSecondLevelName() == null ? "" : menu.getSecondLevelName()).add(menu);
}
// 一级菜单组
menuGroup.putIfAbsent(menu.getFirstLevelName() == null ? "" : menu.getFirstLevelName(),new HashMap<String, List<Menu>>());
// 二级菜单组
menuGroup.get(menu.getFirstLevelName()).putIfAbsent(menu.getSecondLevelName(), new ArrayList<Menu>());
// 最终菜单
menuGroup.get(menu.getFirstLevelName()).get(menu.getSecondLevelName()).add(menu);
}
renderJson(Ret.ok("apps", menuGroup).set("viewApps", viewApps).set("allMenu", allMenuList));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", e.getMessage()));
}
}
}
package com.archser.aserver.controller;
import com.archser.aserver.util.redis.InfoSystem;
import com.archser.aserver.util.redis.InfoUser;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.archser.aserver.interceptor.JwtInterceptor;
import com.archser.aserver.model.Menu;
import com.archser.aserver.model.MenuStar;
import com.archser.aserver.model.System;
import com.archser.aserver.service.LogService;
import com.archser.aserver.service.MenuService;
import com.archser.aserver.util.CollectionUtil;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
/**
* 应用菜单相关操作
*
* @author dgq
*/
public class MenuController extends Controller {
@Inject
private LogService logService;
@Inject
private MenuService menuService;
/**
* 获取权限菜单
*/
public void index() {
String username = this.getAttrForStr("username");
Integer userId = Db.queryInt(Db.getSql("getUserId"), username);
List<System> systems = System.dao.template("getSystems").find();
Kv kvSystems = CollectionUtil.toIntMap(systems, "ID");
List<Menu> menus = null;
if ("admin".equals(username)) {
menus = Menu.dao.template("getMenus").find();
} else {
menus = Menu.dao.template("getMenusByUser", Kv.by("userId", userId)).find();
}
List<MenuStar> stars = MenuStar.dao.template("getMenuStar", userId).find();
for (Menu menu : menus) {
System system = (System) kvSystems.get(menu.getSystemId());
if (system != null) {
menu.put("system", system.getName());
menu.put("url", system.getUrl());
menu.put("star", exist(menu.getId(), stars));
List<Menu> abilities = system.get("menus", new ArrayList<Menu>());
abilities.add(menu);
system.put("menus", abilities);
}
}
this.renderJson(Ret.ok("apps", systems));
}
/**
* 获取菜单列表
*/
public void getMenuList() {
try {
Integer sysId = getParaToInt("sysId");
String condStr = getPara("condStr");
renderJson(Ret.ok("data", menuService.getMenuListBySysId(sysId, condStr)));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "获取菜单列表出错,请刷新后重试!"));
}
}
/**
* 保存菜单数据
*/
public void saveMenuData() {
try {
Menu menu = getBean(Menu.class, "menu");
boolean state = menuService.saveMenuData(menu);
renderJson(Ret.ok("msg", state ? "保存菜单数据成功!" : "保存菜单数据出错,请刷新后重试!"));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "保存菜单数据出错,请刷新后重试!"));
}
}
/**
* 删除菜单数据
*/
public void deleteMenu() {
try {
String[] ids = getPara("ids").split(",");
boolean state = menuService.deleteMenu(ids);
renderJson(Ret.ok("msg", state ? "删除菜单数据成功!" : "删除菜单数据出错!"));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "删除菜单数据出错,请刷新后重试!"));
}
}
/**
* 菜单加星
*
* @param menuId
*/
public void star(int menuId) {
String username = this.getAttrForStr("username");
Integer userId = Db.queryInt(Db.getSql("getUserId"), username);
MenuStar star = new MenuStar();
star.setMenuId(menuId);
star.setUserId(userId);
star.set("ID", "SEQ_MENU_STAR.nextval");
Menu MeunStr = Menu.dao.findById(menuId);
System systemStr = System.dao.findById(MeunStr.getSystemId());
if (star.save()) {
this.renderJson(Ret.ok("star", star.getId()));
logService.saveAsLog("operate", username, JwtInterceptor.getIpAddr(getRequest()),
MeunStr.getTitle() + "-菜单加星成功", systemStr.getName());
} else {
this.renderJson(Ret.fail("msg", "菜单加星操作失败"));
logService.saveAsLog("operate", username, JwtInterceptor.getIpAddr(getRequest()),
MeunStr.getTitle() + "-菜单加星失败", systemStr.getName());
}
}
/**
* 取消菜单加星
*
* @param menuId
*/
@SuppressWarnings("unused")
public void cancelStar(int menuId) {
String username = this.getAttrForStr("username");
String app = this.getPara("app");
Integer userId = Db.queryInt(Db.getSql("getUserId"), username);
Menu MeunStr = Menu.dao.findById(menuId);
System systemStr = System.dao.findById(MeunStr.getSystemId());
Db.update(Db.getSqlPara("deleteMenuStar", Kv.by("userId", userId).set("menuId", menuId)));
this.renderJson(Ret.ok("star", 0));
logService.saveAsLog("operate", username, JwtInterceptor.getIpAddr(getRequest()),
MeunStr.getTitle() + "-菜单取消加星成功", systemStr.getName());
}
/**
* 菜单是否加星
*
* @param menuId
* @param stars
* @return
*/
private Integer exist(Integer menuId, List<MenuStar> stars) {
for (MenuStar star : stars) {
if (StrKit.equals(menuId.toString(), star.getMenuId().toString())) {
return star.getId();
}
}
return 0;
}
public void accessLog() {
String routName = getPara("routname");
String app = getPara("app");
String title = Db.queryStr(Db.getSql("findSystemTitleByType"), app);
String username = getAttr("username");
String ip = JwtInterceptor.getIpAddr(getRequest());
String content = title + "-功能访问-" + routName;
logService.saveAsLog("access", username, ip, content, app);
renderJson(Ret.ok());
}
public void getMenuGroup() {
try {
String userName = this.getAttrForStr("username");
Integer userId = InfoUser.getUser(userName).getId();
List<Menu> allMenuList = null;
if ("admin".equals(userName)) {
allMenuList = new Menu().dao().template("getMenuAll").find();
} else {
allMenuList = new Menu().dao().template("getMenuGroup", Kv.by("userId", userId)).find();
}
List<System> systems = System.dao.template("getSystems").find();
Map<Integer, System> systemMap = systems.stream().collect(Collectors.toMap(System::getId, System -> System));
List<MenuStar> stars = MenuStar.dao.template("getMenuStar", userId).find();
// 系统中的菜单,用于系统正常跳转
Map<String, Map<String, List<Menu>>> menuGroup = new LinkedHashMap<>();
// 页面中显示的菜单,过滤隐藏的菜单
Map<String, Map<String, List<Menu>>> viewApps = new LinkedHashMap<>();
for (Menu menu : allMenuList) {
// 处理菜单属性
System system = systemMap.get(menu.getSystemId());
// CP-1679 lidecai 20201211
if (system == null || menu.getFirstLevelName() == null) {
continue;
}
menu.put("system", system.getName());
menu.put("url", system.getUrl());
menu.put("micro_app", system.getStr("micro_app"));
// 过滤不需要显示的菜单
if (menu.getHidden() == null || menu.getHidden() != 1) {
menu.put("star", exist(menu.getId(), stars));
// 一级菜单组
viewApps.putIfAbsent(menu.getFirstLevelName() == null ? "" : menu.getFirstLevelName(),new HashMap<String, List<Menu>>());
// 二级菜单组
viewApps.get(menu.getFirstLevelName()).putIfAbsent(menu.getSecondLevelName() == null ? "" : menu.getSecondLevelName(),new ArrayList<Menu>());
// 最终菜单
viewApps.get(menu.getFirstLevelName()).get(menu.getSecondLevelName() == null ? "" : menu.getSecondLevelName()).add(menu);
}
// 一级菜单组
menuGroup.putIfAbsent(menu.getFirstLevelName() == null ? "" : menu.getFirstLevelName(),new HashMap<String, List<Menu>>());
// 二级菜单组
menuGroup.get(menu.getFirstLevelName()).putIfAbsent(menu.getSecondLevelName(), new ArrayList<Menu>());
// 最终菜单
menuGroup.get(menu.getFirstLevelName()).get(menu.getSecondLevelName()).add(menu);
}
renderJson(Ret.ok("apps", menuGroup).set("viewApps", viewApps).set("allMenu", allMenuList));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", e.getMessage()));
}
}
/**
* 获取微前端项目接口路径
* @date 2021.3.2
* @auther huwenbin
*/
public void getMicroSystemByName() {
this.renderJson(Ret.ok("miroApp", InfoSystem.getSystem(this.getPara("server")).getStr("micro_app")));
}
}
......@@ -99,4 +99,13 @@ public abstract class BaseSystem<M extends BaseSystem<M>> extends Model<M> imple
return getStr("DESCRIPTION");
}
public M setMicroApp(java.lang.String microApp) {
set("MICRO_APP", microApp);
return (M)this;
}
public java.lang.String getMicroApp() {
return getStr("MICRO_APP");
}
}
......@@ -64,7 +64,7 @@ select * from AS_USER where USERNAME=#para(0)
### 获取系统,应用菜单使用
#sql("getSystems")
select ID, NAME, TITLE, TYPE, URL, DESCRIPTION from AS_SYSTEM order by ID
select ID, NAME, TITLE, TYPE, URL, DESCRIPTION,MICRO_APP from AS_SYSTEM order by ID
#end
### 获取系统
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment