Răsfoiți Sursa

video notify

x1ongzhu 7 ani în urmă
părinte
comite
4358182bb4

+ 3 - 1
src/main/java/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.java

@@ -196,8 +196,10 @@ public class VideoRecognitionServiceImpl implements VideoRecognitionService {
                                 InputStream in = new ByteArrayInputStream(bytes);
                                 String path = String.format("images/%s-%s.jpg", new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss").format(new Date()), UUID.randomUUID().toString());
                                 String url = ossFileService.upload(in, path);
-                                playerInfo.setImage(url);
                                 playerInfo.setStatusFlag(6);
+                                playerInfo.setImage(url);
+                                playerInfo.setRanking(Integer.valueOf(rank.replace("第", "")));
+                                playerInfo.setLiveTime(time);
                                 playerInfoService.updatePlayerInfo(playerInfo);
                                 break;
                             }

+ 4 - 0
src/main/vue/build/webpack.base.conf.js

@@ -69,6 +69,10 @@ module.exports = {
                     limit: 10000,
                     name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
                 }
+            },
+            {
+                test: /\.(swf|ttf|eot|svg|woff(2))(\?[a-z0-9]+)?$/,
+                loader: 'file-loader',
             }
         ]
     },

+ 4 - 1
src/main/vue/src/entries/admin.html

@@ -9,6 +9,9 @@
     <link rel="icon" href="/static/favicon.ico" />
     <script src="/static/polyfill.min.js"></script>
     <script src="/static/fontawesome-v5.2.0.js"></script>
+    <link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet">
+    <script src="https://vjs.zencdn.net/7.4.1/video.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/videojs-flash@2/dist/videojs-flash.min.js"></script>
 </head>
 
 <body>
@@ -16,4 +19,4 @@
     <!-- built files will be auto injected -->
 </body>
 
-</html>
+</html>

+ 0 - 1
src/main/vue/src/entries/admin.js

@@ -8,7 +8,6 @@ import MultiUpload from '../components/MultiUpload'
 import SingleUpload from '../components/SingleUpload'
 import VueI18n from 'vue-i18n'
 import VueAMap from 'vue-amap'
-import 'video.js/dist/video-js.css'
 import 'normalize.css/normalize.css'
 import 'element-ui/lib/theme-chalk/index.css'
 import '../main.less'

+ 405 - 376
src/main/vue/src/pages/PlayerInfos.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div class="filters-container">
-        
+
             <el-input placeholder="关键字" size="small" v-model="filter1" clearable class="filter-item"></el-input>
             <el-button @click="searchData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
             </el-button>
@@ -28,184 +28,187 @@
             </el-dropdown>
         </div>
         <el-table
-                :data="tableData"
-                :height="tableHeight"
-                row-key="id"
-                ref="table">
+            :data="tableData"
+            :height="tableHeight"
+            row-key="id"
+            ref="table">
+            <el-table-column
+                v-if="multipleMode"
+                align="center"
+                type="selection"
+                width="50">
+            </el-table-column>
+            <el-table-column
+                type="index"
+                min-width="50"
+                align="center">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('id')"
+                prop="id"
+                label="ID"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('gameId')"
+                prop="gameId"
+                label="游戏ID"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('houseId')"
+                prop="houseId"
+                label="房间ID"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('joinTime')"
+                prop="joinTime"
+                label="加入时间"
+                :formatter="DateTimeFormatter"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('principal')"
+                prop="principal"
+                label="本金"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('bonus')"
+                prop="bonus"
+                label="奖金"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('userId')"
+                prop="userId"
+                label="用户"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('remark')"
+                prop="remark"
+                label="备注"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('image')"
+                prop="image"
+                label="截图"
+                min-width="200">
+                <template slot-scope="{row}">
+                    <img :src="row.image" @click="showImg(row.image)"
+                         style="width: 160px;height: 90px;vertical-align: middle;"/>
+                </template>
+
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('killNumber')"
+                prop="killNumber"
+                label="击败玩家"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('ranking')"
+                prop="ranking"
+                label="游戏排名"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('beginTime')"
+                prop="beginTime"
+                label="开始时间"
+                :formatter="DateTimeFormatter"
+                min-width="100">
+            </el-table-column>
+
             <el-table-column
