123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 16/4/16
- * Time: 下午6:08
- */
- require_once (BASE_ROOT_PATH . '/helper/bonus_helper.php');
- require_once (BASE_ROOT_PATH . '/helper/session_helper.php');
- require_once (BASE_ROOT_PATH . '/helper/text_filter.php');
- require_once (BASE_ROOT_PATH . '/helper/shaker_helper.php');
- require_once (BASE_ROOT_PATH . '/helper/ranklist_helper.php');
- class member_bonusControl extends mbMemberControl
- {
- public function predepositOp()
- {
- $predeposit = new predeposit_helper($_SESSION['member_id']);
- $pred = $predeposit->get_predeposit();
- return self::outsuccess(array('predeposit_total' => $pred['total_value'], 'predeposit_freeze' => $pred['freeze_value']));
- }
- public function makeOp()
- {
- $param = bonus_helper::check_personal($_GET,$ret);
- if($param == false) {
- return self::outerr($ret['code'],$ret['msg']);
- }
- $pre_helper = new predeposit_helper($_SESSION['member_id']);
- if(!$pre_helper->is_enough($param['total_amount'])) {
- return self::outerr(errcode::ErrBonusNotEnough,'余额不够发送红包');
- }
- $param['sender_id'] = $_SESSION['member_id'];
- $param['sender_mobile'] = $_SESSION['member_mobile'];
- $param['sender_name'] = session_helper::nickname();
- $ret = bonus_helper::make_bonus($param);
- if($ret === false) {
- return self::outerr(errcode::ErrBonus,"生成红包失败.");
- } else {
- $type_sn = $ret['type_sn'];
- $money = $ret['money'];
- $pre_helper = new predeposit_helper($_SESSION['member_id']);
- $pre_helper->handout_bonus($money,$type_sn,session_helper::nickname(),"发送了{$money}元的红包.");
- bonus_helper::withold($_SESSION['member_id'],$money);
- $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
- return self::outsuccess(array('type_sn' => $ret,'url' => "{$url}"));
- }
- }
- public function makeactivityOp()
- {
- $param_active = bonus_helper::check_activity($_GET,$ret);
- if($param_active == false) {
- return self::outerr($ret['code'],$ret['msg']);
- }
- $param_personal = bonus_helper::check_personal($_GET,$ret);
- if($param_personal == false) {
- return self::outerr($ret['code'],$ret['msg']);
- }
- $param = array_merge($param_active,$param_personal);
- $pre_helper = new predeposit_helper($_SESSION['member_id']);
- if(!$pre_helper->is_enough($param['total_amount'])) {
- return self::outerr(errcode::ErrBonusNotEnough,'余额不够发送红包');
- }
- $param['sender_id'] = $_SESSION['member_id'];
- $param['sender_mobile'] = $_SESSION['member_mobile'];
- $param['sender_name'] = session_helper::nickname();
- $ret = bonus_helper::make_bonus($param);
- if($ret === false) {
- return self::outerr(errcode::ErrBonus,"生成红包失败.");
- } else {
- $type_sn = $ret['type_sn'];
- $money = $ret['money'];
- $pre_helper = new predeposit_helper($_SESSION['member_id']);
- $pre_helper->handout_bonus($money,$type_sn,session_helper::nickname(),"发送了{$money}元的红包.");
- $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
- return self::outsuccess(array('type_sn' => $ret,'url' => "{$url}"));
- }
- }
- public function share_oneOp()
- {
- if(!isset($_GET['bonus_sn']) || empty($_GET['bonus_sn'])) {
- return self::outerr(errcode::ErrParamter,"需要红包序列号.");
- }
- $bonus_sn = $_GET['bonus_sn'];
- $ret = account_helper::share_bonus($_SESSION['member_id'],$bonus_sn,$msg);
- if($ret === false) {
- return self::outerr(errcode::ErrBonus,empty($msg) ? "生成红包失败." : $msg);
- } else {
- $type_sn = $ret['type_sn'];
- $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
- return self::outsuccess(array('type_sn' => $ret,'url' => "{$url}"));
- }
- }
- public function topupOp()
- {
- $bonuses = bonus_helper::topup_bonus($_SESSION['member_mobile']);
- if($bonuses === false) {
- return self::outsuccess(array("$bonuses" => array()));
- }
- else
- {
- $ret = array();
- foreach($bonuses as $bonus)
- {
- $all_type_info = bonus_helper::get_typeinfo($bonus['type_sn']);
- if(!empty($all_type_info) && !empty($all_type_info['type_info']))
- {
- $type_info = bonus_helper::filter_type($all_type_info['type_info']);
- $bonus_info = bonus_helper::filter_bonus($bonus);
- array_push($ret,array('type_info' => $type_info,'bonus_info' => $bonus_info));
- }
- }
- return self::outsuccess(array("$bonuses" => $ret));
- }
- }
- public function topupexOp()
- {
- $bonuses = bonus_helper::topup_bonus($_SESSION['member_mobile']);
- if($bonuses === false) {
- return self::outsuccess(array("count" => 0,'total_amount' => 0.00));
- }
- else
- {
- $total_amount = 0.00;
- foreach($bonuses as $bonus) {
- $total_amount += floatval($bonus['bonus_value']);
- }
- $count = count($bonuses);
- $title = "您新领了{$count}个红包,价值{$total_amount}元.";
- return self::outsuccess(array("count" => $count,'total_amount' => $total_amount,'title' => $title));
- }
- }
- //我已经发送的红包
- public function send_listOp()
- {
- $mod_type = Model('bonus_type');
- $cond = array();
- $cond['sender_id|relayer_id'] = array('_multi'=>true,$_SESSION['member_id'],$_SESSION['member_id']);
- $cond['make_type'] = array('in',array(bonus\type::MakeSendType,bonus\type::MakePayType));
- $count = $mod_type->getTypeCount($cond);
- if($count == 0) {
- return self::outsuccess(array('type_infos' => array(), 'mobile_page' => mobile_page(0)));
- }
- $items = $mod_type->getTypeList($cond,$this->page_size(),'*','type_id desc');
- $type_infos = array();
- foreach($items as $val) {
- $type_info = bonus_helper::filter_type($val);
- array_push($type_infos,$type_info);
- }
- $pages = $this->pages($count);
- return self::outsuccess(array('type_infos' => $type_infos, 'mobile_page' => mobile_page($pages)));
- }
- //我收到的红包
- public function recv_listOp()
- {
- $mod_bonus = Model('user_bonus');
- $cond = array('user_id' => $_SESSION['member_id'],'bonus_status' => 3);
- $count = $mod_bonus->getBonusCount($cond);
- if($count == 0) {
- return self::outsuccess(array('bonuses' => array(), 'mobile_page' => mobile_page(0)));
- }
- $pages = $this->pages($count);
- if($this->page_no() > $pages) {
- return self::outsuccess(array('bonuses' => NULL,'mobile_page' => mobile_page($pages)));
- }
- $result = array();
- $items = $mod_bonus->getBonusList($cond,'*','bonus_id desc',$this->page_size(),$count);
- $type_ids = array();
- foreach ($items as $val) {
- array_push($type_ids,intval($val['type_id']));
- }
- $types = array();
- $type_items = Model('bonus_type')->getTypeList(array('type_id' => array('in',$type_ids)));
- foreach ($type_items as $val) {
- $type = bonus\type::crate_by_paramer($val);
- $types[$type->getType_id()] = $type;
- }
- foreach($items as $val) {
- $user_bonus = bonus\user_bonus::create_by_param($val);
- $item = array();
- $item['bonus_sn'] = $user_bonus->bonus_sn();
- $item['bonus_value'] = $user_bonus->bonus_value();
- $item['remain_amount'] = $user_bonus->remain_amount();
- $item['usable_time'] = $user_bonus->usable_time();
- $item['expired'] = $user_bonus->expired();
- $item['spend_over'] = $user_bonus->spend_over();
- $item['get_time'] = $user_bonus->get_time();
- $type = $types[$user_bonus->type_id()];
- $item['sender_name'] = $type->sender_name();
- $item['rand_type'] = $type->isRandomAmount();
- $item['show_type'] = self::show_type($type->make_type());
- array_push($result,$item);
- }
- return self::outsuccess(array('bonuses' => $result,'mobile_page' => mobile_page($pages)));
- }
- private function show_type($make_type)
- {
- switch ($make_type) {
- case bonus\type::MakeSendType: //抢
- return 1;
- case bonus\type::MakeBonusRefundType: //退
- case bonus\type::MakePayRefundType:
- case bonus\type::MakeOrderCancelType:
- return 2;
- case bonus\type::MakeShakeGainType: //摇
- case bonus\type::MakeShakeLostType:
- return 3;
- case bonus\type::MakePayType: //赠
- case bonus\type::MakeRegister:
- return 4;
- default:
- return 0; //什么都不显示
- }
- }
- //预存款收支记录
- public function pdlogOp()
- {
- $mod_pd = Model('predeposit');
- $count = $mod_pd->getPdLogCount(array('lg_member_id' => $_SESSION['member_id']));
- $items = $mod_pd->getPdLogList(array('lg_member_id' => $_SESSION['member_id']),$this->page_size(),'*','lg_id desc');
- if(empty($items)) {
- return self::outsuccess(array('pd_logs' => array(),'mobile_page' => mobile_page(0)));
- }
- $predeposit = new predeposit_helper($_SESSION['member_id']);
- $pd_logs = $predeposit->filter_pd_log($items);
- $pages = $this->pages($count);
- return self::outsuccess(array('pd_logs' => $pd_logs,'mobile_page' => mobile_page($pages)));
- }
- public function shakeOp()
- {
- if(!isset($_POST['strength']) || empty($_POST['strength'])) {
- $strength = intval($_POST['strength']);
- } else {
- $strength = 3;
- }
- $shaker = new shaker_helper();
- $items = $shaker->shake($strength,$err);
- if($items == false) {
- return self::outerr($err['code'],$err['msg']);
- }
- else
- {
- $total_amount = 0;
- $bonuses = array();
- foreach ($items as $bonus)
- {
- $user_bonus = bonus\user_bonus::create_by_param($bonus);
- $type_info = bonus_helper::get_typeinfo($user_bonus->type_sn());
- $type_info = $type_info['type_info'];
- $type = bonus\type::crate_by_paramer($type_info);
- $item = array();
- if($_SESSION['member_id'] == $user_bonus->user_id()) {
- $item['direction'] = 'gain';
- $item['name'] = $type->sender_name();
- $item['bonus_value'] = $user_bonus->bonus_value();
- $total_amount += $user_bonus->bonus_value();
- $minfo = new member_info($type->sender_id());
- } else {
- $item['direction'] = 'lost';
- $item['name'] = $user_bonus->user_name();
- $item['bonus_value'] = $user_bonus->bonus_value();
- $total_amount -= $user_bonus->bonus_value();
- $minfo = new member_info($user_bonus->user_id());
- }
- $item['is_man'] = $minfo->is_man();
- $item['avatar'] = $minfo->avatar();
- array_push($bonuses,$item);
- }
- $count = count($bonuses);
- return self::outsuccess(array("bonuses" => $bonuses,"info" => array('count' => $count, 'money' => $total_amount)));
- }
- }
- public function daily_rankOp()
- {
- $count = ranklist_helper::list_count($_SESSION['member_id'],$err);
- if($count == false) {
- return self::outerr($err['code'],$err['msg']);
- }
- $start_index = ($this->page_no() - 1) * $this->page_size();
- $end = $start_index + $this->page_size();
- $end = $end > $count ? $count : $end;
- $times = array();
- $start_tm = time();
- for ($index = $start_index; $index < $end; ++$index) {
- $date_time = date_helper::sub_days($start_tm,$index + 1);
- array_push($times,$date_time);
- }
- $mids = array();
- array_push($mids,intval($_SESSION['member_id']));
- $top_infos = array();
- $tops = ranklist_helper::ranklists($_SESSION['member_id'],$times);
- foreach ($tops as $key => $top) {
- $item = array();
- $item['list_sn'] = $top->list_sn();
- $item['list_rank'] = $top->get_rank() + 1;
- $item['list_value'] = $top->money();
- $item['list_date'] = $top->list_date();
- $item['top_id'] = $top->top_id();
- $item['top_money'] = $top->top_money();
- if(in_array($top->top_id(),$mids) == false) {
- array_push($mids,$top->top_id());
- }
- array_push($top_infos,$item);
- }
- $mem_desc = array();
- $members = Model('member')->getMemberList(array('member_id' => array('in',$mids)));
- foreach ($members as $val) {
- $info = new member_info($val);
- array_push($mem_desc,$info->filter());
- }
- $pages = intval($count / $this->page_size()) + ( ($count % $this->page_size()) == 0 ? 0 : 1);
- return self::outsuccess(array('top_list' => $top_infos,'mem_desc' => $mem_desc,'mobile_page' => mobile_page($pages)));
- }
- }
|