Przeglądaj źródła

chore(config): 更新ES地址并添加系统菜单生成工具

- 将ES连接地址从 119.97.180.88:9200 修改为 119.97.180.50:9200
- 在IndexProductController中添加商品审核服务依赖注入
- 新增getProductPreview接口用于获取商品预览界面
- 添加MenuSqlGenerator工具类用于生成菜单SQL脚本
- 新增PcSystemController提供工作台菜单和角色列表接口
- 在SysRoleServiceImpl查询条件中添加平台码过滤
- 修复SysRoleMapper.xml中SQL片段ID命名错误
肖路 1 miesiąc temu
rodzic
commit
72d3deaddb

+ 13 - 0
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/controller/pc/IndexProductController.java

@@ -2,6 +2,7 @@ package org.dromara.product.controller.pc;
 
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -29,6 +30,8 @@ import java.util.Map;
 public class IndexProductController {
     //商品
     private final IProductBaseService productBaseService;
+    //商品审核
+    private final IProductBaseAuditService productBaseAuditService;
     //商品分类
     private final IProductCategoryService productCategoryService;
     //商品品牌
@@ -112,6 +115,16 @@ public class IndexProductController {
         return R.ok(productBaseVo);
     }
 
+    /**
+    * 获取商品预览界面
+    * */
+    @GetMapping("getProductPreview/{id}")
+    public R<ProductBaseVo> getProductPreview(@PathVariable Long id) {
+        String productData = productBaseAuditService.queryById(id).getProductData();
+
+        return R.ok(JSONUtil.toBean(productData, ProductBaseVo.class));
+    }
+
 
 
     /**

+ 1 - 1
ruoyi-modules/ruoyi-product/src/main/resources/application.yml

@@ -43,7 +43,7 @@ easy-es:
   # 兼容模式
   compatible: true
   # es连接地址+端口 格式必须为ip:port,如果是集群则可用逗号隔开
-  address : 119.97.180.88:9200
+  address : 119.97.180.50:9200
   # 默认为http
   schema: http
   # 注意ES建议使用账号认证 不使用会报警告日志

+ 144 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/MenuSqlGenerator.java

@@ -0,0 +1,144 @@
+package org.dromara.system;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MenuSqlGenerator {
+
+    // 内部类:模拟菜单数据结构
+    static class MenuItem {
+        String path;
+        String title;
+        String icon;
+        List<MenuItem> children;
+
+        public MenuItem(String path, String title, String icon) {
+            this.path = path;
+            this.title = title;
+            this.icon = icon;
+            this.children = new ArrayList<>();
+        }
+    }
+
+    public static void main(String[] args) {
+        // 1. 构建数据源 (模拟你提供的JSON数组)
+        List<MenuItem> menus = new ArrayList<>();
+
+        // --- 企业账户 ---
+        MenuItem enterprise = new MenuItem("/enterprise", "企业账户", "workbench1");
+        enterprise.children.add(new MenuItem("/enterprise/companyInfo", "企业信息", ""));
+        enterprise.children.add(new MenuItem("/enterprise/messageNotice", "消息通知", ""));
+        enterprise.children.add(new MenuItem("/easybuv", "地址管理", "")); // 注意:原数据path似乎不在enterprise下,这里按原样保留
+        enterprise.children.add(new MenuItem("/enterprise/invoiceManage", "发票抬头管理", ""));
+        enterprise.children.add(new MenuItem("/enterprise/purchasePlan", "专属采购方案", ""));
+        enterprise.children.add(new MenuItem("/enterprise/agreementSupply", "协议供货", ""));
+        enterprise.children.add(new MenuItem("/enterprise/myCollection", "我的收藏", ""));
+        enterprise.children.add(new MenuItem("/enterprise/purchaseHistory", "历史购买", ""));
+        enterprise.children.add(new MenuItem("/enterprise/myFootprint", "我的足迹", ""));
+        menus.add(enterprise);
+
+        // --- 交易管理 ---
+        MenuItem order = new MenuItem("/order", "交易管理", "workbench2");
+        order.children.add(new MenuItem("/order/orderManage", "订单管理", ""));
+        order.children.add(new MenuItem("/order/orderAudit", "审核订单", ""));
+        order.children.add(new MenuItem("/order/afterSale", "售后服务", ""));
+        order.children.add(new MenuItem("/order/batchOrder", "批量下单", ""));
+        order.children.add(new MenuItem("/order/orderEvaluation", "订单评价", ""));
+        menus.add(order);
+
+        // --- 组织管理 ---
+        MenuItem org = new MenuItem("/organization", "组织管理", "workbench3");
+        org.children.add(new MenuItem("/i", "个人信息", ""));
+        org.children.add(new MenuItem("/organization/deptManage", "部门管理", ""));
+        org.children.add(new MenuItem("/organization/staffManage", "人员管理", ""));
+        org.children.add(new MenuItem("/organization/roleManage", "角色管理", ""));
+        org.children.add(new MenuItem("/organization/approvalFlow", "审批流程", ""));
+        org.children.add(new MenuItem("/organization/groupEnterprise", "集团关联企业", ""));
+        menus.add(org);
+
+        // --- 成本管理 ---
+        MenuItem cost = new MenuItem("/cost", "成本管理", "workbench4");
+        cost.children.add(new MenuItem("/cost/itemExpense", "分项费用", ""));
+        cost.children.add(new MenuItem("/cost/quotaControl", "额度控制", ""));
+        menus.add(cost);
+
+        // --- 对账管理 ---
+        MenuItem recon = new MenuItem("/reconciliation", "对账管理", "workbench5");
+        recon.children.add(new MenuItem("/reconciliation/billManage", "对账单管理", ""));
+        recon.children.add(new MenuItem("/reconciliation/invoiceManage", "开票管理", ""));
+        menus.add(recon);
+
+        // --- 增值服务 ---
+        MenuItem valueAdded = new MenuItem("/valueAdded", "增值服务", "workbench6");
+        valueAdded.children.add(new MenuItem("/valueAdded/maintenance", "维保服务", ""));
+        valueAdded.children.add(new MenuItem("/valueAdded/complaint", "投诉与建议", ""));
+        menus.add(valueAdded);
+
+        // --- 采购分析 ---
+        MenuItem analysis = new MenuItem("/analysis", "采购分析", "workbench7");
+        analysis.children.add(new MenuItem("/analysis/orderAnalysis", "订单交易分析", ""));
+        analysis.children.add(new MenuItem("/analysis/purchaseDetail", "商品采购明细", ""));
+        analysis.children.add(new MenuItem("/analysis/orderStatus", "订单执行状态", ""));
+        analysis.children.add(new MenuItem("/analysis/settlementStatus", "对账结算状况", ""));
+        analysis.children.add(new MenuItem("/analysis/deptPurchase", "部门采购金额", ""));
+        menus.add(analysis);
+
+        // 2. 执行生成
+        generateSql(menus);
+    }
+
+    /**
+     * 生成SQL逻辑
+     */
+    public static void generateSql(List<MenuItem> menus) {
+        // 基础ID计数器,模拟数据库自增或雪花算法
+        long currentId = 2049013816429805570L;
+
+        StringBuilder sqlBuilder = new StringBuilder();
+        String tableName = "yoe_system_db.sys_menu";
+
+        // 公共字段常量
+        String component = "NULL"; // 根据你的参考SQL,component 都是 NULL
+        String queryParam = "NULL";
+        int isFrame = 1;
+        int isCache = 0;
+        int visible = 0;
+        int status = 0;
+        String perms = "NULL";
+        String createDept = "103";
+        String createBy = "1";
+        String createTime = "NOW()"; // 使用数据库函数或填入具体时间字符串
+        String updateBy = "1";
+        String updateTime = "NOW()";
+        String remark = "";
+        String platformCode = "home";
+
+        for (MenuItem menu : menus) {
+            // --- 生成父级菜单 SQL ---
+            long parentId = currentId++;
+            String parentPath = menu.path.replace("/", ""); // 去除斜杠作为path字段
+
+            sqlBuilder.append(String.format(
+                "INSERT INTO `%s` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`, `platform_code`) VALUES (%d, '%s', 0, 1, '%s', %s, %s, %d, %d, 'M', '%d', '%d', %s, '%s', %s, %s, %s, %s, %s, '%s', '%s');\n",
+                tableName, parentId, menu.title, parentPath, component, queryParam, isFrame, isCache, visible, status, perms, menu.icon, createDept, createBy, createTime, updateBy, updateTime, remark, platformCode
+            ));
+
+            // --- 生成子级菜单 SQL ---
+            int childOrder = 1;
+            for (MenuItem child : menu.children) {
+                long childId = currentId++;
+                String childPath = child.path.startsWith("/") ? child.path.substring(1) : child.path;
+
+                sqlBuilder.append(String.format(
+                    "INSERT INTO `%s` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`, `platform_code`) VALUES (%d, '%s', %d, %d, '%s', %s, %s, %d, %d, 'C', '%d', '%d', %s, '%s', %s, %s, %s, %s, %s, '%s', '%s');\n",
+                    tableName, childId, child.title, parentId, childOrder, childPath, component,
+                    queryParam, isFrame, isCache, visible, status, perms, child.icon, createDept, createBy, createTime, updateBy, updateTime, remark, platformCode
+                ));
+                childOrder++;
+            }
+        }
+
+        // 3. 输出结果
+        System.out.println(sqlBuilder.toString());
+    }
+}

