增加:酒道馆兑换商品区分为酒道馆兑换和小酒馆兑换
增加:小酒馆兑换商品流程及惠民积分使用处理 重构:酒道馆兑换订单生成后,酒水卡积分处理合并到惠民积分处理中,并且从公共处理方法中独立出来单独处理 重构:酒道馆兑换订单生成后,相关酒卡额度处理从公共方法中独立出来单独处理
This commit is contained in:
parent
e4fd74ca81
commit
cb3732b958
|
|
@ -92,6 +92,9 @@ class MerchantDao extends BaseDao
|
||||||
})
|
})
|
||||||
->when(isset($where['invite_agent_id']) && $where['invite_agent_id'] !== '',function($query) use ($where){
|
->when(isset($where['invite_agent_id']) && $where['invite_agent_id'] !== '',function($query) use ($where){
|
||||||
$query->whereLike('invite_agent_id', $where['invite_agent_id']);
|
$query->whereLike('invite_agent_id', $where['invite_agent_id']);
|
||||||
|
})
|
||||||
|
->when(isset($where['merchant_sub_type']) && $where['merchant_sub_type'] !== '',function($query) use ($where){
|
||||||
|
$query->whereLike('merchant_sub_type', $where['merchant_sub_type']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -175,4 +175,28 @@ class StoreCartRepository extends BaseRepository
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Common: 酒道馆查询基本模型
|
||||||
|
* Author: wu-hui
|
||||||
|
* Time: 2024/07/02 9:55
|
||||||
|
* @param $params
|
||||||
|
* @return \think\db\BaseQuery
|
||||||
|
*/
|
||||||
|
public function wineSearchModel($params){
|
||||||
|
return $this->getSearch([])
|
||||||
|
->hasWhere('merchant',function($query) use ($params){
|
||||||
|
$query->where('merchant_sub_type', $params['merchant_sub_type']);
|
||||||
|
})
|
||||||
|
->where([
|
||||||
|
'StoreCart.is_pay' => 0,
|
||||||
|
'StoreCart.is_del' => 0,
|
||||||
|
'StoreCart.is_new' => 0,
|
||||||
|
'StoreCart.is_fail' => 0,
|
||||||
|
'StoreCart.product_type' => 36,
|
||||||
|
'StoreCart.uid' => $params['uid'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
namespace app\common\repositories\store\order;
|
namespace app\common\repositories\store\order;
|
||||||
|
|
||||||
use app\common\model\store\product\Product;
|
use app\common\model\store\product\Product;
|
||||||
|
use app\common\model\system\merchant\Merchant;
|
||||||
use app\common\model\user\ExchangeIntegralRecord;
|
use app\common\model\user\ExchangeIntegralRecord;
|
||||||
use app\common\model\user\ExchangeQuotaRecord;
|
use app\common\model\user\ExchangeQuotaRecord;
|
||||||
use app\common\model\user\User;
|
use app\common\model\user\User;
|
||||||
|
|
@ -48,6 +49,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
$isWithGoods = $withGoods['is_with_goods'] ?? 0;// 0=用户购物,1=酒道馆进货
|
$isWithGoods = $withGoods['is_with_goods'] ?? 0;// 0=用户购物,1=酒道馆进货
|
||||||
$with_goods_mer_id = $withGoods['with_goods_mer_id'] ?? 0;
|
$with_goods_mer_id = $withGoods['with_goods_mer_id'] ?? 0;
|
||||||
$diffRate = 30;// 酒道馆商品 补差价比例 这里暂时默认固定为30%
|
$diffRate = 30;// 酒道馆商品 补差价比例 这里暂时默认固定为30%
|
||||||
|
$quotaIntegralConfig = app()->make(ExchangeQuotaRepository::class)->getConfig();
|
||||||
$key = md5(json_encode(compact('cartId','takes','useCoupon','useIntegral','addressId'))).$uid;
|
$key = md5(json_encode(compact('cartId','takes','useCoupon','useIntegral','addressId'))).$uid;
|
||||||
//去掉过期的优惠券信息
|
//去掉过期的优惠券信息
|
||||||
app()->make(StoreCouponUserRepository::class)->failCoupon();
|
app()->make(StoreCouponUserRepository::class)->failCoupon();
|
||||||
|
|
@ -737,6 +739,11 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
$orderTotalMerTitleQuota = 0;// 进货订单 - 补货额度 - 冠名品牌抵扣额度(总)
|
$orderTotalMerTitleQuota = 0;// 进货订单 - 补货额度 - 冠名品牌抵扣额度(总)
|
||||||
$orderTotalMerOtherQuota = 0;// 进货订单 - 补货额度 - 其他品牌抵扣额度(总)
|
$orderTotalMerOtherQuota = 0;// 进货订单 - 补货额度 - 其他品牌抵扣额度(总)
|
||||||
|
|
||||||
|
$orderTotalQuotaIntegral = 0;// 订单总使用的惠民积分
|
||||||
|
$orderTotalQuotaIntegralPrice = 0;// 订单总使用惠民积分抵扣的金额
|
||||||
|
$orderTotalQuotaDiff = 0;// 惠民积分抵扣后总差价
|
||||||
|
$orderTotalQuotaDiffMoney = 0;// 惠民积分差价实际支付金额
|
||||||
|
|
||||||
// 获取当前进货商户的补货额度
|
// 获取当前进货商户的补货额度
|
||||||
$merQuotaInfo = app()->make(MerchantQuotaRepository::class)->getMerQuotaAndBrandInfo((int)$with_goods_mer_id);
|
$merQuotaInfo = app()->make(MerchantQuotaRepository::class)->getMerQuotaAndBrandInfo((int)$with_goods_mer_id);
|
||||||
$titleSurplusQuota = $merQuotaInfo['title_surplus_quota'] ?? 0;
|
$titleSurplusQuota = $merQuotaInfo['title_surplus_quota'] ?? 0;
|
||||||
|
|
@ -775,6 +782,18 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
$orderRandomReduction = 0;//当前订单随机立减金额
|
$orderRandomReduction = 0;//当前订单随机立减金额
|
||||||
$orderMerTitleQuota = 0;// 进货订单 - 补货额度 - 冠名品牌抵扣额度(本订单)
|
$orderMerTitleQuota = 0;// 进货订单 - 补货额度 - 冠名品牌抵扣额度(本订单)
|
||||||
$orderMerOtherQuota = 0;// 进货订单 - 补货额度 - 其他品牌抵扣额度(本订单)
|
$orderMerOtherQuota = 0;// 进货订单 - 补货额度 - 其他品牌抵扣额度(本订单)
|
||||||
|
// 惠民积分相关内容
|
||||||
|
$merInfo = Merchant::where('mer_id', $merchantCart['mer_id'])->field('merchant_sub_type,shop_mer_id')->findOrEmpty()->toArray();
|
||||||
|
$holdQuotaIntegral = 0;
|
||||||
|
if($merInfo['shop_mer_id'] > 0) {
|
||||||
|
$quotaIntegralHoldInfo = app()->make(ExchangeQuotaRepository::class)->getHoldInfo($uid, 5, $merInfo['shop_mer_id']);
|
||||||
|
$holdQuotaIntegral = (float)sprintf("%.2f", $quotaIntegralHoldInfo->surplus_quota - $quotaIntegralHoldInfo->freeze_quota);
|
||||||
|
}
|
||||||
|
$orderQuotaIntegral = 0;// 当前订单使用的惠民积分
|
||||||
|
$orderQuotaIntegralPrice = 0;// 当前订单使用惠民积分抵扣的金额
|
||||||
|
$orderQuotaDiff = 0;// 惠民积分抵扣后当前订单差价
|
||||||
|
$orderQuotaDiffMoney = 0;// 惠民积分当前订单差价实际支付金额
|
||||||
|
|
||||||
//计算积分抵扣
|
//计算积分抵扣
|
||||||
foreach($merchantCart['list'] as &$cart){
|
foreach($merchantCart['list'] as &$cart){
|
||||||
if($cart['product_type'] == 35){
|
if($cart['product_type'] == 35){
|
||||||
|
|
@ -802,34 +821,63 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
$cart['true_price'] = bcsub($cart['true_price'],$deductionAmount,2);
|
$cart['true_price'] = bcsub($cart['true_price'],$deductionAmount,2);
|
||||||
}
|
}
|
||||||
else if($cart['product_type'] == 36){
|
else if($cart['product_type'] == 36){
|
||||||
// 兑换酒道馆商品时 酒水卡积分抵扣处理
|
// 兑换酒道馆商品时 相关积分抵扣处理 商户子类型:0=默认,1=酒道馆/大型餐厅,2=小酒馆/中小型餐厅
|
||||||
// 当前商品消耗积分 如果持有酒水卡积分大于等于支付金额,使用支付金额;小于支付金额,使用酒水卡积分
|
if($merInfo['merchant_sub_type'] == 2){
|
||||||
$deductionAmount = (float)$exchangeIntegral >= (float)$cart['true_price'] ? (float)$cart['true_price'] : (float)$exchangeIntegral;// 实际抵扣金额
|
// 小酒馆处理
|
||||||
$exchangeIntegral = bcsub((float)$exchangeIntegral,(float)$deductionAmount,2);// 剩余酒水卡积分
|
if($quotaIntegralConfig['quota_integral_switch'] == 1){
|
||||||
$cart['exchange_integral'] = $deductionAmount;
|
$deductionAmount = (float)$holdQuotaIntegral >= (float)$cart['true_price'] ? (float)$cart['true_price'] : (float)$holdQuotaIntegral;// 实际抵扣金额
|
||||||
$cart['exchange_integral_price'] = $deductionAmount;
|
$holdQuotaIntegral = bcsub((float)$holdQuotaIntegral,(float)$deductionAmount,2);// 剩余惠民积分
|
||||||
// 订单总支付金额 先减去酒水卡积分抵扣金额
|
$cart['quota_integral'] = $deductionAmount;
|
||||||
$merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'],$deductionAmount,2);
|
$cart['quota_integral_price'] = $deductionAmount;
|
||||||
// 当前商品剩余应支付金额 进行补差价计算
|
// 订单总支付金额 先减去惠民积分抵扣金额
|
||||||
$cartTruePrice = bcsub($cart['true_price'],$deductionAmount,2);
|
$merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'],$deductionAmount,2);
|
||||||
if($cartTruePrice > 0){
|
// 当前商品剩余应支付金额 进行补差价计算
|
||||||
// 未完全抵扣 需要补差价
|
$cartTruePrice = bcsub($cart['true_price'],$deductionAmount,2);
|
||||||
$diffMoney = sprintf("%.2f", $cartTruePrice * $diffRate / 100);// 实际支付差价
|
if($cartTruePrice > 0){
|
||||||
|
// 未完全抵扣 需要补差价
|
||||||
$orderWineDiffMoney = bcadd($orderWineDiffMoney,$cartTruePrice,2);// 剩余差价
|
$diffMoney = sprintf("%.2f",$cartTruePrice * $quotaIntegralConfig['quota_integral_diff_rate'] / 100);// 实际支付差价
|
||||||
$orderWineDiffMoneyPrice = bcadd($orderWineDiffMoneyPrice,$diffMoney,2);// 实际支付差价金额
|
$orderQuotaDiff = bcadd($orderQuotaDiff,$cartTruePrice,2);// 剩余差价
|
||||||
$cart['wine_diff_money'] = $cartTruePrice;
|
$orderQuotaDiffMoney = bcadd($orderQuotaDiffMoney,$diffMoney,2);// 实际支付差价金额
|
||||||
$cart['wine_diff_money_price'] = $diffMoney;
|
$cart['quota_integral_diff'] = $cartTruePrice;
|
||||||
|
$cart['quota_integral_diff_money'] = $diffMoney;
|
||||||
// 修改商品支付金额
|
// 修改商品支付金额
|
||||||
$merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'], bcsub($cartTruePrice,$diffMoney,2),2);
|
$merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'], bcsub($cartTruePrice,$diffMoney,2),2);
|
||||||
$cartTruePrice = $diffMoney;
|
$cartTruePrice = $diffMoney;
|
||||||
|
}
|
||||||
|
$cart['true_price'] = $cartTruePrice;
|
||||||
|
// 当前订单使用的惠民积分和抵扣金额
|
||||||
|
$orderQuotaIntegral = bcadd($orderQuotaIntegral,$deductionAmount,2);
|
||||||
|
$orderQuotaIntegralPrice = bcadd($orderQuotaIntegralPrice,$deductionAmount,2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
// 酒道馆处理 当前商品消耗积分 如果持有酒水卡积分大于等于支付金额,使用支付金额;小于支付金额,使用酒水卡积分
|
||||||
|
$deductionAmount = (float)$exchangeIntegral >= (float)$cart['true_price'] ? (float)$cart['true_price'] : (float)$exchangeIntegral;// 实际抵扣金额
|
||||||
|
$exchangeIntegral = bcsub((float)$exchangeIntegral,(float)$deductionAmount,2);// 剩余酒水卡积分
|
||||||
|
$cart['exchange_integral'] = $deductionAmount;
|
||||||
|
$cart['exchange_integral_price'] = $deductionAmount;
|
||||||
|
// 订单总支付金额 先减去酒水卡积分抵扣金额
|
||||||
|
$merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'],$deductionAmount,2);
|
||||||
|
// 当前商品剩余应支付金额 进行补差价计算
|
||||||
|
$cartTruePrice = bcsub($cart['true_price'],$deductionAmount,2);
|
||||||
|
if($cartTruePrice > 0){
|
||||||
|
// 未完全抵扣 需要补差价
|
||||||
|
$diffMoney = sprintf("%.2f", $cartTruePrice * $diffRate / 100);// 实际支付差价
|
||||||
|
|
||||||
$cart['true_price'] = $cartTruePrice;
|
$orderWineDiffMoney = bcadd($orderWineDiffMoney,$cartTruePrice,2);// 剩余差价
|
||||||
// 当前订单使用的酒水卡积分和抵扣金额
|
$orderWineDiffMoneyPrice = bcadd($orderWineDiffMoneyPrice,$diffMoney,2);// 实际支付差价金额
|
||||||
$orderWineIntegral = bcadd($orderWineIntegral,$deductionAmount,2);
|
$cart['wine_diff_money'] = $cartTruePrice;
|
||||||
$orderWineIntegralPrice = bcadd($orderWineIntegralPrice,$deductionAmount,2);
|
$cart['wine_diff_money_price'] = $diffMoney;
|
||||||
|
|
||||||
|
// 修改商品支付金额
|
||||||
|
$merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'], bcsub($cartTruePrice,$diffMoney,2),2);
|
||||||
|
$cartTruePrice = $diffMoney;
|
||||||
|
}
|
||||||
|
$cart['true_price'] = $cartTruePrice;
|
||||||
|
// 当前订单使用的酒水卡积分和抵扣金额
|
||||||
|
$orderWineIntegral = bcadd($orderWineIntegral,$deductionAmount,2);
|
||||||
|
$orderWineIntegralPrice = bcadd($orderWineIntegralPrice,$deductionAmount,2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
//只有普通商品可以抵扣
|
//只有普通商品可以抵扣
|
||||||
|
|
@ -893,13 +941,18 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
$order_total_integral = bcadd($order_total_integral,$total_integral,0);
|
$order_total_integral = bcadd($order_total_integral,$total_integral,0);
|
||||||
$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);
|
||||||
|
|
||||||
|
// 随机立减
|
||||||
|
$orderTotalRandomReduction = bcadd($orderTotalRandomReduction,$orderRandomReduction,2);
|
||||||
// 订单总使用的酒水卡积分 & 总抵扣的金额
|
// 订单总使用的酒水卡积分 & 总抵扣的金额
|
||||||
$orderTotalWineIntegral = bcadd($orderTotalWineIntegral,$orderWineIntegral,2);
|
$orderTotalWineIntegral = bcadd($orderTotalWineIntegral,$orderWineIntegral,2);
|
||||||
$orderTotalWineIntegralPrice = bcadd($orderTotalWineIntegralPrice,$orderWineIntegralPrice,2);
|
$orderTotalWineIntegralPrice = bcadd($orderTotalWineIntegralPrice,$orderWineIntegralPrice,2);
|
||||||
$orderTotalRandomReduction = bcadd($orderTotalRandomReduction,$orderRandomReduction,2);
|
|
||||||
$orderTotalWineDiffMoney = bcadd($orderTotalWineDiffMoney,$orderWineDiffMoney,2);
|
$orderTotalWineDiffMoney = bcadd($orderTotalWineDiffMoney,$orderWineDiffMoney,2);
|
||||||
$orderTotalWineDiffMoneyPrice = bcadd($orderTotalWineDiffMoneyPrice,$orderWineDiffMoneyPrice,2);
|
$orderTotalWineDiffMoneyPrice = bcadd($orderTotalWineDiffMoneyPrice,$orderWineDiffMoneyPrice,2);
|
||||||
|
// 订单总使用的惠民积分 & 总抵扣的金额
|
||||||
|
$orderTotalQuotaIntegral = bcadd($orderTotalQuotaIntegral,$orderQuotaIntegral,2);
|
||||||
|
$orderTotalQuotaIntegralPrice = bcadd($orderTotalQuotaIntegralPrice,$orderQuotaIntegralPrice,2);
|
||||||
|
$orderTotalQuotaDiff = bcadd($orderTotalQuotaDiff,$orderQuotaDiff,2);
|
||||||
|
$orderTotalQuotaDiffMoney = bcadd($orderTotalQuotaDiffMoney,$orderQuotaDiffMoney,2);
|
||||||
// 订单使用的补货额度
|
// 订单使用的补货额度
|
||||||
$orderTotalMerTitleQuota = bcadd($orderTotalMerTitleQuota,$orderMerTitleQuota,2);
|
$orderTotalMerTitleQuota = bcadd($orderTotalMerTitleQuota,$orderMerTitleQuota,2);
|
||||||
$orderTotalMerOtherQuota = bcadd($orderTotalMerOtherQuota,$orderMerOtherQuota,2);
|
$orderTotalMerOtherQuota = bcadd($orderTotalMerOtherQuota,$orderMerOtherQuota,2);
|
||||||
|
|
@ -947,14 +1000,19 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
// 酒水卡积分抵扣情况
|
// 酒水卡积分抵扣情况
|
||||||
$merchantCart['order']['exchange_integral_price'] = $orderWineIntegralPrice;
|
$merchantCart['order']['exchange_integral_price'] = $orderWineIntegralPrice;
|
||||||
$merchantCart['order']['exchange_integral'] = $orderWineIntegral;
|
$merchantCart['order']['exchange_integral'] = $orderWineIntegral;
|
||||||
$merchantCart['order']['wine_diff_money'] = $orderWineDiffMoney;
|
$merchantCart['order']['wine_diff_money'] = $orderWineDiffMoney;
|
||||||
$merchantCart['order']['wine_diff_money_price'] = $orderWineDiffMoneyPrice;
|
$merchantCart['order']['wine_diff_money_price'] = $orderWineDiffMoneyPrice;
|
||||||
$merchantCart['order']['org_price'] = $org_price;
|
// 惠民积分抵扣情况
|
||||||
$merchantCart['order']['pay_price'] = $pay_price;
|
$merchantCart['order']['quota_integral'] = $orderQuotaIntegral;
|
||||||
$merchantCart['order']['coupon_price'] = $coupon_price;
|
$merchantCart['order']['quota_integral_price'] = $orderQuotaIntegralPrice;
|
||||||
|
$merchantCart['order']['quota_integral_diff'] = $orderQuotaDiff;
|
||||||
|
$merchantCart['order']['quota_integral_diff_money'] = $orderQuotaDiffMoney;
|
||||||
|
$merchantCart['order']['org_price'] = $org_price;
|
||||||
|
$merchantCart['order']['pay_price'] = $pay_price;
|
||||||
|
$merchantCart['order']['coupon_price'] = $coupon_price;
|
||||||
$merchantCart['order']['random_reduction'] = $orderRandomReduction;
|
$merchantCart['order']['random_reduction'] = $orderRandomReduction;
|
||||||
$merchantCart['order']['mer_quota_title'] = $orderMerTitleQuota;
|
$merchantCart['order']['mer_quota_title'] = $orderMerTitleQuota;
|
||||||
$merchantCart['order']['mer_quota_other'] = $orderMerOtherQuota;
|
$merchantCart['order']['mer_quota_other'] = $orderMerOtherQuota;
|
||||||
|
|
||||||
$order_price = bcadd($order_price,$pay_price,2);
|
$order_price = bcadd($order_price,$pay_price,2);
|
||||||
$order_total_price = bcadd($order_total_price,$total_price,2);
|
$order_total_price = bcadd($order_total_price,$total_price,2);
|
||||||
|
|
@ -979,8 +1037,14 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
$openIntegral = $merIntegralFlag && !$order_type && $sysIntegralConfig['integral_status'] && $sysIntegralConfig['integral_money'] > 0;
|
$openIntegral = $merIntegralFlag && !$order_type && $sysIntegralConfig['integral_status'] && $sysIntegralConfig['integral_money'] > 0;
|
||||||
|
|
||||||
|
|
||||||
$integralDeductionAmount = bcadd($order_total_integral_price,$orderTotalWineIntegralPrice,2);
|
|
||||||
$total_coupon = bcadd($order_svip_discount,bcadd(bcadd($total_platform_coupon_price,$order_coupon_price,2),$integralDeductionAmount,2),2);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$deductionAmount = (float)sprintf("%.2f",$order_total_integral_price + $orderTotalWineIntegralPrice + $orderTotalQuotaIntegralPrice);
|
||||||
|
$total_coupon = bcadd($order_svip_discount,bcadd(bcadd($total_platform_coupon_price,$order_coupon_price,2),$deductionAmount,2),2);
|
||||||
|
|
||||||
|
|
||||||
$data = compact(
|
$data = compact(
|
||||||
|
|
@ -1001,6 +1065,12 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
'orderTotalWineIntegralPrice',
|
'orderTotalWineIntegralPrice',
|
||||||
'orderTotalWineDiffMoney',
|
'orderTotalWineDiffMoney',
|
||||||
'orderTotalWineDiffMoneyPrice',
|
'orderTotalWineDiffMoneyPrice',
|
||||||
|
|
||||||
|
'orderTotalQuotaIntegral',
|
||||||
|
'orderTotalQuotaIntegralPrice',
|
||||||
|
'orderTotalQuotaDiff',
|
||||||
|
'orderTotalQuotaDiffMoney',
|
||||||
|
|
||||||
'orderTotalRandomReduction',
|
'orderTotalRandomReduction',
|
||||||
'orderTotalMerOtherQuota',
|
'orderTotalMerOtherQuota',
|
||||||
'orderTotalMerTitleQuota',
|
'orderTotalMerTitleQuota',
|
||||||
|
|
@ -1225,6 +1295,11 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
// 进货订单 - 补货额度抵扣金额
|
// 进货订单 - 补货额度抵扣金额
|
||||||
'mer_quota_title' => $merchantCart['order']['mer_quota_title'] ?? 0,
|
'mer_quota_title' => $merchantCart['order']['mer_quota_title'] ?? 0,
|
||||||
'mer_quota_other' => $merchantCart['order']['mer_quota_other'] ?? 0,
|
'mer_quota_other' => $merchantCart['order']['mer_quota_other'] ?? 0,
|
||||||
|
// 惠民积分
|
||||||
|
'quota_integral' => $merchantCart['order']['quota_integral'] ?? 0,
|
||||||
|
'quota_integral_price' => $merchantCart['order']['quota_integral_price'] ?? 0,
|
||||||
|
'quota_integral_diff' => $merchantCart['order']['quota_integral_diff'] ?? 0,
|
||||||
|
'quota_integral_diff_money' => $merchantCart['order']['quota_integral_diff_money'] ?? 0,
|
||||||
];
|
];
|
||||||
|
|
||||||
$allUseCoupon = array_merge($allUseCoupon,$merchantCart['order']['useCouponIds']);
|
$allUseCoupon = array_merge($allUseCoupon,$merchantCart['order']['useCouponIds']);
|
||||||
|
|
@ -1355,40 +1430,16 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
]);
|
]);
|
||||||
$user->save();
|
$user->save();
|
||||||
}
|
}
|
||||||
// 用户兑换酒道馆商品 减少酒水卡积分
|
// 循环处理单个订单
|
||||||
if($groupOrder['activity_type'] == 36 && $groupOrder['exchange_integral'] > 0){
|
|
||||||
$userInfo = User::where('uid',$user['uid'])->findOrEmpty();
|
|
||||||
$integralChangeFront = (float)$userInfo->exchange_integral;
|
|
||||||
$userInfo->exchange_integral -= (float)$groupOrder['exchange_integral'];
|
|
||||||
$userInfo->exchange_integral = $userInfo->exchange_integral > 0 ? $userInfo->exchange_integral : 0;
|
|
||||||
$userInfo->save();
|
|
||||||
ExchangeIntegralRecord::insert([
|
|
||||||
'uid' => $user['uid'],
|
|
||||||
'product_id' => 0,
|
|
||||||
'order_id' => 0,
|
|
||||||
'order_product_id' => 0,
|
|
||||||
'change_type' => 0,
|
|
||||||
'change_quantity' => (float)$groupOrder['exchange_integral'],
|
|
||||||
'change_front' => $integralChangeFront,
|
|
||||||
'change_after' => (float)$userInfo->exchange_integral,
|
|
||||||
'remark' => "兑换消费",
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
foreach($orderList as $k => $order){
|
|
||||||
$orderList[$k]['group_order_id'] = $groupOrder->group_order_id;
|
|
||||||
}
|
|
||||||
$orderProduct = [];
|
$orderProduct = [];
|
||||||
$orderStatus = [];
|
$orderStatus = [];
|
||||||
|
|
||||||
$quotaHoldInfo = app()->make(MerchantQuotaRepository::class)->getQuotaInfo($groupOrder['with_goods_mer_id']);
|
$quotaHoldInfo = app()->make(MerchantQuotaRepository::class)->getQuotaInfo($groupOrder['with_goods_mer_id']);
|
||||||
$quotaRecordInsertData = [];
|
$quotaRecordInsertData = [];
|
||||||
|
foreach($orderList as $k => $order){
|
||||||
foreach($orderList as $order){
|
$order['group_order_id'] = $orderList[$k]['group_order_id'] = $groupOrder->group_order_id;
|
||||||
$cartInfo = $order['cartInfo'];
|
$cartInfo = $order['cartInfo'];
|
||||||
unset($order['cartInfo']);
|
unset($order['cartInfo']);
|
||||||
//创建子订单
|
// 创建子订单
|
||||||
$_order = $this->dao->create($order);
|
$_order = $this->dao->create($order);
|
||||||
if($order['integral'] > 0){
|
if($order['integral'] > 0){
|
||||||
$bills[] = [
|
$bills[] = [
|
||||||
|
|
@ -1405,7 +1456,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
'status' => 1
|
'status' => 1
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
//创建发票信息
|
// 创建发票信息
|
||||||
if(isset($receipt_data[$_order['mer_id']])){
|
if(isset($receipt_data[$_order['mer_id']])){
|
||||||
app()
|
app()
|
||||||
->make(StoreOrderReceiptRepository::class)
|
->make(StoreOrderReceiptRepository::class)
|
||||||
|
|
@ -1514,41 +1565,15 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
// 进货订单 - 补货额度抵扣金额
|
// 进货订单 - 补货额度抵扣金额
|
||||||
'mer_quota_title' => $cart['mer_quota_title'] ?? 0,
|
'mer_quota_title' => $cart['mer_quota_title'] ?? 0,
|
||||||
'mer_quota_other' => $cart['mer_quota_other'] ?? 0,
|
'mer_quota_other' => $cart['mer_quota_other'] ?? 0,
|
||||||
|
// 惠民积分
|
||||||
|
'quota_integral' => $cart['quota_integral'] ?? 0,
|
||||||
|
'quota_integral_price' => $cart['quota_integral_price'] ?? 0,
|
||||||
|
'quota_integral_diff' => $cart['quota_integral_diff'] ?? 0,
|
||||||
|
'quota_integral_diff_money' => $cart['quota_integral_diff_money'] ?? 0,
|
||||||
];
|
];
|
||||||
// 根据商品类型进行特殊处理
|
|
||||||
if($cart['product_type'] == 36){
|
|
||||||
// 用户兑换商品 变更相关额度 酒类型:0=未知,1=瓶装酒,2=封坛酒
|
|
||||||
$wineType = (int)Product::where('product_id', $cart['product_id'])->value('wine_type');
|
|
||||||
if($wineType > 0){
|
|
||||||
// 额度类型:1=酒卡额度(瓶装酒),2=菜卡额度,3=封坛酒额度,4=加油卡额度
|
|
||||||
$quotaType = $wineType == 2 ? 3 : 1;
|
|
||||||
|
|
||||||
$userHoldInfo = app()->make(ExchangeQuotaRepository::class)
|
|
||||||
->searchModel(['uid'=>$user['uid'],'quota_type'=>$quotaType])
|
|
||||||
->findOrEmpty();
|
|
||||||
$changeFront = (float)$userHoldInfo->surplus_quota;
|
|
||||||
$userHoldInfo->use_quota += (float)$cart['total_price'];
|
|
||||||
$userHoldInfo->surplus_quota -= (float)$cart['total_price'];
|
|
||||||
$userHoldInfo->save();
|
|
||||||
ExchangeQuotaRecord::insert([
|
|
||||||
'uid' => $user['uid'],
|
|
||||||
'product_id' => 0,
|
|
||||||
'order_id' => 0,
|
|
||||||
'order_product_id' => 0,
|
|
||||||
'change_type' => 0,
|
|
||||||
'change_quantity' => (float)$cart['total_price'],
|
|
||||||
'change_front' => $changeFront,
|
|
||||||
'change_after' => (float)$userHoldInfo->surplus_quota,
|
|
||||||
'remark' => "兑换消费",
|
|
||||||
'source' => 2,
|
|
||||||
'quota_type' => $quotaType,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$userMerchantRepository->getInfo($uid,$order['mer_id']);
|
$userMerchantRepository->getInfo($uid,$order['mer_id']);
|
||||||
app()->make(MerchantRepository::class)->incSales($order['mer_id'],$order['total_num']);
|
app()->make(MerchantRepository::class)->incSales($order['mer_id'],$order['total_num']);
|
||||||
|
|
||||||
// 进货订单 并且存在补货额度减免 减少进货商户的补货额度
|
// 进货订单 并且存在补货额度减免 减少进货商户的补货额度
|
||||||
if($_order->activity_type == 35 && $_order->with_goods_mer_id > 0){
|
if($_order->activity_type == 35 && $_order->with_goods_mer_id > 0){
|
||||||
// 判断:是否存在冠名品牌额度
|
// 判断:是否存在冠名品牌额度
|
||||||
|
|
@ -1589,21 +1614,20 @@ class StoreOrderCreateRepository extends StoreOrderRepository{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理补货额度变更
|
// 处理补货额度变更
|
||||||
if($groupOrder['activity_type'] == 35){
|
if($groupOrder['activity_type'] == 35){
|
||||||
$quotaHoldInfo->save();
|
$quotaHoldInfo->save();
|
||||||
if(count($quotaRecordInsertData) > 0) app()->make(MerchantQuotaRecordRepository::class)->insertAll($quotaRecordInsertData);
|
if(count($quotaRecordInsertData) > 0) app()->make(MerchantQuotaRecordRepository::class)->insertAll($quotaRecordInsertData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(count($bills) > 0){
|
if(count($bills) > 0){
|
||||||
app()->make(UserBillRepository::class)->insertAll($bills);
|
app()->make(UserBillRepository::class)->insertAll($bills);
|
||||||
}
|
}
|
||||||
|
|
||||||
$storeOrderStatusRepository->batchCreateLog($orderStatus);
|
$storeOrderStatusRepository->batchCreateLog($orderStatus);
|
||||||
$storeOrderProductRepository->insertAll($orderProduct);
|
$storeOrderProductRepository->insertAll($orderProduct);
|
||||||
event('order.create',compact('groupOrder'));
|
event('order.create',compact('groupOrder'));
|
||||||
|
|
||||||
|
|
||||||
|
// debug("结束");
|
||||||
return $groupOrder;
|
return $groupOrder;
|
||||||
});
|
});
|
||||||
foreach($merchantCartList as $merchantCart){
|
foreach($merchantCartList as $merchantCart){
|
||||||
|
|
|
||||||
|
|
@ -2632,6 +2632,9 @@ class ProductRepository extends BaseRepository
|
||||||
})
|
})
|
||||||
->when(isset($search['brand_id']) && $search['brand_id'] !== '', function ($query) use ($search) {
|
->when(isset($search['brand_id']) && $search['brand_id'] !== '', function ($query) use ($search) {
|
||||||
$query->where('Product.brand_id', $search['brand_id']);
|
$query->where('Product.brand_id', $search['brand_id']);
|
||||||
|
})
|
||||||
|
->when(isset($search['merchant_sub_type']) && $search['merchant_sub_type'] !== '', function ($query) use ($search) {
|
||||||
|
$query->where('Merchant.merchant_sub_type', $search['merchant_sub_type']);
|
||||||
});
|
});
|
||||||
// 查询内容
|
// 查询内容
|
||||||
$field = [
|
$field = [
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,12 @@ class Wine extends BaseController{
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function merList(){
|
public function merList(){
|
||||||
|
$merchantSubType = $this->request->param('merchant_sub_type', 1);
|
||||||
// 商户类别:0=普通商户,1=酒道馆,2=供应商
|
// 商户类别:0=普通商户,1=酒道馆,2=供应商
|
||||||
$where['merchant_type'] = 1;
|
$where['merchant_type'] = 1;
|
||||||
$where['mer_state'] = 1;
|
$where['mer_state'] = 1;
|
||||||
$where['status'] = 1;
|
$where['status'] = 1;
|
||||||
|
$where['merchant_sub_type'] = $merchantSubType ?? 1;
|
||||||
|
|
||||||
$list = app()->make(MerchantRepository::class)
|
$list = app()->make(MerchantRepository::class)
|
||||||
->search($where)
|
->search($where)
|
||||||
|
|
@ -48,7 +50,7 @@ class Wine extends BaseController{
|
||||||
*/
|
*/
|
||||||
public function goodsList(){
|
public function goodsList(){
|
||||||
// 参数获取
|
// 参数获取
|
||||||
$search = $this->request->params(['store_name','lat','lng','brand_id','store_category_id','mer_id']);
|
$search = $this->request->params(['store_name','lat','lng','brand_id','store_category_id','mer_id',['merchant_sub_type', 1]]);
|
||||||
[$page, $limit] = $this->getPage();
|
[$page, $limit] = $this->getPage();
|
||||||
$data = app()->make(ProductRepository::class)->getWineList($search, $page, $limit);
|
$data = app()->make(ProductRepository::class)->getWineList($search, $page, $limit);
|
||||||
|
|
||||||
|
|
@ -63,15 +65,10 @@ class Wine extends BaseController{
|
||||||
public function cartList(){
|
public function cartList(){
|
||||||
// 参数获取
|
// 参数获取
|
||||||
$uid = $this->request->uid();
|
$uid = $this->request->uid();
|
||||||
$list = (array)app()->make(StoreCartRepository::class)
|
$params = $this->request->params(['merchant_sub_type', 1]);
|
||||||
->getSearch([
|
$params['uid'] = $uid;
|
||||||
'is_pay' => 0,
|
// 列表信息获取
|
||||||
'is_del' => 0,
|
$list = app()->make(StoreCartRepository::class)->wineSearchModel($params)
|
||||||
'is_new' => 0,
|
|
||||||
'is_fail' => 0,
|
|
||||||
'product_type' => 36,
|
|
||||||
'uid' => $uid,
|
|
||||||
])
|
|
||||||
->field(['cart_id','product_type','product_id','product_attr_unique','cart_num','is_batch','batch_num'])
|
->field(['cart_id','product_type','product_id','product_attr_unique','cart_num','is_batch','batch_num'])
|
||||||
->with([
|
->with([
|
||||||
'productAttr' => function($query){
|
'productAttr' => function($query){
|
||||||
|
|
@ -84,6 +81,7 @@ class Wine extends BaseController{
|
||||||
->select()
|
->select()
|
||||||
->toArray();
|
->toArray();
|
||||||
|
|
||||||
|
|
||||||
return app('json')->success($list);
|
return app('json')->success($list);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|
@ -95,15 +93,10 @@ class Wine extends BaseController{
|
||||||
public function cartIds(){
|
public function cartIds(){
|
||||||
// 参数获取
|
// 参数获取
|
||||||
$uid = $this->request->uid();
|
$uid = $this->request->uid();
|
||||||
$ids = (array)app()->make(StoreCartRepository::class)
|
$params = $this->request->params(['merchant_sub_type', 1]);
|
||||||
->getSearch([
|
$params['uid'] = $uid;
|
||||||
'is_pay' => 0,
|
// 信息获取
|
||||||
'is_del' => 0,
|
$ids = app()->make(StoreCartRepository::class)->wineSearchModel($params)->column('cart_id');
|
||||||
'is_new' => 0,
|
|
||||||
'is_fail' => 0,
|
|
||||||
'product_type' => 36,
|
|
||||||
'uid' => $uid,
|
|
||||||
])->column('cart_id');
|
|
||||||
|
|
||||||
return app('json')->success($ids);
|
return app('json')->success($ids);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,10 @@ return [
|
||||||
'pay_success_order' => [\crmeb\listens\pay\OrderPaySuccessListen::class],
|
'pay_success_order' => [\crmeb\listens\pay\OrderPaySuccessListen::class],
|
||||||
'pay_success_presell' => [\crmeb\listens\pay\PresellPaySuccessListen::class],
|
'pay_success_presell' => [\crmeb\listens\pay\PresellPaySuccessListen::class],
|
||||||
'pay_success_meal' => [\crmeb\listens\pay\MealSuccessListen::class],
|
'pay_success_meal' => [\crmeb\listens\pay\MealSuccessListen::class],
|
||||||
|
// 订单创建成功
|
||||||
|
'order.create' => [
|
||||||
|
'app\listener\exchangeQuota\OrderCreateEvent'
|
||||||
|
],
|
||||||
// 订单支付成功事件触发
|
// 订单支付成功事件触发
|
||||||
'order.paySuccess' => [
|
'order.paySuccess' => [
|
||||||
// 赠送酒卡额度
|
// 赠送酒卡额度
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,188 @@
|
||||||
|
<?php
|
||||||
|
namespace app\listener\exchangeQuota;
|
||||||
|
|
||||||
|
use app\common\model\store\product\Product;
|
||||||
|
use app\common\model\user\ExchangeIntegralRecord;
|
||||||
|
use app\common\model\user\ExchangeQuotaRecord;
|
||||||
|
use app\common\model\user\User;
|
||||||
|
use app\common\repositories\store\order\StoreOrderRepository;
|
||||||
|
use app\common\repositories\user\ExchangeQuotaRepository;
|
||||||
|
use think\facade\Log;
|
||||||
|
|
||||||
|
class OrderCreateEvent{
|
||||||
|
private $groupOrder;
|
||||||
|
|
||||||
|
public function handle($params){
|
||||||
|
// Log::info('订单创建成功 - 开始: '.var_export($params,1));
|
||||||
|
$this->groupOrder = $params['groupOrder'] ?? [];
|
||||||
|
try{
|
||||||
|
// 根据订单类型进行对应的处理
|
||||||
|
switch((int)$this->groupOrder->activity_type){
|
||||||
|
// 酒道馆和小酒馆兑换订单
|
||||||
|
case 36:$this->quotaAndIntegralHandle();break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}catch(\Exception $e){
|
||||||
|
$data = [
|
||||||
|
'uid' => $this->groupOrder->uid,
|
||||||
|
'group_order_id' => $this->groupOrder->group_order_id,
|
||||||
|
'msg' => $e->getMessage()
|
||||||
|
];
|
||||||
|
Log::info('订单创建成功 - 错误: '.var_export($data,1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 获取订单列表
|
||||||
|
private function getOrderList($field = '*', $orderProductField = '*'){
|
||||||
|
return app()->make(StoreOrderRepository::class)
|
||||||
|
->getSearch(['group_order_id' => $this->groupOrder->group_order_id])
|
||||||
|
->field($field)
|
||||||
|
->with([
|
||||||
|
'orderProduct' => function($query) use ($orderProductField){
|
||||||
|
return $query->field($orderProductField)->with(['product'=>function($sql){
|
||||||
|
$sql->field('product_id,wine_type')->bind(['wine_type']);
|
||||||
|
}]);
|
||||||
|
},
|
||||||
|
'merchant' => function($query){
|
||||||
|
return $query->field('mer_id,mer_name,merchant_type,merchant_sub_type,shop_mer_id');
|
||||||
|
},
|
||||||
|
])
|
||||||
|
->select()
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
// 酒道馆和小酒馆兑换订单生成前处理
|
||||||
|
private function quotaAndIntegralHandle(){
|
||||||
|
// 获取订单列表
|
||||||
|
$orderField = 'order_id,group_order_id,uid,mer_id,quota_integral,quota_integral_price,quota_integral_diff,quota_integral_diff_money';
|
||||||
|
$orderProductField = [
|
||||||
|
'uid',
|
||||||
|
'order_product_id',
|
||||||
|
'order_id',
|
||||||
|
'product_id',
|
||||||
|
'total_price',
|
||||||
|
'exchange_integral',
|
||||||
|
'exchange_integral_price',
|
||||||
|
'wine_diff_money',
|
||||||
|
'wine_diff_money_price',
|
||||||
|
'quota_integral',
|
||||||
|
'quota_integral_price',
|
||||||
|
'quota_integral_diff',
|
||||||
|
'quota_integral_diff_money'
|
||||||
|
];
|
||||||
|
$orderList = $this->getOrderList($orderField, $orderProductField);
|
||||||
|
// 用户持有酒水卡积分
|
||||||
|
$userInfo = User::where('uid', $this->groupOrder->uid)->findOrEmpty();
|
||||||
|
$holdQuotaInfo = app()->make(ExchangeQuotaRepository::class)->getHoldInfo($this->groupOrder->uid, 1);// 酒卡额度
|
||||||
|
$holdWineQuotaInfo = app()->make(ExchangeQuotaRepository::class)->getHoldInfo($this->groupOrder->uid, 3);// 封坛酒额度
|
||||||
|
// 循环处理
|
||||||
|
$exchangeIntegralRecordData = [];
|
||||||
|
$exchangeQuotaRecordData = [];
|
||||||
|
foreach($orderList as $orderInfo){
|
||||||
|
$merInfo = $orderInfo['merchant'] ?? [];
|
||||||
|
$quotaIntegralHoldInfo = app()->make(ExchangeQuotaRepository::class)->getHoldInfo($orderInfo['uid'], 5, $merInfo['shop_mer_id']);
|
||||||
|
// 循环订单商品
|
||||||
|
foreach($orderInfo['orderProduct'] as $productInfo){
|
||||||
|
if($merInfo['merchant_sub_type'] == 2 && $productInfo['quota_integral'] > 0){
|
||||||
|
// 小酒馆 减少惠民积分
|
||||||
|
$changeFront = (float)$quotaIntegralHoldInfo->surplus_quota;
|
||||||
|
$quotaIntegralHoldInfo->use_quota += (float)$productInfo['quota_integral'];// 总额度
|
||||||
|
$quotaIntegralHoldInfo->surplus_quota -= (float)$productInfo['quota_integral'];// 剩余额度
|
||||||
|
$exchangeQuotaRecordData[] = [
|
||||||
|
'uid' => $productInfo['uid'],
|
||||||
|
'product_id' => $productInfo['product_id'],
|
||||||
|
'order_id' => $productInfo['order_id'],
|
||||||
|
'order_product_id' => $productInfo['order_product_id'],
|
||||||
|
'change_type' => 0,
|
||||||
|
'change_quantity' => (float)$productInfo['quota_integral'],
|
||||||
|
'change_front' => $changeFront,
|
||||||
|
'change_after' => (float)$quotaIntegralHoldInfo->surplus_quota,
|
||||||
|
'mer_id' => $orderInfo['mer_id'],
|
||||||
|
'remark' => '兑换商品减少',
|
||||||
|
'quota_type' => 5,
|
||||||
|
'source' => 2,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
else if($merInfo['merchant_sub_type'] != 2 && $productInfo['exchange_integral'] > 0){
|
||||||
|
// 酒道馆 减少酒水卡积分
|
||||||
|
$integralChangeFront = (float)$userInfo->exchange_integral;
|
||||||
|
$userInfo->exchange_integral -= (float)$productInfo['exchange_integral'];
|
||||||
|
$userInfo->exchange_integral = $userInfo->exchange_integral > 0 ? $userInfo->exchange_integral : 0;
|
||||||
|
$exchangeIntegralRecordData[] = [
|
||||||
|
'uid' => $productInfo['uid'],
|
||||||
|
'product_id' => $productInfo['product_id'],
|
||||||
|
'order_id' => $productInfo['order_id'],
|
||||||
|
'order_product_id' => $productInfo['order_product_id'],
|
||||||
|
'change_type' => 0,
|
||||||
|
'change_quantity' => (float)$productInfo['exchange_integral'],
|
||||||
|
'change_front' => $integralChangeFront,
|
||||||
|
'change_after' => (float)$userInfo->exchange_integral,
|
||||||
|
'remark' => "兑换商品减少",
|
||||||
|
];
|
||||||
|
// 酒卡额度处理 酒类型:0=未知,1=瓶装酒,2=封坛酒
|
||||||
|
$wineType = (int)$productInfo['wine_type'] ?? 1;
|
||||||
|
if($wineType == 1){
|
||||||
|
// 瓶装酒额度变更
|
||||||
|
$changeFront = (float)$holdQuotaInfo->surplus_quota;
|
||||||
|
$holdQuotaInfo->use_quota += (float)$productInfo['total_price'];
|
||||||
|
$holdQuotaInfo->surplus_quota -= (float)$productInfo['total_price'];
|
||||||
|
$exchangeQuotaRecordData[] = [
|
||||||
|
'uid' => $productInfo['uid'],
|
||||||
|
'product_id' => $productInfo['product_id'],
|
||||||
|
'order_id' => $productInfo['order_id'],
|
||||||
|
'order_product_id' => $productInfo['order_product_id'],
|
||||||
|
'change_type' => 0,
|
||||||
|
'change_quantity' => (float)$productInfo['total_price'],
|
||||||
|
'change_front' => $changeFront,
|
||||||
|
'change_after' => (float)$quotaIntegralHoldInfo->surplus_quota,
|
||||||
|
'mer_id' => $orderInfo['mer_id'],
|
||||||
|
'remark' => '兑换商品减少',
|
||||||
|
'quota_type' => 1,
|
||||||
|
'source' => 2,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
else if($wineType == 2){
|
||||||
|
// 封坛酒额度变更
|
||||||
|
$changeFront = (float)$holdWineQuotaInfo->surplus_quota;
|
||||||
|
$holdWineQuotaInfo->use_quota += (float)$productInfo['total_price'];
|
||||||
|
$holdWineQuotaInfo->surplus_quota -= (float)$productInfo['total_price'];
|
||||||
|
$exchangeQuotaRecordData[] = [
|
||||||
|
'uid' => $productInfo['uid'],
|
||||||
|
'product_id' => $productInfo['product_id'],
|
||||||
|
'order_id' => $productInfo['order_id'],
|
||||||
|
'order_product_id' => $productInfo['order_product_id'],
|
||||||
|
'change_type' => 0,
|
||||||
|
'change_quantity' => (float)$productInfo['total_price'],
|
||||||
|
'change_front' => $changeFront,
|
||||||
|
'change_after' => (float)$quotaIntegralHoldInfo->surplus_quota,
|
||||||
|
'mer_id' => $orderInfo['mer_id'],
|
||||||
|
'remark' => '兑换商品减少',
|
||||||
|
'quota_type' => 3,
|
||||||
|
'source' => 2,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$quotaIntegralHoldInfo->save();
|
||||||
|
}
|
||||||
|
// 保存用户修改
|
||||||
|
$userInfo->save();
|
||||||
|
$holdQuotaInfo->save();
|
||||||
|
$holdWineQuotaInfo->save();
|
||||||
|
if(count($exchangeIntegralRecordData) > 0) ExchangeIntegralRecord::insertAll($exchangeIntegralRecordData);
|
||||||
|
if(count($exchangeQuotaRecordData) > 0) ExchangeQuotaRecord::insertAll($exchangeQuotaRecordData);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -28,61 +28,52 @@ class OrderPaySuccessEvent{
|
||||||
|
|
||||||
public function handle($groupOrder){
|
public function handle($groupOrder){
|
||||||
$groupOrder = $groupOrder['groupOrder'];
|
$groupOrder = $groupOrder['groupOrder'];
|
||||||
|
// Log::info('支付成功 - 赠送酒卡额度 - 开始: '.var_export([
|
||||||
|
// 'uid' => $groupOrder->uid,
|
||||||
|
// 'group_order_id' => $groupOrder->group_order_id,
|
||||||
|
// 'activity_type' => $groupOrder->activity_type
|
||||||
|
// ],1));
|
||||||
try{
|
try{
|
||||||
// Log::info('支付成功 - 赠送酒卡额度 - 开始: '.var_export([
|
// 根据订单类型进行对应的处理
|
||||||
// 'uid' => $groupOrder->uid,
|
switch((int)$groupOrder->activity_type){
|
||||||
// 'group_order_id' => $groupOrder->group_order_id,
|
|
||||||
// 'activity_type' => $groupOrder->activity_type
|
|
||||||
// ],1));
|
|
||||||
if($groupOrder->activity_type == 30){
|
|
||||||
// 在线支付订单
|
// 在线支付订单
|
||||||
$this->giveExchangeIntegral($groupOrder);
|
case 30:$this->giveExchangeIntegral($groupOrder);break;
|
||||||
}
|
|
||||||
else if($groupOrder->activity_type == 31){
|
|
||||||
// 兑换商品补差价处理
|
// 兑换商品补差价处理
|
||||||
$this->exchangeGoodsHandle($groupOrder);
|
case 31:$this->exchangeGoodsHandle($groupOrder);break;
|
||||||
}
|
|
||||||
else if($groupOrder->activity_type == 32){
|
|
||||||
// 代理入驻支付
|
// 代理入驻支付
|
||||||
$this->agentPaySuccessHandle($groupOrder);
|
case 32:$this->agentPaySuccessHandle($groupOrder);break;
|
||||||
}
|
|
||||||
else if($groupOrder->activity_type == 33){
|
|
||||||
// 加入活动支付成功
|
// 加入活动支付成功
|
||||||
$this->joinActivitySuccessHandle($groupOrder);
|
case 33:$this->joinActivitySuccessHandle($groupOrder);break;
|
||||||
}
|
|
||||||
else if($groupOrder->activity_type == 34){
|
|
||||||
// 邀请码激活
|
// 邀请码激活
|
||||||
$this->inviteCodeActivation($groupOrder);
|
case 34:$this->inviteCodeActivation($groupOrder);break;
|
||||||
}
|
|
||||||
else if($groupOrder->activity_type == 35){
|
|
||||||
// 进货订单
|
// 进货订单
|
||||||
|
case 35:break;
|
||||||
}
|
// 酒道馆和小酒馆兑换订单
|
||||||
else if($groupOrder->activity_type == 37){
|
case 36:break;
|
||||||
// 共创股东加入
|
// 共创股东加入
|
||||||
foreach($groupOrder->orderList as $orderInfo){
|
case 37:
|
||||||
$id = app()->make(MerchantShareholderRepository::class)->getSearch(['order_id'=>(int)$orderInfo->order_id])->value('id');
|
foreach($groupOrder->orderList as $orderInfo){
|
||||||
if($id > 0) app()->make(MerchantShareholderRepository::class)->joinSuccess($id);
|
$id = app()->make(MerchantShareholderRepository::class)->getSearch(['order_id'=>(int)$orderInfo->order_id])->value('id');
|
||||||
}
|
if($id > 0) app()->make(MerchantShareholderRepository::class)->joinSuccess($id);
|
||||||
}
|
}
|
||||||
else if($groupOrder->activity_type == 38){
|
break;
|
||||||
// 配送商缴费支付成功
|
// 配送商缴费支付成功
|
||||||
foreach($groupOrder->orderList as $orderInfo){
|
case 38:
|
||||||
AgentDelivery::update(['status' => 1],['order_id' => (int)$orderInfo->order_id]);
|
foreach($groupOrder->orderList as $orderInfo){
|
||||||
}
|
AgentDelivery::update(['status' => 1],['order_id' => (int)$orderInfo->order_id]);
|
||||||
}
|
}
|
||||||
else{
|
break;
|
||||||
// 其他订单
|
// 其他订单
|
||||||
$this->orderPaySuccessHandle($groupOrder);
|
default:
|
||||||
// 订单支付成功 触发购买商品升级
|
$this->orderPaySuccessHandle($groupOrder);
|
||||||
Queue::push(UserBrokerageLevelJob::class,[
|
// 订单支付成功 触发购买商品升级
|
||||||
'uid' => $groupOrder->uid,
|
Queue::push(UserBrokerageLevelJob::class,[
|
||||||
'type' => 'many_goods',
|
'uid' => $groupOrder->uid,
|
||||||
'inc' => 0,
|
'type' => 'many_goods',
|
||||||
'group_order_id' => $groupOrder->group_order_id
|
'inc' => 0,
|
||||||
]);
|
'group_order_id' => $groupOrder->group_order_id
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}catch(\Exception $e){
|
}catch(\Exception $e){
|
||||||
$data = [
|
$data = [
|
||||||
'uid' => $groupOrder->uid,
|
'uid' => $groupOrder->uid,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue