'require|max:64', 'gender' => 'require|in:1,2', 'age' => 'require', 'id_card' => 'require|idCard', 'education' => 'require', 'nation' => 'require', 'province_id' => 'require', 'city_id' => 'require', // 'region_id' => 'require', 'address_detail' => 'require', 'skill_id' => 'require|checkSkill', 'goods_ids' => 'require|array|checkGoods', 'id_card_back' => 'require', 'id_card_front' => 'require', 'portrait_shooting' => 'require', // 'work_photo' => 'require', // 'certification' => 'require', // 'health_certificate'=> 'require', // 'life_photo' => 'require|array', 'work_status' => 'require|in:0,1', 'server_status' => 'require|in:0,1', 'longitude' => 'require', 'latitude' => 'require', // 'field' => 'require|checkField', // 'value' => 'require', // // 'mobile' => 'require|mobile', // 'code' => 'require', ]; protected $message = [ 'id.require' => '请选择技师', 'name.require' => '请输入名称', 'name.max' => '名称不能超过64个字符', 'gender.require' => '请输入性别', 'gender.in' => '性别错误', 'mobile.require' => '请输入联系电话', 'mobile.mobile' => '联系电话格式错误', 'id_card.require' => '请输入身份证', 'id_card.idCard' => '身份证格式错误', 'education.require' => '请输入学历', 'nation.require' => '请输入民族', 'province_id.require' => '请选择省份', 'city_id.require' => '请选择城市', 'region_id.require' => '请选择地区', 'address_detail.require' => '请输入详情地址', 'skill_id.require' => '请选择技能', 'goods_ids.require' => '请选择服务', 'goods_ids.array' => '服务数据错误', 'id_card_back.require' => '请上传身份证人像照', 'id_card_front,require' => '请上传身份证国徽照', 'portrait_shooting,require' => '请上传人像实拍照', 'work_photo.require' => '请上传工作照', 'work_status.require' => '请选择工作状态', 'work_status.in' => '工作状态错误', 'server_status.require' => '请选择服务状态', 'server_status.in' => '服务状态错误', 'longitude.require' => '请在地图上标记位置', 'latitude.require' => '请在地图上标记位置', 'field.require' => '参数缺失', 'value.require' => '值不存在', 'code.require' => '参数缺失', ]; public function sceneId() { return $this->only(['id'=>true]); } public function sceneApply(){ return $this->remove(['field'=>true,'value'=>true,'code'=>true]); } public function sceneUpdate(){ return $this->remove(['work_status'=>true,'server_status'=>true,'field'=>true,'value'=>true,'mobile'=>true,'code'=>true]); } public function sceneSetPersonalData() { return $this->only(['field','value']); } public function sceneBindMobile() { return $this->only(['mobile', 'code']); } /** * @notes 验证技能 * @param $value * @param $rule * @param $data * @return string|true * @author cjhao * @date 2024/8/20 17:44 */ public function checkSkill($value,$rule,$data) { $skill = Skill::where(['id'=>$value])->findOrEmpty(); if($skill->isEmpty()){ return '服务技能不存在,请重新刷新'; } return true; } /** * @notes * @param $value * @param $rule * @param $data * @return string|true * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author cjhao * @date 2024/8/20 18:15 */ public function checkGoods($value,$rule,$data) { $shopId = 0; $coachId = $data['coach_id'] ?? $data['id']; if($coachId){ $shopId = Coach::where(['id'=>$coachId])->value('shop_id') ?: 0; } $skillLists = (new CoachLogic())->skillLists($shopId); $skillLists = array_column($skillLists,null,'id'); $goodsLists = $skillLists[$data['skill_id']]['goods_list'] ?? []; if(empty($goodsLists)){ return '请选择服务'; } $goodsIds = array_column($goodsLists,'id'); foreach ($value as $id) { if(!in_array($id,$goodsIds)){ return '服务数据错误,请刷新技能重新选择'; } } return true; } /** * @notes 校验设置个人资料 * @param $value * @param $rule * @param $data * @return string|true * @author ljj * @date 2024/12/3 下午3:59 */ protected function checkField($value,$rule,$data) { $allowField = ['gender','introduction']; if(!in_array($value,$allowField)){ return '参数错误'; } switch ($value) { case 'mobile': $staff = Coach::where([ ['mobile', '=', $data['value']], ['id', '<>', $data['coach_id']] ])->findOrEmpty(); if(!$staff->isEmpty()) { return '手机号已被绑定'; } break; } return true; } }