2019-09-06 23:53:10 +08:00

203 lines
6.3 KiB
PHP
Executable File

<?php
namespace wstmart\home\model;
use think\Db;
/**
* ============================================================================
* 门店管理员类
*/
class ShopUsers extends Base{
/**
* 角色列表
*/
public function pageQuery(){
$shopId = (int)session('WST_USER.shopId');
$userName = input("userName/s");
$where = ["s.shopId"=>$shopId,"s.dataFlag"=>1];
if($userName != ""){
$where["loginName"] = ["like","%".$userName."%"];
}
$page = $this->alias('s')
->join("__SHOP_ROLES__ r","s.roleId=r.id","LEFT")
->join("__USERS__ u", "u.userId=s.userId and u.dataFlag=1")
->field('s.id,s.shopId,s.roleId,u.userName,u.loginName,u.createTime,u.userStatus,r.roleName')
->where($where)
->paginate(input('pagesize/d'))->toArray();
return $page;
}
/**
* 根据id获取店铺用户
*/
public function getById(){
$id = (int)input('id');
$shopId = (int)session('WST_USER.shopId');
$user = $this->alias('s')
->join("__SHOP_ROLES__ r","s.roleId=r.id","LEFT")
->join("__USERS__ u", "u.userId=s.userId and u.dataFlag=1")
->field('s.id,s.shopId,s.roleId,u.userName,u.loginName,u.createTime,u.userStatus,r.roleName')
->where(["s.id"=>$id,"s.shopId"=>$shopId,"s.dataFlag"=>1])
->find();
return $user;
}
/**
* 新增店铺用户
*/
public function add(){
$data = array();
$roleId = (int)input("roleId");
$data['loginName'] = input("post.loginName");
$data['loginPwd'] = input("post.loginPwd");
$data['reUserPwd'] = input("post.reUserPwd");
$loginName = $data['loginName'];
if($roleId<=0){
return WSTReturn('非法操作');
}
//检测账号是否存在
$crs = WSTCheckLoginKey($loginName);
if($crs['status']!=1)return $crs;
$decrypt_data = WSTRSA($data['loginPwd']);
$decrypt_data2 = WSTRSA($data['reUserPwd']);
if($decrypt_data['status']==1 && $decrypt_data2['status']==1){
$data['loginPwd'] = $decrypt_data['data'];
$data['reUserPwd'] = $decrypt_data2['data'];
}else{
return WSTReturn('新增失败');
}
if($data['loginPwd']!=$data['reUserPwd']){
return WSTReturn("两次输入密码不一致!");
}
foreach ($data as $v){
if($v ==''){
return WSTReturn("信息不完整!");
}
}
if($loginName=='')return WSTReturn("新增失败!");//分派不了登录名
unset($data['reUserPwd']);
//检测账号,邮箱,手机是否存在
$data["loginSecret"] = rand(1000,9999);
$data['loginPwd'] = md5($data['loginPwd'].$data['loginSecret']);
$data['userName'] = input("post.userName");
$data['userQQ'] = "";
$data['userScore'] = 0;
$data['createTime'] = date('Y-m-d H:i:s');
$data['dataFlag'] = 1;
$data['userType'] = 1;
Db::startTrans();
try{
$userId = Db::name("users")->insertGetId($data);
if(false !== $userId){
//添加门店用户
$shopId = (int)session('WST_USER.shopId');
$data = array();
$data["shopId"] = $shopId;
$data["userId"] = $userId;
$data["roleId"] = (int)input("roleId");
Db::name('shop_users')->insert($data);
$user = model("common/Users")->get($userId);
//注册成功后执行钩子
hook('afterUserRegist',['user'=>$user]);
//发送消息
$tpl = WSTMsgTemplates('USER_REGISTER');
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
$find = ['${LOGIN_NAME}','${MALL_NAME}'];
$replace = [$user['loginName'],WSTConf('CONF.mallName')];
WSTSendMsg($userId,str_replace($find,$replace,$tpl['tplContent']),['from'=>0,'dataId'=>0]);
}
Db::commit();
return WSTReturn("新增成功",1);
}
}catch (\Exception $e) {
Db::rollback();errLog($e);
}
return WSTReturn("新增失败!");
}
/**
* 修改店铺用户
*/
public function edit(){
$shopId = (int)session('WST_USER.shopId');
Db::startTrans();
try{
$data = array();
$roleId = (int)input("post.roleId");
$id = (int)input("post.id");
$newPass = input("post.newPass/s");
if($newPass!=""){
$decrypt_data = WSTRSA($newPass);
if($decrypt_data['status']==1){
$newPass = $decrypt_data['data'];
}else{
return WSTReturn('修改失败');
}
if(!$newPass){
return WSTReturn('密码不能为空',-1);
}
$roleUser = $this->where(["id"=>$id,"shopId"=>$shopId])->find();
$userId = $roleUser["userId"];
$rs = model("users")->where(["userId"=>$userId])->find();
//核对密码
$oldPass = input("post.oldPass");
$decrypt_data2 = WSTRSA($oldPass);
if($decrypt_data2['status']==1){
$oldPass = $decrypt_data2['data'];
}else{
return WSTReturn('修改失败');
}
if($rs['loginPwd']==md5($oldPass.$rs['loginSecret'])){
$data["loginPwd"] = md5($newPass.$rs['loginSecret']);
$rs = model("users")->update($data,['userId'=>$userId]);
if(false !== $rs){
$this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update(["roleId"=>$roleId]);
hook("afterEditPass",["userId"=>$userId]);
}else{
return WSTReturn("修改失败", -1);
}
Db::commit();
return WSTReturn("修改成功", 1);
}else{
return WSTReturn('原始密码错误',-1);
}
}else{
$this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update(["roleId"=>$roleId]);
Db::commit();
return WSTReturn("修改成功", 1);
}
}catch (\Exception $e) {
Db::rollback();errLog($e);
}
}
/**
* 删除店铺用户
*/
public function del(){
$shopId = (int)session('WST_USER.shopId');
$id = input('post.id/d');
$data = [];
$data['dataFlag'] = -1;
Db::startTrans();
try{
$role = $this->where(["id"=>$id,"shopId"=>$shopId])->field("userId,id")->find();
$result = $this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update($data);
if(false !== $result){
Db::name("users")->where(["userId"=>$role["userId"]])->update(["userType"=>0]);
return WSTReturn("删除成功", 1);
}
}catch (\Exception $e) {
Db::rollback();errLog($e);
}
return WSTReturn('删除失败',-1);
}
}