文件
mashangyoujiu/Application/PayApi/Controller/ScoreMallController.class.php

130 行
4.8 KiB
PHP
可执行文件

<?php
namespace PayApi\Controller;
use Think\Controller;
//[1.5.52]
/**
* 积分商城换购
* Class ScoreMallController
* @package PayApi\Controller
*/
class ScoreMallController extends Controller
{
/**
* 微信支付回调之后的公共函数
* @param $payOrder
* @return mixed
*/
public function buyNotify($payOrder)
{
$PayOrderModel = D('RetailPayOrder');
$SMExchangeModel = D('RetailScoreMallExchange');
$merchant_id = $payOrder[$PayOrderModel::MERCHANT_ID];
$vid = $payOrder[$PayOrderModel::VID];
$eMap = array(
$SMExchangeModel::PAY_ORDER_ID => $payOrder[$PayOrderModel::ID],
$SMExchangeModel::VID => $vid,
$SMExchangeModel::MERCHANT_ID => $merchant_id,
$SMExchangeModel::STATUS => 1,
$SMExchangeModel::STATE => 0,
);
$scoreOrder = $SMExchangeModel->getFind($eMap);
if (empty($scoreOrder)) {
$result['status'] = 0;
$result['msg'] = '操作有误2';
return $result;
}
return $this->orderSuccess($scoreOrder);
}
/**
* 兑换成功,修改数据
* @param $scoreOrder
* @return mixed
*/
public function orderSuccess($scoreOrder)
{
$VipModel = D('RetailVip');
$ScoreMallModel = D('ScoreMall');
$SMExchangeModel = D('RetailScoreMallExchange');
$merchant_id = $scoreOrder[$SMExchangeModel::MERCHANT_ID];
$vid = $scoreOrder[$SMExchangeModel::VID];
$sMap = array(
$ScoreMallModel::ID => $scoreOrder[$SMExchangeModel::SCORE_MALL_ID],
$ScoreMallModel::MERCHANT_ID => $merchant_id,
);
$scoreMall = $ScoreMallModel->getFind($sMap);
if (empty($scoreMall)) {
$result['status'] = 0;
$result['msg'] = '操作有误2';
$this->ajaxReturn($result);
}
$vMap = array(
$VipModel::ID => $vid,
);
$vip = $VipModel->getFind($vMap);
$integral = $scoreMall[$ScoreMallModel::INTEGRAL];
if (round($vip[$VipModel::INTEGRAL] - $integral) < 0) {
$result['status'] = 0;
$result['msg'] = '会员积分不足' . $integral;
return $result;
}
if ($scoreMall[$ScoreMallModel::TYPE] == 2) {
$price = $scoreMall[$ScoreMallModel::PRICE];
if (round($vip[$VipModel::BALANCE] - $price, 2) < 0) {
$result['status'] = 0;
$result['msg'] = '会员余额不足' . $price;
$this->ajaxReturn($result);
}
$RechargeOrderModel = D('RetailRechargeOrder');
$rechargeItem = array(
$RechargeOrderModel::MONEY => $price,
$RechargeOrderModel::ALL_MONEY => $price,
$RechargeOrderModel::TYPE => 2,
$RechargeOrderModel::SCENE_TYPE => 5,
$RechargeOrderModel::STATUS => 1,
$RechargeOrderModel::MERCHANT_ID => $merchant_id,
$RechargeOrderModel::ADD_TIME => time(),
$RechargeOrderModel::VID => $vid,
$RechargeOrderModel::REMARK => '积分商城换购消费' . $price . '元',
);
$RechargeOrderModel->addOrder($rechargeItem);
$VipModel->toSetDec($vMap, $VipModel::BALANCE, $price);//减去余额
}
$sMap = array(
$ScoreMallModel::ID => $scoreOrder[$SMExchangeModel::SCORE_MALL_ID],
$ScoreMallModel::MERCHANT_ID => $merchant_id,
);
$ScoreMallModel->toSetDec($sMap, $ScoreMallModel::NUM, 1);//执行积分商品数量减1
$VipModel->toSetDec($vMap, $VipModel::INTEGRAL, $integral);//减去积分
$IntegralOrderModel = D('RetailIntegralOrder');
$integralItem = array(
$IntegralOrderModel::TYPE => 3,
$IntegralOrderModel::VID => $vid,
$IntegralOrderModel::INTEGRAL => $integral,
$IntegralOrderModel::ADD_TIME => time(),
$IntegralOrderModel::MERCHANT_ID => $merchant_id,
$IntegralOrderModel::STORE_ID => $vip[$VipModel::STORE_ID],
$IntegralOrderModel::REMARK => "积分商城兑换商品扣除" . $integral . "积分",
);
//添加积分使用记录
$add = $IntegralOrderModel->addOrder($integralItem);
if ($add) {
$eMap = array(
$SMExchangeModel::ID => $scoreOrder[$SMExchangeModel::ID],
);
$SMExchangeModel->updateOrder($eMap, array($SMExchangeModel::STATE => 1));
$result['status'] = 1;
$result['msg'] = '加入兑换订单成功';
} else {
$result['status'] = 0;
$result['msg'] = '兑换失败';
}
return $result;
}
}