EventRegistration.php 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 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. class EventRegistration extends ModelBasic
  16. {
  17. use ModelTrait;
  18. /**活动列表
  19. * @param int $page
  20. * @param int $limit
  21. * @return array
  22. */
  23. public static function eventRegistrationList($page=1,$limit=10){
  24. $list=self::PreWhere()->page((int)$page,(int)$limit)->select();
  25. $list=count($list)>0 ? $list->toArray() : [];
  26. foreach ($list as &$v){
  27. $v=self::singleActivity($v);
  28. $start_time=date('y/m/d H:i',$v['start_time']);
  29. $end_time=date('y/m/d H:i',$v['end_time']);
  30. $v['time']=$start_time.'~'.$end_time;
  31. }
  32. return $list;
  33. }
  34. /**获取单个活动
  35. * @param int $id
  36. */
  37. public static function oneActivitys($id= false){
  38. $activity=self::PreWhere()->find($id ? $id : true);
  39. if($activity){
  40. $activity=self::singleActivity($activity->toArray());
  41. $activity['count']=EventSignUp::where('activity_id',$id)->where('paid',1)->count();
  42. $activity['surplus']=bcsub($activity['number'],$activity['count'],0);
  43. $activity['surplus']=$activity['surplus']<0 ? 0 : $activity['surplus'];
  44. if($activity['surplus']<=0) $activity['status']=2;
  45. $activity['signup_start_time']=date('Y-m-d H:i',$activity['signup_start_time']);
  46. $activity['signup_end_time']=date('Y-m-d H:i',$activity['signup_end_time']);
  47. $activity['start_time']=date('Y-m-d H:i',$activity['start_time']);
  48. $activity['end_time']=date('Y-m-d H:i',$activity['end_time']);
  49. }
  50. return $activity;
  51. }
  52. /**活动过滤
  53. * @return EventRegistration
  54. */
  55. public static function PreWhere(){
  56. return self::where('is_show',1)->where('is_del',0)->order('sort DESC,add_time DESC');
  57. }
  58. /**判断活动状态
  59. * @param $activity
  60. * @return mixed
  61. */
  62. public static function singleActivity($activity){
  63. if(bcsub($activity['signup_start_time'],time(),0)>0){
  64. $activity['status']=0;//报名尚未开始
  65. }elseif (bcsub($activity['signup_start_time'],time(),0)<=0 && bcsub($activity['signup_end_time'],time(),0)>0){
  66. $activity['status']=1;//报名开始
  67. }elseif (bcsub($activity['signup_end_time'],time(),0)<=0 && bcsub($activity['start_time'],time(),0)>0){
  68. $activity['status']=2;//报名结束 活动尚未开始
  69. }elseif (bcsub($activity['start_time'],time(),0)<=0 && bcsub($activity['end_time'],time(),0)>0){
  70. $activity['status']=3;//活动中
  71. }elseif (bcsub($activity['end_time'],time(),0)<0){
  72. $activity['status']=4;//活动结束
  73. }else{
  74. $activity['status']=-1;
  75. }
  76. return $activity;
  77. }
  78. }