From 1069e31b4d74df3c47ce3bb47ea0ae382b079a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cwanyongkang=E2=80=9D?= <“937888580@qq.com”> Date: Wed, 17 Mar 2021 10:01:30 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=90=86=E5=95=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E3=80=91=20https://www.tapd.cn/39598945/prong/stories?= =?UTF-8?q?/view/1139598945001000188?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/agent/controller/Agent.php | 29 ++++++++++++++++++++++ app/agent/model/ProductOrder.php | 42 ++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/app/agent/controller/Agent.php b/app/agent/controller/Agent.php index 411037d..da921ed 100644 --- a/app/agent/controller/Agent.php +++ b/app/agent/controller/Agent.php @@ -10,6 +10,7 @@ use app\agent\model\ProductPackage as PoductPackageModel; use app\agent\model\AgentPrice as AgentPriceModel; use app\agent\model\AgentScore as AgentScoreModel; use app\agent\model\ProductPriceDiscount as ProductPriceDiscountModel; +use app\agent\model\ProductOrder as ProductOrderModel; class Agent extends Controller { @@ -26,6 +27,8 @@ class Agent extends Controller } $agent_user_model = new AgentUser; $user_model = new UserModel; + $order_model = new ProductOrderModel; + $user_list = $agent_user_model->getListPage($where, '*', 'id desc', "$page,50"); //获取代理商下的用户数 @@ -36,10 +39,36 @@ class Agent extends Controller $agent_ids[] = $info['id']; $list[$info['id']] = $info; } + + $last_month_cost_money = $order_model->getLastMonthCost($agent_ids); + $last_month_refund_money = $order_model->getLastMonthRefund($agent_ids); + $month_cost_money = $order_model->getMonthCost($agent_ids); + $month_refund_money = $order_model->getMonthRefund($agent_ids); + + $last_cost_list = $last_refund_list = $cost_list = $refund_list = []; + + foreach ($last_month_cost_money as $info){ + $last_cost_list[$info['agent_id']] = $info['pay_money']; + } + foreach ($last_month_refund_money as $info){ + $last_refund_list[$info['agent_id']] = $info['pay_money']; + } + foreach ($month_cost_money as $info){ + $cost_list[$info['agent_id']] = $info['pay_money']; + } + foreach ($month_refund_money as $info){ + $refund_list[$info['agent_id']] = $info['pay_money']; + } + + + $agent_user_num = $user_model->getAgentUser(['agent_id'=>['in',$agent_ids]]); foreach ($agent_user_num as $info){ $list[$info['agent_id']]['user_num'] = $info['num']; + $list[$info['agent_id']]['last_cost'] = round($last_cost_list[$info['agent_id']] - $last_refund_list[$info['agent_id']],2); + $list[$info['agent_id']]['cost'] = round($cost_list[$info['agent_id']] - $refund_list[$info['agent_id']],2); } + // dump($list);die; $list = array_merge($list); $data = [ diff --git a/app/agent/model/ProductOrder.php b/app/agent/model/ProductOrder.php index 89dbb7e..15ad6ad 100644 --- a/app/agent/model/ProductOrder.php +++ b/app/agent/model/ProductOrder.php @@ -11,6 +11,7 @@ namespace app\agent\model; +use enum\order\ProductOrder as ProductOrderEnum; use fastphp\base\Model; class ProductOrder extends Model @@ -28,4 +29,45 @@ class ProductOrder extends Model { return $this->field($fields)->where($where)->where($where_str)->order($order)->limit($limit)->fetchAll(); } + + //获取上月消费 + public function getLastMonthCost($agent_id =[]) + { + $st = date('Y-m-d', strtotime(date('Y-m-01') . " - 1 month")); + $et = date('Y-m-d', strtotime(date('Y-m-01'))); + return $this->field("sum(PaymentAmount) as pay_money,agent_id") + ->where("UpdateTime>'$st' and UpdateTime<'$et' ")->where(['agent_id'=>['in',$agent_id]]) + ->where(['OrderState' => ['in', ProductOrderEnum::$PayComplete]]) + ->fetchAll(); + } + //获取本月消费 + public function getMonthCost($agent_id =[]) + { + $st = date('Y-m-d', strtotime(date('Y-m-01'))); + $et = date('Y-m-d', time()); + return $this->field("sum(PaymentAmount) as pay_money,agent_id") + ->where("UpdateTime>'$st' and UpdateTime<'$et' ")->where(['agent_id'=>['in',$agent_id]]) + ->where(['OrderState' => ['in', ProductOrderEnum::$PayComplete]]) + ->fetchAll(); + } + //获取上月退款 + public function getLastMonthRefund($agent_id =[]) + { + $st = date('Y-m-d', strtotime(date('Y-m-01') . " - 1 month")); + $et = date('Y-m-d', strtotime(date('Y-m-01'))); + return $this->field("sum(PaymentAmount) as pay_money,agent_id") + ->where("UpdateTime>'$st' and UpdateTime<'$et' ")->where(['agent_id'=>['in',$agent_id]]) + ->where(['OrderState' => ['in', ProductOrderEnum::$Refunds]]) + ->fetchAll(); + } + //获取本月退款 + public function getMonthRefund($agent_id =[]) + { + $st = date('Y-m-d', strtotime(date('Y-m-01'))); + $et = date('Y-m-d', time()); + return $this->field("sum(PaymentAmount) as pay_money,agent_id") + ->where("UpdateTime>'$st' and UpdateTime<'$et' ")->where(['agent_id'=>['in',$agent_id]]) + ->where(['OrderState' => ['in', ProductOrderEnum::$Refunds]]) + ->fetchAll(); + } } \ No newline at end of file