honghengqiang 3 years ago
parent
commit
3161ddf51e

+ 36 - 0
baseswago/src/main/java/com/swago/baseswago/inter/RoomApi.kt

@@ -1,5 +1,6 @@
 package com.swago.baseswago.inter
 
+import com.swago.baseswago.model.RedEnvelope
 import com.swago.baseswago.model.live.*
 import com.swago.baseswago.model.live.game.GameListModel
 import com.swago.baseswago.model.live.gift.GiftAllModel
@@ -127,4 +128,39 @@ interface RoomApi {
     @POST("/v1/rtc/broadcast/share/link")
     suspend fun getShareConfig():ShareConfig
 
+    /**
+     * 获取直播间配置
+     */
+    @POST("/v1/rtc/broadcast/setting")
+    suspend fun getRoomConfig():RoomConfig
+
+    /**
+     * 获取红包列表
+     */
+    @FormUrlEncoded
+    @POST("/v1/rtc/broadcast/package/list")
+    suspend fun getRedEnvelopeList(@Field("room_id")room_id:String):List<RedEnvelope>
+
+
+    /**
+     * 发送红包接口
+     */
+    @FormUrlEncoded
+    @POST("/v1/rtc/broadcast/send/package")
+    suspend fun sendRedEnvelope(@Field("room_id")room_id:String,
+                                @Field("package_total_coins")package_total_coins:String,
+                                @Field("package_total_num")package_total_num:Int,):Any
+
+
+    /**
+     * 领取红包接口
+     */
+    @FormUrlEncoded
+    @POST("/v1/rtc/broadcast/receive/package")
+    suspend fun getRedEnvelopeCoin(@Field("room_id")room_id:String,
+                                   @Field("package_id")package_id:String):RedEnvelopeResult
+
+
+
+
 }

+ 11 - 0
baseswago/src/main/java/com/swago/baseswago/model/RedEnvelope.kt

@@ -0,0 +1,11 @@
+package com.swago.baseswago.model
+
+/**
+ *@date 2022/4/11 22:04
+ *description:
+ */
+data class RedEnvelope(
+    val id:String="",
+    val cold_time:Int,//抢红包倒计时
+    val receive_time:Int,//红包结束倒计时
+)

+ 9 - 0
baseswago/src/main/java/com/swago/baseswago/model/live/RedEnvelopeResult.kt

@@ -0,0 +1,9 @@
+package com.swago.baseswago.model.live
+
+/**
+ *@date 2022/4/11 22:26
+ *description:领取红包结果
+ */
+data class RedEnvelopeResult(
+    val coin: String = "",
+    )

+ 22 - 0
baseswago/src/main/java/com/swago/baseswago/model/live/RoomConfig.kt

@@ -0,0 +1,22 @@
+package com.swago.baseswago.model.live
+
+/**
+ *@date 2022/4/11 21:53
+ *description:
+ */
+data class RoomConfig(
+    var banners: List<Banner>?,
+    var red_packet: Package?
+)
+
+data class Banner(
+    var rotation_img_url: String="",
+    var rotation_url: String=""
+)
+
+data class Package(
+    var all_notice_coins: Int?,//大群广播的金币
+    var rule: String="",
+    var total_min_coins: Int?, //最小总金额
+    var total_min_num: Int?//最小总数量
+)

+ 2 - 0
room/src/main/java/com/swago/room/base/BaseComFragment.kt

@@ -109,6 +109,8 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         setHeaderViewPosition()
         //获取礼物列表
         giftVm.getGiftList()
+        //获取直播间配置
+        roomVm.getRoomConfig()
         //飘条
         waftManager.init()
         waftManager.waftViewList.add(binding.waftView)

+ 3 - 2
room/src/main/java/com/swago/room/gift/GiftDialog.kt

@@ -46,6 +46,8 @@ class GiftDialog : BaseXDFragment<DialogGiftBinding>() {
     private var receiveId = ""
     private var receiveName = ""
 
+    private var openSendRedEnvelopeFun:(()->Unit)? = null
+
     private val gson by lazy {
         Gson()
     }
@@ -316,8 +318,7 @@ class GiftDialog : BaseXDFragment<DialogGiftBinding>() {
                         LogUtil.d("礼物id", "${gifModel.gift_name}")
                         when(gifModel.gift_mode){
                             1 -> {
-                                Toast.makeText(AppContext.getContext(), "红包", Toast.LENGTH_SHORT)
-                                    .show()
+                                openSendRedEnvelopeFun?.invoke()
                             }
                             else -> {
                                 

+ 1 - 0
room/src/main/java/com/swago/room/vm/RoomOtherVm.kt

@@ -4,6 +4,7 @@ import android.app.Application
 import android.widget.Toast
 import androidx.lifecycle.MutableLiveData
 import com.google.protobuf.Api
+import com.swago.baseswago.baseroom.SwagoRoomManager
 import com.swago.baseswago.inter.ApiManager
 import com.swago.baseswago.model.live.RankListModel
 import com.swago.baseswago.model.live.ShareConfig

+ 45 - 0
room/src/main/java/com/swago/room/vm/RoomVm.kt

@@ -229,4 +229,49 @@ class RoomVm(application: Application) : AbsRoomVm(application) {
             roomAuthLiveData.value = ApiManager.roomApi.getUserRoomAuth(roomId,userId)
         }
     }
+
+
+    /***
+     * 直播间配置
+     */
+    fun getRoomConfig(){
+        requestData {
+            val data = ApiManager.roomApi.getRoomConfig()
+        }
+    }
+
+
+    /**
+     *红包列表
+     */
+    fun getRedEnvelopeList(){
+        requestData {
+            SwagoRoomManager.iRoomInfo?.let {
+                val data = ApiManager.roomApi.getRedEnvelopeList(it.getRoomId())
+            }
+        }
+    }
+
+    /**
+     * 发红包
+     */
+    fun sendRedEnvelope(coins:String,count:Int){
+        requestData {
+            SwagoRoomManager.iRoomInfo?.let {
+                val data = ApiManager.roomApi.sendRedEnvelope(it.getRoomId(),coins,count)
+            }
+        }
+    }
+
+    /**
+     * 抢红包
+     */
+    fun getRedEnvelopeCoin(redEnvelopeId:String){
+        requestData {
+            SwagoRoomManager.iRoomInfo?.let {
+                val data = ApiManager.roomApi.getRedEnvelopeCoin(it.getRoomId(),redEnvelopeId)
+            }
+        }
+    }
+
 }