'请选择礼品名称', 1 => '书籍', 2 => '高档真丝礼盒', 3 => '京东E卡', 4 => '油卡', ]; const DURATION_RENEWALS_LIST = [ 0 => '请选择续费时长', 1 => '1年', 2 => '2年', 3 => '3年', ]; const NUMBER_RENEWALS = [ 0 => '请选择续费次数', 1 => '第1次', 2 => '第2次', 3 => '第3次', 4 => '第4次', 5 => '第5次', 6 => '第6次', 7 => '第7次', ]; const ORDER_VOLUME_LIST = [ 0 => '请选择订单', 1 => '第1单', 2 => '第2单', 3 => '第3单', ]; const ROLE_LIST = [ 0 => '请选择角色', 1 => '对接人', 2 => '决策人', 3 => '老板', ]; /** * 见证人 续费 * @param Request $request * @param $siteId * @return Factory|JsonResponse|View */ public function renew(Request $request, $siteId) { if (!$request->ajax()) { return view('admin/witness_project/renew', [ 'siteId' => $siteId, ]); } $list = WitnessProjectRenew::query() ->where('site_id', $siteId) ->orderByDesc('id') ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE); foreach ($list as $item) { $item->number_renewals = self::NUMBER_RENEWALS[$item->number_renewals] ?? ''; $item->duration_renewals = self::DURATION_RENEWALS_LIST[$item->duration_renewals] ?? ''; $item->gift_name = self::GIFT_LIST[$item->gift_name] ?? ''; $item->position = self::ROLE_LIST[$item->position] ?? ''; } return response()->json([ 'rows' => $list->items(), 'total' => $list->total() ]); } /** * 编辑 * @param Request $request * @param $id * @param $siteId * @return Factory|View */ public function renewAdd(Request $request, $id, $siteId) { if (!$request->ajax()) { $info = WitnessProjectRenew::query() ->where('site_id', $siteId) ->where('id', $id) ->first(); return view('admin/witness_project/renew_add', [ 'info' => $info, 'siteId' => $siteId, 'roleList' => self::ROLE_LIST, 'giftList' => self::GIFT_LIST, 'durationRenewalsList' => self::DURATION_RENEWALS_LIST, 'numberRenewalsList' => self::NUMBER_RENEWALS, ]); } $request = $request->all(); if (!preg_match("/^1[3456789]\d{9}$/", $request['tel'])) { return response()->json(['message' => '手机号输入有误'], 400); } if (!is_numeric($request['gift_amount'])) { return response()->json(['message' => '礼品金额必须为数字'], 400); } $update = [ 'customer_name' => $request['customer_name'] ?? '', 'tel' => $request['tel'] ?? '', 'position' => $request['position'] ?? '', 'number_renewals' => $request['number_renewals'] ?? 0, 'duration_renewals' => $request['duration_renewals'] ?? 0, 'gift_name' => $request['gift_name'] ?? '', 'gift_amount' => $request['gift_amount'], 'gift_time' => $request['gift_time'] ?? date('Y-m-d'), 'remark' => $request['remark'] ?? '', 'site_id' => $request['site_id'] ?? 0, ]; if (empty($id)) { WitnessProjectRenew::query()->insert($update); } else { WitnessProjectRenew::query()->where('id', $id)->update($update); } return response()->json(['message' => '操作成功']); } /** * 见证人 介绍 * @param Request $request * @param $siteId * @return Factory|JsonResponse|View */ public function introduce(Request $request, $siteId) { if (!$request->ajax()) { return view('admin/witness_project/introduce', [ 'siteId' => $siteId ]); } $list = WitnessProjectIntroduce::query() ->where('site_id', $siteId) ->orderByDesc('id') ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE); foreach ($list as $item) { $item->order_volume = self::ORDER_VOLUME_LIST[$item->order_volume] ?? ''; $item->gift_name = self::GIFT_LIST[$item->gift_name] ?? ''; $item->position = self::ROLE_LIST[$item->position] ?? ''; } return response()->json([ 'rows' => $list->items(), 'total' => $list->total() ]); } /** * 编辑 * @param Request $request * @param $id * @param $siteId * @return Factory|View */ public function introduceAdd(Request $request, $id, $siteId) { if (!$request->ajax()) { $info = WitnessProjectIntroduce::query() ->where('site_id', $siteId) ->where('id', $id) ->first(); return view('admin/witness_project/introduce_add', [ 'info' => $info, 'siteId' => $siteId, 'roleList' => self::ROLE_LIST, 'giftList' => self::GIFT_LIST, 'durationRenewalsList' => self::DURATION_RENEWALS_LIST, 'numberRenewalsList' => self::NUMBER_RENEWALS, 'orderVolumeList' => self::ORDER_VOLUME_LIST, ]); } $request = $request->all(); if (!preg_match("/^1[3456789]\d{9}$/", $request['tel'])) { return response()->json(['message' => '手机号输入有误'], 400); } if (!is_numeric($request['gift_amount'])) { return response()->json(['message' => '礼品金额必须为数字'], 400); } $update = [ 'customer_name' => $request['customer_name'] ?? '', 'tel' => $request['tel'] ?? '', 'position' => $request['position'] ?? 0, 'order_volume' => $request['order_volume'] ?? 0, 'gift_name' => $request['gift_name'] ?? '', 'gift_amount' => $request['gift_amount'], 'gift_time' => $request['gift_time'] ?? date('Y-m-d'), 'transaction_customer' => $request['transaction_customer'] ?? '', 'remark' => $request['remark'] ?? '', 'site_id' => $request['site_id'] ?? 0, ]; if (empty($id)) { WitnessProjectIntroduce::query()->insert($update); } else { WitnessProjectIntroduce::query()->where('id', $id)->update($update); } return response()->json(['message' => '操作成功']); } /** * 删除 * @param Request $request * @param $type * @return JsonResponse */ public function deleteRow(Request $request, $type) { $ids = $request->input('ids'); if ($type == 1) { WitnessProjectRenew::query()->whereIn('id', $ids)->update(['deleted_at' => date('Y-m-d H:i:s')]); } if ($type == 2) { WitnessProjectIntroduce::query()->whereIn('id', $ids)->update(['deleted_at' => date('Y-m-d H:i:s')]); } return response()->json(['message' => '操作成功']); } /** * 汇总 * @param Request $request * @return Factory|JsonResponse|View */ public function renewSummary(Request $request) { if (!$request->ajax()) { return view('admin/witness_project/renew_summary', [ 'services' => Role::getUsers(Role::TYPE_SERVER), 'sellerUsers' => Role::getUsers(Role::TYPE_SELLER), ]); } /** @var $list object */ $list = $this->build($request, WitnessProjectRenew::query()) ->orderByDesc('id') ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE); $list = $this->combination($list); return response()->json([ 'rows' => $list->items(), 'total' => $list->total() ]); } /** * 查询 * @param $request object * @param $result object * @return object */ private function build($request, $result) { $keyword = $request->input('keyword'); if (!empty($keyword)) { $siteIds = Site::query()->where('cn_title', 'like', '%' . $keyword . '%')->pluck('id'); $result->whereIn('site_id', $siteIds); } $sellerId = $request->input('sellerId'); if (!empty($sellerId)) { $siteIds = DB::table('user_has_sites')->where('user_id', $sellerId)->pluck('site_id') ?? []; $result->whereIn('site_id', $siteIds); } $serverId = $request->input('serverId'); if (!empty($serverId)) { $siteIds = DB::table('user_has_sites')->where('user_id', $serverId)->pluck('site_id') ?? []; $result->whereIn('site_id', $siteIds); } return $result; } /** * 组合字段 * @param $list object * @return mixed */ public function combination($list) { $siteList = Site::query()->pluck('cn_title', 'id'); foreach ($list->items() as $item) { $item->position = self::ROLE_LIST[$item->position] ?? ''; if (isset($item->number_renewals)) { $item->number_renewals = self::NUMBER_RENEWALS[$item->number_renewals] ?? ''; } if (isset($item->duration_renewals)) { $item->duration_renewals = self::DURATION_RENEWALS_LIST[$item->duration_renewals] ?? ''; } if (isset($item->gift_name)) { $item->gift_name = self::GIFT_LIST[$item->gift_name] ?? ''; } if (isset($item->site_id)) { $item->site = $siteList[$item->site_id] ?? ''; } if (isset($item->order_volume)) { $item->order_volume = self::ORDER_VOLUME_LIST[$item->order_volume] ?? ''; } } return $list; } /** * 汇总2 * @param Request $request * @return Factory|JsonResponse|View */ public function introduceSummary(Request $request) { if (!$request->ajax()) { return view('admin/witness_project/introduce_summary', [ 'services' => Role::getUsers(Role::TYPE_SERVER), 'sellerUsers' => Role::getUsers(Role::TYPE_SELLER), ]); } /** @var $list object */ $list = $this->build($request, WitnessProjectIntroduce::query()) ->orderByDesc('id') ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE); $list = $this->combination($list); return response()->json([ 'rows' => $list->items(), 'total' => $list->total() ]); } }