<?php
/**
* +----------------------------------------------------------------------
* | TickyPHP [ This is a freeware ]
* +----------------------------------------------------------------------
* | Copyright (c) 2015 All rights reserved.
* +----------------------------------------------------------------------
* | Author: 罗敏贵 <e-mail:minguiluo@163.com> <QQ:271391233>
* +----------------------------------------------------------------------
* | SVN: $Id: Member.php 87573 2018-09-04 09:49:32 luomingui $
* +----------------------------------------------------------------------
* | 文件功能:对应的表名:tky_member
* +----------------------------------------------------------------------
*/
namespace application\admin\controller;
use ticky\request;
use ticky\response;
use ticky\page;
class member extends auth {
public function index() {
$default_password = get_config('default_password');
$search = $this->search_frm();
$sql = "select m.* from tky_member m
inner join tky_auth_role_member am on m.uid=am.uid
inner join tky_auth_role r on r.roleid=am.roleid where " . $search['sql'];
$total = count($this->db->query($sql));
$pre_rows = 10;
$page = new page($total, $pre_rows);
$pageStr = (($this->p - 1) * $pre_rows) . "," . $pre_rows;
$sql .= ' limit ' . $pageStr;
$items = $this->db->query($sql);
$this->assign('page', $page);
$this->assign('items', $items);
$this->assign('search', $search['arr']);
$this->assign('default_password', $default_password);
$this->display('member/index');
}
public function add() {
if (request::isPost()) {
$data = $this->post_frm();
$data['password'] = password(get_config('default_password'));
$uid = db('member')->add($data);
$arr = array();
$arr['uid'] = $uid;
$arr['roleid'] = request::post('roleid', 0);
db('auth_role_member')->add($arr);
if (request::isAjax()) {
response::ajax(['code' => 200, 'msg' => '添加成功']);
} else {
showmsg('添加成功', '/admin/member');
}
} else {
$this->assign('postUrl', '/admin/member/add');
$this->assign('action', '添加');
$this->display('member/manage');
}
}
public function update() {
if (request::isPost()) {
$data = $this->post_frm();
$id = request::post('uid', 0);
db('member')->where(['uid' => $id])->update($data);
$arr = array();
$arr['roleid'] = request::post('roleid', 0);
db('auth_role_member')->where(['uid' => $id])->update($arr);
if (request::isAjax()) {
response::ajax(['code' => 200, 'msg' => '修改成功']);
} else {
showmsg('修改成功', '/admin/member');
}
} else {
$uid = request::get('id', 0);
$item = $this->db->table('member')->where(['uid' => $uid])->find();
$role_member = $this->db->table('authrolemember')->where(['uid' => $uid])->find();
$item['roleid'] = $role_member['roleid'];
$this->assign('postUrl', '/admin/member/update');
$this->assign('action', '修改');
$this->assign('item', $item);
$this->display('member/manage');
}
}
public function delete() {
$id = request::post('id', 0);
db('member')->where(['uid' => $id])->delete();
db('auth_role_member')->where(['uid' => $id])->delete();
db('tky_member_profile')->where(['uid' => $id])->delete();
if (request::isAjax()) {
response::ajax(['code' => 200, 'msg' => '删除成功!']);
} else {
showmsg('删除成功', '/admin/member');
}
}
public function batchremove() {
$optype = request::post('optype', 'del');
$ids = request::post('ids', []);
if ($optype == "del") {
db('member')->where('uid in(' . implode(",", $ids) . ')')->delete();
db('auth_role_member')->where('uid in(' . implode(",", $ids) . ')')->delete();
db('tky_member_profile')->where('uid in(' . implode(",", $ids) . ')')->delete();
if (request::isAjax()) {
response::ajax(['code' => 200, 'msg' => '修改成功']);
} else {
showmsg('删除成功', '/admin/member');
}
} else if ($optype == 'role') {
$roleid = request::post('roleid', '0');
if ($roleid != '0') {
for ($i = 0; $i <= count($ids); $i++) {
$tid = $ids[$i];
if (!is_null($tid)) {
$sql = "INSERT INTO `tky_auth_role_member` (`uid`, `roleid`) VALUES ('" . $tid . "', '" . $roleid . "');";
$this->dao->query($sql);
}
}
}
if (request::isAjax()) {
response::ajax(['code' => 200, 'msg' => '批量设置角色成功']);
} else {
showmsg('批量设置角色成功', '/admin/member');
}
}
}
private function search_frm() {
$search = request::get('search', []);
$search['roleid'] = request::get('roleid', 0);
$where = '1=1 and m.adminid=1 ';
if ($uid = trim($search['uid'])) {
$where .= "and m.uid = '{$uid}' ";
}
if ($roleid = trim($search['roleid'])) {
$where .= "and am.roleid = '{$roleid}' ";
}
if ($username = trim($search['username'])) {
$where .= "and (m.username like '%{$username}%' or m.email like '%{$username}%') ";
}
if ($score = trim($search['score'])) {
$where .= "and m.score = '{$score}' ";
}
if ($adminid = trim($search['adminid'])) {
$where .= "and m.adminid = '{$adminid}' ";
}
if ($status = trim($search['status'])) {
$where .= "and m.status = '{$status}' ";
}
if ($dateline = trim($search['dateline'])) {
$where .= "and m.dateline = '{$dateline}' ";
}
return [
'arr' => $search,
'sql' => $where
];
}
private function post_frm() {
$arr = array();
$arr['username'] = request::post('username', '');
$arr['email'] = request::post('email', '');
$arr['avatarstatus'] = request::post('avatarstatus', '0');
$arr['score'] = request::post('score', '0');
$arr['regip'] = request::getClientIp();
$arr['regdate'] = time();
$arr['lastloginip'] = request::getClientIp();
$arr['lastlogintime'] = time();
$arr['adminid'] = 1;
$arr['timeoffset'] = request::post('timeoffset', '');
$arr['status'] = 1;
$arr['dateline'] = time();
return $arr;
}
public function reset_password() {
$user_id = request::post('user_id', 0);
$user = db('member')->where(['uid' => $user_id])->find();
if (!$user) {
response::ajax(['code' => 301, 'msg' => '抱歉,该会员不存在']);
}
$default_password = password(get_config('default_password'));
$result = $this->db->table('member')->where(['uid' => $user_id])->update(['password' => $default_password]);
if ($result !== false) {
response::ajax(['code' => 200, 'msg' => '密码重置成功!']);
} else {
response::ajax(['code' => 500, 'msg' => '密码重置失败!']);
}
}
public function change_password() {
if (request::isPost()) {
$name = request::post('username', '');
$password = request::post('password', '');
$default_password = password($password);
$user = db('member')->where(['username' => $name])->find();
if ($user) {
$result = $this->db->table('member')->where(['username' => $name])->update(['password' => $default_password]);
if ($result !== false) {
response::ajax(['code' => 200, 'msg' => '更新成功!']);
} else {
response::ajax(['code' => 500, 'msg' => '更新失败!']);
}
} else {
response::ajax(['code' => 301, 'msg' => '抱歉,该会员不存在']);
}
} else {
$this->display('member/change_password');
}
}
}