$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; } }