Vip.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 开通会员结算
  7. */
  8. namespace app\fastshop\widget;
  9. class Vip{
  10. /**
  11. * 开通会员推荐人收益
  12. * @param integer $miniapp_id 来源小程序
  13. * @param integer $uid 用户ID
  14. * @param float $cash_fee (分)
  15. * @param [type] $config 系统配置
  16. * @return void
  17. */
  18. public function level(int $miniapp_id,int $uid,int $cash_fee){
  19. $level = model('SystemUserLevel')->where(['user_id' => $uid,'level'=>[1,2]])->select();
  20. $level1 = 0;
  21. $level2 = 0;
  22. foreach ($level as $key => $value) {
  23. if($value['level'] == 1){
  24. $level1 = $value['parent_id'];
  25. }
  26. if($value['level'] == 2){
  27. $level2 = $value['parent_id'];
  28. }
  29. }
  30. $config = model('Config')->where(['member_miniapp_id' => $miniapp_id])->find(); //读取配置
  31. $shopping = $config['shopping']/100; //购物金比例
  32. if($level1){//一级
  33. //查询是否会员
  34. $rel = model('Vip')->field('state')->where(['member_miniapp_id'=>$miniapp_id,'user_id' => $level1,'state'=>1])->count();
  35. if($rel){
  36. $level1_print = $cash_fee*($config['regvip_level1_ratio']/100); //直推反比多少钱
  37. $small_shop = intval($level1_print*$shopping); //购物
  38. $small_due = intval($level1_print-$small_shop); //剩下多少
  39. if($small_shop > 0 && $small_due > 0){
  40. model('Bank')->due_up($miniapp_id,$level1,$small_due,$small_shop);
  41. model('BankLogs')->add($miniapp_id,$level1,intval($level1_print),'会员贡献收益,积分'.money($level1_print/100).' 已结算');
  42. }
  43. }
  44. }
  45. if($level2){ //二级
  46. $rel = model('Vip')->field('state')->where(['member_miniapp_id'=>$miniapp_id,'user_id' => $level2,'state'=>1])->count();
  47. if($rel){
  48. $level2_print = $cash_fee*($config['regvip_level2_ratio']/100); //直推反比多少钱
  49. $big_shop = intval($level2_print*$shopping); //购物
  50. $big_due = intval($level2_print-$big_shop); //剩下多少
  51. if($big_shop > 0 && $big_due > 0){
  52. model('Bank')->due_up($miniapp_id,$level2,$big_due,$big_shop);
  53. model('BankLogs')->add($miniapp_id,$level2,intval($level2_print),'会员贡献收益 ,积分'.money($level2_print/100).' 已结算');
  54. }
  55. }
  56. }
  57. }
  58. }