-                    v-if="multipleMode"
-                    align="center"
-                    type="selection"
-                    width="50">
+                v-if="isColumnShow('endTime')"
+                prop="endTime"
+                label="结束时间"
+                :formatter="DateTimeFormatter"
+                min-width="100">
             </el-table-column>
+
             <el-table-column
-                    type="index"
-                    min-width="50"
-                    align="center">
+                v-if="isColumnShow('statusFlag')"
+                prop="statusFlag"
+                label="状态"
+                min-width="100">
             </el-table-column>
-                            
-                                            <el-table-column
-                                v-if="isColumnShow('id')"
-                                prop="id"
-                                label="ID"
-                                min-width="100">
-                        </el-table-column>
-                                                                                                                                                                                                            
-                                            <el-table-column
-                                v-if="isColumnShow('gameId')"
-                                prop="gameId"
-                                label="游戏ID"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('houseId')"
-                                prop="houseId"
-                                label="房间ID"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('joinTime')"
-                                prop="joinTime"
-                                label="加入时间"
-                                :formatter="DateTimeFormatter"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('principal')"
-                                prop="principal"
-                                label="本金"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('bonus')"
-                                prop="bonus"
-                                label="奖金"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('userId')"
-                                prop="userId"
-                                label="用户"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('remark')"
-                                prop="remark"
-                                label="备注"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('image')"
-                                prop="image"
-                                label="截图"
-                                min-width="100">
-                            <template slot-scope="{row}">
-                                <img :src="row.image" @click="showImg(row.image)" style="width: 100px;height: 100px;vertical-align: middle;" />
-                            </template>
-
-                        </el-table-column>
-                                                                    
-                                            <el-table-column
-                                v-if="isColumnShow('killNumber')"
-                                prop="killNumber"
-                                label="击败玩家"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('ranking')"
-                                prop="ranking"
-                                label="游戏排名"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('beginTime')"
-                                prop="beginTime"
-                                label="开始时间"
-                                :formatter="DateTimeFormatter"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('endTime')"
-                                prop="endTime"
-                                label="结束时间"
-                                :formatter="DateTimeFormatter"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('statusFlag')"
-                                prop="statusFlag"
-                                label="状态"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('examineUser')"
-                                prop="examineUser"
-                                label="审核人"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('examineTime')"
-                                prop="examineTime"
-                                label="审核时间"
-                                :formatter="DateTimeFormatter"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('examineType')"
-                                prop="examineType"
-                                label="审核类型"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('video')"
-                                prop="video"
-                                label="视频地址"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('liveTime')"
-                                prop="liveTime"
-                                label="存活时长"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('gameType')"
-                                prop="gameType"
-                                label="游戏类型"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('seasonId')"
-                                prop="seasonId"
-                                label="赛季ID"
-                                min-width="100">
-                        </el-table-column>
-                                                            <el-table-column
-                    label="操作"
-                    align="center"
-                    fixed="right"
-                    min-width="150"
-            >
+
+            <el-table-column
+                v-if="isColumnShow('examineUser')"
+                prop="examineUser"
+                label="审核人"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('examineTime')"
+                prop="examineTime"
+                label="审核时间"
+                :formatter="DateTimeFormatter"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('examineType')"
+                prop="examineType"
+                label="审核类型"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('video')"
+                prop="video"
+                label="视频地址"
+                min-width="200">
+                <template slot-scope="{row}">
+                    <el-button type="text" size="small" @click="play(row.video)">{{row.video}}</el-button>
+                </template>
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('liveTime')"
+                prop="liveTime"
+                label="存活时长"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('gameType')"
+                prop="gameType"
+                label="游戏类型"
+                min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                v-if="isColumnShow('seasonId')"
+                prop="seasonId"
+                label="赛季ID"
+                min-width="100">
+            </el-table-column>
+            <el-table-column
+                label="操作"
+                align="center"
+                fixed="right"
+                min-width="150">
                 <template slot-scope="scope">
