添加:豆豆积分抵扣功能
This commit is contained in:
parent
767be1851e
commit
854aa6f99c
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
namespace app\common\repositories\store\order;
|
namespace app\common\repositories\store\order;
|
||||||
|
|
||||||
|
use app\common\model\store\platformCommission\LegumesLog;
|
||||||
use app\common\repositories\system\config\ConfigValueRepository;
|
use app\common\repositories\system\config\ConfigValueRepository;
|
||||||
|
use app\jobs\store\platformCommission\UseLegumesIntegralJob;
|
||||||
use crmeb\jobs\SendSmsJob;
|
use crmeb\jobs\SendSmsJob;
|
||||||
use crmeb\services\SwooleTaskService;
|
use crmeb\services\SwooleTaskService;
|
||||||
use think\exception\ValidateException;
|
use think\exception\ValidateException;
|
||||||
|
|
@ -34,11 +36,13 @@ use think\facade\{Cache,Db,Log,Queue};
|
||||||
|
|
||||||
class StoreOrderCreateRepository extends StoreOrderRepository
|
class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
{
|
{
|
||||||
public function v2CartIdByOrderInfo($user, array $cartId, array $takes = null, array $useCoupon = null, bool $usePlatformIntegral = false, bool $useMerIntegral = false, int $addressId = null, $createOrder = false)
|
// public function v2CartIdByOrderInfo($user, array $cartId, array $takes = null, array $useCoupon = null, bool $usePlatformIntegral = false, bool $useMerIntegral = false, int $addressId = null, $createOrder = false)
|
||||||
|
public function v2CartIdByOrderInfo($user, array $cartId, array $takes = null, array $useCoupon = null, bool $useLegumesIntegral = false, int $addressId = null, $createOrder = false)
|
||||||
{
|
{
|
||||||
$uid = $user->uid;
|
$uid = $user->uid;
|
||||||
// $userIntegral = $user->integral;
|
// $userIntegral = $user->integral;
|
||||||
$key = md5(json_encode(compact('cartId', 'takes', 'useCoupon', 'usePlatformIntegral','useMerIntegral', 'addressId'))) . $uid;
|
// $key = md5(json_encode(compact('cartId', 'takes', 'useCoupon', 'usePlatformIntegral','useMerIntegral', 'addressId'))) . $uid;
|
||||||
|
$key = md5(json_encode(compact('cartId', 'takes', 'useCoupon', 'useLegumesIntegral', 'addressId'))) . $uid;
|
||||||
|
|
||||||
//去掉过期的优惠券信息
|
//去掉过期的优惠券信息
|
||||||
app()->make(StoreCouponUserRepository::class)->failCoupon();
|
app()->make(StoreCouponUserRepository::class)->failCoupon();
|
||||||
|
|
@ -746,22 +750,32 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
$order_total_integral_price = 0;
|
$order_total_integral_price = 0;
|
||||||
$order_total_give_integral = 0;
|
$order_total_give_integral = 0;
|
||||||
$allow_no_address = true;
|
$allow_no_address = true;
|
||||||
$order_use_mer_integral = 0;// 使用的商户积分(总)
|
// $order_use_mer_integral = 0;// 使用的商户积分(总)
|
||||||
$order_use_mer_integral_price = 0;// 使用的商户积分抵扣的金额
|
// $order_use_mer_integral_price = 0;// 使用的商户积分抵扣的金额
|
||||||
$order_use_platform_integral = 0;// 使用的平台积分(总)
|
// $order_use_platform_integral = 0;// 使用的平台积分(总)
|
||||||
$order_use_platform_integral_price = 0;// 使用平台积分抵扣的金额
|
// $order_use_platform_integral_price = 0;// 使用平台积分抵扣的金额
|
||||||
$hold_mer_integral = 0;// 用户持有的当前订单相关商户总商户积分
|
// $hold_mer_integral = 0;// 用户持有的当前订单相关商户总商户积分
|
||||||
$hold_platform_integral = app()->make(IntegralRepository::class)->getMerIntegral((int)$uid,(int)0);// 用户持有的平台积分总数
|
// $hold_platform_integral = app()->make(IntegralRepository::class)->getMerIntegral((int)$uid,(int)0);// 用户持有的平台积分总数
|
||||||
|
// 豆豆积分相关处理
|
||||||
|
$order_use_legumes_integral = 0;// 使用的豆豆积分(总)
|
||||||
|
$order_use_legumes_integral_price = 0;// 使用的豆豆积分抵扣的金额
|
||||||
|
$legumesModel = (new LegumesLog())->where('uid', (int)$uid)->where('status', 1);
|
||||||
|
$totalGetIntegral = $legumesModel->sum('get_integral');// 总获取积分
|
||||||
|
$totalUseIntegral = $legumesModel->sum('use_integral');// 总已使用积分
|
||||||
|
$hold_legumes_integral = (float)sprintf("%.2f",$totalGetIntegral - $totalUseIntegral);// 持有可使用积分
|
||||||
|
|
||||||
foreach ($merchantCartList as &$merchantCart) {
|
foreach ($merchantCartList as &$merchantCart) {
|
||||||
// 获取用户在当前店铺的积分 || 平台积分
|
// 获取用户在当前店铺的积分 || 平台积分
|
||||||
$integralInfo = app()->make(IntegralRepository::class)->getUseIntegral((int)$uid,(int)$merchantCart['mer_id']);
|
// $integralInfo = app()->make(IntegralRepository::class)->getUseIntegral((int)$uid,(int)$merchantCart['mer_id']);
|
||||||
$integralInfo['integral'] = bcsub($hold_platform_integral,$order_use_platform_integral,2);// 剩余可用平台积分
|
// $integralInfo['integral'] = bcsub($hold_platform_integral,$order_use_platform_integral,2);// 剩余可用平台积分
|
||||||
$integralInfo['convert_integral'] = (float)sprintf("%.2f",$integralInfo['integral'] / $integralInfo['convert_rate']);// 剩余可用平台积分转换后的积分
|
// $integralInfo['convert_integral'] = (float)sprintf("%.2f",$integralInfo['integral'] / $integralInfo['convert_rate']);// 剩余可用平台积分转换后的积分
|
||||||
|
|
||||||
$hold_mer_integral = bcadd($hold_mer_integral,$integralInfo['mer_integral'],2);// 持有商户积分叠加
|
// $hold_mer_integral = bcadd($hold_mer_integral,$integralInfo['mer_integral'],2);// 持有商户积分叠加
|
||||||
if(!$useMerIntegral) $integralInfo['mer_integral'] = (float)0;// 不使用本商户积分
|
// if(!$useMerIntegral) $integralInfo['mer_integral'] = (float)0;// 不使用本商户积分
|
||||||
if(!$usePlatformIntegral) $integralInfo['convert_integral'] = (float)0;// 不使用平台积分
|
// if(!$usePlatformIntegral) $integralInfo['convert_integral'] = (float)0;// 不使用平台积分
|
||||||
|
|
||||||
|
$integralInfo['legumes_integral'] = bcsub($hold_legumes_integral,$order_use_legumes_integral,2);// 剩余可用豆豆积分
|
||||||
|
if(!$useLegumesIntegral) $integralInfo['legumes_integral'] = 0;// 不使用豆豆积分
|
||||||
// 配置信息
|
// 配置信息
|
||||||
$merchantCart['take'] = [
|
$merchantCart['take'] = [
|
||||||
'mer_integral_rate' => 0,
|
'mer_integral_rate' => 0,
|
||||||
|
|
@ -779,10 +793,12 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
$merIntegralConfig['mer_integral_rate'] = min(1, $merIntegralConfig['mer_integral_rate'] > 0 ? bcdiv($merIntegralConfig['mer_integral_rate'], 100, 4) : $merIntegralConfig['mer_integral_rate']);
|
$merIntegralConfig['mer_integral_rate'] = min(1, $merIntegralConfig['mer_integral_rate'] > 0 ? bcdiv($merIntegralConfig['mer_integral_rate'], 100, 4) : $merIntegralConfig['mer_integral_rate']);
|
||||||
$total_integral = 0;// 总使用积分
|
$total_integral = 0;// 总使用积分
|
||||||
$total_integral_price = 0;// 总抵扣金额
|
$total_integral_price = 0;// 总抵扣金额
|
||||||
$use_mer_integral = 0;// 使用的商户积分(本商户订单)
|
// $use_mer_integral = 0;// 使用的商户积分(本商户订单)
|
||||||
$use_mer_integral_price = 0;// 使用商户积分抵扣的金额(本商户订单)
|
// $use_mer_integral_price = 0;// 使用商户积分抵扣的金额(本商户订单)
|
||||||
$use_platform_integral = 0;// 使用的平台积分(本商户订单)
|
// $use_platform_integral = 0;// 使用的平台积分(本商户订单)
|
||||||
$use_platform_integral_price = 0;// 使用平台积分抵扣的金额(本商户订单)
|
// $use_platform_integral_price = 0;// 使用平台积分抵扣的金额(本商户订单)
|
||||||
|
$use_legumes_integral = 0;// 使用的豆豆积分(本商户订单)
|
||||||
|
$use_legumes_integral_price = 0;// 使用豆豆积分抵扣的金额(本商户订单)
|
||||||
|
|
||||||
$merIntegralFlag = $merIntegralFlag || ((bool)$merIntegralConfig['mer_integral_status']);
|
$merIntegralFlag = $merIntegralFlag || ((bool)$merIntegralConfig['mer_integral_status']);
|
||||||
// 是否使用积分抵扣 使用抵扣、平台开启、商户开启、积分抵用金额大于0
|
// 是否使用积分抵扣 使用抵扣、平台开启、商户开启、积分抵用金额大于0
|
||||||
|
|
@ -808,31 +824,41 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
$isParticipation = $merchantCart['order']['true_price'] > 0 && $cart['product_type'] == 0 && $integralFlag && $productIntegralPrice > 0;
|
$isParticipation = $merchantCart['order']['true_price'] > 0 && $cart['product_type'] == 0 && $integralFlag && $productIntegralPrice > 0;
|
||||||
if($isParticipation) $is_has_integral_use = 1;// 是否存在积分使用情况 只要存在一个则存在
|
if($isParticipation) $is_has_integral_use = 1;// 是否存在积分使用情况 只要存在一个则存在
|
||||||
// 只有普通商品可以抵扣
|
// 只有普通商品可以抵扣
|
||||||
if ($isParticipation && ($integralInfo['mer_integral'] > 0 || $integralInfo['convert_integral'] > 0) && ($usePlatformIntegral || $useMerIntegral)) {
|
// if ($isParticipation && ($integralInfo['mer_integral'] > 0 || $integralInfo['convert_integral'] > 0) && ($usePlatformIntegral || $useMerIntegral)) {
|
||||||
|
if ($isParticipation && $hold_legumes_integral > 0 && $useLegumesIntegral) {
|
||||||
// 抵扣需要的积分
|
// 抵扣需要的积分
|
||||||
$productIntegral = (int)ceil(bcdiv($productIntegralPrice, $integralMoney, 3));
|
// $productIntegral = (int)ceil(bcdiv($productIntegralPrice, $integralMoney, 3));
|
||||||
if ($productIntegral > 0 && ($productIntegral <= $integralInfo['mer_integral'] || $productIntegral <= $integralInfo['convert_integral'])) {
|
// if ($productIntegral > 0 && ($productIntegral <= $integralInfo['mer_integral'] || $productIntegral <= $integralInfo['convert_integral'])) {
|
||||||
|
if ($productIntegralPrice > 0 && $productIntegralPrice <= $hold_legumes_integral) {
|
||||||
// 判断:使用的积分类型
|
// 判断:使用的积分类型
|
||||||
if($useMerIntegral){
|
// if($useMerIntegral){
|
||||||
// 使用商户积分抵扣
|
// // 使用商户积分抵扣
|
||||||
$integralInfo['mer_integral'] = (float)bcsub($integralInfo['mer_integral'], $productIntegral, 2);
|
// $integralInfo['mer_integral'] = (float)bcsub($integralInfo['mer_integral'], $productIntegral, 2);
|
||||||
$integralInfo['use_integral_type'] = 'mer_integral';
|
// $integralInfo['use_integral_type'] = 'mer_integral';
|
||||||
|
// // 判断:积分不足 不使用积分抵扣
|
||||||
|
// if($integralInfo['mer_integral'] < 0) continue;
|
||||||
|
// }else if($usePlatformIntegral) {
|
||||||
|
// // 使用平台积分抵扣
|
||||||
|
// $integralInfo['convert_integral'] = bcsub($integralInfo['convert_integral'], $productIntegral, 2);// 减少转换后的积分
|
||||||
|
// $productIntegral = bcmul($productIntegral, $integralInfo['convert_rate'],2);// 刷新使用积分(使用平台积分,需要根据比例刷新平台积分减少数量)
|
||||||
|
// $integralInfo['integral'] = bcsub($integralInfo['integral'], $productIntegral, 2);// 减少未转化的平台积分
|
||||||
|
// $integralInfo['use_integral_type'] = 'platform_integral';
|
||||||
|
// // 判断:积分不足 不使用积分抵扣
|
||||||
|
// if($integralInfo['convert_integral'] < 0) continue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// 使用豆豆积分抵扣
|
||||||
|
$integralInfo['legumes_integral'] = bcsub($integralInfo['legumes_integral'], $productIntegralPrice, 2);// 减少豆豆积分
|
||||||
|
$integralInfo['use_integral_type'] = 'legumes_integral';
|
||||||
// 判断:积分不足 不使用积分抵扣
|
// 判断:积分不足 不使用积分抵扣
|
||||||
if($integralInfo['mer_integral'] < 0) continue;
|
if($integralInfo['legumes_integral'] < 0) continue;
|
||||||
}else if($usePlatformIntegral) {
|
|
||||||
// 使用平台积分抵扣
|
|
||||||
$integralInfo['convert_integral'] = bcsub($integralInfo['convert_integral'], $productIntegral, 2);// 减少转换后的积分
|
|
||||||
$productIntegral = bcmul($productIntegral, $integralInfo['convert_rate'],2);// 刷新使用积分(使用平台积分,需要根据比例刷新平台积分减少数量)
|
|
||||||
$integralInfo['integral'] = bcsub($integralInfo['integral'], $productIntegral, 2);// 减少未转化的平台积分
|
|
||||||
$integralInfo['use_integral_type'] = 'platform_integral';
|
|
||||||
// 判断:积分不足 不使用积分抵扣
|
|
||||||
if($integralInfo['convert_integral'] < 0) continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 使用多少积分抵扣了多少金额
|
// 使用多少积分抵扣了多少金额
|
||||||
$cart['integral'] = [
|
$cart['integral'] = [
|
||||||
'use' => $productIntegral,
|
'use' => $productIntegralPrice,
|
||||||
'price' => $productIntegralPrice,
|
'price' => $productIntegralPrice,
|
||||||
'use_integral_type' => $integralInfo['use_integral_type']
|
'use_integral_type' => $integralInfo['use_integral_type']
|
||||||
];
|
];
|
||||||
|
|
@ -842,14 +868,19 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
$merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'], $cart['integral']['price'], 2);
|
$merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'], $cart['integral']['price'], 2);
|
||||||
|
|
||||||
|
|
||||||
if($integralInfo['use_integral_type'] == 'mer_integral') {
|
// if($integralInfo['use_integral_type'] == 'mer_integral') {
|
||||||
$use_mer_integral = bcadd($use_mer_integral, $productIntegral, 2);// 使用的商户积分
|
// $use_mer_integral = bcadd($use_mer_integral, $productIntegral, 2);// 使用的商户积分
|
||||||
$use_mer_integral_price = bcadd($use_mer_integral_price,$productIntegralPrice,2);// 使用商户积分抵扣的金额
|
// $use_mer_integral_price = bcadd($use_mer_integral_price,$productIntegralPrice,2);// 使用商户积分抵扣的金额
|
||||||
}
|
// }
|
||||||
else {
|
// else {
|
||||||
$use_platform_integral = bcadd($use_platform_integral, $productIntegral, 2);;// 使用的平台积分
|
// $use_platform_integral = bcadd($use_platform_integral, $productIntegral, 2);;// 使用的平台积分
|
||||||
$use_platform_integral_price = bcadd($use_platform_integral_price, $productIntegralPrice, 2);;// 使用平台积分抵扣的金额
|
// $use_platform_integral_price = bcadd($use_platform_integral_price, $productIntegralPrice, 2);;// 使用平台积分抵扣的金额
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// 使用的豆豆积分
|
||||||
|
$use_legumes_integral = bcadd($use_legumes_integral, $productIntegralPrice, 2);
|
||||||
|
$use_legumes_integral_price = bcadd($use_legumes_integral_price,$productIntegralPrice,2);
|
||||||
|
|
||||||
|
|
||||||
$total_integral_price = bcadd($total_integral_price, $cart['integral']['price'], 2);
|
$total_integral_price = bcadd($total_integral_price, $cart['integral']['price'], 2);
|
||||||
|
|
@ -864,10 +895,15 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
$order_total_integral = bcadd($order_total_integral, $total_integral, 2);
|
$order_total_integral = bcadd($order_total_integral, $total_integral, 2);
|
||||||
$order_total_integral_price = bcadd($order_total_integral_price, $total_integral_price, 2);
|
$order_total_integral_price = bcadd($order_total_integral_price, $total_integral_price, 2);
|
||||||
|
|
||||||
$order_use_mer_integral = bcadd($order_use_mer_integral, $use_mer_integral, 2);
|
// $order_use_mer_integral = bcadd($order_use_mer_integral, $use_mer_integral, 2);
|
||||||
$order_use_mer_integral_price = bcadd($order_use_mer_integral_price, $use_mer_integral_price, 2);
|
// $order_use_mer_integral_price = bcadd($order_use_mer_integral_price, $use_mer_integral_price, 2);
|
||||||
$order_use_platform_integral = bcadd($order_use_platform_integral, $use_platform_integral, 2);
|
// $order_use_platform_integral = bcadd($order_use_platform_integral, $use_platform_integral, 2);
|
||||||
$order_use_platform_integral_price = bcadd($order_use_platform_integral_price, $use_platform_integral_price, 2);
|
// $order_use_platform_integral_price = bcadd($order_use_platform_integral_price, $use_platform_integral_price, 2);
|
||||||
|
|
||||||
|
$order_use_legumes_integral = bcadd($order_use_legumes_integral, $use_legumes_integral, 2);
|
||||||
|
$order_use_legumes_integral_price = bcadd($order_use_legumes_integral_price, $use_legumes_integral_price, 2);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$_pay_price = $merchantCart['order']['true_price'];
|
$_pay_price = $merchantCart['order']['true_price'];
|
||||||
|
|
@ -931,10 +967,12 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$merchantCart['order']['use_mer_integral'] = $use_mer_integral;
|
// $merchantCart['order']['use_mer_integral'] = $use_mer_integral;
|
||||||
$merchantCart['order']['use_mer_integral_price'] = $use_mer_integral_price;
|
// $merchantCart['order']['use_mer_integral_price'] = $use_mer_integral_price;
|
||||||
$merchantCart['order']['use_platform_integral'] = $use_platform_integral;
|
// $merchantCart['order']['use_platform_integral'] = $use_platform_integral;
|
||||||
$merchantCart['order']['use_platform_integral_price'] = $use_platform_integral_price;
|
// $merchantCart['order']['use_platform_integral_price'] = $use_platform_integral_price;
|
||||||
|
$merchantCart['order']['use_legumes_integral'] = $use_legumes_integral;
|
||||||
|
$merchantCart['order']['use_legumes_integral_price'] = $use_legumes_integral_price;
|
||||||
$merchantCart['order']['order_type'] = $order_type;
|
$merchantCart['order']['order_type'] = $order_type;
|
||||||
$merchantCart['order']['total_give_integral'] = $total_give_integral;
|
$merchantCart['order']['total_give_integral'] = $total_give_integral;
|
||||||
$merchantCart['order']['total_integral_price'] = $total_integral_price;
|
$merchantCart['order']['total_integral_price'] = $total_integral_price;
|
||||||
|
|
@ -980,13 +1018,16 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
'usePlatformCouponId',
|
'usePlatformCouponId',
|
||||||
'order_total_integral',
|
'order_total_integral',
|
||||||
'order_total_integral_price',
|
'order_total_integral_price',
|
||||||
'order_use_mer_integral',
|
// 'order_use_mer_integral',
|
||||||
'order_use_mer_integral_price',
|
// 'order_use_mer_integral_price',
|
||||||
'order_use_platform_integral',
|
// 'order_use_platform_integral',
|
||||||
'order_use_platform_integral_price',
|
// 'order_use_platform_integral_price',
|
||||||
'is_has_integral_use',
|
'is_has_integral_use',
|
||||||
'hold_mer_integral',
|
// 'hold_mer_integral',
|
||||||
'hold_platform_integral',
|
// 'hold_platform_integral',
|
||||||
|
'order_use_legumes_integral',
|
||||||
|
'order_use_legumes_integral_price',
|
||||||
|
'hold_legumes_integral',
|
||||||
'order_total_give_integral',
|
'order_total_give_integral',
|
||||||
'order_svip_discount',
|
'order_svip_discount',
|
||||||
'total_platform_coupon_price',
|
'total_platform_coupon_price',
|
||||||
|
|
@ -995,8 +1036,9 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
'status',
|
'status',
|
||||||
'address',
|
'address',
|
||||||
'openIntegral',
|
'openIntegral',
|
||||||
'usePlatformIntegral',
|
// 'usePlatformIntegral',
|
||||||
'useMerIntegral',
|
// 'useMerIntegral',
|
||||||
|
'useLegumesIntegral',
|
||||||
'key',
|
'key',
|
||||||
'order_refund_switch',
|
'order_refund_switch',
|
||||||
'order'
|
'order'
|
||||||
|
|
@ -1196,10 +1238,12 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
'integral' => $merchantCart['order']['total_integral'],
|
'integral' => $merchantCart['order']['total_integral'],
|
||||||
'integral_price' => $merchantCart['order']['total_integral_price'],
|
'integral_price' => $merchantCart['order']['total_integral_price'],
|
||||||
'give_integral' => $merchantCart['order']['total_give_integral'],
|
'give_integral' => $merchantCart['order']['total_give_integral'],
|
||||||
'use_mer_integral' => (float)$merchantCart['order']['use_mer_integral'] ?? 0,
|
// 'use_mer_integral' => (float)$merchantCart['order']['use_mer_integral'] ?? 0,
|
||||||
'use_mer_integral_price' => (float)$merchantCart['order']['use_mer_integral_price'] ?? 0,
|
// 'use_mer_integral_price' => (float)$merchantCart['order']['use_mer_integral_price'] ?? 0,
|
||||||
'use_platform_integral' => (float)$merchantCart['order']['use_platform_integral'] ?? 0,
|
// 'use_platform_integral' => (float)$merchantCart['order']['use_platform_integral'] ?? 0,
|
||||||
'use_platform_integral_price' => (float)$merchantCart['order']['use_platform_integral_price'] ?? 0,
|
// 'use_platform_integral_price' => (float)$merchantCart['order']['use_platform_integral_price'] ?? 0,
|
||||||
|
'use_legumes_integral' => (float)$merchantCart['order']['use_legumes_integral'] ?? 0,
|
||||||
|
'use_legumes_integral_price' => (float)$merchantCart['order']['use_legumes_integral_price'] ?? 0,
|
||||||
'mer_id' => $merchantCart['mer_id'],
|
'mer_id' => $merchantCart['mer_id'],
|
||||||
'cost' => $cost,
|
'cost' => $cost,
|
||||||
'order_extend' => count($extend) ? json_encode($extend,JSON_UNESCAPED_UNICODE) : '',
|
'order_extend' => count($extend) ? json_encode($extend,JSON_UNESCAPED_UNICODE) : '',
|
||||||
|
|
@ -1326,7 +1370,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
$_order = $this->dao->create($order);
|
$_order = $this->dao->create($order);
|
||||||
// 积分抵扣处理 由于区分平台积分和商户积分 这里只能每个订单单独处理
|
// 积分抵扣处理 由于区分平台积分和商户积分 这里只能每个订单单独处理
|
||||||
if ($order['integral'] > 0) {
|
if ($order['integral'] > 0) {
|
||||||
// 修改用户持有的平台积分
|
/* // 修改用户持有的平台积分
|
||||||
if((float)$order['use_platform_integral'] > 0) {
|
if((float)$order['use_platform_integral'] > 0) {
|
||||||
$user->integral = bcsub($user->integral, $order['use_platform_integral'], 2);
|
$user->integral = bcsub($user->integral, $order['use_platform_integral'], 2);
|
||||||
$integralRepositoryMake->changeIntegral((int)$uid,(int)0,(float)sprintf("%.2f",0 - $order['use_platform_integral']));
|
$integralRepositoryMake->changeIntegral((int)$uid,(int)0,(float)sprintf("%.2f",0 - $order['use_platform_integral']));
|
||||||
|
|
@ -1391,6 +1435,14 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
||||||
'mer_id' => $order['mer_id'],
|
'mer_id' => $order['mer_id'],
|
||||||
'status' => 1
|
'status' => 1
|
||||||
];
|
];
|
||||||
|
}*/
|
||||||
|
|
||||||
|
// 修改:用户持有的豆豆积分
|
||||||
|
if((float)$order['use_legumes_integral'] > 0) {
|
||||||
|
// 推广员佣金结算
|
||||||
|
Queue::push(UseLegumesIntegralJob::class,[
|
||||||
|
'order_id' => $_order->order_id
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,13 +50,15 @@ class StoreOrder extends BaseController
|
||||||
$addressId = (int)$this->request->param('address_id');
|
$addressId = (int)$this->request->param('address_id');
|
||||||
$couponIds = (array)$this->request->param('use_coupon', []);
|
$couponIds = (array)$this->request->param('use_coupon', []);
|
||||||
$takes = (array)$this->request->param('takes', []);
|
$takes = (array)$this->request->param('takes', []);
|
||||||
$usePlatformIntegral = (bool)$this->request->param('use_platform_integral', false);
|
// $usePlatformIntegral = (bool)$this->request->param('use_platform_integral', false);
|
||||||
$useMerIntegral = (bool)$this->request->param('use_mer_integral', false);
|
// $useMerIntegral = (bool)$this->request->param('use_mer_integral', false);
|
||||||
|
$useLegumesIntegral = (bool)$this->request->param('use_legumes_integral', false);
|
||||||
$user = $this->request->userInfo();
|
$user = $this->request->userInfo();
|
||||||
$uid = $user->uid;
|
$uid = $user->uid;
|
||||||
if (!($count = count($cartId)) || $count != count($cartRepository->validIntersection($cartId, $uid)))
|
if (!($count = count($cartId)) || $count != count($cartRepository->validIntersection($cartId, $uid)))
|
||||||
return app('json')->fail('数据无效');
|
return app('json')->fail('数据无效');
|
||||||
$orderInfo = $orderCreateRepository->v2CartIdByOrderInfo($user, $cartId, $takes, $couponIds, $usePlatformIntegral,$useMerIntegral, $addressId);
|
// $orderInfo = $orderCreateRepository->v2CartIdByOrderInfo($user, $cartId, $takes, $couponIds, $usePlatformIntegral,$useMerIntegral, $addressId);
|
||||||
|
$orderInfo = $orderCreateRepository->v2CartIdByOrderInfo($user, $cartId, $takes, $couponIds, $useLegumesIntegral, $addressId);
|
||||||
|
|
||||||
return app('json')->success($orderInfo);
|
return app('json')->success($orderInfo);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\jobs\store\platformCommission;
|
||||||
|
|
||||||
|
|
||||||
|
use crmeb\interfaces\JobInterface;
|
||||||
|
use think\facade\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Common: 豆豆积分使用 减少积分
|
||||||
|
* Author: wu-hui
|
||||||
|
* Time: 2023/12/29 17:52
|
||||||
|
* Class UseLegumesIntegralJob
|
||||||
|
* @package app\jobs\store\platformCommission
|
||||||
|
*/
|
||||||
|
class UseLegumesIntegralJob implements JobInterface{
|
||||||
|
|
||||||
|
public function fire($job,$data){
|
||||||
|
try{
|
||||||
|
Log::info('豆豆积分使用 - 开始处理: '.var_export($data,1));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
catch(\Exception $e){
|
||||||
|
$data['error_msg'] = $e->getMessage();
|
||||||
|
Log::info('豆豆积分使用 - 失败: '.var_export($data,1));
|
||||||
|
}
|
||||||
|
$job->delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function failed($data){
|
||||||
|
Log::info('豆豆积分使用 - 失败(failed): '.var_export($data,1));
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue