$params['category_ids'],"ids"=>$ids]; $params['category_ids'] = implode(',',$ids); } Db::startTrans(); try { $params['team_id'] = MasterWorkerTeam::where('tenant_id',$params['tenant_id'])->value('id')??""; $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, 'real_avatar' => $params['real_avatar'], 'real_name' => $params['real_name'], 'nickname' => '用户' . $userSn, 'account' => $params['mobile'], 'password' => $params['password'], 'mobile' => $params['mobile'], 'sex' => $params['sex'], 'channel' => $params['channel'], 'is_disable' => $params['is_disable'], 'login_ip' => $params['login_ip'], 'login_time' => $params['login_time'], 'is_new_user' => $params['is_new_user'], 'estimate_money' => $params['estimate_money'], 'user_money' => $params['user_money'], 'exp' => $params['exp'], 'lon' => $params['lon'], 'lat' => $params['lat'], 'distance' => $params['distance'], 'province' => $params['province'], 'city' => $params['city'], 'service_area_id' => $service_area_id, 'area_name' => $params['area_name'], 'earnest_money' => $params['earnest_money'], 'earnest_money_usable' => $params['earnest_money_usable'], 'earnest_money_freeze' => $params['earnest_money_freeze'], 'installment_ratio' => $params['installment_ratio'], 'retention_pay_status' => $params['retention_pay_status'], 'retention_money_status' => $params['retention_money_status'], 'category_ids' => $params['category_ids']??'', 'cooperation' => $params['cooperation']??0, 'time_period' => $params['time_period']?implode(',',$params['time_period']):'', 'work_status' => $params['work_status']??0, 'recruiting_behalf' => $params['recruiting_behalf']??'', 'settlement_type' => $params['settlement_type']??2, 'labels' => (isset($params['labels']) && $params['labels'])?implode(',',$params['labels']):'', 'remark' => $params['remark']??'', 'tenant_id' => $params['tenant_id'], 'team_id' => $params['team_id']??0, 'team_role' => 2, 'audit_state' => 1, 'identity_source' => 1, ]); $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::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']:'', ]); 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/10 18:17 */ public static function edit(array $params): bool { if($params['category_ids']){ foreach ($params['category_ids'] as $val){ is_array($val)?($ids[] = end($val)):($ids[] = $val); } //$params['category_ids'] = ["goods_category_ids"=>$params['category_ids'],"ids"=>$ids]; $params['category_ids'] = implode(',',$ids); } Db::startTrans(); try { $service_area_id = ServiceArea::serviceAreaId(['lon' => $params['lon'], 'lat' => $params['lat']]); $params['team_id'] = MasterWorkerTeam::where('tenant_id',$params['tenant_id'])->value('id')??""; MasterWorker::where('id', $params['id'])->update([ 'sn' => $params['sn'], 'avatar' => $params['avatar'], 'real_avatar' => $params['real_avatar'], 'real_name' => $params['real_name'], 'nickname' => $params['nickname'], 'account' => $params['account'], 'password' => $params['password'], 'mobile' => $params['mobile'], 'sex' => $params['sex'], 'channel' => $params['channel'], 'is_disable' => $params['is_disable'], 'login_ip' => $params['login_ip'], 'login_time' => $params['login_time'], 'is_new_user' => $params['is_new_user'], 'estimate_money' => $params['estimate_money'], 'user_money' => $params['user_money'], 'exp' => $params['exp'], 'lon' => $params['lon'], 'lat' => $params['lat'], 'distance' => $params['distance'], 'province' => $params['province'], 'city' => $params['city'], 'service_area_id' => $service_area_id, 'area_name' => $params['area_name'], 'earnest_money' => $params['earnest_money'], 'earnest_money_usable' => $params['earnest_money_usable'], 'earnest_money_freeze' => $params['earnest_money_freeze'], 'installment_ratio' => $params['installment_ratio'], 'retention_pay_status' => $params['retention_pay_status'], 'retention_money_status' => $params['retention_money_status'], 'category_ids' => $params['category_ids']??'', 'cooperation' => $params['cooperation']??0, 'time_period' => $params['time_period']?implode(',',$params['time_period']):'', 'work_status' => $params['work_status']??0, 'recruiting_behalf' => $params['recruiting_behalf']??'', 'settlement_type' => $params['settlement_type']??2, 'labels' => (isset($params['labels']) && $params['labels'])?implode(',',$params['labels']):'', 'remark' => $params['remark']??'', 'tenant_id' => $params['tenant_id'], 'team_id' => $params['team_id']??0, 'team_role' => 2, ]); 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/10 18:17 */ public static function delete(array $params): bool { return MasterWorker::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2024/07/10 18:17 */ public static function detail($params): array { $info = MasterWorker::with(['workerInfo'=>function(Query $query){ $query->field('worker_id,real_name,id_card,id_card_front_img,id_card_opposite_img,mobile,address'); },'workerRegister'=>function(Query $query){ $query->field('worker_id,maintain_exp_type,other_exp_type,city,vehicle_type,name,age,mobile')->append(['maintain_exp_type_text','other_exp_type_text','vehicle_type_text','city_text']); }]) ->append(['time_period']) ->findOrEmpty($params['id'])->toArray(); if(!empty($info['category_ids'])){ $info['category_ids'] = explode(',',$info['category_ids']); $info['category_ids'] = array_map('intval', $info['category_ids']); } $info['is_up_retention_pay'] = 0; if(MasterWorkerRetentionMoneyLog::where(['worker_id' => $params['id'],'action' => 1])->count('id') > 0){ $info['is_up_retention_pay'] = 1; } return $info; } /** * 获取加盐密码 * @param $params * @return false|string */ public static function saltToPassword($params){ try{ $passwordSalt = Config::get('project.unique_identification'); $password = create_password($params['password'], $passwordSalt); return ['password' => $password]; } catch (\Exception $e){ self::setError($e->getMessage()); return false; } } /** * 获取所有工程师选项列表 * @param $params * @return false|string */ public static function getAllWorkers($params){ try{ return MasterWorker::where(['is_disable'=>0])->column('id,id as value,worker_number as name,account,mobile'); } catch (\Exception $e){ self::setError($e->getMessage()); return false; } } }