-                            <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
+                    <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
                     <el-button @click="deleteRow(scope.row)" type="danger" size="mini" plain>删除</el-button>
                 </template>
             </el-table-column>
@@ -220,14 +223,14 @@
                 </el-button-group>
             </div>
             <el-pagination
-                    background
-                    @size-change="pageSizeChange"
-                    @current-change="currentPageChange"
-                    :current-page="currentPage"
-                    :page-sizes="[10, 20, 30, 40, 50]"
-                    :page-size="pageSize"
-                    layout="total, sizes, prev, pager, next, jumper"
-                    :total="totalNumber">
+                background
+                @size-change="pageSizeChange"
+                @current-change="currentPageChange"
+                :current-page="currentPage"
+                :page-sizes="[10, 20, 30, 40, 50]"
+                :page-size="pageSize"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="totalNumber">
             </el-pagination>
         </div>
         <el-dialog title="高级查询" :visible.sync="showAdvancedQueryDialog">
@@ -318,13 +321,17 @@
         <el-dialog title="查看图片" :visible.sync="imageDialogVisible" size="small">
             <img width="100%" :src="imgSrc" alt="">
         </el-dialog>
-
+        <el-dialog title="查看视频" :visible.sync="videoDialogVisible" size="small" :before-close="beforeVideoClose">
+            <video class="video-js" ref="video"></video>
+        </el-dialog>
     </div>
 </template>
 <script>
     import {mapState} from 'vuex'
     import {format} from 'date-fns'
     import zh from 'date-fns/locale/zh_cn'
