diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php
index 3ea2e26aa..9a997a7bd 100644
--- a/app/api/logic/order/OrderLogic.php
+++ b/app/api/logic/order/OrderLogic.php
@@ -534,7 +534,11 @@ class OrderLogic extends BaseLogic
             $money = $financeFlow->where(['order_id' => $order['id'], 'financial_pm' => 1, 'financial_type' => 2])->value('number') ?? 0;
             $financeFlowLogic->updateStatusStore($order['id'], $order['store_id'], $money, $deposit);
             //积分结算
-            if($order['is_storage']==0&&$order['source']==0){
+            $user_ship=-1;
+            if($order['uid']){
+                $user_ship=User::where('id',$order['uid'])->value('user_ship');
+            }
+            if($order['is_storage']==0&&$order['source']==0&&in_array($user_ship,[0,4])){
                 UserSignLogic::WriteOff($order);
             }
             Db::commit();
diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php
index c2b36788c..566bfbf91 100644
--- a/app/common/logic/PayNotifyLogic.php
+++ b/app/common/logic/PayNotifyLogic.php
@@ -96,15 +96,15 @@ class PayNotifyLogic extends BaseLogic
         $capitalFlowDao->userExpense('user_order_balance_pay', 'order', $order['id'], $order['pay_price'], '', 0, $order['store_id']);
         self::dealProductLog($order);
         if ($order['shipping_type'] == 3) {
-//            self::descStock($order['id']);
+            //            self::descStock($order['id']);
         }
         self::afterPay($order);
-        if($order['reservation'] == 1&& in_array($order['shipping_type'],[1,2])){
-            $checkArr =[
-                'cart_id'=>$order['cart_id'],
-                'store_id'=>$order['store_id'],
+        if ($order['reservation'] == 1 && in_array($order['shipping_type'], [1, 2])) {
+            $checkArr = [
+                'cart_id' => $order['cart_id'],
+                'store_id' => $order['store_id'],
             ];
-            self::dealGoodsLeft($checkArr,$order['uid'],$order['id']);
+            self::dealGoodsLeft($checkArr, $order['uid'], $order['id']);
         }
         if ($extra && $extra['store_id']) {
             $params = [
@@ -217,12 +217,12 @@ class PayNotifyLogic extends BaseLogic
             OrderLogic::writeOff($params);
         }
         self::dealProductLog($order);
-        if($order['reservation'] == 1&& in_array($order['shipping_type'],[1,2])){
-            $checkArr =[
-                'cart_id'=>$order['cart_id'],
-                'store_id'=>$order['store_id'],
+        if ($order['reservation'] == 1 && in_array($order['shipping_type'], [1, 2])) {
+            $checkArr = [
+                'cart_id' => $order['cart_id'],
+                'store_id' => $order['store_id'],
             ];
-            self::dealGoodsLeft($checkArr,$order['uid'],$order['id']);
+            self::dealGoodsLeft($checkArr, $order['uid'], $order['id']);
         }
 
         //        $count = UserSign::where([
@@ -234,10 +234,10 @@ class PayNotifyLogic extends BaseLogic
         //        if($count){
         //            self::addFlowLog($order);
         //        }
-            //收银台下单直接到账
-//                if($order['shipping_type'] == 3){
+        //收银台下单直接到账
+        //                if($order['shipping_type'] == 3){
         //            self::descStock($order['id']);
-//                }
+        //                }
 
 
         // Redis::send('push-platform-print', ['id' => $order['id']], 60);
@@ -415,12 +415,12 @@ class PayNotifyLogic extends BaseLogic
             $capitalFlowDao->userExpense('user_order_pay', 'order', $order['id'], $order->pay_price, '', 1, $order['store_id']);
         }
         $order->save();
-        if($order['reservation'] == 1&& in_array($order['shipping_type'],[1,2])){
-            $checkArr =[
-                'cart_id'=>$order['cart_id'],
-                'store_id'=>$order['store_id'],
+        if ($order['reservation'] == 1 && in_array($order['shipping_type'], [1, 2])) {
+            $checkArr = [
+                'cart_id' => $order['cart_id'],
+                'store_id' => $order['store_id'],
             ];
-            self::dealGoodsLeft($checkArr,$order['uid'],$order['id']);
+            self::dealGoodsLeft($checkArr, $order['uid'], $order['id']);
         }
         self::afterPay($order, $extra['transaction_id']);
         // self::addUserSing($order);
@@ -428,14 +428,13 @@ class PayNotifyLogic extends BaseLogic
         if ($order['shipping_type'] == 3) {
             self::descStock($order['id']);
             //直接加对应兑换券
-            if ($order->uid >0) {
-                $level = User::where('id',$order->uid)->value('user_ship');
+            if ($order->uid > 0) {
+                $level = User::where('id', $order->uid)->value('user_ship');
                 $discount = self::getDiscount($level);
                 $total_vip = bcmul($order['pay_price'], $discount, 2);
-                self::addNewUserSing($order,8,$total_vip,1,1);
+                self::addNewUserSing($order, 8, $total_vip, 1, 1);
                 User::where('id', $order->uid)->inc('integral', $total_vip)->update();
             }
-
         }
         if (!empty($extra['payer']['openid']) && $order->pay_type == 7) {
             Redis::send('push-delivery', ['order_id' => $order['order_id'], 'openid' => $extra['payer']['openid']], 4);
@@ -470,10 +469,10 @@ class PayNotifyLogic extends BaseLogic
                 $capitalFlowDao->userExpense('user_order_purchase_pay', 'order', $orderRe['id'], $purchase_funds, '', 1, $orderRe['store_id']);
             }
             //退还 充值得兑换券
-            $level = User::where('id',$order->uid)->value('user_ship');
+            $level = User::where('id', $order->uid)->value('user_ship');
             $discount = self::getDiscount($level);
             $total_price = bcmul($orderRe->refund_price, $discount, 2);
-            self::addNewUserSing($orderRe, 3,$total_price); //冻结
+            self::addNewUserSing($orderRe, 3, $total_price); //冻结
 
             self::addNewUserSing($orderRe, 6, $total_price, 0, 1); //解冻
             self::descUserSing($orderRe);
@@ -572,7 +571,7 @@ class PayNotifyLogic extends BaseLogic
     {
         //        $user_sing = new UserSign();
         if ($order['uid'] > 0) {
-            $level = User::where('id',$order['uid'])->value('user_ship');
+            $level = User::where('id', $order['uid'])->value('user_ship');
             $discount = self::getDiscount($level);
             $user_number = bcmul($order['refund_price'], $discount, 2);
             //            $sing = [
@@ -689,8 +688,8 @@ class PayNotifyLogic extends BaseLogic
         }
         bcscale(2);
 
-        UserSignLogic::dealRechargeFrozen($user,$order,$order['user_ship']);
-        
+        UserSignLogic::dealRechargeFrozen($user, $order, $order['user_ship']);
+
         //更新等级
         $user->user_ship = $order['user_ship'];
 
@@ -795,19 +794,27 @@ class PayNotifyLogic extends BaseLogic
     public static function afterPay($order, $transaction_id = 0)
     {
         $financeLogic = new StoreFinanceFlowLogic();
-        $user_sing = new UserSign();
         $off_activity = Config::where('name', 'off_activity')->value('value');
         $village_uid = 0;
         $brigade_uid = 0;
         $user_ship = 0;
-        try{
+        try {
             Redis::send('order_wetcha_push_send', ['order' => $order]);
-        }catch(\Exception $e){
-            Log::error('订单推送失败:'.$e->getMessage());
+        } catch (\Exception $e) {
+            Log::error('订单推送失败:' . $e->getMessage());
             // 异常处理代码,例如记录日志或发送通知等。
         }
+        if ($order['uid'] > 0) {
+            // 结算金额 要支付的钱减去冻结得钱去走后面得逻辑  发得兑换券也要去减去
+            //用户下单该用户等级为1得时候才处理冻结金额
+            $user = User::where('id', $order['uid'])->find();
+            $user_ship = $user['user_ship'];
+
+        }
         //积分写入
-        UserSignLogic::OrderWrite($order);
+        if(in_array($user_ship,[0,4])){
+            UserSignLogic::OrderWrite($order);
+        }
         if ($off_activity == 1) {
             //-----活动价结算更改
             $financeLogic->order = $order;
@@ -818,19 +825,13 @@ class PayNotifyLogic extends BaseLogic
             $financeLogic->save();
             return false;
         }
-        if ($order['uid'] > 0) {
-            // 结算金额 要支付的钱减去冻结得钱去走后面得逻辑  发得兑换券也要去减去
-            //用户下单该用户等级为1得时候才处理冻结金额
-            $user = User::where('id', $order['uid'])->find();
-            $user_ship = $user['user_ship'];
-            //纯在分销关系的时候要去判断分销出来的用户的采购款的额度 (只有会员按照这个逻辑拆分,其余的还是按照正常的支付金额)
-            if ($user['user_ship'] ==  1 && $order['pay_type'] != PayEnum::CASH_PAY) {
-                $vipFrozenAmount = self::dealFrozenPrice($order['id']);
-                //为1的时候要去减活动价
-                $order['pay_price'] = bcsub($order['pay_price'], $vipFrozenAmount, 2);
-                self::dealVipAmount($order,  $order['pay_type']);
-            }
 
+        //纯在分销关系的时候要去判断分销出来的用户的采购款的额度 (只有会员按照这个逻辑拆分,其余的还是按照正常的支付金额)
+        if ($user_ship==  1 && $order['pay_type'] != PayEnum::CASH_PAY) {
+            $vipFrozenAmount = self::dealFrozenPrice($order['id']);
+            //为1的时候要去减活动价
+            $order['pay_price'] = bcsub($order['pay_price'], $vipFrozenAmount, 2);
+            self::dealVipAmount($order,  $order['pay_type']);
         }
         if ($order['spread_uid'] > 0 || $user_ship > 0) {
             if ($order['spread_uid'] > 0 && $user_ship == 0) {
@@ -1093,21 +1094,20 @@ class PayNotifyLogic extends BaseLogic
      * @throws \think\db\exception\DbException
      * @throws \think\db\exception\ModelNotFoundException
      */
-    public static function dealGoodsLeft($cart_id,$uid,$oid)
+    public static function dealGoodsLeft($cart_id, $uid, $oid)
     {
-        if(is_array($cart_id)){
+        if (is_array($cart_id)) {
             $cart_id['cart_id'] = $cart_id;
-        }else{
-            $cart_id['cart_id'] = explode(',',$cart_id);
+        } else {
+            $cart_id['cart_id'] = explode(',', $cart_id);
         }
-        $data = OrderLogic::checkLeft($cart_id,$uid,1);
+        $data = OrderLogic::checkLeft($cart_id, $uid, 1);
         $format =  $data['detail'];
-        foreach ($format as &$value){
-            $value['oid'] =$oid;
-            $value['create_time'] =time();
+        foreach ($format as &$value) {
+            $value['oid'] = $oid;
+            $value['create_time'] = time();
         }
         Db::name('store_product_miss')->insertAll($format);
-
     }
 
 
@@ -1120,12 +1120,12 @@ class PayNotifyLogic extends BaseLogic
     public static function getDiscount($level)
     {
         switch ($level) {
-            case 0://普通
-                return Config::where('name','ordinary_member')->value('value')??0.1;
-            case 1://vip
-                return Config::where('name','vip_member')->value('value')??0.1;
-            case 4://商户
-                return Config::where('name','merchant')->value('value')??0.1;
+            case 0: //普通
+                return Config::where('name', 'ordinary_member')->value('value') ?? 0.1;
+            case 1: //vip
+                return Config::where('name', 'vip_member')->value('value') ?? 0.1;
+            case 4: //商户
+                return Config::where('name', 'merchant')->value('value') ?? 0.1;
             default:
                 return 0.1;
         }
diff --git a/app/common/logic/UserSignLogic.php b/app/common/logic/UserSignLogic.php
index 741d47700..a48cb7413 100644
--- a/app/common/logic/UserSignLogic.php
+++ b/app/common/logic/UserSignLogic.php
@@ -73,16 +73,17 @@ class UserSignLogic extends BaseLogic
     /**
      * 储存商品积分结算
      */
-    public static function storage($order)
+    public static function storage($order_id,$price)
     {
-        $find = UserSign::where(['order_id' => $order['order_id'], 'status' => 0, 'financial_pm' => 1, 'order_type' => 1])->find();
+        $find = UserSign::where(['order_id' => $order_id, 'status' => 0, 'financial_pm' => 1, 'order_type' => 1])->find();
         if ($find) {
-            // if($or)
-            // $find->status=1;
-            // $find->save();
-            // User::where('id', $order->uid)->inc('integral', $find['number'])->update();
-            // self::write_log($find,$find['number'], 1);
-
+            self::write_log($find, $price, 1, 2,0);
+            self::write_log($find, $price, 1, 2,1);
+            if($price>$find['number']){
+                $find->status = 1;
+                $find->save();
+            }
+            User::where('id', $find['uid'])->inc('integral', $price)->update();
         }
     }
 
diff --git a/app/common/logic/user_product_storage/UserProductStorageLogic.php b/app/common/logic/user_product_storage/UserProductStorageLogic.php
index 1c15f4b3e..fdea6c23f 100644
--- a/app/common/logic/user_product_storage/UserProductStorageLogic.php
+++ b/app/common/logic/user_product_storage/UserProductStorageLogic.php
@@ -3,7 +3,10 @@
 namespace app\common\logic\user_product_storage;
 
 use app\common\logic\BaseLogic;
+use app\common\logic\UserSignLogic;
+use app\common\model\store_order\StoreOrder;
 use app\common\model\store_order_cart_info\StoreOrderCartInfo;
+use app\common\model\user\User;
 use app\common\model\user_product_storage\UserProductStorage;
 use app\common\model\user_product_storage_log\UserProductStorageLog;
 use think\facade\Db;
@@ -46,6 +49,7 @@ class UserProductStorageLogic extends BaseLogic
             if($times!=''){
                 $times=strtotime($times);
             }
+            $user_ship=User::where('id',$uid)->value('user_ship');
             foreach ($data as $k=>$v){
                 $find=UserProductStorage::where('uid',$uid)->where('product_id',$v['product_id'])->find();
                 if($find){
@@ -60,6 +64,19 @@ class UserProductStorageLogic extends BaseLogic
                         $find->status=0;
                     }
                     $find->save();
+                    if(in_array($user_ship,[0,4])){
+                        $cart_info=StoreOrderCartInfo::where(['oid'=>$find['oid'],'uid'=>$uid,'product_id'=>$find['product_id']])->value('cart_info');
+                        if($cart_info){
+                            $price=bcdiv($cart_info['pay_price'],$cart_info['cart_num'],2);
+                            if($price){
+                                $price=bcmul($price,$v['nums'],2);
+                                $rate=bcdiv($price,100,2);
+                                $order_id= StoreOrder::where('id',$cart_info['oid'])->value('order_id');
+                                UserSignLogic::storage($order_id,$rate);
+                            }
+    
+                        }
+                    }
                     $data_log[$k]['uid']=$uid;
                     $data_log[$k]['oid']=$find['oid'];
                     $data_log[$k]['product_id']=$find['product_id'];