join = 'left join member as m on u.id = m.user_id';
$userDB->where= 'u.id = '.$uid;
$userInfo = $userDB->find();
if($userInfo)
{
$this->userInfo = current($userInfo);
}
else
{
$this->member_list();
Util::showMessage("没有找到相关记录!");
exit;
}
}
$this->redirect('member_edit');
}
//保存会员信息
function member_save()
{
$user_id = IFilter::act(IReq::get('user_id'),'int');
$user_name = IFilter::act(IReq::get('username'));
$email = IFilter::act(IReq::get('email'));
$password = IFilter::act(IReq::get('password'));
$repassword = IFilter::act(IReq::get('repassword'));
$group_id = IFilter::act(IReq::get('group_id'),'int');
$truename = IFilter::act(IReq::get('true_name'));
//add by Scott Chen on 2017-11-03
$id_type = IFilter::act(IReq::get('id_type'));
$id_code = IFilter::act(IReq::get('id_code'));
$sex = IFilter::act(IReq::get('sex'),'int');
$telephone = IFilter::act(IReq::get('telephone'));
$mobile = IFilter::act(IReq::get('mobile'));
$province = IFilter::act(IReq::get('province'),'int');
$city = IFilter::act(IReq::get('city'),'int');
$area = IFilter::act(IReq::get('area'),'int');
$contact_addr = IFilter::act(IReq::get('contact_addr'));
$zip = IFilter::act(IReq::get('zip'));
$qq = IFilter::act(IReq::get('qq'));
$exp = IFilter::act(IReq::get('exp'),'int');
$point = IFilter::act(IReq::get('point'),'int');
$status = IFilter::act(IReq::get('status'),'int');
$_POST['area'] = "";
if($province && $city && $area)
{
$_POST['area'] = ",{$province},{$city},{$area},";
}
if(!$user_id && $password == '')
{
$this->setError('请输入密码!');
}
if($password != $repassword)
{
$this->setError('两次输入的密码不一致!');
}
//创建会员操作类
$userDB = new IModel("user");
$memberDB = new IModel("member");
if($userDB->getObj("username='".$user_name."' and id != ".$user_id))
{
$this->setError('用户名重复');
}
if($email && $memberDB->getObj("email='".$email."' and user_id != ".$user_id))
{
$this->setError('邮箱重复');
}
if($mobile && $memberDB->getObj("mobile='".$mobile."' and user_id != ".$user_id))
{
$this->setError('手机号码重复');
}
//add by Scott Chen on 2017-11-03
//id_type
if ($id_type != "1") {
return "证件类型目前只支持身份证";
}
if (IValidate::id_ex_18($id_code) == false) {
return "非法身份证号码";
}else{
$memberRow = $memberDB->getObj(" id_type='" . $id_type . "' and id_code='" . $id_code ."' and user_id != ".$user_id);
if($memberRow)
{
$this->setError('证件类型,证件号码重复');
}
}
//操作失败表单回填
if($errorMsg = $this->getError())
{
$this->userInfo = $_POST;
$this->redirect('member_edit',false);
Util::showMessage($errorMsg);
}
$member = array(
'email' => $email,
'true_name' => $truename,
//add by Scott Chen on 2017-11-03
'id_type' => $id_type,
'id_code' => $id_code,
'telephone' => $telephone,
'mobile' => $mobile,
'area' => $_POST['area'],
'contact_addr' => $contact_addr,
'qq' => $qq,
'sex' => $sex,
'zip' => $zip,
'exp' => $exp,
'point' => $point,
'group_id' => $group_id,
'status' => $status,
);
//添加新会员
if(!$user_id)
{
$user = array(
'username' => $user_name,
'password' => md5($password),
);
$userDB->setData($user);
$user_id = $userDB->add();
$member['user_id'] = $user_id;
$member['time'] = ITime::getDateTime();
$memberDB->setData($member);
$memberDB->add();
}
//编辑会员
else
{
$user = array(
'username' => $user_name,
);
//修改密码
if($password)
{
$user['password'] = md5($password);
}
$userDB->setData($user);
$userDB->update('id = '.$user_id);
$member_info = $memberDB->getObj('user_id='.$user_id);
//修改积分记录日志
if($point != $member_info['point'])
{
$ctrlType = $point > $member_info['point'] ? '增加' : '减少';
$diffPoint= $point-$member_info['point'];
$pointObj = new Point();
$pointConfig = array(
'user_id' => $user_id,
'point' => $diffPoint,
'log' => '管理员'.$this->admin['admin_name'].'将积分'.$ctrlType.$diffPoint.'积分',
);
$pointObj->update($pointConfig);
}
$memberDB->setData($member);
$memberDB->update("user_id = ".$user_id);
}
$this->redirect('member_list');
}
/**
* @brief 会员列表
*/
function member_list()
{
$search = IFilter::act(IReq::get('search'),'strict');
$keywords = IFilter::act(IReq::get('keywords'));
$where = ' 1 ';
if($search && $keywords)
{
$where .= " and $search like '%{$keywords}%' ";
}
$this->data['search'] = $search;
$this->data['keywords'] = $keywords;
$this->data['where'] = $where;
$tb_user_group = new IModel('user_group');
$data_group = $tb_user_group->query();
$group = array();
foreach($data_group as $value)
{
$group[$value['id']] = $value['group_name'];
}
$this->data['group'] = $group;
$this->setRenderData($this->data);
$this->redirect('member_list');
}
/**
* 用户余额管理页面
*/
function member_balance()
{
$this->layout = '';
$this->redirect('member_balance');
}
/**
* @brief 删除至回收站
*/
function member_reclaim()
{
$user_ids = IReq::get('check');
$user_ids = is_array($user_ids) ? $user_ids : array($user_ids);
$user_ids = IFilter::act($user_ids,'int');
if($user_ids)
{
$ids = implode(',',$user_ids);
if($ids)
{
$tb_member = new IModel('member');
$tb_member->setData(array('status'=>'2'));
$where = "user_id in (".$ids.")";
$tb_member->update($where);
}
}
$this->member_list();
}
//批量用户余额操作
function member_recharge()
{
$id = IFilter::act(IReq::get('check'),'int');
$balance = IFilter::act(IReq::get('balance'),'float');
$type = IFIlter::act(IReq::get('type')); //操作类型 recharge充值,withdraw提现金
$even = '';
if(!$id)
{
die(JSON::encode(array('flag' => 'fail','message' => '请选择要操作的用户')));
return;
}
//执行写入操作
$id = is_array($id) ? join(',',$id) : $id;
$memberDB = new IModel('member');
$memberData = $memberDB->query('user_id in ('.$id.')');
foreach($memberData as $value)
{
//用户余额进行的操作记入account_log表
$log = new AccountLog();
$config=array
(
'user_id' => $value['user_id'],
'admin_id' => $this->admin['admin_id'],
'event' => $type,
'num' => $balance,
);
$re = $log->write($config);
if($re == false)
{
die(JSON::encode(array('flag' => 'fail','message' => $log->error)));
}
}
die(JSON::encode(array('flag' => 'success')));
}
/**
* @brief 用户组添加
*/
function group_edit()
{
$gid = (int)IReq::get('gid');
//编辑会员等级信息 读取会员等级信息
if($gid)
{
$tb_user_group = new IModel('user_group');
$group_info = $tb_user_group->query("id=".$gid);
if(is_array($group_info) && ($info=$group_info[0]))
{
$this->data['group'] = array(
'group_id' => $info['id'],
'group_name'=> $info['group_name'],
'discount' => $info['discount'],
'minexp' => $info['minexp'],
'maxexp' => $info['maxexp']
);
}
else
{
$this->redirect('group_list',false);
Util::showMessage("没有找到相关记录!");
return;
}
}
$this->setRenderData($this->data);
$this->redirect('group_edit');
}
/**
* @brief 保存用户组修改
*/
function group_save()
{
$group_id = IFilter::act(IReq::get('group_id'),'int');
$maxexp = IFilter::act(IReq::get('maxexp'),'int');
$minexp = IFilter::act(IReq::get('minexp'),'int');
$discount = IFilter::act(IReq::get('discount'),'float');
$group_name = IFilter::act(IReq::get('group_name'));
$group = array(
'maxexp' => $maxexp,
'minexp' => $minexp,
'discount' => $discount,
'group_name' => $group_name
);
if($discount > 100)
{
$errorMsg = '折扣率不能大于100';
}
if($maxexp <= $minexp)
{
$errorMsg = '最大经验值必须大于最小经验值';
}
if(isset($errorMsg) && $errorMsg)
{
$group['group_id'] = $group_id;
$data = array($group);
$this->setRenderData($data);
$this->redirect('group_edit',false);
Util::showMessage($errorMsg);
exit;
}
$tb_user_group = new IModel("user_group");
$tb_user_group->setData($group);
if($group_id)
{
$affected_rows = $tb_user_group->update("id=".$group_id);
$this->redirect('group_list');
}
else
{
$tb_user_group->add();
$this->redirect('group_list');
}
}
/**
* @brief 删除会员组
*/
function group_del()
{
$group_ids = IReq::get('check');
$group_ids = is_array($group_ids) ? $group_ids : array($group_ids);
$group_ids = IFilter::act($group_ids,'int');
if($group_ids)
{
$ids = implode(',',$group_ids);
if($ids)
{
$tb_user_group = new IModel('user_group');
$where = "id in (".$ids.")";
$tb_user_group->del($where);
}
}
$this->redirect('group_list');
}
/**
* @brief 回收站
*/
function recycling()
{
$search = IReq::get('search');
$keywords = IReq::get('keywords');
$search_sql = IFilter::act($search,'strict');
$keywords = IFilter::act($keywords,'strict');
$where = ' 1 ';
if($search && $keywords)
{
$where .= " and $search_sql like '%{$keywords}%' ";
}
$this->data['search'] = $search;
$this->data['keywords'] = $keywords;
$this->data['where'] = $where;
$tb_user_group = new IModel('user_group');
$data_group = $tb_user_group->query();
$data_group = is_array($data_group) ? $data_group : array();
$group = array();
foreach($data_group as $value)
{
$group[$value['id']] = $value['group_name'];
}
$this->data['group'] = $group;
$this->setRenderData($this->data);
$this->redirect('recycling');
}
/**
* @brief 彻底删除会员
*/
function member_del()
{
$user_ids = IReq::get('check');
$user_ids = is_array($user_ids) ? $user_ids : array($user_ids);
$user_ids = IFilter::act($user_ids,'int');
if($user_ids)
{
$ids = implode(',',$user_ids);
if($ids)
{
$tb_member = new IModel('member');
$where = "user_id in (".$ids.")";
$tb_member->del($where);
$tb_user = new IModel('user');
$where = "id in (".$ids.")";
$tb_user->del($where);
$logObj = new log('db');
$logObj->write('operation',array("管理员:".$this->admin['admin_name'],"删除了用户","被删除的用户ID为:".$ids));
}
}
$this->redirect('member_list');
}
/**
* @brief 从回收站还原会员
*/
function member_restore()
{
$user_ids = IReq::get('check');
$user_ids = is_array($user_ids) ? $user_ids : array($user_ids);
if($user_ids)
{
$user_ids = IFilter::act($user_ids,'int');
$ids = implode(',',$user_ids);
if($ids)
{
$tb_member = new IModel('member');
$tb_member->setData(array('status'=>'1'));
$where = "user_id in (".$ids.")";
$tb_member->update($where);
}
}
$this->redirect('recycling');
}
//[提现管理] 删除
function withdraw_del()
{
$id = IFilter::act(IReq::get('id'));
if($id)
{
$id = IFilter::act($id,'int');
$withdrawObj = new IModel('withdraw');
if(is_array($id))
{
$idStr = join(',',$id);
$where = ' id in ('.$idStr.')';
}
else
{
$where = 'id = '.$id;
}
$withdrawObj->del($where);
$this->redirect('withdraw_recycle');
}
else
{
$this->redirect('withdraw_recycle',false);
Util::showMessage('请选择要删除的数据');
}
}
//[提现管理] 回收站 删除,恢复
function withdraw_update()
{
$id = IFilter::act( IReq::get('id') , 'int' );
$type = IReq::get('type') ;
if(!empty($id))
{
$withdrawObj = new IModel('withdraw');
$is_del = ($type == 'res') ? '0' : '1';
$dataArray = array(
'is_del' => $is_del
);
if(is_array($id))
{
$idStr = join(',',$id);
$where = ' id in ('.$idStr.')';
}
else
{
$where = 'id = '.$id;
}
$dataArray = array(
'is_del' => $is_del,
);
$withdrawObj->setData($dataArray);
$withdrawObj->update($where);
$this->redirect('withdraw_list');
}
else
{
if($type == 'del')
{
$this->redirect('withdraw_list',false);
}
else
{
$this->redirect('withdraw_recycle',false);
}
Util::showMessage('请选择要删除的数据');
}
}
//[提现管理] 详情展示
function withdraw_detail()
{
$id = IFilter::act( IReq::get('id'),'int' );
if($id)
{
$withdrawObj = new IModel('withdraw');
$where = 'id = '.$id;
$this->withdrawRow = $withdrawObj->getObj($where);
$userDB = new IModel('user as u,member as m');
$this->userRow = $userDB->getObj('u.id = m.user_id and u.id = '.$this->withdrawRow['user_id']);
$this->redirect('withdraw_detail',false);
}
else
{
$this->redirect('withdraw_list');
}
}
//[提现管理] 修改提现申请的状态
function withdraw_status()
{
$id = IFilter::act( IReq::get('id'),'int');
$re_note = IFilter::act( IReq::get('re_note'),'string');
$status = IFilter::act(IReq::get('status'),'int');
if($id && $status)
{
$withdrawObj = new IModel('withdraw');
//提现成功
if($status == 2)
{
$withdrawRow = $withdrawObj->getObj('id = '.$id);
//用户余额进行的操作记入account_log表
$log = new AccountLog();
$config = array
(
'user_id' => $withdrawRow['user_id'],
'admin_id' => $this->admin['admin_id'],
'event' => "withdraw",
'num' => $withdrawRow['amount'],
);
$result = $log->write($config);
if($result == false)
{
$this->withdraw_detail();
Util::showMessage($log->error);
}
}
$dataArray = array(
're_note'=> $re_note,
'status' => $status,
);
$withdrawObj->setData($dataArray);
$where = "`id`= {$id} AND `status` = 0";
$withdrawObj->update($where);
//管理员操作日志
$logObj = new log('db');
$logObj->write('operation',array("管理员:".$this->admin['admin_name'],"修改了提现申请","ID值为:".$id));
$this->withdraw_detail();
Util::showMessage("更新成功");
}
else
{
$this->redirect('withdraw_list');
}
}
/**
* @brief 商家修改页面
*/
public function seller_edit()
{
$seller_id = IFilter::act(IReq::get('id'),'int');
//修改页面
if($seller_id)
{
$sellerDB = new IModel('seller');
$this->sellerRow = $sellerDB->getObj('id = '.$seller_id);
}
$this->redirect('seller_edit');
}
/**
* @brief 商户的增加动作
*/
public function seller_add()
{
$seller_id = IFilter::act(IReq::get('id'),'int');
$seller_name = IFilter::act(IReq::get('seller_name'));
$email = IFilter::act(IReq::get('email'));
$password = IFilter::act(IReq::get('password'));
$repassword = IFilter::act(IReq::get('repassword'));
$truename = IFilter::act(IReq::get('true_name'));
$phone = IFilter::act(IReq::get('phone'));
$mobile = IFilter::act(IReq::get('mobile'));
$province = IFilter::act(IReq::get('province'),'int');
$city = IFilter::act(IReq::get('city'),'int');
$area = IFilter::act(IReq::get('area'),'int');
$cash = IFilter::act(IReq::get('cash'),'float');
$is_vip = IFilter::act(IReq::get('is_vip'),'int');
$is_lock = IFilter::act(IReq::get('is_lock'),'int');
$address = IFilter::act(IReq::get('address'));
$account = IFilter::act(IReq::get('account'));
$server_num = IFilter::act(IReq::get('server_num'));
$home_url = IFilter::act(IReq::get('home_url'));
$sort = IFilter::act(IReq::get('sort'),'int');
if(!$seller_id && $password == '')
{
$errorMsg = '请输入密码!';
}
if($password != $repassword)
{
$errorMsg = '两次输入的密码不一致!';
}
//创建商家操作类
$sellerDB = new IModel("seller");
if($sellerDB->getObj("seller_name = '{$seller_name}' and id != {$seller_id}"))
{
$errorMsg = "登录用户名重复";
}
else if($sellerDB->getObj("true_name = '{$truename}' and id != {$seller_id}"))
{
$errorMsg = "商户真实全程重复";
}
//操作失败表单回填
if(isset($errorMsg))
{
$this->sellerRow = $_POST;
$this->redirect('seller_edit',false);
Util::showMessage($errorMsg);
}
//待更新的数据
$sellerRow = array(
'true_name' => $truename,
'account' => $account,
'phone' => $phone,
'mobile' => $mobile,
'email' => $email,
'address' => $address,
'is_vip' => $is_vip,
'is_lock' => $is_lock,
'cash' => $cash,
'province' => $province,
'city' => $city,
'area' => $area,
'server_num'=> $server_num,
'home_url' => $home_url,
'sort' => $sort,
);
//附件上传$_FILE
if($_FILES)
{
$uploadObj = new PhotoUpload();
$uploadObj->setIterance(false);
$photoInfo = $uploadObj->run();
//商户资质上传
if(isset($photoInfo['paper_img']['img']) && file_exists($photoInfo['paper_img']['img']))
{
$sellerRow['paper_img'] = $photoInfo['paper_img']['img'];
}
//logo图片处理
if(isset($photoInfo['logo']['img']) && file_exists($photoInfo['logo']['img']))
{
$sellerRow['logo'] = $photoInfo['logo']['img'];
}
}
//添加新会员
if(!$seller_id)
{
$sellerRow['seller_name'] = $seller_name;
$sellerRow['password'] = md5($password);
$sellerRow['create_time'] = ITime::getDateTime();
$sellerDB->setData($sellerRow);
$sellerDB->add();
}
//编辑会员
else
{
//修改密码
if($password)
{
$sellerRow['password'] = md5($password);
}
$sellerDB->setData($sellerRow);
$sellerDB->update("id = ".$seller_id);
}
$this->redirect('seller_list');
}
/**
* @brief 商户的删除动作
*/
public function seller_del()
{
$id = IFilter::act(IReq::get('id'),'int');
$sellerDB = new IModel('seller');
$data = array('is_del' => 1);
$sellerDB->setData($data);
if(is_array($id))
{
$sellerDB->update('id in ('.join(",",$id).')');
}
else
{
$sellerDB->update('id = '.$id);
}
$this->redirect('seller_list');
}
/**
* @brief 商户的回收站删除动作
*/
public function seller_recycle_del()
{
$id = IFilter::act(IReq::get('id'),'int');
$sellerDB = new IModel('seller');
$goodsDB = new IModel('goods');
$merch_ship_infoDB = new IModel('merch_ship_info');
$specDB = new IModel('spec');
if(is_array($id))
{
$id = join(",",$id);
}
$sellerDB->del('id in ('.$id.')');
$goodsDB->del('seller_id in ('.$id.')');
$merch_ship_infoDB->del('seller_id in ('.$id.')');
$specDB->del('seller_id in ('.$id.')');
$this->redirect('seller_recycle_list');
}
/**
* @brief 商户的回收站恢复动作
*/
public function seller_recycle_restore()
{
$id = IFilter::act(IReq::get('id'),'int');
$sellerDB = new IModel('seller');
$data = array('is_del' => 0);
$sellerDB->setData($data);
if(is_array($id))
{
$sellerDB->update('id in ('.join(",",$id).')');
}
else
{
$sellerDB->update('id = '.$id);
}
$this->redirect('seller_recycle_list');
}
//商户状态ajax
public function ajax_seller_lock()
{
$id = IFilter::act(IReq::get('id'));
$lock = IFilter::act(IReq::get('lock'));
$sellerObj = new IModel('seller');
$sellerObj->setData(array('is_lock' => $lock));
$sellerObj->update("id = ".$id);
//短信通知状态修改
$sellerRow = $sellerObj->getObj('id = '.$id);
if(isset($sellerRow['mobile']) && $sellerRow['mobile'])
{
$result = $lock == 0 ? "正常" : "锁定";
$content = smsTemplate::sellerCheck(array('{result}' => $result));
$result = Hsms::send($sellerRow['mobile'],$content,0);
}
}
/**
* 筛选用户
*/
public function filter_user()
{
$where = array();
$userIds = '';
$search = IFilter::act(IReq::get('search'),'strict');
$search = $search ? $search : array();
foreach($search as $key => $val)
{
if($val)
{
$where[] = $key.'"'.$val.'"';
}
}
//有筛选条件
if($where)
{
$userDB = new IQuery('user as u');
$userDB->join = 'left join member as m on u.id = m.user_id';
$userDB->fields= 'u.id';
$userDB->where = join(" and ",$where);
$userData = $userDB->find();
$tempArray = array();
foreach($userData as $key => $item)
{
$tempArray[] = $item['id'];
}
$userIds = join(',',$tempArray);
if(!$userIds)
{
die('');
}
}
die('');
}
/**
* 筛选商户
*/
public function filter_seller()
{
$where = array();
$sellerIds = '';
$search = IFilter::act(IReq::get('search'),'strict');
$search = $search ? $search : array();
foreach($search as $key => $val)
{
if($val)
{
$where[] = $key.'"'.$val.'"';
}
}
//有筛选条件
if($where)
{
$sellerDB = new IQuery('seller');
$sellerDB->fields= 'id';
$sellerDB->where = join(" and ",$where);
$sellerData = $sellerDB->find();
$tempArray = array();
foreach($sellerData as $key => $item)
{
$tempArray[] = $item['id'];
}
$sellerIds = join(',',$tempArray);
if(!$sellerIds)
{
die('');
}
}
die('');
}
}