'PERSONAL_OPENID', 'account' => 'oSAh95RkTKmfzT_s1KaAkIuDMDP0', 'amount' => 2, 'description' => '测试分账' ], [ 'type' => 'PERSONAL_OPENID', 'account' => 'oSAh95ZJfUnDWWdZ-z7wfBkUz_B0', 'amount' => 1, 'description' => '测试分账' ] ], 11 )); } public function test111() { $res = StoreOrder::where('mer_id', 11)->where('transaction_id', '<>', '')->where('assistance_id', '=', '')->select(); foreach($res as $value){ dump(MiniProgramService::profit_sharing_finish( $value['transaction_id'], $value['order_id'], $value['mer_id'] )); } } public function test222() { $res = UserRecharge::where('mer_id', 11)->where('transaction_id', '<>', '')->select(); foreach($res as $value){ dump(MiniProgramService::profit_sharing_finish( $value['transaction_id'], $value['order_id'], $value['mer_id'] )); } } public function order_pay_success() { $orderId = 'wx160679322986954873'; $order = StoreOrder::where('order_id', $orderId)->find(); OrderSubscribe::onOrderPaySuccess($order); } public function profitSharingFinish(Request $request) { list($order_id) = UtilService::getMore([ ['order_id', ''], ], $request, true); $order = StoreOrder::where('order_id', $order_id)->find(); PaySuccessJob::profitSharingFinish($order); } public function test_profit_sharing_finish() { dump(MiniProgramService::profit_sharing_finish( '4200000753202011045607878421', 'wx160445808633819879', 11 )); } public function test_recharge(Request $request) { list($order_id) = UtilService::getMore([ ['order_id', ''], ], $request, true); UserRecharge::rechargeSuccess($order_id); } public function test_refund() { $refund_no = UserBrokerage::getNewRefundNo(); dump(MiniProgramService::payOrderRefund( 'wx2020102914273410024', [ 'pay_price' => 0.1, 'refund_price' => 0.01, 'refund_id' => $refund_no ], 11 )); } public function wechat_user_recharge() { $orderNo = 'wx2020110616055410365'; PaymentRepositories::wechatUserRechargeCard($orderNo); } public function pay_success(Request $request) { list($orderId) = UtilService::postMore([ ['order_id', ''], ], $request, true); PaymentRepositories::wechatProduct($orderId); } public function test2($order_id) { $order = StoreOrder::where('order_id', $orderId)->find(); if ($order->assistance_id && $res1 && !$order->refund_status) $resAssistance = StoreAssistanceActive::createAssistanceActive($order);//创建助力 } public function test3(Request $request) { $mer_id = 11; list($uni) = UtilService::postMore([ ['uni', ''], ], $request, true); $uid = 24; $order = StoreOrder::getUserOrderDetail($uid, $uni, $mer_id); $res = User::backOrderBrokerage($order); return $res; } public function clearCache(Request $request) { $config_name = UtilService::postMore([ ['name', ''], ], $request); $cacheName = "data_{$config_name['name']}"; return CacheService::delete($cacheName); } /** * @param Request $request * @return mixed * @throws DataNotFoundException * @throws ModelNotFoundException * @throws DbException */ public function index(Request $request) { $mer_id = $request->mer_id() ?: ''; $banner = sys_data('routine_home_banner', 0, $mer_id) ?: [];//TODO 首页banner图 $menus = sys_data('routine_home_menus', 0, $mer_id) ?: [];//TODO 首页按钮 $roll = sys_data('routine_home_roll_news', 0, $mer_id) ?: [];//TODO 首页滚动新闻 $activity = sys_data('routine_home_activity', 5, $mer_id) ?: [];//TODO 首页活动区域图片 $explosive_money = sys_data('index_categy_images', 0, $mer_id) ?: [];//TODO 首页超值爆款 $site_name = sys_config('site_name', '', $mer_id); $routine_index_page = sys_data('routine_index_page', 0, $mer_id); $info['fastInfo'] = $routine_index_page[0]['fast_info'] ?? '';//sys_config('fast_info');//TODO 快速选择简介 $info['bastInfo'] = $routine_index_page[0]['bast_info'] ?? '';//sys_config('bast_info');//TODO 精品推荐简介 $info['firstInfo'] = $routine_index_page[0]['first_info'] ?? '';//sys_config('first_info');//TODO 首发新品简介 $info['salesInfo'] = $routine_index_page[0]['sales_info'] ?? '';//sys_config('sales_info');//TODO 促销单品简介 $logoUrl = sys_config('routine_index_logo', '', $mer_id); if (strstr($logoUrl, 'http') === false && $logoUrl) $logoUrl = sys_config('site_url', '', $mer_id) . $logoUrl; $logoUrl = str_replace('\\', '/', $logoUrl); $fastNumber = sys_config('fast_number', 0, $mer_id);//TODO 快速选择分类个数 $bastNumber = sys_config('bast_number', 0, $mer_id);//TODO 精品推荐个数 $firstNumber = sys_config('first_number', 0, $mer_id);//TODO 首发新品个数 $promotionNumber = sys_config('promotion_number', 0, $mer_id);//TODO 首发新品个数 $info['fastList'] = StoreCategory::byIndexList((int)$fastNumber, false, $mer_id);//TODO 快速选择分类个数 $info['bastList'] = StoreProduct::getBestProduct('id,image,store_name,cate_id,price,ot_price,IFNULL(sales,0) + IFNULL(ficti,0) as sales,unit_name', (int)$bastNumber, $request->uid(), false, 0, 0, $mer_id);//TODO 精品推荐个数 $info['firstList'] = StoreProduct::getNewProduct('id,image,store_name,cate_id,price,unit_name,IFNULL(sales,0) + IFNULL(ficti,0) as sales', (int)$firstNumber, $request->uid(), false, 0, 0, $mer_id);//TODO 首发新品个数 $info['bastBanner'] = sys_data('routine_home_bast_banner', 0, $mer_id) ?? [];//TODO 首页精品推荐图片 $benefit = StoreProduct::getBenefitProduct('id,image,store_name,cate_id,price,ot_price,stock,unit_name', $promotionNumber, 0, 0, $mer_id);//TODO 首页促销单品 $lovely = sys_data('routine_home_new_banner', 0, $mer_id) ?: [];//TODO 首发新品顶部图 $likeInfo = StoreProduct::getHotProduct('id,image,store_name,cate_id,price,ot_price,unit_name', 3, $request->uid(), 0, 0, $mer_id);//TODO 热门榜单 猜你喜欢 $couponList = StoreCouponIssue::getIssueCouponList($request->uid(), 3); if ($request->uid()) { $subscribe = WechatUser::where('uid', $request->uid())->value('subscribe') ? true : false; } else { $subscribe = true; } $newGoodsBananr = sys_config('new_goods_bananr', '', $mer_id); $tengxun_map_key = sys_config('tengxun_map_key', '', $mer_id); return app('json')->successful(compact('banner', 'menus', 'roll', 'info', 'activity', 'lovely', 'benefit', 'likeInfo', 'logoUrl', 'couponList', 'site_name', 'subscribe', 'newGoodsBananr', 'tengxun_map_key', 'explosive_money')); } /** * 获取门店商品 */ public function getStoreProduct(Request $request) { $data = UtilService::getMore([ ['page', 1], ['limit', 4], ], $request); $res = SystemStore::getStoreProduct($data['page'], $data['limit'], $request->mer_id()); return app('json')->successful($res); } /** * 获取分享配置 * @param Request $request * @return mixed */ public function share(Request $request) { $mer_id = $request->mer_id(); $data['img'] = sys_config('wechat_share_img', '', $mer_id); if (strstr($data['img'], 'http') === false) $data['img'] = sys_config('site_url', '', $mer_id) . $data['img']; $data['img'] = str_replace('\\', '/', $data['img']); $data['title'] = sys_config('wechat_share_title', '', $mer_id); $data['synopsis'] = sys_config('wechat_share_synopsis', '', $mer_id); return app('json')->successful(compact('data')); } /** * 获取个人中心菜单 * @param Request $request * @return mixed */ public function menu_user(Request $request) { $menusInfo = sys_data('routine_my_menus', 0, $request->mer_id()) ?? []; $user = $request->user(); $vipOpen = sys_config('vip_open', '', $request->mer_id()); $vipOpen = is_string($vipOpen) ? (int)$vipOpen : $vipOpen; foreach ($menusInfo as $key => &$value) { $value['pic'] = set_file_url($value['pic']); if ($value['id'] == 137 && !(intval(sys_config('store_brokerage_statu', '', $request->mer_id())) == 2 || $user->is_promoter == 1)) unset($menusInfo[$key]); if ($value['id'] == 174 && !StoreService::orderServiceStatus($user->uid)) unset($menusInfo[$key]); if (((!StoreService::orderServiceStatus($user->uid)) && (!SystemStoreStaff::verifyStatus($user->uid))) && $value['url'] === '/pages/admin/order_cancellation/index') unset($menusInfo[$key]); if ((!StoreService::orderServiceStatus($user->uid)) && $value['url'] === '/pages/admin/order/index') unset($menusInfo[$key]); if ($value['url'] == '/pages/users/user_vip/index' && !$vipOpen) unset($menusInfo[$key]); } $bannerInfo = sys_data('routine_my_banner', 0, $request->mer_id()) ?? []; return app('json')->successful(['routine_my_menus' => $menusInfo, 'routine_my_banner' => $bannerInfo]); } /** * 热门搜索关键字获取 * @return mixed * @throws DataNotFoundException * @throws ModelNotFoundException * @throws \think\exception\DbException */ public function search(Request $request) { $routineHotSearch = sys_data('routine_hot_search', 0, $request->mer_id()) ?? []; $searchKeyword = []; if (count($routineHotSearch)) { foreach ($routineHotSearch as $key => &$item) { array_push($searchKeyword, $item['title']); } } return app('json')->successful($searchKeyword); } /** * 图片上传 * @param Request $request * @return mixed * @throws InvalidArgumentException */ public function upload_image(Request $request) { $data = UtilService::postMore([ ['filename', 'file'], ], $request); if (!$data['filename']) return app('json')->fail('参数有误'); if (Cache::has('start_uploads_' . $request->uid()) && Cache::get('start_uploads_' . $request->uid()) >= 100) return app('json')->fail('非法操作'); $upload = UploadService::init(null, $request->mer_id()); $info = $upload->to('store/comment')->validate()->move($data['filename']); if ($info === false) { return app('json')->fail($upload->getError()); } $res = $upload->getUploadInfo(); SystemAttachment::attachmentAdd($res['name'], $res['size'], $res['type'], $res['dir'], $res['thumb_path'], 1, (int)sys_config('upload_type', 1), $res['time'], 2); if (Cache::has('start_uploads_' . $request->uid())) $start_uploads = (int)Cache::get('start_uploads_' . $request->uid()); else $start_uploads = 0; $start_uploads++; Cache::set('start_uploads_' . $request->uid(), $start_uploads, 86400); $res['dir'] = path_to_url($res['dir']); if (strpos($res['dir'], 'http') === false) $res['dir'] = $request->domain() . $res['dir']; return app('json')->successful('图片上传成功!', ['name' => $res['name'], 'url' => $res['dir']]); } /** * 物流公司 * @return mixed */ public function logistics() { $expressList = Express::lst(); if (!$expressList) return app('json')->successful([]); return app('json')->successful($expressList->hidden(['code', 'id', 'sort', 'is_show'])->toArray()); } /** * 短信购买异步通知 * * @param Request $request * @return mixed * @throws Exception */ public function sms_pay_notify(Request $request) { list($order_id, $price, $status, $num, $pay_time, $attach) = UtilService::postMore([ ['order_id', ''], ['price', 0.00], ['status', 400], ['num', 0], ['pay_time', time()], ['attach', 0], ], $request, true); if ($status == 200) { try { ChannelService::instance()->send('PAY_SMS_SUCCESS', ['price' => $price, 'number' => $num], [$attach]); } catch (\Throwable $e) { } return app('json')->successful(); } return app('json')->fail(); } /** * 记录用户分享 * @param Request $request * @return mixed * @throws InvalidArgumentException * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public function user_share(Request $request) { return app('json')->successful(UserBill::setUserShare($request->uid(), 300, $request->mer_id())); } /** * 获取图片base64 * @param Request $request * @return mixed * @throws Exception */ public function get_image_base64(Request $request) { list($imageUrl, $codeUrl) = UtilService::postMore([ ['image', ''], ['code', ''], ], $request, true); try { $codeTmp = $code = $codeUrl ? image_to_base64($codeUrl) : false; if (!$codeTmp) { $putCodeUrl = put_image($codeUrl); $code = $putCodeUrl ? image_to_base64($_SERVER['HTTP_HOST'] . '/' . $putCodeUrl) : false; $code ?? unlink($_SERVER["DOCUMENT_ROOT"] . '/' . $putCodeUrl); } $imageTmp = $image = $imageUrl ? image_to_base64($imageUrl) : false; if (!$imageTmp) { $putImageUrl = put_image($imageUrl); $image = $putImageUrl ? image_to_base64($_SERVER['HTTP_HOST'] . '/' . $putImageUrl) : false; $image ?? unlink($_SERVER["DOCUMENT_ROOT"] . '/' . $putImageUrl); } return app('json')->successful(compact('code', 'image')); } catch (Exception $e) { return app('json')->fail($e->getMessage()); } } /** * 门店列表 * @param Request $request * @return mixed * @throws Exception */ public function store_list(Request $request) { list($latitude, $longitude, $page, $limit, $product_id) = UtilService::getMore([ ['latitude', ''], ['longitude', ''], [['page', 'd'], 1], [['limit', 'd'], 10], ['product_id', ''] ], $request, true); $list = SystemStore::lst($latitude, $longitude, $page, $limit, '', 0, $request->mer_id(), $product_id); if (!$list) $list = []; $data['list'] = $list; $data['tengxun_map_key'] = sys_config('tengxun_map_key', '', $request->mer_id()); return app('json')->successful($data); } /** * 查找城市数据 * @param Request $request * @return mixed * @throws \throwable */ public function city_list(Request $request) { $list = CacheService::get('CITY_LIST', function () { $list = SystemCity::with('children')->field(['city_id', 'name', 'id', 'parent_id'])->where('parent_id', 0)->order('id asc')->select()->toArray(); $data = []; foreach ($list as &$item) { $value = ['v' => $item['city_id'], 'n' => $item['name']]; if ($item['children']) { foreach ($item['children'] as $key => &$child) { $value['c'][$key] = ['v' => $child['city_id'], 'n' => $child['name']]; unset($child['id'], $child['area_code'], $child['merger_name'], $child['is_show'], $child['level'], $child['lng'], $child['lat'], $child['lat']); if (SystemCity::where('parent_id', $child['city_id'])->count()) { $child['children'] = SystemCity::where('parent_id', $child['city_id'])->field(['city_id', 'name', 'id', 'parent_id'])->select()->toArray(); foreach ($child['children'] as $kk => $vv) { $value['c'][$key]['c'][$kk] = ['v' => $vv['city_id'], 'n' => $vv['name']]; } } } } $data[] = $value; } return $data; }, 0); return app('json')->successful($list); } /** * 获取拼团数据 * @return mixed */ public function pink(Request $request) { $data['pink_count'] = StorePink::merSet($request->mer_id())->where(['status' => 2, 'is_refund' => 0])->count(); $data['avatars'] = User::whereIn('uid', function ($query) { $query->name('store_pink')->where(['status' => 2, 'is_refund' => 0])->field(['uid'])->select(); })->limit(3)->order('uid desc')->column('avatar'); return app('json')->successful($data); } }