Admin.php 9.0 KB
Newer Older
D
v1.2.0  
devil_gong 已提交
1 2 3 4
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
D
2.0  
Devil 已提交
5
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
D
v1.2.0  
devil_gong 已提交
6
// +----------------------------------------------------------------------
D
2.0  
Devil 已提交
7
// | Licensed ( https://opensource.org/licenses/mit-license.php )
D
v1.2.0  
devil_gong 已提交
8 9 10 11 12
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\admin\controller;

13
use app\service\AdminService;
D
Devil 已提交
14
use app\service\SystemBaseService;
D
v1.2.0  
devil_gong 已提交
15 16 17 18 19 20 21 22 23 24 25

/**
 * 管理员
 * @author   Devil
 * @blog     http://gong.gg/
 * @version  0.0.1
 * @datetime 2016-12-01T21:51:08+0800
 */
class Admin extends Common
{
	/**
26 27 28 29 30 31 32
     * 构造方法
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
     */
D
v1.2.0  
devil_gong 已提交
33 34 35 36 37 38 39
	public function __construct()
	{
		// 调用父类前置方法
		parent::__construct();
	}

	/**
40 41 42 43 44 45
     * 管理员列表
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
D
v1.2.0  
devil_gong 已提交
46 47 48 49
     */
	public function Index()
	{
		// 登录校验
D
devil_gong 已提交
50
		$this->IsLogin();
D
v1.2.0  
devil_gong 已提交
51 52
		
		// 权限校验
D
devil_gong 已提交
53
		$this->IsPower();
D
v1.2.0  
devil_gong 已提交
54 55

		// 总数
D
devil 已提交
56
		$total = AdminService::AdminTotal($this->form_where);
D
v1.2.0  
devil_gong 已提交
57 58

		// 分页
D
devil 已提交
59 60 61 62 63 64 65
		$page_params = [
			'number'	=>	$this->page_size,
			'total'		=>	$total,
			'where'		=>	$this->data_request,
			'page'		=>	$this->page,
			'url'		=>	MyUrl('admin/admin/index'),
		];
D
v1.2.0  
devil_gong 已提交
66 67
		$page = new \base\Page($page_params);

D
devil 已提交
68
		// 获取数据列表
D
v1.2.0  
devil_gong 已提交
69
		$data_params = [
D
devil 已提交
70 71 72
            'where'         => $this->form_where,
            'm'             => $page->GetPageStarNumber(),
            'n'             => $this->page_size,
D
devil 已提交
73
            'order_by'      => $this->form_order_by['data'],
D
devil 已提交
74 75 76 77
        ];
		$ret = AdminService::AdminList($data_params);

		// 基础参数赋值
D
Devil 已提交
78 79 80 81
		MyViewAssign('params', $this->data_request);
		MyViewAssign('page_html', $page->GetPageHtml());
		MyViewAssign('data_list', $ret['data']);
		return MyView();
D
v1.2.0  
devil_gong 已提交
82 83
	}

84 85
	/**
     * 详情
86 87 88 89 90
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
     */
    public function Detail()
    {
        if(!empty($this->data_request['id']))
        {
            // 条件
            $where = [
                ['id', '=', intval($this->data_request['id'])],
            ];

            // 获取列表
            $data_params = [
                'm'             => 0,
                'n'             => 1,
                'where'         => $where,
            ];
            $ret = AdminService::AdminList($data_params);
            $data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
D
Devil 已提交
109
            MyViewAssign('data', $data);
110
        }
D
Devil 已提交
111
        return MyView();
112 113
    }

D
v1.2.0  
devil_gong 已提交
114
	/**
115 116 117 118 119 120
     * 管理员添加/编辑页面
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
D
v1.2.0  
devil_gong 已提交
121 122 123 124
     */
	public function SaveInfo()
	{
		// 登录校验
D
devil_gong 已提交
125
		$this->IsLogin();
D
v1.2.0  
devil_gong 已提交
126 127

		// 参数
D
devil 已提交
128
		$params = $this->data_request;
D
v1.2.0  
devil_gong 已提交
129 130 131 132 133

		// 不是操作自己的情况下
		if(!isset($params['id']) || $params['id'] != $this->admin['id'])
		{
			// 权限校验
D
devil_gong 已提交
134
			$this->IsPower();
D
v1.2.0  
devil_gong 已提交
135 136 137
		}

		// 管理员编辑
138
		$data = [];
D
v1.2.0  
devil_gong 已提交
139 140 141 142 143 144 145
		if(!empty($params['id']))
		{
			$data_params = [
				'where'		=> ['id'=>$params['id']],
				'm'			=> 0,
				'n'			=> 1,
			];
146
			$ret = AdminService::AdminList($data_params);
D
devil 已提交
147
			if(empty($ret['data'][0]))
D
v1.2.0  
devil_gong 已提交
148 149 150
			{
				return $this->error('管理员信息不存在', MyUrl('admin/index/index'));
			}
D
devil 已提交
151
			$data = $ret['data'][0];
D
v1.2.0  
devil_gong 已提交
152 153 154 155 156 157 158
		}

		// 角色
		$role_params = [
			'where'		=> ['is_enable'=>1],
			'field'		=> 'id,name',
		];
D
devil 已提交
159
		$role = AdminService::RoleList($role_params);
D
Devil 已提交
160
		MyViewAssign('role_list', $role['data']);
D
v1.2.0  
devil_gong 已提交
161

D
Devil 已提交
162
		MyViewAssign('id', isset($params['id']) ? $params['id'] : 0);
D
Devil 已提交
163 164
		MyViewAssign('common_gender_list', MyConst('common_gender_list'));
		MyViewAssign('common_admin_status_list', MyConst('common_admin_status_list'));
D
devil_gong 已提交
165 166 167

		// 管理员编辑页面钩子
        $hook_name = 'plugins_view_admin_admin_save';
D
Devil 已提交
168
        MyViewAssign($hook_name.'_data', MyEventTrigger($hook_name,
D
devil_gong 已提交
169 170
        [
            'hook_name'     => $hook_name,
D
devil_gong 已提交
171
            'is_backend'    => true,
D
devil_gong 已提交
172
            'admin_id'      => isset($params['id']) ? $params['id'] : 0,
D
devil_gong 已提交
173 174 175 176 177
            'data'          => &$data,
            'params'        => &$params,
        ]));

        // 数据
D
Devil 已提交
178
        unset($params['id']);
D
Devil 已提交
179 180 181
        MyViewAssign('data', $data);
        MyViewAssign('params', $params);
		return MyView();
D
v1.2.0  
devil_gong 已提交
182 183 184
	}

