StoreCouponUser.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace app\admin\model\ump;
  3. use app\admin\model\wechat\WechatUser as UserModel;
  4. use crmeb\traits\ModelTrait;
  5. use crmeb\basic\BaseModel;
  6. /**
  7. * Class StoreCategory
  8. * @package app\admin\model\store
  9. */
  10. class StoreCouponUser extends BaseModel
  11. {
  12. /**
  13. * 数据表主键
  14. * @var string
  15. */
  16. protected $pk = 'id';
  17. /**
  18. * 模型名称
  19. * @var string
  20. */
  21. protected $name = 'store_coupon_user';
  22. use ModelTrait;
  23. /**
  24. * @param $where
  25. * @return array
  26. */
  27. public static function systemPage($where)
  28. {
  29. $model = new self;
  30. if ($where['status'] != '') $model = $model->where('status', $where['status']);
  31. if ($where['is_fail'] != '') $model = $model->where('status', $where['is_fail']);
  32. if ($where['coupon_title'] != '') $model = $model->where('coupon_title', 'LIKE', "%$where[coupon_title]%");
  33. if ($where['nickname'] != '') {
  34. $uid = UserModel::where('nickname', 'LIKE', "%$where[nickname]%")->column('uid', 'uid');
  35. $model = $model->where('uid', 'IN', implode(',', $uid));
  36. };
  37. // $model = $model->where('is_del',0);
  38. $model = $model->order('id desc');
  39. return self::page($model, function ($item) {
  40. $item['nickname'] = UserModel::where('uid', $item['uid'])->value('nickname');
  41. }, $where);
  42. }
  43. /**
  44. * 给用户发放优惠券
  45. * @param $coupon
  46. * @param $user
  47. * @return int|string
  48. */
  49. public static function setCoupon($coupon, $user)
  50. {
  51. $data = array();
  52. foreach ($user as $k => $v) {
  53. $data[$k]['cid'] = $coupon['id'];
  54. $data[$k]['uid'] = $v;
  55. $data[$k]['coupon_title'] = $coupon['title'];
  56. $data[$k]['coupon_price'] = $coupon['coupon_price'];
  57. $data[$k]['use_min_price'] = $coupon['use_min_price'];
  58. $data[$k]['add_time'] = time();
  59. $data[$k]['end_time'] = $data[$k]['add_time'] + $coupon['coupon_time'] * 86400;
  60. }
  61. $data_num = array_chunk($data, 30);
  62. self::beginTrans();
  63. $res = true;
  64. foreach ($data_num as $k => $v) {
  65. $res = $res && self::insertAll($v);
  66. }
  67. self::checkTrans($res);
  68. return $res;
  69. }
  70. /**
  71. * TODO 恢复优惠券
  72. * @param $id
  73. * @return StoreCouponUser|bool
  74. */
  75. public static function recoverCoupon($id)
  76. {
  77. $status = self::where('id', $id)->value('status');
  78. if ($status) return self::where('id', $id)->update(['status' => 0, 'use_time' => '']);
  79. else return true;
  80. }
  81. }