|
@@ -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``
|