	/**
185 186 187 188 189 190
     * 管理员添加/编辑
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
D
v1.2.0  
devil_gong 已提交
191 192 193 194 195 196 197 198 199
     */
	public function Save()
	{
		// 是否ajax
		if(!IS_AJAX)
		{
			return $this->error('非法访问');
		}

D
devil_gong 已提交
200 201 202 203
		// 登录校验
		$this->IsLogin();

		// 参数
D
devil 已提交
204
		$params = $this->data_post;
D
devil_gong 已提交
205 206 207 208 209 210 211 212 213

		// 不是操作自己的情况下
		if(!isset($params['id']) || $params['id'] != $this->admin['id'])
		{
			// 权限校验
			$this->IsPower();
		}

		// 开始操作
D
v1.2.0  
devil_gong 已提交
214 215 216 217 218
		$params['admin'] = $this->admin;
		return AdminService::AdminSave($params);
	}

	/**
219 220 221 222 223 224 225
     * 管理员删除
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
     */
D
v1.2.0  
devil_gong 已提交
226 227 228 229 230 231 232 233
	public function Delete()
	{
		// 是否ajax
		if(!IS_AJAX)
		{
			return $this->error('非法访问');
		}

D
devil_gong 已提交
234 235 236 237 238 239
		// 登录校验
		$this->IsLogin();

		// 权限校验
		$this->IsPower();

D
v1.2.0  
devil_gong 已提交
240
		// 开始操作
D
devil 已提交
241
		$params = $this->data_post;
D
v1.2.0  
devil_gong 已提交
242 243 244 245 246
		$params['admin'] = $this->admin;
		return AdminService::AdminDelete($params);
	}

