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.
zhishifufei_php/application/merchant/model/special/SpecialTaskCategory.php

96 lines
3.5 KiB

10 months ago
<?php
// +----------------------------------------------------------------------
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
// +----------------------------------------------------------------------
// | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397
// +----------------------------------------------------------------------
namespace app\merchant\model\special;
use traits\ModelTrait;
use basic\ModelBasic;
use service\UtilService as Util;
use app\merchant\model\special\SpecialTask;
/**素材分类
* Class SpecialTaskCategory
* @package app\merchant\model\special
*/
class SpecialTaskCategory extends ModelBasic
{
use ModelTrait;
/**
* 全部素材分类
*/
public static function taskCategoryAll($type = 0, $mer_id = 0)
{
$model = self::where(['is_del' => 0, 'mer_id' => $mer_id,'institution_id'=>0]);
if ($type == 1) {
$model = $model->where('pid', 0);
}
$list = $model->order('sort desc,add_time desc')->select();
$list = count($list) > 0 ? $list->toArray() : [];
$list = Util::sortListTier($list);
return $list;
}
/**
* 素材分类列表
*/
public static function getAllList($where)
{
$data = self::setWhere($where)->column('id,pid');
$list = [];
foreach ($data as $ket => $item) {
$cate = self::where('id', $ket)->find();
if ($cate) {
$cate = $cate->toArray();
if ($item > 0) {
$cate['sum'] = SpecialTask::where('pid', $ket)->where('is_del', 0)->count();
} else {
$pids = self::categoryId($ket);
$cate['sum'] = SpecialTask::where('pid', 'in', $pids)->where('is_del', 0)->count();
}
array_push($list, $cate);
unset($cate);
}
if ($item > 0 && !array_key_exists($item, $data)) {
$cate = self::where('id', $item)->find();
if ($cate) {
$cate = $cate->toArray();
$pids = self::categoryId($item);
$cate['sum'] = SpecialTask::where('is_del', 0)->where('pid', 'in', $pids)->count();
array_push($list, $cate);
}
}
}
return $list;
}
public static function setWhere($where)
{
$model = self::order('sort desc,add_time desc')->where('is_del', 0);
if ($where['mer_id']) $model = $model->where('mer_id', 'in',$where['mer_id']);
if ($where['agent_id']) $model = $model->where('agent_id', $where['agent_id']);
$model = $model->where('institution_id', 0);
if ($where['pid']) $model = $model->where('id', $where['pid']);
if ($where['cate_name'] != '') $model = $model->where('title', 'like', "%$where[cate_name]%");
return $model;
}
/**获取一个分类下的所有分类ID
* @param int $pid
*/
public static function categoryId($pid = 0)
{
$data = self::where('is_del', 0)->where('pid', $pid)->column('id');
array_push($data, $pid);
return $data;
}
}