|
@@ -2,6 +2,10 @@
|
|
|
|
|
|
namespace app\mobile\controller;
|
|
|
|
|
|
+use app\common\model\SoldierModel;
|
|
|
+use app\common\model\SoldierVideoModel;
|
|
|
+use app\common\model\SoldierVideoSeriesModel;
|
|
|
+use app\common\model\SoldierVideoWatchModel;
|
|
|
use app\mobile\MobileBaseController;
|
|
|
|
|
|
class Soldier extends MobileBaseController
|
|
@@ -15,7 +19,155 @@ class Soldier extends MobileBaseController
|
|
|
{
|
|
|
$param = input('post.');
|
|
|
if (empty($param['mobile']) || empty($param['password'])) {
|
|
|
- ajax_return(1,'请输入账号或密码');
|
|
|
+ ajax_return(1, '请输入手机号或密码');
|
|
|
}
|
|
|
+
|
|
|
+ $soldier = SoldierModel::where('mobile', $param['mobile'])->find();
|
|
|
+ if (empty($soldier)) {
|
|
|
+ ajax_return(1, '手机号不存在');
|
|
|
+ }
|
|
|
+ if ($soldier['password'] != md5(md5($soldier['salt']) . $param['password'])) {
|
|
|
+ ajax_return(1, '密码错误');
|
|
|
+ }
|
|
|
+
|
|
|
+ session('mobile.soldier.id', $soldier['id']);
|
|
|
+ ajax_return();
|
|
|
+ }
|
|
|
+
|
|
|
+ public function index()
|
|
|
+ {
|
|
|
+ $soldier = get_soldier();
|
|
|
+
|
|
|
+ return view('');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function listVideo()
|
|
|
+ {
|
|
|
+ $soldier = get_soldier();
|
|
|
+
|
|
|
+ $where = [
|
|
|
+ ['status', '=', SoldierVideoSeriesModel::STATUS_SHOW],
|
|
|
+ ];
|
|
|
+ $list = SoldierVideoSeriesModel::where($where)
|
|
|
+ ->order(['priority' => 'desc', 'id' => 'desc'])
|
|
|
+ ->limit(input('limit', 5))
|
|
|
+ ->page(input('page', 1))
|
|
|
+ ->select();
|
|
|
+ foreach ($list as $v) {
|
|
|
+ $video_list = SoldierVideoModel::where('series_id', $v['id'])
|
|
|
+ ->where('status', SoldierVideoModel::STATUS_SHOW)
|
|
|
+ ->limit(3)
|
|
|
+ ->order('priority desc')
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ $video_ids = $video_list->column('id');
|
|
|
+ $watch_list = SoldierVideoWatchModel::where('user_id', $soldier['id'])
|
|
|
+ ->where('video_id', 'in', $video_ids)
|
|
|
+ ->column('status', 'video_id');
|
|
|
+ foreach ($video_list as $video) {
|
|
|
+ if (empty($watch_list[$video['id']])) {
|
|
|
+ $video['watch_status'] = 1;
|
|
|
+ } else {
|
|
|
+ $video['watch_status'] = $watch_list[$video['id']];
|
|
|
+ }
|
|
|
+ $video['watch_text'] = SoldierVideoWatchModel::STATUS[$video['watch_status']];
|
|
|
+ }
|
|
|
+ $v['video'] = $video_list;
|
|
|
+ }
|
|
|
+
|
|
|
+ ajax_success($list);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function series()
|
|
|
+ {
|
|
|
+ $soldier = get_soldier();
|
|
|
+ $id = input('id/d', 0);
|
|
|
+ empty($id) && jump('参数错误');
|
|
|
+
|
|
|
+ $series = SoldierVideoSeriesModel::find($id);
|
|
|
+
|
|
|
+ return view('', ['id' => $id, 'series' => $series]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function listSeries()
|
|
|
+ {
|
|
|
+ $soldier = get_soldier();
|
|
|
+ $id = input('id/d', 0);
|
|
|
+ empty($id) && jump('参数错误');
|
|
|
+
|
|
|
+ $list = SoldierVideoModel::where('series_id', $id)
|
|
|
+ ->where('status', SoldierVideoModel::STATUS_SHOW)
|
|
|
+ ->order(['priority' => 'desc'])
|
|
|
+ ->limit(input('limit', 10))
|
|
|
+ ->page(input('page', 1))
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ $video_ids = $list->column('id');
|
|
|
+ $watch_list = SoldierVideoWatchModel::where('user_id', $soldier['id'])
|
|
|
+ ->where('video_id', 'in', $video_ids)
|
|
|
+ ->column('status', 'video_id');
|
|
|
+ foreach ($list as $video) {
|
|
|
+ if (empty($watch_list[$video['id']])) {
|
|
|
+ $video['watch_status'] = 1;
|
|
|
+ } else {
|
|
|
+ $video['watch_status'] = $watch_list[$video['id']];
|
|
|
+ }
|
|
|
+ $video['watch_text'] = SoldierVideoWatchModel::STATUS[$video['watch_status']];
|
|
|
+ }
|
|
|
+
|
|
|
+ ajax_success($list);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function video()
|
|
|
+ {
|
|
|
+ $soldier = get_soldier();
|
|
|
+ $id = input('id/d', 0);
|
|
|
+ empty($id) && jump('参数错误');
|
|
|
+
|
|
|
+ $video = SoldierVideoModel::find($id);
|
|
|
+ $watch_status = SoldierVideoWatchModel::where('user_id', $soldier['id'])
|
|
|
+ ->where('video_id', $id)
|
|
|
+ ->value('status');
|
|
|
+ if (empty($watch_status)) {
|
|
|
+ $video['watch_status'] = 1;
|
|
|
+ } else {
|
|
|
+ $video['watch_status'] = $watch_status;
|
|
|
+ }
|
|
|
+ $video['watch_text'] = SoldierVideoWatchModel::STATUS[$video['watch_status']];
|
|
|
+
|
|
|
+ $video_list = SoldierVideoModel::where('series_id', $video['series_id'])
|
|
|
+ ->where(function ($query) use ($video) {
|
|
|
+ $query->where('id', '>', $video['id'])->whereOr('priority', '<', $video['priority']);
|
|
|
+ })->order(['priority' => 'desc'])
|
|
|
+ ->limit(5)
|
|
|
+ ->select();
|
|
|
+ $video_ids = $video_list->column('id');
|
|
|
+ $watch_list = SoldierVideoWatchModel::where('user_id', $soldier['id'])
|
|
|
+ ->where('video_id', 'in', $video_ids)
|
|
|
+ ->column('status', 'video_id');
|
|
|
+ foreach ($video_list as $video_item) {
|
|
|
+ if (empty($watch_list[$video_item['id']])) {
|
|
|
+ $video_item['watch_status'] = 1;
|
|
|
+ } else {
|
|
|
+ $video_item['watch_status'] = $watch_list[$video_item['id']];
|
|
|
+ }
|
|
|
+ $video_item['watch_text'] = SoldierVideoWatchModel::STATUS[$video_item['watch_status']];
|
|
|
+ }
|
|
|
+
|
|
|
+ return view('', [
|
|
|
+ 'video' => $video,
|
|
|
+ 'video_list' => $video_list,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function videoEnd()
|
|
|
+ {
|
|
|
+ $soldier = get_soldier();
|
|
|
+ $id = input('id/d',0);
|
|
|
+ empty($id) && jump('参数错误');
|
|
|
+
|
|
|
+ SoldierVideoWatchModel::update(['status'=>SoldierVideoWatchModel::STATUS_FINISH],['user_id'=>$soldier['id'],'video_id'=>$id]);
|
|
|
+
|
|
|
+ ajax_return();
|
|
|
}
|
|
|
}
|