panhui %!s(int64=6) %!d(string=hai) anos
pai
achega
41fc6a31a1
Modificáronse 5 ficheiros con 105 adicións e 20 borrados
  1. 1 1
      lib/main.dart
  2. 8 1
      lib/model/SystemNotice.dart
  3. 17 6
      lib/model/SystemNotice.g.dart
  4. 62 5
      lib/pages/TipList.dart
  5. 17 7
      lib/pages/roomInfo.dart

+ 1 - 1
lib/main.dart

@@ -61,7 +61,7 @@ void main() async {
   final prefs = await SharedPreferences.getInstance();
   final prefs = await SharedPreferences.getInstance();
   print(prefs.getString('token'));
   print(prefs.getString('token'));
   HttpManager.token = prefs.getString('token') ??
   HttpManager.token = prefs.getString('token') ??
-      "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJkZWM2OTMxMy01Yjc3LTRlMTctOTcwOC0wYTZhM2JhZmZhM2EiLCJpc3MiOiJhZG1pbiIsImlhdCI6MTU1MTA3OTMzMCwic3ViIjoiODQ3MDMiLCJleHAiOjE1NTEzMzg1MzB9.6olL1T38rYRLBwKtTbFSI4cEMAbQf4iWVr1xXLObu8g";
+      "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI0NWY0OGY2NS1jODQxLTRjNDgtYmY0My1jYTAwYzlkZjk5OWQiLCJpc3MiOiJhZG1pbiIsImlhdCI6MTU1MTMxNzAzMCwic3ViIjoiODQ3MDIiLCJleHAiOjE1NTE1NzYyMzB9.ILhuOwvblQKqVxNaLk9CbYas6aoUQAlzlZrTk4VLqY8";
   Result result = await HttpManager.get("userInfo/getUserInfo");
   Result result = await HttpManager.get("userInfo/getUserInfo");
   AppState state = AppState.empty();
   AppState state = AppState.empty();
   if (result.success && result.data != null) {
   if (result.success && result.data != null) {

+ 8 - 1
lib/model/SystemNotice.dart

@@ -1,10 +1,12 @@
 import 'package:json_annotation/json_annotation.dart';
 import 'package:json_annotation/json_annotation.dart';
+import 'GameInfo.dart';
+import 'HouseInfo.dart';
 
 
 part 'SystemNotice.g.dart';
 part 'SystemNotice.g.dart';
 
 
 @JsonSerializable()
 @JsonSerializable()
 class SystemNotice {
 class SystemNotice {
-  SystemNotice(this.id, this.gameId, this.houseId, this.userId,this.seasonId,this.content,this.icon,this.statusFlag,this.createTime);
+  SystemNotice(this.id, this.gameId, this.houseId, this.userId,this.seasonId,this.content,this.icon,this.typeFlag,this.statusFlag,this.createTime,this.playerId,this.gameInfo,this.houseInfo);
   int id;
   int id;
   int gameId;//游戏ID
   int gameId;//游戏ID
   int houseId;//房间ID
   int houseId;//房间ID
@@ -12,8 +14,13 @@ class SystemNotice {
   int seasonId;//赛季ID
   int seasonId;//赛季ID
   String content;//内容
   String content;//内容
   String icon;//图标
   String icon;//图标
+  int typeFlag;//类型
   int statusFlag;//状态
   int statusFlag;//状态
   int createTime;//创建时间
   int createTime;//创建时间
+  int playerId;//玩家id
+  GameInfo gameInfo;//游戏信息
+  HouseInfo houseInfo;//房间信息
+
   factory SystemNotice.fromJson(Map<String, dynamic> json) =>
   factory SystemNotice.fromJson(Map<String, dynamic> json) =>
       _$SystemNoticeFromJson(json);
       _$SystemNoticeFromJson(json);
 
 

+ 17 - 6
lib/model/SystemNotice.g.dart

@@ -15,8 +15,12 @@ SystemNotice _$SystemNoticeFromJson(Map<String, dynamic> json) {
       json['seasonId'] as int,
       json['seasonId'] as int,
       json['content'] as String,
       json['content'] as String,
       json['icon'] as String,
       json['icon'] as String,
+      json['typeFlag'] as int,
       json['statusFlag'] as int,
       json['statusFlag'] as int,
-      json['createTime'] as int);
+      json['createTime'] as int,
+      json['playerId'] as int,
+      GameInfo.fromJson((json['gameInfo']!=null?json['gameInfo']:"") as Map),
+      HouseInfo.fromJson(json['houseInfo'] as Map));
 }
 }
 
 
 // int id;
 // int id;
@@ -26,17 +30,24 @@ SystemNotice _$SystemNoticeFromJson(Map<String, dynamic> json) {
 //   int seasonId;//赛季ID
 //   int seasonId;//赛季ID
 //   String content;//内容
 //   String content;//内容
 //   String icon;//图标
 //   String icon;//图标
-//   int statusFlag;//状态
+//   in typeFlag;//0.普通1.比赛结果2.领取奖励
+//   int statusFlag;//状态 0.未读1.已读
 //   int createTime;//创建时间
 //   int createTime;//创建时间
+// GameInfo gameInfo;//游戏信息
+// HouseInfo houseInfo;//房间信息
 Map<String, dynamic> _$SystemNoticeToJson(SystemNotice instance) =>
 Map<String, dynamic> _$SystemNoticeToJson(SystemNotice instance) =>
     <String, dynamic>{
     <String, dynamic>{
       'id': instance.id,
       'id': instance.id,
-      'gameId': instance.gameId,
-      'houseId': instance.houseId,
+      'gameId': instance.gameId != null ? instance.gameId : 0,
+      'houseId': instance.houseId != null ? instance.houseId : 0,
       'userId': instance.userId,
       'userId': instance.userId,
-      'seasonId': instance.seasonId,
-      'icon': instance.icon,
+      'seasonId': instance.seasonId != null ? instance.seasonId : 0,
+      'icon': instance.icon != null ? instance.icon : '',
+      'typeFlag': instance.typeFlag,
       'content': instance.content,
       'content': instance.content,
       'statusFlag': instance.statusFlag,
       'statusFlag': instance.statusFlag,
       'createTime': instance.createTime,
       'createTime': instance.createTime,
+      'playerId': instance.playerId != null ? instance.playerId : 0,
+      'gameInfo': instance.gameInfo != null ? instance.gameInfo : Map(),
+      'HouseInfo': instance.houseInfo != null ? instance.houseInfo : Map(),
     };
     };

+ 62 - 5
lib/pages/TipList.dart

@@ -2,6 +2,11 @@ import 'package:flutter/material.dart';
 import '../styles/colors.dart';
 import '../styles/colors.dart';
 import 'dart:ui';
 import 'dart:ui';
 import '../styles/totast.dart';
 import '../styles/totast.dart';
+import 'package:flutter_redux/flutter_redux.dart';
+import '../redux/AppState.dart';
+import '../model/SystemNotice.dart';
+import '../net/HttpManager.dart';
+import '../net/Result.dart';
 
 
 class TipList extends StatefulWidget {
 class TipList extends StatefulWidget {
   @override
   @override
@@ -9,7 +14,56 @@ class TipList extends StatefulWidget {
 }
 }
 
 
 class TipListState extends State<TipList> {
 class TipListState extends State<TipList> {
-  
+  int currentPage = 1;
+  List<SystemNotice> tipList = [];
+  bool isMore = false;
+  ScrollController _mControll;
+
+  void getListPage() async {
+    isMore = false;
+    Toast.show(context, '加载中', -1, 'loading');
+    Result res = await HttpManager.get("systemNotice/page", data: {
+      "userId": StoreProvider.of<AppState>(context).state.userInfo.id,
+      "currentPage": currentPage,
+      "pageNumber": 20
+    });
+    Toast.hide();
+    List<SystemNotice> list = tipList;
+    if (currentPage == 1) {
+      list = [];
+    }
+    if (res.success) {
+      for (var item in res.data['pp']) {
+        print(item);
+        SystemNotice tip = SystemNotice.fromJson(item);
+        list.add(tip);
+      }
+      if (res.data['page']['currentPage'] < res.data['page']['totalPage']) {
+        isMore = true;
+      }
+    } else {}
+    setState(() {
+      tipList = list;
+    });
+    print(tipList);
+  }
+
+  @override
+  void initState() {
+    // TODO: implement initState
+    super.initState();
+    _mControll = new ScrollController();
+
+    Future.delayed(Duration(milliseconds: 100), () => getListPage());
+  }
+
+  @override
+  void dispose() {
+    // TODO: implement dispose
+    super.dispose();
+    _mControll.dispose();
+  }
+
   @override
   @override
   Widget build(BuildContext context) {
   Widget build(BuildContext context) {
     return new WillPopScope(
     return new WillPopScope(
@@ -25,10 +79,14 @@ class TipListState extends State<TipList> {
               backgroundColor: BG_COLOR,
               backgroundColor: BG_COLOR,
               onRefresh: () async {
               onRefresh: () async {
                 await new Future.delayed(const Duration(seconds: 1));
                 await new Future.delayed(const Duration(seconds: 1));
+                int currentPage = 1;
+                getListPage();
               },
               },
               child: Container(
               child: Container(
                 color: BG_COLOR,
                 color: BG_COLOR,
                 child: ListView.builder(
                 child: ListView.builder(
+                    physics: AlwaysScrollableScrollPhysics(),
+                    controller: _mControll,
                     itemCount: 3,
                     itemCount: 3,
                     itemBuilder: (BuildContext context, int index) {
                     itemBuilder: (BuildContext context, int index) {
                       return TipItem();
                       return TipItem();
@@ -43,10 +101,9 @@ class TipListState extends State<TipList> {
   }
   }
 }
 }
 
 
-class TipItem extends StatelessWidget{
-   @override
+class TipItem extends StatelessWidget {
+  @override
   Widget build(BuildContext context) {
   Widget build(BuildContext context) {
-
+    return Container();
   }
   }
 }
 }
-

+ 17 - 7
lib/pages/roomInfo.dart

@@ -1,17 +1,13 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import '../styles/colors.dart';
 import '../styles/colors.dart';
-import 'package:dio/dio.dart';
-import '../styles/api.dart';
 import 'dart:ui';
 import 'dart:ui';
-import 'dart:convert';
+import '../plugins/ScreenStramPlugin.dart';
 import '../net/HttpManager.dart';
 import '../net/HttpManager.dart';
 import '../net/Result.dart';
 import '../net/Result.dart';
 import 'package:flutter_redux/flutter_redux.dart';
 import 'package:flutter_redux/flutter_redux.dart';
 import '../redux/AppState.dart';
 import '../redux/AppState.dart';
 import '../model/HouseInfo.dart';
 import '../model/HouseInfo.dart';
-import '../net/HttpManager.dart';
-import '../net/Result.dart';
 import '../styles/totast.dart';
 import '../styles/totast.dart';
 import 'StartWindow.dart';
 import 'StartWindow.dart';
 import '../model/PlayerInfo.dart';
 import '../model/PlayerInfo.dart';
@@ -99,6 +95,12 @@ class RoomInfoState extends State<RoomInfo>
     if (res.success) {
     if (res.success) {
       if (data['statusFlag'] == 2) {
       if (data['statusFlag'] == 2) {
         //加入比赛成功,开始录屏
         //加入比赛成功,开始录屏
+        bool success = await ScreenStreamPlugin.start(
+            'rtmp://49.4.66.233:1935/myapp/' +
+                playerInfo.userId.toString() +
+                '?playerInfoId=' +
+                playerInfo.id.toString());
+        print('stream screen:' + success.toString());
         Future.delayed(Duration(milliseconds: 100), () => showSucessInfo());
         Future.delayed(Duration(milliseconds: 100), () => showSucessInfo());
       } else {
       } else {
         // showBackDialog();
         // showBackDialog();
@@ -124,9 +126,13 @@ class RoomInfoState extends State<RoomInfo>
           actions: <Widget>[
           actions: <Widget>[
             new FlatButton(
             new FlatButton(
               child: new Text('完成比赛'),
               child: new Text('完成比赛'),
-              onPressed: () {
+              onPressed: () async {
+                Toast.show(context, '加载中', -1, 'loading');
                 HttpManager.post("playerInfo/update",
                 HttpManager.post("playerInfo/update",
                     data: {'id': playerInfo.id, 'statusFlag': 3});
                     data: {'id': playerInfo.id, 'statusFlag': 3});
+                bool success = await ScreenStreamPlugin.stop();
+                print('stop stream screen:' + success.toString());
+                Toast.hide();
                 Navigator.of(context).pop();
                 Navigator.of(context).pop();
               },
               },
             ),
             ),
@@ -700,7 +706,11 @@ class RankContentState extends State<RankContent> {
             mainAxisAlignment: MainAxisAlignment.center,
             mainAxisAlignment: MainAxisAlignment.center,
             children: <Widget>[
             children: <Widget>[
               Image.asset('images/icon_jinbi_xiao_hong.png', width: 20),
               Image.asset('images/icon_jinbi_xiao_hong.png', width: 20),
-              Text('x' + (topList[_num - 1].bonus!=null?topList[_num - 1].bonus.toString():'0'),
+              Text(
+                  'x' +
+                      (topList[_num - 1].bonus != null
+                          ? topList[_num - 1].bonus.toString()
+                          : '0'),
                   style: TextStyle(color: PRIMARY_COLOR, fontSize: 12))
                   style: TextStyle(color: PRIMARY_COLOR, fontSize: 12))
             ],
             ],
           )
           )