wugg 6 months ago
parent
commit
8f4fc61285

+ 1 - 1
app/admin/controller/Payment.php

@@ -1508,7 +1508,7 @@ class Payment extends Base
                      (new InvoiceOrder)->saveAll($param['ItemRemark']);
                     };
                 }
-                if(in_array($param['status'],[5,6,7,13])){
+                if(in_array($param['status'],[5,6,7,8,13])){
                     Pay::subInv($info['payNo'],$info->inv_fee);
                     if($param['status']==13)\app\admin\model\InvoiceItem::rmInvoice($param['hpNo']);
                     event("reportCode",["param"=>["key"=>"hpNo","value"=>$param['hpNo']],"type"=>"sub"]);

+ 8 - 3
app/admin/listener/ReportCode.php

@@ -25,16 +25,21 @@ class ReportCode
 
     private function subField($param){
         if(is_string($param['value'])){
-            $this->model->whereFindInSet($param['key'],$param['value'])->rmField($param['key'],$param['value'])->save();
+            $this->model->whereFindInSet($param['key'],$param['value'])->select()->each(function($item)use($param){
+                $item->rmField($param['key'],$item[$param['key']]);
+            });
         }
         if(is_array($param['value'])){
            foreach ($param['value'] as $v){
-               $this->model->whereFindInSet($param['key'],$v)->rmField($param['key'],$v)->save();
+              $this->model->whereFindInSet($param['key'],$v)->select()->each(function($item)use($param){
+                              $item->rmField($param['key'],$item[$param['key']]);
+                          });
            }
         }
     }
 
     private function addField($param){
-        $info= $this->model->where([$param['main']['key']=>$param['main']['value']])->setField($param['key'],$param['value']);
+        $info= $this->model->where([$param['main']['key']=>$param['main']['value']])->find()->setField($param['key'],$param['value']);
+        $this->model->save();
     }
 }

+ 1 - 1
app/admin/model/ReportCode.php

@@ -11,7 +11,7 @@ use think\Model;
 class ReportCode extends Model
 {
 
-    public  function setField($filed,$vale){
+    public function setField($filed,$vale){
         $arr= explode(",",$this->$filed);
        if(!in_array($vale,$arr)) $this->$filed == '' ? $this->$filed =$vale : $this->$filed .=",".$vale;
     }