UserSpreadLogDao.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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\user;
  12. use app\common\dao\BaseDao;
  13. use app\common\model\BaseModel;
  14. use app\common\model\user\UserSpreadLog;
  15. class UserSpreadLogDao extends BaseDao
  16. {
  17. protected function getModel(): string
  18. {
  19. return UserSpreadLog::class;
  20. }
  21. /**
  22. * 添加推广关系记录
  23. *
  24. * 该方法用于创建一个新的推广关系记录。通过传入用户ID、推广用户ID、旧的推广用户ID以及可选的管理员ID,
  25. * 来建立或更新用户的推广关系。特别地,管理员ID用于标识该操作是否由管理员触发,默认为0表示非管理员操作。
  26. *
  27. * @param int $uid 用户ID,表示被推广的用户
  28. * @param int $spread_uid 推广用户ID,表示进行推广的用户
  29. * @param int $old_spread_uid 旧的推广用户ID,用于在更新推广关系时记录原先的推广人
  30. * @param int $admin_id 管理员ID,可选参数,表示该操作是否由管理员触发,默认为0
  31. */
  32. public function add($uid, $spread_uid, $old_spread_uid, $admin_id = 0)
  33. {
  34. // 使用compact函数创建一个新的推广关系记录,同时包含uid、spread_uid、admin_id和old_spread_uid
  35. $this->create(compact('uid', 'spread_uid', 'admin_id', 'old_spread_uid'));
  36. }
  37. /**
  38. * 根据条件搜索用户传播日志
  39. *
  40. * 本函数用于根据提供的条件查询用户传播日志。特别地,它允许通过用户ID来筛选结果,并且总是按照创建时间降序排序。
  41. *
  42. * @param array $where 查询条件,其中可能包含用户ID(uid)作为筛选条件。
  43. * @return \think\db\Query 用户传播日志的查询结果对象,尚未执行查询。
  44. */
  45. public function search($where)
  46. {
  47. // 获取数据库操作对象
  48. return UserSpreadLog::getDB()->when(isset($where['uid']) && $where['uid'] !== '', function ($query) use ($where) {
  49. // 如果条件中包含有效的用户ID,则添加用户ID的查询条件
  50. $query->where('uid', $where['uid']);
  51. })->order('create_time DESC'); // 按照创建时间降序排序查询结果
  52. }
  53. }