Ver Fonte

u盘上传电影广告

zhaofuxin há 4 anos atrás
pai
commit
dc51f848dc

+ 6 - 2
app/src/main/java/com/jld/vod/interfaces/remote/Apis.kt

@@ -247,7 +247,11 @@ interface Apis {
      */
     @GET("/synchronization/findResByNotUploaded/movie")
     fun findResByNotUploadedmovie(): Observable<BaseBean<List<MovieResByNotUploaded>>>
-
+    /**
+     * 获取广告未上传列表
+     */
+    @GET("/synchronization/findResByNotUploaded/advert")
+    fun findResByNotUploadedadvert(): Observable<BaseBean<List<ResByNotUploadedAdvert>>>
     /**
      * 获取该车辆所有站点信息
      */
@@ -327,7 +331,7 @@ interface Apis {
      * 获取电影广告
      */
     @GET("/advert/findMovieAdvert")
-    fun findMovieAdvert(): Observable<BaseBean<List<String>>>
+    fun findMovieAdvert(): Observable<BaseBean<List<ResByNotUploadedAdvert>>>
 
 
     /**

+ 15 - 0
app/src/main/java/com/jld/vod/model/bean/ResByNotUploadedAdvert.kt

@@ -0,0 +1,15 @@
+package com.jld.vod.model.bean
+
+data class ResByNotUploadedAdvert(
+    val aid: Long,
+    val cid: Long,
+    val depict: String,
+    val filePath: String,
+    val fileType: Int,
+    val sid: Int,
+    val status: Int,
+    val titleName: String,
+    val type: Int,
+    val version: Int,
+    val weight: Int
+)

+ 1 - 1
app/src/main/java/com/jld/vod/service/SocketService.kt

@@ -81,7 +81,7 @@ class SocketService : Service() {
                         mGEOCustom!!.getWindow()!!.setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));
                     }
                     mGEOCustom!!.setCancelable(false)
-                    mBgCustom!!.setCanceledOnTouchOutside(false)
+                    mGEOCustom!!.setCanceledOnTouchOutside(false)
                     mGEOCustom!!.setDataList(msgs.data)
                     mGEOCustom!!.show()
                 }

+ 4 - 1
app/src/main/java/com/jld/vod/utils/http/HttpFileUtil.java

@@ -32,7 +32,10 @@ public class HttpFileUtil {
 
         //第一个参数要与Servlet中的一致
         builder.addFormDataPart("file",videopath.getName(), RequestBody.create(MediaType.parse("application/octet-stream"),videopath));
-        builder.addFormDataPart("mid",mid.toString());
+        if (mid != 123456)
+        {
+            builder.addFormDataPart("mid",mid.toString());
+        }
         builder.addFormDataPart("resId",resId.toString());
 
         MultipartBody multipartBody = builder.build();

+ 9 - 2
app/src/main/java/com/jld/vod/utils/http/RetrofitUtils.kt

@@ -286,7 +286,14 @@ object RetrofitUtils {
             .subscribe(observer, error)
         return disposable
     }
-
+    /**
+     * 获取广告未上传列表
+     */
+    fun findResByNotUploadedadvert(observer: (userBean: BaseBean<List<ResByNotUploadedAdvert>>) -> Unit, error: (t: Throwable) -> Unit): Disposable {
+        val disposable = apis.findResByNotUploadedadvert().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+                .subscribe(observer, error)
+        return disposable
+    }
     /**
      * 获取该车辆所有站点信息
      */
@@ -404,7 +411,7 @@ object RetrofitUtils {
     /**
      * 获取电影广告
      */
-    fun findMovieAdvert(observer: (userBean: BaseBean<List<String>>) -> Unit, error: (t: Throwable) -> Unit): Disposable {
+    fun findMovieAdvert(observer: (userBean: BaseBean<List<ResByNotUploadedAdvert>>) -> Unit, error: (t: Throwable) -> Unit): Disposable {
         val disposable = apis.findMovieAdvert().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
             .subscribe(observer, error)
         return disposable

+ 3 - 0
app/src/main/java/com/jld/vod/view/HomeActivity.kt

@@ -161,6 +161,9 @@ class HomeActivity : BaseActivity() {
                         val bpos = Bundle()
                         bpos.putInt("pos", pos)
                         bpos.putString("rtName", res[pos].rtName)
+
+                        LogUtils.logD("rtName"+res[pos].rtName)
+                        LogUtils.logD("rtName"+res)
                         //旋转动画
                         ratateImage!!.startSpin()
 

+ 4 - 2
app/src/main/java/com/jld/vod/view/MainActivity.kt

@@ -65,7 +65,7 @@ class MainActivity : BaseActivity() {
         "电影", "音乐", "游戏",
         "浏览器", "地图", "关于",
         "电影", "音乐", "游戏",
-        "浏览器"
+        "浏览器","点餐"
     )
     private val mItemImgs = intArrayOf(
         R.mipmap.movie, R.mipmap.music,
@@ -246,6 +246,8 @@ class MainActivity : BaseActivity() {
                         openPage("AboutFragment",null, CoreAnim.none,false)
                         //changePage("AboutFragment", null, CoreAnim.none)
                         iv_mymenu_center.setImageResource(R.mipmap.round_settings)
+                    }else if(mItemTexts[pos].equals("点餐")){
+                        openPage("OrderFragment", null, CoreAnim.none,false)
                     }
                 }
             }
@@ -363,7 +365,7 @@ class MainActivity : BaseActivity() {
                     "RES_GAME" -> {
                         openPage(GameFragment::class.java)
                     }
-                    "RES_BROWSER" -> {
+                    "RES_NETWORK" -> {
                         openPage(BrowserFragment::class.java)
                     }
                     "RES_MAP" -> {

+ 123 - 27
app/src/main/java/com/jld/vod/view/PostFileActivity.kt

@@ -102,6 +102,23 @@ class PostFileActivity : BaseActivity() {
                     progressdialog!!.dismiss()
                 }
             }
+            3->{
+                val id: Int = it.arg1
+                val file = it.obj as String
+
+                progressdialog!!.setTitle("Uploading Ads ( $lenitem/$totalitem )")
+                progressdialog!!.progress = id
+                progressdialog!!.setMessage(file)
+                progressdialog!!.setCancelable(false)
+                progressdialog!!.setCanceledOnTouchOutside(false)
+                progressdialog!!.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL)
+                progressdialog!!.show()
+
+                if (id == 100)
+                {
+                    progressdialog!!.dismiss()
+                }
+            }
         }
         false
     })
@@ -140,34 +157,41 @@ class PostFileActivity : BaseActivity() {
         initMusicList()
         //初始化游戏列表
         initGameList()
+        //初始化广告列表
+        initAdvertList()
     }
 
     /**
-     * 初始化游戏列表
+     * 初始化电影列表
      */
-    private fun initGameList() {
-        //监听游戏列表
-        postFileViewModel.findResByNotUploadedgameliveData.observe(this){res->
-            LogUtils.logD("game"+res)
+    private fun initMovieList() {
+        postFileViewModel.findResByNotUploadedmovieliveData.observe(this){res->
+            LogUtils.logD("initMovieList"+res.data)
             when (res?.code) {
                 BaseBean.SUCCESS -> {
                     finishLoading()
-
                     if (res.data!!.size != 0)
                     {
                         for ((index,data) in res.data.withIndex())
                         {
-                            val file = File(strFilePath, data.gid.toString()+".apk")
+                            val file = File(strFilePath, data.movieId.toString()+".mp4")
                             val mid = data.mid
-                            val resId = data.gid
+                            val resId = data.movieId
                             if (file.exists())
                             {
-                                //上传游戏
-                                postFileGame(file,mid,resId)
+                                //上传电影
+                                postFileMovie(file,mid,resId)
+                            }else{
+                                if (flag)
+                                {
+                                    flag = false
+                                    postFileViewModel.findResByNotUploadedmusic()//继续获取未上传音乐列表
+                                }
+
                             }
                         }
                     }else{
-                        LogUtils.logD("上传数据为空")
+                        postFileViewModel.findResByNotUploadedmusic()//继续获取未上传音乐列表
                     }
                 }
                 BaseBean.ERROR -> {
@@ -203,12 +227,12 @@ class PostFileActivity : BaseActivity() {
                                 if (flag)
                                 {
                                     flag = false
-                                    postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
+                                    postFileViewModel.findResByNotUploadedadvert()//继续获取未上传广告列表
                                 }
                             }
                         }
                     }else{
-                        postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
+                        postFileViewModel.findResByNotUploadedadvert()//继续获取未上传广告列表
                     }
                 }
                 BaseBean.ERROR -> {
@@ -219,38 +243,36 @@ class PostFileActivity : BaseActivity() {
             }
         }
     }
-
     /**
-     * 初始化电影列表
+     * 初始化广告列表
      */
-    private fun initMovieList() {
-        postFileViewModel.findResByNotUploadedmovieliveData.observe(this){res->
-            LogUtils.logD("movie"+res)
+    private fun initAdvertList() {
+        postFileViewModel.findResByNotUploadedadvertliveData.observe(this){res->
+            LogUtils.logD("initAdvertList"+res.data)
             when (res?.code) {
                 BaseBean.SUCCESS -> {
+                    flag = true
                     finishLoading()
                     if (res.data!!.size != 0)
                     {
                         for ((index,data) in res.data.withIndex())
                         {
-                            val file = File(strFilePath, data.movieId.toString()+".mp4")
-                            val mid = data.mid
-                            val resId = data.movieId
+                            val file = File(strFilePath, data.aid.toString()+".mp4")
+                            val resId = data.aid
                             if (file.exists())
                             {
-                                //上传电影
-                                postFileMovie(file,mid,resId)
+                                //上传广告
+                                postFileAdvert(file,123456L,resId)
                             }else{
                                 if (flag)
                                 {
                                     flag = false
-                                    postFileViewModel.findResByNotUploadedmusic()//继续获取未上传音乐列表
+                                    postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
                                 }
-
                             }
                         }
                     }else{
-                        postFileViewModel.findResByNotUploadedmusic()//继续获取未上传音乐列表
+                        postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
                     }
                 }
                 BaseBean.ERROR -> {
@@ -263,6 +285,42 @@ class PostFileActivity : BaseActivity() {
     }
 
     /**
+     * 初始化游戏列表
+     */
+    private fun initGameList() {
+        //监听游戏列表
+        postFileViewModel.findResByNotUploadedgameliveData.observe(this){res->
+           // LogUtils.logD("game"+res)
+            when (res?.code) {
+                BaseBean.SUCCESS -> {
+                    finishLoading()
+
+                    if (res.data!!.size != 0)
+                    {
+                        for ((index,data) in res.data.withIndex())
+                        {
+                            val file = File(strFilePath, data.gid.toString()+".apk")
+                            val mid = data.mid
+                            val resId = data.gid
+                            if (file.exists())
+                            {
+                                //上传游戏
+                                postFileGame(file,mid,resId)
+                            }
+                        }
+                    }else{
+                        LogUtils.logD("上传数据为空")
+                    }
+                }
+                BaseBean.ERROR -> {
+                    finishLoading()
+                    Toast.makeText(this, res.message, Toast.LENGTH_SHORT).show()
+                }
+                BaseBean.LOADING -> showLoading()
+            }
+        }
+    }
+    /**
      * 上传游戏
      */
     private fun postFileGame(file: File,mid : Long,resId:Long) {
@@ -318,7 +376,7 @@ class PostFileActivity : BaseActivity() {
                             //数据下标重置
                             lenitem = 1
                             totalitem = 0
-                            postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
+                            postFileViewModel.findResByNotUploadedadvert()//继续获取未上传广告列表
                         }
                     }
                     val msg: Message = mHandler.obtainMessage()
@@ -341,6 +399,44 @@ class PostFileActivity : BaseActivity() {
     }
 
     /**
+     * 上传音乐
+     */
+    private fun postFileAdvert(file: File,mid : Long,resId:Long) {
+        totalitem++
+        HttpFileUtil.postFile(this, Config.ApiBaseUrl + "/advert/upload",
+                object : ProgressListener {
+                    override fun onProgress(currentBytes: Long, contentLength: Long, done: Boolean) {
+                        //  Log.i(TAG, "file="+file.getName()+"id="+id+"currentBytes==" + currentBytes + "==contentLength==" + contentLength + "==done==" + done);
+                        val progress = (currentBytes * 100 / contentLength).toInt()
+                        if (done == true) {
+                            lenitem++
+                            if (lenitem == totalitem)
+                            {
+                                //数据下标重置
+                                lenitem = 1
+                                totalitem = 0
+                                postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
+                            }
+                        }
+                        val msg: Message = mHandler.obtainMessage()
+                        msg.arg1 = progress
+                        msg.what = 3
+                        msg.obj = file.name
+                        mHandler.sendMessage(msg)
+                    }
+                }, object : Callback {
+            override fun onFailure(call: okhttp3.Call, e: IOException) {
+                LogUtils.logE(e.toString())
+            }
+
+            @Throws(IOException::class)
+            override fun onResponse(call: okhttp3.Call, response: okhttp3.Response) {
+                val result = response.body!!.string()
+                LogUtils.logD(result.toString())
+            }
+        }, file,mid,resId)
+    }
+    /**
      * 上传电影
      */
     private fun postFileMovie(file: File,mid : Long,resId:Long) {

+ 47 - 23
app/src/main/java/com/jld/vod/view/VideoPlayActivity.kt

@@ -7,13 +7,18 @@ import android.view.KeyEvent
 import android.view.MotionEvent
 import android.view.View
 import android.widget.RelativeLayout
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.observe
 import cn.jzvd.Jzvd
 import com.bumptech.glide.Glide
 import com.jld.vod.R
 import com.jld.vod.base.BaseActivity
 import com.jld.vod.config.Config
+import com.jld.vod.utils.LogUtils
 import com.jld.vod.utils.PopupUtils
 import com.jld.vod.view.widget.MyJzvdStd
+import com.jld.vod.viewmodel.MainViewModel
+import com.jld.vod.viewmodel.VideoPlayViewModel
 import kotlinx.android.synthetic.main.activity_play_video.*
 
 
@@ -26,7 +31,7 @@ import kotlinx.android.synthetic.main.activity_play_video.*
 class VideoPlayActivity : BaseActivity() {
     private var jzvdStd:MyJzvdStd ?= null
     private var flagAdsComplete:Boolean = false
-
+    private lateinit var viewModel: VideoPlayViewModel
     override fun getLayoutId(): Int {
         return R.layout.activity_play_video
     }
@@ -35,6 +40,9 @@ class VideoPlayActivity : BaseActivity() {
         super.initView()
         flagAdsComplete  = false//广告未播放完成
         Config.isShowAd = false
+        //初始化mainviewmodel
+        viewModel = ViewModelProvider.AndroidViewModelFactory(application).create(VideoPlayViewModel::class.java)
+
 //        val intent= intent
 //        val movieFileUrl = intent.getStringExtra("movieFileUrl")
 //        val movieName = intent.getStringExtra("movieName")
@@ -103,32 +111,48 @@ class VideoPlayActivity : BaseActivity() {
         layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT)
         vd_ad.setLayoutParams(layoutParams)
 
-        val videoPath = "http://vfx.mtime.cn/Video/2019/07/12/mp4/190712140656051701.mp4";
-        //设置播放地址,网络视频同样使用此方法,将网址链接放入即可
-        vd_ad.setVideoPath(videoPath);
-        vd_ad.start()
-        //循环播放
-        vd_ad.setOnPreparedListener(MediaPlayer.OnPreparedListener { mp ->
-            mp.start()
-            mp.isLooping = true
-        })
-
-
-        /** 倒计时100秒,一次1秒 */
-        val timer = object : CountDownTimer(100 * 1000, 1000) {
-            override fun onTick(millisUntilFinished: Long) {
-                val s = millisUntilFinished / 1000
-                auto_ms_text.setText(s.toString() + "")
-            }
-
-            override fun onFinish() {
-                vd_ad.stopPlayback()
-                auto_ms_text.setText("0")
+        viewModel.findMovieAdvert()
+
+        viewModel.resByAdvertLiveData.observe(this){res->
+            LogUtils.logD("resByAdvertLiveData"+res.data)
+            if (res.data != null)
+            {
+                val videoPath = Config.ApiBaseUrl+"/"+res.data[0].filePath
+
+              //  val videoPath = "http://vfx.mtime.cn/Video/2019/07/12/mp4/190712140656051701.mp4";
+                //设置播放地址,网络视频同样使用此方法,将网址链接放入即可
+                vd_ad.setVideoPath(videoPath);
+                vd_ad.start()
+                //循环播放
+                vd_ad.setOnPreparedListener(MediaPlayer.OnPreparedListener { mp ->
+                    mp.start()
+                    mp.isLooping = true
+                })
+                /** 倒计时100秒,一次1秒 */
+                val timer = object : CountDownTimer(100 * 1000, 1000) {
+                    override fun onTick(millisUntilFinished: Long) {
+                        val s = millisUntilFinished / 1000
+                        auto_ms_text.setText(s.toString() + "")
+                    }
+
+                    override fun onFinish() {
+                        vd_ad.stopPlayback()
+                        auto_ms_text.setText("0")
+                        fl_bg_ad.visibility = View.GONE
+                        jzvdStd!!.startButton.performClick()//自动播放电影
+                        flagAdsComplete  = true//广告播放完成
+                    }
+                }.start()
+            }else{
                 fl_bg_ad.visibility = View.GONE
                 jzvdStd!!.startButton.performClick()//自动播放电影
                 flagAdsComplete  = true//广告播放完成
             }
-        }.start()
+
+        }
+
+
+
 
 //        val layoutParams = jzvdStd.backButton.getLayoutParams()
 //        layoutParams.width = 72

+ 23 - 4
app/src/main/java/com/jld/vod/viewmodel/PostFileViewModel.kt

@@ -3,10 +3,7 @@ package com.jld.vod.viewmodel
 import android.app.Application
 import androidx.lifecycle.AndroidViewModel
 import androidx.lifecycle.MutableLiveData
-import com.jld.vod.model.bean.BaseBean
-import com.jld.vod.model.bean.GameResByNotUploaded
-import com.jld.vod.model.bean.MovieResByNotUploaded
-import com.jld.vod.model.bean.MusicResByNotUploaded
+import com.jld.vod.model.bean.*
 import com.jld.vod.utils.http.RetrofitUtils
 import com.jld.vod.utils.http.RetrofitCallback
 import java.io.File
@@ -23,6 +20,7 @@ class PostFileViewModel(app: Application)  : AndroidViewModel(app) {
     val findResByNotUploadedmusicliveData: MutableLiveData<BaseBean<List<MusicResByNotUploaded>>> = MutableLiveData()
     val findResByNotUploadedmovieliveData: MutableLiveData<BaseBean<List<MovieResByNotUploaded>>> = MutableLiveData()
     val findResByNotUploadedgameliveData: MutableLiveData<BaseBean<List<GameResByNotUploaded>>> = MutableLiveData()
+    val findResByNotUploadedadvertliveData: MutableLiveData<BaseBean<List<ResByNotUploadedAdvert>>> = MutableLiveData()
     val movieUploadliveData: MutableLiveData<BaseBean<String>> = MutableLiveData()
     val musicUploadliveData: MutableLiveData<BaseBean<String>> = MutableLiveData()
     val gameUploadliveData: MutableLiveData<BaseBean<String>> = MutableLiveData()
@@ -87,6 +85,27 @@ class PostFileViewModel(app: Application)  : AndroidViewModel(app) {
     }
 
     /**
+     * 获取广告未上传列表
+     */
+    fun findResByNotUploadedadvert(): MutableLiveData<BaseBean<List<ResByNotUploadedAdvert>>> {
+        findResByNotUploadedadvertliveData.postValue(BaseBean.loading(null))
+        RetrofitUtils.findResByNotUploadedadvert(
+                { t ->
+                    when (t.code) {
+                        20000 ->{
+                            findResByNotUploadedadvertliveData.postValue(BaseBean.success(t.data))
+                        }
+                        else -> findResByNotUploadedadvertliveData.postValue(BaseBean.error(t.message, t.data))
+                    }
+                },
+                { ex ->
+                    findResByNotUploadedadvertliveData.postValue(BaseBean.error(ex.message!!, null))
+                })
+        return findResByNotUploadedadvertliveData
+    }
+
+
+    /**
      * 文件电影上传(POST请求)
      */
     fun movieUpload(file: File,mid: Long,resId: Long, callback: RetrofitCallback<*>): MutableLiveData<BaseBean<String>> {

+ 8 - 2
app/src/main/java/com/jld/vod/viewmodel/SplashViewModel.kt

@@ -263,8 +263,14 @@ class SplashViewModel(app: Application) : AndroidViewModel(app) {
             { t ->
                 when (t.code) {
                     20000 ->{
-                        LogUtils.logD("findGameInstalledPath: 获取未安装游戏,$t----"+t.data)
-                        findGameByNoInstallliveData.postValue(BaseBean.success(t.data))
+
+                        if (t.data != null)
+                        {
+                            LogUtils.logD("findGameInstalledPath: 获取未安装游戏,$t----"+t.data)
+                            findGameByNoInstallliveData.postValue(BaseBean.success(t.data))
+                        }else{
+                            findGameByNoInstallliveData.postValue(BaseBean.error(t.message, t.data))
+                        }
                     }
                     else -> findGameByNoInstallliveData.postValue(BaseBean.error(t.message, t.data))
                 }

+ 53 - 0
app/src/main/java/com/jld/vod/viewmodel/VideoPlayViewModel.kt

@@ -0,0 +1,53 @@
+package com.jld.vod.viewmodel
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import androidx.paging.Config
+import androidx.paging.PagedList
+import androidx.paging.PagingData
+import androidx.paging.toLiveData
+import androidx.room.Room
+import com.jld.vod.db.AboutDatabase
+import com.jld.vod.interfaces.remote.Apis
+import com.jld.vod.model.bean.*
+import com.jld.vod.repository.AboutRepository
+import com.jld.vod.repository.BrowserRepository
+import com.jld.vod.utils.LogUtils
+import com.jld.vod.utils.http.PagingRetrofitUtils
+import com.jld.vod.utils.http.RetrofitUtils
+import kotlinx.coroutines.flow.Flow
+
+
+/**
+ * @author ZhaoFuXin
+ * @Email:18276061387@163.com
+ * @description:
+ * @date :2020/1/10 13:40
+ */
+class VideoPlayViewModel : ViewModel(){
+    val resByAdvertLiveData: MutableLiveData<BaseBean<List<ResByNotUploadedAdvert>>> = MutableLiveData()
+    /**
+     * 获取电影广告资源
+     */
+    fun findMovieAdvert(): MutableLiveData<BaseBean<List<ResByNotUploadedAdvert>>> {
+        RetrofitUtils.findMovieAdvert(
+                { t ->
+                    when (t.code) {
+                        20000 ->{
+                            resByAdvertLiveData.postValue(BaseBean.success(t.data))
+                        }
+                        else -> resByAdvertLiveData.postValue(BaseBean.error(t.message, t.data))
+                    }
+                },
+                { ex ->
+                    ex.printStackTrace()
+                    resByAdvertLiveData.postValue(BaseBean.error(ex.message!!, null))
+                }
+        )
+        return resByAdvertLiveData
+    }
+
+}