apiSecret = config('project.shop_api_secret'); } /** * 用户首单分润 * 队 村 镇三级分润 */ public function user_first_order_share_profit() { $params = $this->request->param(); if (!isset($params['data']) || !isset($params['timestamp'])) { return $this->fail('未传入参数'); } $timestamp = $params['timestamp']; $iv = substr(md5($this->apiSecret.$timestamp), 5, 16); $secretData = encrypt($params['data'], $this->apiSecret, $iv); $requestDatas = decrypt($secretData, $this->apiSecret, $iv); if (null === $requestDatas) { return $this->fail('非法访问,解析失败'); } $inviteCode = $requestDatas['promotion_code']; // 推广码 $orderMoney= $requestDatas['order_money']; // 订单金额 $orderNo= $requestDatas['order_no']; // 订单金额 // 推广人 $userSelf = UserLogic::getUserByInviteCode($inviteCode); if (empty($userSelf)) { return $this->fail('推广人不存在'); } // 推广人用户角色 // 小队/小区队长 if (in_array($userSelf['group_id'] , [2, 18])) { //村/社区合伙人 $where = ['group_id' => 3, 'village'=>$userSelf['village']]; $villageUser = UserLogic::getUser($where); //镇/街道合伙人 $where1 = ['group_id' => 15, 'street'=>$userSelf['street']]; $streetUser = UserLogic::getUser($where1); // 计算分润 UserLogic::shareProfit($userSelf, $villageUser, $streetUser, $orderMoney, $orderNo); // 首单金额记录 UserLogic::firstOrderLog([$userSelf['id'], $villageUser['id'], $streetUser['id']], $orderMoney, $orderNo); return $this->success('成功', [ ['user_id' => $userSelf['id'], 'account' => $userSelf['account'], 'user_profit' => bcmul($orderMoney, 0.03, 2)], ['user_id' => $villageUser['id'], 'account' => $villageUser['account'], 'user_profit' => bcmul($orderMoney, 0.03, 2)], ['user_id' => $streetUser['id'], 'account' => $streetUser['account'], 'user_profit' => bcmul($orderMoney, 0.01, 2)], ]); } // 村/社区合伙人 if ($userSelf['group_id'] == 3) { // 查下级 小队 $where = ['group_id' => [2, 18], 'village'=>$userSelf['village']]; $bridgeUser = UserLogic::getUser($where); //镇/街道合伙人 $where = ['group_id' => 15, 'village'=>$userSelf['village']]; $streetUser = UserLogic::getUser($where); // 计算分润 UserLogic::shareProfit($bridgeUser, $userSelf, $streetUser, $orderMoney); // 首单金额记录 UserLogic::firstOrderLog([$userSelf['id'], $bridgeUser['id'], $streetUser['id']], $orderMoney, $orderNo); return $this->success('成功', [ ['user_id' => $bridgeUser['id'], 'account' => $bridgeUser['account'], 'user_profit' => bcmul($orderMoney, 0.03, 2)], ['user_id' => $userSelf['id'], 'account' => $userSelf['account'], 'user_profit' => bcmul($orderMoney, 0.03, 2)], ['user_id' => $streetUser['id'], 'account' => $streetUser['account'], 'user_profit' => bcmul($orderMoney, 0.01, 2)], ]); } // 镇/街道合伙人 if ($userSelf['group_id'] == 15) { // 查下级村 $where = ['group_id' => 3, 'village'=>$userSelf['village']]; $villageUser = UserLogic::getUser($where); //和小队 $where = ['group_id' => [2, 18], 'village'=>$userSelf['village']]; $bridgeUser = UserLogic::getUser($where); // 计算分润 UserLogic::shareProfit($bridgeUser, $villageUser, $userSelf, $orderMoney); // 首单金额记录 UserLogic::firstOrderLog([$userSelf['id'], $villageUser['id'], $userSelf['id']], $orderMoney, $orderNo); return $this->success('成功', [ ['user_id' => $bridgeUser['id'], 'account' => $bridgeUser['account'], 'user_profit' => bcmul($orderMoney, 0.03, 2)], ['user_id' => $villageUser['id'], 'account' => $villageUser['account'], 'user_profit' => bcmul($orderMoney, 0.03, 2)], ['user_id' => $userSelf['id'], 'account' => $userSelf['account'], 'user_profit' => bcmul($orderMoney, 0.01, 2)], ]); } } /** * 用户订单分润 * 镇合伙人 */ public function user_order_share_profit() { $params = $this->request->param(); $timestamp = $params['timestamp']; $iv = substr(md5($this->apiSecret.$timestamp), 5, 16); $secretData = encrypt($params['data'], $this->apiSecret, $iv); $requestDatas = decrypt($secretData, $this->apiSecret, $iv); if (null === $requestDatas) { return $this->fail('非法访问,解析失败'); } $inviteCode = $requestDatas['promotion_code']; // 推广码 $orderMoney = $requestDatas['order_money']; // 订单金额 分 $orderNo = $requestDatas['order_no']; // 订单金额 // 推广人 $userSelf = UserLogic::getUserByInviteCode($inviteCode); if (empty($userSelf)) { return $this->fail('推广人不存在'); } $proportion = 0.01; // 比例 // 镇/街道合伙人 if ($userSelf['group_id'] == 15) { // 计算分润 UserLogic::userProfit($userSelf, $orderMoney, $proportion, $orderNo); } // 小队/小区队长 if (in_array($userSelf['group_id'] , [2, 18])) { //镇/街道合伙人 $where1 = ['group_id' => 15, 'street'=>$userSelf['street']]; $streetUser = UserLogic::getUser($where1); // 计算分润 UserLogic::userProfit($streetUser, $orderMoney, 0.01, $orderNo); } // 村/社区合伙人 if ($userSelf['group_id'] == 3) { //镇/街道合伙人 $where = ['group_id' => 15, 'village'=>$userSelf['village']]; $streetUser = UserLogic::getUser($where); // 计算分润 UserLogic::userProfit($streetUser, $orderMoney, 0.01, $orderNo); } return $this->success('成功', ['user_id' => $userSelf['id'], 'account' => $userSelf['account'], 'user_profit' => bcmul($orderMoney, $proportion, 2)]); } }