+    import videojs from 'video.js'
+    import 'videojs-flash'
 
     export default {
         created() {
@@ -340,112 +347,112 @@
                 filter1: '',
                 filter2: '',
                 tableColumns: [
-                                                                        {
-                                label: 'ID',
-                                value: 'id',
-                                show: true
-                            },
-                                                                                                                                                                                                                                                                                                                            {
-                                label: '游戏ID',
-                                value: 'gameId',
-                                show: true
-                            },
-                                                                                                {
-                                label: '房间ID',
-                                value: 'houseId',
-                                show: true
-                            },
-                                                                                                {
-                                label: '加入时间',
-                                value: 'joinTime',
-                                show: true
-                            },
-                                                                                                {
-                                label: '本金',
-                                value: 'principal',
-                                show: true
-                            },
-                                                                                                {
-                                label: '奖金',
-                                value: 'bonus',
-                                show: true
-                            },
-                                                                                                {
-                                label: '用户',
-                                value: 'userId',
-                                show: true
-                            },
-                                                                                                {
-                                label: '备注',
-                                value: 'remark',
-                                show: true
-                            },
-                                                                                                {
-                                label: '截图',
-                                value: 'image',
-                                show: true
-                            },
-                                                                                                {
-                                label: '击败玩家',
-                                value: 'killNumber',
-                                show: true
-                            },
-                                                                                                {
-                                label: '游戏排名',
-                                value: 'ranking',
-                                show: true
-                            },
-                                                                                                {
-                                label: '开始时间',
-                                value: 'beginTime',
-                                show: true
-                            },
-                                                                                                {
-                                label: '结束时间',
-                                value: 'endTime',
-                                show: true
-                            },
-                                                                                                {
-                                label: '状态',
-                                value: 'statusFlag',
-                                show: true
-                            },
-                                                                                                {
-                                label: '审核人',
-                                value: 'examineUser',
-                                show: true
-                            },
-                                                                                                {
-                                label: '审核时间',
-                                value: 'examineTime',
-                                show: true
-                            },
-                                                                                                {
-                                label: '审核类型',
-                                value: 'examineType',
-                                show: true
-                            },
-                                                                                                {
-                                label: '视频地址',
-                                value: 'video',
-                                show: true
-                            },
-                                                                                                {
-                                label: '存活时长',
-                                value: 'liveTime',
-                                show: true
-                            },
-                                                                                                {
-                                label: '游戏类型',
-                                value: 'gameType',
-                                show: true
-                            },
-                                                                                                {
-                                label: '赛季ID',
-                                value: 'seasonId',
-                                show: true
-                            },
-                                                            ],
+                    {
+                        label: 'ID',
+                        value: 'id',
+                        show: true
+                    },
+                    {
+                        label: '游戏ID',
+                        value: 'gameId',
+                        show: true
+                    },
+                    {
+                        label: '房间ID',
+                        value: 'houseId',
+                        show: true
+                    },
+                    {
+                        label: '加入时间',
+                        value: 'joinTime',
+                        show: true
+                    },
+                    {
+                        label: '本金',
+                        value: 'principal',
+                        show: true
+                    },
+                    {
+                        label: '奖金',
+                        value: 'bonus',
+                        show: true
+                    },
+                    {
+                        label: '用户',
+                        value: 'userId',
+                        show: true
+                    },
+                    {
+                        label: '备注',
+                        value: 'remark',
+                        show: true
+                    },
+                    {
+                        label: '截图',
+                        value: 'image',
+                        show: true
+                    },
+                    {
+                        label: '击败玩家',
+                        value: 'killNumber',
+                        show: true
+                    },
+                    {
+                        label: '游戏排名',
+                        value: 'ranking',
+                        show: true
+                    },
+                    {
+                        label: '开始时间',
+                        value: 'beginTime',
+                        show: true
+                    },
+                    {
+                        label: '结束时间',
+                        value: 'endTime',
+                        show: true
+                    },
+                    {
+                        label: '状态',
+                        value: 'statusFlag',
+                        show: true
+                    },
+                    {
+                        label: '审核人',
+                        value: 'examineUser',
+                        show: true
+                    },
+                    {
+                        label: '审核时间',
+                        value: 'examineTime',
+                        show: true
+                    },
+                    {
+                        label: '审核类型',
+                        value: 'examineType',
+                        show: true
+                    },
+                    {
+                        label: '视频地址',
+                        value: 'video',
+                        show: true
+                    },
+                    {
+                        label: '存活时长',
+                        value: 'liveTime',
+                        show: true
+                    },
+                    {
+                        label: '游戏类型',
+                        value: 'gameType',
+                        show: true
+                    },
+                    {
+                        label: '赛季ID',
+                        value: 'seasonId',
+                        show: true
+                    },
+                ],
                 multipleMode: false,
                 showAdvancedQueryDialog: false,
                 advancedQueryFields: [],
@@ -453,95 +460,97 @@
                 tableSortFields: [],
                 searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
                 advancedQueryColumns: [
-                                                                        {
-                                label: 'ID',
-                                value: 'id'
-                            },
-                                                                                                                                                                                                                                                                                                                            {
-                                label: '游戏ID',
-                                value: 'game_id'
-                            },
-                                                                                                {
-                                label: '房间ID',
-                                value: 'house_id'
-                            },
-                                                                                                {
-                                label: '加入时间',
-                                value: 'join_time'
-                            },
-                                                                                                {
-                                label: '本金',
-                                value: 'principal'
-                            },
-                                                                                                {
-                                label: '奖金',
-                                value: 'bonus'
-                            },
-                                                                                                {
-                                label: '用户',
-                                value: 'user_id'
-                            },
-                                                                                                {
-                                label: '备注',
-                                value: 'remark'
-                            },
-                                                                                                {
-                                label: '截图',
-                                value: 'image'
-                            },
-                                                                                                {
-                                label: '击败玩家',
-                                value: 'kill_number'
-                            },
-                                                                                                {
-                                label: '游戏排名',
-                                value: 'ranking'
-                            },
-                                                                                                {
-                                label: '开始时间',
-                                value: 'begin_time'
-                            },
-                                                                                                {
-                                label: '结束时间',
-                                value: 'end_time'
-                            },
-                                                                                                {
-                                label: '状态',
-                                value: 'status_flag'
-                            },
-                                                                                                {
-                                label: '审核人',
-                                value: 'examine_user'
-                            },
-                                                                                                {
-                                label: '审核时间',
-                                value: 'examine_time'
-                            },
-                                                                                                {
-                                label: '审核类型',
-                                value: 'examine_type'
-                            },
-                                                                                                {
-                                label: '视频地址',
-                                value: 'video'
-                            },
-                                                                                                {
-                                label: '存活时长',
-                                value: 'live_time'
-                            },
-                                                                                                {
-                                label: '游戏类型',
-                                value: 'game_type'
-                            },
-                                                                                                {
-                                label: '赛季ID',
-                                value: 'season_id'
-                            },
-                                                            ],
+                    {
+                        label: 'ID',
+                        value: 'id'
+                    },
+                    {
+                        label: '游戏ID',
+                        value: 'game_id'
+                    },
+                    {
+                        label: '房间ID',
+                        value: 'house_id'
+                    },
+                    {
+                        label: '加入时间',
+                        value: 'join_time'
+                    },
+                    {
+                        label: '本金',
+                        value: 'principal'
+                    },
+                    {
+                        label: '奖金',
+                        value: 'bonus'
+                    },
+                    {
+                        label: '用户',
+                        value: 'user_id'
+                    },
+                    {
+                        label: '备注',
+                        value: 'remark'
+                    },
+                    {
+                        label: '截图',
+                        value: 'image'
+                    },
+                    {
+                        label: '击败玩家',
+                        value: 'kill_number'
+                    },
+                    {
+                        label: '游戏排名',
+                        value: 'ranking'
+                    },
+                    {
+                        label: '开始时间',
+                        value: 'begin_time'
+                    },
+                    {
+                        label: '结束时间',
+                        value: 'end_time'
+                    },
+                    {
+                        label: '状态',
+                        value: 'status_flag'
+                    },
+                    {
+                        label: '审核人',
+                        value: 'examine_user'
+                    },
+                    {
+                        label: '审核时间',
+                        value: 'examine_time'
+                    },
+                    {
+                        label: '审核类型',
+                        value: 'examine_type'
+                    },
+                    {
+                        label: '视频地址',
+                        value: 'video'
+                    },
+                    {
+                        label: '存活时长',
+                        value: 'live_time'
+                    },
+                    {
+                        label: '游戏类型',
+                        value: 'game_type'
+                    },
+                    {
+                        label: '赛季ID',
+                        value: 'season_id'
+                    },
+                ],
                 advancedQuerySearchKey: '',
                 orderByStr: '',
                 imgSrc: '',
                 imageDialogVisible: false,
