This commit is contained in:
Hankin 2026-04-13 16:21:29 +08:00
parent f550a4a539
commit d04ce73cbf
2 changed files with 203 additions and 120 deletions

View File

@ -65,12 +65,14 @@ class ActivityController extends Controller
$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("未获取到用户信息");
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('该活动已下线或不存在');
if (!$result)
return $this->failure('该活动已下线或不存在');
$result->increment('pv', 1);
$merchant_user->preview($result);
$result->price = floatval($result->price);
@ -442,8 +444,10 @@ class ActivityController extends Controller
//是否填写过报告
$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';
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';
}
@ -470,10 +474,13 @@ class ActivityController extends Controller
public function updateOrderLinkmen(Request $request, TouristOrder $order)
{
$activity = $order->activity;
if (empty($activity) || time() > strtotime($activity->end_time)) return $this->failure("活动已结束");
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数据类型不是数组");
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');
@ -494,7 +501,8 @@ class ActivityController extends Controller
$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('商户信息有误。');
if (!$Account)
return $this->failure('商户信息有误。');
$id = Anchor::where('m_id', $Account->id)->value('id');
} else {
$anchor_openid = $request->anchor_openid;
@ -520,8 +528,14 @@ class ActivityController extends Controller
->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')
->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')
@ -554,7 +568,8 @@ class ActivityController extends Controller
return $this->success('ok', $photos);
}
public function activityMenu(Request $request){
public function activityMenu(Request $request)
{
try {
$activity_id = $request->id;
$meeting = ActivityMeeting::where('activity_id', $activity_id)->first();
@ -567,7 +582,8 @@ class ActivityController extends Controller
}
}
public function activityMeetingApply(Request $request){
public function activityMeetingApply(Request $request)
{
try {
$user_id = $request->merchant_user_id;
$activity_id = $request->id;
@ -647,7 +663,8 @@ class ActivityController extends Controller
}
}
public function meetingMenuDetail(Request $request){
public function meetingMenuDetail(Request $request)
{
try {
$name = $request->name;
$activity_id = $request->id;
@ -676,7 +693,8 @@ class ActivityController extends Controller
}
}
public function getMeetingDeskNumber(Request $request){
public function getMeetingDeskNumber(Request $request)
{
try {
$mobile = $request->mobile;
$activity_id = $request->id;
@ -690,4 +708,65 @@ class ActivityController extends Controller
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);
}
}

View File

@ -1,5 +1,7 @@
<?php
use App\Http\Controllers\Server\H5\ActivityController;
Route::get('token', 'ShareChannelController@token');
@ -493,3 +495,5 @@ Route::any('callback/survey/{trade_no}', 'QuestionnaireController@surveyCallback
Route::post('virtual/activities/{activity}/members', 'SignInController@storeVirtualMembers')->where('activity', '[0-9]+');
// 友福活动
Route::get("uftx/community/activity/list", [ActivityController::class, "getUftxActivities"]);