From a4b3ee325c7354579d495bc74a777e494e5ec38c Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Fri, 06 Feb 2026 18:18:44 +0800
Subject: [PATCH] 商品可以价格面议 选择走访时显示输入走访企业名 分会添加活动时要总会审核 分类添加人数限制,添加活动选择了填写人数限制的分类时活动名额下显示该分类人数限制为15 同一个企业30天内只能走访一次,在30天内走访同一个企业时提示该企业已被走访xx天后才可以从新走访
---
admin/app/common/service/order/OrderCompleteService.php | 78 +++++++++++++++++++++++++++++++++++++--
1 files changed, 74 insertions(+), 4 deletions(-)
diff --git a/admin/app/common/service/order/OrderCompleteService.php b/admin/app/common/service/order/OrderCompleteService.php
index 926c0bf..cdb66e5 100644
--- a/admin/app/common/service/order/OrderCompleteService.php
+++ b/admin/app/common/service/order/OrderCompleteService.php
@@ -2,16 +2,20 @@
namespace app\common\service\order;
+use app\common\model\plus\coupon\UserCoupon as UserCouponModel;
+use app\common\model\plus\team\Apply as teamApplyModel;
use app\common\library\helper;
use app\common\model\plus\bonus\Order as BonusOrderModel;
use app\common\model\settings\Setting;
use app\common\model\supplier\Capital as SupplierCapitalModel;
use app\common\model\supplier\Supplier as SupplierModel;
+use app\common\model\user\ActivationCode;
use app\common\model\user\User as UserModel;
use app\common\model\settings\Setting as SettingModel;
use app\common\model\plus\agent\Order as AgentOrderModel;
use app\common\model\plus\team\Order as TeamOrderModel;
use app\common\model\user\PointsLog as PointsLogModel;
+use app\common\model\user\ConsumptionLog as ConsumptionLogModel;
use app\common\enum\order\OrderTypeEnum;
use app\common\model\order\OrderSettled as OrderSettledModel;
use app\supplier\model\store\Order as StoreOrderModel;
@@ -22,7 +26,7 @@
use app\common\model\plus\shareholder\Setting as ShareholderSettingModel;
use app\common\model\plus\shareholder\Bonus as ShareholderBonusModel;
use app\common\model\plus\vip\Order as VipOrderModel;
-
+use app\common\model\plus\operations\Order as OperationsOrderModel;
/**
* 已完成订单结算服务类
*/
@@ -78,13 +82,36 @@
}
// 发放分销商佣金,发放团队分红
foreach ($orderList as $order) {
+ // 赠送等级积分给用户
+ $user = UserModel::detail($order['user_id']);
if ($order['is_newcomer']==1){
- // 赠送等级积分给用户
- $user = UserModel::detail($order['user_id']);
$points = $order['pay_price'];
- $user->setIncPoints($points, '新人专区购买商品专享订单奖励积分');
+ if($order['supplier']['gift_type']==10){
+ $user->setIncPoints($points, '新人专区购买商品专享订单奖励积分');
+ }else{
+ $user->setIncConsumption($points, '新人专区购买商品专享订单奖励消费券');
+ }
+ }
+ if ($order['product_type']==10){
+ $points = $order['pay_price'];
+ $user->setIncPoints($points, '品牌专区购买商品专享订单奖励积分',0,true,1);
+ }
+ (new teamApplyModel())->becomeTeamByAgent($order['user_id'],70,$order['app_id']);
+ //生成激活码
+ (new ActivationCode())->generateCodes($order);
+ foreach ($order['product'] as $product){
+ //赠送优惠券
+ if ($product['open_coupon'] && $product['open_coupons']) {
+ $open_coupons=$product['open_coupons'];
+ if(!is_array($open_coupons)){
+ $open_coupons=json_decode($open_coupons,1);
+ }
+ (new UserCouponModel)->addUserCardCoupon($open_coupons, $user,$order['order_id']);
+ }
}
AgentOrderModel::grantMoney($order, $this->orderType);
+ // 发放运营中心佣金
+ OperationsOrderModel::grantMoney($order, $this->orderType);
// 发放团队分红 by yj
TeamOrderModel::grantMoney($order, $this->orderType);
// 发放会员分红
@@ -119,6 +146,8 @@
$this->setIncUserExpend($orderList);
// 处理订单赠送的积分
$this->setGiftPointsBonus($orderList);
+ // 处理订单赠送的消费券
+ $this->setGiftConsumptionBonus($orderList);
// 将订单设置为已结算
$this->model->onBatchUpdate($orderIds, ['is_settled' => 1,'settled_time' => time(),'is_settled_team' => 1]);
// 供应商结算
@@ -298,6 +327,47 @@
}
return true;
}
+ /**
+ * 处理订单赠送的消费券
+ */
+ private function setGiftConsumptionBonus($orderList)
+ {
+ // 计算用户所得消费券
+ $userData = [];
+ $logData = [];
+ foreach ($orderList as $order) {
+ // 计算用户所得消费券
+ $pointsBonus = $order['consumption_bonus'];
+ if ($pointsBonus <= 0) continue;
+ // 减去订单退款的积分
+ foreach ($order['product'] as $product) {
+ if (
+ !empty($product['refund'])
+ && $product['refund']['type']['value'] == 10 // 售后类型:退货退款
+ && $product['refund']['is_agree']['value'] == 10 // 商家审核:已同意
+ ) {
+ $pointsBonus -= $product['consumption_bonus'];
+ }
+ }
+ // 计算用户所得积分
+ !isset($userData[$order['user_id']]) && $userData[$order['user_id']] = 0;
+ $userData[$order['user_id']] += $pointsBonus;
+ // 整理用户积分变动明细
+ $logData[] = [
+ 'user_id' => $order['user_id'],
+ 'value' => $pointsBonus,
+ 'describe' => "订单赠送:{$order['order_no']}",
+ 'app_id' => $order['app_id'],
+ ];
+ }
+ if (!empty($userData)) {
+ // 累积到会员表记录
+ $this->UserModel->onBatchIncConsumption($userData);
+ // 批量新增积分明细记录
+ (new ConsumptionLogModel)->onBatchAdd($logData);
+ }
+ return true;
+ }
/**
* 累积用户实际消费金额
--
Gitblit v1.9.2