VerifyService.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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\service\api\verify;
  12. use app\model\verify\Verifier;
  13. use app\model\verify\Verify;
  14. use app\service\core\verify\CoreVerifyService;
  15. use core\base\BaseApiService;
  16. /**
  17. * 核销服务层
  18. */
  19. class VerifyService extends BaseApiService
  20. {
  21. /**
  22. * 获取核销码(对应业务调用)
  23. * @param $type
  24. * @param $data = ['order_id' => , 'goods_id' => ]
  25. * @return string
  26. */
  27. public function getVerifyCode(string|int $type, array $data)
  28. {
  29. $site_id = !empty($data['site_id']) ? $data['site_id'] : 0;
  30. $list = (new CoreVerifyService())->create($site_id, $this->member_id, $type, $data);
  31. $temp = [];
  32. foreach($list as $item){
  33. $temp[] = [
  34. 'code' => $item,
  35. 'qrcode' => qrcode($item, '', [], $site_id, outfile: false)
  36. ];
  37. }
  38. return $temp;
  39. }
  40. /**
  41. * 获取核销信息
  42. * @param $code
  43. * @return array
  44. */
  45. public function getInfoByCode($code){
  46. return (new CoreVerifyService())->getInfoByCode($code);
  47. }
  48. /**
  49. * 核销
  50. * @param $code
  51. * @return bool
  52. */
  53. public function verify($code){
  54. return (new CoreVerifyService())->verify($code, $this->member_id);
  55. }
  56. /**
  57. * 校验是否是核销员
  58. * @return bool
  59. */
  60. public function checkVerifier(){
  61. $verifier = (new Verifier())->where([['member_id', '=', $this->member_id]])->findOrEmpty();
  62. if(!$verifier->isEmpty()) return true;
  63. return false;
  64. }
  65. /**
  66. * 获取核销员核销记录
  67. * @param $data
  68. * @return array
  69. * @throws \think\db\exception\DbException
  70. */
  71. public function getRecordsPageByVerifier(array $data){
  72. $field = '*';
  73. $search_model = (new Verify())->where([
  74. ['verifier_member_id', '=', $this->member_id]
  75. ])
  76. ->withSearch(['code', 'type', 'create_time', 'relate_tag', 'keyword'], $data)
  77. ->with([
  78. 'member' => function($query){
  79. $query->field('member_id, nickname, mobile, headimg');
  80. },
  81. 'site' => function($query){
  82. $query->field('site_id, site_name');
  83. },
  84. ])
  85. ->field($field)
  86. ->order('create_time desc')
  87. ->append(['type_name']);
  88. return $this->pageQuery($search_model);
  89. }
  90. /**
  91. * 获取记录详情
  92. * @param int $id
  93. * @return array
  94. */
  95. public function getRecordsDetailByVerifier(string|int $code){
  96. $field = '*';
  97. return (new Verify())->where([
  98. ['verifier_member_id', '=', $this->member_id],
  99. ['code', '=', $code]
  100. ])
  101. ->with([
  102. 'member' => function($query){
  103. $query->field('member_id, nickname, mobile, headimg');
  104. },
  105. 'site' => function($query){
  106. $query->field('site_id, site_name');
  107. },
  108. ])
  109. ->field($field)
  110. ->append(['type_name'])->findOrEmpty()->toArray();
  111. }
  112. }