coupon-admin/app/traits/account/ApplyStaffTrait.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();
}
}