findOrEmpty(); if(!$master->isEmpty() and $master->status==1){ throw new \Exception('该手机号已入驻'); } if(!$master->isEmpty() and $master->status==0){ throw new \Exception('该手机号后台审核中'); } MasterWorkerRegister::create([ 'maintain_exp_type' => isset($params['maintain_exp_type'])?$params['maintain_exp_type']:0, 'other_exp_type' => isset($params['other_exp_type'])?$params['other_exp_type']:'', 'province' => $params['province'], 'city' => $params['city'], 'area_name' => $params['area_name'], 'vehicle_type' => $params['vehicle_type'], 'name' => $params['name'], 'age' => $params['age'], 'mobile' => $params['mobile'], 'status' => $params['status'], 'is_credential' => !empty($params['is_credential'])?$params['is_credential']:0, 'credential_name' => !empty($params['is_credential'])?implode(',', $params['credential_name']):'', 'address' => !empty($params['address'])?$params['address']:'', ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2024/07/09 19:45 */ public static function edit(array $params): bool { Db::startTrans(); try { $updata = [ 'maintain_exp_type' => isset($params['maintain_exp_type'])?$params['maintain_exp_type']:0, 'other_exp_type' => isset($params['other_exp_type'])?$params['other_exp_type']:'', 'province' => $params['province'], 'city' => $params['city'], 'area_name' => $params['area_name'], 'vehicle_type' => $params['vehicle_type'], 'name' => $params['name'], 'age' => $params['age'], 'mobile' => $params['mobile'], 'status' => $params['status'], 'is_credential' => !empty($params['is_credential'])?$params['is_credential']:0, 'credential_name' => !empty($params['is_credential'])?implode(',', $params['credential_name']):'', 'address' => !empty($params['address'])?$params['address']:'', 'update_time'=> time(), ]; //审批通过逻辑处理 if($params['status'] == 1){ $params['identity_source'] = 1; $updata['worker_id'] = self::createMasterWorker($params); if($updata['worker_id']){ $block_setting = TrainingBlockConfigLogic::getBlockConfig(1); TrainingWorkerTaskLogic::add([ 'master_worker_id' => $updata['worker_id'], 'shop_goods_id' => $block_setting['shop_goods_id']??0, 'training_task_id' => $block_setting['training_task_id']??0, 'task_list' => $block_setting['task_list']??0, ]); } } MasterWorkerRegister::where('id', $params['id'])->update($updata); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } public static function createMasterWorker(array $params) { $where = ['mobile' => $params['mobile']]; $masterWorker = MasterWorker::where($where)->findOrEmpty(); if ($masterWorker->isEmpty()) { $number = MasterWorker::count(); $number += 1; if ($number < 100000) { $number = str_pad($number, 6, '0', STR_PAD_LEFT); } $userSn = MasterWorker::createUserSn(); $passwordSalt = Config::get('project.unique_identification'); $password = create_password($params['mobile'], $passwordSalt); $avatar = ConfigService::get('default_image', 'user_avatar'); $service_area_id = ServiceArea::serviceAreaId(['lon' => $params['lon'], 'lat' => $params['lat']]); $masterWorker = MasterWorker::create([ 'sn' => $userSn, 'worker_number' => $number, 'avatar' => $avatar, 'nickname' => '用户' . $userSn, 'account' => $params['mobile'], 'mobile' => $params['mobile'], 'real_name' => $params['real_name']??'', 'password' => $password, 'channel' => 1, 'lon' => $params['lon']??0, 'lat' => $params['lat']??0, 'province' => $params['province']??0, 'city' => $params['city']??0, 'service_area_id' => $service_area_id, 'area_name' => $params['area_name']??'', 'tenant_id' => $params['tenant_id']??0, 'category_ids' => $params['category_ids']??'', 'identity_source' => $params['identity_source']??0, ]); //添加工程师汇总评分数据 MasterWorkerScore::create([ 'worker_id' => $masterWorker->id ]); /*$block_setting = TrainingBlockConfigLogic::getBlockConfig(1); TrainingWorkerTaskLogic::add([ 'master_worker_id' => $masterWorker->id, 'shop_goods_id' => $block_setting['shop_goods_id']??0, 'training_task_id' => $block_setting['training_task_id']??0, 'task_list' => $block_setting['task_list']??0, ]);*/ $masterWorkerRegister = MasterWorkerRegister::where($where)->findOrEmpty(); if ($masterWorkerRegister->isEmpty()) { MasterWorkerRegister::create([ 'maintain_exp_type' => isset($params['maintain_exp_type'])?$params['maintain_exp_type']:0, 'other_exp_type' => isset($params['other_exp_type'])?$params['other_exp_type']:'', 'other_exp_name' => (isset($params['other_exp_name']) && isset($params['other_exp_type']) && $params['other_exp_type'] == 4)?$params['other_exp_name']:'', 'province' => $params['province']??0, 'city' => $params['city']??0, 'area_name' => $params['area_name']??'', 'vehicle_type' => $params['vehicle_type']??0, 'name' => $params['real_name']??'', 'age' => $params['age']??0, 'sex' => $params['sex']??0, 'status' => 1, 'worker_id' => $masterWorker->id, 'mobile' => $params['mobile'], 'is_credential' => !empty($params['is_credential'])?$params['is_credential']:0, 'credential_name' => !empty($params['credential_name'])?$params['credential_name']:'', 'credential_images'=>!empty($params['credential_images'])?json_encode($params['credential_images'],JSON_UNESCAPED_UNICODE):'', 'lon' => !empty($params['lon'])?$params['lon']:0, 'lat' => !empty($params['lat'])?$params['lat']:0, 'address' => !empty($params['address'])?$params['address']:'', ]); } } return $masterWorker->id; } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2024/07/09 19:45 */ public static function delete(array $params): bool { return MasterWorkerRegister::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2024/07/09 19:45 */ public static function detail($params): array { return MasterWorkerRegister::findOrEmpty($params['id'])->toArray(); } public static function eventNotice($params): bool { $registerInfo = MasterWorkerRegister::findOrEmpty($params['id'])->toArray(); if ($registerInfo && $registerInfo['worker_id']) { $account = MasterWorker::where('id',$registerInfo['worker_id'])->value('account'); event('Notice', [ 'scene_id' => 107, 'params' => [ 'user_id' => $registerInfo['worker_id'], 'mobile' => $registerInfo['mobile'], 'account' => $account, 'password' => $registerInfo['mobile'], ] ]); return true; } return false; } }