UserGiftQuotaServices.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types=1);
  12. namespace app\services\user;
  13. use app\dao\user\UserGiftQuotaDao;
  14. use app\services\BaseServices;
  15. use crmeb\exceptions\AdminException;
  16. use think\facade\Log;
  17. /**
  18. * 礼包额度服务
  19. * Class UserGiftQuotaServices
  20. * @package app\services\user
  21. */
  22. class UserGiftQuotaServices extends \app\services\BaseServices
  23. {
  24. /**
  25. * 礼包额度记录类型
  26. * @var array
  27. */
  28. protected $incomeData = [
  29. 'order_gift_quota' => [
  30. 'title' => '购买礼包赠送额度',
  31. 'type' => 'order_gift_quota',
  32. 'mark' => '购买礼包商品消费{%pay_price%}元,赠送额度{%number%}',
  33. 'status' => 1,
  34. 'pm' => 1
  35. ],
  36. ];
  37. /**
  38. * UserGiftQuotaServices constructor.
  39. * @param UserGiftQuotaDao $dao
  40. */
  41. public function __construct(UserGiftQuotaDao $dao)
  42. {
  43. $this->dao = $dao;
  44. }
  45. /**
  46. * 写入礼包额度记录
  47. * @param string $type 写入类型
  48. * @param int $uid
  49. * @param int|string|array $number
  50. * @param int|string $balance
  51. * @param $linkId
  52. * @return bool|mixed
  53. */
  54. public function income(string $type, int $uid, $number, $balance, $linkId)
  55. {
  56. $data = $this->incomeData[$type] ?? null;
  57. if (!$data) {
  58. return true;
  59. }
  60. $data['uid'] = $uid;
  61. $data['balance'] = $balance ?? 0;
  62. $data['link_id'] = $linkId;
  63. if (is_array($number)) {
  64. $key = array_keys($number);
  65. $key = array_map(function ($item) {
  66. return '{%' . $item . '%}';
  67. }, $key);
  68. $value = array_values($number);
  69. $data['number'] = $number['number'] ?? 0;
  70. $data['mark'] = str_replace($key, $value, $data['mark']);
  71. } else {
  72. $data['number'] = $number;
  73. $data['mark'] = str_replace(['{%number%}'], $number, $data['mark']);
  74. }
  75. $data['add_time'] = time();
  76. return $this->dao->save($data);
  77. }
  78. }