clear(); Cache::tag("cache_tablemember")->clear(); Cache::tag("cache_tablegoods")->clear(); Cache::tag("cache_tableorder")->clear(); Cache::tag("cache_tablefenxiao_apply")->clear(); Cache::tag("cache_tablefenxiao_withdraw")->clear(); $this->assign('shop_status', 1); $this->handlePromotion(); //分销插件是否存在 $is_fenxiao = addon_is_exit('fenxiao', $this->site_id); $this->assign('is_fenxiao', $is_fenxiao); //基础统计信息 $today = Carbon::now(); $this->assign("today", $today); $this->assign('guide_close', cookie('guideClose')); if (!cookie('guideClose')) { $goods = (new GoodsModel())->getGoodsInfo([['site_id', '=', $this->site_id]], 'goods_id')['data']; $this->assign('goods_complete', !empty($goods)); $wechat_config = (new WechatConfig())->getWechatConfig($this->site_id)['data']['value']; $this->assign('wechat_complete', !empty($wechat_config)); $weapp_config = (new WeappConfig())->getWeappConfig($this->site_id)['data']['value']; $this->assign('weapp_complete', !empty($weapp_config)); $alipay_config = addon_is_exit('alipay', $this->site_id) ? (new AlipayConfig())->getPayConfig($this->site_id)['data']['value'] : []; $wechatpay_config = (new WechatpayConfig())->getPayConfig($this->site_id)['data']['value']; unset($wechatpay_config['transfer_type']); $this->assign('pay_complete', (!(empty($alipay_config)) || !(empty($wechatpay_config)))); $this->assign('site_complete', !empty($this->shop_info['logo'])); } $this->init(); $this->assign('img_extension_error', config('upload.driver') == 'imagick' && !extension_loaded('imagick')); return $this->fetch("index/index"); } private function init() { $is_new_version = 0; // 检查小程序是否有新版本 if (addon_is_exit("weapp")) { $weapp_config_model = new WeappConfigModel(); // 获取站点小程序版本信息 $version_info = $weapp_config_model->getWeappVersion($this->site_id); $version_info = $version_info['data']['value']; $currrent_version_info = config('info'); if ((isset($version_info['version']) && $version_info['version'] != $currrent_version_info['version_no'])) { $is_new_version = 1; } } $is_new_aliapp = 0; if (addon_is_exit("aliapp")) { $is_new_aliapp = (new AliPayApplet($this->site_id))->isNewestVersion(); } $startTime = mktime(0, 0, 0, date('m'), date('d') - 15, date('Y')); $where=[ ['site_id','=',$this->site_id], ['is_order_account_locking','=',0], ['states','in',[0,2,3]], ['create_time','<=',$startTime], ]; //结算失败订单 $failMoney=model('dividemoney_bill',false)->getSum($where,'amount'); $this->assign('failMoney', $failMoney); $this->assign('is_new_aliapp', $is_new_aliapp); $this->assign('is_new_version', $is_new_version); $is_new_domain = 0; // 检查域名是否发生变化 $web_config_model = new WebConfigModel(); $shop_domain_config = $web_config_model->getShopDomainConfig()['data']['value']; if ($shop_domain_config['domain_name'] != __ROOT__) { $is_new_domain = 1; } $this->assign('is_new_domain', $is_new_domain); //商城状态 $shop_model = new ShopModel(); $shop_status_result = $shop_model->getShopStatus($this->site_id, $this->app_module); $shop_status = $shop_status_result['data']['value']; $shop_info=$this->shop_info; $time = time(); if ($shop_info[ 'expire_time' ] == 0) { $status = 1;//正常 } elseif ($shop_info[ 'expire_time' ] > $time) { $cha = $shop_info[ 'expire_time' ] - $time; $date = ceil(( $cha / 86400 )); if ($date < 30) { $status = 2;//即将到期 $this->assign('expire_date', $date); } else { $status = 1;//正常 } } else { $status = -1;//关闭 } $shop_status['shop_status']=$status; $this->assign('shop_status', $shop_status); } /** * 获取营销活动 添加快捷菜单的优先排序 */ public function handlePromotion() { $promotion_model = new PrmotionModel(); $promotions = $promotion_model->getSitePromotions($this->site_id); $promotion = array_values(array_filter(array_map(function ($item) { if ($item['show_type'] == 'shop' || $item['show_type'] == 'member') return $item; }, $promotions))); $tool = array_values(array_filter(array_map(function ($item) { if ($item['show_type'] == 'tool') return $item; }, $promotions))); $promotion = array_column($promotion, null, 'name'); $tool = array_column($tool, null, 'name'); $addon_model = new Addon(); $value = $addon_model->getAddonQuickMenuConfig($this->site_id, $this->app_module)['data']['value']; $promotion_addon = $value['promotion']; $tool_addon = $value['tool']; if (!empty($promotion_addon)) { foreach ($promotion_addon as $name) { if (isset($promotion[$name])) { array_unshift($promotion, $promotion[$name]); unset($promotion[$name]); } } } if (!empty($tool_addon)) { foreach ($tool_addon as $name) { if (isset($tool[$name])) { array_unshift($tool, $tool[$name]); unset($tool[$name]); } } } $this->assign("promotion", $promotion); $this->assign("tool", $tool); } /** * 今日昨日统计 * @return array */ public function dayCount() { if (request()->isAjax()) { //基础统计信息 $stat_shop_model = new Stat(); $today = Carbon::now(); $yesterday = Carbon::yesterday(); $stat_today = $stat_shop_model->getShopStatSum($this->site_id, $today->startOfDay()->timestamp, $today->endOfDay()->timestamp); $stat_yesterday = $stat_shop_model->getShopStatSum($this->site_id, $yesterday->startOfDay()->timestamp, $yesterday->endOfDay()->timestamp); $order = new Order(); //获取总数 $shop_stat_sum = $stat_shop_model->getShopStatSum($this->site_id); $goods_model = new GoodsModel(); $goods_sum = $goods_model->getGoodsTotalCount([['site_id', '=', $this->site_id], ['is_delete', '=', 0]]); $shop_stat_sum['data']['goods_count'] = $goods_sum['data']; $shop_stat_sum['data']['member_count'] = (new Member())->getMemberCount([['site_id', '=', $this->site_id], ['is_delete', '=', 0]])['data']; $shop_stat_sum['data']['order_pay_count'] = $order->getOrderCount([['site_id', '=', $this->site_id], ['is_delete', '=', 0], ['pay_status', '=', 1]])['data']; $shop_stat_sum['data']['earnings_total_money'] = $order->getOrderMoneySum([['site_id', '=', $this->site_id], ['is_delete', '=', 0], ['pay_status', '=', 1]], 'pay_money')['data']; //日同比 $day_rate['order_pay_count'] = diff_rate($stat_today['data']['order_pay_count'], $stat_yesterday['data']['order_pay_count']); $day_rate['order_total'] = diff_rate($stat_today['data']['order_total'], $stat_yesterday['data']['order_total']); $day_rate['earnings_total_money'] = diff_rate($stat_today['data']['earnings_total_money'], $stat_yesterday['data']['earnings_total_money']); $day_rate['collect_goods'] = diff_rate($stat_today['data']['collect_goods'], $stat_yesterday['data']['collect_goods']); $day_rate['visit_count'] = diff_rate($stat_today['data']['visit_count'], $stat_yesterday['data']['visit_count']); $day_rate['member_count'] = diff_rate($stat_today['data']['member_count'], $stat_yesterday['data']['member_count']); //会员总数 $member_model = new MemberModel(); $member_count = $member_model->getMemberCount([['site_id', '=', $this->site_id]]); $res = [ 'stat_day' => $stat_today['data'], 'stat_yesterday' => $stat_yesterday['data'], 'today' => $today, 'shop_stat_sum' => $shop_stat_sum['data'], 'day_rate' => $day_rate, 'member_count' => $member_count['data'] ]; } return $res; } /** * 综合统计 * @return array */ public function sumCount() { if (request()->isAjax()) { $goods_model = new GoodsModel(); $order = new OrderCommon(); $waitpay = $order->getOrderCount([['order_status', '=', 0], ['site_id', '=', $this->site_id], ['is_delete', '=', 0], ['order_scene', '=', 'online']]); $waitsend = $order->getOrderCount([['order_status', '=', 1], ['site_id', '=', $this->site_id], ['is_delete', '=', 0]]); $order_refund_model = new OrderRefundModel(); $refund_num = $order_refund_model->getRefundOrderGoodsCount([ ["site_id", "=", $this->site_id], ["refund_status", "not in", [0, 3]] ]); $goods_stock_alarm = $goods_model->getGoodsStockAlarm($this->site_id); $goods_total = $goods_model->getGoodsTotalCount([['goods_state', '=', 1], ['site_id', '=', $this->site_id], ['is_delete', '=', 0]]); $warehouse_goods = $goods_model->getGoodsTotalCount([['goods_state', '=', 0], ['site_id', '=', $this->site_id], ['is_delete', '=', 0]]); $num_data = [ 'waitpay' => $waitpay['data'], 'waitsend' => $waitsend['data'], 'refund' => $refund_num['data'], 'goods_stock_alarm' => count($goods_stock_alarm['data']), 'goods_total' => $goods_total['data'], 'warehouse_goods' => $warehouse_goods['data'] ]; //分销插件是否存在 $is_fenxiao = addon_is_exit('fenxiao', $this->site_id); $this->assign('is_fenxiao', $is_fenxiao); if ($is_fenxiao) { //提现待审核 $fenxiao_model = new FenxiaoWithdraw(); $withdraw_count = $fenxiao_model->getFenxiaoWithdrawCount([['site_id', '=', $this->site_id], ['status', '=', 1]], 'id'); $num_data['withdraw_count'] = $withdraw_count['data']; //分销商申请 $fenxiao_apply_model = new FenxiaoApply(); $fenxiao_count = $fenxiao_apply_model->getFenxiaoApplyCount([['site_id', '=', $this->site_id], ['status', '=', 1]], 'apply_id'); $num_data['apply_count'] = $fenxiao_count['data']; } else { $waitconfirm = $order->getOrderCount([['order_status', "=", 3], ['site_id', '=', $this->site_id], ['is_delete', '=', 0]]); $complete = $order->getOrderCount([['order_status', "=", 10], ['site_id', '=', $this->site_id], ['is_delete', '=', 0]]); $num_data['waitconfirm'] = $waitconfirm['data']; $num_data['complete'] = $complete['data']; } } return $num_data; } /** * 图形统计 * * @return void */ public function chartCount() { if (request()->isAjax()) { //近十天的订单数以及销售金额 $stat_shop_model = new Stat(); $date_day = getweeks(); $order_total = ''; $order_pay_count = ''; foreach ($date_day as $k => $day) { $dayarr = explode('-', $day); $stat_day[$k] = $stat_shop_model->getStatShop($this->site_id, $dayarr[0], $dayarr[1], $dayarr[2]); $order_total .= $stat_day[$k]['data']['order_total'] . ','; $order_pay_count .= $stat_day[$k]['data']['order_pay_count'] . ','; } $ten_day['order_total'] = explode(',', substr($order_total, 0, strlen($order_total) - 1)); $ten_day['order_pay_count'] = explode(',', substr($order_pay_count, 0, strlen($order_pay_count) - 1)); return $ten_day; } } /** * 营销插件 * @return array */ public function marketingPlug() { if (request()->isAjax()) { //营销活动 $promotion_model = new PrmotionModel(); $promotions = $promotion_model->getSitePromotions($this->site_id); $toolcount = 0; $shopcount = 0; //营销插件数量 foreach ($promotions as $k => $v) { if ($v["show_type"] == 'tool') { $toolcount += 1; } if ($v["show_type"] == 'member' || $v["show_type"] == 'shop') { $shopcount += 1; } } $count = [ 'toolcount' => $toolcount, 'shopcount' => $shopcount ]; $res = [ 'count' => $count, 'promotions' => $promotions ]; return $res; } } /** * 系统套餐续费 */ public function renewExpireTime() { if (request()->isAjax()) { $group_id = input('group_id', 0);//购买用户套餐数量 $num = input('num', 0);//购买用户套餐数量 $sms_package_id = input('sms_package_id', 0);//短信套餐id $sms_package_num = input('sms_package_num', 1);//购买短信套餐数量 //获取系统用户信息 $shop_info = $this->shop_info; $agent_id=$this->shop_info['agent_id']?$this->shop_info['agent_id']:1; $data = array( 'group_id' => $group_id, 'site_name' => $this->shop_info['site_name'], 'site_id' => $this->site_id, 'group_num' => $num, 'buyer_info' => [ 'buyer_uid'=>$this->site_id, 'buyer_name'=>$shop_info['site_name'] ], 'sms_package_id' => $sms_package_id, 'sms_package_num' => $sms_package_num, ); $sys_order_model = new SiteOrder(); $res = $sys_order_model->orderCreate($data,$agent_id); return $res; } else { $addon = new Addon(); $install_result = $addon->getAddonList([["type", "<>", "system"]], "name,title"); $install = $install_result["data"]; $install_list = array_column($install, "title", "name"); $sys_user_group_model = new SiteGroup(); $list = $sys_user_group_model->getSiteGroupList([ ['status', '=', 1], ['', 'exp', Db::raw("site_id={$this->shop_info['agent_id']} OR site_id = 1")], ]); if (!empty($list["data"])) { foreach ($list["data"] as $k => $v) { $temp_array = explode(",", $v['addon_array']); $exist_addon_array = []; $noexist_addon_array = []; foreach ($install_list as $temp_k => $temp_v) { if (in_array($temp_k, $temp_array)) { $exist_addon_array[] = $temp_v; } else { $noexist_addon_array[] = $temp_v; } } $list["data"][$k]["exist_addon_list"] = $exist_addon_array; $list["data"][$k]["noexist_addon_list"] = $noexist_addon_array; } } $this->assign('addon_list', $list['data']); $this->assign('menu_info', ['title' => '套餐续费']); $shop_info = $this->shop_info; $time = time(); if ($shop_info['expire_time'] == 0 && $shop_info['is_try']==0) { $shop_status = 1;//正常 } elseif ($shop_info['expire_time'] > $time) { $cha = $shop_info['expire_time'] - $time; $date = ceil(($cha / 86400)); if ($date < 30) { $shop_status = 2;//即将到期 $this->assign('expire_date', $date); } else { $shop_status = 1;//正常 } } else { $shop_status = 0;//关闭 } $this->assign('shop_status', $shop_status); return $this->fetch('index/renew_expire_time'); } } /*** * 订单确认 * @return void */ public function orderconfirm(){ $out_trade_no = input("out_trade_no", ''); $sys_order_model = new SiteOrder(); if (request()->isAjax()) { $data = [ 'paying_money_certificate' => input('paying_money_certificate', ''), 'paying_money_certificate_explain' => input('paying_money_certificate_explain', '') ]; $condition[] = [ 'out_trade_no', '=', $out_trade_no ]; $condition[] = [ 'pay_status', '=', 0 ]; return $sys_order_model->applyOfflinePay($condition, $data); } else { $detail_result = $sys_order_model->getOrderDetail($out_trade_no); $detail = $detail_result["data"]; $this->assign("detail", $detail); //支付方式(支付给平台的钱 site_id为0) $pay = new PayModel(); $pay_type = $pay->getPayType([ 'app_type' => 'pc', 'site_id' => $this->shop_info['agent_id']?$this->shop_info['agent_id']:1]); $this->assign('pay_type', $pay_type['data']); $this->assign('pay_type_count', count($pay_type['data'])); //收款账户 $config_model = new WebSite(); $receivable_config = $config_model->getSystemBankAccount(); $this->assign('receivable_config', $receivable_config['data']['value']); return $this->fetch('index/confirm'); } } }