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();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |