diff --git a/app/Admin/Controllers/AfterSaleController.php b/app/Admin/Controllers/AfterSaleController.php index 3865ad51..8f1d5947 100644 --- a/app/Admin/Controllers/AfterSaleController.php +++ b/app/Admin/Controllers/AfterSaleController.php @@ -79,7 +79,7 @@ class AfterSaleController extends AdminController } return bcdiv($value, 100, 2); })->prepend('¥'); - $grid->column('points'); + $grid->column('points')->display(fn ($value) => bcdiv($value, 100, 2)); $grid->column('type')->using([ AfterSaleModel::TYPE_REFUND_AND_RETURN => '退款退货', AfterSaleModel::TYPE_REFUND => '退款', @@ -159,7 +159,7 @@ class AfterSaleController extends AdminController $show->field('amount', '售后金额')->as(function ($amount) { return '¥'.bcdiv($amount, 100, 2); }); - $show->field('points', '售后积分'); + $show->field('points', '售后积分')->as(fn ($amount) => bcdiv($amount, 100, 2)); } $show->width(6)->field('user.user_info.nickname', '下单用户'); $show->field('user.phone'); diff --git a/app/Admin/Controllers/OrderController.php b/app/Admin/Controllers/OrderController.php index 77cd95e7..bff2c06b 100644 --- a/app/Admin/Controllers/OrderController.php +++ b/app/Admin/Controllers/OrderController.php @@ -73,6 +73,7 @@ class OrderController extends AdminController '商品名称', '数量', '价格', + '积分', '金额', '待发货数量', '所属订单', @@ -92,6 +93,7 @@ class OrderController extends AdminController $product->name, $product->quantity, bcdiv($product->sell_price, '100', 2), + bcdiv($product->point_discount_amount, '100', 2), bcdiv($product->total_amount, '100', 2), $product->remain_quantity, $order->sn, @@ -148,6 +150,9 @@ class OrderController extends AdminController {$phone} HTML; }); + $grid->column('point_discount_amount')->display(function ($value) { + return bcdiv($value, 100, 2); + })->prepend('¥'); $grid->column('total_amount')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); @@ -207,6 +212,13 @@ class OrderController extends AdminController PayWay::WxpayMiniProgram->value => PayWay::WxpayMiniProgram->text(), PayWay::Offline->value => PayWay::Offline->text(), ])->width(3); + $filter->where('order_type', function ($builder) { + if ($this->input == 1) { + $builder->where('point_discount_amount', '>', 0); + } else { + $builder->where('point_discount_amount', 0); + } + }, '订单类型')->select([1 => '积分订单', 2 => '其他订单'])->width(3); $filter->where('order_status', function ($q) { switch ($this->input) { case OrderStatus::PENDING: @@ -274,12 +286,14 @@ class OrderController extends AdminController $market_price = number_format($query->sum('market_price') / 100, 2); $cost_price = number_format($query->sum('cost_price') / 100, 2); $sales_value = number_format($query->sum('sales_value')); + $point_discount_amount = bcdiv($query->sum('point_discount_amount'), 100, 2); return << 统计 订单数: $count + 积分: $point_discount_amount 订单总额: $total_amount 市场价: $market_price 成本价: $cost_price @@ -425,7 +439,7 @@ class OrderController extends AdminController $grid->column('coupon_discount_amount', '优惠券折扣')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); - $grid->column('point_discount_amount', '积分抵扣')->display(function ($value) { + $grid->column('point_discount_amount', '积分')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); $grid->column('reduced_amount', '减免金额')->display(function ($value) { diff --git a/app/Admin/Controllers/PointLogController.php b/app/Admin/Controllers/PointLogController.php index 8eef2a8a..24b3bfab 100644 --- a/app/Admin/Controllers/PointLogController.php +++ b/app/Admin/Controllers/PointLogController.php @@ -37,9 +37,15 @@ class PointLogController extends AdminController $grid->column('id')->sortable(); $grid->column('user.phone')->copyable(); $grid->column('action')->display(fn ($action) => $action->label())->label();; - $grid->column('change_points'); - $grid->column('before_points'); - $grid->column('after_points'); + $grid->column('change_points')->display(function ($value) { + return bcdiv($value, 100, 2); + }); + $grid->column('before_points')->display(function ($value) { + return bcdiv($value, 100, 2); + }); + $grid->column('after_points')->display(function ($value) { + return bcdiv($value, 100, 2); + }); $grid->column('remark'); $grid->column('created_at'); @@ -59,7 +65,7 @@ class PointLogController extends AdminController $totalPoints = (clone $query)->sum('change_points'); - $row->column(2, new InfoBox('积分总数', $totalPoints, 'fa fa-ticket')); + $row->column(2, new InfoBox('积分总数', bcdiv($totalPoints, 100, 2), 'fa fa-ticket')); }); }); diff --git a/app/Admin/Controllers/UserController.php b/app/Admin/Controllers/UserController.php index 2dbc601b..717ded55 100644 --- a/app/Admin/Controllers/UserController.php +++ b/app/Admin/Controllers/UserController.php @@ -54,7 +54,7 @@ class UserController extends AdminController $grid->column('userInfo.inviterInfo.user.phone')->display(function ($v) { return $v ?: $this->userInfo?->inviter_id; })->copyable(); - $grid->column('userInfo.points')->sortable()->if(function () { + $grid->column('userInfo.points')->display(fn ($value) => bcdiv($value, 100, 2))->sortable()->if(function () { return Admin::user()->can('dcat.admin.point_logs.index'); })->then(function (Grid\Column $column) { $column->link(function ($value) { @@ -157,7 +157,7 @@ class UserController extends AdminController // $show->field('userInfo.nickname'); // $show->field('userInfo.gender')->using(UserInfo::$genderTexts)->label(); // $show->field('userInfo.birthday'); - + $show->field('user_info.points', '积分')->as(fn ($value) => bcdiv($value, 100, 2))->prepend('¥'); $show->field('user_info.growth_value', '成长值'); $show->field('profit'); $show->field('user_info.is_company', '员工')->as(function ($v) { @@ -173,7 +173,6 @@ class UserController extends AdminController // $value = bcdiv($value, 100, 2); // return $value; // })->prepend('¥'); - // $show->field('user_info.points'); }); $show->row(function (Show\Row $show) { $show->width(6)->field('last_login_ip'); diff --git a/app/Admin/Forms/AfterSaleVerify.php b/app/Admin/Forms/AfterSaleVerify.php index 11bf2285..39dfeafc 100644 --- a/app/Admin/Forms/AfterSaleVerify.php +++ b/app/Admin/Forms/AfterSaleVerify.php @@ -105,7 +105,11 @@ class AfterSaleVerify extends Form implements LazyRenderable })->saving(function ($amount) { return bcmul($amount, 100); })->symbol('¥'); - $this->number('points')->default($afterSale->points); + $this->currency('points')->customFormat(function () use ($afterSale) { + return bcdiv($afterSale->points, 100, 2); + })->saving(function ($points) { + return bcmul($points, 100); + })->symbol('¥'); } $this->radio('state') diff --git a/app/Admin/Forms/PointChange.php b/app/Admin/Forms/PointChange.php index 3a231b50..b3ed3fba 100644 --- a/app/Admin/Forms/PointChange.php +++ b/app/Admin/Forms/PointChange.php @@ -25,7 +25,7 @@ class PointChange extends Form implements LazyRenderable { $changePoints = (int) $input['change_points']; - if ($changePoints < 1) { + if ($changePoints < 0) { return $this->response()->error('积分必须大于1'); } @@ -68,7 +68,9 @@ class PointChange extends Form implements LazyRenderable ]) ->default(PointLogAction::Recharge->value) ->required(); - $this->number('change_points', '积分')->min(1)->required(); + $this->currency('change_points', '积分')->symbol('¥')->saving(function ($value) { + return bcmul($value, 100); + })->required(); $this->textarea('remark', '备注')->required(); $this->confirm('是否确认变更?', '提交后该动作无法逆转'); } diff --git a/app/Endpoint/Api/Http/Resources/PointLogResource.php b/app/Endpoint/Api/Http/Resources/PointLogResource.php index 2ea25aab..769e9368 100644 --- a/app/Endpoint/Api/Http/Resources/PointLogResource.php +++ b/app/Endpoint/Api/Http/Resources/PointLogResource.php @@ -17,7 +17,7 @@ class PointLogResource extends JsonResource return [ 'id' => $this->id, 'action' => $this->action, - 'change_points' => $this->change_points, + 'change_points' => bcdiv($this->change_points, 100, 2), 'remark' => (string) $this->remark, 'created_at' => $this->created_at->toDateTimeString(), ]; diff --git a/app/Endpoint/Api/Http/Resources/UserInfoResource.php b/app/Endpoint/Api/Http/Resources/UserInfoResource.php index af28ef1f..f2b025b9 100644 --- a/app/Endpoint/Api/Http/Resources/UserInfoResource.php +++ b/app/Endpoint/Api/Http/Resources/UserInfoResource.php @@ -21,7 +21,7 @@ class UserInfoResource extends JsonResource 'birthday' => (string) $this->birthday?->toDateString(), 'code' => (string) $this->code, 'is_company' => (boolean) $this->is_company, - 'points' => $this->points, + 'points' => bcdiv($this->points, 100, 2), ]; } } diff --git a/app/Enums/PayWay.php b/app/Enums/PayWay.php index c6901a7d..4a87e27f 100644 --- a/app/Enums/PayWay.php +++ b/app/Enums/PayWay.php @@ -3,6 +3,7 @@ namespace App\Enums; enum PayWay: string { + case None = 'none'; case Offline = 'offline'; case Balance = 'balance'; case Wallet = 'wallet'; @@ -31,6 +32,7 @@ enum PayWay: string { public function label() { return match ($this) { + static::None => 'none', static::Offline => 'offline', static::Balance => 'balance', static::Wallet => 'wallet', @@ -42,6 +44,7 @@ enum PayWay: string { public function mallText() { return match ($this) { + static::None => '无', static::Offline => '线下', static::Balance => '余额', static::Wallet => '可提', @@ -59,6 +62,7 @@ enum PayWay: string { public function text(): string { return match ($this) { + static::None => '无', static::Offline => '线下', static::Balance => '余额', static::Wallet => '钱包', diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index 312d07d5..74d27b0b 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -168,7 +168,7 @@ class OrderService $coupon?->markAsUse(); if ($order->total_amount === 0) { - $this->pay($order, PayWay::Balance); + $this->pay($order, PayWay::None); $order->refresh(); } @@ -855,8 +855,8 @@ class OrderService 'coupon_discount_amount' => trim_trailing_zeros(bcdiv($couponDiscountAmount, 100, 2)), // 优惠券折扣金额 'total_amount' => trim_trailing_zeros(bcdiv($totalAmount, 100, 2)), // 实付金额 'bargain_amount' => trim_trailing_zeros(bcdiv($bargainAmount, 100, 2)), //砍价金额 - 'remaining_points' => $remainingPoints, // 剩余积分 - 'available_points' => $availablePoints, // 可用积分 + 'remaining_points' => trim_trailing_zeros(bcdiv($remainingPoints, 100, 2)), // 剩余积分 + 'available_points' => trim_trailing_zeros(bcdiv($availablePoints, 100, 2)), // 可用积分 'point_discount_amount' => trim_trailing_zeros(bcdiv($availablePoints, 100, 2)), // 积分抵扣金额 ]; } diff --git a/resources/lang/zh_CN/order.php b/resources/lang/zh_CN/order.php index 9efeccf1..41c8a6a7 100644 --- a/resources/lang/zh_CN/order.php +++ b/resources/lang/zh_CN/order.php @@ -58,7 +58,7 @@ return [ 'market_price' => '市场价', 'cost_price' => '成本价', 'out_trade_no' => '支付流水号', - 'point_discount_amount' => '积分抵扣', + 'point_discount_amount' => '积分', ], 'options' => [ ],