$mall_id, 'user_id' => $user_id, 'status' => StatusEnum::ENABLED]); if (!empty($store_associated_user)) { $store_id = $store_associated_user->store_id; } if (empty($store_id)) { //没有绑定门店,根据用户最近上级的店长进行自动绑定门店 $user_parent_arr = UserPartitionRelationship::getParentIdArr($user_id); $user_parent_arr[] = $user_id; $user_parent_arr = array_reverse($user_parent_arr); foreach ($user_parent_arr as $item) { $manager = Store::findOne(['mall_id' => $mall_id, 'user_id' => $item, 'status' => StatusEnum::ENABLED]); if ($manager) { $store_id = $manager->id; break; } } !empty($store_id) && $insert_data = [ 'mall_id' => $mall_id, 'store_id' =>$store_id, 'user_id' => $user_id ]; } if (empty($store_id)) { //查直属上级绑定的店 $user = \common\models\user\User::findOne([ ['id' => $user_id] ]); if ($user->parent_id > 0) { $parent_store_associated_user = StoreAssociatedUser::findOne(['mall_id' => $mall_id, 'user_id' => $user->parent_id, 'status' => StatusEnum::ENABLED]); if ($parent_store_associated_user) { $store_id = $parent_store_associated_user->store_id; $insert_data = [ 'mall_id' => $mall_id, 'store_id' =>$store_id, 'user_id' => $user_id ]; } } } if (empty($store_id) && $longitude && $latitude) { $status = StatusEnum::ENABLED; $shop_status = 1; $check_status = 1; $sql = " SELECT id,store_name,latitude,longitude,logo_img,sales_volume,praise,show_style,bannar_pic,address,is_show_coupon,default_store_cate_style, round( 2 * 6378.137 * ASIN( SQRT( POW( SIN( PI() * ({$longitude} - longitude) / 360 ), 2 ) + COS(PI() * {$latitude} / 180) * COS(latitude * PI() / 180) * POW( SIN( PI() * ({$latitude} - latitude) / 360 ), 2 ) ) ) ,1) AS distance FROM `qimall_addons_store` WHERE (`mall_id`={$mall_id}) AND (`status`={$status}) AND (`shop_status`={$shop_status}) AND (`check_status`={$check_status})"; $sql .= " order by distance asc limit 1"; $list = \Yii::$app->db->createCommand($sql)->queryAll(); if (!empty($list)) { $store_data = end($list); $store_id = $store_data['id']; $insert_data = [ 'mall_id' => $mall_id, 'store_id' =>$store_id, 'user_id' => $user_id ]; } } if (!empty($insert_data)) { StoreAssociatedUser::setData($insert_data); } return $store_id; } }