258 lines
7.1 KiB
PHP
Executable File
258 lines
7.1 KiB
PHP
Executable File
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | 宏驰云科技开发团队 版权所有 拥有最终解释权
|
|
// +----------------------------------------------------------------------
|
|
|
|
// | Author: HcyShop-kiki
|
|
// +----------------------------------------------------------------------
|
|
namespace app\common\model;
|
|
|
|
use think\Model;
|
|
|
|
/**
|
|
* 通知场景
|
|
* Class Notice
|
|
* @package app\common\model
|
|
*/
|
|
class NoticeSetting extends Model
|
|
{
|
|
|
|
protected $name = 'dev_notice_setting';
|
|
|
|
//设置json
|
|
// protected $json = ['variable', 'system_notice', 'sms_notice', 'oa_notice', 'mnp_notice'];
|
|
// protected $jsonAssoc = true;
|
|
|
|
|
|
//通知类型
|
|
const SYSTEM_NOTICE = 1;
|
|
const SMS_NOTICE = 2;
|
|
const OA_NOTICE = 3;
|
|
const MNP_NOTICE = 4;
|
|
|
|
|
|
//通知对象
|
|
const NOTICE_PLATFORM = 1; //通知平台
|
|
const NOTICE_USER = 2; //通知会员
|
|
const NOTICE_OTHER = 3; //通知游客(如新用户注册)
|
|
|
|
|
|
//通知会员
|
|
const ORDER_PAY_NOTICE = 100;//订单已支付
|
|
const ORDER_DELIVERY_NOTICE = 101;//订单已发货
|
|
const PLATFORM_PASS_REFUND_NOTICE = 102;//平台通过售后退款通知
|
|
const PLATFORM_REFUSE_REFUND_NOTICE = 103;//平台拒绝售后退款通知
|
|
const REGISTER_NOTICE = 104;//注册通知
|
|
const CHANGE_MOBILE_NOTICE = 105;//变更手机号短信通知
|
|
const GET_BACK_MOBILE_NOTICE = 106;//重置密码短信通知
|
|
const REGISTER_SUCCESS_NOTICE = 107;//注册成功
|
|
const INVITE_SUCCESS_NOTICE = 108;//邀请成功
|
|
const GET_EARNINGS_NOTICE = 109;//获得收益
|
|
const GET_GODE_LOGIN_NOTICE = 110;//验证码登录
|
|
const BIND_MOBILE_NOTICE = 111;//绑定手机号
|
|
const GET_BACK_PAY_CODE_NOTICE = 112;//找回支付密码
|
|
|
|
|
|
//通知平台
|
|
const USER_PAID_NOTICE_PLATFORM = 200;//会员支付下单通知平台
|
|
const AFTER_SALE_NOTICE_PLATFORM = 201;//会员发起售后退款通知
|
|
|
|
|
|
|
|
//订单相关场景
|
|
const ORDER_SCENE = [
|
|
self::ORDER_PAY_NOTICE,
|
|
self::ORDER_DELIVERY_NOTICE,
|
|
self::PLATFORM_PASS_REFUND_NOTICE,
|
|
self::PLATFORM_REFUSE_REFUND_NOTICE,
|
|
];
|
|
|
|
|
|
//通知平台的场景
|
|
const NOTICE_PLATFORM_SCENE = [
|
|
self::USER_PAID_NOTICE_PLATFORM,
|
|
self::AFTER_SALE_NOTICE_PLATFORM,
|
|
];
|
|
|
|
|
|
//通知会员的场景
|
|
const NOTICE_USER_SCENE = [
|
|
self::ORDER_PAY_NOTICE,
|
|
self::ORDER_DELIVERY_NOTICE,
|
|
self::PLATFORM_PASS_REFUND_NOTICE,
|
|
self::PLATFORM_REFUSE_REFUND_NOTICE,
|
|
self::CHANGE_MOBILE_NOTICE,
|
|
self::GET_BACK_MOBILE_NOTICE,
|
|
self::REGISTER_SUCCESS_NOTICE,
|
|
self::INVITE_SUCCESS_NOTICE,
|
|
self::GET_EARNINGS_NOTICE,
|
|
];
|
|
|
|
//通知游客(还不存在当前系统的人)
|
|
const NOTICE_OTHER_SCENE = [
|
|
self::REGISTER_NOTICE
|
|
];
|
|
|
|
|
|
//验证码的场景
|
|
const NOTICE_NEED_CODE = [
|
|
self::REGISTER_NOTICE,
|
|
self::CHANGE_MOBILE_NOTICE,
|
|
self::GET_BACK_MOBILE_NOTICE,
|
|
self::GET_GODE_LOGIN_NOTICE,
|
|
self::BIND_MOBILE_NOTICE,
|
|
self::GET_BACK_PAY_CODE_NOTICE,
|
|
];
|
|
|
|
|
|
//场景值-兼容旧短信场景逻辑
|
|
const SMS_SCENE = [
|
|
'DDZFTZ' => self::ORDER_PAY_NOTICE,
|
|
'DDFHTZ' => self::ORDER_DELIVERY_NOTICE,
|
|
'SJTYSHTK' => self::PLATFORM_PASS_REFUND_NOTICE,
|
|
'SJJJSHTK' => self::PLATFORM_REFUSE_REFUND_NOTICE,
|
|
'ZCYZ' => self::REGISTER_NOTICE,
|
|
'ZHMM' => self::GET_BACK_MOBILE_NOTICE,
|
|
'DDTZ' => self::USER_PAID_NOTICE_PLATFORM,
|
|
'SHTKDDTZ' => self::AFTER_SALE_NOTICE_PLATFORM,
|
|
'YZMDL' => self::GET_GODE_LOGIN_NOTICE,
|
|
'BGSJHM' => self::CHANGE_MOBILE_NOTICE,
|
|
'BDSJHM' => self::BIND_MOBILE_NOTICE,
|
|
'ZHZFMM' => self::GET_BACK_PAY_CODE_NOTICE,
|
|
];
|
|
|
|
|
|
|
|
/**
|
|
* Notes: 获取场景描述
|
|
* @param $state
|
|
* @return array|mixed|string
|
|
* @author kiki
|
|
*/
|
|
public static function getSceneDesc($state)
|
|
{
|
|
$data = [
|
|
self::ORDER_PAY_NOTICE => '订单已支付',
|
|
self::ORDER_DELIVERY_NOTICE => '订单已发货',
|
|
self::PLATFORM_PASS_REFUND_NOTICE => '平台通过售后退款通知',
|
|
self::PLATFORM_REFUSE_REFUND_NOTICE => '平台拒绝售后退款通知',
|
|
self::REGISTER_NOTICE => '注册通知',
|
|
self::CHANGE_MOBILE_NOTICE => '变更手机号短信通知',
|
|
self::GET_BACK_MOBILE_NOTICE => '重置密码短信通知',
|
|
self::REGISTER_SUCCESS_NOTICE => '注册成功',
|
|
self::INVITE_SUCCESS_NOTICE => '邀请成功',
|
|
self::GET_EARNINGS_NOTICE => '获得收益',
|
|
self::GET_GODE_LOGIN_NOTICE => '验证码登录',
|
|
self::BIND_MOBILE_NOTICE => '绑定手机号',
|
|
self::GET_BACK_PAY_CODE_NOTICE => '找回支付密码',
|
|
|
|
self::USER_PAID_NOTICE_PLATFORM => '会员支付下单通知平台',
|
|
self::AFTER_SALE_NOTICE_PLATFORM => '会员发起售后退款通知',
|
|
];
|
|
if ($state === true) {
|
|
return $data;
|
|
}
|
|
return $data[$state] ?? '';
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 根据场景获取跳转地址
|
|
* @param $scene
|
|
* @author kiki
|
|
* @return array
|
|
*/
|
|
public static function getPathByScene($scene, $extra_id)
|
|
{
|
|
$page = '/pages/index/index'; // 小程序主页路径
|
|
$url = '/mobile/pages/index/index'; // 公众号主页路径
|
|
if (in_array($scene, self::ORDER_SCENE)) {
|
|
$url = '/mobile/pages/order_details/order_details?id='.$extra_id;
|
|
$page = '/pages/order_details/order_details?id='.$extra_id;
|
|
}
|
|
return ['url' => $url, 'page' => $page];
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 场景名称
|
|
* @param $value
|
|
* @param $data
|
|
* @author kiki
|
|
* @return array|mixed|string
|
|
*/
|
|
public function getSceneAttr($value, $data)
|
|
{
|
|
return self::getSceneDesc($value);
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 场景变量
|
|
* @param $value
|
|
* @param $data
|
|
* @author kiki
|
|
* @return mixed
|
|
*/
|
|
public function getVariableAttr($value, $data)
|
|
{
|
|
return $this->jsonToArr($value);
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 系统消息
|
|
* @param $value
|
|
* @param $data
|
|
* @author kiki
|
|
* @return array|mixed
|
|
*/
|
|
public function getSystemNoticeAttr($value, $data)
|
|
{
|
|
return $this->jsonToArr($value);
|
|
}
|
|
|
|
/**
|
|
* Notes: 短信消息
|
|
* @param $value
|
|
* @param $data
|
|
* @author kiki
|
|
* @return array|mixed
|
|
*/
|
|
public function getSmsNoticeAttr($value, $data)
|
|
{
|
|
return $this->jsonToArr($value);
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 公众号消息
|
|
* @param $value
|
|
* @param $data
|
|
* @author kiki
|
|
* @return array|mixed
|
|
*/
|
|
public function getOaNoticeAttr($value, $data)
|
|
{
|
|
return $this->jsonToArr($value);
|
|
}
|
|
|
|
/**
|
|
* Notes: 小程序消息
|
|
* @param $value
|
|
* @param $data
|
|
* @author kiki
|
|
* @return array|mixed
|
|
*/
|
|
public function getMnpNoticeAttr($value, $data)
|
|
{
|
|
return $this->jsonToArr($value);
|
|
}
|
|
|
|
|
|
public function jsonToArr($data)
|
|
{
|
|
return empty($data) ? [] : json_decode($data, JSON_UNESCAPED_UNICODE);
|
|
}
|
|
|
|
} |