浏览代码

视频会议配置管理开发

pangchunyou 2 年之前
父节点
当前提交
8f02080232

+ 127 - 0
ruoyi-admin/src/main/java/com/ruoyi/config/controller/MeetingConfigController.java

@@ -0,0 +1,127 @@
+package com.ruoyi.config.controller;
+
+import java.util.List;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.config.domain.MeetingConfig;
+import com.ruoyi.config.service.IMeetingConfigService;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 视频会议配置Controller
+ * 
+ * @author ruoyi
+ * @date 2023-04-18
+ */
+@Controller
+@RequestMapping("/config/config")
+public class MeetingConfigController extends BaseController
+{
+    private String prefix = "config/config";
+
+    @Autowired
+    private IMeetingConfigService meetingConfigService;
+
+    @RequiresPermissions("config:config:view")
+    @GetMapping()
+    public String config()
+    {
+        return prefix + "/config";
+    }
+
+    /**
+     * 查询视频会议配置列表
+     */
+    @RequiresPermissions("config:config:list")
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(MeetingConfig meetingConfig)
+    {
+        startPage();
+        List<MeetingConfig> list = meetingConfigService.selectMeetingConfigList(meetingConfig);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出视频会议配置列表
+     */
+    @RequiresPermissions("config:config:export")
+    @Log(title = "视频会议配置", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ResponseBody
+    public AjaxResult export(MeetingConfig meetingConfig)
+    {
+        List<MeetingConfig> list = meetingConfigService.selectMeetingConfigList(meetingConfig);
+        ExcelUtil<MeetingConfig> util = new ExcelUtil<MeetingConfig>(MeetingConfig.class);
+        return util.exportExcel(list, "视频会议配置数据");
+    }
+
+    /**
+     * 新增视频会议配置
+     */
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+
+    /**
+     * 新增保存视频会议配置
+     */
+    @RequiresPermissions("config:config:add")
+    @Log(title = "视频会议配置", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    @ResponseBody
+    public AjaxResult addSave(MeetingConfig meetingConfig)
+    {
+        return toAjax(meetingConfigService.insertMeetingConfig(meetingConfig));
+    }
+
+    /**
+     * 修改视频会议配置
+     */
+    @RequiresPermissions("config:config:edit")
+    @GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Long id, ModelMap mmap)
+    {
+        MeetingConfig meetingConfig = meetingConfigService.selectMeetingConfigById(id);
+        mmap.put("meetingConfig", meetingConfig);
+        return prefix + "/edit";
+    }
+
+    /**
+     * 修改保存视频会议配置
+     */
+    @RequiresPermissions("config:config:edit")
+    @Log(title = "视频会议配置", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(MeetingConfig meetingConfig)
+    {
+        return toAjax(meetingConfigService.updateMeetingConfig(meetingConfig));
+    }
+
+    /**
+     * 删除视频会议配置
+     */
+    @RequiresPermissions("config:config:remove")
+    @Log(title = "视频会议配置", businessType = BusinessType.DELETE)
+    @PostMapping( "/remove")
+    @ResponseBody
+    public AjaxResult remove(String ids)
+    {
+        return toAjax(meetingConfigService.deleteMeetingConfigByIds(ids));
+    }
+}

+ 74 - 0
ruoyi-admin/src/main/java/com/ruoyi/config/domain/MeetingConfig.java

@@ -0,0 +1,74 @@
+package com.ruoyi.config.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 视频会议配置对象 meeting_config
+ *
+ * @author ruoyi
+ * @date 2023-04-18
+ */
+public class MeetingConfig extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    private Long id;
+
+    /** 名称 */
+    @Excel(name = "名称")
+    private String name;
+
+    /** 键 */
+    @Excel(name = "键")
+    private String ky;
+
+    /** 值 */
+    @Excel(name = "值")
+    private String val;
+
+    public Long getId() {
+      return id;
+    }
+
+    public void setId(Long id) {
+      this.id = id;
+    }
+
+    public String getName() {
+      return name;
+    }
+
+    public void setName(String name) {
+      this.name = name;
+    }
+
+    public String getKy() {
+      return ky;
+    }
+
+    public void setKy(String ky) {
+      this.ky = ky;
+    }
+
+    public String getVal() {
+      return val;
+    }
+
+    public void setVal(String val) {
+      this.val = val;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("name", getName())
+            .append("ky", getKy())
+            .append("val", getVal())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-admin/src/main/java/com/ruoyi/config/mapper/MeetingConfigMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.config.mapper;
+
+import java.util.List;
+import com.ruoyi.config.domain.MeetingConfig;
+
+/**
+ * 视频会议配置Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2023-04-18
+ */
+public interface MeetingConfigMapper 
+{
+    /**
+     * 查询视频会议配置
+     * 
+     * @param id 视频会议配置主键
+     * @return 视频会议配置
+     */
+    public MeetingConfig selectMeetingConfigById(Long id);
+
+    /**
+     * 查询视频会议配置列表
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 视频会议配置集合
+     */
+    public List<MeetingConfig> selectMeetingConfigList(MeetingConfig meetingConfig);
+
+    /**
+     * 新增视频会议配置
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 结果
+     */
+    public int insertMeetingConfig(MeetingConfig meetingConfig);
+
+    /**
+     * 修改视频会议配置
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 结果
+     */
+    public int updateMeetingConfig(MeetingConfig meetingConfig);
+
+    /**
+     * 删除视频会议配置
+     * 
+     * @param id 视频会议配置主键
+     * @return 结果
+     */
+    public int deleteMeetingConfigById(Long id);
+
+    /**
+     * 批量删除视频会议配置
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMeetingConfigByIds(String[] ids);
+}

+ 61 - 0
ruoyi-admin/src/main/java/com/ruoyi/config/service/IMeetingConfigService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.config.service;
+
+import java.util.List;
+import com.ruoyi.config.domain.MeetingConfig;
+
+/**
+ * 视频会议配置Service接口
+ * 
+ * @author ruoyi
+ * @date 2023-04-18
+ */
+public interface IMeetingConfigService 
+{
+    /**
+     * 查询视频会议配置
+     * 
+     * @param id 视频会议配置主键
+     * @return 视频会议配置
+     */
+    public MeetingConfig selectMeetingConfigById(Long id);
+
+    /**
+     * 查询视频会议配置列表
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 视频会议配置集合
+     */
+    public List<MeetingConfig> selectMeetingConfigList(MeetingConfig meetingConfig);
+
+    /**
+     * 新增视频会议配置
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 结果
+     */
+    public int insertMeetingConfig(MeetingConfig meetingConfig);
+
+    /**
+     * 修改视频会议配置
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 结果
+     */
+    public int updateMeetingConfig(MeetingConfig meetingConfig);
+
+    /**
+     * 批量删除视频会议配置
+     * 
+     * @param ids 需要删除的视频会议配置主键集合
+     * @return 结果
+     */
+    public int deleteMeetingConfigByIds(String ids);
+
+    /**
+     * 删除视频会议配置信息
+     * 
+     * @param id 视频会议配置主键
+     * @return 结果
+     */
+    public int deleteMeetingConfigById(Long id);
+}

+ 94 - 0
ruoyi-admin/src/main/java/com/ruoyi/config/service/impl/MeetingConfigServiceImpl.java

@@ -0,0 +1,94 @@
+package com.ruoyi.config.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.config.mapper.MeetingConfigMapper;
+import com.ruoyi.config.domain.MeetingConfig;
+import com.ruoyi.config.service.IMeetingConfigService;
+import com.ruoyi.common.core.text.Convert;
+
+/**
+ * 视频会议配置Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2023-04-18
+ */
+@Service
+public class MeetingConfigServiceImpl implements IMeetingConfigService 
+{
+    @Autowired
+    private MeetingConfigMapper meetingConfigMapper;
+
+    /**
+     * 查询视频会议配置
+     * 
+     * @param id 视频会议配置主键
+     * @return 视频会议配置
+     */
+    @Override
+    public MeetingConfig selectMeetingConfigById(Long id)
+    {
+        return meetingConfigMapper.selectMeetingConfigById(id);
+    }
+
+    /**
+     * 查询视频会议配置列表
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 视频会议配置
+     */
+    @Override
+    public List<MeetingConfig> selectMeetingConfigList(MeetingConfig meetingConfig)
+    {
+        return meetingConfigMapper.selectMeetingConfigList(meetingConfig);
+    }
+
+    /**
+     * 新增视频会议配置
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 结果
+     */
+    @Override
+    public int insertMeetingConfig(MeetingConfig meetingConfig)
+    {
+        return meetingConfigMapper.insertMeetingConfig(meetingConfig);
+    }
+
+    /**
+     * 修改视频会议配置
+     * 
+     * @param meetingConfig 视频会议配置
+     * @return 结果
+     */
+    @Override
+    public int updateMeetingConfig(MeetingConfig meetingConfig)
+    {
+        return meetingConfigMapper.updateMeetingConfig(meetingConfig);
+    }
+
+    /**
+     * 批量删除视频会议配置
+     * 
+     * @param ids 需要删除的视频会议配置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMeetingConfigByIds(String ids)
+    {
+        return meetingConfigMapper.deleteMeetingConfigByIds(Convert.toStrArray(ids));
+    }
+
+    /**
+     * 删除视频会议配置信息
+     * 
+     * @param id 视频会议配置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMeetingConfigById(Long id)
+    {
+        return meetingConfigMapper.deleteMeetingConfigById(id);
+    }
+}

+ 15 - 1
ruoyi-admin/src/main/java/com/ruoyi/hwMeeting/service/impl/HwMeetingServiceImpl.java

@@ -5,22 +5,31 @@ import com.dahuatech.hutool.http.HttpRequest;
 import com.dahuatech.hutool.json.JSONArray;
 import com.dahuatech.hutool.json.JSONObject;
 import com.dahuatech.hutool.json.JSONUtil;
+import com.ruoyi.config.service.IMeetingConfigService;
 import com.ruoyi.hwMeeting.service.HwMeetingService;
 import com.ruoyi.hwMeeting.util.HmacSHA256;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
-public class HwMeetingServiceImpl extends HwMeetingApi implements HwMeetingService {
+public class HwMeetingServiceImpl implements HwMeetingService {
 
     private static final Logger log = LoggerFactory.getLogger(HwMeetingServiceImpl.class);
 
+    @Autowired
+    private IMeetingConfigService meetingConfigService;
+
     /**
      * appId鉴权方法 获取token
      */
     @Override
     public String appauth() {
+        String appId = meetingConfigService.selectMeetingConfigById((long) 2).getVal().toString();
+        String userId = meetingConfigService.selectMeetingConfigById((long) 4).getVal().toString();
+        String url = meetingConfigService.selectMeetingConfigById((long) 1).getVal().toString();
+        String appauth = meetingConfigService.selectMeetingConfigById((long) 5).getVal().toString();
         //64位随机字符串
         String nonce = RandomUtil.randomString(64);
         System.out.println(nonce);
@@ -52,6 +61,7 @@ public class HwMeetingServiceImpl extends HwMeetingApi implements HwMeetingServi
      */
     @Override
     public String getAuthorization(String appId, String userId, String nonce) {
+        String appKey = meetingConfigService.selectMeetingConfigById((long) 3).getVal().toString();
         String data = appId + ":" + userId + ":" + 0 + ":" + nonce;
         String authorization = "HMAC-SHA256 signature=" + HmacSHA256.encode(data, appKey);
         return authorization;
@@ -62,6 +72,8 @@ public class HwMeetingServiceImpl extends HwMeetingApi implements HwMeetingServi
      */
     @Override
     public String vmrID(String token) {
+        String url = meetingConfigService.selectMeetingConfigById((long) 1).getVal().toString();
+        String vmr = meetingConfigService.selectMeetingConfigById((long) 6).getVal().toString();
         //body
         String result = HttpRequest.get(url + vmr)
                 .header("X-Access-Token", token)
@@ -80,6 +92,8 @@ public class HwMeetingServiceImpl extends HwMeetingApi implements HwMeetingServi
      */
     @Override
     public String conferences(String subject) {
+        String url = meetingConfigService.selectMeetingConfigById((long) 1).getVal().toString();
+        String conferences = meetingConfigService.selectMeetingConfigById((long) 7).getVal().toString();
         String token = appauth();
         String vmrID = vmrID(token);
         //body

+ 69 - 0
ruoyi-admin/src/main/resources/mapper/config/MeetingConfigMapper.xml

@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.config.mapper.MeetingConfigMapper">
+
+    <resultMap type="MeetingConfig" id="MeetingConfigResult">
+        <result property="id"    column="id"    />
+        <result property="name"    column="name"    />
+        <result property="ky"    column="ky"    />
+        <result property="val"    column="val"    />
+    </resultMap>
+
+    <sql id="selectMeetingConfigVo">
+        select id, name, ky, val from meeting_config
+    </sql>
+
+    <select id="selectMeetingConfigList" parameterType="MeetingConfig" resultMap="MeetingConfigResult">
+        <include refid="selectMeetingConfigVo"/>
+        <where>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="ky != null  and ky != ''"> and ky = #{ky}</if>
+            <if test="val != null  and val != ''"> and val = #{val}</if>
+        </where>
+    </select>
+
+    <select id="selectMeetingConfigById" parameterType="Long" resultMap="MeetingConfigResult">
+        <include refid="selectMeetingConfigVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertMeetingConfig" parameterType="MeetingConfig">
+        insert into meeting_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="name != null">name,</if>
+            <if test="ky != null">ky,</if>
+            <if test="val != null">val,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="name != null">#{name},</if>
+            <if test="ky != null">#{ky},</if>
+            <if test="val != null">#{val},</if>
+         </trim>
+    </insert>
+
+    <update id="updateMeetingConfig" parameterType="MeetingConfig">
+        update meeting_config
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null">name = #{name},</if>
+            <if test="ky != null">ky = #{ky},</if>
+            <if test="val != null">val = #{val},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteMeetingConfigById" parameterType="Long">
+        delete from meeting_config where id = #{id}
+    </delete>
+
+    <delete id="deleteMeetingConfigByIds" parameterType="String">
+        delete from meeting_config where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 43 - 0
ruoyi-admin/src/main/resources/templates/config/config/add.html

@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('新增视频会议配置')" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-config-add">
+            <div class="form-group">
+                <label class="col-sm-3 control-label">名称:</label>
+                <div class="col-sm-8">
+                    <input name="name" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">键:</label>
+                <div class="col-sm-8">
+                    <input name="ky" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">值:</label>
+                <div class="col-sm-8">
+                    <input name="val" class="form-control" type="text">
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var prefix = ctx + "config/config"
+        $("#form-config-add").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/add", $('#form-config-add').serialize());
+            }
+        }
+    </script>
+</body>
+</html>

+ 102 - 0
ruoyi-admin/src/main/resources/templates/config/config/config.html

@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <th:block th:include="include :: header('视频会议配置列表')" />
+</head>
+<body class="gray-bg">
+     <div class="container-div">
+        <div class="row">
+<!--            <div class="col-sm-12 search-collapse">-->
+<!--                <form id="formId">-->
+<!--                    <div class="select-list">-->
+<!--                        <ul>-->
+<!--                            <li>-->
+<!--                                <label>名称:</label>-->
+<!--                                <input type="text" name="name"/>-->
+<!--                            </li>-->
+<!--                            <li>-->
+<!--                                <label>键:</label>-->
+<!--                                <input type="text" name="ky"/>-->
+<!--                            </li>-->
+<!--                            <li>-->
+<!--                                <label>值:</label>-->
+<!--                                <input type="text" name="val"/>-->
+<!--                            </li>-->
+<!--                            <li>-->
+<!--                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>-->
+<!--                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>-->
+<!--                            </li>-->
+<!--                        </ul>-->
+<!--                    </div>-->
+<!--                </form>-->
+<!--            </div>-->
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+<!--                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="config:config:add">-->
+<!--                    <i class="fa fa-plus"></i> 添加-->
+<!--                </a>-->
+                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="config:config:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+<!--                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="config:config:remove">-->
+<!--                    <i class="fa fa-remove"></i> 删除-->
+<!--                </a>-->
+<!--                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="config:config:export">-->
+<!--                    <i class="fa fa-download"></i> 导出-->
+<!--                </a>-->
+            </div>
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var editFlag = [[${@permission.hasPermi('config:config:edit')}]];
+        var removeFlag = [[${@permission.hasPermi('config:config:remove')}]];
+        var prefix = ctx + "config/config";
+
+        $(function() {
+            var options = {
+                url: prefix + "/list",
+                createUrl: prefix + "/add",
+                updateUrl: prefix + "/edit/{id}",
+                removeUrl: prefix + "/remove",
+                exportUrl: prefix + "/export",
+                modalName: "视频会议配置",
+                columns: [{
+                    checkbox: true
+                },
+                {
+                    field: 'id',
+                    title: '',
+                    visible: false
+                },
+                {
+                    field: 'name',
+                    title: '名称'
+                },
+                {
+                    field: 'ky',
+                    title: '键'
+                },
+                {
+                    field: 'val',
+                    title: '值'
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                        // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
+                        return actions.join('');
+                    }
+                }]
+            };
+            $.table.init(options);
+        });
+    </script>
+</body>
+</html>

+ 44 - 0
ruoyi-admin/src/main/resources/templates/config/config/edit.html

@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('修改视频会议配置')" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-config-edit" th:object="${meetingConfig}">
+            <input name="id" th:field="*{id}" type="hidden">
+            <div class="form-group">
+                <label class="col-sm-3 control-label">名称:</label>
+                <div class="col-sm-8">
+                    <input name="name" th:field="*{name}" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">键:</label>
+                <div class="col-sm-8">
+                    <input name="ky" th:field="*{ky}" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">值:</label>
+                <div class="col-sm-8">
+                    <input name="val" th:field="*{val}" class="form-control" type="text">
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var prefix = ctx + "config/config";
+        $("#form-config-edit").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/edit", $('#form-config-edit').serialize());
+            }
+        }
+    </script>
+</body>
+</html>

+ 112 - 112
ruoyi-admin/src/main/resources/templates/index.html

@@ -26,7 +26,7 @@
         </div>
         <a th:href="@{/index}">
             <li class="logo hidden-xs">
-                <span class="logo-lg">RuoYi</span>
+                <span class="logo-lg">视频会议管理系统</span>
             </li>
          </a>
         <div class="sidebar-collapse">
@@ -71,113 +71,113 @@
 						</li>
 					</ul>
                 </li>
-                <li th:if="${demoEnabled}">
-                    <a href="#"><i class="fa fa-desktop"></i><span class="nav-label">实例演示</span><span class="fa arrow"></span></a>
-                    <ul class="nav nav-second-level collapse">
-                        <li> <a>表单<span class="fa arrow"></span></a>
-                            <ul class="nav nav-third-level">
-								<li><a class="menuItem" th:href="@{/demo/form/button}">按钮</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/grid}">栅格</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/select}">下拉框</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/timeline}">时间轴</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/progress_bars}">进度条</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/basic}">基本表单</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/cards}">卡片列表</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/jasny}">功能扩展</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/sortable}">拖动排序</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/invoice}">单据打印</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/labels_tips}">标签 & 提示</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/tabs_panels}">选项卡 & 面板</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/validate}">表单校验</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/wizard}">表单向导</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/upload}">文件上传</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/datetime}">日期和时间</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/summernote}">富文本编辑器</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/duallistbox}">左右互选组件</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/autocomplete}">搜索自动补全</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/cxselect}">多级联动下拉</a></li>
-								<li><a class="menuItem" th:href="@{/demo/form/localrefresh}">Ajax局部刷新</a></li>
-							</ul>
-                        </li>
-                        <li> <a>表格<span class="fa arrow"></span></a>
-                            <ul class="nav nav-third-level">
-								<li><a class="menuItem" th:href="@{/demo/table/search}">查询条件</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/footer}">数据汇总</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/groupHeader}">组合表头</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/export}">表格导出</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/exportSelected}">导出选择列</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/remember}">翻页记住选择</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/pageGo}">跳转至指定页</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/params}">自定义查询参数</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/multi}">初始多表格</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/button}">点击按钮加载表格</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/data}">直接加载表格数据</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/fixedColumns}">表格冻结列</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/event}">自定义触发事件</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/headerStyle}">表格标题格式化</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/detail}">表格细节视图</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/child}">表格父子视图</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/image}">表格图片预览</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/curd}">动态增删改查</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/reorderRows}">表格行拖拽操作</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/reorderColumns}">表格列拖拽操作</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/resizable}">表格列宽拖动</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/editable}">表格行内编辑</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/subdata}">主子表提交</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/refresh}">表格自动刷新</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/print}">表格打印配置</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/dynamicColumns}">表格动态列</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/customView}">自定义视图分页</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/asynTree}">异步加载表格树</a></li>
-								<li><a class="menuItem" th:href="@{/demo/table/other}">表格其他操作</a></li>
-							</ul>
-                        </li>
-                        <li> <a>弹框<span class="fa arrow"></span></a>
-                            <ul class="nav nav-third-level">
-								<li><a class="menuItem" th:href="@{/demo/modal/dialog}">模态窗口</a></li>
-								<li><a class="menuItem" th:href="@{/demo/modal/layer}">弹层组件</a></li>
-								<li><a class="menuItem" th:href="@{/demo/modal/table}">弹层表格</a></li>
-							</ul>
-                        </li>
-                        <li> <a>操作<span class="fa arrow"></span></a>
-                            <ul class="nav nav-third-level">
-								<li><a class="menuItem" th:href="@{/demo/operate/table}">表格</a></li>
-								<li><a class="menuItem" th:href="@{/demo/operate/other}">其他</a></li>
-							</ul>
-                        </li>
-                        <li> <a>报表<span class="fa arrow"></span></a>
-                            <ul class="nav nav-third-level">
-								<li><a class="menuItem" th:href="@{/demo/report/echarts}">百度ECharts</a></li>
-								<li><a class="menuItem" th:href="@{/demo/report/peity}">peity</a></li>
-								<li><a class="menuItem" th:href="@{/demo/report/sparkline}">sparkline</a></li>
-								<li><a class="menuItem" th:href="@{/demo/report/metrics}">图表组合</a></li>
-							</ul>
-                        </li>
-                        <li> <a>图标<span class="fa arrow"></span></a>
-                            <ul class="nav nav-third-level">
-								<li><a class="menuItem" th:href="@{/demo/icon/fontawesome}">Font Awesome</a></li>
-								<li><a class="menuItem" th:href="@{/demo/icon/glyphicons}">Glyphicons</a></li>
-							</ul>
-                        </li>
-                        <li>
-	                        <a href="#"><i class="fa fa-sitemap"></i>四层菜单<span class="fa arrow"></span></a>
-	                        <ul class="nav nav-third-level collapse">
-	                            <li>
-	                                <a href="#" id="damian">三级菜单1<span class="fa arrow"></span></a>
-	                                <ul class="nav nav-third-level">
-	                                    <li>
-	                                        <a href="#">四级菜单1</a>
-	                                    </li>
-	                                    <li>
-	                                        <a href="#">四级菜单2</a>
-	                                    </li>
-	                                </ul>
-	                            </li>
-	                            <li><a href="#">三级菜单2</a></li>
-	                        </ul>
-	                    </li>
-                    </ul>
-                </li>
+<!--                <li th:if="${demoEnabled}">-->
+<!--                    <a href="#"><i class="fa fa-desktop"></i><span class="nav-label">实例演示</span><span class="fa arrow"></span></a>-->
+<!--                    <ul class="nav nav-second-level collapse">-->
+<!--                        <li> <a>表单<span class="fa arrow"></span></a>-->
+<!--                            <ul class="nav nav-third-level">-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/button}">按钮</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/grid}">栅格</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/select}">下拉框</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/timeline}">时间轴</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/progress_bars}">进度条</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/basic}">基本表单</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/cards}">卡片列表</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/jasny}">功能扩展</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/sortable}">拖动排序</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/invoice}">单据打印</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/labels_tips}">标签 & 提示</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/tabs_panels}">选项卡 & 面板</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/validate}">表单校验</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/wizard}">表单向导</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/upload}">文件上传</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/datetime}">日期和时间</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/summernote}">富文本编辑器</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/duallistbox}">左右互选组件</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/autocomplete}">搜索自动补全</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/cxselect}">多级联动下拉</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/form/localrefresh}">Ajax局部刷新</a></li>-->
+<!--							</ul>-->
+<!--                        </li>-->
+<!--                        <li> <a>表格<span class="fa arrow"></span></a>-->
+<!--                            <ul class="nav nav-third-level">-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/search}">查询条件</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/footer}">数据汇总</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/groupHeader}">组合表头</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/export}">表格导出</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/exportSelected}">导出选择列</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/remember}">翻页记住选择</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/pageGo}">跳转至指定页</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/params}">自定义查询参数</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/multi}">初始多表格</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/button}">点击按钮加载表格</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/data}">直接加载表格数据</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/fixedColumns}">表格冻结列</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/event}">自定义触发事件</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/headerStyle}">表格标题格式化</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/detail}">表格细节视图</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/child}">表格父子视图</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/image}">表格图片预览</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/curd}">动态增删改查</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/reorderRows}">表格行拖拽操作</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/reorderColumns}">表格列拖拽操作</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/resizable}">表格列宽拖动</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/editable}">表格行内编辑</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/subdata}">主子表提交</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/refresh}">表格自动刷新</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/print}">表格打印配置</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/dynamicColumns}">表格动态列</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/customView}">自定义视图分页</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/asynTree}">异步加载表格树</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/table/other}">表格其他操作</a></li>-->
+<!--							</ul>-->
+<!--                        </li>-->
+<!--                        <li> <a>弹框<span class="fa arrow"></span></a>-->
+<!--                            <ul class="nav nav-third-level">-->
+<!--								<li><a class="menuItem" th:href="@{/demo/modal/dialog}">模态窗口</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/modal/layer}">弹层组件</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/modal/table}">弹层表格</a></li>-->
+<!--							</ul>-->
+<!--                        </li>-->
+<!--                        <li> <a>操作<span class="fa arrow"></span></a>-->
+<!--                            <ul class="nav nav-third-level">-->
+<!--								<li><a class="menuItem" th:href="@{/demo/operate/table}">表格</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/operate/other}">其他</a></li>-->
+<!--							</ul>-->
+<!--                        </li>-->
+<!--                        <li> <a>报表<span class="fa arrow"></span></a>-->
+<!--                            <ul class="nav nav-third-level">-->
+<!--								<li><a class="menuItem" th:href="@{/demo/report/echarts}">百度ECharts</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/report/peity}">peity</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/report/sparkline}">sparkline</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/report/metrics}">图表组合</a></li>-->
+<!--							</ul>-->
+<!--                        </li>-->
+<!--                        <li> <a>图标<span class="fa arrow"></span></a>-->
+<!--                            <ul class="nav nav-third-level">-->
+<!--								<li><a class="menuItem" th:href="@{/demo/icon/fontawesome}">Font Awesome</a></li>-->
+<!--								<li><a class="menuItem" th:href="@{/demo/icon/glyphicons}">Glyphicons</a></li>-->
+<!--							</ul>-->
+<!--                        </li>-->
+<!--                        <li>-->
+<!--	                        <a href="#"><i class="fa fa-sitemap"></i>四层菜单<span class="fa arrow"></span></a>-->
+<!--	                        <ul class="nav nav-third-level collapse">-->
+<!--	                            <li>-->
+<!--	                                <a href="#" id="damian">三级菜单1<span class="fa arrow"></span></a>-->
+<!--	                                <ul class="nav nav-third-level">-->
+<!--	                                    <li>-->
+<!--	                                        <a href="#">四级菜单1</a>-->
+<!--	                                    </li>-->
+<!--	                                    <li>-->
+<!--	                                        <a href="#">四级菜单2</a>-->
+<!--	                                    </li>-->
+<!--	                                </ul>-->
+<!--	                            </li>-->
+<!--	                            <li><a href="#">三级菜单2</a></li>-->
+<!--	                        </ul>-->
+<!--	                    </li>-->
+<!--                    </ul>-->
+<!--                </li>-->
             </ul>
         </div>
     </nav>
