| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 | <?phpnamespace 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{    public function login()    {        return view();    }    public function doLogin()    {        $param = input('post.');        if (empty($param['mobile']) || empty($param['password'])) {            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)                ->append(['is_must_text'])                ->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'])            ->append(['is_must_text'])            ->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::where('id',$id)->append(['is_must_text'])->find();        $watch_status = SoldierVideoWatchModel::where('user_id', $soldier['id'])            ->where('video_id', $id)            ->value('status');        if (empty($watch_status)) {            SoldierVideoWatchModel::create([                'user_id'  => $soldier['id'],                'video_id' => $id,                'status'   => SoldierVideoWatchModel::STATUS_NO_FINISHED,            ]);            $video['watch_status'] = 2;        } else {            $video['watch_status'] = $watch_status;        }        $video['watch_text'] = SoldierVideoWatchModel::STATUS[$video['watch_status']];        //相关视频        $video_list = SoldierVideoModel::where('series_id', $video['series_id'])            ->where('priority', '<', $video['priority'])            ->order(['priority' => 'desc'])            ->append(['is_must_text'])            ->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();    }}
 |