| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525 |
- <?php
- namespace App\Http\Controllers\Api\V1;
- use App\Helper\AttachmentHelper;
- use App\Models\BaseAttachmentModel;
- use App\Models\BusinessServiceModel;
- use App\Models\CardInfoModel;
- use App\Models\CouponInfoModel;
- use App\Models\OrderInfoModel;
- use App\Models\PaidInfoModel;
- use App\Models\ProductCategoryModel;
- use App\Models\ProductInfoModel;
- use App\Models\ProductScheduleModel;
- use App\Models\SettingInfoModel;
- use App\Models\StoreInfoModel;
- use App\Models\UserCouponRelationModel;
- use App\Models\UserInfoModel;
- use App\Models\UserScheduleModel;
- use Carbon\Carbon;
- use EasyWeChat\Factory;
- use function foo\func;
- use Illuminate\Http\Request;
- use App\Services\Base\Attachment;
- use App\Services\Base\ErrorCode;
- use Validator, Response, Auth, Cache;
- class HomeController extends Controller
- {
- protected $app;
- protected $setting;
- public function __construct()
- {
- $this->setting = SettingInfoModel::first();
- $config = [
- 'app_id' => $this->setting->app_id,
- 'secret' => $this->setting->app_secret,
- // 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名
- 'response_type' => 'array',
- ];
- $this->app = Factory::miniProgram($config);
- }
- /**
- * @api {post} /api/home/login 登陆(login)
- * @apiDescription 登陆(login)
- * @apiGroup Login
- * @apiPermission none
- * @apiVersion 0.1.0
- * @apiParam {string} code 小程序登陆后返回的code
- * @apiParam {string} nickName 微信昵称
- * @apiParam {string} avatar 微信头像
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjUzMzYwMzNlNzIwOTE3YjE0NDc4YjgxMWY5MmI4MjBmMThlNDgxNjJjZGFkYmEwNGI3ZjliZTNmZjRlMTY2YjU4NGU4MzJhN2RmYzY2ZTcxIn0.eyJhdWQiOiIxIiwianRpIjoiNTMzNjAzM2U3MjA5MTdiMTQ0NzhiODExZjkyYjgyMGYxOGU0ODE2MmNkYWRiYTA0YjdmOWJlM2ZmNGUxNjZiNTg0ZTgzMmE3ZGZjNjZlNzEiLCJpYXQiOjE1MzI0MjA3NDAsIm5iZiI6MTUzMjQyMDc0MCwiZXhwIjoxNTYzOTU2NzQwLCJzdWIiOiIyIiwic2NvcGVzIjpbXX0.YnuRiJI9jlt-KeQ480UEpLWCUU8FEJvlTRtAdjOlP0BWmcdo0E9rGS4hriYnpfJOn09Cw0aRYuc4dgQYL_JWD2fodlGg1LRIvPTOtvM5TiwM86kQJawvfFw7X7p9nOhxrFa5Tyir0cdTcV0SmQbq8KIptjdR8j7wUTByKhONexBXtNnlZSpw70ckTQrAstkn97IDwPo04hhGhf6eDPc8ler0HONiAVqbRvvNG6yHShJarP1hxyXrYN2BM0N7dtLD_8Sr8XaXL6ie4rRFVM4fNwpn74DkiDwXY6-5Xet6mzPvvzARAmU5vJ7JHhcL1N7m7poNp6YCx_mZAZ1z8PGDKrtQWoVeAmIxo7qtI6jvgvUpEFnJQ-KHCunXflNBL-vIYW4o3llnYqku1pcBdAUfkYLjYUgB3EZio280_8q-6Q24VAMiHZ58AjYvHHJJssdOa3dVHGD9Iq2z1dWR6gmZ4MgGCunCcAe9L_CbDm7VtMq3nKj4a1WScRiMD5nlKAHgy4O32rtNXqDr5T-eV-QNa4ZOv4VZ1AR-WE4RkO4ArKPaFxgSa9mak98PU8NHcPaJ_B3eDbvtwtMloTXWSQP08cmUPXKjEwXvszdkUt-ZWirw5Sd22h3qMdCI3gcvzT4_rnDKCEk37P09fUIK8LZrS4s2xOhueHziMzheAF0QekI",
- * "user": {
- * "id": 2,
- * "nickname": "roger",
- * "openid": "olAS94uwfTdsL3nDnvG67p_v5Vks",
- * "mobile": "13788765546",
- * "avatar": "https://wx.qlogo.cn/mmopen/vi_32/IOcxico8l4A7W3qxDeA53Id5kVAj2ibUGvQib9QibicTp5c1RNshDj6EKz2PKWp3reHfib0xxT4wa7jJzcb7a4EggkVw/132",
- * }
- * }
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- * 可能出现的错误代码:
- * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
- * 500 获取openid失败
- */
- public function login(Request $request)
- {
- $code = $request->get('code');
- $session = $this->app->auth->session($code);
- \Log::info(json_encode($session));
- $openid = $session['openid'];
- if (!$openid) {
- $data = [
- 'code' => 500,
- 'msg' => '获取openid失败!'
- ];
- return $this->api($data);
- }
- $userinfo = UserInfoModel::where('openid', $openid)->first(['id', 'nickname', 'openid']);
- if (!$userinfo) {
- $data['openid'] = $openid;
- $data['nickname'] = $request->get('nickName');
- $data['avatar'] = $request->get('avatar');
- $userinfo = UserInfoModel::create($data);
- }
- if (Auth::loginUsingId($userinfo->id)) {
- $user = Auth::user();
- $token = $user->createToken($user->id . '-' . $user->openid)->accessToken;
- return $this->api(compact('token', 'user'));
- } else {
- return $this->error(ErrorCode::INCORRECT_USER_OR_PASS);
- }
- }
- /**
- * @api {get} /api/home/getproducts 获取产品列表
- * @apiDescription 获取产品列表
- * @apiGroup Product
- * @apiPermission None
- * @apiVersion 0.1.0
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "state": true,
- * "code": 0,
- * "message": "",
- * "data": [
- * ...
- * {
- * "id": 2,
- * "name": "履历照",
- * "img": "/upload/images/20180712/ab83f15f31ba33e17e195a20d5307e37.jpg"
- * },
- * ...
- * ]
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function getProducts()
- {
- $products = ProductCategoryModel::OrderBy('id', 'desc')->get(['id', 'name', 'img']);
- return $this->api($products);
- }
- /**
- * @api {get} /api/home/getproduct 获取产品详情及规格
- * @apiDescription 获取产品详情及规格
- * @apiGroup Product
- * @apiPermission none
- * @apiVersion 0.1.0
- * @apiParam {int} id 产品的id
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "state": true,
- * "code": 0,
- * "message": "",
- * "data": {
- * "id": 1,
- * "name": "证件照",
- * "detail": "", //产品详情
- * "img": "/upload/images/20180712/696aa5b6187bd8b1e7eb4f7962a5a3cb.jpg",
- * "spec": [ //规格
- * ...
- * {
- * "id": 1,
- * "name": "证件照",
- * "img": "",
- * "category_id": 1,
- * "origin_price": 299, //原价
- * "current_price": 199, //折后价
- *
- * },
- * ...
- * ]
- * }
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function getProduct(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'id' => 'required',
- ],
- [
- 'id.required' => '产品id不能为空!',
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $id = $request->get('id');
- $product = ProductCategoryModel::with(['spec'])->select(['id', 'name', 'img', 'detail'])->find($id);
- return $this->api($product);
- }
- /**
- * @api {get} /api/home/getstores 获取店铺列表
- * @apiDescription 获取店铺列表
- * @apiGroup Store
- * @apiPermission None
- * @apiVersion 0.1.0
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "state": true,
- * "code": 0,
- * "message": "",
- * "data": [
- * ...
- * {
- * "id": 1,
- * "name": "青羊店",
- * "img": "/upload/images/20180712/696aa5b6187bd8b1e7eb4f7962a5a3cb.jpg",
- * "address": "四川省成都市青羊区新华西路街道江汉路33号新华宾馆",
- * "phone": "18380257014",
- * "lat": "30.675999", //店铺纬度
- * "lon": "104.064465" //店铺经度
- * },
- * ...
- * ]
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function getStores()
- {
- $stores = StoreInfoModel::get(['id', 'name', 'img', 'address', 'phone', 'lat', 'lon']);
- return $this->api($stores);
- }
- /**
- * @api {get} /api/home/getschedule 获取店铺排期
- * @apiDescription 获取店铺排期
- * @apiGroup Store
- * @apiPermission None
- * @apiVersion 0.1.0
- * @apiParam {string} day 要预约的日期,如:2018-7-19
- * @apiParam {string} store_id 要预约的店铺ID
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "state": true,
- * "code": 0,
- * "message": "",
- * "data": {
- * "am_schedule": [
- * {
- * "time": "2018-07-19 09:00:00",
- * "remain": 3 可预订人数,0表示该时间段人数已满
- * },
- * {
- * "time": "2018-07-19 10:00:00",
- * "remain": 0
- * },
- * {
- * "time": "2018-07-19 11:00:00",
- * "remain": 3
- * }
- * ],
- * "pm_schedule": [
- * {
- * "time": "2018-07-19 14:00:00",
- * "remain": 3
- * },
- * {
- * "time": "2018-07-19 15:00:00",
- * "remain": 0
- * },
- * {
- * "time": "2018-07-19 16:00:00",
- * "remain": 3
- * }
- * ]
- *
- *
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "code": 10004,
- * "msg": "店铺休假,请改天再约"
- * }
- * }
- *
- */
- public function getSchedule(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'day' => 'required',
- 'store_id' => 'required',
- ],
- [
- 'day.required' => '日期不能为空!',
- 'store_id.required' => '店铺id不能为空!',
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $day = $request->get('day');
- $storeid = $request->get('store_id');
- $isholiday = ProductScheduleModel::where('store_id', $storeid)->where('holiday_start', '<=', $day)->where('holiday_end', '>=', $day)->first();
- if ($isholiday) {
- $data = ['code' => 10004, 'msg' => '店铺休假,请改天再约'];
- return $this->api($data);
- }
- $am_start = $day . ' ' . ProductScheduleModel::where('store_id', $storeid)->first()->am_start;
- $am_end = $day . ' ' . ProductScheduleModel::where('store_id', $storeid)->first()->am_end;
- $pm_start = $day . ' ' . ProductScheduleModel::where('store_id', $storeid)->first()->pm_start;
- $pm_end = $day . ' ' . ProductScheduleModel::where('store_id', $storeid)->first()->pm_end;
- $max = ProductScheduleModel::where('store_id', $storeid)->first()->max;
- $min = ProductScheduleModel::where('store_id', $storeid)->first()->interval;
- $ams = $this->cut_time_part($am_start, $am_end, $min);
- $am_schedule = $this->formatSchedule($ams, $max, $storeid);
- $pms = $this->cut_time_part($pm_start, $pm_end, $min);
- $pm_schedule = $this->formatSchedule($pms, $max, $storeid);
- return $this->api(compact('am_schedule', 'pm_schedule'));
- }
- /**
- * @api {post} /api/home/createorder 创建订单
- * @apiDescription 创建订单
- * @apiGroup Order
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiParam {int} store_id 预约店铺ID
- * @apiParam {int} product_id 产品规格ID
- * @apiParam {string} schedule_time 预约时间
- * @apiParam {string} username 到店人姓名
- * @apiParam {string} phone 联系方式
- * @apiParam {string} email 邮箱(接受照片用)
- * @apiParam {int} sex 性别 (0:男;1:女)
- * @apiParam {string} [comment] 备注
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "state": true,
- * "code": 0,
- * "message": "",
- * "data": {
- * "id": 27,
- * "out_trade_no": "xxg1531993028", //订单编号
- * "username": "lee", //联系人
- * "phone": "13407570876", //联系电话
- * "email": "154@qq.com", //邮箱
- * "schedule_time": "2018-07-19 11:00:00", //预约时间
- * "status": 0,
- * "store_id": "1",
- * "storename": "青羊店", //店铺名称
- * "product_name": "证件照", //产品名称
- * "service_time": "约120分钟", //服务时长
- * "price": 199, //应付金额
- * "deposit": 100 //定金
- * }
- *
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function createOrder(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'store_id' => 'required',
- 'product_id' => 'required',
- 'schedule_time' => 'required',
- 'username' => 'required',
- 'phone' => 'required',
- 'email' => 'required',
- 'sex' => 'required',
- ],
- [
- 'store_id.required' => '店铺id不能为空!',
- 'product_id.required' => '产品id不能为空!',
- 'schedule_time.required' => '预约时间不能为空!',
- 'username.required' => 'username不能为空!',
- 'phone.required' => 'phone不能为空!',
- 'email.required' => 'email不能为空!',
- 'sex.required' => 'sex不能为空!',
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => 401,
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- $orderdata = $request->all();
- $scheduledata = [
- 'time' => $request->get('schedule_time'),
- 'user_id' => $user->id,
- 'username' => $request->get('username'),
- 'phone' => $request->get('phone'),
- 'store_id' => $request->get('store_id'),
- ];
- $schedule = UserScheduleModel::create($scheduledata);
- $product = ProductInfoModel::find(request('product_id'));
- $orderdata['schedule_id'] = $schedule->id;
- $orderdata['out_trade_no'] = 'xxg' . date('Ymdhms');
- $orderdata['price'] = $product->current_price ? $product->current_price : $product->origin_price;
- $orderdata['deposit'] = $product->deposit;
- $orderdata['user_id'] = $user->id;
- $res = OrderInfoModel::create($orderdata);
- $order = OrderInfoModel::select(['id', 'out_trade_no', 'username', 'phone', 'email', 'schedule_time', 'status', 'store_id', 'price', 'deposit'])->find($res->id);
- $store = $order->store();
- $order['storename'] = $store;
- $order['product_name'] = $product->name;
- $order['service_time'] = $product->service_time;
- return $this->api($order);
- }
- /**
- * @api {get} /api/home/myorders 我的订单列表
- * @apiDescription 我的订单列表
- * @apiGroup Order
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiParam {int} [status] 订单状态:1:已付款,未完成拍摄;2:拍摄完成;3:已取消
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "state": true,
- * "code": 0,
- * "message": "",
- * "data": {
- * "current_page": 1, //当前页
- * "data": [
- * ...
- * {
- * "id": 3,
- * "out_trade_no": "s10003", //订单编号
- * "username": "roger",
- * "sex": 0,
- * "phone": "13407570876",
- * "email": "154@qq.com",
- * "store_id": "1",
- * "schedule_time": "2018-07-19 10:00:00", //预约时间
- * "status": 2,
- * "user_id": 1,
- * "product_id": 1,
- * "schedule_id": null,
- * "comment": "",
- * "created_at": "2018-07-19 08:53:02",
- * "updated_at": "2018-07-19 08:53:02",
- * "price": null,
- * "deposit": null,
- * "storename": "青羊店",
- * "product_name": "证件照"
- * },
- * ...
- * ],
- * "first_page_url": "http://dev.xxg.com/api/home/myorders?page=1", //首页地址
- * "from": 1,
- * "last_page": 2,
- * "last_page_url": "http://dev.xxg.com/api/home/myorders?page=2", //最后一页地址
- * "next_page_url": "http://dev.xxg.com/api/home/myorders?page=2", //下一页地址
- * "path": "http://dev.xxg.com/api/home/myorders",
- * "per_page": 5, //每页显示数量
- * "prev_page_url": null, //上一页地址
- * "to": 5,
- * "total": 7
- * }
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function myOrders(Request $request)
- {
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => '401',
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- if (request('status')) {
- $orders = OrderInfoModel::where('user_id', $user->id)->where('status', request('status'))->get(['id', 'out_trade_no', 'username', 'schedule_time', 'product_id', 'status', 'store_id']);
- } else {
- $orders = OrderInfoModel::where('user_id', $user->id)->where('status', '>', 0)->paginate(5);
- }
- foreach ($orders as $order) {
- $store = $order->store();
- $product = ProductInfoModel::find($order->product_id);
- $order['storename'] = $store;
- $order['product_name'] = $product->name;
- }
- return $this->api($orders);
- }
- /**
- * @api {get} /api/home/orderdetail 获取订单详情
- * @apiDescription 获取订单详情
- * @apiGroup Order
- * @apiPermission None
- * @apiVersion 0.1.0
- * @apiParam {int} order_id 订单ID
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "state": true,
- * "code": 0,
- * "message": "",
- * "data": {
- * "id": 27,
- * "out_trade_no": "xxg1531993028", //订单编号
- * "username": "lee", //联系人
- * "phone": "13407570876", //联系电话
- * "email": "154@qq.com", //邮箱
- * "schedule_time": "2018-07-19 11:00:00", //预约时间
- * "status": 0,
- * "store_id": "1",
- * "storename": "青羊店", //店铺名称
- * "product_name": "证件照", //产品名称
- * "service_time": "约120分钟", //服务时长
- * "price": 199, //应付金额
- * "deposit": 100 //定金
- * "photo": [ //照片
- * ]
- * "paidinfo": {
- * "id": 3,
- * "order_id": "27",
- * "order_price": 199, //订单价格
- * "type": 0, //付款类型 0:全款 1:定金
- * "paid_price": 199, //支付金额
- * }
- * }
- *
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function orderDetail(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'order_id' => 'required',
- ],
- [
- 'order_id.required' => 'order_id不能为空!',
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $order = OrderInfoModel::with(['paidinfo'])->select(['id', 'out_trade_no', 'username', 'phone', 'email', 'schedule_time', 'status', 'store_id', 'price', 'deposit', 'product_id', 'photo'])->find(request('order_id'));
- $photo = $order->photo;
- $order->photo = explode(',', $photo);
- $store = $order->store();
- $product = ProductInfoModel::find($order->product_id);
- $order['storename'] = $store;
- $order['product_name'] = $product->name;
- $order['service_time'] = $product->service_time;
- return $this->api($order);
- }
- /**
- * @api {post} /api/home/createbusiness 创建企业咨询
- * @apiDescription 创建企业咨询
- * @apiGroup Order
- * @apiPermission None
- * @apiVersion 0.1.0
- * @apiParam {string} company 公司名称
- * @apiParam {string} username 联系人姓名
- * @apiParam {string} phone 联系方式
- * @apiParam {string} email 邮箱
- * @apiParam {string} comment 拍摄要求
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "state": true,
- * "code": 0,
- * "message": "",
- * "data": {
- * "company": "斯尔克",
- * "username": "梁女士",
- * "phone": "13546554325",
- * "email": "sdfsa@163.com",
- * "comment": "sfaaafda",
- * "updated_at": "2018-08-13 06:09:07",
- * "created_at": "2018-08-13 06:09:07",
- * "id": 4
- * }
- *
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function createBusiness(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'company' => 'required',
- 'username' => 'required',
- 'phone' => 'required',
- 'email' => 'required',
- 'comment' => 'required',
- ],
- [
- 'company.required' => 'company不能为空!',
- 'username.required' => 'username不能为空!',
- 'phone.required' => 'phone不能为空!',
- 'email.required' => 'email不能为空!',
- 'comment.required' => 'comment不能为空!',
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $data = $request->all();
- $business = BusinessServiceModel::create($data);
- return $this->api($business);
- }
- /**
- * @api {post} /api/home/pay 订单支付
- * @apiDescription 订单支付
- * @apiGroup Order
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiParam {string} orderid 订单号,创建订单后返回
- * @apiParam {int} paytype 支付类型:0:全款支付;1:定金支付
- * @apiParam {int} [couponid] 优惠券id
- * @apiParam {int} [cardid] 抵扣卡id(抵扣卡和优惠券不能同时使用)
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "appId":"wx1c2357232cd25f65",
- * "timeStamp":"1524907589",
- * "nonceStr":"5ae43e45eb499",
- * "package":"prepay_id=wx28172629917401724160128f0238805782",
- * "signType":"MD5",
- * "paySign":"8E9CF26B2B83C22471D023CBBDC36EDF"
- * }
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- * 可能出现的错误代码:
- * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
- */
- public function pay(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'orderid' => 'required',
- 'paytype' => 'required',
- ],
- [
- 'orderid.required' => 'orderid不能为空!',
- 'paytype.required' => 'paytype不能为空!',
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => '401',
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- $order = OrderInfoModel::find($request->get('orderid'));
- \Log::info($this->options());
- if (request('paytype') == 0) {
- $money = $order->price;
- } else {
- $money = $order->deposit;
- }
- session()->put($order->id . 'paytype', request('paytype'));
- if (request('couponid')) {
- $coupon = CouponInfoModel::find(request('couponid'));
- if ($coupon->type == 1) {
- $money = $money * ($coupon->discount / 10);
- } else {
- $money = $money - $coupon->discount_price;
- }
- }
- if (request('cardid')) {
- $discount = CardInfoModel::find(request('cardid'))->price;
- $money = $money - $discount;
- }
- $app = Factory::payment($this->options());
- $result = $app->order->unify([
- 'body' => '小相馆 -' . $order->out_trade_no,
- 'out_trade_no' => $order->out_trade_no,
- 'total_fee' => $money * 100,
- 'trade_type' => 'JSAPI',
- 'notify_url' => url('/api/home/notify'),
- 'openid' => $user->openid
- ]);
- \Log::info($result);
- if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {
- $payment = Factory::payment($this->options());
- $jssdk = $payment->jssdk;
- $json = $jssdk->bridgeConfig($result['prepay_id']);
- \Log::info($json);
- return $this->api(compact('json'));
- } else {
- $msg = "签名失败,请稍后再试!";
- return $this->api(compact('msg'));
- }
- }
- //下面是回调函数
- public function notify()
- {
- $app = Factory::payment($this->options());
- \Log::info("wechat notify start!");
- return $app->handlePaidNotify(function ($notify, $successful) {
- \Log::info($notify);
- if ($notify['result_code'] == 'SUCCESS') {
- $order = OrderInfoModel::where('out_trade_no', $notify['out_trade_no'])->first();
- $order->status = 1;
- $order->save();
- $data['order_no'] = $notify['out_trade_no'];
- $data['order_id'] = $order->id;
- $data['order_price'] = $order->price;
- $data['paid_price'] = $notify['total_fee'] / 100;
- $data['type'] = 0;
- \Log::info($order->id . 'paytype');
- \Log::info(session()->get($order->id . 'paytype'));
- PaidInfoModel::create($data);
- } else {
- return $successful('通信失败,请稍后再通知我');
- }
- return true;
- });
- }
- /**
- * @api {get} /api/home/couponlist 可领取的优惠券列表
- * @apiDescription 可领取的优惠券列表
- * @apiGroup Coupon
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": [
- * ...
- * {
- * "id": 1,
- * "name": "证件照七折优惠", //优惠券名字
- * "type": "1", //优惠券类型 0:固定金额优惠,1:折扣优惠
- * "min_price": 100, //最低使用金额
- * "discount": "7", //折扣
- * "discount_price": null, //优惠金额
- * "product_id": "1,2", //可使用的产品id
- * "product":[ //可使用产品名字
- * "证件照",
- * "履历照"
- * ]
- * "count": 10, //剩余数量
- * "end_time": "2018-07-31", //有效期
- * "created_at": "2018-07-13 07:29:27",
- * "updated_at": "2018-07-18 06:36:38"e
- * }
- * ...
- * ]
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- * 可能出现的错误代码:
- * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
- */
- public function couponList(Request $request)
- {
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => '401',
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- $couponlist = CouponInfoModel::where('end_time', '>', Carbon::now('Asia/Shanghai'))->where('count', '>', 0)->get();
- foreach ($couponlist as $key => $item) {
- $item->product = $item->product();
- $had = UserCouponRelationModel::where('coupon_id', $item->id)->where('user_id', $user->id)->count();
- if ($had) {
- unset($couponlist[$key]);
- }
- }
- return $this->api($couponlist);
- }
- /**
- * @api {get} /api/home/mycoupon 我的优惠券/兑换卡列表
- * @apiDescription 我的优惠券/兑换卡列表
- * @apiGroup Coupon
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "mycoupons":[
- * ...
- * {
- * "id": 1,
- * "coupon_id": 1,
- * "user_id": 1,
- * "coupon": {
- * "id": 1,
- * "name": "证件照七折优惠", //优惠券名字
- * "type": "1", //优惠券类型 0:固定金额优惠,1:折扣优惠
- * "min_price": 100, //最低使用金额
- * "discount": "7", //折扣
- * "discount_price": null, //优惠金额
- * "product_id": "1,2", //可使用的产品id
- * "product":[ //可使用产品名字
- * "证件照",
- * "履历照"
- * ]
- * "count": 10,
- * "end_time": "2018-07-31", //有效期
- * "created_at": "2018-07-13 07:29:27",
- * "updated_at": "2018-07-18 06:36:38"
- * }
- * }
- * ...
- * ],
- * "mycards": [
- * ...
- * {
- * "id": 7,
- * "card_no": "15319090241",
- * "price": 50,
- * "min_price": 100,
- * "status": 1,
- * "user_id": 1,
- * "remark": "梁源源--13407570861",
- * "end_time": "2019-07-31",
- * "qrcode": null,
- * "product_id": "1,2",
- * "product":[],
- * "deleted_at": null,
- * "created_at": "2018-07-18 10:17:04",
- * "updated_at": "2018-08-09 02:11:36"
- * }
- * ...
- * ],
- * }
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- * 可能出现的错误代码:
- * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
- */
- public function myCoupon(Request $request)
- {
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => '401',
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- $mycoupons = UserCouponRelationModel::where('user_id', $user->id)->with('coupon')->orderBy('created_at', 'desc')->get();
- $mycoupons = $mycoupons->filter(function ($value) {
- if (!$value->coupon) {
- return false;
- }
- if (strtotime($value->coupon->end_time) < strtotime(Carbon::now('Asia/Shanghai'))) {
- return false;
- } else {
- $value->coupon->product = CouponInfoModel::find($value->coupon->id) ? CouponInfoModel::find($value->coupon->id)->product() : '';
- return true;
- }
- });
- $mycards = CardInfoModel::where('user_id', $user->id)->where('status', 1)->where('end_time', '>', now())->get();
- foreach ($mycards as $card) {
- $card->product = $card->product();
- }
- return $this->api(compact('mycards', 'mycoupons'));
- }
- /**
- * @api {get} /api/home/getcoupon 领取优惠券
- * @apiDescription 领取优惠券
- * @apiGroup Coupon
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiParam {int} coupon_id 优惠券ID
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "res": true //领取成功
- * }
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- *
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "code": 10001,
- * "msg": "你已经领取过改优惠券,不能重复领取!"
- * }
- * }
- * 可能出现的错误代码:
- * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
- * 1001 CLIENT_WRONG_PARAMS 你已经领取过改优惠券,不能重复领取
- */
- public function getCoupon(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'coupon_id' => 'required'
- ],
- [
- 'coupon_id.required' => 'coupon_id不能为空!'
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => '401',
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- $had = UserCouponRelationModel::where('coupon_id', request('coupon_id'))->where('user_id', $user->id)->count();
- if ($had) {
- $data = [
- 'code' => 10001,
- 'msg' => '你已经领取过改优惠券,不能重复领取!'
- ];
- return $this->api($data);
- }
- $coupon = CouponInfoModel::find(request('coupon_id'));
- if (!$coupon) {
- $data = [
- 'code' => 10002,
- 'msg' => '改优惠券已被领取完毕!'
- ];
- return $this->api($data);
- }
- if ($coupon->count > 0) {
- $coupon->count = $coupon->count - 1;
- $res = $coupon->save();
- $data = $request->all();
- $data['user_id'] = $user->id;
- UserCouponRelationModel::create($data);
- return $this->api(compact('res'));
- } else {
- $data = [
- 'code' => 10002,
- 'msg' => '改优惠券已被领取完毕!'
- ];
- return $this->api($data);
- }
- }
- /**
- * @api {get} /api/home/activecard 激活兑换卡
- * @apiDescription 激活兑换卡
- * @apiGroup Coupon
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiParam {int} card_no 兑换卡编号
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": true
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- *
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "code": "10006",
- * "msg": "该兑换卡已经失效"
- * }
- * }
- * 可能出现的错误代码:
- * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
- * 1005 CLIENT_WRONG_PARAMS 该兑换卡不存在
- * 1006 CLIENT_WRONG_PARAMS 该兑换卡已经失效
- */
- public function activeCard(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'card_no' => 'required',
- ],
- [
- 'card_id.required' => 'card_no不能为空!'
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => '401',
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- $isExisted = CardInfoModel::where('card_no', request('card_no'))->count();
- if (!$isExisted) {
- $data = [
- 'code' => '10005',
- 'msg' => '该兑换卡不存在',
- ];
- return $this->api($data);
- }
- $isActived = CardInfoModel::where('card_no', request('card_no'))->whereIn('status', [1, 2])->first();
- $end_time = CardInfoModel::where('card_no', request('card_no'))->first()->end_time;
- if ($isActived || ($end_time < now())) {
- $data = [
- 'code' => '10006',
- 'msg' => '该兑换卡已经失效',
- ];
- return $this->api($data);
- }
- $card = CardInfoModel::where('card_no', request('card_no'))->first();
- $card->status = 1;
- $card->user_id = $user->id;
- $ok = $card->save();
- return $this->api($ok);
- }
- /**
- * @api {get} /api/home/usablecoupon 获取订单可用的优惠券/兑换卡
- * @apiDescription 获取订单可用的优惠券/兑换卡
- * @apiGroup Coupon
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiParam {int} product_id 产品规格ID,订单中获取
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data":{
- * "usablecoupons":[ //可用的优惠券
- * ...
- * {
- * "id": 1,
- * "coupon_id": 1,
- * "user_id": 1,
- * "coupon": {
- * "id": 1,
- * "name": "证件照七折优惠",
- * "type": "1",
- * "min_price": 100,
- * "discount": "7",
- * "discount_price": null,
- * "product_id": "1,2",
- * "product":[ //可使用产品名字
- * "证件照",
- * "履历照"
- * ],
- * "count": 7,
- * "end_time": "2018-07-31",
- * "created_at": "2018-07-13 07:29:27",
- * "updated_at": "2018-07-21 07:41:59"
- * }
- * }
- * ...
- * ],
- *
- * "usableCards": [ //可用兑换卡
- * ...
- * {
- * "id": 7,
- * "card_no": "15319090241",
- * "price": 50,
- * "min_price": 100,
- * "status": 1,
- * "user_id": 1,
- * "remark": "",
- * "end_time": "2019-07-31",
- * "product_id": "1,2",
- * "product":[ //可使用产品名字
- * "证件照",
- * "履历照"
- * ],
- * "deleted_at": null,
- * "created_at": "2018-07-18 10:17:04",
- * "updated_at": "2018-08-09 02:11:36"
- * }
- * ]
- * ...
- * }
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- * 可能出现的错误代码:
- * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
- */
- public function usableCoupon(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'product_id' => 'required'
- ],
- [
- 'product_id.required' => 'product_id不能为空!'
- ]
- );
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => '401',
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $mycoupons = UserCouponRelationModel::where('user_id', $user->id)->with('coupon')->orderBy('created_at', 'desc')->get();
- $usablecoupons = $mycoupons->filter(function ($value) {
- $flag = false;
- $product = ProductInfoModel::find(request('product_id'));
- if (!$value->coupon) {
- $flag = false;
- return $flag;
- }
- $products = explode(',', $value->coupon->product_id);
- $price = $product->current_price ? $product->current_price : $product->origin_price;
- if ((strtotime($value->coupon->end_time) > strtotime(Carbon::now('Asia/Shanghai'))) && in_array($product->category_id, $products) && ($price >= $value->coupon->min_price)) {
- $value->coupon->product = CouponInfoModel::find($value->coupon->id) ? CouponInfoModel::find($value->coupon->id)->product() : '';
- $flag = true;
- } else {
- $flag = false;
- }
- return $flag;
- });
- $usableCards = CardInfoModel::where('user_id', $user->id)->where('status', 1)->where('end_time', '>=', now())->where('product_id', 'like', '%' . request('product_id') . '%')->get();
- foreach ($usableCards as $card) {
- $card->product = $card->product();
- }
- return $this->api(compact('usablecoupons', 'usableCards'));
- }
- /**
- * @api {get} /api/home/refund 申请退款
- * @apiDescription 申请退款
- * @apiGroup Order
- * @apiPermission Passport
- * @apiVersion 0.1.0
- * @apiParam {int} order_id 产品规格ID,订单中获取
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "code": 200,
- * "msg": "退款已申请,请等待商家审核!"
- * }
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- *
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "code": 10003,
- * "msg": "该订单不能退款,如有疑问,请联系商家!"
- * }
- * }
- * 可能出现的错误代码:
- * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
- */
- public function refund(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'order_id' => 'required'
- ],
- [
- 'order_id.required' => 'order_id不能为空!'
- ]
- );
- $user = Auth('api')->user();
- if (!$user) {
- $data = [
- 'code' => '401',
- 'msg' => 'token已过期,请重新登录',
- ];
- return $this->api($data);
- }
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $order = OrderInfoModel::find(request('order_id'));
- if ($order->status != 1) {
- $data = [
- 'code' => 10003,
- 'msg' => '该订单不能退款,如有疑问,请联系商家!'
- ];
- return $this->api($data);
- }
- $order->status = 3;
- $ok = $order->save();
- if ($ok) {
- $data = [
- 'code' => 200,
- 'msg' => '退款已申请,请等待商家审核!'
- ];
- return $this->api($data);
- }
- }
- //格式化排期
- function cut_time_part($start, $end, $min = 30, $format = true)
- {
- $start = strtotime($start);
- $end = strtotime($end);
- $nums = ($end - $start) / ($min * 60);
- $parts = ($end - $start) / $nums;
- $last = ($end - $start) % $nums;
- if ($last > 0) {
- $parts = ($end - $start - $last) / $nums;
- }
- for ($i = 1; $i <= $nums; $i++) {
- $_end = $start + $parts * $i;
- $arr[] = array($start + $parts * ($i - 1), $_end);
- }
- $len = count($arr) - 1;
- $arr[$len][1] = $arr[$len][1] + $last;
- if ($format) {
- foreach ($arr as $key => $value) {
- $arr[$key] = date("Y-m-d H:i:s", $value[0]);
- }
- }
- return $arr;
- }
- //格式化排期
- public function formatSchedule($arrs, $max, $storeid)
- {
- $arr = [];
- foreach ($arrs as $k => $item) {
- $count = UserScheduleModel::where('time', $item)->where('store_id', $storeid)->count();
- $remain = $max - $count;
- $arr[$k]['time'] = $item;
- $arr[$k]['remain'] = $remain;
- }
- return $arr;
- }
- public function options()
- {
- return [
- 'app_id' => $this->setting->app_id,
- 'mch_id' => $this->setting->mch_id,
- 'key' => $this->setting->api_key,
- 'notify_url' => url('/api/home/notify'),
- 'sandbox' => false,
- ];
- }
- }
|