StaffsDao.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace app\common\dao\store\staff;
  3. use app\common\dao\BaseDao;
  4. use app\common\model\store\staff\Staffs;
  5. use think\db\exception\DbException;
  6. class StaffsDao extends BaseDao
  7. {
  8. protected function getModel(): string
  9. {
  10. return Staffs::class;
  11. }
  12. /**
  13. * 检查指定商户ID和ID组合是否存在对应的记录。
  14. *
  15. * 本函数用于查询数据库中是否存在特定商户ID和ID组合的记录,
  16. * 其中ID通常代表某个实体的唯一标识,而mer_id则表示该实体所属的商户ID。
  17. * 函数通过计算符合条件的记录数量来判断记录是否存在,如果数量大于0,则表示存在。
  18. *
  19. * @param int $merId 商户ID,用于限定查询的商户范围。
  20. * @param int $id 需要查询的ID,用于指定具体的实体。
  21. * @return bool 如果存在符合条件的记录,则返回true,否则返回false。
  22. * @throws DbException
  23. */
  24. public function merExists(int $merId, int $id)
  25. {
  26. return Staffs::getDB()->where($this->getPk(), $id)->where('mer_id', $merId)->count($this->getPk()) > 0;
  27. }
  28. public function search(array $where)
  29. {
  30. return Staffs::getDB()
  31. ->when(isset($where['status']) && $where['status'] !== '', function ($query) use ($where) {
  32. $query->where('status', $where['status']);
  33. })->when(isset($where['name']) && $where['name'] !== '', function ($query) use ($where) {
  34. $query->whereLike('name', "%{$where['name']}%");
  35. })->when(isset($where['mer_id']) && $where['mer_id'] !== '', function ($query) use ($where) {
  36. $query->where('mer_id', $where['mer_id']);
  37. })->when(isset($where['uid']) && $where['uid'] !== '', function ($query) use ($where) {
  38. $query->where('uid', $where['uid']);
  39. })->when(isset($where['phone']) && $where['phone'] !== '', function ($query) use ($where) {
  40. $query->whereLike('phone', "%{$where['phone']}%");
  41. })->when(isset($where['staff_id']) && $where['staff_id'] !== '', function ($query) use ($where) {
  42. $query->where('staffs_id', $where['staff_id']);
  43. });
  44. }
  45. public function getOnlyTrashed(array $where)
  46. {
  47. return Staffs::getDB()->onlyTrashed()
  48. ->when(isset($where['mer_id']) && $where['mer_id'] !== '', function ($query) use ($where) {
  49. $query->where('mer_id', $where['mer_id']);
  50. })->when(isset($where['uid']) && $where['uid'] !== '', function ($query) use ($where) {
  51. $query->where('uid', $where['uid']);
  52. });
  53. }
  54. }