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

添加购买虚拟商品

parent 11492537
...@@ -101,7 +101,7 @@ class ShopController extends BaseController ...@@ -101,7 +101,7 @@ class ShopController extends BaseController
if($isShow == 1) { if($isShow == 1) {
$whereArr['is_show'] = $isShow; $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(); $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)) { if(!empty($orderArr)) {
$result = array( $result = array(
......
...@@ -15,6 +15,18 @@ class ShopModel extends BaseModel ...@@ -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(); $addressArr = M("game_member_address","",$this->__lewan_hezi)->where(array('uid'=>$uid,'game_code'=>'ylc'))->find();
if(empty($addressArr)) { if(empty($addressArr)) {
...@@ -23,33 +35,47 @@ class ShopModel extends BaseModel ...@@ -23,33 +35,47 @@ class ShopModel extends BaseModel
,'msg'=>'请先填写收获信息' ,'msg'=>'请先填写收获信息'
); );
} }
}
//判断兑换方式 try {
if($changeWay == 1) {
//直接金币兑换
$memberModel = M("game_member","",$this->__lewan_hezi); $memberModel = M("game_member","",$this->__lewan_hezi);
$memberModel->startTrans(); $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); $reStock = M("yl_goods","",$this->__lewan_hezi)->where(array('sysid'=>$goodsId))->setDec('stock',1);
} catch(\Exception $e) {
if(!$re1) { //商品订单通用数据
return $result = array( $orderArr = array(
'c'=>2 'uid'=>$uid
,'msg'=>'兑换失败,玩币不足' ,'goods_id'=>$goodsId
); ,'name'=>$goodsArr['name']
} ,'icon'=>$goodsArr['icon']
if(!$re2) { ,'goods_type'=>$goodsArr['type']
return $result = array( ,'create_time'=>date('Y-m-d H:i:s')
'c'=>2 ,'game_code'=>'ylc'
,'msg'=>'兑换失败,库存不足'
); );
}
//判断兑换方式
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 //生成订单ID
...@@ -62,24 +88,26 @@ class ShopModel extends BaseModel ...@@ -62,24 +88,26 @@ class ShopModel extends BaseModel
} }
} }
//记录商品订单 //记录商品订单
$orderArr = array( $orderArr['sysid'] = $orderId;
'sysid'=>$orderId // $orderArr = array(
,'uid'=>$uid // 'sysid'=>$orderId
,'goods_id'=>$goodsId // ,'uid'=>$uid
,'name'=>$goodsArr['name'] // ,'goods_id'=>$goodsId
,'icon'=>$goodsArr['icon'] // ,'name'=>$goodsArr['name']
,'gold'=>$goodsArr['initial_price'] // ,'icon'=>$goodsArr['icon']
,'status'=>2 // ,'gold'=>$goodsArr['initial_price']
,'create_time'=>date('Y-m-d H:i:s') // ,'status'=>2
,'pay_time'=>date('Y-m-d H:i:s') // ,'create_time'=>date('Y-m-d H:i:s')
,'game_code'=>'ylc' // ,'pay_time'=>date('Y-m-d H:i:s')
,'change_way'=>1 // ,'game_code'=>'ylc'
,'goods_type'=>$goodsArr['type'] // ,'change_way'=>1
,'consignee'=>$addressArr['consignee'] // ,'goods_type'=>$goodsArr['type']
,'phone'=>$addressArr['phone'] // ,'consignee'=>$addressArr['consignee']
,'address'=>$addressArr['address'] // ,'phone'=>$addressArr['phone']
); // ,'address'=>$addressArr['address']
$re3 = M("yl_goods_order","",$this->__lewan_hezi)->add($orderArr); // ,'redeem_code'=>$redeem_code
// );
$re2 = M("yl_goods_order","",$this->__lewan_hezi)->add($orderArr);
//记录用户金币操作 //记录用户金币操作
$goldArr = array( $goldArr = array(
...@@ -90,9 +118,9 @@ class ShopModel extends BaseModel ...@@ -90,9 +118,9 @@ class ShopModel extends BaseModel
,'way'=>'goods_change' ,'way'=>'goods_change'
,'game_code'=>'ylc' ,'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(); $memberModel->commit();
$result = array( $result = array(
'c'=>1 'c'=>1
...@@ -111,6 +139,27 @@ class ShopModel extends BaseModel ...@@ -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; 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