diff --git a/app/controller/api/server/Store.php b/app/controller/api/server/Store.php index c20b2392..d1d7d001 100644 --- a/app/controller/api/server/Store.php +++ b/app/controller/api/server/Store.php @@ -6,6 +6,7 @@ use app\common\model\store\consumption\StoreConsumption; use app\common\model\store\consumption\StoreConsumptionUser; use app\common\model\system\merchant\FinancialRecord; use app\common\model\system\merchant\Merchant; +use app\common\model\user\UserBill; use app\controller\api\Common; use crmeb\basic\BaseController; use think\App; @@ -126,6 +127,8 @@ class Store extends BaseController $saleFinishRate = bcmul(min($saleFinishRate, 1), 100, 0); $purchaseFinishRate = $purchaseTarget <= 0 ? 0 : bcdiv($merchant['purchase_amount'], $purchaseTarget, 2); $purchaseFinishRate = bcmul(min($purchaseFinishRate, 1), 100, 0); + $springSubsidyRate = $purchaseTarget <= 0 ? 0 : bcdiv($merchant['purchase_amount'], $purchaseTarget, 2); + $springSubsidyRate = bcmul(min($springSubsidyRate, 1), 100, 0); return app('json')->success([ 'subsidy_amount' => empty($subsidyAmount) ? '0.00' : $subsidyAmount, 'subsidy_status' => $saleFinishRate >= 100 && $purchaseFinishRate >= 100, @@ -134,8 +137,53 @@ class Store extends BaseController 'sale_finish_rate' => $saleFinishRate, 'purchase_target' => $purchaseTarget, 'purchase_amount' => $merchant['purchase_amount'], - 'purchase_finish_rate' => $purchaseFinishRate + 'purchase_finish_rate' => $purchaseFinishRate, + 'spring_subsidy' => $saleTarget, + 'spring_subsidy_amount' => $merchant['purchase_amount'], + 'spring_subsidy_rate' => $springSubsidyRate, ]); } + /** + * 红包获取记录 + * @return mixed + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public function subsidyRecord() + { + $userId = $this->request->uid(); + $type = $this->request->get('type', 1); + $page = $this->request->get('page', 1); + $limit = $this->request->get('limit', 10); + if ($type == 1) { + $couponType = StoreConsumption::TYPE_RECHARGE; + } else { + $couponType = StoreConsumption::TYPE_SALE_SUBSIDY; + } + $couponId = StoreConsumption::where('type', $couponType)->value('coupon_id'); + $totalAmount = StoreConsumptionUser::where('uid', $userId) + ->whereIn('coupon_id', $couponId) + ->where('status', StoreConsumptionUser::STATUS_UNUSED) + ->sum('balance'); + $query = UserBill::field('link_id,create_time,number coupon_price,mark,extra,status') + ->where('uid', $userId) + ->where('category', 'red_pack') + ->where('status', 1) + ->whereRaw("extra->'$.coupon_id'=" . $couponId); + $count = $query->count(); + $record = $query->page($page)->limit($limit)->select()->toArray(); + foreach ($record as &$item) { + $item['order_amount'] = 0; + if (mb_strpos($item['mark'], '订单金额:') !== false) { + $item['order_amount'] = mb_substr($item['mark'], mb_strpos($item['mark'], '订单金额:') + 5); + } + $item['extra'] = json_decode($item['extra'], true); + unset($item['mark']); + } + $result = ['total_amount' => $totalAmount, 'count' => $count, 'record' => $record]; + return app('json')->success($result); + } + } diff --git a/route/api.php b/route/api.php index 68f330e6..b44642de 100755 --- a/route/api.php +++ b/route/api.php @@ -348,6 +348,7 @@ Route::group('api/', function () { Route::get('attr/detail/:id', 'StoreProductAttrTemplate/detail'); Route::get('attr/list', 'StoreProductAttrTemplate/getlist'); Route::get('subsidy', 'Store/subsidy'); + Route::get('subsidyRecord', 'Store/subsidyRecord'); })->prefix('api.server.')->middleware(\app\common\middleware\MerchantServerMiddleware::class, 1); //管理员订单