123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- <?php
- 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
- {
- 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();
- }
- }
|