203 lines
6.3 KiB
PHP
Executable File
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);
|
|
}
|
|
}
|