2025-08-01 11:39:06 +08:00

160 lines
5.0 KiB
PHP

<?php
namespace addons\notice\library;
use app\admin\library\Auth;
use app\common\model\manystore\ShopApply;
use app\common\model\school\activity\Activity;
use EasyWeChat\Factory;
class Service
{
// 后台消息面板获取最新消息
public static function getNoticeData($adminId = 0)
{
// return ['list' => [], 'num' => 0];
if (!$adminId) {
$adminId = (Auth::instance())->id;
}
$dataList = \app\admin\model\notice\Notice::where('to_id', $adminId)
->where('platform', 'admin')
->where('type','msg')
->order('id', 'desc')
->whereNull('readtime')
->limit(0,3)
->select();
$list = [];
foreach ($dataList as $item) {
$list[] = [
'title' => $item['content'],
'time' => datetime($item['createtime'], "m-d H:i"),
'url' => $item->ext_arr['url'] ?? '',
'atitle' => $item->ext_arr['url_title'],
'class' => $item->ext_arr['url_type'] == 2 ? 'btn-dialog' : ($item->ext_arr['url_type'] == 1 ? 'btn-addtabs' : ''),
];
}
$num = \app\admin\model\notice\Notice::where('to_id', $adminId)
->where('platform', 'admin')
->where('type','msg')
->order('id', 'desc')
->whereNull('readtime')
->count();
$res = ['list' => $list, 'num' => $num];
return $res;
}
// 后台消息面板获取待办任务
public static function getWaitData($adminId = 0)
{
// return ['list' => [], 'num' => 0];
$waitList = [
[
'title' => '有{$num}主理人申请等待处理',
'url' => 'manystore/shop_apply/index?shop_id=null',
'atitle' => '主理人申请待处理:请删除或生成机构',
'num' => ShopApply::where('shop_id', null)->count(),
// 'num' => 8,
'class' => 'btn-dialog',
'time' => date('m-d H:i', ShopApply::where('shop_id', null)->order('create_time','asc')->value("create_time")),
],
[
'title' => '有{$num}活动审核等待处理',
'url' => 'school/activity/activity/index?auth_status=0',
'atitle' => '活动审核待处理:请审核活动',
'num' => Activity::where('auth_status', 0)->where('status', "<>","-1")->count(),
// 'num' => 8,
'class' => 'btn-dialog',
'time' => date('m-d H:i', Activity::where('auth_status', 0)->where('status', "<>","-1")->order('createtime','asc')->value("createtime")),
],
];
// var_dump($waitList);
// $_row = \app\common\model\User::order('id','desc')->find();
// if ($_row) {
// $waitList[0]['time'] = date('m-d H:i', $_row['createtime']);
// }
//
// $_row = \app\common\model\User::order('id','desc')->find();
// if ($_row) {
// $waitList[1]['time'] = date('m-d H:i', $_row['createtime']);
// }
$waitList = array_filter($waitList, function ($row) {
return $row['num'] > 0;
});
$waitList = array_values($waitList);
$waitNum = array_sum(array_column($waitList, 'num'));
foreach ($waitList as &$item) {
$item['title'] = str_replace('{$num}', "<span style='color: #F0C067; padding: 0 5px;'>{$item['num']}</span>", $item['title']);
}
$res = ['list' => $waitList, 'num' => $waitNum];
return $res;
}
/**
* 获取 easyWechat 公众号实例
*
* @return \EasyWeChat\OfficialAccount\Application
*/
public static function getOfficialAccount()
{
$appId = get_addon_config('notice')['app_id'] ?? '';
$secret = get_addon_config('notice')['secret'] ?? '';
if (empty($appId)) {
$config = get_addon_config('third');
if ($config) {
$appId = $config['wechat']['app_id'] ?? '';
$secret = $config['wechat']['app_secret'] ?? '';
}
}
if (empty($appId)) {
$config = get_addon_config('epay');
if ($config) {
$appId = $config['wechat']['app_id'] ?? '';
$secret = $config['wechat']['app_secret'] ?? '';
}
}
$config = [
'app_id' => $appId,
'secret' => $secret,
'response_type' => 'array',
];
$app = Factory::officialAccount($config);
return $app;
}
/**
* 获取 easyWechat 小程序实例
*
*/
public static function getMini()
{
$appId = get_addon_config('notice')['mini_app_id'] ?? '';
$secret = get_addon_config('notice')['mini_secret'] ?? '';
if (empty($appId)) {
}
$config = [
'app_id' => $appId,
'secret' => $secret,
'response_type' => 'array',
];
$app = Factory::miniProgram($config);
return $app;
}
}