| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\plugins\wxlive\controllers;
- use app\models\Level;
- use app\models\LiveRoomPurview;
- use app\models\SaasUser;
- use app\models\User;
- use app\plugins\wxlive\models\live\LiveDetailForm;
- class LiveController
- {
- // 获取直播列表
- public function actionIndex () {
- $liveForm = new LiveDetailForm();
- $liveForm->store_id = get_store_id();
- $liveForm->page = get_params('pageNo',1);
- $liveForm->limit = get_params('pageSize',10);
- $res = $liveForm->getLiveList();
- if ($res['errcode'] == 0) {
- foreach ($res['room_info'] as $k=>$v){
- $res['room_info'][$k]['start_time'] = date('Y-m-d H:i:s',$res['room_info'][$k]['start_time']);
- $res['room_info'][$k]['end_time'] = date('Y-m-d H:i:s',$res['room_info'][$k]['end_time']);
- }
- }
- return [
- 'code' => 0,
- 'data' => [
- 'list' => $res['errcode'] == 0 ? $res['room_info'] : [],
- 'total' => $res['total'],
- 'pageNo' => get_params('pageNo',1),
- 'pageSize' => get_params('pageSize',10)
- ]
- ];
- }
- /**
- * @return array|string
- * 添加直播间
- */
- public function actionEdit()
- {
- $data = post_params();
- $liveForm = new LiveDetailForm();
- $liveForm->store_id = get_store_id();
- $liveForm->data = $data;
- $res = $liveForm->submitLive();
- if ($res['errcode'] == 0) {
- return [
- 'code' => 0,
- 'msg' => '添加成功'
- ];
- }
- $errorMsg = $res['errmsg'];
- if (strpos($errorMsg, 'startTime or endTime is invalid') !== false) {
- $errorMsg = '开播时间需要在当前时间的10分钟后 并且 开始时间不能在 6 个月后,开播时间和结束时间间隔不得短于30分钟,不得超过24小时';
- }
- if (strpos($errorMsg, 'name length is invalid') !== false) {
- $errorMsg = '直播间名字,最短3个汉字,最长17个汉字,1个汉字相当于2个字符';
- }
- return [
- 'code' => 1,
- 'msg' => $errorMsg,
- ];
- }
- public function actionDelete()
- {
- $liveForm = new LiveDetailForm();
- $liveForm->store_id = get_store_id();
- $liveForm->roomId = post_params('roomId');
- $res = $liveForm->deleteRoom();
- if ($res['errcode'] == 0) {
- return [
- 'code' => 0,
- 'msg' => '删除成功'
- ];
- }
- return [
- 'code' => 1,
- 'msg' => $res['errmsg']
- ];
- }
- /**
- * 直播间添加商品
- */
- public function actionGoodsAdd () {
- $data = post_params();
- $liveForm = new LiveDetailForm();
- $liveForm->store_id = get_store_id();
- $liveForm->goods_id = $data['goods_group'];
- $liveForm->roomId = $data['roomId'];
- $res = $liveForm->addGoods();
- if ($res['errcode'] == 0) {
- return [
- 'code' => 0,
- 'msg' => '添加成功'
- ];
- }
- return [
- 'code' => 1,
- 'msg' => $res['errmsg']
- ];
- }
- /**
- * 回放列表
- */
- public function actionHuifang () {
- $liveForm = new LiveDetailForm();
- $liveForm->store_id = get_store_id();
- $liveForm->roomid = get_params('roomid',0);
- $res = $liveForm->getHuifang();
- return [
- 'code' => 0,
- 'data' => [
- 'list' => $res['errcode'] == 0 ? $res['live_replay'] : []
- ]
- ];
- }
- /**
- * 获取media
- */
- public function actionGetMedia () {
- $liveForm = new LiveDetailForm();
- $liveForm->store_id = get_store_id();
- $liveForm->file = get_params('img_url');
- $res = $liveForm->getMedia();
- if (!empty($res['errcode'])) {
- return [
- 'code' => 1,
- 'msg' => '网络异常,请稍后再试',
- ];
- }
- return [
- 'code' => 0,
- 'data' => $res
- ];
- }
- /**
- * 获取已经审核通过的商品列表
- * @return array
- * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
- * @throws \GuzzleHttp\Exception\GuzzleException
- */
- public function actionGetGoods()
- {
- $liveForm = new LiveDetailForm();
- $liveForm->store_id = get_store_id();
- $liveForm->page = get_params('pageNo',1);
- $liveForm->limit = get_params('pageSize',10);
- $res = $liveForm->getGoodsList();
- if ($res['errcode'] == 0) {
- return [
- 'code' => 0,
- 'data' => [
- 'total' => $res['total'],
- 'list' => $res['goods'],
- ]
- ];
- }
- return [
- 'code' => 1,
- 'msg' => $res['errmsg']
- ];
- }
- /* begin 2023/12/11 16:53:03 WPing丶 */
- /**
- * 模块名:actionLiveRoomPurviewEdit
- * 代码描述:直播间权限修改
- * 作者:WPing丶
- * 请求方式:GET/POST
- * 创建时间:2023/12/11 16:53:45
- * @param int room_id 直播间ID
- * @param int type 可见范围:0=所有人;1=指定用户;2=指定会员;
- * @param array user_id 用户ID
- * @param array level_id 会员等级ID
- */
- public function actionLiveRoomPurviewEdit()
- {
- $request = \Yii::$app->request;
- $store_id = get_store_id();
- if($request->isGet) {//获取
- $room_id = get_params('room_id');
- $lrp = LiveRoomPurview::findOne(['room_id' => $room_id, 'store_id' => $store_id, 'is_delete' => 0]);
- $checked_level = explode(',', $lrp->level_id);
- $level_list = Level::find()->where(['store_id' => $store_id, 'is_delete' => 0, 'status' => 1])->select('id,name')->asArray()->all();
- foreach($level_list as &$level) {
- if(in_array($level['id'], $checked_level)) {
- $level['checked'] = 1;
- } else {
- $level['checked'] = 0;
- }
- }
- $user_checked_list = [];
- $checked_user = explode(',', $lrp->user_id);
- if(count($checked_user) > 0) {
- $user_checked_list = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $checked_user])
- ->select('u.id,su.name,su.avatar')
- ->asArray()->all();
- }
- return [
- 'code' => 0,
- 'data' => [
- 'level_list' => $level_list,
- 'checked_level' => $checked_level,
- 'type' => $lrp->type,
- 'user_checked_list' => $user_checked_list,
- ]
- ];
- }
- if ($request->isPost){//保存
- $post_params = post_params();
- $lrp = LiveRoomPurview::findOne(['room_id' => $post_params['room_id'], 'store_id' => $store_id, 'is_delete' => 0]);
- if(!$lrp) {
- $lrp = new LiveRoomPurview();
- $lrp->room_id = $post_params['room_id'];
- $lrp->store_id = $store_id;
- }
- $lrp->type = $post_params['type'];
- $lrp->user_id = implode(',',$post_params['user_list']);
- $lrp->level_id = implode(',',$post_params['level_list']);
- if(!$lrp->save()) {
- return [
- 'code' => 1,
- 'msg' => '修改失败'
- ];
- }
- return [
- 'code' => 0,
- 'msg' => '修改成功'
- ];
- }
- }
- /* end */
- }
|