UserCoupon.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace app\task\behavior;
  3. use think\Cache;
  4. use app\task\model\UserCoupon as UserCouponModel;
  5. /**
  6. * 优惠券行为管理
  7. * Class UserCoupon
  8. * @package app\task\behavior
  9. */
  10. class UserCoupon
  11. {
  12. /* @var \app\task\model\UserCoupon $model */
  13. private $model;
  14. /**
  15. * 执行函数
  16. * @param $model
  17. * @return bool
  18. */
  19. public function run($model)
  20. {
  21. if (!$model instanceof UserCouponModel) {
  22. return new UserCouponModel and false;
  23. }
  24. $this->model = $model;
  25. if (!Cache::has('__task_space__UserCoupon')) {
  26. // 设置优惠券过期状态
  27. $this->setExpired();
  28. Cache::set('__task_space__UserCoupon', time(), 3600);
  29. }
  30. return true;
  31. }
  32. /**
  33. * 设置优惠券过期状态
  34. * @return false|int
  35. */
  36. private function setExpired()
  37. {
  38. // 获取已过期的优惠券ID集
  39. $couponIds = $this->model->getExpiredCouponIds();
  40. // 记录日志
  41. $this->dologs('setExpired', [
  42. 'couponIds' => json_encode($couponIds),
  43. ]);
  44. // 更新已过期状态
  45. return $this->model->setIsExpire($couponIds);
  46. }
  47. /**
  48. * 记录日志
  49. * @param $method
  50. * @param array $params
  51. * @return bool|int
  52. */
  53. private function dologs($method, $params = [])
  54. {
  55. $value = 'UserCoupon --' . $method;
  56. foreach ($params as $key => $val)
  57. $value .= ' --' . $key . ' ' . $val;
  58. return log_write($value);
  59. }
  60. }