160 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			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;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |