<?php
/**
 * 商铺管理模块
 * Created by PhpStorm.
 * User: wxj
 * Date: 2019/10/31
 * Time: 15:02
 */

namespace JinDouYun\Model\Department;

use Exception;


use JinDouYun\Dao\Department\DStaffStock;
use Mall\Framework\Core\ErrorCode;
use Mall\Framework\Core\StatusCode;
use Mall\Framework\Core\ResultWrapper;

use JinDouYun\Model\MBaseModel;
use Monolog\Handler\IFTTTHandler;


class MStaffStock extends MBaseModel
{

    private $obj;
    private $cutTable = 250000;
    private $enterpriseId;
    private $userCenterId;
    private $DCardBind;
    private $DCard;

    public function __construct($enterpriseId, $userCenterId = '')
    {
        $this->enterpriseId = $enterpriseId;
        $this->userCenterId = $userCenterId;
        parent::__construct($this->enterpriseId, $this->userCenterId);
        $this->obj = new DStaffStock('default');

    }

    /**
     * 列表
     * @param $where
     * @return mixed
     */
    public function list($where)
    {
        $limit = $where['limit'];
        unset($where['limit']);
        $offset = $where['offset'];
        unset($where['offset']);

        $wherein = [];
        if (isset($where['name'])){
            $wherein[] = ['b.staffName|b.id', '=', $where['name']];
        }

        if (isset($where['pm'])){
            $wherein[] = ['a.pm', '=', $where['pm']];
        }

        if (isset($where['staff_id'])){
            $wherein[] = ['a.staff_id', '=', $where['staff_id']];
        }

        if (isset($where['start_time']))
        {
            $wherein[] = ['a.createTime', '>=', strtotime($where['start_time'])];
        }

        if (isset($where['end_time']))
        {
            $wherein[] = ['a.createTime', '<=', strtotime($where['end_time'])];
        }

        $join = 'Left Join qianniao_staff_'.$this->enterpriseId.' as b ON b.id = a.staff_id';
        $dbResult = $this->obj->select($wherein, 'a.*,b.staffName', 'a.id DESC', $limit, $offset, [], true, false, $join);
        $count = $this->obj->count($wherein, [], $join);
        $return = [
            'data' => $dbResult == false ? [] : $dbResult,
            'total' => $count,
        ];
        return ResultWrapper::success($return);
    }


    /**
     * 详情
     * @param $where
     * @return mixed
     */
    public function details($where)
    {
        if(empty($where)){
            return ResultWrapper::success($where);
        }
        $dbResult = $this->obj->get($where);
        if($dbResult === false){
            return ResultWrapper::fail($this->obj->error(), ErrorCode::$dberror);
        }

        return ResultWrapper::success(self::formatInfo($dbResult));

    }

    /**
     * Doc: (des="添加")
     * User: XMing
     * Date: 2020/7/15
     * Time: 10:42 上午
     * @throws Exception
     * @param array $params
     * @return ResultWrapper
     */
    public function insert(array $params)
    {
        $res = $this->obj->insert($params);
        if ($res){
            return ResultWrapper::success('添加成功');
        }else{
            return ResultWrapper::fail($this->obj->error(), ErrorCode::$dberror);
        }

    }

    public function update($params, $id)
    {
        $data = $this->obj->get($id);
        if (!$data){
            return ResultWrapper::fail('数据不存在', ErrorCode::$dberror);
        }

        $dbResult = $this->obj->update($params,$id);
        if($dbResult === false){
            return ResultWrapper::fail($this->obj->error(), ErrorCode::$dberror);
        }
        return ResultWrapper::success('修改成功');

    }

    /**
     * 格式数据详情
     * @param $data
     * @return mixed
     */
    public function formatInfo($data)
    {
        return $data;
    }


    public function delete($where)
    {
        $res = $this->obj->delete($where);
        if ($res){
            return ResultWrapper::success('删除成功');
        }
        return ResultWrapper::fail($this->obj->error(), ErrorCode::$dberror);
    }

}