You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

936 lines
28 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace Mobile\Controller;
use Think\Controller;
use User\Api\MemberApi;
use User\Api\SuserApi;
/**
* 交易
*/
class TradeController extends BaseController {
/**
* 获取当前出售中商品列表
* @param integer $p 当前页
* @param integer $game_id 游戏编号
* @author 鹿文学
*/
public function index($p=1,$game_id=0) {
$devices = get_devices_type();
switch(I('px','')) {
case 1:$order = 'price asc';$this->assign('px',1);$_GET['px']=2;break;
case 2:$order = 'price desc';$this->assign('px',2);$_GET['px']='';break;
default:$order = 'create_time desc';$_GET['px']=1;
}
if($game_id>0) { $map['game_id'] = $game_id; $this->assign('game_name',get_game_name($game_id));}
if($_GET['game_name']) { $map['game_name'] = array('like','%'.$_GET['game_name'].'%'); $this->assign('game_name',$_GET['game_name']);}
$map['status'] = 3;
if($devices) $map['sdk_version'] = $devices;
$lists = D('Merchandise')->lists($p,$map,'id,title,game_name,online_time,price,screenshot',$order);
foreach($lists['lists'] as $k => $v) {
$data[$k]= array('title'=>$v['title'],'game_name'=>$v['game_name'],'online_time'=>date('Y-m-d H:i:s',$v['online_time']),'price'=>preg_match('/^[1-9]\d*(\.(00)?)?$/',$v['price'])?intval($v['price']):$v['price']);
$data[$k]['icon'] = '';
if(!empty($v['screenshot'])) {
$icon = explode(',',$v['screenshot']);
$data[$k]['icon'] = get_cover($icon[0],'path');
}
$data[$k]['url'] = U('Trade/detail',array('id'=>$v['id']));
$data[$k]['id'] = $v['id'];
}
$this->assign('lists',$data);
$this->assign('page',$lists['current']);
$this->assign('totalpage',$lists['total']);
$this->assign('is_app',$_REQUEST['is_app']);
if($_REQUEST['is_app'] == 1){
if($_REQUEST['scheme']){
session('order_scheme',$_REQUEST['scheme']);
}
$token = $_REQUEST['token'];
if($token){
$token = think_decrypt($token);
$info = json_decode($token,true);
if($info['account']){
$user = M('user','tab_')->field('id,account,nickname')->where(['account'=>$info['account']])->find();
if($user){
$auth = array(
'user_id' => $user['id'],
'account' => $user['account'],
'nickname' => $user['nickname'],
);
session('suser_auth', $auth);
session('suser_auth_sign', data_auth_sign($auth));
$this->assign('login_status',1);
}
}
}
}
$this->display();
}
/**
* 获取当前出售中商品列表
* @param integer $p 当前页
* @param integer $game_id 游戏编号
* @return json
* @author 鹿文学
*/
public function ajaxtrade($p=1,$game_id=0,$game_name='') {
$devices = get_devices_type();
switch(I('px','')) {
case 1:$order = 'price asc';break;
case 2:$order = 'price desc';break;
define:$order = 'create_time desc';
}
$game_id<1 || $map['game_id'] = $game_id;
empty($game_name) || $map['game_name'] = array('like','%'.$game_name.'%');
$map['status'] = 3;
if($devices) $map['sdk_version'] = $devices;
$lists = D('Merchandise')->lists($p,$map,'id,title,game_name,online_time,price,screenshot',$order);
foreach($lists['lists'] as $k => $v) {
$data[$k]= array('title'=>$v['title'],'game_name'=>$v['game_name'],'online_time'=>date('Y-m-d H:i:s',$v['online_time']),'price'=>preg_match('/^[1-9]\d*(\.(00)?)?$/',$v['price'])?intval($v['price']):$v['price']);
$data[$k]['icon'] = '';
if(!empty($v['screenshot'])) {
$icon = explode(',',$v['screenshot']);
$data[$k]['icon'] = get_cover($icon[0],'path');
}
$data[$k]['url'] = U('Trade/detail',array('id'=>$v['id']));
}
$lists['lists'] = $data;
$this->ajaxReturn($lists,'json');
}
/**
* 搜索
* @param integer $p 页码
* @author 鹿文学
*/
public function search_list($p=1) {
$devices = get_devices_type();
if($_REQUEST['mark']==1) { /* 搜索后 */
$game_name = $_GET['game_name'];
$this->assign('mark',1);
$lists = D('Game')->listsByName($p,$game_name,$devices?$devices:0);
foreach($lists['lists'] as $k => $v) {
$data[$k]= $v;
$data[$k]['url'] = U('Trade/index',array('game_id'=>$v['id']));
}
$this->assign('referer',session('search_referer'));
$this->assign('data',$data);
$this->assign('page',$lists['current']);
$this->assign('totalpage',$lists['total']);
} else {
$referer = $_SERVER['HTTP_REFERER']?$_SERVER['HTTP_REFERER']:U('Trade/index');
session('search_referer',$referer);
$this->assign('referer',$referer);
$lists = D('Game')->listsByRecommend($devices?$devices:0);
$this->assign('reco',$lists);
}
$this->display();
}
/**
* 搜索
* @param integer $p 页码
* @author 鹿文学
*/
public function ajaxsearch_list($p=1) {
$devices = get_devices_type();
$game_name = I('game_name','');
$is_app = I("is_app","");
$token = I("token","");
$lists = D('Game')->listsByName($p,$game_name,$devices?$devices:0);
foreach($lists['lists'] as $k => $v) {
$data[$k]= $v;
$data[$k]['url'] = U('Trade/index',array('game_id'=>$v['id'],'is_app'=>$is_app,'token'=>$token));
}
$lists['lists'] = $data;
$this->ajaxReturn($lists,'json');
}
/**
* 商品详情
* @param integer $id 商品编号
* @return json
* @author 鹿文学
*/
public function detail($id=0) {
$this->assign('data',D('Merchandise')->sale_detail($id));
$this->assign('rule_status',D('User')->get_rule_status());
$this->assign('user',D('User')->getLoginInfo());
$this->display();
}
/**
* 检测是否登录
* @author 鹿文学
*/
public function checkLogin() {
if($this->islogin()) {
$this->ajaxReturn(array('status'=>1),'json');
} else {
$html=$this->fetch('Trade/login');
$this->ajaxReturn(array('status'=>0,'html'=>$html),'json');
}
}
/**
* 检测是否自己商品
* @author 鹿文学
*/
public function checkIsSelf($id=0) {
if(IS_POST && is_numeric($id) && $id>0 ) {
if(!$this->islogin()) {$this->ajaxReturn(array('status'=>0,'html'=>$this->fetch('Trade/login')),'json');exit;}
$user = D('User')->getLoginInfo();
$merchandise = D('Merchandise')->buy_info($id);
if($user['user_id'] == $merchandise['seller_id']) {$this->ajaxReturn(array('status'=>0,'info'=>'自己出售的商品,无法购买'),'json');exit;}
$this->ajaxReturn(array('status'=>1,'info'=>''),'json');exit;
} else {
$this->ajaxReturn(array('status'=>0,'info'=>'参数错误'),'json');exit;
}
}
/**
* 购买商品
* @author 鹿文学
*/
public function buy_good($id=0) {
if(IS_POST) {
if(!$this->islogin()) {$this->ajaxReturn(array('status'=>0,'url'=>U('Trade/detail',array('id'=>$id))),'json');exit;}
if(!is_numeric($_POST['way']) || $_POST['way']<1) {$this->ajaxReturn(array('status'=>0,'info'=>'请选择支付方式'),'json');exit;}
$order = D('Order')->get_info_by_good($id);
if(is_array($order)) {$this->ajaxReturn(array('status'=>0,'info'=>'此商品已出售'),'json');exit;}
$member = new SuserApi;
$merchandise = D('Merchandise')->buy_info($id);
$money = $merchandise['price'];
$user = $member->login_info();
if($user['user_id'] == $merchandise['seller_id']) {$this->ajaxReturn(array('status'=>0,'info'=>'自己出售的商品,无法购买'),'json');exit;}
// 购买者编号及账户
$merchandise['user_id'] = $user['user_id'];
$merchandise['type'] = 'small';
$withdraw_config = M('tool','tab_')->where(['name'=>'withdraw'])->find();
$withdraw = json_decode($withdraw_config['config'],true);
if(!is_array($withdraw)) {$this->ajaxReturn(array('status'=>0,'info'=>'设置有误,请联系管理员'),'json');exit;}
$poundage = round($money*$withdraw['sell_rate']/100,2);
if($poundage*100<$withdraw['poundage']*100) {$poundage = $withdraw['poundage'];}
$merchandise['real'] = $money-$poundage;
$merchandise['poundage'] = $poundage;
$pay = A('Pay');
$result = $pay->buy($money,json_encode($merchandise),$_POST['way']);
$this->ajaxReturn($result,'json');
} else {
$this->assign('data',D('Merchandise')->info($id));
$this->display();
}
}
/**
* 付款成功后页面
* @author 鹿文学
*/
public function success() {
$orderno=$_GET['trade_no']==""?$_GET['out_trade_no']:$_GET['trade_no'];
$order = D('Order')->info_by_orderno($orderno);
$this->assign('game_id',$order['game_id']);
$this->display();
}
/**
* 成交动态
* @param integer $p 页码
* @author 鹿文学
*/
public function deal($p=1) {
$order = 'over_time desc';
$map['status'] = 1;
$lists = D('Merchandise')->lists($p,$map,'id,title,game_name,online_time,price,screenshot,over_time',$order);
foreach($lists['lists'] as $k => $v) {
$data[$k]= array('title'=>$v['title'],'game_name'=>$v['game_name'],'over_time'=>date('m-d H:i',$v['over_time']),'price'=>preg_match('/^[1-9]\d*(\.(00)?)?$/',$v['price'])?intval($v['price']):$v['price']);
$data[$k]['icon'] = '';
if(!empty($v['screenshot'])) {
$icon = explode(',',$v['screenshot']);
$data[$k]['icon'] = get_cover($icon[0],'path');
}
$data[$k]['url'] = U('Trade/deal_detail',array('id'=>$v['id']));
}
$this->assign('lists',$data);
$this->assign('page',$lists['current']);
$this->assign('totalpage',$lists['total']);
$referer = $_SERVER['HTTP_REFERER'];
if(strpos(strtolower($referer),'trade/index')=== false) {$referer = U('Trade/index');}
$this->assign('referer',$referer);
$this->display();
}
/**
* 成交动态
* @param integer $p 页码
* @author 鹿文学
*/
public function ajaxdeal($p=1) {
$order = 'over_time desc';
$map['status'] = 1;
$lists = D('Merchandise')->lists($p,$map,'id,title,game_name,online_time,price,screenshot,over_time',$order);
foreach($lists['lists'] as $k => $v) {
$data[$k]= array('title'=>$v['title'],'game_name'=>$v['game_name'],'over_time'=>date('m-d H:i',$v['over_time']),'price'=>preg_match('/^[1-9]\d*(\.(00)?)?$/',$v['price'])?intval($v['price']):$v['price']);
$data[$k]['icon'] = '';
if(!empty($v['screenshot'])) {
$icon = explode(',',$v['screenshot']);
$data[$k]['icon'] = get_cover($icon[0],'path');
}
$data[$k]['url'] = U('Trade/deal_detail',array('id'=>$v['id']));
}
$lists['lists'] = $data;
$this->ajaxReturn($lists,'json');
}
/**
* 成交动态商品详情
* @param integer $id 商品编号
* @author 鹿文学
*/
public function deal_detail($id=0) {
$this->assign('data',D('Merchandise')->deal_detail($id));
$this->display();
}
/**
* 规则显示与否
* @param integer $type 类型 0表示买家 1表示卖家
* @return json
* @author 鹿文学
*/
public function rule_status($type=0) {
if(IS_POST) {
$return = D('User')->set_rule_status($type);
$this->ajaxReturn($return,'json');
} else {
$this->ajaxReturn(['status'=>0,'info'=>'参数错误'],'json');
}
}
/**
* 我要卖号
* @author 鹿文学
*/
public function publish() {
if(IS_POST) {
$this->checksafecode($_POST['phone'],$_POST['code'],false);
$usermodel = D('User');
$user = $usermodel->getLoginInfo();
$_POST['user_id'] = $user['user_id'];
$_POST['user_account'] = $user['account'];
$small = $usermodel->get_small_info($_POST['small_id']);
$_POST['day'] = $small['day']+1;
$_POST['accumulation'] = $small['accumulation'];
$merchandise = D('Merchandise');
$pa = $usermodel->field('id')->where(['is_platform'=>1])->find();
if(is_array($pa)) {
$res = $merchandise->update($_POST);
if($res) {
$usermodel->where(['id'=>$_POST['small_id']])->setField(['puid'=>$pa['id'],'source_puid'=>$user['user_id']]);
$this->ajaxReturn(['status'=>1,'info'=>'提交成功将于1-2个工作日内完成审核','url'=>U('Trade/record')],'json');
} else {
$this->ajaxReturn(['status'=>0,'info'=>$merchandise->getError()],'json');
}
} else {
$this->ajaxReturn(['status'=>0,'info'=>'小号交易还未开通,请联系客服'],'json');
}
} else {
if($this->islogin()) {
$this->assign('phone',D('User')->get_phone());
$this->assign('rule_status',D('User')->get_rule_status(1));
} else {
$this->assign('url',U('Trade/publish'));
$this->assign('nologin',$this->fetch('login'));
}
$this->display();
}
}
public function edit_good() {
if(IS_POST) {
$this->checksafecode($_POST['phone'],$_POST['code'],false);
$usermodel = D('User');
$user = $usermodel->getLoginInfo();
$_POST['user_id'] = $user['user_id'];
$_POST['user_account'] = $user['account'];
$small = $usermodel->get_small_info($_POST['small_id']);
$_POST['day'] = $small['day'];
$_POST['accumulation'] = $small['accumulation'];
$_POST['status'] = 0;
$merchandise = D('Merchandise');
$res = $merchandise->update($_POST);
if($res) {
$pa = $usermodel->field('id')->where(['is_platform'=>1])->find();
$usermodel->where(['id'=>$_POST['small_id']])->setField(['puid'=>$pa['id'],'source_puid'=>$user['user_id']]);
$this->ajaxReturn(['status'=>1,'info'=>'提交成功将于1-2个工作日内完成审核','url'=>U('Trade/record')],'json');
} else {
$this->ajaxReturn(['status'=>0,'info'=>$merchandise->getError()],'json');
}
} else {
if($this->islogin()) {
$this->assign('rule_status',D('User')->get_rule_status(1));
$this->assign('data',D('Merchandise')->detail($_REQUEST['id']));
} else {
$this->assign('url',U('Trade/publish'));
$this->assign('nologin',$this->fetch('login'));
}
$this->display();
}
}
/**
* 手机安全码验证
* @param bool $flag true 用于直接异步请求 false 用于方法调用
* @param [type] $vcode [description]
*/
public function checksafecode($phone,$vcode,$flag=true) {
$result = R('Common/Sms/verify_sms_code',array($phone,$vcode,false));
if($result['code']==200) {
$data['status'] = 1;
if($flag) {
echo json_encode($data);exit;
}
} else {
$data['status'] = 0;
$data['info'] = $result['msg'];
echo json_encode($data);exit;
}
}
/**
* 选择游戏
* @param integer $p 页码
* @author 鹿文学
*/
public function select_game($p=1) {
$devices = get_devices_type();
empty($devices) || $map['g.sdk_version'] = $devices;
$lists = D('Game')->lists_by_spend($p,$map,'g.id,g.sdk_version,g.game_name,g.icon');
foreach($lists['lists'] as $k => $v) {
$data[$k]= $v;
$data[$k]['icon'] = '';
if(!empty($v['icon'])) {
$icon = get_cover($v['icon'],'path');
$data[$k]['icon'] = $icon;
}
$data[$k]['url'] = U('Trade/select_small',array('game_id'=>$v['id']));
}
$this->assign('gamelists',$data);
$this->assign('gamepage',$lists['current']);
$this->assign('gametotalpage',$lists['total']);
$html = $this->fetch('select_game');
$this->ajaxReturn(['html'=>$html],'json');
}
/**
* 选择游戏
* @param integer $p 页码
* @author 鹿文学
*/
public function ajax_select_game($p=1) {
$lists = D('Spend')->lists_by_spend($p,$map,'g.id,g.sdk_version,g.game_name,g.icon');
foreach($lists['lists'] as $k => $v) {
$data[$k]= $v;
$data[$k]['icon'] = '';
if(!empty($v['icon'])) {
$icon = get_cover($v['icon'],'path');
$data[$k]['icon'] = is_file(MROOT.substr($icon,1))?$icon:'';
}
$data[$k]['url'] = U('Trade/select_small',array('game_id'=>$v['id']));
}
$lists['lists'] = $data;
$this->ajaxReturn($lists,'json');
}
/**
* 选择小号
* @param integer $game_id 游戏编号
* @author 鹿文学
*/
public function select_small($game_id=0) {
$game = D('Game')->get_info($game_id);
if($game) {
$icon = get_cover($game['icon'],'path');
$game['icon'] = $icon;
$this->assign('game',$game);
$this->assign('smalldata',D('Spend')->get_small_list_by_game($game_id));
}
$html = $this->fetch('select_small');
$this->ajaxReturn(['html'=>$html],'json');
}
/**
* 选择区服
* @param integer $game_id 游戏编号
* @author 鹿文学
*/
public function select_server($game_id=0) {
$game = D('Game')->get_info($game_id);
if(is_array($game)) {
$game['icon_url'] = get_cover($game['icon']);
$this->assign('game',$game);
$this->assign('serverdata',D('Server')->get_server_list_by_game($game_id));
}
$html = $this->fetch('select_server');
$this->ajaxReturn(['html'=>$html],'json');
}
/**
* 选择标题
* @author 鹿文学
*/
public function sell_title() {
$html = $this->fetch('sell_title');
$this->ajaxReturn(['html'=>$html],'json');
}
/**
* 选择描述
* @author 鹿文学
*/
public function sell_content() {
$html = $this->fetch('sell_content');
$this->ajaxReturn(['html'=>$html],'json');
}
/**
* 选择二级密码
* @author 鹿文学
*/
public function sell_password() {
$html = $this->fetch('sell_password');
$this->ajaxReturn(['html'=>$html],'json');
}
/**
* 交易记录
* @param integer $p 当前页
* @author 鹿文学
*/
public function record($p=1,$type='') {
if($this->islogin()) {
$map=array();
$_GET['type']=$type;
$merchandise = D('Merchandise');
$user = D('User')->getLoginInfo();
switch($type) {
case 1:{/* 已购买 */
$map['m.status']=array('in',[1,4]);$map['m.buyer_status'] = 0;$map['buyer_id']=$user['user_id'];$order='pay_time desc';
$lists = $merchandise->lists_and_order($p,$map,'m.id,title,m.remark,if(m.status=4,1,m.status) as status,m.user_id,game_name,pay_time as time,price,screenshot,o.is_refund',$order);
};break;
case 2:{/* 出售中 */
$map['m.status']=3;$map['m.seller_status'] = 0;$map['m.user_id']=$user['user_id'];$order='online_time desc';
$lists = $merchandise->lists($p,$map,'m.id,title,m.remark,game_name,m.status,m.user_id,online_time as time,price,screenshot',$order);
};break;
case 3:{/* 已出售 */
$map['m.status']=array('in',[1,4]);$map['m.seller_status'] = 0;$map['m.user_id']=$user['user_id'];$order='pay_time desc';
$lists = $merchandise->lists_and_order($p,$map,'m.id,title,m.remark,if(m.status=4,1,m.status) as status,m.user_id,game_name,pay_time as time,price,screenshot',$order);
};break;
default:{
$_GET['type']='';
$map['m.status'] = array('gt',-2);
$map['_complex']=array(['m.user_id'=>$user['user_id'],'m.seller_status'=>0],['buyer_id'=>$user['user_id'],'m.buyer_status'=>0,'pay_status'=>1,'m.status'=>array('in',[1,4])],'_logic'=>'or');
$order='create_time desc';
$lists = $merchandise->lists_and_order($p,$map,'m.id,title,m.remark,if(m.status=4,1,m.status) as status,m.user_id,game_name,create_time as time,price,screenshot,o.is_refund',$order);
}
}
foreach($lists['lists'] as $k => $v) {
$data[$k]= array('id'=>$v['id'],'title'=>$v['title'],'remark'=>$v['remark'],'game_name'=>$v['game_name'],'otime'=>$v['time'],'time'=>date('m-d H:i',$v['time']),'price'=>preg_match('/^[1-9]\d*(\.(00)?)?$/',$v['price'])?intval($v['price']):$v['price']);
$data[$k]['icon'] = '';
if(!empty($v['is_refund'])) {$data[$k]['is_refund']=$v['is_refund'];}
if(!empty($v['screenshot'])) {
$icon = explode(',',$v['screenshot']);
$data[$k]['icon'] = get_cover($icon[0],'path');
}
if($user['user_id'] != $v['user_id'] && $v['status']==1){$data[$k]['status']=6;} else{$data[$k]['status']=$v['status'];}
$data[$k]['url'] = U('Trade/record_info',array('id'=>$v['id']));
}
$this->assign('lists',$data);
$this->assign('page',$lists['current']);
$this->assign('totalpage',$lists['total']);
} else {
$this->assign('url',U('Trade/record'));
$this->assign('nologin',$this->fetch('login'));
}
$this->display();
}
/**
* 交易记录
* @param integer $p 当前页
* @return json
* @author 鹿文学
*/
public function ajaxrecord($p=1,$type='') {
$map=array();
$_GET['type']=$type;
$merchandise = D('Merchandise');
$user = D('User')->getLoginInfo();
switch($type) {
case 1:{/* 已购买 */
$map['m.status']=array('in',[1,4]);$map['m.buyer_status'] = 0;$map['buyer_id']=$user['user_id'];$order='pay_time desc';
$lists = $merchandise->lists_and_order($p,$map,'m.id,title,m.remark,if(m.status=4,1,m.status) as status,m.user_id,game_name,pay_time as time,price,screenshot',$order);
};break;
case 2:{/* 出售中 */
$map['m.status']=3;$map['m.seller_status'] = 0;$map['m.user_id']=$user['user_id'];$order='online_time desc';
$lists = $merchandise->lists($p,$map,'m.id,title,m.remark,game_name,m.status,m.user_id,online_time as time,price,screenshot',$order);
};break;
case 3:{/* 已出售 */
$map['m.status']=array('in',[1,4]);$map['m.seller_status'] = 0;$map['m.user_id']=$user['user_id'];$order='pay_time desc';
$lists = $merchandise->lists_and_order($p,$map,'m.id,title,m.remark,if(m.status=4,1,m.status) as status,m.user_id,game_name,pay_time as time,price,screenshot',$order);
};break;
default:{
$_GET['type']='';
$map['_complex']=array(['m.user_id'=>$user['user_id'],'m.seller_status'=>0],['buyer_id'=>$user['user_id'],'m.buyer_status'=>0],'_logic'=>'or');
$order='create_time desc';
$lists = $merchandise->lists_and_order($p,$map,'m.id,title,m.remark,if(m.status=4,1,m.status) as status,m.user_id,game_name,create_time as time,price,screenshot',$order);
}
}
foreach($lists['lists'] as $k => $v) {
$data[$k]= array('id'=>$v['id'],'title'=>$v['title'],'remark'=>$v['remark'],'game_name'=>$v['game_name'],'otime'=>$v['time'],'time'=>date('m-d H:i',$v['time']),'price'=>preg_match('/^[1-9]\d*(\.(00)?)?$/',$v['price'])?intval($v['price']):$v['price']);
$data[$k]['icon'] = '';
if(!empty($v['is_refund'])) {$data[$k]['is_refund']=$v['is_refund'];}
if(!empty($v['screenshot'])) {
$icon = explode(',',$v['screenshot']);
$data[$k]['icon'] = get_cover($icon[0],'path');
}
if($user['user_id'] != $v['user_id'] && $v['status']==1){$data[$k]['status']=6;} else{$data[$k]['status']=$v['status'];}
$data[$k]['url'] = U('Trade/record_info',array('id'=>$v['id']));
}
$lists['lists'] = $data;
$this->ajaxReturn($lists,'json');
}
/**
* 商品详情
* @param integer $id 商品编号
* @return json
* @author 鹿文学
*/
public function record_info($id=0) {
if($this->islogin()) {
$record=D('Merchandise')->record_info($id);
$this->assign('data',$record);
$this->assign('relevant',D('Merchandise')->relevant($record['game_id'],$id));
}
$this->display();
}
/**
* 删除记录
* @author 鹿文学
*/
public function del_record($id='',$b='') {
$merchandise = D('Merchandise');
if($merchandise->del_record($id,$b)) {
$this->ajaxReturn(['status'=>1,'info'=>'删除成功'],'json');
} else {
$this->ajaxReturn(['status'=>0,'info'=>$merchandise->getError()],'json');
}
}
/**
* 下架记录
* @author 鹿文学
*/
public function offline_record($id='') {
$merchandise = D('Merchandise');
if($merchandise->offline_record($id)) {
$this->ajaxReturn(['status'=>1,'info'=>'下架成功'],'json');
} else {
$this->ajaxReturn(['status'=>0,'info'=>$merchandise->getError()],'json');
}
}
/**
* 更改价格
* @author 鹿文学
*/
public function change_price($id='',$price='') {
$merchandise = D('Merchandise');
if($merchandise->change_price($id,$price)) {
$this->ajaxReturn(['status'=>1,'info'=>'改价成功'],'json');
} else {
$this->ajaxReturn(['status'=>0,'info'=>$merchandise->getError()],'json');
}
}
/**
* 使用说明
* @author 鹿文学
*/
public function useing_record($id='') {
$html = $this->fetch('useing_record');
$this->ajaxReturn(['html'=>$html],'json');
}
/**
* 交易须知
* @author 鹿文学
*/
public function trade_notice() {
$this->display();
}
/**
* 提现信息页
* @author 鹿文学
*/
public function withdraw() {
if($this->islogin()) {
$this->assign('gold_coin',D('User')->get_gold_coin());
}
$this->display();
}
/**
* 提现操作页
* @author 鹿文学
*/
public function withdraw_gold() {
if(IS_POST) {
$user = D('User')->getLoginInfo();
if(!is_array($user)) {$this->ajaxReturn(['status'=>0,'info'=>'请登录'],'json');}
$gold_all = D('User')->field('gold_coin')->where(['id'=>$user['user_id']])->find();
$all = $gold_all['gold_coin'];
$coin = abs(is_numeric($_POST['coin'])?$_POST['coin']:0);
$rate = C('withdraw.widthdraw_rate');
$low_coin = C('withdraw.coin');
$low_poundage = C('withdraw.poundage');
if(($all*100<($low_poundage+$low_coin)*100) || ($all*100<$coin*100)) {$this->ajaxReturn(['status'=>0,'info'=>'可提取金币不足'],'json');}
if($coin*100<($low_poundage*100+$low_coin*100)) {$this->ajaxReturn(['status'=>0,'info'=>'提现金币不少于'. ($low_poundage+$low_coin)],'json');}
$poundage = round($coin*$rate/100,2);$money=0;
/* if($poundage*100<100) {$poundage=1;} */
if($poundage*100<$low_poundage*100) {$this->ajaxReturn(['status'=>0,'info'=>'可提取金币不足'],'json');}
$money=$coin-$poundage;
$data['user_id'] = $user['user_id'];
$data['user_account'] = $user['account'];
$data['coin'] = $coin;
$data['poundage'] = $poundage;
$data['money'] = $money;
$data['alipay'] = $_POST['alipay'];
$data['alipay_real_name'] = $_POST['alipay_real_name'];
$wgc = D('WithdrawGoldCoin');
$ye = $all-$coin;
if($ye<0){$this->ajaxReturn(['status'=>0,'info'=>'提现金币不足'],'json');}
$data['gold_coin_balance'] = $ye;
$res = $wgc->update($data);
if($res) {
D('User')->where(['id'=>$user['user_id']])->setField('gold_coin',$ye);
$this->ajaxReturn(['status'=>1,'info'=>'提交成功1-2个工作日内到账','url'=>U('Trade/withdraw')],'json');
} else {
$this->ajaxReturn(['status'=>0,'info'=>$wgc->getError()],'json');
}
} else {
$issdk = $_REQUEST['issdk'];
if($this->islogin()) {
$this->assign('issdk',$issdk);
$this->assign('user',D('User')->get_info_about_gold());
} else {
$this->assign('url',U('Trade/withdraw_gold',array('issdk'=>$issdk)));
$this->assign('nologin',$this->fetch('login'));
}
$this->display();
}
}
/**
* 支付宝信息
* @author 鹿文学
*/
public function alipay() {
$html = $this->fetch('alipay');
$this->ajaxReturn(['html'=>$html],'json');
}
/**
* 添加支付宝信息
* @author 鹿文学
*/
public function save_alipay() {
if(IS_POST) {
$member = new MemberApi();
$user = D('User')->getLoginInfo();
if(is_array($user)) {
$res = $member->save_alipay($user['user_id'],$_POST);
$res['alipay'] = str_replace(substr($_POST['alipay'],3,-3),'*****',$_POST['alipay']);
$res['alipay_real_name'] = mb_substr($_POST['alipay_real_name'],0,1,'utf-8').'**';
$this->ajaxReturn($res,'json');
} else {
$this->ajaxReturn(['status'=>0,'msg'=>'请登录'],'json');
}
} else {
$this->ajaxReturn(['status'=>0,'msg'=>'参数错误'],'json');
}
}
/**
* 判断商品是否被下单
* lcj
*/
public function trade_is_exist(){
if(IS_POST){
$member = new MemberApi();
$user = D('User')->getLoginInfo();
if(is_array($user)) {
$map['merchandise_id'] = $_POST['good_id'];
$map['buyer_id'] = $user['user_id'];
$map['pay_status'] = 0;
$order_data = M('order','tab_')->where($map)->find();
if($order_data){
$time = 1800-(time()-$order_data['order_time']);
if($time<0){
M('order','tab_')->where($map)->delete();
$url = U('Trade/detail',array('id'=>$_POST['good_id']));
}else{
$url = U("Trade/buy_good",array("id"=>$_POST["good_id"],'time'=>$time));
}
}else{
$url = U('Trade/detail',array('id'=>$_POST['good_id']));
}
$this->ajaxReturn(array('status'=>1,'url'=>$url));
}else{
$this->ajaxReturn(array('status'=>0,'msg'=>'请先登录'));
}
}
}
}