RegisterManageController.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace backend\modules\admin\controllers;
  3. use backend\controllers\AdminController;
  4. use common\enums\StatusEnum;
  5. use common\models\addons\AddonsCombo;
  6. use common\models\backend\Admin;
  7. use common\models\backend\AdminAddonsViews;
  8. use common\models\backend\Reference;
  9. use common\models\common\Addons;
  10. use common\models\common\PlatformSetting;
  11. use common\models\diy\DiyTemplate;
  12. use \Yii;
  13. class RegisterManageController extends AdminController
  14. {
  15. public function actionIndex()
  16. {
  17. if (Yii::$app->request->isAjax) {
  18. if (Yii::$app->request->isGet) {
  19. $params = Yii::$app->request->get();
  20. // 检查提交的参数
  21. $res = Yii::$app->services->validate->validate($params, [
  22. [['page', 'limit'], 'safe'],
  23. ]);
  24. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  25. $where = [];
  26. $where[] = ['=', 'status', StatusEnum::ENABLED];
  27. $where[] = ['source' => 1];
  28. $order = 'created_at desc';
  29. $admin = $this->admin;
  30. if ($admin->id != 1) {
  31. $reference = Reference::find()->where(['mobile' => $admin->username, 'status' => StatusEnum::ENABLED])->asArray()->one();
  32. if (empty($reference)) $this->error('您并非推广员');
  33. $where[] = ['reference_id' => $reference['id']];
  34. }
  35. $params = array('where' => $where, 'order' => $order, 'limit' => $params['limit']);
  36. $list = Admin::listPage($params, false, true);
  37. if(!empty($list['list'])){
  38. $reference_ids = array_column($list['list'],'reference_id');
  39. $reference_list = Reference::lists(['where'=>[['id'=>$reference_ids]],'index'=>'id']);
  40. foreach ($list['list'] as &$item){
  41. $item['reference_name']=$reference_list[$item['reference_id']]['name']??'';
  42. }
  43. }
  44. $this->success('获取成功', $list);
  45. }
  46. } else {
  47. return $this->render($this->action->id);
  48. }
  49. }
  50. public function actionSetting()
  51. {
  52. $retuest = Yii::$app->request;
  53. if ($retuest->isAjax) {
  54. if ($retuest->isPost) {
  55. $params = Yii::$app->request->post();
  56. // 检查提交的参数
  57. $res = Yii::$app->services->validate->validate($params, [
  58. [['combo_id'], 'required'],
  59. [['expire','diy_template_id'], 'safe'],
  60. ]);
  61. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  62. $data['register_manage'] = $params;
  63. \Yii::$app->services->setting->platform->set($data);
  64. $this->success('操作成功');
  65. } else {
  66. $combo_list = AddonsCombo::lists(['where' => [['status' => StatusEnum::ENABLED]], 'order' => 'id asc', 'select' => 'id,title,expire']);
  67. $diy_template_list = DiyTemplate::lists(['where' => [['status' => StatusEnum::ENABLED]], 'order' => 'id asc', 'select' => 'id,title']);
  68. $combo_arr = [];
  69. if (!empty($combo_list)) {
  70. foreach ($combo_list as $val) {
  71. $expire = json_decode($val['expire'], true);
  72. unset($val['expire']);
  73. if ($expire['is_forever']) {
  74. $combo_arr[] = $val;
  75. } else {
  76. switch ($expire['unit']) {
  77. case 1://月
  78. if (time() < $val['created_at'] + $expire['duration'] * 30 * 24 * 3600) {
  79. $combo_arr[] = $val;
  80. }
  81. break;
  82. case 2://年
  83. if (time() < $val['created_at'] + $expire['duration'] * 365 * 24 * 3600) {
  84. $combo_arr[] = $val;
  85. }
  86. break;
  87. }
  88. }
  89. }
  90. }
  91. $register_manage = PlatformSetting::getConfByGroup('register_manage', true);
  92. $this->success('获取成功', ['combo_arr' => $combo_arr, 'register_manage' => $register_manage,'diy_template_list'=>$diy_template_list]);
  93. }
  94. } else {
  95. return $this->render($this->action->id);
  96. }
  97. }
  98. public function actionAddonsView()
  99. {
  100. if (Yii::$app->request->isAjax) {
  101. if (Yii::$app->request->isGet) {
  102. $params = Yii::$app->request->get();
  103. // 检查提交的参数
  104. $res = Yii::$app->services->validate->validate($params, [
  105. [['page', 'limit', 'admin_id'], 'safe'],
  106. ]);
  107. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  108. $where = [];
  109. $where[] = ['=', 'status', StatusEnum::ENABLED];
  110. if (isset($params['admin_id'])) {
  111. $where[] = ['admin_id' => $params['admin_id']];
  112. }
  113. $order = 'created_at desc';
  114. $params = array('where' => $where, 'order' => $order, 'limit' => $params['limit']);
  115. $list = AdminAddonsViews::listPage($params, false, true);
  116. if(!empty($list['list'])){
  117. $addons = array_column($list['list'],'addons');
  118. $admin_ids = array_column($list['list'],'admin_id');
  119. $addons_list = Addons::lists(['where'=>[['name'=>$addons]],'index'=>'name','select'=>'name,title']);
  120. $admin_list = Admin::lists(['where'=>[['id'=>$admin_ids]],'index'=>'id','select'=>'id,username']);
  121. foreach ($list['list'] as &$item){
  122. $item['addons_name'] = $addons_list[$item['addons']]['title']??'';
  123. $item['username'] = $admin_list[$item['admin_id']]['username']??'';
  124. }
  125. }
  126. $this->success('获取成功', $list);
  127. }
  128. } else {
  129. return $this->render($this->action->id);
  130. }
  131. }
  132. /**
  133. * 接收观看统计数据
  134. * @Author: lun
  135. * @DateTime: 2023/6/21 0021 15:09
  136. * @Copyright: copyright (c) 2021 广东七件事集团
  137. * @return mixed|void
  138. */
  139. public function actionReckonCount()
  140. {
  141. if (Yii::$app->request->isAjax && Yii::$app->request->isGet) {
  142. $params = Yii::$app->request->get();
  143. // 检查提交的参数
  144. $res = Yii::$app->services->validate->validate($params, [
  145. [['name', 'time'], 'safe'],
  146. ]);
  147. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  148. // 保存数据
  149. if ($this->admin['source'] == 1) {// 注册用户才能使用此功能
  150. $res = AdminAddonsViews::setData($this->admin['id'], $params['name'], $params['time']);
  151. if ($res === false) return $this->error(AdminAddonsViews::getStaticError());
  152. }
  153. return $this->success('提交成功');
  154. }
  155. }
  156. }