| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | <?php/** * Created by PhpStorm. * User: tandunzhao * Date: 2018/3/22 * Time: 下午5:58 */namespace App\Modules\Channel\Models;use Illuminate\Database\Eloquent\Model;class ChannelQuestionNaire extends Model{    protected $table = 'channel_question_naire';    protected $fillable = ['id', 'channel_user_id', 'reply_grade', 'business_name', 'company_id', 'distribution_manages_id', 'created_at', 'updated_at'];    /**     * 添加问卷调查信息     * @param $item     * @return mixed     */    static function addQuestionNaire($item)    {        return self::create($item);    }    /**     * 提交问卷调查     * @param $id     * @param $reply_grade     */    static function updateInfo($id, $reply_grade, $business_name)    {        return self::where('id', $id)->update(['reply_grade' => $reply_grade, 'business_name' => $business_name]);    }    /**     * 获取问卷调查信息     * @param $param 查询字段     * @param bool $isAll 是否获取所有     */    static function getQuestionNaires($params, $isAll = false)    {        $search_obj = self::orderBy('reply_grade', 'desc')->groupBy('business_name');        $search_obj->where('reply_grade', '<>', '')->where('business_name', '<>', '');        if (isset($params['business_name'])) {            $search_obj->where('business_name', $params['business_name']);        }        if ($isAll) {            return $search_obj->get();        } else {            return $search_obj->paginate();        }    }    /**     * 查询是否已经显示 或者 提交     * @param $channel_user_ids     * @return mixed     */    static function checkQuestionNaire($company_id, $isReply = false)    {        $search_obj = self::where('company_id', $company_id);        $start = date('Y-m-01');        $end = date('Y-m-d H:i:s');        if ($isReply) {            $search_obj->where('reply_grade', '<>', '');        }        return $search_obj->whereBetween('updated_at', [$start, $end])->count();    }    /**     * 查询本月这个公司是否已经显示     * @param $channel_user_ids     * @return mixed     */    static function geFirstQuestionNaire($company_id)    {        $search_obj = self::where('company_id', $company_id);        $start = date('Y-m-01');        $end = date('Y-m-d H:i:s');        return $search_obj->whereBetween('updated_at', [$start, $end])->first();    }    /**     * 获取商务名下已经参与的公司数     * @param $distribution_manages_id     * @return mixed     */    static function getNaireCompanyCount($distribution_manages_id, $isPreMonth = true)    {        $search_obj = self::select('company_id')->where('distribution_manages_id', $distribution_manages_id)->where('reply_grade', '<>', '');        if ($isPreMonth) {            $begin_time = date('Y-m-01 00:00:00', strtotime('-1 month'));            $end_time = date("Y-m-d 23:59:59", strtotime(-date('d') . 'day'));            $search_obj->whereBetween('updated_at', [$begin_time, $end_time]);        }        return $search_obj->distinct()->count();    }    /**     * 商务名下的参与调查的公司获的总分数     * @param $channel_user_ids     * @return mixed     */    static function getTotalGrade($distribution_manages_id, $isPreMonth = true)    {        $search_obj = self::where('distribution_manages_id', $distribution_manages_id)->where('reply_grade', '<>', '');        if ($isPreMonth) {            $begin_time = date('Y-m-01 00:00:00', strtotime('-1 month'));            $end_time = date("Y-m-d 23:59:59", strtotime(-date('d') . 'day'));            $search_obj->whereBetween('updated_at', [$begin_time, $end_time]);        }        return $search_obj->sum('reply_grade');    }}
 |