From a9d5765cc29ee4c44f4ae0471ed730159734a10a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cwanyongkang=E2=80=9D?= <“937888580@qq.com”> Date: Tue, 20 Apr 2021 15:25:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BB=B7=E6=A0=BC=20?= =?UTF-8?q?=E6=8A=98=E6=89=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/agent/controller/Agent.php | 37 +++++++++++++++ app/agent/controller/Userinfo.php | 64 +++++++++++++++++++++++++- app/agent/model/ProductPriceScheme.php | 21 +++++++++ app/user/controller/User.php | 60 ++++++++++++++++++++++++ app/user/model/ProductPriceScheme.php | 21 +++++++++ app/user/model/ProductUserPrice.php | 21 +++++++++ script/test/user_level.php | 57 +++++++++++++++++++++++ 7 files changed, 280 insertions(+), 1 deletion(-) create mode 100644 app/agent/model/ProductPriceScheme.php create mode 100644 app/user/model/ProductPriceScheme.php create mode 100644 app/user/model/ProductUserPrice.php create mode 100644 script/test/user_level.php diff --git a/app/agent/controller/Agent.php b/app/agent/controller/Agent.php index 8ba7c5d..11e12d1 100644 --- a/app/agent/controller/Agent.php +++ b/app/agent/controller/Agent.php @@ -11,6 +11,7 @@ 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; +use app\agent\model\ProductPriceScheme; class Agent extends Controller { @@ -28,16 +29,27 @@ class Agent extends Controller $agent_user_model = new AgentUser; $user_model = new UserModel; $order_model = new ProductOrderModel; + $discount_model = new ProductPriceScheme; $user_list = $agent_user_model->getListPage($where, '*', 'id desc', "$page,50"); + //折扣列表 + $discount_data = $discount_model->getList(); + $discount_list = []; + $discount_list[0] = '原价'; + foreach($discount_data as $info) { + $discount_list[$info['Id']] = $info['Name']; + } + //获取代理商下的用户数 $agent_ids = []; $list = []; foreach ($user_list as &$info){ $info['password'] = ''; $agent_ids[] = $info['id']; + $info['discount'] = $discount_list[$info['discount_id']]; $list[$info['id']] = $info; + } $last_month_cost_money = $order_model->getLastMonthCost($agent_ids); @@ -359,4 +371,29 @@ class Agent extends Controller echo json_encode($retuen_data); } } + + //代理折扣 + public function setUserDiscount() + { + $data = json_decode(file_get_contents("php://input"), true); + // dump($data); + + if(!isset($data['schemeId'])){ + die; + } + + $agent_user_model = new AgentUser; + + $discount_data = [ + 'discount_id' => $data['schemeId'] + ]; + + $agent_user_model->updateOne(['id'=>$data['userId']],$discount_data); + $info = [ + 'Code' => 10000, + 'Data' => '', + 'Message' => '', + ]; + echo json_encode($info); + } } \ No newline at end of file diff --git a/app/agent/controller/Userinfo.php b/app/agent/controller/Userinfo.php index bc782d4..cdd2e5e 100644 --- a/app/agent/controller/Userinfo.php +++ b/app/agent/controller/Userinfo.php @@ -8,6 +8,7 @@ use app\agent\model\ProductUserPrice; use app\agent\model\AgentPrice as AgentPriceModel; use app\agent\model\User as UserModel; use app\agent\model\AgentScore as AgentScoreModel; +use app\user\model\ProductPriceScheme; use app\agent\model\CashOut as CashOutModel; class Userinfo extends Controller @@ -17,8 +18,10 @@ class Userinfo extends Controller { $agent_user_model = new AgentUser; + $discount_model = new ProductPriceScheme; $userinfo = $agent_user_model->getOne(['id'=>$this->userinfo['OperaterID']]); $userinfo['id'] = base64_encode($userinfo['id']); + $userinfo['discount'] = $discount_model->getOne(['Id'=>$userinfo['discount_id']])['Name']; $info = [ 'Code'=>10000, @@ -131,8 +134,18 @@ class Userinfo extends Controller } $where['agent_id'] = $this->userinfo['OperaterID']; $user_model = new UserModel; + $discount_model = new ProductPriceScheme; $user_list = $user_model->getListPage($where, '*', 'id desc', "$page,50"); + + //折扣列表 + $discount_data = $discount_model->getList(); + $discount_list = []; + $discount_list[0] = '原价'; + foreach($discount_data as $info) { + $discount_list[$info['Id']] = $info['Name']; + } + foreach ($user_list as &$info){ $info['Password'] = ''; if(empty($info['id_code'])){ @@ -141,7 +154,8 @@ class Userinfo extends Controller $info['id_code'] = substr($info['id_code'], 0, 6) . '***'; $info['is_verify'] = $info['is_verify']?'认证成功':'认证失败'; } - + $info['discount'] = $discount_list[$info['discount_id']]; + } $data = [ 'Code' => 10000, @@ -232,4 +246,52 @@ class Userinfo extends Controller ]; echo json_encode($retuen_data); } + + //代理折扣 + public function setUserDiscount() + { + $data = json_decode(file_get_contents("php://input"), true); + // dump($data); + + if(!isset($data['schemeId'])){ + die; + } + + $user_model = new UserModel; + $agent_user_model = new AgentUser; + $discount_model = new ProductPriceScheme; + + $agent_id = $this->userinfo['OperaterID']; + $agent_info = $agent_user_model->getOne(['id'=>$agent_id]); + //原始折扣 + $discount_old = $discount_model->getList(['Id'=>['in',[$data['schemeId'],$agent_info['discount_id']]]],'Id,discount'); + + $discount_list = []; + foreach($discount_old as $info){ + $discount_list[$info['Id']] = $info["discount"]; + } + + if($discount_list[$data['schemeId']]<=$discount_list[$agent_info['discount_id']]){ + $info = [ + 'Code' => -10000, + 'Data' => '', + 'Message' => '不能低于您的折扣!', + ]; + echo json_encode($info); + die; + } + + + $discount_data = [ + 'discount_id' => $data['schemeId'] + ]; + + $user_model->updateOne(['Id'=>$data['userId']],$discount_data); + $info = [ + 'Code' => 10000, + 'Data' => '', + 'Message' => '', + ]; + echo json_encode($info); + } } \ No newline at end of file diff --git a/app/agent/model/ProductPriceScheme.php b/app/agent/model/ProductPriceScheme.php new file mode 100644 index 0000000..9e92955 --- /dev/null +++ b/app/agent/model/ProductPriceScheme.php @@ -0,0 +1,21 @@ +getUserListPage($where, '*', 'id desc', "$page,50"); + //折扣列表 + $discount_data = $discount_model->getList(); + $discount_list = []; + $discount_list[0] = '原价'; + foreach($discount_data as $info) { + $discount_list[$info['Id']] = $info['Name']; + } + foreach ($user_list as &$info){ $info['Password'] = ''; if(empty($info['id_code'])){ @@ -34,6 +44,8 @@ class User extends Controller $info['is_verify'] = $info['is_verify']?'认证成功':'认证失败'; } + $info['discount'] = $discount_list[$info['discount_id']]; + if($info['CreateType'] == 4){ $agent = new AgentUser; $agent_info = $agent->getOne(['id'=>$info['agent_id']]); @@ -269,4 +281,52 @@ class User extends Controller ]; echo json_encode($info); } + + //设置用户的折扣价 + public function setUserDiscount() + { + $data = json_decode(file_get_contents("php://input"), true); + // dump($data); + + if(!isset($data['schemeId'])){ + die; + } + + $user_model = new UserModel; + $discount_model = new ProductPriceScheme; + + $user_info = $user_model->getOne(['Id'=>$data['userId']]); + //原始折扣 + $discount_old = $discount_model->getList(['Id'=>['in',[$data['schemeId'],$user_info['discount_id']]]],'Id,discount'); + + $discount_list = []; + foreach($discount_old as $info){ + $discount_list[$info['Id']] = $info["discount"]; + } + + if($user_info['discount_id'] != 0){ + if($discount_list[$data['schemeId']]>$discount_list[$user_info['discount_id']]){ + $info = [ + 'Code' => -10000, + 'Data' => '折扣无法调高!', + 'Message' => '折扣无法调高!', + ]; + echo json_encode($info); + die; + } + } + + + $discount_data = [ + 'discount_id' => $data['schemeId'] + ]; + + $user_model->updateOne(['Id'=>$data['userId']],$discount_data); + $info = [ + 'Code' => 10000, + 'Data' => '', + 'Message' => '', + ]; + echo json_encode($info); + } } diff --git a/app/user/model/ProductPriceScheme.php b/app/user/model/ProductPriceScheme.php new file mode 100644 index 0000000..9d86a07 --- /dev/null +++ b/app/user/model/ProductPriceScheme.php @@ -0,0 +1,21 @@ +field('UserId,sum(RefundAmount) as money') + ->where(['OrderState' => ['in', ProductOrderEnum::$Refunds]]) + ->group(['UserId']) + ->fetchAll(); + +foreach ($order_refund_list_db as $info){ + $order_refund_list[$info['UserId']] = $info['money']; +} +//支付金额 +$order_pay_list_db = $product_order_model->field('UserId,sum(PaymentAmount) as money') + ->where(['OrderState' => ['in', ProductOrderEnum::$PayComplete]]) + ->group(['UserId']) + ->fetchAll(); + + +//根据等级 +foreach ($order_pay_list_db as $info){ + //如果有退款,先减去退款 + if(isset( $order_refund_list[$info['UserId']])){ + $info['money'] -= $order_refund_list[$info['UserId']]; + } + $temp = []; + $temp = [ + 'ConsumeAmount' => $info['money'], + ]; + if ($info['money']>=500 && $info['money']<1000){ + $temp['discount_id'] = 1; + } elseif($info['money']>=1000 && $info['money']<3000) { + $temp['discount_id'] = 2; + } elseif($info['money']>=3000 && $info['money']<6000) { + $temp['discount_id'] = 4; + } elseif($info['money']>=6000 && $info['money']<10000) { + $temp['discount_id'] = 5; + } elseif($info['money']>=10000) { + $temp['discount_id'] = 6; + } + + $user_model->updateOne(['Id'=>$info['UserId'],'agent_id'=>0],$temp); +}