+                videoDialogVisible: false,
+                player: null
             }
         },
         computed: {
@@ -687,7 +696,7 @@
             },
             exportExcel() {
                 window.location.href = this.$baseUrl + "/playerInfo/exportExcel?searchKey="
-                        + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey+"&orderByStr=" + this.orderByStr;
+                    + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey + "&orderByStr=" + this.orderByStr;
             },
             searchData() {
                 this.currentPage = 1;
@@ -726,7 +735,27 @@
                 this.imgSrc = img;
                 this.imageDialogVisible = true;
             },
-
+            play(path) {
+                this.videoDialogVisible = true;
+                this.$nextTick(() => {
+                    let url = path.replace("/var", "http://49.4.66.233:8080");
+                    console.log(url);
+                    this.player = videojs(this.$refs.video, {
+                        height: '360',
+                        sources: [{
+                            type: "video/flv",
+                            src: url
+                        }],
+                        techOrder: ['flash'],
+                        autoplay: true,
+                        controls: true
+                    });
+                });
+            },
+            beforeVideoClose(done) {
+                this.player.dispose();
+                done();
+            }
         }
     }
 </script>

+ 2 - 3
src/main/vue/src/pages/VideoTest.vue

@@ -5,7 +5,7 @@
             <el-button @click="start" size="small" :loading="starting">start</el-button>
         </div>
         <br>
-        <video ref="video" style="position: relative"></video>
+        <video ref="video" class="video-js" style="position: relative"></video>
         <el-dialog :visible.sync="showResultDialog" width="50%">
             <span style="font-size: 30px;">{{result?result.rank:''}} / {{result?result.time:''}}</span>
             <img :src="result?result.frame:''" style="width: 100%;">
@@ -18,10 +18,9 @@
 </template>
 
 <script>
-    import _videojs from 'video.js'
+    import videojs from 'video.js'
     import 'videojs-flash'
 
-    const videojs = window.videojs || _videojs;
     export default {
         data() {
             return {