|
|
@@ -0,0 +1,84 @@
|
|
|
+<?php
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+// | Author: CRMEB Team <admin@crmeb.com>
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+declare (strict_types=1);
|
|
|
+
|
|
|
+namespace app\services\user;
|
|
|
+
|
|
|
+use app\dao\user\UserGiftQuotaDao;
|
|
|
+use app\services\BaseServices;
|
|
|
+use crmeb\exceptions\AdminException;
|
|
|
+use think\facade\Log;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 礼包额度服务
|
|
|
+ * Class UserGiftQuotaServices
|
|
|
+ * @package app\services\user
|
|
|
+ */
|
|
|
+class UserGiftQuotaServices extends \app\services\BaseServices
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * 礼包额度记录类型
|
|
|
+ * @var array
|
|
|
+ */
|
|
|
+ protected $incomeData = [
|
|
|
+ 'order_gift_quota' => [
|
|
|
+ 'title' => '购买礼包赠送额度',
|
|
|
+ 'type' => 'order_gift_quota',
|
|
|
+ 'mark' => '购买礼包商品消费{%pay_price%}元,赠送额度{%number%}',
|
|
|
+ 'status' => 1,
|
|
|
+ 'pm' => 1
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+
|
|
|
+ /**
|
|
|
+ * UserGiftQuotaServices constructor.
|
|
|
+ * @param UserGiftQuotaDao $dao
|
|
|
+ */
|
|
|
+ public function __construct(UserGiftQuotaDao $dao)
|
|
|
+ {
|
|
|
+ $this->dao = $dao;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 写入礼包额度记录
|
|
|
+ * @param string $type 写入类型
|
|
|
+ * @param int $uid
|
|
|
+ * @param int|string|array $number
|
|
|
+ * @param int|string $balance
|
|
|
+ * @param $linkId
|
|
|
+ * @return bool|mixed
|
|
|
+ */
|
|
|
+ public function income(string $type, int $uid, $number, $balance, $linkId)
|
|
|
+ {
|
|
|
+ $data = $this->incomeData[$type] ?? null;
|
|
|
+ if (!$data) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ $data['uid'] = $uid;
|
|
|
+ $data['balance'] = $balance ?? 0;
|
|
|
+ $data['link_id'] = $linkId;
|
|
|
+ if (is_array($number)) {
|
|
|
+ $key = array_keys($number);
|
|
|
+ $key = array_map(function ($item) {
|
|
|
+ return '{%' . $item . '%}';
|
|
|
+ }, $key);
|
|
|
+ $value = array_values($number);
|
|
|
+ $data['number'] = $number['number'] ?? 0;
|
|
|
+ $data['mark'] = str_replace($key, $value, $data['mark']);
|
|
|
+ } else {
|
|
|
+ $data['number'] = $number;
|
|
|
+ $data['mark'] = str_replace(['{%number%}'], $number, $data['mark']);
|
|
|
+ }
|
|
|
+ $data['add_time'] = time();
|
|
|
+
|
|
|
+ return $this->dao->save($data);
|
|
|
+ }
|
|
|
+}
|