/** * 使用优惠券 * @param int $order_id * @param int $coupon_id */ public function useCoupon($order_id, $coupon_id, $couponType) { if (!$couponType) { $couponType = 0; } $price = \Wechat\Logic\CouponLogic::getCouponPrice($coupon_id, $couponType); if ($price) { $orderInfo = D('TicketOrder')->getOrderInfo($order_id); if ($orderInfo['coupon_pay'] > 0) { return false; } if ($orderInfo['third_party_pay'] > $price) { $save['third_party_pay'] = $orderInfo['third_party_pay'] - $price; } else { $save['third_party_pay'] = 0; } $save['coupon_id'] = $coupon_id; $save['coupon_pay'] = $price; $saveResult = D('TicketOrder')->where(array('id' => $order_id))->save($save); //用户优惠券状态修改 $cResult = \Wechat\Logic\CouponLogic::changeStatus($coupon_id, $couponType, $order_id); if ($saveResult && $cResult) { return true; } } }
public function changeCouponAct() { $coupon_id = I('coupon_id'); if ($coupon_id != 0) { $tmp = explode("-", $coupon_id); $couponId = $tmp[0]; $couponType = $tmp[1]; } if (!$couponType) { $couponType = 0; } $oid = I('oid'); $price = \Wechat\Logic\CouponLogic::getCouponPrice($couponId, $couponType); $order = D('TicketOrder')->where(array('id' => $oid))->find(); $p = $order['third_party_pay'] - $price; $p = $p > 0 ? $p : 0; $this->success($p); }