255], ['is_delete', 'default', 'value'=> LocalDeliveryCourier::IS_DELETE_NO], [['name'],'required', 'on'=> [self::SCENARIO_ADD, self::SCENARIO_EDIT]], [['id'],'required', 'on'=> [self::SCENARIO_DEL, self::SCENARIO_EDIT]], ['id', 'string', 'on' => self::SCENARIO_DEL], ['search_key', 'string', 'on' => self::SCENARIO_LIST], [['lng','lat','level','adcode','citycode'], 'string'], ]; */ return [ [['id'], 'required', 'on' => [self::SCENARIO_DEL, self::SCENARIO_EDIT]], [['saas_user_id', 'type', 'store_id', 'real_name', 'real_code', 'real_just_pic', 'real_back_pic'], 'required', 'on' => [self::SCENARIO_ADD, self::SCENARIO_EDIT]], ['is_delete', 'default', 'value' => LocalDeliveryCourier::IS_DELETE_NO], ['state', 'default', 'value' => LocalDeliveryCourier::IS_STATE_AWAITING], ['status', 'default', 'value' => LocalDeliveryCourier::IS_STATUS_NO], ['is_auto', 'default', 'value' => LocalDeliveryCourier::IS_AUTO_NO], ['source', 'default', 'value' => LocalDeliveryCourier::SOURCE_ADD], ['work_time', 'default', 'value' => '[{"begin_time":"00:00","end_time":"00:00"}]'], ['area', 'default', 'value' => '[{"province_id":0,"city_id":0,"district_id":0,"town_id":0,"village_id":0}]'], [['money', 'total_money'], 'default', 'value' => 0], ['search_key', 'string', 'on' => self::SCENARIO_LIST], ['id', 'string', 'on' => self::SCENARIO_DEL], [['saas_user_id', 'type', 'store_id', 'state', 'status', 'is_auto', 'is_delete', 'source', 'apply_time', 'max_num'], 'integer'], [['real_name', 'real_code', 'real_just_pic', 'real_back_pic', 'mobile'], 'string', 'max' => 255], [['work_time', 'area'], 'string'], [['money', 'total_money'], 'number'], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'saas_user_id' => 'saas_user表的id', 'type' => '配送员类型:1=平台配送员;2=店铺配送员;', 'store_id' => '店铺ID', 'state' => '审核状态:1待审核,2审核通过,3审核拒绝', 'status' => '在线状态:0=离线;1=在线;', 'is_auto' => '是否自动接单:0=否;1=是;', 'real_name' => '姓名', 'real_code' => '身份证号', 'real_just_pic' => '身份证照片正面', 'real_back_pic' => '身份证照片反面', 'work_time' => '工作时间段json', 'area' => '常驻区域json', 'money' => '可提现金额', 'total_money' => '总收入', 'created_at' => '创建时间', 'updated_at' => '最后一次修改时间', 'is_delete' => '是否删除:0=否;1=是;', 'source' => '用户来源:1=平台添加;2=用户申请;', 'apply_time' => '审核时间', 'max_num' => '同时最大接单数量,0=无限制', 'mobile' => '配送员电话' ]; } public function scenarios() { $scenarios = parent::scenarios(); return $scenarios; } /* ************************************************* */ public function saveCourier() { if ($this->validate()) { $t = \Yii::$app->db->beginTransaction(); if ($this->scenario == self::SCENARIO_EDIT) { $model = LocalDeliveryCourier::findOne(['id' => $this->id]); } else { $exist = LocalDeliveryCourier::find()->where(['is_delete' => 0, 'saas_user_id' => $this->saas_user_id])->exists(); if($exist) { return [ 'code' => 1, 'msg' => '该用户已提交申请,或已是配送员' ]; } $model = new LocalDeliveryCourier(); } $model->attributes = $this->attributes; if ($this->scenario != self::SCENARIO_EDIT) { $model->state = LocalDeliveryCourier::IS_STATE_YES; } if (!$model->save(true, ['saas_user_id', 'real_name', 'real_code', 'real_just_pic', 'real_back_pic', 'type', 'store_id', 'work_time', 'mobile', 'area', 'max_num', 'state'])) { $t->rollBack(); return [ 'code' => 1, 'msg' => $model->getErrorSummary(false)[0] ]; } $t->commit(); return [ 'code' => 0, 'msg' => '保存成功' ]; } else { // 验证失败:$errors 是一个包含错误信息的数组 return [ 'code' => 1, "msg" => $this->getErrorSummary(false)[0] ]; } } /* ************************************************* */ public function searchCourier() { $query = LocalDeliveryCourier::find(); if ($this->is_have_page) { $query->where(['is_delete' => LocalDeliveryCourier::IS_DELETE_NO])->orderBy("id desc"); // 搜索 if ($this->search_key) { $query->andWhere(['like', 'real_name', $this->search_key]); } if ($this->state) { $query->andWhere(['state' => $this->state]); } if ($this->store_id > 0) { $query->andWhere(['store_id' => $this->store_id]); } $list = pagination_make($query); foreach ($list['list'] as &$val) { $val['created_at'] = date('Y-m-d H:i:s', $val['created_at']); $val['updated_at'] = date('Y-m-d H:i:s', $val['updated_at']); $val['apply_time'] = $val['apply_time'] ? date('Y-m-d H:i:s', $val['apply_time']) : ""; $area = Json::decode($val['area'], true); $village = District::findOne($area[0]['village_id']); $town = District::findOne($area[0]['town_id']); $district = District::findOne($area[0]['district_id']); $city = District::findOne($area[0]['city_id']); $province = District::findOne($area[0]['province_id']); if ($village) { $val['parent_name'] = $province->name . '/' . $city->name . '/' . $district->name . '/' . $town->name . '/' . $village->name; } elseif ($town) { $val['parent_name'] = $province->name . '/' . $city->name . '/' . $district->name . '/' . $town->name; } elseif ($district) { $val['parent_name'] = $province->name . '/' . $city->name . '/' . $district->name; } else { $val['parent_name'] = ''; } $val['store_name'] = $val['store_id'] > 0 ? Store::findOne($val['store_id'])->name : ''; $saasUser = \app\models\SaasUser::findOne($val['saas_user_id']); $val['saas_user_info'] = $saasUser; } $data = [ 'data' => $list['list'], 'pageNo' => $list['pageNo'], 'totalCount' => $list['totalCount'] ]; } else { $data = $query->where(['is_delete' => LocalDeliveryCourier::IS_DELETE_NO])->orderBy("id desc")->asArray()->all(); foreach ($data['list'] as &$val) { $val['created_at'] = date('Y-m-d H:i:s', $val['created_at']); $val['updated_at'] = date('Y-m-d H:i:s', $val['updated_at']); $val['apply_time'] = $val['apply_time'] ? date('Y-m-d H:i:s', $val['apply_time']) : ""; $area = Json::decode($val['area'], true); $village = District::findOne($area[0]['village_id']); $town = District::findOne($area[0]['town_id']); $district = District::findOne($area[0]['district_id']); $city = District::findOne($area[0]['city_id']); $province = District::findOne($area[0]['province_id']); if ($village) { $val['parent_name'] = $province->name . '/' . $city->name . '/' . $district->name . '/' . $town->name . '/' . $village->name; } elseif ($town) { $val['parent_name'] = $province->name . '/' . $city->name . '/' . $district->name . '/' . $town->name; } elseif ($district) { $val['parent_name'] = $province->name . '/' . $city->name . '/' . $district->name; } else { $val['parent_name'] = ''; } $val['store_name'] = $val['store_id'] > 0 ? Store::findOne($val['store_id'])->name : ''; } } return [ 'code' => 0, 'msg' => 'success', 'data' => $data ]; } public function delCourier() { if ($this->validate()) { $t = \Yii::$app->db->beginTransaction(); if ($this->scenario !== self::SCENARIO_DEL) { return [ 'code' => 1, 'msg' => '删除失败' ]; } $model = LocalDeliveryCourier::findOne(['id' => $this->id]); $model->is_delete = LocalDeliveryCourier::IS_DELETE_YES; if (!$model || !$model->save()) { $t->rollBack(); return [ 'code' => 1, 'msg' => $model->getErrorSummary(false)[0] ]; } $t->commit(); return [ 'code' => 0, 'msg' => '删除成功' ]; // 所有输入数据都有效 all inputs are valid } else { // 验证失败:$errors 是一个包含错误信息的数组 return [ 'code' => 1, "msg" => $this->getErrorSummary(false)[0] ]; } } public function applyCourier() { if ($this->validate()) { $t = \Yii::$app->db->beginTransaction(); $model = LocalDeliveryCourier::findOne(['id' => $this->id]); if($model->state != 1) { return [ 'code' => 1, 'msg' => '申请已审核,请勿重复提交' ]; } if($model->is_delete != 0) { return [ 'code' => 1, 'msg' => '记录不存在,请刷新页面' ]; } $model->state = $this->state; $model->apply_time = time(); if (!$model || !$model->save()) { $t->rollBack(); return [ 'code' => 1, 'msg' => $model->getErrorSummary(false)[0] ]; } $t->commit(); return [ 'code' => 0, 'msg' => '审核成功' ]; // 所有输入数据都有效 all inputs are valid } else { // 验证失败:$errors 是一个包含错误信息的数组 return [ 'code' => 1, "msg" => $this->getErrorSummary(false)[0] ]; } } public static function getCourierList() { return LocalDeliveryCourier::find()->where(['is_delete' => LocalDeliveryCourier::IS_DELETE_NO])->orderBy(['sort desc, id desc'])->select('*')->asArray()->all(); } }