| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\admin\models;
- use app\models\District;
- use app\models\LocalDeliveryCourier;
- use app\models\Store;
- use yii\base\Model;
- use yii\helpers\Json;
- class CourierForm extends Model
- {
- public $id;
- public $saas_user_id;
- public $real_name;
- public $real_code;
- public $real_just_pic;
- public $real_back_pic;
- public $type = 1;
- public $money;
- public $total_money;
- public $work_time;
- public $area;
- public $state;
- public $status;
- public $is_auto;
- public $is_delete;
- public $store_id = 0;
- public $source;
- public $apply_time = 0;
- public $max_num = 0;
- public $mobile;
- public $is_have_page = 1;
- //搜索
- public $search_key;
- public $search_is_show;
- const SCENARIO_ADD = 'add';
- const SCENARIO_EDIT = 'edit';
- const SCENARIO_DEL = 'del';
- const SCENARIO_LIST = 'list';
- // const SCENARIO_APPLY = 'apply';
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- /* return [
- [['is_delete', 'is_have_page', 'parent_id'], 'integer'],
- [['name'], 'string', 'max' => 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();
- }
- }
|