Pay.php 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. <?php
  2. namespace app\controller\api;
  3. use app\service\api\UserServiceFacade;
  4. // use app\service\api\MiniappServiceFacade;
  5. use app\service\api\PayServiceFacade;
  6. use app\service\api\HupijiaopayServiceFacade;
  7. use app\service\ConfServiceFacade;
  8. use app\service\BillServiceFacade;
  9. // use app\service\admin\CapitalFlowServiceFacade;
  10. use laytp\controller\Api;
  11. use think\facade\Request;
  12. // use think\facade\Queue;
  13. use app\service\MessageSystemServiceFacade;
  14. use think\facade\Queue;
  15. /**
  16. * 获取系统配置
  17. */
  18. class Pay extends Api{
  19. protected function _initialize()
  20. {
  21. $this->model = new \app\model\Order();
  22. }
  23. // 无需登录的接口,*表示全部
  24. public $noNeedLogin = ['notify','test','notifySettle','notifyHupijiao'];
  25. public function hupijiaopay(){
  26. global $_GPC;
  27. $post = $this->request->post();
  28. $isCommission = $this->request->post('is_commission',0);
  29. $returnUrl = $this->request->post('return_url','');
  30. $callbackUrl = $this->request->post('callback_url','');
  31. $platform = $this->request->header('platform');
  32. // 获得订单信息
  33. if ($isCommission ==1) {
  34. $notify = IS_R==1?request()->domain() . SURL . '/api.pay/notifySettleHupijiao':request()->domain() . SURL . '/index.php/api.pay/notifySettleHupijiao';
  35. $pay_price = \app\model\commission\Settle::where(['order_number'=>$post['order_number']])->value('pay_price');
  36. } else {
  37. $notify = IS_R==1?request()->domain() . SURL . '/api.pay/notifyHupijiao':request()->domain() . SURL . '/index.php/api.pay/notifyHupijiao';
  38. $pay_price = \app\model\Order::where(['order_number'=>$post['order_number']])->value('pay_price');
  39. }
  40. if(!$pay_price){
  41. return $this->error('获取订单数据失败');
  42. }
  43. $data =[
  44. 'version' => 1.1,
  45. 'trade_order_id'=>$post['order_number'],
  46. 'total_fee'=>$pay_price,
  47. 'title'=>'充值',
  48. 'time'=>time(),
  49. 'notify_url'=>$notify,
  50. 'return_url' => $returnUrl,
  51. 'callback_url'=>$callbackUrl,
  52. 'type'=>'WAP',
  53. 'wap_name'=>'支付'
  54. ];
  55. $res = HupijiaopayServiceFacade::pay($data);
  56. return $this->success('获取结果', $res);
  57. }
  58. public function prepay(){
  59. global $_GPC;
  60. $post = $this->request->post();
  61. $platform = $this->request->post('platform');
  62. $isCommission = $this->request->post('is_commission',0);
  63. // 获得订单信息
  64. if ($isCommission ==1) {
  65. $notify = IS_R==1?request()->domain() . SURL . '/api.pay/notifySettle':request()->domain() . SURL . '/index.php/api.pay/notifySettle';
  66. $pay_price = \app\model\commission\Settle::where(['order_number'=>$post['order_number']])->value('pay_price');
  67. } else {
  68. $notify = IS_R==1?request()->domain() . SURL . '/api.pay/notify':request()->domain() . SURL . '/index.php/api.pay/notify';
  69. $pay_price = \app\model\Order::where(['order_number'=>$post['order_number']])->value('pay_price');
  70. }
  71. if(!$pay_price){
  72. return $this->error('获取订单数据失败');
  73. }
  74. // print_r(request()->domain() . SURL . '/index.php/api.pay/notify');
  75. $app = PayServiceFacade::option($platform=='wxOfficialAccount'?'wechat':'miniapp');
  76. $loginUserInfo = UserServiceFacade::getUserInfo();
  77. // print_r($loginUserInfo);
  78. $result = $app->order->unify([
  79. 'body' => '充值',
  80. 'out_trade_no' => $post['order_number'],
  81. 'total_fee' => $pay_price * 100,
  82. 'notify_url' => $notify, // 支付结果通知网址,如果不设置则会使用配置里的默认地址
  83. 'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型
  84. 'openid' => $platform=='wxOfficialAccount'?$loginUserInfo['openid_wechat']:$loginUserInfo['openid_miniapp'],
  85. ]);
  86. $jssdk = $app->jssdk;
  87. if($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS'){
  88. $config = $jssdk->bridgeConfig($result['prepay_id'], false);
  89. return $this->success('获取结果', $config);
  90. }
  91. return $this->error('获取失败,'.json_encode($result,320));
  92. }
  93. public function hupijiao()
  94. {
  95. global $_GPC;
  96. }
  97. public function notify(){
  98. global $_GPC;
  99. // $app = PayServiceFacade::option();
  100. $notifiedData = file_get_contents('php://input');
  101. $xmlObj = simplexml_load_string($notifiedData, 'SimpleXMLElement', LIBXML_NOCDATA);
  102. $xmlObj = json_decode(json_encode($xmlObj), true);
  103. // 库里查
  104. $order = $this->model->where('order_number','=',$xmlObj['out_trade_no'])->find();
  105. // 如果订单不存在 或者 订单已经支付过了
  106. if(!$order || $order['paid'] == 1){
  107. return true; //已经处理 或该笔订单库里已经支付,微信你请勿再通知
  108. }
  109. if ($xmlObj['return_code'] === 'SUCCESS') { // return_code 表示通信状态,不代表支付状态
  110. // 用户是否支付成功
  111. if ($xmlObj['result_code'] === 'SUCCESS') {
  112. // 用户支付成功
  113. $_GPC['uniacid'] = $order['uniacid'];
  114. $updateRes = $this->model->where('order_number', '=', $xmlObj['out_trade_no'])->update(['paid'=>1, 'pay_time' => time()]);
  115. $memberInfo = \app\model\Member::find($order['link_id']);
  116. $this->setMember($order,$memberInfo);
  117. // 分销
  118. $this->setCommission($order,$memberInfo);
  119. // $title = '下单支付成功通知';
  120. // $content = '您的订单已支付,订单编号'.$xmlObj['out_trade_no'].',价格:¥'.$order['pay_price'];
  121. // $jobQueueName ='wike_oddjob';
  122. // $queueData =[
  123. // 'uid' => $order['uid'],
  124. // 'title'=>$title,
  125. // 'content'=>$content,
  126. // 'order_number'=>$xmlObj['out_trade_no'],
  127. // 'pay_price'=>$order['pay_price'],
  128. // 'status'=>'已支付',
  129. // 'remark'=>'订单价格:'.$order['pay_price'],
  130. // 'uniacid' => $order['uniacid']
  131. // ];
  132. // MessageSystemServiceFacade::Unified($order['uid'],$title,$content);
  133. // $conf = ConfServiceFacade::groupGet('system.notification');
  134. // if($conf['subscribe_status'] == 1){
  135. // Queue::later(3, 'app\jobs\SubscribeMessageJob@pay_suc', $queueData, $jobQueueName);
  136. // }
  137. // Queue::later(86400, 'app\jobs\SubscribeMessageJob@recommend', $queueData, $jobQueueName);
  138. // Queue::later(432000, 'app\jobs\SubscribeMessageJob@new_video', $queueData, $jobQueueName);
  139. if (!$updateRes) return false;
  140. } elseif ($xmlObj['result_code'] === 'FAIL') {
  141. // 用户支付失败
  142. return false;
  143. }
  144. } else {
  145. return false;
  146. }
  147. return true;
  148. // file_put_contents(__DIR__ . '/ds.json', json_encode($xmlObj));
  149. }
  150. public function notifySettle(){
  151. global $_GPC;
  152. $modelSettle = new \app\model\commission\Settle();
  153. $modelTeam =new \app\model\commission\Team();
  154. $modelIncome =new \app\model\commission\Income();
  155. $modelUser =new \app\model\commission\User();
  156. // $app = PayServiceFacade::option();
  157. $notifiedData = file_get_contents('php://input');
  158. $xmlObj = simplexml_load_string($notifiedData, 'SimpleXMLElement', LIBXML_NOCDATA);
  159. $xmlObj = json_decode(json_encode($xmlObj), true);
  160. // 库里查
  161. $order = $modelSettle->where('order_number','=',$xmlObj['out_trade_no'])->find();
  162. // file_put_contents(__DIR__ . '/ds.json', json_encode($order));
  163. // 如果订单不存在 或者 订单已经支付过了
  164. if(!$order || $order['paid'] == 1){
  165. return true; //已经处理 或该笔订单库里已经支付,微信你请勿再通知
  166. }
  167. if ($xmlObj['return_code'] === 'SUCCESS') { // return_code 表示通信状态,不代表支付状态
  168. // 用户是否支付成功
  169. if ($xmlObj['result_code'] === 'SUCCESS') {
  170. // 用户支付成功
  171. $_GPC['uniacid'] = $order['uniacid'];
  172. $updateRes =$modelSettle->where('order_number', '=', $xmlObj['out_trade_no'])->update(['paid'=>1, 'pay_time' => time()]);
  173. $updateRes2 = $modelUser->save(['paid' => 1,'uniacid'=>$order['uniacid'],'status'=>1,'paid'=>1,'uid'=>$order['uid'],'real_name'=>$order['real_name'],'telnum'=>$order['telnum'] ]);
  174. // 分销
  175. $teamUserInfo = $modelTeam::where('uid','=',$order['uid'])->find();
  176. $conf = ConfServiceFacade::groupGet('system.commission');
  177. if(!empty($conf['is_commission']) && $conf['is_commission']==1 ){
  178. if($conf['first'] > 0){
  179. $firstLevel = $order['pay_price'] * ($conf['first'])/100;
  180. }
  181. if($conf['second'] > 0){
  182. $secondLevel = $order['pay_price'] * ($conf['second'])/100;
  183. }
  184. if($conf['third'] > 0){
  185. $thirdLevel = $order['pay_price'] * ($conf['third'])/100;
  186. }
  187. if(!empty($teamUserInfo['pid'])){
  188. // 奖励给pid
  189. // 计算一级分销返佣
  190. $higherUserInfo = $modelUser::where('uid','=',$teamUserInfo['pid'])->find();
  191. if(!empty($higherUserInfo) && $higherUserInfo['status'] == 1){
  192. $banlance = $higherUserInfo['money'] + $firstLevel;
  193. $modelUser::where('uid','=',$teamUserInfo['pid'])->update(['money'=>$banlance]);
  194. // $a = $modelIncome->save(['money'=>$firstLevel,'uid'=>$teamUserInfo['pid'],'mark'=>'您的一级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['first'].'%返佣,¥'.$firstLevel,'uniacid'=>$_GPC['uniacid']]);
  195. $a = $modelIncome->create([
  196. 'money' => $firstLevel,
  197. 'oid' => $order['id'],
  198. 'uid' => $teamUserInfo['pid'],
  199. 'buy_uid' => $order['uid'],
  200. 'buy_price'=>$order['pay_price'],
  201. 'mark' => '您的一级下线支付订单金额:¥'.$order['pay_price'].'入驻分销商。您获得的佣金是:'.$conf['first'].'%返佣,¥'.$firstLevel,
  202. 'uniacid'=>$_GPC['uniacid'],
  203. ]);
  204. }
  205. }
  206. if(!empty($teamUserInfo['gid'])){
  207. // 奖励给gid
  208. // 计算一级分销返佣
  209. $higherUserInfo = $modelUser::where('uid','=',$teamUserInfo['gid'])->find();
  210. if(!empty($higherUserInfo) && $higherUserInfo['status'] == 1){
  211. $banlance = $higherUserInfo['money'] + $secondLevel;
  212. $modelUser::where('uid','=',$teamUserInfo['gid'])->update(['money'=>$banlance]);
  213. // $b = $modelIncome->save(['money'=>$secondLevel,'uid'=>$teamUserInfo['gid'],'mark'=>'您的二级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['second'].'%返佣,¥'.$secondLevel,'uniacid'=>$_GPC['uniacid']]);
  214. $b = $modelIncome->create([
  215. 'money' => $secondLevel,
  216. 'uid' => $teamUserInfo['gid'],
  217. 'oid' => $order['id'],
  218. 'buy_uid' => $order['uid'],
  219. 'buy_price'=>$order['pay_price'],
  220. 'mark' => '您的二级下线支付订单金额:¥'.$order['pay_price'].'入驻分销商。您获得的佣金是:'.$conf['second'].'%返佣,¥'.$secondLevel,
  221. 'uniacid'=>$_GPC['uniacid'],
  222. ]);
  223. }
  224. }
  225. if(!empty($teamUserInfo['gfid'])){
  226. // 奖励给gfid
  227. // 计算一级分销返佣
  228. $higherUserInfo = $modelUser::where('uid','=',$teamUserInfo['gfid'])->find();
  229. if(!empty($higherUserInfo) && $higherUserInfo['status'] == 1){
  230. $banlance = $higherUserInfo['money'] + $thirdLevel;
  231. $modelUser::where('uid','=',$teamUserInfo['gfid'])->update(['money'=>$banlance]);
  232. // $c = $modelIncome->save(['money'=>$thirdLevel,'uid'=>$teamUserInfo['gfid'],'mark'=>'您的三级下线支付订单金额:'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['third'].'%返佣,¥'.$secondLevel,'uniacid'=>$_GPC['uniacid']]);
  233. $c = $modelIncome->create([
  234. 'money' => $thirdLevel,
  235. 'uid' => $teamUserInfo['gfid'],
  236. 'oid' => $order['id'],
  237. 'buy_uid' => $order['uid'],
  238. 'buy_price'=>$order['pay_price'],
  239. 'mark' => '您的三级下线支付订单金额:¥'.$order['pay_price'].'入驻分销商。您获得的佣金是:'.$conf['third'].'%返佣,¥'.$thirdLevel,
  240. 'uniacid'=>$_GPC['uniacid'],
  241. ]);
  242. }
  243. }
  244. }
  245. if (!$updateRes) return false;
  246. } elseif ($xmlObj['result_code'] === 'FAIL') {
  247. // 用户支付失败
  248. return false;
  249. }
  250. } else {
  251. return false;
  252. }
  253. return true;
  254. // file_put_contents(__DIR__ . '/ds.json', json_encode($xmlObj));
  255. }
  256. public function notifyHupijiao()
  257. {
  258. global $_GPC;
  259. $post = $this->request->post();
  260. // file_put_contents(__DIR__ . '/notifyHupijiao.json', json_encode($post));
  261. // 库里查
  262. $order = $this->model->where('order_number','=',$post['trade_order_id'])->find();
  263. // file_put_contents(__DIR__ . '/ds.json', json_encode($order));
  264. // 如果订单不存在 或者 订单已经支付过了
  265. if(!$order || $order['paid'] == 1){
  266. return true; //已经处理 或该笔订单库里已经支付,微信你请勿再通知
  267. }
  268. if($post['status'] === 'OD'){
  269. $_GPC['uniacid'] = $order['uniacid'];
  270. $updateRes = $this->model->where('order_number', '=', $post['trade_order_id'])->update(['paid'=>1, 'pay_time' => time(),'pay_channel'=>'hupijiao']);
  271. $memberInfo = \app\model\Member::find($order['link_id']);
  272. $this->setMember($order,$memberInfo);
  273. // 分销
  274. $this->setCommission($order,$memberInfo);
  275. }
  276. return 'success';
  277. }
  278. public function setMember($order,$memberInfo)
  279. {
  280. global $_GPC;
  281. if(!empty($memberInfo) && !empty($memberInfo['type'])){
  282. if($memberInfo['type']==2){
  283. $modelVipinfo =new \app\model\Vipinfo();
  284. $title = '充值时长';
  285. $userInfo = \app\model\User::find($order['uid']);
  286. if($memberInfo['day'] === 9999){
  287. $title = $title.'(永久)';
  288. $updateRes2 = \app\model\User::where('id', '=', $order['uid'])->update(['vip_time' => 9999]);
  289. }else{
  290. $title = $title.'('.$memberInfo['day'].'天)';
  291. if($userInfo['vip_time'] < time()){
  292. $balance = strtotime("+".$memberInfo['day']."days");
  293. }else{
  294. // file_put_contents(__DIR__ . '/d.json', $memberInfo['day']*24*60*60);
  295. $balance = $userInfo['vip_time'] + $memberInfo['day']*24*60*60;
  296. }
  297. $updateRes2 = \app\model\User::where('id', '=', $order['uid'])->update(['vip_time' => $balance]);
  298. }
  299. BillServiceFacade::record(1,$memberInfo['coin'],'pay_member',$title,$order['uid'],$order['uniacid']);
  300. // 写入余量
  301. $vipinfo = $modelVipinfo->where('uid',$order['uid'])->find();
  302. if(empty($vipinfo)){
  303. $save =[
  304. 'uid'=>$order['uid'],
  305. 'gpt35_times'=>$memberInfo['gpt35_times']?$memberInfo['gpt35_times']:0,
  306. 'gpt4_times'=>$memberInfo['gpt4_times']?$memberInfo['gpt4_times']:0,
  307. 'sd_times'=>$memberInfo['sd_times']?$memberInfo['sd_times']:0,
  308. 'mj_times'=>$memberInfo['mj_times']?$memberInfo['mj_times']:0,
  309. 'order_number'=>$order['order_number'],
  310. 'member_id'=>$memberInfo['id'],
  311. 'uniacid'=>$_GPC['uniacid']
  312. ];
  313. $res = $modelVipinfo->save($save);
  314. file_put_contents(__DIR__ . '/vipinfo.json', json_encode($res));
  315. }else{
  316. $updata =[
  317. // 'gpt35_times'=>$memberInfo['gpt35_times']?$memberInfo['gpt35_times']:0,
  318. // 'gpt4_times'=>$memberInfo['gpt4_times']?$memberInfo['gpt4_times']:0,
  319. // 'sd_times'=>$memberInfo['sd_times']?$memberInfo['sd_times']:0,
  320. // 'mj_times'=>$memberInfo['mj_times']?$memberInfo['mj_times']:0,
  321. 'order_number'=>$order['order_number'],
  322. 'member_id'=>$memberInfo['id'],
  323. 'uniacid'=>$_GPC['uniacid']
  324. ];
  325. if($memberInfo['gpt35_times'] == -1){
  326. $updata['gpt35_times'] = -1;
  327. }else{
  328. if($userInfo['vip_time'] <= time()){
  329. // 过期
  330. $updata['gpt35_times'] = $memberInfo['gpt35_times'];
  331. }else{
  332. if($vipinfo['gpt35_times']==-1){
  333. $updata['gpt35_times'] = -1;
  334. }else{
  335. $updata['gpt35_times'] = $vipinfo['gpt35_times'] + $memberInfo['gpt35_times'];
  336. }
  337. }
  338. }
  339. if($memberInfo['gpt4_times'] == -1){
  340. $updata['gpt4_times'] = -1;
  341. }else{
  342. if($userInfo['vip_time'] <= time()){
  343. $updata['gpt4_times'] = $memberInfo['gpt4_times'];
  344. }else{
  345. if($vipinfo['gpt4_times']==-1){
  346. $updata['gpt4_times'] = -1;
  347. }else{
  348. $updata['gpt4_times'] = $vipinfo['gpt4_times'] + $memberInfo['gpt4_times'];
  349. }
  350. }
  351. }
  352. if($memberInfo['sd_times'] == -1){
  353. $updata['sd_times'] = -1;
  354. }else{
  355. if($userInfo['vip_time'] <= time()){
  356. $updata['sd_times'] = $memberInfo['sd_times'];
  357. }else{
  358. if($vipinfo['sd_times']==-1){
  359. $updata['sd_times'] = -1;
  360. }else{
  361. $updata['sd_times'] = $vipinfo['sd_times'] + $memberInfo['sd_times'];
  362. }
  363. }
  364. }
  365. if($memberInfo['mj_times'] == -1){
  366. $updata['mj_times'] = -1;
  367. }else{
  368. if($userInfo['vip_time'] <= time()){
  369. $updata['mj_times'] = $memberInfo['mj_times'];
  370. }else{
  371. if($vipinfo['mj_times']==-1){
  372. $updata['mj_times'] = -1;
  373. }else{
  374. $updata['mj_times'] = $vipinfo['mj_times'] + $memberInfo['mj_times'];
  375. }
  376. }
  377. }
  378. $modelVipinfo->where('uid',$order['uid'])
  379. ->update($updata);
  380. }
  381. }else{
  382. $updateRes2 = \app\model\User::where('id', '=', $order['uid'])->inc('coin',$memberInfo['coin'])->update();
  383. BillServiceFacade::record(1,$memberInfo['coin'],'pay_member','充值次数',$order['uid'],$order['uniacid']);
  384. }
  385. }
  386. }
  387. public function setCommission($order,$memberInfo)
  388. {
  389. global $_GPC;
  390. $modelTeam =new \app\model\commission\Team();
  391. $modelIncome =new \app\model\commission\Income();
  392. $modelUser =new \app\model\commission\User();
  393. $teamUserInfo = $modelTeam::where('uid','=',$order['uid'])->find();
  394. $conf = ConfServiceFacade::groupGet('system.commission');
  395. // 获得购买者是否是分销商
  396. $buyUserInfo= $modelUser::where('uid','=',$order['uid'])->find();
  397. if(!empty($conf['is_commission']) && $conf['is_commission']==1 ){
  398. if($conf['first'] > 0){
  399. $firstLevel = $order['pay_price'] * ($conf['first'])/100;
  400. }
  401. if($conf['second'] > 0){
  402. $secondLevel = $order['pay_price'] * ($conf['second'])/100;
  403. }
  404. if($conf['third'] > 0){
  405. $thirdLevel = $order['pay_price'] * ($conf['third'])/100;
  406. }
  407. if(!empty($conf['is_self_buy']) && $conf['is_self_buy'] == 1 && !empty($buyUserInfo) && $buyUserInfo['status'] == 1){
  408. // 开启自购
  409. $higherUserInfo = $modelUser::where('uid','=',$order['uid'])->find();
  410. $banlance = $higherUserInfo['money'] + $firstLevel;
  411. $modelUser::where('uid','=',$order['uid'])->update(['money'=>$banlance]);
  412. // $a = $modelIncome->save(['money'=>$firstLevel,'uid'=>$teamUserInfo['pid'],'mark'=>'您的一级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['first'].'%返佣,¥'.$firstLevel,'uniacid'=>$_GPC['uniacid']]);
  413. $a = $modelIncome->create([
  414. 'money' => $firstLevel,
  415. 'oid' => $order['id'],
  416. 'uid' => $order['uid'],
  417. 'buy_uid' => $order['uid'],
  418. 'buy_price'=>$order['pay_price'],
  419. 'mark' => '自购返佣:您支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['first'].'%返佣,¥'.$firstLevel,
  420. 'uniacid'=>$_GPC['uniacid'],
  421. ]);
  422. if(!empty($teamUserInfo['pid'])){
  423. // 奖励给pid
  424. // 计算一级分销返佣
  425. $higherUserInfo = $modelUser::where('uid','=',$teamUserInfo['pid'])->find();
  426. // if($higherUserInfo['status'] == 1){
  427. $banlance = $higherUserInfo['money'] + $secondLevel;
  428. $modelUser::where('uid','=',$teamUserInfo['pid'])->update(['money'=>$banlance]);
  429. // $a = $modelIncome->save(['money'=>$secondLevel,'uid'=>$teamUserInfo['pid'],'mark'=>'您的一级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['first'].'%返佣,¥'.$secondLevel,'uniacid'=>$_GPC['uniacid']]);
  430. $a = $modelIncome->create([
  431. 'money' => $secondLevel,
  432. 'oid' => $order['id'],
  433. 'uid' => $teamUserInfo['pid'],
  434. 'buy_uid' => $order['uid'],
  435. 'buy_price'=>$order['pay_price'],
  436. 'mark' => '您的一级下线分销商内购,支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['second'].'%返佣,¥'.$secondLevel,
  437. 'uniacid'=>$_GPC['uniacid'],
  438. ]);
  439. // }
  440. }
  441. if(!empty($teamUserInfo['gid'])){
  442. // 奖励给gid
  443. // 计算一级分销返佣
  444. $higherUserInfo = $modelUser::where('uid','=',$teamUserInfo['gid'])->find();
  445. if($higherUserInfo['status'] == 1){
  446. $banlance = $higherUserInfo['money'] + $thirdLevel;
  447. $modelUser::where('uid','=',$teamUserInfo['gid'])->update(['money'=>$banlance]);
  448. // $b = $modelIncome->save(['money'=>$thirdLevel,'uid'=>$teamUserInfo['gid'],'mark'=>'您的二级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['second'].'%返佣,¥'.$thirdLevel,'uniacid'=>$_GPC['uniacid']]);
  449. $b = $modelIncome->create([
  450. 'money' => $thirdLevel,
  451. 'uid' => $teamUserInfo['gid'],
  452. 'oid' => $order['id'],
  453. 'buy_uid' => $order['uid'],
  454. 'buy_price'=>$order['pay_price'],
  455. 'mark' => '您的二级下线分销商内购,支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['third'].'%返佣,¥'.$thirdLevel,
  456. 'uniacid'=>$_GPC['uniacid'],
  457. ]);
  458. }
  459. }
  460. } else {
  461. if(!empty($teamUserInfo['pid'])){
  462. // 奖励给pid
  463. // 计算一级分销返佣
  464. $higherUserInfo = $modelUser::where('uid','=',$teamUserInfo['pid'])->find();
  465. if(!empty($higherUserInfo) && $higherUserInfo['status'] == 1){
  466. $banlance = $higherUserInfo['money'] + $firstLevel;
  467. $modelUser::where('uid','=',$teamUserInfo['pid'])->update(['money'=>$banlance]);
  468. // $a = $modelIncome->save(['money'=>$firstLevel,'uid'=>$teamUserInfo['pid'],'mark'=>'您的一级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['first'].'%返佣,¥'.$firstLevel,'uniacid'=>$_GPC['uniacid']]);
  469. $a = $modelIncome->create([
  470. 'money' => $firstLevel,
  471. 'oid' => $order['id'],
  472. 'uid' => $teamUserInfo['pid'],
  473. 'buy_uid' => $order['uid'],
  474. 'buy_price'=>$order['pay_price'],
  475. 'mark' => '您的一级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['first'].'%返佣,¥'.$firstLevel,
  476. 'uniacid'=>$_GPC['uniacid'],
  477. ]);
  478. }
  479. }
  480. if(!empty($teamUserInfo['gid'])){
  481. // 奖励给gid
  482. // 计算一级分销返佣
  483. $higherUserInfo = $modelUser::where('uid','=',$teamUserInfo['gid'])->find();
  484. if(!empty($higherUserInfo) && $higherUserInfo['status'] == 1){
  485. $banlance = $higherUserInfo['money'] + $secondLevel;
  486. $modelUser::where('uid','=',$teamUserInfo['gid'])->update(['money'=>$banlance]);
  487. // $b = $modelIncome->save(['money'=>$secondLevel,'uid'=>$teamUserInfo['gid'],'mark'=>'您的二级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['second'].'%返佣,¥'.$secondLevel,'uniacid'=>$_GPC['uniacid']]);
  488. $b = $modelIncome->create([
  489. 'money' => $secondLevel,
  490. 'uid' => $teamUserInfo['gid'],
  491. 'oid' => $order['id'],
  492. 'buy_uid' => $order['uid'],
  493. 'buy_price'=>$order['pay_price'],
  494. 'mark' => '您的二级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['second'].'%返佣,¥'.$secondLevel,
  495. 'uniacid'=>$_GPC['uniacid'],
  496. ]);
  497. }
  498. }
  499. if(!empty($teamUserInfo['gfid'])){
  500. // 奖励给gfid
  501. // 计算一级分销返佣
  502. $higherUserInfo = $modelUser::where('uid','=',$teamUserInfo['gfid'])->find();
  503. if(!empty($higherUserInfo) && $higherUserInfo['status'] == 1){
  504. $banlance = $higherUserInfo['money'] + $thirdLevel;
  505. $modelUser::where('uid','=',$teamUserInfo['gfid'])->update(['money'=>$banlance]);
  506. // $c = $modelIncome->save(['money'=>$thirdLevel,'uid'=>$teamUserInfo['gfid'],'mark'=>'您的三级下线支付订单金额:'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['third'].'%返佣,¥'.$secondLevel,'uniacid'=>$_GPC['uniacid']]);
  507. $c = $modelIncome->create([
  508. 'money' => $thirdLevel,
  509. 'uid' => $teamUserInfo['gfid'],
  510. 'oid' => $order['id'],
  511. 'buy_uid' => $order['uid'],
  512. 'buy_price'=>$order['pay_price'],
  513. 'mark' => '您的三级下线支付订单金额:¥'.$order['pay_price'].'购买了'.$memberInfo['title'].'套餐。您获得的佣金是:'.$conf['third'].'%返佣,¥'.$thirdLevel,
  514. 'uniacid'=>$_GPC['uniacid'],
  515. ]);
  516. }
  517. }
  518. }
  519. }
  520. }
  521. }