| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- <?php
- namespace addons\ReservationService\common\services;
- use addons\ReservationService\common\enums\ReservationServiceEnum;
- use addons\ReservationService\common\models\ReservationServiceLevel;
- use addons\ReservationService\common\models\ReservationServiceUser;
- use common\enums\StatusEnum;
- use common\models\common\MallSetting;
- use common\models\user\User;
- use common\traits\ErrorTrait;
- class BackendService
- {
- use ErrorTrait;
- public static function getSetting($mall_id)
- {
- $config['basic'] = \Yii::$app->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;
- }
- }
- }
|