123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 16/4/12
- * Time: 下午4:57
- */
- class predeposit_helper
- {
- private $model_pd;
- public function __construct() {
- $this->model_pd = Model('predeposit');
- }
- public function get_predeposit()
- {
- $pd_array = Model('member')->getMemberPdInfo($_SESSION['member_id']);
- $total_value = $pd_array['available_predeposit']; // 当前预存款
- $freeze_value = $pd_array['freeze_predeposit']; // 当前预存款冻结
- return array('total_value' => $total_value,'freeze_value' => $freeze_value);
- }
- public function get_predeposit_total()
- {
- $member = Model('member');
- $relay_array = $member->getMemberPdInfo($_SESSION['member_id']);
- $total = floatval($relay_array['available_predeposit']);
- return $total;
- }
- public function is_enough($money) {
- return intval(self::get_predeposit_total() * 100) >= intval($money * 100);
- }
- public function bonus_add_money($amount,$bonus_sn,$sender_name,$info)
- {
- $data = array();
- $data['member_id'] = $_SESSION['member_id'];
- $data['member_name'] = $_SESSION['member_name'];
- $data['amount'] = $amount;
- $data['order_sn'] = $bonus_sn;
- $data['admin_name'] = $sender_name;
- $data['pdr_sn'] = $bonus_sn;
- $data['lg_desc'] = $info;
- $this->model_pd->changePd("bonus_add_money", $data);
- }
- public function pay_add_money($paysn,$total_fee)
- {
- // $data = array();
- // $data['member_id'] = $member_info['member_id'];
- // $data['member_name'] = $member_info['member_name'];
- // $data['amount'] = $money;
- // $data['order_sn'] = $order_sn;
- // $data['admin_name'] = $bonusname;
- // $data['pdr_sn'] = $order_sn;
- // $data['lg_desc'] = $memo;
- // $model_pd->changePd("sys_add_money", $data);
- }
- public function transform_money($member_id,$name,$amount)
- {
- $data = array();
- $data['member_id'] = $member_id;
- $data['member_name'] = is_null($name) ? '' : $name;
- $data['amount'] = $amount;
- $order_sn = $this->model_pd->makeSn();
- $data['order_sn'] = $order_sn;
- $data['admin_name'] = '平台管理员';
- $data['pdr_sn'] = $order_sn;
- $data['lg_desc'] = '版本升级,余额迁移.';
- $this->model_pd->changePd("sys_add_money",$data);
- }
- public function hand_out_bonus($amount,$bonus_sn,$sender_name,$info) {
- $data = array();
- $data['member_id'] = $_SESSION['member_id'];
- $data['member_name'] = $_SESSION['member_name'];
- $data['amount'] = $amount;
- $data['order_sn'] = $bonus_sn;
- $data['admin_name'] = $sender_name;
- $data['pdr_sn'] = $bonus_sn;
- $data['lg_desc'] = $info;
- $this->model_pd->changePd("hand_out_bonus", $data);
- }
- private function filter_sn($lg_desc)
- {
- //发送红包系统调节预存款【减少】,红包单号: 910514563264556490
- $pos = mb_strpos($lg_desc,':');
- if($pos != false) {
- return mb_substr($lg_desc,$pos + 1);
- }
- return '';
- }
- public function filter_pd_log($items)
- {
- $pdlogs = array();
- foreach($items as $val)
- {
- $item = array();
- $av_amount = $val['lg_av_amount'];
- $freeze_amount = $val['lg_freeze_amount'];
- $admin_name = $val['lg_admin_name'];
- $add_time = $val['lg_add_time'];
- $type = $val['lg_type'];
- $sn = $this->filter_sn($val['lg_desc']);
- $item['av_amount'] = $av_amount;
- $item['freeze_amount'] = $freeze_amount;
- $item['add_time'] = $add_time;
- $fAdd = true;
- if($type == 'order_pay') {
- $item['title'] = "支付订单";
- $item['sn'] = "订单号:{$sn}";
- }
- else if($type == 'order_freeze') {
- $item['title'] = "下单,冻结预存款";
- $item['sn'] = "订单号:{$sn}";
- }
- else if($type == 'order_cancel') {
- $item['title'] = "取消订单,解冻预存款";
- $item['sn'] = "订单号:{$sn}";
- }
- else if($type == 'order_comb_pay') {
- $item['title'] = "下单,支付被冻结的预存款";
- $item['sn'] = "订单号:{$sn}";
- $item['av_amount'] = $freeze_amount;
- }
- else if($type == 'recharge') {
- $item['title'] = "充值";
- $item['sn'] = "充值单号:{$sn}";
- }
- else if($type == 'refund') {
- $item['title'] = "确认退款";
- }
- else if($type == 'vr_refund') {
- $item['title'] = "虚拟兑码退款成功";
- }
- else if($type == 'hand_out_bonus') {
- $item['title'] = "发出红包";
- $item['sn'] = '';
- }
- else if($type == 'bonus_add_money') {
- $item['title'] = "{$admin_name}的红包";
- $item['sn'] = '';
- }
- else if($type == 'sys_add_money') {
- $item['title'] = "管理员调节预存款";
- $item['sn'] = '';
- }
- else if($type == 'sys_del_money') {
- $item['title'] = "管理员调节预存款";
- $item['sn'] = '';
- }
- else if($type == 'sys_freeze_money') {
- $item['title'] = "管理员冻结预存款";
- $item['sn'] = "充值单号:{$sn}";
- }
- else if($type == 'sys_unfreeze_money') {
- $item['title'] = "管理员解冻预存款";
- $item['sn'] = "充值单号:{$sn}";
- }
- else {
- $fAdd = false;
- }
- if($fAdd) {
- array_push($pdlogs,$item);
- }
- }
- return $pdlogs;
- }
- //订单总额,可用的余额,当前订单已经使用的余额
- //返回分
- public function calc_pred($order_amount,$avail_amound,$pd_amount,&$no_cash)
- {
- if(is_pushoms()) {
- $scale = 0.30;
- } else {
- $scale = 0.99;
- }
- $cur_used = intval($order_amount * $scale + 0.5);
- $cur_used = $cur_used > $avail_amound ? $avail_amound : $cur_used;
- if($order_amount == $cur_used) {
- $no_cash = true;
- } else {
- $no_cash = false;
- }
- return ($cur_used - $pd_amount > 0 ? $cur_used - $pd_amount : 0);
- }
- // public function calc_pred($pay_sn,&$avail_pred)
- // {
- // $logic_payment = Logic('payment');
- // $result = $logic_payment->getRealOrderInfo($pay_sn, $_SESSION['member_id']);
- //
- // if(empty($result)) {
- // return false;
- // }
- // $data = $result['data'];
- // $order_amount = $data['api_pay_amount'];
- //
- // $member = Model('member');
- // $relay_array = $member->getMemberPdInfo($_SESSION['member_id']);
- // $avail_pred = floatval($relay_array['available_predeposit']);
- // //$order_list = $data['order_list']; todo 需要更严格的扣费策略,从各个商品考虑
- //
- // $use_pred = intval(($order_amount * 0.2) * 100);
- // $use_pred = $use_pred > intval($avail_pred * 100) ? intval($avail_pred * 100) : $use_pred;
- //
- // return $use_pred / 100;
- // }
- }
|