From 7fec4a3e17c1c0fa206ec2d66a6b425022957d1d Mon Sep 17 00:00:00 2001
From: 曾富康 <1067864236@qq.com>
Date: 星期二, 16 六月 2026 15:50:18 +0800
Subject: [PATCH] 后台新增:入口设置
---
ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java | 123 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 122 insertions(+), 1 deletions(-)
diff --git a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
index c745bf9..248ebe5 100644
--- a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
+++ b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
@@ -77,6 +77,12 @@
@Autowired
private ITCarServiceService tCarServiceService;
+ @Autowired
+ private IMenuEntryConfigService menuEntryConfigService;
+
+ @Autowired
+ private IMenuService menuService;
+
@Value("${pushMinistryOfTransport}")
private boolean pushMinistryOfTransport;
@@ -107,6 +113,34 @@
model.addAttribute("roleType", user1.getRoleType());
return PREFIX + "platformEdit.html";
+ }
+
+ /**
+ * 跳转到入口设置页面
+ */
+ @RequestMapping("/menu_entry_config")
+ public String menuEntryConfig(Model model) {
+ addMenuEntryConfigModel(model);
+ return PREFIX + "menuEntryConfig.html";
+ }
+
+ /**
+ * 加载入口配置页面数据
+ */
+ private void addMenuEntryConfigModel(Model model) {
+ Integer companyId = ShiroKit.getUser().getObjectId();
+ List<MenuEntryConfig> entryConfigList = menuEntryConfigService.selectList(
+ new EntityWrapper<MenuEntryConfig>().eq("openCityId", companyId).orderBy("id", true));
+ List<Menu> entryMenuList = menuService.selectList(
+ new EntityWrapper<Menu>()
+ .eq("status", 1)
+ .eq("ismenu", 1)
+ .isNotNull("url")
+ .ne("url", "")
+ .orderBy("levels", true)
+ .orderBy("num", true));
+ model.addAttribute("entryConfigList", entryConfigList);
+ model.addAttribute("entryMenuList", entryMenuList);
}
/**
@@ -448,6 +482,79 @@
}
/**
+ * 保存平台入口配置,入口名称和URL以后端查询到的菜单信息为准。
+ */
+ private String saveMenuEntryConfig(String entryConfigArr) {
+ if (ToolUtil.isEmpty(entryConfigArr)) {
+ return null;
+ }
+ // 开通城市id直接取当前登录用户绑定的对象id,不由页面传入。
+ Integer companyId = ShiroKit.getUser().getObjectId();
+ JSONArray jsonArray;
+ try {
+ jsonArray = JSON.parseArray(entryConfigArr);
+ } catch (Exception e) {
+ return "入口配置格式错误";
+ }
+
+ List<MenuEntryConfig> entryConfigList = new ArrayList<>();
+ Date now = new Date();
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ Long menuId = jsonObject.getLong("menuId");
+ if (menuId == null) {
+ return "请选择入口";
+ }
+ Menu menu = menuService.selectById(menuId);
+ if (menu == null || !Integer.valueOf(1).equals(menu.getStatus())
+ || !Integer.valueOf(1).equals(menu.getIsmenu())
+ || ToolUtil.isEmpty(menu.getUrl())) {
+ return "入口菜单不存在或已禁用";
+ }
+
+ Integer id = jsonObject.getInteger("id");
+ MenuEntryConfig entryConfig = null;
+ if (id != null) {
+ // 只能更新当前开通城市下的入口配置,避免跨城市改数据。
+ entryConfig = menuEntryConfigService.selectOne(
+ new EntityWrapper<MenuEntryConfig>().eq("id", id).eq("openCityId", companyId));
+ if (entryConfig == null) {
+ return "入口配置不存在";
+ }
+ }
+ if (entryConfig == null) {
+ entryConfig = new MenuEntryConfig();
+ entryConfig.setCreateTime(now);
+ entryConfig.setOpenCityId(companyId);
+ }
+ // menuName和entryUrl以后端菜单表为准,不信任前端展示值。
+ entryConfig.setTitle(jsonObject.getString("title"));
+ entryConfig.setMenuId(menu.getId());
+ entryConfig.setMenuName(menu.getName());
+ entryConfig.setEntryUrl(menu.getUrl());
+ entryConfig.setUpdateTime(now);
+ entryConfigList.add(entryConfig);
+ }
+
+ List<Integer> keepIds = new ArrayList<>();
+ for (MenuEntryConfig entryConfig : entryConfigList) {
+ if (entryConfig.getId() == null) {
+ menuEntryConfigService.insert(entryConfig);
+ } else {
+ menuEntryConfigService.updateById(entryConfig);
+ }
+ keepIds.add(entryConfig.getId());
+ }
+
+ Wrapper<MenuEntryConfig> deleteWrapper = new EntityWrapper<MenuEntryConfig>().eq("openCityId", companyId);
+ if (!keepIds.isEmpty()) {
+ deleteWrapper.notIn("id", keepIds);
+ }
+ menuEntryConfigService.delete(deleteWrapper);
+ return null;
+ }
+
+ /**
* 修改分公司管理
*/
@RequestMapping(value = "/update")
@@ -464,6 +571,7 @@
if (commissionError != null) {
return commissionError;
}
+ TCompany oldCompany = tCompanyService.selectById(tCompany.getId());
tCompany.setIsNeedFerry(2);
User user = userService.selectById(userId);
if(null != user && ToolUtil.isNotEmpty(password)){
@@ -472,7 +580,6 @@
}
// ========== 级联更新逻辑 ==========
- TCompany oldCompany = tCompanyService.selectById(tCompany.getId());
if (oldCompany != null && oldCompany.getType() == 2) {
String driverServiceError = validateCancelledServiceDriverUsage(oldCompany, tCompany, true);
if (driverServiceError != null) {
@@ -510,6 +617,20 @@
}
/**
+ * 保存入口设置
+ */
+ @RequestMapping(value = "/update_entry_config")
+ @ResponseBody
+ @Transactional(rollbackFor = Exception.class)
+ public Object updateEntryConfig(String entryConfigArr) {
+ String entryConfigError = saveMenuEntryConfig(entryConfigArr);
+ if (entryConfigError != null) {
+ return entryConfigError;
+ }
+ return SUCCESS_TIP;
+ }
+
+ /**
* 修改加盟商管理
*/
@RequestMapping(value = "/updateFranchisee")
--
Gitblit v1.7.1