## 員工賬號設置
>[info] 功能:
1,顯示數據:查詢 `shop_users` 員工數據表 顯示員工賬號
/*
*@desc 門店員工賬號- 根據登錄賬號信息獲取數據列表
*
*/
public function scopeDefaultWhere($query)
{
parent::scopeDefaultWhere($query);
$in = \cs\login::login_user(1);
if($in){
$query->whereIn('yf_shop_base_id',$in);
}
$wq = request_data('wq');
if($wq){
$query->where(function($query)use($wq){
$query->where('nickname', 'like', "%".$wq."%");
$query->orwhere('user', 'like', "%".$wq."%");
$query->orwhere('phone', 'like', "%".$wq."%");
});
}
$query->orderby('created','desc');
$shop_id = request_data('shop_id');
if($shop_id){
$query->where('yf_shop_base_id',$shop_id);
}
}
>[info] 2,插入數據:新建員工賬號 ,編輯數據:修改員工賬號信息
/*
* @desc 開啟事務 保存表單數據
*
*/
static function saveForm(){
try{
DB::transaction(function()
{
$data = post_data();
if($data['pwd']){
$data['pwd'] = password_hash($data['pwd'], PASSWORD_DEFAULT);
}
if($data['id']){
$info = login::recharge($data['user'],2,'shop_users',$data['id']);
if($info == false && $data['user']){
exit(json_encode(['status'=>0,'msg'=>__('該賬號已存在')]));
}
$num = self::where('yf_shop_base_id',$data['yf_shop_base_id'])
->where('id','!=',$data['id'])
->where('num' , '=' ,$data['num'])
->first();
if ($num ) {
exit(json_encode(['status'=>0,'msg'=>'員工編號必須唯一']));
}
$card = self::where('id','!=',$data['id'])
->where('id_card' , '=' ,$data['id_card'])
->first();
if ($card ) {
exit(json_encode(['status'=>0,'msg'=>'該身份證號碼已存在']));
}
if(!$data['pwd']){
unset($data['pwd']);
}
$model = self::find($data['id']);
}else{
$info = login::recharge($data['user'],1);
if($info == false && $data['user']){
exit(json_encode(['status'=>0,'msg'=>__('該賬號已存在')]));
}
if($data['yf_shop_base_id']){
$base = yf_shop_base::where('id',$data['yf_shop_base_id'])->first();
$shop_num = $base->shop_num; //允許的最大店員數
$shop_user_num = $base->shop_users->count(); //當前店員數
if($shop_user_num >= $shop_num){
exit(json_encode(['status'=>0,'msg'=>'員工賬號添加失敗,已超出最大店員數']));
}
}
//驗證員工編號
$num = self::where('yf_shop_base_id',$data['yf_shop_base_id'])
->where('num',$data['num'])
->first();
if($num){
exit(json_encode(['status'=>0,'msg'=>'員工編號必須唯一']));
}
$card = self::where('id_card',$data['id_card'])->first();
if($card){
exit(json_encode(['status'=>0,'msg'=>'該身份證號碼已存在']));
}
$data['created'] = time();
$model = new self;
}
$model->data($data)->save();
//插入到role_users表中
$role_all = new role_users;
$role_info = $role_all->where('user_id','=',$model->id)->first();
if($role_info->id){
$wula = $role_all->find($role_info->id);
}else{
$wula = $role_all;
}
$role_date['user_id'] = $model->id;
$role_date['role_id'] = post_data('role_id');
$wula->data($role_date)->save();
});
}catch(Exception $e){
exit(json_encode(['status'=>0,'msg'=>__($e->getMessage())]));
return false;
}
return true;
}
>[info]3,刪除數據:刪除員工賬號
/*
* @desc 刪除表單數據
*
*/
static function deleteForm($id){
$model = self::where('id',$id);
$model->delete();
}
>[info] 4,關聯`yf_shop_base` 員工賬號表 員工賬號隸屬哪家門店
/**
* @desc 獲取所屬店鋪信息
*/
public function yf_shop_base()
{
return $this->hasOne('models\yf_shop_base','id','yf_shop_base_id');
}