ajaxReturn($res);
}
}
/*
* 礼品卡列表
*/
public function giftCardList()
{
$merchant_id = self::$merchant_id;
$GiftCardModel = D('RetailGiftCard');
$map[$GiftCardModel::MERCHANT_ID] = $merchant_id;
$map[$GiftCardModel::STATUS] = 1;
$map[$GiftCardModel::STATE] = 1;
$map['_string'] = $GiftCardModel::START_TIME . ' < ' . time() . ' AND ' . $GiftCardModel::END_TIME . ' > ' . time();
$list = $GiftCardModel->getSelect($map);
$RGCPModel = D('RetailGiftCardPropaganda');
$img = $RGCPModel->getFind(array($RGCPModel::MERCHANT_ID => $map[$GiftCardModel::MERCHANT_ID], $RGCPModel::STATUS => 1));
$res['banner'] = $this->getGoodsImage($img[$RGCPModel::IMG_URL_ID]);
if (!empty($list)) {
foreach ($list as &$v) {
$GCCModel = D('RetailGiftCardCover');
$img_url = $GCCModel->getOrderFind(array($GCCModel::GIFT_CARD_ID => $v[$GiftCardModel::ID], $GCCModel::STATUS => 1, $GCCModel::STATE => 1), '*', $GCCModel::ID . ' desc');
$v['img_url'] = $this->getGoodsImage($img_url[$GCCModel::IMG_URL_ID]);
}
$res['status'] = 1;
$res['list'] = $list;
} else {
$res['status'] = 0;
$res['msg'] = '暂无礼品卡';
}
$this->ajaxReturn($res);
}
/*
* 购买时单个礼品卡的详情
*/
public function getGiftDetail()
{
$id = I('post.id');
$GiftCardModel = D('RetailGiftCard');
$GiftCardCoverModel = D('RetailGiftCardCover');
$GiftCardPriceModel = D('RetailGiftCardPrice');
$card = $GiftCardModel->getFind(array($GiftCardModel::ID => $id));
$cover = $GiftCardCoverModel->getSelect(array($GiftCardCoverModel::GIFT_CARD_ID => $id, $GiftCardCoverModel::STATUS => 1, $GiftCardCoverModel::STATE => 1));
$price = $GiftCardPriceModel->getSelect(array($GiftCardPriceModel::GIFT_CARD_ID => $id, $GiftCardPriceModel::STATUS => 1, $GiftCardPriceModel::STATE => 1, $GiftCardPriceModel::LESS_NUM => array('gt', 0)));
if (!empty($cover)) {
$res['status'] = 1;
foreach ($cover as &$v) {
$v['img_url'] = $this->getGoodsImage($v[$GiftCardCoverModel::IMG_URL_ID]);
}
$card['start_time'] = date('Y-m-d', $card[$GiftCardModel::START_TIME]);
$card['end_time'] = date('Y-m-d', $card[$GiftCardModel::END_TIME]);
$card['notes'] = explode('
', $card[$GiftCardModel::NOTES]);
$res['card'] = $card;
$res['cover'] = $cover;
$res['price'] = $price;
} else {
$res['status'] = 0;
$res['msg'] = '数据错误';
}
$this->ajaxReturn($res);
}
/*
* 购买礼品卡
*/
public function createOrder()
{
$uid = self::$uid;
$merchant_id = self::$merchant_id;
$store_id = self::$store_id;
if (empty($uid) || self::$user['login_state'] != 1) {
$res['status'] = -1;
$res['msg'] = '用户未登录';
$this->ajaxReturn($res);
}
$id = I('post.id');
$cover_id = I('post.cover_id');
$price_id = I('post.price_id');
if (empty($uid) || empty($merchant_id) || empty($id) || empty($cover_id) || empty($price_id)) {
$result['status'] = 0;
$result['msg'] = '缺少参数';
$this->ajaxReturn($result);
}
$GiftCardModel = D('RetailGiftCard');
$GiftCardCoverModel = D('RetailGiftCardCover');
$GiftCardPriceModel = D('RetailGiftCardPrice');
$map['g.' . $GiftCardModel::ID] = $id;
$map['c.' . $GiftCardCoverModel::ID] = $cover_id;
$map['p.' . $GiftCardPriceModel::ID] = $price_id;
$map['g.' . $GiftCardModel::MERCHANT_ID] = $merchant_id;
$map['p.' . $GiftCardPriceModel::LESS_NUM] = array('gt', 0);
$field = array(
'p.' . $GiftCardPriceModel::PRICE,
'p.' . $GiftCardPriceModel::MONEY,
'g.' . $GiftCardModel::START_TIME,
'g.' . $GiftCardModel::END_TIME
);
$gift = $GiftCardModel->getGiftDetail($map, $field);
if (!empty($gift)) {
$PayOrderModel = D('RetailPayOrder');
$Order[$PayOrderModel::PAY_TYPE] = 1;
$Order[$PayOrderModel::ORDER_TYPE] = 4;
$Order[$PayOrderModel::TRADE_AMOUNT] = $gift[$GiftCardPriceModel::PRICE];
$Order[$PayOrderModel::MERCHANT_ID] = $merchant_id;
$Order[$PayOrderModel::STORE_ID] = $store_id;
$Order[$PayOrderModel::ORDER_STATE] = 'WAIT_BUYER_PAY';
$Order[$PayOrderModel::ADD_TIME] = time();
$Order[$PayOrderModel::UID] = $uid;
$payOrder = $PayOrderModel->addPayOrder($Order);
if (!$payOrder) {
$res['status'] = 0;
$res['msg'] = '下单失败';
$this->ajaxReturn($res);
}
$GCRModel = D('RetailGiftCardRecord');
$item[$GCRModel::PAY_ORDER_ID] = $payOrder[$PayOrderModel::ID];
$item[$GCRModel::XCX_VID] = $uid;
$item[$GCRModel::MERCHANT_ID] = $merchant_id;
$item[$GCRModel::GIFT_ID] = $id;
$item[$GCRModel::GIFT_COVER_ID] = $cover_id;
$item[$GCRModel::GIFT_PRICE_ID] = $price_id;
$item[$GCRModel::ADD_TIME] = time();
$item[$GCRModel::STATUS] = 0;
$item[$GCRModel::STATUS_TYPE] = 1;
$item[$GCRModel::TYPE] = 1;
$item[$GCRModel::START_TIME] = $gift[$GiftCardModel::START_TIME];
$item[$GCRModel::END_TIME] = $gift[$GiftCardModel::END_TIME];
$item[$GCRModel::MONEY] = $gift[$GiftCardPriceModel::MONEY];
$item[$GCRModel::PRICE] = $gift[$GiftCardPriceModel::PRICE];
$item[$GCRModel::STATE] = 0;
$add = $GCRModel->addOrder($item);
if ($add) {
$result['order_id'] = $add;
$result['status'] = 1;
$result['msg'] = '订单创建成功';
$notify_url = $this->REQUEST_URL . '/index.php/SmallProgramApi/WxPay/gift_notify_url_v1';//普通服务商支付回调地址
$notify_func = "PayApi/Pay/gift_continent_pay_v1";//新大陆回调函数
$payData = A('SmallProgramApi/Pay')->getWxPayData_v1($payOrder, $notify_url, $notify_func);
if ($payData['status'] == 1) {
$result['status'] = 1;
$result['payData'] = $payData['data'];
} else {
$result = $payData;
}
} else {
$result['status'] = 0;
$result['msg'] = '订单创建失败';
}
} else {
$result['status'] = 0;
$result['msg'] = '该价格礼品卡已售完';
}
$this->ajaxReturn($result);
}
/*
*微信支付关闭后查询订单
*/
public function searchOrder()
{
$uid = self::$uid;
$merchant_id = self::$merchant_id;
$order_id = I('post.order_id');
if (empty($uid) || empty($merchant_id) || empty($order_id)) {
$result['status'] = 0;
$result['msg'] = '缺少参数';
$this->ajaxReturn($result);
}
$GCRModel = D('RetailGiftCardRecord');
$gift_order = $GCRModel->getFind(array($GCRModel::ID => $order_id, $GCRModel::XCX_VID => $uid));
if (!empty($gift_order)) {
if ($gift_order['state'] == 1) {
$result['status'] = 1;
$result['msg'] = '支付成功';
} else {
$result['status'] = 2;
$result['msg'] = '订单待支付';
}
} else {
$result['status'] = 0;
$result['msg'] = '参数有误';
}
$this->ajaxReturn($result);
}
/*
* 获取我的礼品卡
*/
public function getMyCard()
{
$uid = self::$uid;
$merchant_id = self::$merchant_id;
if (empty($uid) || empty($merchant_id)) {
$result['state'] = 0;
$result['msg'] = '缺少参数';
$this->ajaxReturn($result);
}
$GCRModel = D('RetailGiftCardRecord');
$GCModel = D('RetailGiftCard');
$where['r.' . $GCRModel::XCX_VID] = $uid;
$where['r.' . $GCRModel::STATE] = 1;
$gift_order = $GCRModel->getGiftCardDetails($where, 'r.*,g.' . $GCModel::TITLE, 'r.' . $GCRModel::ID . ' desc');
if (!empty($gift_order)) {
$time = time();
foreach ($gift_order as &$val) {
$val[$GCModel::END_TIME] = date('Y-m-d H:i', $val[$GCModel::END_TIME]);
if ($val[$GCModel::END_TIME] > $time) {
$val['use'] = 1;
}
}
$result['gift_order'] = $gift_order;
$result['status'] = 1;
$result['msg'] = '查询成功';
} else {
$result['status'] = 0;
$result['msg'] = '暂无领取记录';
}
$this->ajaxReturn($result);
}
/*
* 获取我的礼品卡详情
*/
public function getMyGiftDetail()
{
$merchant_id = self::$merchant_id;
$id = I('post.id');
$type = I('post.type');
$uid = self::$uid;
$xcx_vid = I('post.xcx_vid');
if (empty($merchant_id) || empty($id) || empty($type)) {
$result['status'] = 0;
$result['msg'] = '缺少参数';
$this->ajaxReturn($result);
}
$GCCModel = D('RetailGiftCardCover');
$GCRModel = D('RetailGiftCardRecord');
$GCModel = D('RetailGiftCard');
$map['r.' . $GCRModel::STATE] = 1;
$map['r.' . $GCRModel::ID] = $id;
$field = array(
'r.*',
'c.' . $GCCModel::IMG_URL_ID,
'g.' . $GCModel::TITLE,
'g.' . $GCModel::NOTES
);
switch ($type) {
case 1:
$map['r.' . $GCRModel::XCX_VID] = $uid;
break;
case 2:
//领取礼品卡]
$map['r.' . $GCRModel::XCX_VID] = $xcx_vid;
break;
default:
$result['status'] = 0;
$result['msg'] = '参数有误';
$this->ajaxReturn($result);
}
$detail = $GCCModel->getGiftImg($map, $field);
if (!empty($detail)) {
$detail['notes'] = explode('
', $detail[$GCModel::NOTES]);
$detail['img_url'] = $this->getGoodsImage($detail[$GCCModel::IMG_URL_ID]);
$detail['time'] = date('Y-m-d', $detail[$GCRModel::START_TIME]) . ' -- ' . date('Y-m-d', $detail[$GCRModel::END_TIME]);
$detail['id'] = $detail[$GCRModel::ID];
$result['data'] = $detail;
$result['status'] = 1;
$result['msg'] = '查询成功';
} else {
$result['status'] = 0;
$result['msg'] = '暂无数据';
}
$this->ajaxReturn($result);
}
/*
* 礼品卡充值到余额
*/
public function giftSelfUse()
{
$uid = self::$uid;
$merchant_id = self::$merchant_id;
$id = I('post.id');
if (empty($uid) || empty($merchant_id) || empty($id)) {
$result['status'] = 0;
$result['msg'] = '缺少参数';
$this->ajaxReturn($result);
}
$GCRModel = D('RetailGiftCardRecord');
$map[$GCRModel::ID] = $id;
$map[$GCRModel::XCX_VID] = $uid;
$map[$GCRModel::STATUS] = 0;
$map[$GCRModel::STATUS_TYPE] = 1;
$map[$GCRModel::STATE] = 1;
$order = $GCRModel->getFind($map);
if (empty($order)) {
$result['status'] = 0;
$result['msg'] = '礼品卡记录不存在';
$this->ajaxReturn($result);
}
if ($order[$GCRModel::START_TIME] > time() || $order[$GCRModel::END_TIME] < time()) {
$result['status'] = 0;
$result['msg'] = '不在该礼品卡可用时段';
$this->ajaxReturn($result);
}
$RSPUModel = D('RetailSmallProgramUser');
$VipModel = D('RetailVip');
$where = array(
'x.' . $RSPUModel::ID => $uid,
'v.' . $VipModel::STATUS => array('neq', 2)
);
$field = array(
'x.*',
'v.' . $VipModel::STATUS . ' as v_status'
);
$user = $RSPUModel->getVip($where, $field);
if ($user[$RSPUModel::VID]) {
if ($user['v_status'] == 1) {
$add = $VipModel->toSetInc(array($VipModel::ID => $user[$RSPUModel::VID]), $VipModel::BALANCE, $order[$GCRModel::MONEY]);
$RROModel = D('RetailRechargeOrder');
$item[$RROModel::MONEY] = $order[$GCRModel::PRICE];
$item[$RROModel::ALL_MONEY] = $order[$GCRModel::MONEY];
$item[$RROModel::TYPE] = 8;
$item[$RROModel::SCENE_TYPE] = 4;
$item[$RROModel::STATUS] = 1;
$item[$RROModel::MERCHANT_ID] = $user[$RSPUModel::MERCHANT_ID];
$item[$RROModel::ADD_TIME] = time();
$item[$RROModel::VID] = $user[$RSPUModel::VID];
$item[$RROModel::REMARK] = '礼品卡充值' . $item[$RROModel::ALL_MONEY] . '元';
$res = $RROModel->addOrder($item);
if ($res) {
$update = $GCRModel->updateOrder($map, array($GCRModel::STATUS => 1, $GCRModel::RECHARGE_VID => $user[$RSPUModel::VID]));
$result['status'] = 1;
$result['msg'] = '充值成功';
}
} else {
$result['status'] = 0;
$result['msg'] = '会员卡被冻结或挂失';
}
} else {
$result['status'] = 2;
$result['msg'] = '您需要绑定会员卡才能充值';
}
$this->ajaxReturn($result);
}
/*
* 礼品卡领取
*/
public function toReceive()
{
$uid = self::$uid;
$merchant_id = self::$merchant_id;
$id = I('post.id');
$result['post'] = I('post.');
if (empty($uid)) {
$result['status'] = -1;
$result['msg'] = '用户未登录';
$this->ajaxReturn($result);
}
if (empty($merchant_id) || empty($id)) {
$result['status'] = 0;
$result['msg'] = '缺失参数';
$this->ajaxReturn($result);
}
$GCRModel = D('RetailGiftCardRecord');
$order = $GCRModel->getFind(array($GCRModel::ID => $id)); // 原礼品卡记录
if (empty($order)) {
$result['status'] = 0;
$result['msg'] = '赠送的礼品卡不存在';
$this->ajaxReturn($result);
}
if ($order[$GCRModel::STATUS] == 1 || $order[$GCRModel::STATUS_TYPE] == 2) {
$result['status'] = 0;
$result['msg'] = '该礼品卡已被领取';
$this->ajaxReturn($result);
}
$SPUModel = D('RetailSmallProgramUser');
$user = $SPUModel->getFind(array($SPUModel::ID => $uid));
if (empty($user)) {
$result['status'] = 0;
$result['msg'] = '用户不存在';
$this->ajaxReturn($result);
}
$item[$GCRModel::XCX_VID] = $uid;
$item[$GCRModel::MERCHANT_ID] = $merchant_id;
$item[$GCRModel::GIFT_ID] = $order[$GCRModel::GIFT_ID];
$item[$GCRModel::GIFT_COVER_ID] = $order[$GCRModel::GIFT_COVER_ID];
$item[$GCRModel::GIFT_PRICE_ID] = $order[$GCRModel::GIFT_PRICE_ID];
$item[$GCRModel::ADD_TIME] = time();
$item[$GCRModel::STATUS] = 0;
$item[$GCRModel::STATUS_TYPE] = 1;
$item[$GCRModel::TYPE] = 2;
$item[$GCRModel::START_TIME] = $order[$GCRModel::START_TIME];
$item[$GCRModel::END_TIME] = $order[$GCRModel::END_TIME];
$item[$GCRModel::MONEY] = $order[$GCRModel::MONEY];
$item[$GCRModel::PRICE] = $order[$GCRModel::PRICE];
$item[$GCRModel::STATE] = 1;
$item[$GCRModel::P_XCX_VID] = $order[$GCRModel::XCX_VID];
$item[$GCRModel::GIFT_PID] = $id;
$add = $GCRModel->addOrder($item);
if (!empty($add)) {
$save[$GCRModel::STATUS_TYPE] = 2;
$save[$GCRModel::STATUS] = 1;
$update = $GCRModel->updateOrder(array($GCRModel::ID => $id), $save);
$result['id'] = $add;
$result['status'] = 1;
$result['msg'] = '领取成功';
} else {
$result['status'] = 0;
$result['msg'] = '领取失败';
}
$this->ajaxReturn($result);
}
}