You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
4.6 KiB
118 lines
4.6 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
|
|
// +----------------------------------------------------------------------
|
|
// | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\web\model\material;
|
|
|
|
use think\Db;
|
|
use traits\ModelTrait;
|
|
use basic\ModelBasic;
|
|
use app\web\model\material\DataDownloadCategpry;
|
|
|
|
/**资料表
|
|
* Class DataDownload
|
|
* @package app\web\model\material
|
|
*/
|
|
class DataDownload extends ModelBasic
|
|
{
|
|
use ModelTrait;
|
|
|
|
/**字段过滤
|
|
* @param string $alias
|
|
* @param null $model
|
|
* @return DataDownload
|
|
*/
|
|
public static function PreWhere($alias = '', $model = null)
|
|
{
|
|
if (is_null($model)) $model = new self();
|
|
if ($alias) {
|
|
$model = $model->alias($alias);
|
|
$alias .= '.';
|
|
}
|
|
return $model->where([$alias . 'is_show' => 1, $alias . 'status' => 1, $alias . 'is_del' => 0]);
|
|
}
|
|
|
|
/**条件处理
|
|
* @param $pid
|
|
* @param $cate_id
|
|
* @param $is_pay
|
|
* @param $salesOrder
|
|
* @param $search
|
|
* @return DataDownload
|
|
*/
|
|
public static function setWhere($pid, $cate_id, $is_pay, $salesOrder, $search)
|
|
{
|
|
$model = self::PreWhere();
|
|
if ($cate_id) {
|
|
$model = $model->where(['cate_id' => $cate_id]);
|
|
} else if ($pid && !$cate_id) {
|
|
$cate_ids = DataDownloadCategpry::where('pid', $pid)->column('id');
|
|
$model = $model->where('cate_id', 'in', $cate_ids);
|
|
}
|
|
if ($is_pay != '') $model = $model->where(['pay_type' => $is_pay]);
|
|
if ($search) $model = $model->where('title', 'LIKE', "%$search%");
|
|
$model = $model -> field('id,cate_id,title,image,poster_image,pay_type,money,member_pay_type,member_money,IFNULL(ficti,0) + IFNULL(sales,0) as sales,is_show,is_del,add_time,mer_id,status');
|
|
$baseOrder = '';
|
|
if ($salesOrder) $baseOrder = $salesOrder == 'desc' ? 'sales DESC' : 'sales ASC';//下载量
|
|
if ($baseOrder) $baseOrder .= ', ';
|
|
return $model->order($baseOrder . 'sort DESC, add_time DESC');
|
|
}
|
|
|
|
/**列表
|
|
* @param int $page
|
|
* @param int $limit
|
|
* @param $tid
|
|
* @return array
|
|
*/
|
|
public static function getDataDownloadExercisesList($page, $limit, $pid, $cate_id, $is_pay, $salesOrder, $search)
|
|
{
|
|
$model = self::setWhere($pid, $cate_id, $is_pay, $salesOrder, $search);
|
|
$data = $model->page($page, $limit)->select();
|
|
$data = count($data) ? $data->toArray() : [];
|
|
$count = self::setWhere($pid, $cate_id, $is_pay, $salesOrder, $search)->count();
|
|
return compact('data', 'count');
|
|
}
|
|
|
|
/**
|
|
* 获取单个资料的详细信息
|
|
* @param $uid 用户id
|
|
* @param $id 资料id
|
|
* */
|
|
public static function getOneDataDownload($uid, $id)
|
|
{
|
|
$data = self::PreWhere()->field('id,mer_id,cate_id,title,image,pay_type,money,member_pay_type,member_money,abstract,ficti,sales,is_show')->find($id);
|
|
if (!$data) return self::setErrorInfo('您要查看的资料不存在!');
|
|
if ($data->is_show == 0) return self::setErrorInfo('您要查看的资料已下架!');
|
|
$data->collect = self::getDb('special_relation')->where(['link_id' => $id, 'type' => 1, 'uid' => $uid, 'category' => 1])->count() ? true : false;
|
|
$data->abstract = htmlspecialchars_decode($data->abstract);
|
|
return $data;
|
|
}
|
|
|
|
/**讲师名下资料
|
|
* @return array
|
|
* @throws \think\db\exception\DataNotFoundException
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
* @throws \think\exception\DbException
|
|
*/
|
|
public static function getLecturerDownloadList($mer_id = 0, $page = 1, $limit = 10)
|
|
{
|
|
if ($mer_id) {
|
|
$model = self::PreWhere();
|
|
$model = $model->where(['mer_id' => $mer_id])->order('sort desc,id desc');
|
|
$data = $model->page($page, $limit)->select();
|
|
$data = count($data) ? $data->toArray() : [];
|
|
$count = self::PreWhere()->where(['mer_id' => $mer_id])->count();
|
|
} else {
|
|
$data = [];
|
|
$count = 0;
|
|
}
|
|
return compact('data', 'count');
|
|
}
|
|
}
|
|
|