CouponClass.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace bizHd\coupon\classes;
  3. use bizHd\invite\classes\InviteClass;
  4. use bizHd\invite\classes\InviteStatClass;
  5. use bizHd\user\classes\UserAssetClass;
  6. use Yii;
  7. use bizHd\base\classes\BaseClass;
  8. class CouponClass extends BaseClass
  9. {
  10. public static $baseFile = '\bizHd\coupon\models\Coupon';
  11. //获取客户没有使用的优惠券,默认取最新的6张
  12. public static function getUnUseCoupon($userId, $num = 6)
  13. {
  14. $time = time();
  15. return self::getLimitList('*', ['userId' => $userId, 'status' => 0, 'deadline>' => $time], $num, 'addTime DESC');
  16. }
  17. //使用优惠券 ssh 2020.3.10
  18. public static function useCoupon($couponId, $orderId)
  19. {
  20. if (empty($couponId)) {
  21. return false;
  22. }
  23. $coupon = self::getById($couponId, true);
  24. if (empty($coupon)) {
  25. return false;
  26. }
  27. $coupon->status = 1;
  28. $coupon->orderId = $orderId;
  29. $coupon->save();
  30. //老带新获得的优惠券
  31. if ($coupon->source == 1) {
  32. $time = time();
  33. $sourceId = $coupon->sourceId;
  34. $invite = InviteClass::getById($sourceId, true);
  35. if (!empty($invite)) {
  36. $invite->status = 1;
  37. $invite->orderTime = $time;
  38. $invite->save();
  39. //下单人数+1
  40. $introUserId = $invite->introUserId;
  41. $introStat = InviteStatClass::getByCondition(['userId' => $introUserId], true);
  42. if (!empty($introStat)) {
  43. $introStat->orderNum += 1;
  44. $introStat->save();
  45. }
  46. }
  47. }
  48. }
  49. //增加优惠券 ssh 2020.5.5
  50. public static function add($data, $returnObject = false)
  51. {
  52. $model = Yii::createObject(['class' => static::$baseFile]);
  53. $model->add($data, $returnObject);
  54. //领券次数增加
  55. $userId = $data['userId'];
  56. $userAsset = $userAsset = UserAssetClass::getByUserId($userId);
  57. $getCouponNum = $userAsset['getCouponNum'];
  58. $getCouponNum++;
  59. UserAssetClass::updateByUserId($userId, ['getCouponNum' => $getCouponNum]);
  60. }
  61. }