MerchantAppymentsDao.php 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\common\dao\system\merchant;
  12. use app\common\dao\BaseDao;
  13. use app\common\model\system\merchant\MerchantApplyments;
  14. class MerchantAppymentsDao extends BaseDao
  15. {
  16. protected function getModel(): string
  17. {
  18. return MerchantApplyments::class;
  19. }
  20. /**
  21. * 根据条件搜索数据。
  22. *
  23. * 本函数用于根据提供的条件数组搜索数据库中的记录。它支持多个条件,
  24. * 条件之间是逻辑与(AND)关系。每个条件只有在数组中存在且不为空时才会被应用。
  25. *
  26. * @param array $where 包含搜索条件的数组。数组的键是条件的字段名,值是条件的值。
  27. * 条件支持的字段包括:mer_id, uid, status, mer_applyments_id, date。
  28. * 其中date字段需要是一个特定格式的字符串,会被内部转换为对应的时间范围条件。
  29. * @return \Illuminate\Database\Query\Builder|static 返回构建好的查询构建器对象,可以进一步链式调用或执行查询。
  30. */
  31. public function search(array $where)
  32. {
  33. // 获取模型对应的数据库连接实例
  34. $query = $this->getModel()::getDB();
  35. // 如果条件数组中包含mer_id,且值不为空,则添加where条件筛选mer_id
  36. $query = $query->when(isset($where['mer_id']) && $where['mer_id'] !== '', function ($query) use ($where) {
  37. $query->where('mer_id', $where['mer_id']);
  38. });
  39. // 如果条件数组中包含uid,且值不为空,则添加where条件筛选uid
  40. $query = $query->when(isset($where['uid']) && $where['uid'] !== '', function ($query) use ($where) {
  41. $query->where('uid', $where['uid']);
  42. });
  43. // 如果条件数组中包含status,且值不为空,则添加where条件筛选status,并将值转换为整型
  44. $query = $query->when(isset($where['status']) && $where['status'] !== '', function ($query) use ($where) {
  45. $query->where('status', (int)$where['status']);
  46. });
  47. // 如果条件数组中包含mer_applyments_id,且值不为空,则添加where条件筛选mer_applyments_id
  48. $query = $query->when(isset($where['mer_applyments_id']) && $where['mer_applyments_id'] !== '', function ($query) use ($where) {
  49. $query->where('mer_applyments_id', $where['mer_applyments_id']);
  50. });
  51. // 如果条件数组中包含date,且值不为空,则调用getModelTime函数添加对应的时间范围条件
  52. $query = $query->when(isset($where['date']) && $where['date'] !== '', function ($query) use ($where) {
  53. getModelTime($query, $where['date']);
  54. });
  55. // 永久排除已删除的数据
  56. $query = $query->where('is_del', 0);
  57. // 返回构建好的查询对象
  58. return $query;
  59. }
  60. }