services->setting->addons->get($mall_id, ReservationServiceEnum::ADDONS_NAME, 'basic') ?? []; $config['sms'] = \Yii::$app->services->setting->addons->get($mall_id, ReservationServiceEnum::ADDONS_NAME, 'sms') ?? []; if (!empty($config['basic'])) { $config['basic']['comment_tags'] = json_decode($config['basic']['comment_tags'], true); $config['basic']['refund_tags'] = json_decode($config['basic']['refund_tags'], true); $config['sms']['waitting_orders'] = json_decode($config['sms']['waitting_orders'], true); $config['sms']['refuse_orders'] = json_decode($config['sms']['refuse_orders'], true); $config['sms']['accept_orders'] = json_decode($config['sms']['accept_orders'], true); $config['sms']['waitting_orders_qcloud'] = !empty($config['sms']['waitting_orders_qcloud']) ? json_decode($config['sms']['waitting_orders_qcloud'], true): self::getDefaultData('waitting_orders_qcloud', '用户下单技师待接单通知'); $config['sms']['refuse_orders_qcloud'] = !empty($config['sms']['refuse_orders_qcloud']) ? json_decode($config['sms']['refuse_orders_qcloud'], true) : self::getDefaultData('refuse_orders_qcloud', '技师接单订单拒绝通知'); $config['sms']['accept_orders_qloud'] = !empty($config['sms']['refuse_orders_qcloud']) ? json_decode($config['sms']['accept_orders_qloud'], true): self::getDefaultData('accept_orders_qloud', '技师接单订单接受通知'); $config['sms']['waitting_orders_submail'] = !empty($config['sms']['waitting_orders_submail']) ? json_decode($config['sms']['waitting_orders_submail'], true): self::getDefaultData('waitting_orders_submail', '用户下单技师待接单通知'); $config['sms']['refuse_orders_submail'] = !empty($config['sms']['refuse_orders_submail']) ? json_decode($config['sms']['refuse_orders_submail'], true): self::getDefaultData('refuse_orders_submail', '用户下单技师待接单通知'); $config['sms']['accept_orders_submail'] = !empty($config['sms']['accept_orders_submail']) ? json_decode($config['sms']['accept_orders_submail'], true): self::getDefaultData('accept_orders_submail', '用户下单技师待接单通知'); if(empty($config['basic']['appointment_interval'])){ $config['basic']['appointment_interval'] = 1; } if(empty($config['basic']['range_start'])){ $config['basic']['range_start'] = 1; } if(empty($config['basic']['range_end'])){ $config['basic']['range_end'] = 1; } return $config; } return null; } public static function getDefaultData($type, $name) { return [ 'title' => $name, 'type' => $type, 'tips' => '', 'data' => [ 'template_id' => '', 'content' => '', 'key' => '', 'name' => '', 'vars' => [], ], ]; } /** * 获取‘技师’字眼自定义修改后的文字 * * @param $mallId * * @return string */ public static function getCustomText($mallId) { $str = \Yii::$app->services->setting->addons->get($mallId, 'ReservationService', 'basic.custom_text'); return empty($str) ? '技师' : $str; } /** * 将“技师字眼替换” * * @param $text * @param $customText * @param $mallId * * @return string */ public static function replaceTextToCustomText($text, $customText = '', $mallId = 0) { if ($customText === '') { $customText = self::getCustomText($mallId); } return str_replace('技师', $customText, $text); } /** * @Description: 保存基础设置 * @Author: zsan * @DateTime 2023-07-22 16:33:33 * @param integer $mall_id * @param array $params * @return boolean */ public static function setSetting($mall_id, $params) { try { $params['basic']['comment_tags'] = !empty($params['basic']['comment_tags']) ? json_encode($params['basic']['comment_tags'], JSON_UNESCAPED_UNICODE) : json_encode([]); $params['basic']['refund_tags'] = !empty($params['basic']['refund_tags']) ? json_encode($params['basic']['refund_tags'], JSON_UNESCAPED_UNICODE) : json_encode([]); $params['sms']['waitting_orders'] = json_encode($params['sms']['waitting_orders']); $params['sms']['refuse_orders'] = json_encode($params['sms']['refuse_orders']); $params['sms']['accept_orders'] = json_encode($params['sms']['accept_orders']); $params['sms']['waitting_orders_qcloud'] = json_encode($params['sms']['waitting_orders_qcloud']); $params['sms']['refuse_orders_qcloud'] = json_encode($params['sms']['refuse_orders_qcloud']); $params['sms']['accept_orders_qcloud'] = json_encode($params['sms']['accept_orders_qcloud']); $params['sms']['waitting_orders_submail'] = json_encode($params['sms']['waitting_orders_submail']); $params['sms']['refuse_orders_submail'] = json_encode($params['sms']['refuse_orders_submail']); $params['sms']['accept_orders_submail'] = json_encode($params['sms']['accept_orders_submail']); \Yii::$app->services->setting->addons->set($mall_id, ReservationServiceEnum::ADDONS_NAME, $params); return true; } catch (\Exception $e) { self::getStaticError($e->getMessage()); return false; } } public static function getLevelList($mall_id, $query) { try { $where = [ ['mall_id' => $mall_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]] ]; if (!empty($query['keyword'])) { $where[] = ['like', 'name', $query['keyword']]; } $list = ReservationServiceLevel::listPage([ 'where' => $where, 'order' => 'level DESC', ]); if ($list == false) throw new \Exception(ReservationServiceLevel::getStaticError()); return $list; } catch (\Exception $e) { self::getStaticError($e->getMessage()); return false; } } public static function getUserList($mall_id, $query) { try { $where = [ ['mall_id' => $mall_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]] ]; if (!empty($query['user_id'])) { $where[] = ['user_id' => $query['user_id']]; } elseif (!empty($query['keyword'])) { $uids = User::find()->where(['mall_id' => $mall_id]) ->andWhere(['status' => StatusEnum::ENABLED]) ->andWhere(['or', ['like', 'nickname', $query['keyword']], ['like', 'mobile', $query['keyword']]]) ->select('id')->column(); if (empty($uids)) return []; $where[] = ['user_id' => $uids]; } if (!empty($query['name'])) { $where[] = ['like', 'name', $query['name']]; } if (!empty($query['mobile'])) { $where[] = ['like', 'mobile', $query['mobile']]; } if (!empty($query['address'])) { $where[] = ['like', 'address', $query['address']]; } if (!empty($query['check_status'])) { $where[] = ['check_status' => $query['check_status']]; } if (!empty($query['date_start'])) $where[] = ['>=', 'created_at', strtotime($query['date_start'])]; if (!empty($query['date_end'])) $where[] = ['<=', 'created_at', strtotime($query['date_end'])]; $list = ReservationServiceUser::listPage([ 'where' => $where, 'order' => 'id DESC', 'with' => [ 'user' => function ($query) { $query->select('id, nickname, avatar_url, mobile'); } ], ]); if (!$list) throw new \Exception(ReservationServiceUser::getStaticError()); if(!empty($list['list'])){ foreach ($list['list'] as &$item){ $item['qualification_certificate'] = json_decode($item['qualification_certificate'],true); if (empty($item['qualification_certificate'])) { $item['qualification_certificate'] = []; } } } $list['levels'] = []; $levels = self::getLevels($mall_id); if (!empty($levels)) $list['levels'] = array_column($levels, null, 'level'); return $list; } catch (\Exception $e) { self::getStaticError($e->getMessage()); return false; } } public static function getLevels($mall_id) { try { $where = [ ['mall_id' => $mall_id], ['status' => StatusEnum::ENABLED] ]; $list = ReservationServiceLevel::lists([ 'where' => $where, 'order' => 'level DESC', 'select' => 'id, level, name' ]); if ($list == false) throw new \Exception(ReservationServiceLevel::getStaticError()); return $list; } catch (\Exception $e) { self::getStaticError($e->getMessage()); return false; } } }