	/**
247 248 249 250 251 252
     * 登录页面
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
D
v1.2.0  
devil_gong 已提交
253 254 255 256
     */
	public function LoginInfo()
	{
		// 是否已登录
257
		if(AdminService::LoginInfo() !== null)
D
v1.2.0  
devil_gong 已提交
258
		{
D
Devil 已提交
259
			return MyRedirect(MyUrl('admin/index/index'));
D
v1.2.0  
devil_gong 已提交
260 261
		}

262
        // 登录方式
D
Devil 已提交
263
        MyViewAssign('admin_login_type', MyC('admin_login_type', [], true));
264

D
devil 已提交
265
        // 背景图片
D
Devil 已提交
266
        $host = SystemBaseService::AttachmentHost();
D
devil 已提交
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283
        $bg_images_list = [
            $host.'/static/admin/default/images/login/1.jpg',
            $host.'/static/admin/default/images/login/2.jpg',
            $host.'/static/admin/default/images/login/3.jpg',
            $host.'/static/admin/default/images/login/4.jpg',
            $host.'/static/admin/default/images/login/5.jpg',
            $host.'/static/admin/default/images/login/6.jpg',
            $host.'/static/admin/default/images/login/7.jpg',
            $host.'/static/admin/default/images/login/8.jpg',
            $host.'/static/admin/default/images/login/9.jpg',
            $host.'/static/admin/default/images/login/10.jpg',
            $host.'/static/admin/default/images/login/11.jpg',
            $host.'/static/admin/default/images/login/12.jpg',
            $host.'/static/admin/default/images/login/13.jpg',
            $host.'/static/admin/default/images/login/14.jpg',
            $host.'/static/admin/default/images/login/15.jpg',
        ];
D
Devil 已提交
284
        MyViewAssign('bg_images_list', $bg_images_list);
D
devil 已提交
285

D
devil_gong 已提交
286 287
		// 管理员登录页面钩子
        $hook_name = 'plugins_view_admin_login_info';
D
Devil 已提交
288
        MyViewAssign($hook_name.'_data', MyEventTrigger($hook_name,
D
devil_gong 已提交
289 290
        [
            'hook_name'     => $hook_name,
D
devil_gong 已提交
291
            'is_backend'    => true,
D
devil_gong 已提交
292 293
        ]));

D
Devil 已提交
294
		return MyView();
D
v1.2.0  
devil_gong 已提交
295 296 297
	}

	/**
298 299 300 301 302 303 304
     * 管理员登录
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
     */
D
v1.2.0  
devil_gong 已提交
305 306 307 308 309 310 311 312 313
	public function Login()
	{
		// 是否ajax
		if(!IS_AJAX)
		{
			return $this->error('非法访问');
		}

		// 开始操作
D
devil 已提交
314
		$params = $this->data_post;
D
v1.2.0  
devil_gong 已提交
315 316 317
		return AdminService::Login($params);
	}

318 319 320 321 322 323 324 325 326 327 328 329
    /**
     * 验证码显示
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
     */
    public function AdminVerifyEntry()
    {
        $params = [
                'width'         => 100,
D
Devil 已提交
330
                'height'        => 28,
331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356
                'key_prefix'    => 'admin_login',
            ];
        $verify = new \base\Verify($params);
        $verify->Entry();
    }

    /**
     * 登录验证码发送
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
     */
    public function LoginVerifySend()
    {
        // 是否ajax请求
        if(!IS_AJAX)
        {
            return $this->error('非法访问');
        }

        // 调用服务层
        return AdminService::LoginVerifySend($this->data_post);
    }

D
v1.2.0  
devil_gong 已提交
357
	/**
358 359 360 361 362 363 364
     * 退出
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2021-03-03
     * @desc    description
     */
D
v1.2.0  
devil_gong 已提交
365 366
	public function Logout()
	{
367
        AdminService::LoginLogout();
D
Devil 已提交
368
		return MyRedirect(MyUrl('admin/admin/logininfo'));
D
v1.2.0  
devil_gong 已提交
369 370 371
	}
}
?>