love_php/app/Http/Controllers/Server/H5/ActivityController.php
2026-04-13 16:21:29 +08:00

773 lines
34 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Http\Controllers\Server\H5;
use App\Contracts\UserContract;
use App\Jobs\UpdateOrderLinkmen;
use App\Models\Server\MEarningShare;
use App\Models\Coupon;
use App\Models\Server\ActivityMeeting;
use App\Models\Server\ActivityMeetingApply;
use App\Models\Server\ActivityPhoto;
use App\Models\Server\CollageGroup;
use App\Models\Server\CommunityActivityMember;
use App\Models\Server\MerchantBlacklist;
use App\Models\Server\MerchantService;
use App\Models\User;
use App\Models\UserCoupon;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\CommunityActivity;
use App\Models\Live\Anchor;
use App\Models\Live\LiveBanner;
use App\Models\Server\MerchantAccount;
use App\Models\Server\MerchantReport;
use App\Models\Server\MerchantUser;
use App\Models\Server\ReportAnswer;
use App\Models\Server\ReportQuestion;
use App\Models\Server\TouristOrder;
use App\Models\UserMember;
use App\Models\WangYiYunUser;
use App\Services\IMService;
use App\Services\UserService;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redis;
class ActivityController extends Controller
{
protected $userCon;
public function __construct(UserContract $userCon)
{
$this->userCon = $userCon;
}
//测试方法
public function testH5()
{
return $this->success("这是一个H5测试接口");
}
/**
* 社区-训练营详情
* @param Request $request
* @return JsonResponse|string
*/
public function BusinessactivityDetail(Request $request)
{
try {
$id = $request->id;
$wechatUser = session('wechat.oauth_user.new');
if ($wechatUser) {
$openid = $wechatUser->getId();
$merchant_user = MerchantUser::where('openid', $openid)->first();
} else {
$merchant_user = MerchantUser::where('id', $request->merchant_user_id)->first();
if (empty($merchant_user))
throw new \Exception("未获取到用户信息");
$openid = $merchant_user->openid;
}
$user_coupon_id = $request->user_coupon_id;
$result = CommunityActivity::withTrashed()->where('id', $id)->first();
if (!$result)
return $this->failure('该活动已下线或不存在');
$result->increment('pv', 1);
$merchant_user->preview($result);
$result->price = floatval($result->price);
$banner = LiveBanner::where('class', 'community')->where('class_id', $id)->value('icon');
if (!$banner) {
$result->banner = [];
} else {
$result->banner = json_decode($banner, true);
}
$result->sku = json_decode($result->sku, true);
if ($result->pay_type == 'free') {
$result->sku = null;
}
$token = WangYiYunUser::where('accid', $openid)->value('token');
if (!$token && $openid) {
$wechatUser = session('wechat.oauth_user.new');
$rand_str = $this->randString(10);
$nickname = '用户' . $rand_str;
if ($wechatUser) {
$moreInfo = $wechatUser->getOriginal();
$nickname = $moreInfo['nickname'] ?? $nickname;
}
// 创建token
$data['openid'] = $openid;
$data['nickname'] = $nickname;
$data['sex'] = 0;
$this->createWyyUser($data, $request->merchant_user_id);
$token = WangYiYunUser::where('accid', $request->openid)->value('token');
}
$reward_count = TouristOrder::where('type', 'reward_activity')->where('type_id', $id)
->whereIn('pay_status', [1, 4])->get()->count();
$result->reward_count = $reward_count;
$result->token = $token;
$type = '活动';
$url = env('APP_URL') . '/pu/#/activityDetails/' . $id;
$key = 'ActivityDetail_S' . $id . '_' . $openid;
if ($result->class == 'many') {
$url = env('APP_URL') . '/pu/#/serveDetails/' . $id;
$key = 'ServeDetail_S' . $id . '_' . $openid;
$type = '服务';
}
$url = urlencode($url);
$url = env('APP_URL') . '/api/official/live/wechat/FamilyAuth?from_openid=' . $openid . '&merchant_id=' .
$request->merchant_id . '&url=' . $url;
// 是否购买过
$pay_status = TouristOrder::where('account_id', $request->merchant_user_id)
->where('type', 'community')->whereIn('pay_status', [1, 4])
->where('type_id', $id)
->first();
$result->pay_status = $pay_status ? true : false;
$qr_code = Redis::get($key);
if (!$qr_code) {
$qr_code = $this->getPreviewQrcode($url);
Redis::set($key, $qr_code);
$qr_code = Redis::get($key);
}
$result->share_qr_code = $qr_code;
//判断活动是否截止报名 is_deadline 0:可以报名 1:已报名 2:截止报名 3活动结束
$result->order_id = 0;
//是否填写过报告
$result->has_write = 0;
$time = date('Y-m-d H:i:s');
if ($result->class == 'one') {
$is_deadline = 0;
if ($pay_status) {
$is_deadline = 1;
$result->order_id = $pay_status->id;
$has_write = ReportAnswer::where('m_user_id', $request->merchant_user_id)
->where('m_order_id', $pay_status->id)->first();
$result->has_write = !empty($has_write) ? 1 : 0;
} elseif ($result->apply_deadline && $result->apply_deadline <= $time) {
$is_deadline = 2;
} elseif ($result->end_time && $result->end_time <= $time) {
$is_deadline = 3;
} else {
$result->has_write = 0;
}
$result->is_deadline = $is_deadline;
}
// 购买人列表
$ids = TouristOrder::where('type', 'community')->where('type_id', $id)
->whereIn('pay_status', [1, 4])
->limit(4)->orderBy('id', 'desc')
->pluck('account_id');
$users = MerchantUser::select('id', 'nickname', 'pic')->whereIn('id', $ids)->get();
foreach ($users as $user) {
$user->nickname = ($result->hidden_avatar) ? mb_substr($user->nickname, 0, 1) . '**' : $user->nickname;
}
$result->pay_user = $users;
// $result->member_count = ($result->hidden_order_total) ? '':TouristOrder::where('type', 'community')
// ->where('type_id', $id)->whereIn('pay_status', [1,4])
// ->get()->count();
$orders = TouristOrder::where('type', 'community')->where('type_id', $id)->whereIn('pay_status', [1, 4])->get();
$count = 0;
foreach ($orders as $order) {
if ($order->linkmen) {
Log::info($order->linkmen);
$link_count = count(json_decode($order->linkmen, true)) ?: 1;
$count += $link_count;
}
}
if ($count == 0) {
$count = $orders->count();
}
$result->member_count = ($result->hidden_order_total == 1) ? '' : $count;
$merchant_user = MerchantUser::where('id', $request->merchant_user_id)->first();
if (config('app.env') == 'production') {
$merchant_user->addlog($result);
}
$result->start_time = $result->start_time ? date('Y-m-d H:i', strtotime($result->start_time)) : null;
$result->end_time = $result->end_time ? date('Y-m-d H:i', strtotime($result->end_time)) : null;
$result->apply_deadline = $result->apply_deadline ? date('Y-m-d H:i', strtotime($result->apply_deadline)) : null;
//下架或删除状态 0下架 1正常上架 2已删除
$publish_state = 0;
if ($result->deleted_at) {
$publish_state = 2;
} elseif ($result->status == 1) {
$publish_state = 1;
} else {
$publish_state = 0;
}
$result->publish_state = $publish_state;
$merchant_user_id = $request->merchant_user_id;
$linkmen['name'] = '';
$linkmen['mobile'] = '';
$merchant_user = MerchantUser::where('id', $merchant_user_id)->first();
if ($merchant_user) {
$result['share_nickname'] = $merchant_user->nickname ?? '匿名用户';
$result['share_avatar'] = $merchant_user->pic ?? User::DefaultAvatar;
$linkmen['name'] = $merchant_user->nickname;
$linkmen['mobile'] = $merchant_user->mobile;
}
$result->linkmen = $linkmen;
if ($request->from_openid && $request->from_openid != 'null') {
$user_service = new UserService();
$user_service->generateClientComment(0, $openid, $request->from_openid, $type, $result->id, $result->title);
}
//报名活动是否需要真人认证 1需要 0不需要
$need_real_approve = 0;
$is_real_approved = 0;
//当前用户对应的福恋用户id
$user_id = $this->matchFulinkUser($merchant_user_id);
$user = User::find($user_id);
if (!$user) {
$user_id = $this->getUseridByOpenid($openid, 0);
$user = User::find($user_id);
}
if ($user) {
$is_real_approved = $user->is_real_approved;
}
if ($request->id == 698) {
$need_real_approve = 1;
}
$result->need_real_approve = $need_real_approve;
$result->is_real_approved = $is_real_approved;
$question = ReportQuestion::where('type', 'community')->where('type_id', $request->id)->first();
$result->report = !empty($question) ? 1 : 0;
$report = MerchantReport::where('type', 'community')->where('type_id', $request->id)
->whereNotNull('commitd_at')->first();
//该报告是否设置了填写日期
if ($report && !empty($report->commitd_at)) {
$commitd_at = json_decode($report->commitd_at);
} else {
$commitd_at = [];
}
sort($commitd_at);
$result->commitd_at = $commitd_at;
$merchant = MerchantAccount::find($result->merchant_id);
if (!$merchant) {
return $this->failure('商家不存在');
}
$result->has_group = $merchant->hasGroup($result) ? 1 : 0;
$result->group = $merchant->groupInformation($result);
// if ($result->id == 2201) {
// $skus = [];
// foreach ($result->sku as $sku) {
// if ($sku['sku_id'] != 7) {
// $skus[] = $sku;
// }
// }
// $result->sku = $skus;
// }
if ($user_coupon_id) {
$result = $result->toArray();
$user_coupon = UserCoupon::where('id', $user_coupon_id)->where('status', 0)
->where('m_id', $request->merchant_id)->where('m_user_id', $merchant_user_id)
->first();
if (!$user_coupon) {
return $this->failure('用户优惠券不存在');
}
$coupon = Coupon::where('id', $user_coupon->coupons_id)->where('type_id', $id)->where('type', 'community')
->where('m_id', $request->merchant_id)
->first();
if (!$coupon) {
return $this->failure('优惠券不存在');
}
foreach ($result['sku'] as $key => $val) {
switch ($coupon->coupon_type) {
case 1:
$result['sku'][$key]['discount_amount'] = strval($val['price']);
$result['sku'][$key]['charge'] = strval(0.00);
break;
case 2:
$result['sku'][$key]['discount_amount'] = number_format($val['price'] * (1 - $coupon->discount_rate), 2);
$result['sku'][$key]['charge'] = number_format($val['price'] - $result['sku'][$key]['discount_amount'], 2);
break;
case 3:
$temp = number_format($val['price'] - $coupon->discount_rate, 2);
if ($temp < 0) {
$result['sku'][$key]['discount_amount'] = strval($val['price']);
$result['sku'][$key]['charge'] = strval(0.00);
} else {
$result['sku'][$key]['discount_amount'] = strval($coupon->discount_rate);
$result['sku'][$key]['charge'] = strval($temp);
}
break;
default:
break;
}
}
}
//是否含活动照片
$result['has_pics'] = ActivityPhoto::where('type', 'activity')->where('type_id', $result['id'])->count() ? true : false;
//是否加入黑名单
$result['blacklist'] = MerchantBlacklist::where(['m_id' => $request->merchant_id, 'user_id' => $merchant_user->id, 'type' => 'activity'])->first();
//sku报名人数限制
$tourist_order = new TouristOrder();
$sku = $result['sku'];
if ($sku) {
foreach ($sku as &$item) {
$item['sku_buy_num'] = 0;//该规格购买人数
$item['can_buy'] = 1;//是否可已购买
$total_limit_num = $item['total_limit_num'] ?? 0;
if (!$total_limit_num) {
continue;
}
$item['sku_buy_num'] = $tourist_order->getSkuBuyNum($id, $request->merchant_id, $item['sku_id']);
$item['can_buy'] = $item['sku_buy_num'] == $total_limit_num ? 0 : 1;
}
}
$result['sku'] = $sku;
//记录分享记录
if ($request->from_openid && $request->from_openid != $merchant_user->openid) {
MEarningShare::create(["user_id" => $merchant_user->id, "type" => CommunityActivity::class, 'type_id' => $request->id, 'from_openid' => $request->from_openid]);
}
return $this->success('ok', $result);
} catch (\Exception $e) {
$this->getError($e);
return $this->failure();
}
}
public function createWyyUser($data, $merchant_user_id)
{
try {
$im_service = new IMService(env('IM_APP_KEY'), env('IM_APP_SECRET'));
$result = $im_service->createUserId(10000000 + $merchant_user_id, $data['nickname'], $props = '{}', null);
if ($result['code'] == 200) {
$wyyUser = new WangYiYunUser;
$wyyUser->accid = 10000000 + $merchant_user_id;
$wyyUser->name = $data['nickname'];
$wyyUser->gender = $data['sex'];
$wyyUser->token = $result['info']['token'];
$wyyUser->save();
} elseif ($result['code'] == 414 && $result['desc'] == 'already register') {
$result = $im_service->getUinfos([$data['openid']]);
if ($result['code'] == 200) {
$info = $result['uinfos'][0];
$accid = '';
$name = '';
$gender = '';
if (array_key_exists("accid", $info)) {
$accid = $info['accid'];
}
if (array_key_exists("name", $info)) {
$name = $info['name'];
}
if (array_key_exists("icon", $info)) {
$icon = $info['icon'];
}
if (array_key_exists("gender", $info)) {
$gender = $info['gender'];
}
$wyyUser = new WangYiYunUser;
$wyyUser->accid = $accid;
$wyyUser->name = $name;
$wyyUser->gender = $gender;
$wyyUser->icon = $icon;
$wyyUser->save();
//更新网易云token
$result = $im_service->updateUserToken($accid);
if ($result['code'] == 200) {
$wyyUser->token = $result['info']['token'];
}
$wyyUser->save();
}
}
} catch (\Exception $e) {
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
/**
* 获取服务协议标题和内容
* @param Request $request
* @param $service_id
* @return JsonResponse|string
*/
public function obtainAgreeContent(Request $request, $service_id)
{
try {
$result = CommunityActivity::where('id', $service_id)->select('id', 'agree_title', 'agree_content')->first();
return $this->success('ok', $result);
} catch (\Exception $e) {
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
/**
* 社区-我的参与列表
* @param Request $request
* @return JsonResponse|string
*/
public function mytouristOrder(Request $request)
{
try {
// 记得删除 TouristOrder的记录同步merchant_id 和course表里删除多余的数据
$merchant_user_id = $request->merchant_user_id;
$class = $request->class;
$result = TouristOrder::where('account_id', $merchant_user_id)->where('type', 'community');
if ($class) {//单次或者多次
$ids = CommunityActivity::withTrashed()->where('class', $class)/*->where('status',1)*/ ->pluck('id');
$result = $result->whereIn('type_id', $ids);
}
$result = $result->where('merchant_id', $request->merchant_id)->whereIn('pay_status', [1, 4])->orderBy('id', 'desc')->paginate();
foreach ($result as $key => $value) {
$com = CommunityActivity::withTrashed()->where('id', $value->type_id)->first();
$question = ReportQuestion::where('type', 'community')->where('type_id', $value->type_id)->first();
$merchant_report = MerchantReport::where('type', 'community')->where('type_id', $com->id)->whereNotNull('commitd_at')->select('id', 'commitd_at')->first();
if (!$value->comment && !$value->Praise) {
$state = 2;//去评价
} else {
$state = 3;//查看评价
}
$report_state = !empty($question) ? 2 : 1;
$value->title = $com->title;
$value->pic = $com->pic;
$value->Subtitle = $com->Subtitle;
$value->pay_type = $com->pay_type;
$value->state = $state;
$value->report_state = $report_state;
if ($merchant_report) {
$commitd_at = json_decode($merchant_report->commitd_at, true);
sort($commitd_at);
} else {
$commitd_at = [];
}
$value->commitd_at = $commitd_at;
//是否填写过报告
$has_write = ReportAnswer::where('m_user_id', $merchant_user_id)->where('m_order_id', $value->id)->first();
$value->has_write = !empty($has_write) ? 1 : 0;
if ($com->class == 'one')
$value->type = 'activity';
if ($com->class == 'many')
$value->type = 'service';
$report = MerchantReport::where('type', 'community')->where('type_id', $com->id)->first();
$value->class = !empty($report) ? $report->class : 'one';
}
return $this->success('ok', $result);
} catch (\Exception $e) {
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
/**
* 订单详情
* @param Request $request
* @param TouristOrder $order
* @return JsonResponse|string
*/
public function communityOrder(Request $request, TouristOrder $order)
{
$order->activity;
$order->linkmen = json_decode($order->linkmen, true);
return $this->success('ok', $order);
}
public function updateOrderLinkmen(Request $request, TouristOrder $order)
{
$activity = $order->activity;
if (empty($activity) || time() > strtotime($activity->end_time))
return $this->failure("活动已结束");
$linkmen = $request->linkmen;
if (empty($linkmen))
throw new \Exception("缺少参数linkmen");
if (!is_array($linkmen))
throw new \Exception("linkmen数据类型不是数组");
$linkmen = json_encode($linkmen, JSON_UNESCAPED_UNICODE);
$order->update(['linkmen' => $linkmen]);
UpdateOrderLinkmen::dispatch($order->id)->onQueue('love');
return $this->success('ok');
}
/**
* 社区-训练营列表
* @param Request $request
* @return JsonResponse|string
*/
public function activityList(Request $request)
{
try {
if ($request->type == 'fulllink') {
$result = CommunityActivity::where('status', 1)->where('type', 'fulllink')->orderBy('id', 'desc')->paginate();
} else {//商家版
$class = $request->class ?? 'one';
if ($request->merchant_id && $request->merchant_id >= 1) {
$Account = MerchantAccount::where('id', $request->merchant_id)->first();
if (!$Account)
return $this->failure('商户信息有误。');
$id = Anchor::where('m_id', $Account->id)->value('id');
} else {
$anchor_openid = $request->anchor_openid;
if (!$anchor_openid || $anchor_openid == 'null') {
// 返回空数组
$result = CommunityActivity::where('pay_type', 'array')->paginate();
return $this->success('ok', $result);
}
$id = Anchor::where('openid', $anchor_openid)->value('id');
}
if (!$id) {
// 返回空数组
$result = CommunityActivity::where('pay_type', 'array')->paginate();
return $this->success('ok', $result);
}
$merchant_service_ids = MerchantService::where('merchant_id', $request->merchant_id)->where('type', 'community')->where('status', 1)
->pluck('type_id')->toArray();
$result = CommunityActivity::whereIn('community_activities.id', $merchant_service_ids)
->join('merchant_services', function ($join) use ($request, $class) {
$join->on('community_activities.id', '=', 'merchant_services.type_id')
->where('community_activities.class', $class)
->where('community_activities.type', 'business')
->where('merchant_services.status', 1)
->whereNull('merchant_services.deleted_at');
}, null, null, 'left')
->select(
'community_activities.title',
'community_activities.pic',
'community_activities.price',
'community_activities.Subtitle',
'community_activities.end_time',
'community_activities.id'
)
->with('banners:class_id,icon')
->where('community_activities.status', 1)
->where('merchant_services.type', 'community')
->where('merchant_services.merchant_id', $request->merchant_id)
->orderBy('merchant_services.status', 'desc')
->orderBy('merchant_services.is_top', 'desc')
->orderBy('merchant_services.top_time', 'desc')
->paginate();
}
$time = date('Y-m-d H:i:s');
foreach ($result as $key => $value) {
$group = CollageGroup::where('type', 'community')->where('type_id', $value->id)->where('start_time', '<', $time)
->where('end_time', '>', $time)->first();
if ($group) {
$value->is_group = 1;
} else {
$value->is_group = 0;
}
}
return $this->success('ok', $result);
} catch (\Exception $e) {
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
public function activityPhotos(Request $request, $id)
{
$photos = ActivityPhoto::where('type', 'activity')->where('type_id', $id)->orderByDesc('id')->simplePaginate();
return $this->success('ok', $photos);
}
public function activityMenu(Request $request)
{
try {
$activity_id = $request->id;
$meeting = ActivityMeeting::where('activity_id', $activity_id)->first();
if (!empty($meeting)) {
$meeting->menu = json_decode($meeting->menu);
}
return $this->success('ok', $meeting);
} catch (\Exception $e) {
return $this->failure($e->getMessage());
}
}
public function activityMeetingApply(Request $request)
{
try {
$user_id = $request->merchant_user_id;
$activity_id = $request->id;
$name = $request->name;
$mobile = $request->mobile;
if (empty($name) || empty($mobile)) {
return $this->failure('姓名和电话不为空');
}
$is_sing = ActivityMeetingApply::where('activity_id', $activity_id)->where('mobile', $mobile)->exists();
if ($is_sing) {
return $this->failure('您已签到');
}
$is_apply = CommunityActivityMember::where('activity_id', $activity_id)->where('mobile', $mobile)->first();
if (!$is_apply) {
return $this->failure('暂未报名');
}
$activity_meeting = ActivityMeeting::where('activity_id', $activity_id)->first();
if (empty($activity_meeting)) {
return $this->failure('活动会议不存在');
}
//初始化桌子
$number = $activity_meeting->start_desk;
//查看是否已经排桌
$apply_desk = ActivityMeetingApply::orderBydesc('desk_number')->limit(1)->first();
if (!empty($apply_desk)) {
//查看排桌人数,
$apply_desk_user = ActivityMeetingApply::where('desk_number', $apply_desk->desk_number)->count();
if ($apply_desk_user < $activity_meeting->user_number) {
$number = $apply_desk->desk_number;
} else {
$number = $apply_desk->desk_number + 1;
}
}
//获取同一个订单用户,同一个订单用户有安排桌子,优先安排到同一桌
$order_mobile = CommunityActivityMember::where('order_id', $is_apply->order_id)->pluck('mobile');
//查看桌子
$user_desks = ActivityMeetingApply::whereIn('mobile', $order_mobile)->pluck('desk_number');
if ($user_desks) {
foreach ($user_desks as $user_desk) {
$desk_count = ActivityMeetingApply::where('desk_number', $user_desk)->count();
if ($desk_count < $activity_meeting->user_number) {
$number = $user_desk;
break;
}
if (count($order_mobile) >= 3) {
if ($apply_desk->desk_number) {
$number = $apply_desk->desk_number + 1;
} else {
$number = $number + 1;
}
break;
}
}
}
//如果桌子号大于了最大排桌,往没坐满桌子排
if ($number >= $activity_meeting->total_desk) {
$number = ActivityMeetingApply::select('desk_number', DB::raw('count(*) as count'))
->groupBy('desk_number')
->having('count', '<', $activity_meeting->user_number)
->orderBy('desk_number', 'asc')
->pluck('desk_number');
}
if ($number >= $activity_meeting->total_desk) {
return $this->failure('座位已满,请联系工作人员');
}
$map = [];
$map['user_id'] = $user_id;
$map['activity_id'] = $activity_id;
$map['name'] = $name;
$map['mobile'] = $mobile;
$map['desk_number'] = $number;
ActivityMeetingApply::create($map);
return $this->success('ok');
} catch (\Exception $e) {
return $this->failure($e->getMessage());
}
}
public function meetingMenuDetail(Request $request)
{
try {
$name = $request->name;
$activity_id = $request->id;
$meeting = ActivityMeeting::where('activity_id', $activity_id)->first();
if (empty($meeting)) {
return $this->success('ok', $meeting);
}
$menus = json_decode($meeting->menu, true);
$images = null;
foreach ($menus as $menu) {
if (!isset($menu['name']) || !isset($menu['images'])) {
continue;
}
if ($menu['name'] != $name) {
continue;
}
$images = $menu['images'];
break;
}
if ($name == "入场签到") {
$images = $meeting->sign_images;
}
return $this->success('ok', $images);
} catch (\Exception $e) {
return $this->failure($e->getMessage());
}
}
public function getMeetingDeskNumber(Request $request)
{
try {
$mobile = $request->mobile;
$activity_id = $request->id;
$desk_number = ActivityMeetingApply::where('activity_id', $activity_id)->where('mobile', $mobile)->first();
if (empty($desk_number)) {
return $this->failure('暂未查询到座位');
}
$desk_number->desk_images = ActivityMeeting::where('activity_id', $activity_id)->value('desk_images');
return $this->success('ok', $desk_number);
} catch (\Exception $e) {
return $this->failure($e->getMessage());
}
}
function getUftxActivities(Request $request)
{
if (config('app.env') == 'production') {
$merchant_id = 44;
} else {
$merchant_id = 17;
}
$class = "one";
$time = date('Y-m-d H:i:s');
$account = MerchantAccount::where('id', $merchant_id)->first();
if (!$account)
return $this->failure('商户信息有误。');
$id = Anchor::where('m_id', $account->id)->value('id');
if (!$id) {
// 返回空数组
$result = CommunityActivity::where('pay_type', 'array')->paginate();
return $this->success('ok', $result);
}
$merchant_service_ids = MerchantService::where('merchant_id', $merchant_id)->where('type', 'community')->where('status', 1)
->pluck('type_id')->toArray();
$result = CommunityActivity::whereIn('community_activities.id', $merchant_service_ids)
->join('merchant_services', function ($join) use ($class) {
$join->on('community_activities.id', '=', 'merchant_services.type_id')
->where('community_activities.class', $class)
->where('community_activities.type', 'business')
->where('merchant_services.status', 1)
->whereNull('merchant_services.deleted_at');
}, null, null, 'left')
->select(
'community_activities.title',
'community_activities.pic',
'community_activities.price',
'community_activities.Subtitle',
'community_activities.end_time',
'community_activities.id'
)
->with('banners:class_id,icon')
->where('community_activities.status', 1)
->where('merchant_services.type', 'community')
->where("start_time", ">", $time)
->where('merchant_services.merchant_id', $request->merchant_id)
->orderBy('merchant_services.status', 'desc')
->orderBy('merchant_services.is_top', 'desc')
->orderBy('merchant_services.top_time', 'desc')
->paginate();
foreach ($result as $key => $value) {
$group = CollageGroup::where('type', 'community')->where('type_id', $value->id)->where('start_time', '<', $time)
->where('end_time', '>', $time)->first();
if ($group) {
$value->is_group = 1;
} else {
$value->is_group = 0;
}
}
return $this->success('ok', $result);
}
}