123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- <?php
- namespace App\Http\Controllers\Admin\WitnessProject;
- use App\Http\Controllers\Controller;
- use App\Http\Models\Role;
- use App\Http\Models\Site;
- use App\Http\Models\WitnessProjectIntroduce;
- use App\Http\Models\WitnessProjectRenew;
- use Illuminate\Http\Request;
- use Illuminate\Contracts\View\Factory;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Support\Facades\DB;
- use Illuminate\View\View;
- class WitnessProjectController extends Controller
- {
- const GIFT_LIST = [
- 0 => '请选择礼品名称',
- 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()
- ]);
- }
- }
|