DefaultController.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?php
  2. namespace addons\Xhs\backend\controllers;
  3. use addons\Material\common\enums\MaterialEnum;
  4. use addons\Xhs\common\models\AddonsXhsCate;
  5. use addons\Xhs\common\models\AddonsXhsComment;
  6. use addons\Xhs\common\models\AddonsXhsContent;
  7. use common\components\sensitivewords\SensitiveWords;
  8. use addons\Material\common\models\Material;
  9. use addons\Material\common\models\MaterialCate;
  10. use common\enums\StatusEnum;
  11. use common\models\user\User;
  12. use Yii;
  13. use common\controllers\AddonsController;
  14. use yii\db\Exception;
  15. /**
  16. * 默认控制器
  17. *
  18. * Class DefaultController
  19. * @package addons\Material\backend\controllers
  20. */
  21. class DefaultController extends BaseController
  22. {
  23. public $enableCsrfValidation = false;
  24. /**
  25. * 首页
  26. *
  27. * @return string
  28. */
  29. public function actionIndex()
  30. {
  31. $retuest = Yii::$app->request;
  32. if ($retuest->isAjax) {
  33. if ($retuest->isPost) {
  34. $post = Yii::$app->request->post();
  35. // 检查提交的参数
  36. $res = Yii::$app->services->validate->validate($post,[
  37. [['id','level'], 'integer'],
  38. [['title','check_status','mobile','date_end','date_start','user_id','user_name'], 'safe'],
  39. [['limit'],'default','value' => '15'],
  40. ]);
  41. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  42. $post = AddonsXhsContent::exceptNullVal($post);
  43. // 根据搜索手机号查询用户id
  44. if (!empty($post['mobile'])) {
  45. $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'mobile', $post['mobile'] . '%', false])->asArray()->column();
  46. if (empty($user_ids)) $this->success('查无此用户');
  47. $where[] = ['in', 'user_id', $user_ids];
  48. }
  49. // 根据搜索会员昵称查询用户id
  50. if (!empty($post['user_name'])) {
  51. $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'nickname', $post['user_name'] . '%', false])->asArray()->column();
  52. $where[] = ['in', 'user_id', $user_ids];
  53. }
  54. if($post['user_id']) $where[] = ['=', 'user_id', $post['user_id']];
  55. if($post['date_start'] && $post['date_end']) $where[] = ['between', 'created_at', strtotime($post['date_start']),strtotime($post['date_end'])];
  56. $where[] = ['=', 'mall_id', $this->mall_id];
  57. if($post['title']) $where[] = ['like', 'title', $post['title']];
  58. if(in_array($post['check_status'],[StatusEnum::ENABLED,StatusEnum::DISABLED,'2'])) $where[] = ['=', 'check_status', $post['check_status']]; else $where[] = ['=', 'check_status', StatusEnum::ENABLED];
  59. $where[] = ['>=','status',StatusEnum::DISABLED];
  60. $order = 'id desc';
  61. $params = array('where' => $where, 'order'=>$order, 'limit' => $post['limit'],'with' => ['cate','goods','user','goodsstatistics']);
  62. $list = AddonsXhsContent::listPage($params, false, true);
  63. if($list['list']) {
  64. foreach ($list['list'] as $k => $v) {
  65. $list['list'][$k]['source'] = json_decode($v['source']);
  66. $list['list'][$k]['order_count'] = $v['goodsstatistics']['order_num'];
  67. $list['list'][$k]['goods_amount'] = $v['goodsstatistics']['total_amount'];
  68. $list['list'][$k]['bought_count'] = $v['goodsstatistics']['bought_count'];
  69. }
  70. }
  71. $this->success('获取成功', $list);
  72. }
  73. } else {
  74. return $this->render($this->action->id);
  75. }
  76. }
  77. /**
  78. * 编辑
  79. * @Author: ltm
  80. * @DateTime: 2021/12/13 0021 18:29
  81. * @Copyright: copyright (c) 2021 广东七件事集团
  82. * @return mixed|string|void
  83. */
  84. public function actionEdit()
  85. {
  86. try {
  87. $request = Yii::$app->request;
  88. if ($request->isAjax) {
  89. //提交内容
  90. if ($request->isPost) {
  91. $params = Yii::$app->request->post();
  92. if($params['type'] == StatusEnum::ENABLED){ //禁用操作和删除操作和审核操作
  93. $res = Yii::$app->services->validate->validate($params, [
  94. [['id','status','check_status','check_remark'],'safe']
  95. ]);
  96. }else{
  97. $res = Yii::$app->services->validate->validate($params, [
  98. [['cate_id','describe','download_type'], 'required'],
  99. [['user_name','user_avatar_url','pic_url','id','virtual_download_num','goods_id','thumb_url','status','video_url'],'safe']
  100. ]);
  101. }
  102. $params = AddonsXhsContent::exceptNullVal($params);
  103. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  104. $params['mall_id'] = $this->mall_id;
  105. if($params['id']) $params['updated_at'] = time();else $params['create_at'] = time();//更新时间
  106. //删除操作
  107. if(isset($params['status']) && in_array($params['status'],[StatusEnum::DISABLED,StatusEnum::ENABLED,StatusEnum::DELETE])) {
  108. $params['status'] = $params['status'];
  109. }
  110. $where[] = ['=', 'mall_id', $this->mall_id];
  111. $where[] = ['>', 'status', StatusEnum::DISABLED];
  112. //审核操作
  113. if($params['check_status']) {
  114. $params['check_status'] = $params['check_status'];
  115. $params['status'] = StatusEnum::ENABLED;
  116. $params['check_time'] = time();
  117. }
  118. if($params['pic_url']) $params['pic_url'] = json_encode($params['pic_url']);
  119. $res = AddonsXhsContent::setData($params);
  120. if ($res === false) throw new Exception(AddonsXhsContent::getStaticError());
  121. return $this->success('操作成功');
  122. }
  123. }
  124. } catch (\Exception $e) {
  125. return $this->error($e->getMessage(), []);
  126. }
  127. return $this->render($this->action->id);
  128. }
  129. /**
  130. * 审核
  131. * @Author: ltm
  132. * @DateTime: 2021/12/13 0021 18:29
  133. * @Copyright: copyright (c) 2021 广东七件事集团
  134. * @return mixed|string|void
  135. */
  136. public function actionCheck(){
  137. return $this->render($this->action->id);
  138. }
  139. public function actionCommentList()
  140. {
  141. if (\Yii::$app->request->isAjax) {
  142. if (\Yii::$app->request->isGet) {
  143. $params = \Yii::$app->request->get();
  144. $where[] = ['mall_id' => $this->mall_id, 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]];
  145. !empty($params['user_id']) && $where[] = ['=', 'user_id', $params['user_id']];
  146. if(!empty($params['content'])){
  147. $where[] = ['like', 'content', $params['content']];
  148. }
  149. if (!empty($params['mobile'])) {
  150. $user_id = User::find()->select('id')->where(['mall_id' => $this->mall_id, 'mobile' => $params['mobile'], 'status' => StatusEnum::ENABLED])->scalar() ?? 0;
  151. $where[] = ['=', 'user_id', $user_id];
  152. }
  153. if (!empty($params['start_at']) && !empty($params['end_at'])) {
  154. $where[] = ['between', 'created_at', strtotime($params['start_at']), strtotime($params['end_at'])];
  155. }
  156. $params['where'] = $where;
  157. $params['order'] = 'id desc';
  158. $params['with'] = ['user'];
  159. $comment_list = AddonsXhsComment::listPage($params);
  160. if($comment_list==false) return $this->error(AddonsXhsComment::getStaticError());
  161. if (!empty($comment_list['list'])) {
  162. }
  163. return $this->success('success', $comment_list);
  164. }
  165. } else {
  166. return $this->render('comment-list');
  167. }
  168. }
  169. public function actionCommentDel()
  170. {
  171. $request = \Yii::$app->request;
  172. if ($request->isAjax && $request->isPost) {
  173. // 检查提交的参数
  174. $post = $request->post();
  175. $res = \Yii::$app->services->validate->validate($post, [
  176. [['id'], 'required'],
  177. ]);
  178. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  179. $post['mall_id'] = $this->mall_id;
  180. $post['attributes'] = ['status'=>StatusEnum::DELETE];
  181. AddonsXhsComment::updateData($post);
  182. return $this->success('成功');
  183. }
  184. }
  185. public function actionCommentUpTop()
  186. {
  187. $request = \Yii::$app->request;
  188. if ($request->isAjax && $request->isPost) {
  189. // 检查提交的参数
  190. $post = $request->post();
  191. $res = \Yii::$app->services->validate->validate($post, [
  192. [['id','is_top'], 'required'],
  193. ['is_top', 'integer', 'min' => 0, 'max' => 1],
  194. ]);
  195. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  196. $post['mall_id'] = $this->mall_id;
  197. $post['attributes'] = ['is_top'=>$post['is_top']];
  198. AddonsXhsComment::updateData($post);
  199. return $this->success('成功');
  200. }
  201. }
  202. public function actionCommentChangeStatus()
  203. {
  204. $request = \Yii::$app->request;
  205. if ($request->isAjax && $request->isPost) {
  206. // 检查提交的参数
  207. $post = $request->post();
  208. $res = \Yii::$app->services->validate->validate($post, [
  209. [['id','status'], 'required'],
  210. ['status', 'integer', 'min' => 0, 'max' => 1],
  211. ]);
  212. if ($res == false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  213. $post['mall_id'] = $this->mall_id;
  214. $post['attributes'] = ['status'=> $post['status']];
  215. AddonsXhsComment::updateData($post);
  216. return $this->success('成功');
  217. }
  218. }
  219. }