Kirin 3 anos atrás
pai
commit
b6405c5cc2
2 arquivos alterados com 39 adições e 2 exclusões
  1. 27 2
      app/models/store/StoreOrder.php
  2. 12 0
      app/models/user/Achievement.php

+ 27 - 2
app/models/store/StoreOrder.php

@@ -7,6 +7,7 @@
 
 namespace app\models\store;
 
+use app\admin\model\store\StoreProductCate;
 use app\admin\model\system\ShippingTemplatesFree;
 use app\admin\model\system\ShippingTemplatesRegion;
 use app\models\store\StoreProductReturnLog;
@@ -21,7 +22,8 @@ use crmeb\traits\ModelTrait;
 use think\facade\Log;
 use app\models\system\SystemStore;
 use app\models\routine\RoutineTemplate;
-use app\models\user\{AreaReturnLog,
+use app\models\user\{Achievement,
+    AreaReturnLog,
     PartnerReturnLog,
     User,
     UserAddress,
@@ -820,11 +822,34 @@ class StoreOrder extends BaseModel
         UserBill::expend('购买商品', $order['uid'], 'now_money', 'pay_money', $order['pay_price'], $order['id'], $now_money, '支付' . floatval($order['pay_price']) . '元购买商品');
         //支付成功后
         event('OrderPaySuccess', [$order, $formId]);
-        $res = $res1 && $resPink && UserSpread::setSpreadSure($order['uid']) && User::backOrderBrokerage($order) && self::backGroupAward($order) && User::backOrderBrokerageSP($order);
+        $res = $res1 && $resPink && UserSpread::setSpreadSure($order['uid']) && User::backOrderBrokerage($order) && self::backGroupAward($order) && User::backOrderBrokerageSP($order) && self::addAchievement($order);
         UserLevel::setLevelComplete($order['uid']);
         return false !== $res;
     }
 
+    public static function addAchievement($orderInfo)
+    {
+        $cartId = is_string($orderInfo['cart_id']) ? json_decode($orderInfo['cart_id'], true) : $orderInfo['cart_id'];
+        $cartInfo = StoreOrderCartInfo::whereIn('cart_id', $cartId)->column('cart_info');
+        $sum_sp = 0;
+        foreach ($cartInfo as $value) {
+            $product = json_decode($value, true);
+            if (isset($product['productInfo'])) {
+                $cates = StoreProductCate::where('product_id', $product['product_id'])->column('cate_id');
+                if (in_array(49, $cates)) {
+                    $sum_sp += ($product['cart_num'] ?? 0);
+                }
+            }
+        }
+        $res = Achievement::create(['uid' => $orderInfo['uid'], 'from_uid' => $orderInfo['uid'], 'add_time' => time(), 'achievement' => $sum_sp]);
+        $user = User::get($orderInfo['uid']);
+        $spread_uid = User::get($user['spread_uid']);
+        while ($spread_uid) {
+            $res = $res && Achievement::create(['uid' => $spread_uid['uid'], 'from_uid' => $user['uid'], 'add_time' => time(), 'achievement' => $sum_sp]);
+        }
+        return $res;
+    }
+
     /**
      * @param $order
      * @return bool``

+ 12 - 0
app/models/user/Achievement.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace app\models\user;
+
+use app\models\user\User;
+use app\models\user\UserBill;
+use crmeb\basic\BaseModel;
+
+class Achievement extends BaseModel
+{
+
+}