diff --git a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
index 4070e8a..45add4a 100644
--- a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
+++ b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
@@ -418,6 +418,14 @@
         return "apph5/remoteMintUIH5";}
     */
 
+    @RequestMapping("/conference/attendconference")
+    public String doAttendConference( @RequestParam(value = "userId", required = true, defaultValue = "") String userId,
+            Model model) {
+        model.addAttribute("flag",false);
+        return "apph5/conference/confresult";
+    }
+
+
 
     /**
      * App远程开门
diff --git a/src/main/resources/templates/apph5/conference/confresult.html b/src/main/resources/templates/apph5/conference/confresult.html
new file mode 100644
index 0000000..385bf47
--- /dev/null
+++ b/src/main/resources/templates/apph5/conference/confresult.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+<head>
+    <title>首页</title>
+    <!--<meta name="_csrf_header" th:content="${_csrf.headerName}" />
+    <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}" />-->
+    <meta charset="utf-8"/>
+<!--    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">-->
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <!-- 引入样式 -->
+    <!--<link rel="stylesheet" href="https://unpkg.com/mint-ui/lib/style.css">-->
+    <link rel="stylesheet" href="/static/res/assets/plugins/mintui/style.css" th:href="@{/static/res/assets/plugins/mintui/style.css}">
+    <script type="text/javascript" th:src="@{/static/res/assets/plugins/jquery/jquery.min.js}"></script>
+    <script type="text/javascript" th:src="@{/static/res/assets/plugins/layer/layer.js}"></script>
+    <!-- 先引入 Vue -->
+    <script type="text/javascript" th:src="@{/static/res/assets/plugins/nutui/vue.min.js}"></script>
+    <!-- 引入组件库 -->
+    <script type="text/javascript" th:src="@{/static/res/assets/plugins/mintui/index.js}"></script>
+
+    <!--<script src="https://unpkg.com/vue/dist/vue.js"></script>
+    <script src="https://unpkg.com/mint-ui/lib/index.js"></script>-->
+</head>
+<body   >
+<div id="app"  >
+    <div class="page-title" style="text-align:center; font-size: 24px;color: #FF8247">登记结果</div><br>
+    <div class="mintui-success" id="msg"></div>
+    <input type="hidden" id="issuccess" th:value="${issuccess}">
+</div>
+</body>
+
+<script>
+    $(function () {
+        var flag=$("#issuccess").val();
+        if(flag){
+            $("#msg").html("<p class='mintui-success'>登记成功</p>")
+        }else {
+            $("#msg").html("<p class='mintui-success'>该功能暂未开通</p>")
+        }
+
+    });
+    var mint_vue = new Vue({
+        el: '#app',
+        data:{
+            devList:[],
+            userId:'',
+            selectDevId:'',
+            devName:'',
+        },
+        methods: {
+            openDoor:function (devId) {
+                //mint_openDoor(devId);
+            },
+            loadListData:function (devName) {
+                //mint_searchByDevName(devName);
+            },
+
+        },
+        watch:{
+            devName:function(newvs,oldvs){
+
+                if(!newvs){
+                    //mint_searchByDevName('');
+                }
+            }
+        },
+        created:function() {
+            var _self = this;
+
+            var userId = '[[${userId}]]';
+            _self.userId = userId;
+
+
+        }
+    })
+
+
+
+
+
+</script>
+<style>
+    .mint-search{
+        height:50px;
+    }
+
+    .mint-searchbar{
+        padding:1px 1px 1px 1px;
+        box-sizing: border-box
+    }
+</style>
+</html>