+ 7 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/pc/PcSysUserController.java

@@ -10,11 +10,17 @@ import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.web.core.BaseController;
 import org.dromara.system.domain.bo.ChangeUserPwdBo;
+import org.dromara.system.domain.vo.SysMenuVo;
+import org.dromara.system.domain.vo.SysRoleVo;
 import org.dromara.system.domain.vo.SysUserVo;
+import org.dromara.system.service.ISysMenuService;
+import org.dromara.system.service.ISysRoleService;
 import org.dromara.system.service.ISysUserService;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 @Validated
 @RequiredArgsConstructor
 @RestController
@@ -110,4 +116,5 @@ public class PcSysUserController extends BaseController {
         sysUserService.checkUserDataScope(user.getUserId());
         return toAjax(sysUserService.resetUserPhonenumber(user.getUserId(), user.getNewPhonenumber()));
     }
+
 }

+ 47 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/pc/PcSystemController.java

@@ -0,0 +1,47 @@
+package org.dromara.system.controller.pc;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.system.domain.bo.SysRoleBo;
+import org.dromara.system.domain.vo.SysMenuVo;
+import org.dromara.system.domain.vo.SysRoleVo;
+import org.dromara.system.service.ISysMenuService;
+import org.dromara.system.service.ISysRoleService;
+import org.springframework.validation.annotation.Validated;
+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;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/pcSystem")
+public class PcSystemController {
+
+    private final ISysMenuService sysMenuService;
+
+    private final ISysRoleService sysRoleService;
+
+
+    /**
+     * 获取工作台菜单列表
+     * */
+    @GetMapping("/getWorkbenchMenuList")
+    public R<List<SysMenuVo>> getWorkbenchMenuList() {
+        List<SysMenuVo> menuList = sysMenuService.selectMenuList(LoginHelper.getUserId(),"home");
+        return R.ok(menuList);
+    }
+
+    /**
+     * 获取工作台角色列表
+     * */
+    @GetMapping("/getWorkbenchRoleList")
+    public R<List<SysRoleVo>> getWorkbenchRoleList(SysRoleBo bo) {
+        bo.setPlatformCode("home");
+        List<SysRoleVo> roleList = sysRoleService.selectRoleList(bo);
+        return R.ok();
+    }
+}

+ 1 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java

@@ -80,6 +80,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
             .like(StringUtils.isNotBlank(bo.getRoleName()), "r.role_name", bo.getRoleName())
             .eq(StringUtils.isNotBlank(bo.getStatus()), "r.status", bo.getStatus())
             .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", bo.getRoleKey())
+            .eq(ObjectUtil.isNotEmpty(bo.getPlatformCode()), "r.platform_code", bo.getPlatformCode())
             .between(params.get("beginTime") != null && params.get("endTime") != null,
                 "r.create_time", params.get("beginTime"), params.get("endTime"))
             .orderByAsc("r.role_sort").orderByAsc("r.create_time");

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -7,7 +7,7 @@
     <resultMap type="org.dromara.system.domain.vo.SysRoleVo" id="SysRoleResult">
     </resultMap>
 
-    <sql id="selectRoleVo">
+    <sql id="eselectRoleVo">
         select distinct r.role_id,
                         r.role_name,
                         r.role_key,