EventRegistration.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  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\wap\model\activity;
  12. use traits\ModelTrait;
  13. use basic\ModelBasic;
  14. use think\Db;
  15. /**活动 model
  16. * Class EventRegistration
  17. * @package app\wap\model\activity
  18. */
  19. class EventRegistration extends ModelBasic
  20. {
  21. use ModelTrait;
  22. /**活动列表
  23. * @param int $page
  24. * @param int $limit
  25. * @return array
  26. */
  27. public static function eventRegistrationList($page = 1, $limit = 10)
  28. {
  29. $list = self::PreWhere()->order('sort DESC,add_time DESC')->page((int)$page, (int)$limit)->select();
  30. $list = count($list) > 0 ? $list->toArray() : [];
  31. foreach ($list as &$v) {
  32. $v = self::singleActivity($v);
  33. $start_time = date('y/m/d H:i', $v['start_time']);
  34. $end_time = date('y/m/d H:i', $v['end_time']);
  35. $v['time'] = $start_time . '~' . $end_time;
  36. $v['count'] = EventSignUp::signUpCount($v['id']);
  37. }
  38. return $list;
  39. }
  40. /*可以显示的活动数量
  41. * @return int|string
  42. * @throws \think\Exception
  43. */
  44. public static function homeCount()
  45. {
  46. return self::PreWhere()->count();
  47. }
  48. /**获取单个活动
  49. * @param int $id
  50. */
  51. public static function oneActivitys($id = false)
  52. {
  53. $activity = self::PreWhere()->find($id ? $id : true);
  54. if ($activity) {
  55. $activity = self::singleActivity($activity->toArray());
  56. $activity['count'] = EventSignUp::signUpCount($id);
  57. $activity['surplus'] = bcsub($activity['number'], $activity['count'], 0);
  58. $activity['surplus'] = $activity['surplus'] < 0 ? 0 : $activity['surplus'];
  59. if ($activity['surplus'] <= 0) {
  60. $activity['statu'] = 2;
  61. self::where('id', $activity['id'])->update(['statu' => 2]);
  62. }
  63. $activity['signup_start_time'] = date('Y-m-d H:i', $activity['signup_start_time']);
  64. $activity['signup_end_time'] = date('Y-m-d H:i', $activity['signup_end_time']);
  65. $activity['start_time'] = date('Y-m-d H:i', $activity['start_time']);
  66. $activity['end_time'] = date('Y-m-d H:i', $activity['end_time']);
  67. }
  68. return $activity;
  69. }
  70. /**活动过滤
  71. * @return EventRegistration
  72. */
  73. public static function PreWhere()
  74. {
  75. return self::where(['is_show' => 1, 'is_del' => 0, 'status' => 1]);
  76. }
  77. /**判断活动状态
  78. * @param $activity
  79. * @return mixed
  80. */
  81. public static function singleActivity($activity)
  82. {
  83. if (bcsub($activity['signup_start_time'], time(), 0) > 0) {
  84. $statu = 0;//报名尚未开始
  85. } elseif (bcsub($activity['signup_start_time'], time(), 0) <= 0 && bcsub($activity['signup_end_time'], time(), 0) > 0) {
  86. $statu = 1;//报名开始
  87. } elseif (bcsub($activity['signup_end_time'], time(), 0) <= 0 && bcsub($activity['start_time'], time(), 0) > 0) {
  88. $statu = 2;//报名结束 活动尚未开始
  89. } elseif (bcsub($activity['start_time'], time(), 0) <= 0 && bcsub($activity['end_time'], time(), 0) > 0) {
  90. $statu = 3;//活动中
  91. } elseif (bcsub($activity['end_time'], time(), 0) < 0) {
  92. $statu = 4;//活动结束
  93. } else {
  94. $statu = -1;
  95. }
  96. if ($activity['statu'] != $statu) {
  97. $activity['statu'] = $statu;
  98. self::where('id', $activity['id'])->update(['statu' => $statu]);
  99. }
  100. return $activity;
  101. }
  102. /**讲师名下资料
  103. * @param $mer_id
  104. * @param $page
  105. * @param $limit
  106. */
  107. public static function getLecturerEventList($mer_id, $page, $limit)
  108. {
  109. $list = [];
  110. if (!$mer_id) return $list;
  111. $model = self::PreWhere();
  112. $model = $model->where(['mer_id' => $mer_id])->order('sort desc,id desc');
  113. $list = $model->page($page, $limit)->select();
  114. $list = count($list) ? $list->toArray() : [];
  115. foreach ($list as &$v) {
  116. $v = self::singleActivity($v);
  117. $start_time = date('y/m/d H:i', $v['start_time']);
  118. $end_time = date('y/m/d H:i', $v['end_time']);
  119. $v['time'] = $start_time . '~' . $end_time;
  120. $v['count'] = EventSignUp::signUpCount($v['id']);
  121. }
  122. return $list;
  123. }
  124. }