predeposit_helper.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  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. public function filter_pd_log($items)
  64. {
  65. $pdlogs = array();
  66. foreach($items as $val)
  67. {
  68. $item = array();
  69. $av_amount = $val['lg_av_amount'];
  70. $freeze_amount = $val['lg_freeze_amount'];
  71. $admin_name = $val['lg_admin_name'];
  72. $add_time = $val['lg_add_time'];
  73. $type = $val['lg_type'];
  74. $sn = $this->filter_sn($val['lg_desc']);
  75. $item['av_amount'] = $av_amount;
  76. $item['freeze_amount'] = $freeze_amount;
  77. $item['add_time'] = $add_time;
  78. $fAdd = true;
  79. if($type == 'order_pay') {
  80. $item['title'] = "支付订单:{$sn}";
  81. }
  82. else if($type == 'order_freeze') {
  83. $item['title'] = "下单,冻结预存款,订单号:{$sn}";
  84. }
  85. else if($type == 'order_cancel') {
  86. $item['title'] = "取消订单,解冻预存款,订单号:{$sn}";
  87. }
  88. else if($type == 'order_comb_pay') {
  89. $item['title'] = "下单,支付被冻结的预存款,订单号:{$sn}";
  90. }
  91. else if($type == 'recharge') {
  92. $item['title'] = "充值,充值单号:{$sn}";
  93. }
  94. else if($type == 'refund') {
  95. $item['title'] = "确认退款,订单号:{$sn}";
  96. }
  97. else if($type == 'vr_refund') {
  98. $item['title'] = "虚拟兑码退款成功,订单号:{$sn}";
  99. }
  100. else if($type == 'hand_out_bonus') {
  101. $item['title'] = "发出红包,红包号:{$sn}";
  102. }
  103. else if($type == 'bonus_add_money') {
  104. $item['title'] = "{$admin_name}的红包,红包号:{$sn}";
  105. }
  106. else if($type == 'sys_add_money') {
  107. $item['title'] = "管理员调节预存款,充值单号:{$sn}";
  108. }
  109. else if($type == 'sys_del_money') {
  110. $item['title'] = "管理员调节预存款,充值单号:{$sn}";
  111. }
  112. else if($type == 'sys_freeze_money') {
  113. $item['title'] = "管理员冻结预存款,充值单号:{$sn}";
  114. }
  115. else if($type == 'sys_unfreeze_money') {
  116. $item['title'] = "管理员解冻预存款,充值单号:{$sn}";
  117. }
  118. else {
  119. $fAdd = false;
  120. }
  121. if($fAdd) {
  122. array_push($pdlogs,$item);
  123. }
  124. }
  125. return $pdlogs;
  126. }
  127. //订单总额,可用的余额,当前订单已经使用的余额
  128. //返回分
  129. public function calc_pred($order_amount,$avail_amound,$pd_amount,&$no_cash)
  130. {
  131. $cur_used = intval($order_amount * 0.99 + 0.5);
  132. $cur_used = $cur_used > $avail_amound ? $avail_amound : $cur_used;
  133. if($order_amount == $cur_used) {
  134. $no_cash = true;
  135. } else {
  136. $no_cash = false;
  137. }
  138. return ($cur_used - $pd_amount > 0 ? $cur_used - $pd_amount : 0);
  139. }
  140. // public function calc_pred($pay_sn,&$avail_pred)
  141. // {
  142. // $logic_payment = Logic('payment');
  143. // $result = $logic_payment->getRealOrderInfo($pay_sn, $_SESSION['member_id']);
  144. //
  145. // if(empty($result)) {
  146. // return false;
  147. // }
  148. // $data = $result['data'];
  149. // $order_amount = $data['api_pay_amount'];
  150. //
  151. // $member = Model('member');
  152. // $relay_array = $member->getMemberPdInfo($_SESSION['member_id']);
  153. // $avail_pred = floatval($relay_array['available_predeposit']);
  154. // //$order_list = $data['order_list']; todo 需要更严格的扣费策略,从各个商品考虑
  155. //
  156. // $use_pred = intval(($order_amount * 0.2) * 100);
  157. // $use_pred = $use_pred > intval($avail_pred * 100) ? intval($avail_pred * 100) : $use_pred;
  158. //
  159. // return $use_pred / 100;
  160. // }
  161. }