Verify.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\model\verify;
  12. use app\dict\verify\VerifyDict;
  13. use app\model\member\Member;
  14. use app\model\site\Site;
  15. use core\base\BaseModel;
  16. use think\db\Query;
  17. use think\model\relation\HasOne;
  18. /**
  19. * 核销记录模型
  20. * Class Poster
  21. * @package app\model\verify
  22. */
  23. class Verify extends BaseModel
  24. {
  25. /**
  26. * 数据表主键
  27. * @var string
  28. */
  29. protected $pk = 'id';
  30. /**
  31. * 模型名称
  32. * @var string
  33. */
  34. protected $name = 'verify';
  35. // 设置json类型字段
  36. protected $json = [ 'data' , 'value'];
  37. // 设置JSON数据返回数组
  38. protected $jsonAssoc = true;
  39. public function member() {
  40. return $this->hasOne(Member::class, 'member_id', 'verifier_member_id');
  41. }
  42. /**
  43. * 站点
  44. * @return HasOne
  45. */
  46. public function site()
  47. {
  48. return $this->hasOne(Site::class, 'site_id', 'site_id');
  49. }
  50. /**
  51. * 核销码搜索
  52. * @param $query
  53. * @param $value
  54. * @param $data
  55. */
  56. public function searchCodeAttr(Query $query, $value, $data)
  57. {
  58. if ($value != '') {
  59. $query->whereLike('code', '%'.$value.'%');
  60. }
  61. }
  62. /**
  63. * 关键词搜索
  64. * @param $query
  65. * @param $value
  66. * @param $data
  67. */
  68. public function searchKeywordAttr(Query $query, $value, $data)
  69. {
  70. if ($value != '') {
  71. $query->whereLike('code|body', '%' . $value . '%');
  72. }
  73. }
  74. /**
  75. * 业务id搜索
  76. * @param $query
  77. * @param $value
  78. * @param $data
  79. * @return void
  80. */
  81. public function searchRelateTagAttr($query, $value, $data)
  82. {
  83. if ($value) {
  84. $query->where('relate_tag', '=', $value);
  85. }
  86. }
  87. /**
  88. * 核销员
  89. * @param $query
  90. * @param $value
  91. * @param $data
  92. * @return void
  93. */
  94. public function searchVerifierMemberIdAttr($query, $value, $data)
  95. {
  96. if ($value) {
  97. $query->where('verifier_member_id', '=', $value);
  98. }
  99. }
  100. /**
  101. * 核销类型搜索
  102. * @param $query
  103. * @param $value
  104. * @param $data
  105. */
  106. public function searchTypeAttr($query, $value, $data)
  107. {
  108. if ($value) {
  109. $query->where('type', '=', $value);
  110. }
  111. }
  112. /**
  113. * 创建时间搜索器
  114. * @param Query $query
  115. * @param $value
  116. * @param $data
  117. */
  118. public function searchCreateTimeAttr(Query $query, $value, $data)
  119. {
  120. $start_time = empty($value[0]) ? 0 : strtotime($value[0]);
  121. $end_time = empty($value[1]) ? 0 : strtotime($value[1]);
  122. if ($start_time > 0 && $end_time > 0) {
  123. $query->whereBetweenTime('create_time', $start_time, $end_time);
  124. } else if ($start_time > 0 && $end_time == 0) {
  125. $query->where([['create_time', '>=', $start_time]]);
  126. } else if ($start_time == 0 && $end_time > 0) {
  127. $query->where([['create_time', '<=', $end_time]]);
  128. }
  129. }
  130. /**
  131. * 核销类型转换
  132. * @param $value
  133. * @return void
  134. */
  135. public function getTypeNameAttr($value, $data) {
  136. if (empty($data['type']))
  137. return '';
  138. return VerifyDict::getType()[$data['type']]['name'] ?? '';
  139. }
  140. }