"; print_r($pram); echo ""; } } /** * @param $id => 订单id * @param $type => 1 技师课程支付,2技师商城支付,3用户呼叫服务支付 * @return mixed */ function wx_pay($id, $type) { $model = ''; $booy = ''; $wxpay = cmf_get_option('wxpay'); switch ($type) { case 1: $info['appid'] = $wxpay['js_appid']; $info['app_secret'] = $wxpay['js_app_secret']; $info['mch_id'] = $wxpay['js_mch_id']; $info['key'] = $wxpay['js_key']; $model = new \api\js\model\JsCourseOrderModel(); $booy = '购买视频课程'; $order_info = $model::get($id); if (!$order_info) { return ['return_code' => 'FAIL', 'return_msg' => '订单不存在']; } if ($order_info['status'] != 0) { return ['return_code' => 'FAIL', 'return_msg' => '订单已支付']; } break; case 2: $info['appid'] = $wxpay['js_appid']; $info['app_secret'] = $wxpay['js_app_secret']; $info['mch_id'] = $wxpay['js_mch_id']; $info['key'] = $wxpay['js_key']; $booy = '购买商品'; $model = new \api\js\model\GoodsOrderModel(); $order_info = $model::get($id, ['seckill']); if (!$order_info) { return ['return_code' => 'FAIL', 'return_msg' => '订单不存在']; } if ($order_info['status'] != 0) { return ['return_code' => 'FAIL', 'return_msg' => '订单已支付']; } $up['pay_price'] = $order_info['pay_price']; if ($order_info->seckill) { if ($order_info->seckill->end_time < time()) { $up['pay_price'] = round($order_info['price'] * $order_info['num'], 2); } } $model->allowField(true)->isUpdate(true)->save($up, ['id' => $id]); break; case 3: $booy = '呼叫服务'; $info['appid'] = $wxpay['appid']; $info['app_secret'] = $wxpay['app_secret']; $info['mch_id'] = $wxpay['mch_id']; $info['key'] = $wxpay['key']; $model = new \api\js\model\JsOrderModel(); $order_info = $model::get($id); if (!$order_info) { return ['return_code' => 'FAIL', 'return_msg' => '订单不存在']; } if ($order_info['status'] != 0) { return ['return_code' => 'FAIL', 'return_msg' => '订单已支付']; } if ($order_info['user_discount_id']) { $userDiscountInfo = Db::name('user_discount')->where('id', $order_info['user_discount_id'])->find(); if ($userDiscountInfo['past_time'] < time()) { Db::name('user_discount')->where('id', $order_info['user_discount_id'])->update(['status' => 2]); $model->allowField(true)->isUpdate(true)->save(['pay_price' => $order_info['price']], ['id' => $id]); } if ($userDiscountInfo['project_id'] != 0) { if ($userDiscountInfo['project_id'] != $order_info['project_id']) { $model->allowField(true)->isUpdate(true)->save(['pay_price' => $order_info['price']], ['id' => $id]); } } } break; case 100: //加钟支付 $booy = '服务加钟支付'; $info['appid'] = $wxpay['appid']; $info['app_secret'] = $wxpay['app_secret']; $info['mch_id'] = $wxpay['mch_id']; $info['key'] = $wxpay['key']; $model = new \api\js\model\JsOrderAddtimeModel(); $order_info = $model::get($id); if (!$order_info) { return ['return_code' => 'FAIL', 'return_msg' => '订单不存在']; } if ($order_info['status'] != 0) { return ['return_code' => 'FAIL', 'return_msg' => '订单已支付']; } break; } if (!$model) { return ['return_code' => 'FAIL', 'return_msg' => '参数异常']; } $notify_url = "http://{$_SERVER['SERVER_NAME']}/api/js/paynotify/wx/type/" . $type; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $pay_data['trade_type'] = 'APP'; $pay_data['appid'] = $info['appid']; $pay_data['mch_id'] = $info['mch_id']; $pay_data['nonce_str'] = cmf_random_string(32); $pay_data['body'] = $booy; $pay_data['out_trade_no'] = $model::get($id)['order_sn']; $pay_data['total_fee'] = $model::get($id)['pay_price'] * 100; $pay_data['spbill_create_ip'] = get_client_ip(); $pay_data['notify_url'] = $notify_url; $pay_data['sign_type'] = 'MD5'; ksort($pay_data); $str = ''; foreach ($pay_data as $k => $v) { $str .= $k . '=' . $v . '&'; } $str .= 'key=' . $info['key']; $pay_data['sign'] = strtoupper(md5($str)); //加密 $str = array_toxml($pay_data); $result = curl_post_ssl1($url, $str); $res_array = xml_toarray($result); if ($res_array['return_code'] == 'SUCCESS' && $res_array['result_code'] == 'SUCCESS') { $resl['appid'] = $res_array['appid']; $resl['prepayid'] = $res_array['prepay_id']; $resl['partnerid'] = $res_array['mch_id']; $resl['noncestr'] = cmf_random_string(32); $resl['timestamp'] = time(); $resl['package'] = 'Sign=WXPay'; ksort($resl); $str = ''; foreach ($resl as $k => $v) { $str .= $k . '=' . $v . '&'; } //拼接API密钥 $str .= 'key=' . $info['key']; $resl['sign'] = strtoupper(md5($str)); //加密 return $resl; } else { return $res_array; } } function aly_pay($id, $type) { //http://{$_SERVER['SERVER_NAME']}/api/js/pay_notify/aliy $model = ''; $booy = ''; $alipay = cmf_get_option('alipay'); $aop = new AopCertClient(); $aop->appId = $alipay['js_app_id']; $aop->apiVersion = '2.0'; $aop->signType = 'RSA2'; $aop->postCharset = 'utf-8'; $PrivateKey = cmf_get_file_download_url($alipay['Apply_the_secret_key_file']); $PrivateKey = str_replace('https', 'http', $PrivateKey); //$aop->rsaPrivateKeyFilePath = cmf_get_file_download_url($alipay['Apply_the_secret_key_file']); $aop->rsaPrivateKeyFilePath = $PrivateKey; $appCertPath = cmf_get_file_download_url($alipay['Applied_public_Key_certificate']); $alipayCertPath = cmf_get_file_download_url($alipay['Pay_alipay_Public_key_certificate']); $rootCertPath = cmf_get_file_download_url($alipay['Alipay_Root_certificate']); switch ($type) { case 1: $appCertPath = cmf_get_file_download_url($alipay['js_Applied_public_Key_certificate']); $alipayCertPath = cmf_get_file_download_url($alipay['js_Pay_alipay_Public_key_certificate']); $rootCertPath = cmf_get_file_download_url($alipay['js_Alipay_Root_certificate']); break; case 2: $appCertPath = cmf_get_file_download_url($alipay['js_Applied_public_Key_certificate']); $alipayCertPath = cmf_get_file_download_url($alipay['js_Pay_alipay_Public_key_certificate']); $rootCertPath = cmf_get_file_download_url($alipay['js_Alipay_Root_certificate']); break; } $appCertPath = str_replace('https', 'http', $appCertPath); $rootCertPath = str_replace('https', 'http', $rootCertPath); $alipayCertPath = str_replace('https', 'http', $alipayCertPath); $aop->appCertSN = $aop->getCertSN($appCertPath); //调用getCertSN获取证书序列号 $aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath); $aop->alipayCertSN = $alipayCertPath; $requrst = new AlipayTradeAppPayRequest(); switch ($type) { case 1: $model = new \api\js\model\JsCourseOrderModel(); $booy = '购买视频课程'; $order_info = $model::get($id); if (!$order_info) { return ['return_code' => 'FAIL', 'return_msg' => '订单不存在']; } if ($order_info['status'] != 0) { return ['return_code' => 'FAIL', 'return_msg' => '订单已支付']; } break; case 2: $booy = '购买商品'; $model = new \api\js\model\GoodsOrderModel(); $order_info = $model::get($id, ['seckill']); if (!$order_info) { return ['return_code' => 'FAIL', 'return_msg' => '订单不存在']; } if ($order_info['status'] != 0) { return ['return_code' => 'FAIL', 'return_msg' => '订单已支付']; } $up['pay_price'] = $order_info['pay_price']; if ($order_info->seckill) { if ($order_info->seckill->end_time < time()) { $up['pay_price'] = round($order_info['price'] * $order_info['num'], 2); } } $model->allowField(true)->isUpdate(true)->save($up, ['id' => $id]); break; case 3: $aop->appId = $alipay['app_id']; $booy = '呼叫服务'; $model = new \api\js\model\JsOrderModel(); $order_info = $model::get($id); if (!$order_info) { return ['return_code' => 'FAIL', 'return_msg' => '订单不存在']; } if ($order_info['status'] != 0) { return ['return_code' => 'FAIL', 'return_msg' => '订单已支付']; } if ($order_info['user_discount_id']) { $userDiscountInfo = Db::name('user_discount')->where('id', $order_info['user_discount_id'])->find(); if ($userDiscountInfo['past_time'] < time()) { Db::name('user_discount')->where('id', $order_info['user_discount_id'])->update(['status' => 2]); $model->allowField(true)->isUpdate(true)->save(['pay_price' => $order_info['price']], ['id' => $id]); } if ($userDiscountInfo['project_id'] != 0) { if ($userDiscountInfo['project_id'] != $order_info['project_id']) { $model->allowField(true)->isUpdate(true)->save(['pay_price' => $order_info['price']], ['id' => $id]); } } } break; case 100: //加钟支付 $aop->appId = $alipay['app_id']; $booy = '服务加钟'; $model = new \api\js\model\JsOrderAddtimeModel(); $order_info = $model::get($id); if (!$order_info) { return ['return_code' => 'FAIL', 'return_msg' => '订单不存在']; } if ($order_info['status'] != 0) { return ['return_code' => 'FAIL', 'return_msg' => '订单已支付']; } break; } if (!$model) { return ['return_code' => 'FAIL', 'return_msg' => '参数异常']; } $biz_array['out_trade_no'] = $model::get($id)['order_sn']; //商户网站唯一订单号; $biz_array['total_amount'] = $model::get($id)['pay_price']; $biz_array['body'] = $booy; // $biz_array['subject'] = $booy; // $biz_array['product_code'] = 'QUICK_MSECURITY_PAY'; $data['biz_content'] = json_encode($biz_array, JSON_UNESCAPED_UNICODE); $notify_url = "http://{$_SERVER['SERVER_NAME']}/api/js/paynotify/aliy/type/" . $type; $requrst->setNotifyUrl($notify_url); $requrst->setBizContent($data['biz_content']); $result = $aop->sdkExecute($requrst); // dump($result); return $result; } function balance_pay($id, $type) { $model = ''; $booy = ''; switch ($type) { case 1: Db::startTrans(); try { $model = new \api\js\model\JsCourseOrderModel(); $booy = '购买视频课程'; $order_info = $model::get($id); if ($order_info['status'] != 0) { return '订单已支付'; } Db::name('user')->where('id', $order_info['user_id'])->setDec('balance', $order_info['pay_price']); $log['user_id'] = $order_info['user_id']; $log['money'] = -$order_info['pay_price']; $log['type'] = 3; $log['remark'] = $booy; $log['add_time'] = time(); $log['obj_id'] = $id; Db::name('user_money_log')->insert($log); $up['status'] = 1; $up['pay_time'] = time(); $up['pay_type'] = '余额支付'; $model->allowField(true)->isUpdate(true)->save($up, ['id' => $id]); Db::commit(); return true; } catch (ErrorException $e) { Db::rollback(); return '支付失败'; } break; case 2: Db::startTrans(); try { $booy = '购买商品'; $model = new \api\js\model\GoodsOrderModel(); $order_info = $model::get($id, ['seckill']); if ($order_info['status'] != 0) { return '订单已支付'; } $up['pay_price'] = $order_info['pay_price']; if ($order_info->seckill) { if ($order_info->seckill->end_time < time()) { $up['pay_price'] = round($order_info['price'] * $order_info['num'], 2); } } $user_balance = UserModel::get($order_info['user_id'])['balance']; if ($user_balance < $up['pay_price']) { return '余额不足!'; } $up['status'] = 1; $up['pay_time'] = time(); $up['pay_type'] = '余额支付'; $model->allowField(true)->isUpdate(true)->save($up, ['id' => $id]); $log['user_id'] = $order_info['user_id']; $log['money'] = -$up['pay_price']; $log['type'] = 3; $log['remark'] = $booy; $log['add_time'] = time(); $log['obj_id'] = $id; Db::name('user_money_log')->insert($log); $log1['admin_id'] = $order_info['user_id']; $log1['action_time'] = date('Y-m-d H:i:s'); $log1['obj_id'] = $id; $log1['remark'] = '订单支付'; Db::name('goods_order_action_log')->insert($log1); Db::name('user')->where('id', $order_info['user_id'])->setDec('balance', $up['pay_price']); Db::commit(); return true; } catch (ErrorException $e) { Db::rollback(); return '支付失败'; } break; case 3: $booy = '呼叫服务'; $model = new \api\js\model\JsOrderModel(); break; } if (!$model) { return '支付类型错误!'; } } /** * @param $order_id * @param $type 1下单分销 2接单分销 */ function fenxiao($order_id, $type) { $orderInfo = \api\js\model\JsOrderModel::get($order_id); $userModel = new UserModel(); if ($type == 1) { $field = 'user_id'; $log['remark'] = '好友下单'; $price = $orderInfo['price']; $user_info = UserModel::get($orderInfo['user_id']); if (empty($user_info['district_id'])) { $mergerName = '中国,' . $orderInfo['province'] . ',' . $orderInfo['city'] . ',' . $orderInfo['district']; $reginfo = Db::name('region')->where("mergerName='$mergerName'")->find(); $user_info['district_id'] = $reginfo['id']; } $agency_info = \api\js\model\AgencyModel::where(['district_id' => $user_info['district_id'], 'renk_id' => 2])->find(); $agency_info_id = $agency_info['id']; $user_agency_id = Db::name('user')->where(function ($query) use ($agency_info_id) { $query->where('agency_id', $agency_info_id); $query->whereOr('agency_id', 'like', $agency_info_id . ',%'); $query->whereOr('agency_id', 'like', '%,' . $agency_info_id); $query->whereOr('agency_id', 'like', '%,' . $agency_info_id . ',%'); })->value('id'); $user_id = $orderInfo['user_id']; $money = round($price * $agency_info['ratio'] / 100, 2); if ($money > 0 && $user_agency_id) { $log['user_id'] = $user_agency_id; $log['money'] = $money; $log['type'] = 5; $log['add_time'] = time(); $log['obj_id'] = $order_id; $log['is_type'] = $type; $log['xia_user_id'] = $user_id; $log['remark'] = '用户下单,区代提成'; Db::name('user_money_log')->insert($log); UserModel::where('id', $user_agency_id)->setInc('balance', $log['money']); } // 检测是否推广分佣 if ($orderInfo['type'] == '3') return false; // $user_parent_id = $userModel::get($user_id)['parent_id']; // $user_parent_id1 = $userModel::get($user_id)['parent_id1']; $user_parent_id = $user_info['parent_id']; $user_parent_id1 = $user_info['parent_id1']; if ($user_parent_id) { $user_parent_info = UserModel::get($user_parent_id); $distributorInfo = Db::name('distributor')->where('id', $user_parent_info['distributor_id'])->find(); $money = round($price * $distributorInfo['yi_ratio'] / 100, 2); if ($money > 0) { $log['user_id'] = $user_parent_id; $log['money'] = $money; $log['type'] = 3; $log['add_time'] = time(); $log['obj_id'] = $order_id; $log['is_type'] = $type; $log['xia_user_id'] = $user_id; $log['yue'] = round($user_parent_info['balance'] + $money, 2); $log['remark'] = '一级好友下单提成'; Db::name('user_money_log')->insert($log); UserModel::where('id', $user_parent_id)->setInc('balance', $log['money']); } } if ($user_parent_id1) { $user_parent_info1 = UserModel::get($user_parent_id1); $distributorInfo1 = Db::name('distributor')->where('id', $user_parent_info1['distributor_id'])->find(); $money = round($price * $distributorInfo1['er_ratio'] / 100, 2); if ($money > 0) { $log['user_id'] = $user_parent_id1; $log['money'] = $money; $log['type'] = 4; $log['add_time'] = time(); $log['obj_id'] = $order_id; $log['xia_user_id'] = $user_id; $log['is_type'] = $type; $log['yue'] = round($user_parent_info1['balance'] + $money, 2); $log['remark'] = '二级好友下单提成'; Db::name('user_money_log')->insert($log); UserModel::where('id', $user_parent_id1)->setInc('balance', $log['money']); } } } else { if (!$orderInfo['jiedan_js_id']) { return false; } // 检测是否推广分佣 if ($orderInfo['type'] == '3') return false; $user_id = Db::name('js')->where('id', $orderInfo['jiedan_js_id'])->value('user_id'); $log['remark'] = '好友接单'; // $price = $orderInfo['order_price']; $price = $orderInfo['price']; $user_info = $userModel::get($user_id); // $user_parent_id = $userModel::get($user_id)['parent_id']; // $user_parent_id1 = $userModel::get($user_id)['parent_id1']; $user_parent_id = $user_info['parent_id']; $user_parent_id1 = $user_info['parent_id1']; if ($user_parent_id) { // 检测分佣是否完结 $obtainedMoney = Db::name('user_money_log')->where('user_id', $user_parent_id)->where('xia_user_id', $user_id)->where('type', 3)->where('is_type', 2)->sum('money'); if ($obtainedMoney >= 2000) return false; $user_parent_info = UserModel::get($user_parent_id); // $distributorInfo = Db::name('distributor')->where('id',$user_parent_info['distributor_id'])->find(); $money = round($price * 1 / 100, 2); if ($money > 0) { $log['user_id'] = $user_parent_id; $log['money'] = $money; $log['type'] = 3; $log['add_time'] = time(); $log['obj_id'] = $order_id; $log['is_type'] = $type; $log['xia_user_id'] = $user_id; $log['yue'] = round($user_parent_info['balance'] + $money, 2); Db::name('user_money_log')->insert($log); UserModel::where('id', $user_parent_id)->setInc('balance', $log['money']); } } // if ($user_parent_id1) { // $user_parent_info1 = UserModel::get($user_parent_id1); // // $distributorInfo1 = Db::name('distributor')->where('id', $user_parent_info1['distributor_id'])->find(); // $money = round($price * 1 / 100, 2); // if ($money > 0) { // $log['user_id'] = $user_parent_id1; // $log['money'] = $money; // $log['type'] = 4; // $log['add_time'] = time(); // $log['obj_id'] = $order_id; // $log['xia_user_id'] = $user_id; // $log['is_type'] = $type; // $log['yue'] = round($user_parent_info1['balance'] + $money, 2); // Db::name('user_money_log')->insert($log); // UserModel::where('id', $user_parent_id1)->setInc('balance', $log['money']); // } // } } /******************************分销商的分金**********************************************/ } /** * 获取可以接单的技师id */ function get_js_ids($ids, $lat = '', $lng = '') { // $JsTimeModel = new JsTimeModel(); // // $week = date('w',time()); // $js_time_list = $JsTimeModel::where(function ($query) use ($ids){ // if(is_array($ids) && count($ids) > 0){ // $query->where('js_id','in',$ids); // } // })->field('js_id,times,weeks')->select()->each(function ($js_time_list) use ($week){ // if($week){ // if(in_array($week,$js_time_list['weeks'])){ // $result = $js_time_list; // return $result; // } // } // }); // // $js_ids = []; // // foreach ($js_time_list as $value){ // foreach ($value['times'] as $v){ // if(strtotime($v['js_end_time']) > strtotime(date('H:i'))){ // if(!in_array($value['js_id'],$js_ids)){ // array_push($js_ids,$value['js_id']); // } // } // } // } $JsSiteModel = new JsSiteModel(); $js_site = $JsSiteModel::where(function ($query) use ($ids) { if ($ids) { $query->where('js_id', 'in', $ids); } })->select(); $distance = cmf_get_option('distance')['distance']; $js_new_ids = []; if ($js_site) { foreach ($js_site as $value) { $distance1 = GetDistance($lat, $lng, $value['lat'], $value['lng'], 2, 2); if ($distance >= $distance1) { if (!in_array($value['js_id'], $js_new_ids)) { array_push($js_new_ids, $value['js_id']); } } } } return $js_new_ids; } function get_js_score($js_id) { $score = Db::name('js_score')->where('status', 1)->where('js_id', $js_id)->sum('score'); $count = Db::name('js_score')->where('status', 1)->where('js_id', $js_id)->count(); $new_score = 0; if ($score > 0 && $count > 0) { $new_score = $score / $count; } return $new_score; } /** * 获取可接项目订单id */ function get_js_order_ids($js_id, $type = 1, $page = 1, $category_id, $distance_filter = true) { $JsOrderModel = new \api\js\model\JsOrderModel(); $js_order_ids = []; $project_new_ids = []; $where['js_delete'] = 1; $js_project_relevancy_where['js_id'] = $js_id; $js_project_relevancy_where['status'] = 1; if ($category_id) { $project_ids1 = Db::name('js_project_category_relevancy')->where('category_id', $category_id)->field('project_id')->select(); $project_ids2 = []; foreach ($project_ids1 as $vo) { $project_ids2[] = $vo['project_id']; } $js_project_relevancy_where['project_id'] = $project_ids2; } $project_ids = Db::name('js_project_relevancy')->where($js_project_relevancy_where)->field('project_id')->select(); $order_new_ids = []; $order_ids = Db::name('js_shield_log')->where('js_id', $js_id)->field('order_id')->select(); foreach ($order_ids as $vo) { $order_new_ids[] = $vo['order_id']; } foreach ($project_ids as $vo) { $project_new_ids[] = $vo['project_id']; } switch ($type) { case 1: $order_list = $JsOrderModel::where('project_id', 'in', $project_new_ids)->where(function ($query) use ($js_id) { $query->where('jiedan_js_id', $js_id); // $query->whereOR('jiedan_js_id',0); }) ->where('id', 'not in', $order_new_ids)->where($where)->page($page, 5)->field('id,lat,lng')->order('id', 'desc')->select(); break; case 2: $order_list = $JsOrderModel::where('project_id', 'in', $project_new_ids)->where(function ($query) use ($js_id) { $query->where('status', 1); $query->where('jiedan_js_id', $js_id); })->where('id', 'not in', $order_new_ids)->where($where)->page($page, 5)->field('id,lat,lng')->order('id', 'desc')->select(); break; case 3: $order_list = $JsOrderModel::where('project_id', 'in', $project_new_ids)->where(['jiedan_js_id' => $js_id, 'status' => 2])->where('id', 'not in', $order_new_ids)->where($where)->page($page, 5)->field('id,lat,lng')->order('id', 'desc')->select(); break; case 4: $order_list = $JsOrderModel::where('project_id', 'in', $project_new_ids)->where(['jiedan_js_id' => $js_id, 'status' => 6])->where('id', 'not in', $order_new_ids)->where($where)->page($page, 5)->field('id,lat,lng')->select(); break; case 5: $order_list = $JsOrderModel::where('project_id', 'in', $project_new_ids)->where(['jiedan_js_id' => $js_id, 'status' => 4])->where('id', 'not in', $order_new_ids)->page($page, 5)->where($where)->field('id,lat,lng')->order('id', 'desc')->select(); break; case 6: $order_list = $JsOrderModel::where('project_id', 'in', $project_new_ids)->where(['jiedan_js_id' => $js_id, 'status' => 3])->where('id', 'not in', $order_new_ids)->where($where)->page($page, 5)->field('id,lat,lng')->order('id', 'desc')->select(); break; case 7: $order_list = $JsOrderModel::where('project_id', 'in', $project_new_ids)->where(['jiedan_js_id' => $js_id, 'status' => 5])->where('id', 'not in', $order_new_ids)->where($where)->page($page, 5)->field('id,lat,lng')->order('id', 'desc')->select(); break; case 8: $order_list = $JsOrderModel::where('project_id', 'in', $project_new_ids)->where(['jiedan_js_id' => 0, 'status' => 1])->where('id', 'not in', $order_new_ids)->where($where)->page($page, 5)->field('id,lat,lng')->order('id', 'desc')->select(); break; } $js_site_info = Db::name('js_site')->where('js_id', $js_id)->find(); $distance = cmf_get_option('distance')['distance']; foreach ($order_list as $value) { $distance1 = GetDistance($value['lat'], $value['lng'], $js_site_info['lat'], $js_site_info['lng'], 2, 2); //value['lat'],/$value['lng'],$js_site_info['lat'],$js_site_info['lng'],2,2); if ($distance_filter && $distance >= $distance1 || !$distance_filter) { $js_order_ids[] = $value['id']; } } return $js_order_ids; } function getdistrict($lng, $lat) { $url = 'https://restapi.amap.com/v3/geocode/regeo?parameters&location=' . $lng . ',' . $lat . '&key=3c813127122a372b7b0a6f0db7eb911e'; $res = cmf_curl_get($url); $res_array = json_decode($res, true); return $res_array; } function get_user_and_userjs($user_id, $district_id = '', $city_id = '', $renk_id = '') { $UserModel = new UserModel(); $agencyModel = new \api\js\model\AgencyModel(); $agency_id = $UserModel::get($user_id)['agency_id']; $agency_ids = explode(',', $agency_id); $user_ids_new = []; $user_js_ids_new = []; $agency_list = $agencyModel::where('id', 'in', $agency_ids)->select()->toArray(); if ($renk_id) { if ($renk_id == 1) { $where['city_id'] = $city_id; } else { $where['district_id'] = $district_id; } $where['user_type'] = 2; $user_ids = $UserModel::where($where)->field('id')->select(); foreach ($user_ids as $vo) { $user_ids_new[] = $vo['id']; } $where['user_type'] = 3; $user_ids = $UserModel::where($where)->field('id')->select(); foreach ($user_ids as $vo) { $user_js_ids_new[] = $vo['id']; } } else { foreach ($agency_list as $value) { $where['user_type'] = 2; if ($value['renk_id'] == 1) { $where1['city_id'] = $value['city_id']; $user_ids = $UserModel::where($where1)->field('id')->select(); foreach ($user_ids as $vo) { array_push($user_ids_new, $vo['id']); } } if ($value['renk_id'] == 2) { // 区级代理 $where['district_id'] = $value['district_id']; $user_ids = $UserModel::where($where)->field('id')->select(); foreach ($user_ids as $vo) { array_push($user_ids_new, $vo['id']); } } $where['user_type'] = 3; if ($value['renk_id'] == 1) { $where1['city_id'] = $value['city_id']; $user_ids = $UserModel::where($where1)->field('id')->select(); foreach ($user_ids as $vo) { array_push($user_ids_new, $vo['id']); } } if ($value['renk_id'] == 2) { // 区级代理 $where['district_id'] = $value['district_id']; $user_ids = $UserModel::where($where)->field('id')->select(); foreach ($user_ids as $vo) { array_push($user_js_ids_new, $vo['id']); } } } } $user['user_ids'] = $user_ids_new; $user['user_js_ids'] = $user_js_ids_new; return $user; }