TimestampBehavior::class, ] ]; } /** * @inheritdoc */ public function rules() { return [ [['id', 'driver_id', 'md_id', 'store_id', 'is_delete', 'created_at', 'updated_at'], 'integer'] ]; } public function beforeSave($insert) { if (parent::beforeSave($insert)) { //1.判断其他司机是否绑定当前门店 //2.判断司机当前仓库是否绑定当前门店 (需要获取绑定记录-需要获取仓库) if($this->isNewRecord){ $md = Md::findOne(['id' => $this->md_id, 'is_delete' => 0, 'shop_audit' => 1]); if (!$md) { $this->addError('md', '所选门店不存在'); return false; } $this->store_id = $md->store_id; $driver = Driver::findOne(['id' => $this->driver_id, 'is_delete' => 0]); if (!$driver) { $this->addError('driver', '所选司机不存在'); return false; } $front_agent_admin_id = $driver->admin_id; $admin = Admin::findOne(['id' => $front_agent_admin_id, 'is_delete' => 0, 'type' => Admin::ADMIN_TYPE_FRONT_AGENT]); if (!$admin) { $this->addError('admin', '所选仓库不存在'); return false; } //判断司机当前仓库是否绑定当前门店 $agentFrontBind = AgentFrontBind::findOne(['front_agent_admin_id' => $front_agent_admin_id, 'is_delete' => 0, 'status' => 1, 'md_id' => $md->id]); if (!$agentFrontBind) { $this->addError('bind', '司机所属仓库未绑定当前门店'); return false; } //按照目前设计图来讲 此表记录不会修改只能新增 $bind = DriverMdBind::findOne(['md_id' => $md->id, 'is_delete' => 0]); if ($bind) { $this->addError('bind', '当前所选门店已绑定'); return false; } } return true; } return false; } public function attributeLabels() { return [ 'id' => '', 'driver_id' => '司机ID', 'md_id' => '门店ID', 'store_id' => '商城ID', 'is_delete' => '', 'created_at' => '', 'updated_at' => '' ]; } public function getMdListQuery($driver_id) { self::find()->alias('dm')->leftJoin(['m' => Md::tableName()], 'dm.md_id=m.id') ->where(['dm.is_delete' => 0, 'm.is_delete' => 0]); } }