MemberShip.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\admin\model\user;
  12. use traits\ModelTrait;
  13. use basic\ModelBasic;
  14. /**
  15. * 会员设置 model
  16. * Class MemberShip
  17. * @package app\admin\model\user
  18. */
  19. class MemberShip extends ModelBasic
  20. {
  21. use ModelTrait;
  22. public static function setWhere($where)
  23. {
  24. $model = self::where('is_del', 0);
  25. if ($where['is_publish'] != '') $model->where('is_publish', $where['is_publish']);
  26. if ($where['title'] != '') $model->where('title', 'like', "%$where[title]%");
  27. return $model;
  28. }
  29. public static function getSytemVipList($where)
  30. {
  31. $model = self::setWhere($where)->order('sort DESC,add_time DESC');
  32. $data = ($list = $model->page((int)$where['page'], (int)$where['limit'])
  33. ->select()) && count($list) ? $list->toArray() : [];
  34. foreach ($data as &$item) {
  35. if ($item['vip_day'] == -1) $item['vip_day'] = '永久';
  36. }
  37. $count = self::setWhere($where)->count();
  38. return compact('data', 'count');
  39. }
  40. public static function getSytemVipSelect()
  41. {
  42. return self::where('mer_id', 0)->where('is_del', 0)->where('is_show', 1)->column('title', 'id');
  43. }
  44. /**自定义设置会员
  45. * @param $time
  46. * @param $user
  47. */
  48. public static function setUserCustomMember($day, $userInfo)
  49. {
  50. switch ($userInfo['level']) {
  51. case 1:
  52. $overdue_time = bcadd(bcmul($day, 86400, 0), $userInfo['overdue_time'], 0);
  53. $res = User::edit(['overdue_time' => $overdue_time], $userInfo['uid'], 'uid');
  54. break;
  55. case 0:
  56. $overdue_time = bcadd(bcmul($day, 86400, 0), time(), 0);
  57. $res = User::edit(['level' => 1, 'member_time' => time(), 'overdue_time' => $overdue_time], $userInfo['uid'], 'uid');
  58. break;
  59. }
  60. return $res;
  61. }
  62. }