'ID', 'mall_id' => '商城ID', 'user_id' => '用户ID', 'order_num' => '下单数', 'order_money' => '下单金额,单元:元', 'pay_num' => '支付订单数', 'pay_money' => '支付金额,单位:元', 'pay_goods_num' => '支付商品件数', 'average_money' => '客单价(订单总额/订单总数)', 'finish_order_num' => '已完成订单数', 'finish_order_money' => '已完成订单金额,单位:元', 'finish_goods_num' => '已完成商品数', 'refund_order_num' => '退款订单数', 'refund_order_money' => '退款订单金额', 'refund_goods_num' => '退款商品数', 'recharge_money' => '充值金额,单位:元', 'original_order_money' => '已支付订单优惠前金额,单位:元', 'cancel_order_num' => '已取消订单数', 'cancel_order_money' => '已取消订单金额', 'cancel_goods_num' => '已取消商品数', 'balance_pay' => '余额支付金额,单位:元', 'wechat_pay' => '微信支付金额,单位:元', 'ali_pay' => '支付宝支付金额,单元:元', 'pay_selling_price' => '已支付的订单售价总额(商品价格)', 'finish_selling_price' => '已完成的订单售价总额(商品价格)', 'user_goods_price_total' => '支付金额不包含运费', 'user_order_num' => '订单总数', 'status' => '状态【1启用 0禁用 -1删除】', 'created_at' => '创建时间', 'updated_at' => '更新数据时间', 'share_nums' => '分享次数', 'visit_nums' => '访问次数', ]; } /** * 数据保存 * @Author: lun * @DateTime: 2021/11/25 0025 18:45 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $mall_id * @param $user_id * @param $data * @return bool */ public static function setUserStatisticsTotal($mall_id, $user_id, $data) { try { $orderMdl = self::find()->where(['mall_id' => $mall_id, 'user_id' => $user_id])->one(); if (empty($orderMdl)) { $orderMdl = new self(); $orderMdl->mall_id = $mall_id; $orderMdl->user_id = $user_id; } // 循环赋值 foreach ($orderMdl as $key => $value) { if (isset($data[$key]) && !empty($data[$key])) $orderMdl->$key += $data[$key]; } // 客单价处理 !empty($data['pay_money']) && $orderMdl->average_money = bcdiv($orderMdl->pay_money, $orderMdl->pay_num, 2); if (!$orderMdl->save()) { self::$static_error = $orderMdl->getErrorMessage(); return false; } return true; } catch (\Exception $e) { self::$static_error = $e->getMessage(); $logsMsg = '统计 setUserStatisticsTotal 报错,'. "mall_id:". $mall_id. " ,user_id:". $user_id .",".$e->getMessage(); Yii::$app->custom->logs($logsMsg); return false; } } public function getUser() { return $this->hasOne(User::class, ['id' => 'user_id'])->select('id, nickname, avatar_url, mobile'); } //累计历史售后完成订单数据 public static function cumulativeOrderFinish() { try { $type = $params['type'] ?? 0; //获取商城id $mall_list = Mall::getEnableMallList(true); if(!empty($mall_list)){ foreach ($mall_list as $mall){ // var_dump('商城:'. $mall['id']); self::refundOrderFinishData(['mall_id' => $mall['id']]); } } return true; } catch (\Exception $e) { throw new Exception(); } } public static function refundOrderFinishData($params) { try { //获取售后完成订单 $order_list = Order::lists([ 'where' => [ ['mall_id' => $params['mall_id']], ['order_status' => -4], ['is_feedback' => 2], ], ]); if (empty($order_list)) return true; foreach ($order_list as $key => $value) { //获取用户统计数据 $user_statistics = UserStatisticsTotal::getOne([ ['mall_id' => $params['mall_id']], ['user_id' => $value['user_id']], ['status' => StatusEnum::ENABLED], ]); $user_statistics->refund_finish_order_num += 1; $user_statistics->refund_finish_order_money += $value['pay_money']; if (!$user_statistics->save()) var_dump('记录历史售后订单数据失败:user_id:'.$value['user_id'].',order_id:'.$value['id']); } return true; } catch (\Exception $e) { throw new Exception($e->getMessage()); } } }