@@ -270,8 +270,8 @@
 <script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
 <script th:inline="javascript">
 window.history.forward(1);
-var ctx = [[@{/}]]; 
-var lockscreen = [[${session.lockscreen}]]; 
+var ctx = [[@{/}]];
+var lockscreen = [[${session.lockscreen}]];
 if(lockscreen){window.top.location=ctx+"lockscreen";}
 // 皮肤缓存
 var skin = storage.get("skin");
@@ -346,7 +346,7 @@ $(function() {
 	    	}
 	    }
 	}
-	
+
 	/* 初始密码提示 */
 	if([[${isDefaultModifyPwd}]]) {
 		layer.confirm("您的密码还是初始密码,请修改密码!", {
@@ -359,7 +359,7 @@ $(function() {
 			layer.close(index);
 		});
 	}
-	
+
 	/* 过期密码提示 */
 	if([[${isPasswordExpired}]]) {
 		layer.confirm("您的密码已过期,请尽快修改密码!", {

+ 13 - 30
ruoyi-admin/src/main/resources/templates/login.html

@@ -25,49 +25,32 @@
         <div class="row">
             <div class="col-sm-7">
                 <div class="signin-info">
-                    <div class="logopanel m-b">
-                        <h1><img alt="[ 若依 ]" src="../static/ruoyi.png" th:src="@{/ruoyi.png}"></h1>
-                    </div>
                     <div class="m-b"></div>
-                    <h4>欢迎使用 <strong>若依 后台管理系统</strong></h4>
-                    <ul class="m-b">
-                        <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> SpringBoot</li>
-                        <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Mybatis</li>
-                        <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Shiro</li>
-                        <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Thymeleaf</li>
-                        <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Bootstrap</li>
-                    </ul>
                     <strong th:if="${isAllowRegister}">还没有账号? <a th:href="@{/register}">立即注册&raquo;</a></strong>
                 </div>
             </div>
             <div class="col-sm-5">
                 <form id="signupForm" autocomplete="off">
-                    <h4 class="no-margins">登录:</h4>
-                    <p class="m-t-md">你若不离不弃,我必生死相依</p>
-                    <input type="text"     name="username" class="form-control uname"     placeholder="用户名" value="admin"    />
-                    <input type="password" name="password" class="form-control pword"     placeholder="密码"   value="admin123" />
+                    <h4 style="color:blue">视频会议管理系统</h4>
+                    <input type="text"     name="username" class="form-control uname"     placeholder="用户名"/>
+                    <input type="password" name="password" class="form-control pword"     placeholder="密码"/>
 					<div class="row m-t" th:if="${captchaEnabled==true}">
-						<div class="col-xs-6">
-						    <input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" />
-						</div>
-						<div class="col-xs-6">
-							<a href="javascript:void(0);" title="点击更换验证码">
-								<img th:src="@{/captcha/captchaImage(type=${captchaType})}" class="imgcode" width="85%"/>
-							</a>
-						</div>
+<!--						<div class="col-xs-6">-->
+<!--						    <input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" />-->
+<!--						</div>-->
+<!--						<div class="col-xs-6">-->
+<!--							<a href="javascript:void(0);" title="点击更换验证码">-->
+<!--								<img th:src="@{/captcha/captchaImage(type=${captchaType})}" class="imgcode" width="85%"/>-->
+<!--							</a>-->
+<!--						</div>-->
 					</div>
-                    <div class="checkbox-custom" th:if="${isRemembered}" th:classappend="${captchaEnabled==false} ? 'm-t'">
-				        <input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme">记住我</label>
+            <div class="checkbox-custom" th:if="${isRemembered}" th:classappend="${captchaEnabled==false} ? 'm-t'">
+				        <input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme" style="color:black">记住我</label>
 				    </div>
                     <button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍候...">登录</button>
                 </form>
             </div>
         </div>
-        <div class="signup-footer">
-            <div class="pull-left">
-                Copyright © 2018-2023 ruoyi.vip All Rights Reserved. <br>
-            </div>
-        </div>
     </div>
 <script th:inline="javascript"> var ctx = [[@{/}]]; var captchaType = [[${captchaType}]]; </script>
 <!--[if lte IE 8]><script>window.location.href=ctx+'html/ie.html';</script><![endif]-->

文件差异内容过多而无法显示
+ 0 - 1610
ruoyi-admin/src/main/resources/templates/main.html