108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace app\traits\account; | ||
|  | 
 | ||
|  | use app\model\Account; | ||
|  | use app\model\ApplyStaff; | ||
|  | 
 | ||
|  | trait ApplyStaffTrait | ||
|  | { | ||
|  |     /** | ||
|  |      * 获取申请员工记录 | ||
|  |      * @param $userCode | ||
|  |      * @return ApplyStaff|array|\think\Model|null | ||
|  |      * @throws \think\db\exception\DataNotFoundException | ||
|  |      * @throws \think\db\exception\DbException | ||
|  |      * @throws \think\db\exception\ModelNotFoundException | ||
|  |      */ | ||
|  |     public function getApplyStaffByUserCode($userCode) | ||
|  |     { | ||
|  |         return ApplyStaff::with(["business","account"])->where("user_code",$userCode)->find(); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 获取指定商家申请员工记录 | ||
|  |      * @param $userCode | ||
|  |      * @return ApplyStaff|array|\think\Model|null | ||
|  |      * @throws \think\db\exception\DataNotFoundException | ||
|  |      * @throws \think\db\exception\DbException | ||
|  |      * @throws \think\db\exception\ModelNotFoundException | ||
|  |      */ | ||
|  |     public function getApplyStaffByUserCodeAndBusinessCode($userCode,$businessCode) | ||
|  |     { | ||
|  |         return ApplyStaff::with(["business","account"])->where("user_code",$userCode)->where("business_code",$businessCode)->find(); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 创建一个加入员工申请 | ||
|  |      * @param $userCode | ||
|  |      * @param $businessCode | ||
|  |      */ | ||
|  |     public function createApplyStaff($userCode,$businessCode) | ||
|  |     { | ||
|  |         $data = [ | ||
|  |             "user_code"=>$userCode, | ||
|  |             "business_code"=>$businessCode, | ||
|  |             "status"=>ApplyStaff::status_default, | ||
|  |             "create_time"=>date("Y-m-d H:i:s"), | ||
|  |         ]; | ||
|  |         ApplyStaff::create($data); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 获取商家的员工列表 | ||
|  |      * @param $businessCode | ||
|  |      * @param $mainCode | ||
|  |      * @return Account | ||
|  |      */ | ||
|  |     public function getStaffListByBusinessCode($businessCode,$mainCode,$keyword) | ||
|  |     { | ||
|  |         $where = [ | ||
|  |             ["type","=",Account::type_staff], | ||
|  |             ["main_code","=",$mainCode], | ||
|  |             ["business_code","=",$businessCode], | ||
|  |         ]; | ||
|  |         if(!empty($keyword)){ | ||
|  |             $where [] = ["nick_name","like","%{$keyword}%"] ; | ||
|  |         } | ||
|  |         $field = [ | ||
|  |             "nick_name as nickName", | ||
|  |             "avatar_url as avatarUrl", | ||
|  |             "gender", | ||
|  |             "user_code", | ||
|  |         ]; | ||
|  |         return Account::where($where)->field($field)->select()->toArray(); | ||
|  |     } | ||
|  |     /** | ||
|  |      * 获取商家的员工申请列表 | ||
|  |      * @param $businessCode | ||
|  |      * @param $mainCode | ||
|  |      * @return Account | ||
|  |      */ | ||
|  |     public function getApplyStaffListByBusinessCode($businessCode,$keyword) | ||
|  |     { | ||
|  |         $where = [ | ||
|  |             ["a.business_code","=",$businessCode], | ||
|  |             ["a.status","=",ApplyStaff::status_default], | ||
|  |         ]; | ||
|  | 
 | ||
|  |         if(!empty($keyword)){ | ||
|  |             $where[] = ["b.nick_name","like","%{$keyword}%"] ; | ||
|  |         } | ||
|  |         $field = [ | ||
|  |             "b.nick_name as nickName", | ||
|  |             "b.avatar_url as avatarUrl", | ||
|  |             "b.gender", | ||
|  |             "b.user_code", | ||
|  |             "a.create_time", | ||
|  |         ]; | ||
|  |         return ApplyStaff::alias("a") | ||
|  |             ->join("account b","a.user_code = b.user_code") | ||
|  |             ->where($where) | ||
|  |             ->field($field) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  |     } | ||
|  | } |