0) { $order_condition[] = [ 'site_id', '=', $site_id ]; } $order_info = model('order')->getInfo($order_condition); if (empty($order_info)) return $this->error(); $order_create_money = $order_info[ 'order_money' ]; $goods_num = numberFormat($order_info[ 'goods_num' ]); //如果是第一笔订单才能累加下单会员数 $time_region = getDayStartAndEndTime(); $today_start_time = $time_region[ 'start_time' ]; $today_end_time = $time_region[ 'end_time' ]; $stat_data = array ( 'site_id' => $site_id, 'order_create_count' => 1,//下单数 'order_create_money' => $order_create_money,// 销售额 order_money 'goods_order_count' => $goods_num, ); //订单商品种数 $order_goods_ids = model('order_goods')->getColumn($order_condition, 'goods_id'); $order_goods_ids = array_unique($order_goods_ids); $other_order_condition = array ( [ 'order_id', '<>', $order_id ], [ 'goods_id', 'in', $order_goods_ids ], [ 'create_time', 'between', [ $today_start_time, $today_end_time ] ], ); $other_order_goods_ids = model('order_goods')->getColumn($other_order_condition, 'goods_id'); $other_order_goods_ids = array_unique($other_order_goods_ids); $goods_order_type_count = count($order_goods_ids) - count($other_order_goods_ids); if ($goods_order_type_count > 0) { $stat_data[ 'goods_order_type_count' ] = $goods_order_type_count; } $stat_model = new Stat(); $result = $stat_model->addShopStat($stat_data); return $result; } /** * 用于订单(同与订单支付后调用) * @param $params */ public function addOrderPayStat($params) { $order_id = $params[ 'order_id' ]; $site_id = $params[ 'site_id' ] ?? 0; $order_condition = array ( [ 'order_id', '=', $order_id ], ); if ($site_id > 0) { $order_condition[] = [ 'site_id', '=', $site_id ]; } $order_info = model('order')->getInfo($order_condition); if (empty($order_info)) return $this->error(); $order_money = $order_info[ 'order_money' ]; $pay_money = $order_info[ 'pay_money' ]; $member_id = $order_info[ 'member_id' ]; $delivery_money = $order_info[ 'delivery_money' ]; $goods_num = numberFormat($order_info[ 'goods_num' ]); //如果是第一笔订单才能累加下单会员数 $time_region = getDayStartAndEndTime(); $today_start_time = $time_region[ 'start_time' ]; $today_end_time = $time_region[ 'end_time' ]; $today_order_condition = array ( [ 'member_id', '=', $member_id ], [ 'pay_time', 'between', [ $today_start_time, $today_end_time ] ], [ 'order_id', '<>', $order_id ] ); $stat_data = array ( 'site_id' => $site_id, 'order_pay_count' => 1, 'order_total' => $order_money, 'shipping_total' => $delivery_money, 'goods_pay_count' => $goods_num, 'order_pay_money' => $pay_money ); $count = model('order')->getCount($today_order_condition); if ($count == 0) { $stat_data[ 'order_member_count' ] = 1; } //销售量 order_num //销售额 order_money $stat_model = new Stat(); $result = $stat_model->addShopStat($stat_data); return $result; } /** * 退款维权统计 * @param $params */ public function addOrderRefundStat($params) { $order_goods_id = $params[ 'order_goods_id' ]; $site_id = $params[ 'site_id' ] ?? 0; $order_goods_condition = array ( [ 'order_goods_id', '=', $order_goods_id ], ); if ($site_id > 0) { $order_goods_condition[] = [ 'site_id', '=', $site_id ]; } $order_goods_info = model('order_goods')->getInfo($order_goods_condition); if (empty($order_goods_info)) return $this->error(); $stat_data = array ( 'site_id' => $site_id, 'order_refund_count' => 1 ); //todo 统计的时候用的是真实退款还是总退款(包含抵扣项) $refund_money = $params[ 'refund_pay_money' ]; $stat_data[ 'refund_total' ] = $refund_money; $stat_model = new Stat(); $result = $stat_model->addShopStat($stat_data); // 门店退款统计 if ($order_goods_info[ 'store_id' ]) { $order_scene = model('order')->getValue([ [ 'order_id', '=', $order_goods_info[ 'order_id' ] ] ], 'order_scene'); if ($order_scene == 'cashier') { ( new StoreStat() )->addStoreStat([ 'site_id' => $site_id, 'store_id' => $order_goods_info[ 'store_id' ], 'refund_count' => 1, 'refund_money' => $refund_money ]); } } return $result; } }