Commit 18a26e69 authored by 734642908@qq.com's avatar 734642908@qq.com

添加购买虚拟商品

parent 11492537
......@@ -101,7 +101,7 @@ class ShopController extends BaseController
if($isShow == 1) {
$whereArr['is_show'] = $isShow;
}
$field = 'sysid as order_id,goods_id,name,icon,gold,status,create_time';
$field = 'sysid as order_id,goods_id,name,icon,gold,status,create_time,goods_type,redeem_code';
$orderArr = M("yl_goods_order","",C("LEWAN_HEZI"))->where(array('uid'=>$token['uid']))->field($field)->limit($skip,$size)->order('create_time desc')->select();
if(!empty($orderArr)) {
$result = array(
......
......@@ -15,6 +15,18 @@ class ShopModel extends BaseModel
);
}
//判断商品类型:虚拟 OR 实物
if($goodsArr['type'] == 2) {
//获取虚拟商品兑换码
$codeArr = M("yl_goods_redeemcode","",$this->__lewan_hezi)->where(array('goods_id'=>$goodsId,'status'=>1,'game_code'=>'ylc'))->order('create_time')->field('sysid,redeem_code')->find();
if(empty($codeArr)) {
return $result = array(
'c'=>2
,'msg'=>'兑换失败,库存不足'
);
}
} else {
//查询收获信息
$addressArr = M("game_member_address","",$this->__lewan_hezi)->where(array('uid'=>$uid,'game_code'=>'ylc'))->find();
if(empty($addressArr)) {
......@@ -23,33 +35,47 @@ class ShopModel extends BaseModel
,'msg'=>'请先填写收获信息'
);
}
}
//判断兑换方式
if($changeWay == 1) {
//直接金币兑换
try {
$memberModel = M("game_member","",$this->__lewan_hezi);
$memberModel->startTrans();
try {
//扣除用户金币
$re1 = $memberModel->where(array('uid'=>$uid))->setDec('gold',$goodsArr['initial_price']);
//扣除商品库存
$re2 = M("yl_goods","",$this->__lewan_hezi)->where(array('sysid'=>$goodsId))->setDec('stock',1);
} catch(\Exception $e) {
if(!$re1) {
return $result = array(
'c'=>2
,'msg'=>'兑换失败,玩币不足'
);
}
if(!$re2) {
return $result = array(
'c'=>2
,'msg'=>'兑换失败,库存不足'
$reStock = M("yl_goods","",$this->__lewan_hezi)->where(array('sysid'=>$goodsId))->setDec('stock',1);
//商品订单通用数据
$orderArr = array(
'uid'=>$uid
,'goods_id'=>$goodsId
,'name'=>$goodsArr['name']
,'icon'=>$goodsArr['icon']
,'goods_type'=>$goodsArr['type']
,'create_time'=>date('Y-m-d H:i:s')
,'game_code'=>'ylc'
);
}
//判断兑换方式
if($changeWay == 1) {//直接金币兑换
//扣除用户金币
$reMemberGold = $memberModel->where(array('uid'=>$uid))->setDec('gold',$goodsArr['initial_price']);
$orderArr['change_way'] = 1;
$orderArr['gold'] = $goodsArr['initial_price'];
$orderArr['status'] = 2;
$orderArr['pay_time'] = date('Y-m-d H:i:s');
if($goodsArr['type'] == 2) {
//更新商品兑换码状态
$re1 = M("yl_goods_redeemcode","",$this->__lewan_hezi)->where(array('sysid'=>$codeArr['sysid']))->save(array('status'=>2,'uid'=>$uid,'redeem_time'=>date('Y-m-d H:i:s')));
$orderArr['redeem_code'] = $codeArr['redeem_code'];
} else {
$re1 = 1;
$orderArr['consignee'] = $addressArr['consignee'];
$orderArr['phone'] = $addressArr['phone'];
$orderArr['address'] = $addressArr['address'];
}
//生成订单ID
......@@ -62,24 +88,26 @@ class ShopModel extends BaseModel
}
}
//记录商品订单
$orderArr = array(
'sysid'=>$orderId
,'uid'=>$uid
,'goods_id'=>$goodsId
,'name'=>$goodsArr['name']
,'icon'=>$goodsArr['icon']
,'gold'=>$goodsArr['initial_price']
,'status'=>2
,'create_time'=>date('Y-m-d H:i:s')
,'pay_time'=>date('Y-m-d H:i:s')
,'game_code'=>'ylc'
,'change_way'=>1
,'goods_type'=>$goodsArr['type']
,'consignee'=>$addressArr['consignee']
,'phone'=>$addressArr['phone']
,'address'=>$addressArr['address']
);
$re3 = M("yl_goods_order","",$this->__lewan_hezi)->add($orderArr);
$orderArr['sysid'] = $orderId;
// $orderArr = array(
// 'sysid'=>$orderId
// ,'uid'=>$uid
// ,'goods_id'=>$goodsId
// ,'name'=>$goodsArr['name']
// ,'icon'=>$goodsArr['icon']
// ,'gold'=>$goodsArr['initial_price']
// ,'status'=>2
// ,'create_time'=>date('Y-m-d H:i:s')
// ,'pay_time'=>date('Y-m-d H:i:s')
// ,'game_code'=>'ylc'
// ,'change_way'=>1
// ,'goods_type'=>$goodsArr['type']
// ,'consignee'=>$addressArr['consignee']
// ,'phone'=>$addressArr['phone']
// ,'address'=>$addressArr['address']
// ,'redeem_code'=>$redeem_code
// );
$re2 = M("yl_goods_order","",$this->__lewan_hezi)->add($orderArr);
//记录用户金币操作
$goldArr = array(
......@@ -90,9 +118,9 @@ class ShopModel extends BaseModel
,'way'=>'goods_change'
,'game_code'=>'ylc'
);
$re4 = M("game_member_gold","",$this->__lewan_hezi)->add($goldArr);
$re3 = M("game_member_gold","",$this->__lewan_hezi)->add($goldArr);
if($re3 && $re4) {
if($re1 && $re2 && $re3) {
$memberModel->commit();
$result = array(
'c'=>1
......@@ -111,6 +139,27 @@ class ShopModel extends BaseModel
}
} catch(\Exception $e) {
if(!$reStock) {
return $result = array(
'c'=>2
,'msg'=>'兑换失败,库存不足'
);
}
if(!$reMemberGold) {
return $result = array(
'c'=>2
,'msg'=>'兑换失败,玩币不足'
);
}
}
return $result;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment