predeposit_helper.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 16/4/12
  6. * Time: 下午4:57
  7. */
  8. class predeposit_helper
  9. {
  10. private $model_pd;
  11. public function __construct() {
  12. $this->model_pd = Model('predeposit');
  13. }
  14. public function get_predeposit()
  15. {
  16. $pd_array = Model('member')->getMemberPdInfo($_SESSION['member_id']);
  17. $total_value = $pd_array['available_predeposit']; // 当前预存款
  18. $freeze_value = $pd_array['freeze_predeposit']; // 当前预存款冻结
  19. return array('total_value' => $total_value,'freeze_value' => $freeze_value);
  20. }
  21. public function get_predeposit_total()
  22. {
  23. $member = Model('member');
  24. $relay_array = $member->getMemberPdInfo($_SESSION['member_id']);
  25. $total = floatval($relay_array['available_predeposit']);// + floatval($relay_array['available_relay_balance']);
  26. return $total;
  27. }
  28. public function is_enough($money) {
  29. return intval(self::get_predeposit_total() * 100) >= intval($money * 100);
  30. }
  31. public function bonus_add_money($amount,$bonus_sn,$sender_name,$info)
  32. {
  33. $data = array();
  34. $data['member_id'] = $_SESSION['member_id'];
  35. $data['member_name'] = $_SESSION['member_name'];
  36. $data['amount'] = $amount;
  37. $data['order_sn'] = $bonus_sn;
  38. $data['admin_name'] = $sender_name;
  39. $data['pdr_sn'] = $bonus_sn;
  40. $data['lg_desc'] = $info;
  41. $this->model_pd->changePd("bonus_add_money", $data);
  42. }
  43. public function hand_out_bonus($amount,$bonus_sn,$sender_name,$info) {
  44. $data = array();
  45. $data['member_id'] = $_SESSION['member_id'];
  46. $data['member_name'] = $_SESSION['member_name'];
  47. $data['amount'] = $amount;
  48. $data['order_sn'] = $bonus_sn;
  49. $data['admin_name'] = $sender_name;
  50. $data['pdr_sn'] = $bonus_sn;
  51. $data['lg_desc'] = $info;
  52. $this->model_pd->changePd("hand_out_bonus", $data);
  53. }
  54. private function filter_sn($lg_desc)
  55. {
  56. //发送红包系统调节预存款【减少】,红包单号: 910514563264556490
  57. $pos = mb_strpos($lg_desc,':');
  58. if($pos != false) {
  59. return mb_substr($lg_desc,$pos + 1);
  60. }
  61. return '';
  62. }
  63. //'order_pay\', \'bonus_add_money\', \'hand_out_bonus\', \'sys_add_money\'
  64. public function filter_pd_log($items)
  65. {
  66. $pdlogs = array();
  67. foreach($items as $val)
  68. {
  69. $item = array();
  70. $av_amount = $val['lg_av_amount'];
  71. $freeze_amount = $val['lg_freeze_amount'];
  72. $admin_name = $val['lg_admin_name'];
  73. $add_time = $val['lg_add_time'];
  74. $type = $val['lg_type'];
  75. $sn = $this->filter_sn($val['lg_desc']);
  76. $item['av_amount'] = $av_amount;
  77. $item['freeze_amount'] = $freeze_amount;
  78. $item['add_time'] = $add_time;
  79. $fAdd = true;
  80. if($type == 'hand_out_bonus') {
  81. $item['title'] = "发出红包";
  82. }
  83. else if($type == 'bonus_add_money') {
  84. $item['title'] = "{$admin_name}的红包";
  85. }
  86. else if($type == 'order_pay') {
  87. $item['title'] = "支付订单:{$sn}";
  88. }
  89. else if($type == 'sys_add_money') {
  90. $item['title'] = "系统充值";
  91. }
  92. else {
  93. $fAdd = false;
  94. }
  95. if($fAdd) {
  96. array_push($pdlogs,$item);
  97. }
  98. }
  99. return $pdlogs;
  100. }
  101. //订单总额,可用的余额,当前订单已经使用的余额
  102. //返回分
  103. public function calc_pred($order_amount,$avail_amound,$pd_amount,&$no_cash)
  104. {
  105. $cur_used = intval($order_amount * 0.99);
  106. $cur_used = $cur_used > $avail_amound ? $avail_amound : $cur_used;
  107. if($order_amount == $cur_used) {
  108. $no_cash = true;
  109. } else {
  110. $no_cash = false;
  111. }
  112. return ($cur_used - $pd_amount > 0 ? $cur_used - $pd_amount : 0);
  113. }
  114. // public function calc_pred($pay_sn,&$avail_pred)
  115. // {
  116. // $logic_payment = Logic('payment');
  117. // $result = $logic_payment->getRealOrderInfo($pay_sn, $_SESSION['member_id']);
  118. //
  119. // if(empty($result)) {
  120. // return false;
  121. // }
  122. // $data = $result['data'];
  123. // $order_amount = $data['api_pay_amount'];
  124. //
  125. // $member = Model('member');
  126. // $relay_array = $member->getMemberPdInfo($_SESSION['member_id']);
  127. // $avail_pred = floatval($relay_array['available_predeposit']);
  128. // //$order_list = $data['order_list']; todo 需要更严格的扣费策略,从各个商品考虑
  129. //
  130. // $use_pred = intval(($order_amount * 0.2) * 100);
  131. // $use_pred = $use_pred > intval($avail_pred * 100) ? intval($avail_pred * 100) : $use_pred;
  132. //
  133. // return $use_pred / 100;
  134. // }
  135. }