From 1312ba82d4c880bdb5357d28e0d4af5b285f610f Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 10 三月 2022 15:54:39 +0800
Subject: [PATCH] 最近一月修改内容

---
 force-app/main/default/classes/LastbuyProductHandler.cls |  188 ++++++++++++++++++++++++-----------------------
 1 files changed, 96 insertions(+), 92 deletions(-)

diff --git a/force-app/main/default/classes/LastbuyProductHandler.cls b/force-app/main/default/classes/LastbuyProductHandler.cls
index 4858b68..3ba4f25 100644
--- a/force-app/main/default/classes/LastbuyProductHandler.cls
+++ b/force-app/main/default/classes/LastbuyProductHandler.cls
@@ -1,7 +1,12 @@
 /**
- * 20220210 lt UpdateIdentification()--鏇存柊浜у搧涓婄殑鈥滈鐣欎骇鍝佲�濇爣璇�
- * 棰勭暀浜у搧瀵硅薄浼氬叧鑱斾竴涓骇鍝佷富鏁版嵁
- * 鍒涘缓棰勭暀浜у搧鏃讹紝灏嗕骇鍝佷富鏁版嵁涓婄殑鈥滈鐣欎骇鍝佲�濇爣璇� 鏇存柊涓� true
+ * 20220210 lt 鏇存柊浜у搧涓婄殑鈥滈鐣欎骇鍝佲�濇爣璇�
+ * 浜у搧 鏈� 鏈夋晥棰勭暀浜у搧  鈥滈鐣欎骇鍝佲�濇爣璇� true
+ * 浜у搧 娌℃湁 鏈夋晥棰勭暀浜у搧(鏃犻鐣欎骇鍝� 鎴� 棰勭暀浜у搧 鏃犳晥)  鈥滈鐣欎骇鍝佲�濇爣璇� false
+ * (1) 鏂板缓 鏈夋晥棰勭暀浜у搧                                            --true
+ * (2) 鏇存柊  鈥滄槸鍚︽湁鏁堚�� false 鍙樹负 true                             --true
+ * (3) 鏇存柊 鈥滀骇鍝佲�� 鍚�                                               --true
+ * (4) 鏇存柊  鈥滄槸鍚︽湁鏁堚�� true 鍙樹负 false 鐨勪骇鍝佷笅鏃犳湁鏁堥鐣欎骇鍝�        --false
+ * (5) 鏇存柊 鈥滀骇鍝佲�� 鍓嶇殑浜у搧 鏃犻鐣欎骇鍝� 鎴� 鏃犳湁鏁堥鐣欎骇鍝�               --false
  */
 public without sharing class LastbuyProductHandler extends Oly_TriggerHandler {
     private Map<Id, LastbuyProduct__c> newMap;
@@ -21,114 +26,113 @@
     }
 
     protected override void afterInsert(){
-        UpdateIdentification();
+        ReservedPro();
     }
 
     protected override void afterUpdate(){
-        Invalid();
+        ReservedPro();
     }
 
-    //鏇存柊鏍囪瘑
-    private void UpdateIdentification(){
-    
-        //瀛樹骇鍝佺殑ID 
-        List<Id> pList = new List<Id>();
-        for(LastbuyProduct__c lbp : newList){
-            if(lbp.ProductName__c != null){
-                pList.add(lbp.ProductName__c);
+    private void ReservedPro(){
+        //1.鏂板缓鎴栬�呮洿鏂颁骇鍝佸悗锛岃嫢棰勭暀浜у搧鏈夋晥锛屸�滈鐣欎骇鍝佲�濇爣璇嗕负true
+        if(trigger.isInsert || trigger.isUpdate){
+            
+            //瀛樹骇鍝佺殑ID 
+            List<Id> pList = new List<Id>();
+            for(LastbuyProduct__c lbp : newList){
+                if(lbp.ProductName__c != null && lbp.effectiveFLG__c == true){
+                    pList.add(lbp.ProductName__c);
+                }
             }
-        }
 
-        List<Product2> proList = [select id, LastbuyProductFLG__c from Product2 where Id in :pList];
-        List<Product2> pflgList = new List<Product2>();
+            List<Product2> proList = [select id, LastbuyProductFLG__c from Product2 where Id in :pList];
+            List<Product2> pflgList = new List<Product2>();
 
-        for(Product2 pro : proList){
-            if(pro.LastbuyProductFLG__c == false){
-                pro.LastbuyProductFLG__c = true;
-                pflgList.add(pro);
+            for(Product2 pro : proList){
+                if(pro.LastbuyProductFLG__c == false){
+                    pro.LastbuyProductFLG__c = true;
+                    pflgList.add(pro);
+                }
             }
-        }
 
-        if(pflgList.size() > 0){
-            update pflgList;
+            if(pflgList.size() > 0){
+                update pflgList;
+            }
         }
         
-    }
+        //2.(1)"鏄惁鏈夋晥" 鍙樹负 false  妫�绱骇鍝佷富鏁版嵁涓嬬殑鎵�鏈夐鐣欎骇鍝侊紝鍏ㄦ棤鏁堝垯鎶婁骇鍝佷富鏁版嵁鐨�"棰勭暀浜у搧"鏍囪瘑 鍙樹负 false
+        //  (2)"浜у搧"    棰勭暀浜у搧 鏇存敼 浜у搧涓绘暟鎹箣鍓嶇殑浜у搧 -- 妫�绱骇鍝佷富鏁版嵁涓嬬殑鎵�鏈夐鐣欎骇鍝侊紙娌℃湁/鍏ㄦ棤鏁堬級
+        //                                                  "棰勭暀浜у搧"鏍囪瘑 鍙樹负 false
+        if(trigger.isUpdate){
+            //"鏄惁鏈夋晥" 鍙樹负 "鍚�" 鏃� 鎵�瀵瑰簲鐨勪骇鍝佷富鏁版嵁Id &&棰勭暀浜у搧 鏇存敼 浜у搧涓绘暟鎹箣鍓嶇殑浜у搧
+            List<Id> pfList = new List<Id>();  
 
-    //褰�"鏄惁鏈夋晥"鍙戠敓鍙樺寲涓斿彉鎴�"鍚�"鏃讹紝妫�绱㈠悓涓�浜у搧鐨勬墍鏈夐鐣欎骇鍝侊紝
-    //濡傛灉杩欎釜浜у搧鎵�鏈夌殑棰勭暀浜у搧閮芥棤鏁堜簡锛屾妸浜у搧涓绘暟鎹笂鐨勯鐣欎骇鍝佹爣绛捐缃垚false銆�
-    //褰�"鏄惁鏈夋晥"鍙戠敓鍙樺寲涓斿彉鎴�"鏄�"鏃讹紝浜у搧涓绘暟鎹笂鐨勯鐣欎骇鍝佹爣绛捐缃垚true銆�
-    private void Invalid(){
-        List<Id> pfList = new List<Id>();  //"鏄惁鏈夋晥" 鍙樹负 "鍚�" 鏃� 鎵�瀵瑰簲鐨勪骇鍝佷富鏁版嵁Id
-        List<Id> ptList = new List<Id>();  //"鏄惁鏈夋晥" 鍙樹负 "鏄�" 鏃� 鎵�瀵瑰簲鐨勪骇鍝佷富鏁版嵁Id
-
-        for(LastbuyProduct__c lbp1 : newList){
-            LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
-            if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
-                if(lbp1.effectiveFLG__c == false){
-                    pfList.add(lbp1.ProductName__c);
-                }else{  //lbp1.effectiveFLG__c == true
-                    ptList.add(lbp1.ProductName__c);
-                }
-
-            }
-        }
-        //"棰勭暀浜у搧"鏍囪瘑 鍙�"false"
-        if(pfList.size() > 0){
-            //Map<浜у搧Id锛岄鐣欎骇鍝�>
-            Map<String,LastbuyProduct__c> lbpMap = new Map<String,LastbuyProduct__c>();
-            //鍙戠敓鍙樺寲鐨勪骇鍝両d涓嬬殑鎵�鏈夐鐣欎骇鍝�
-            List<LastbuyProduct__c> lbpList = [select id, effectiveFLG__c,ProductName__c from LastbuyProduct__c where ProductName__c in :pfList];
-            System.debug('lt123鍙樺寲鐨勯鐣欎骇鍝乴bpList'+lbpList);
-            //p1List effectiveFLG__c涓簍rue 鐨勪骇鍝両d
-            List<Id> p1List = new List<Id>();
-            //p2List 杩欎釜浜у搧鎵�鏈夌殑棰勭暀浜у搧閮芥棤鏁� 鐨勪骇鍝両d
-            List<Id> p2List = new List<Id>();
-
-            for(LastbuyProduct__c lbm : lbpList){
-                lbpMap.put(lbm.ProductName__c,lbm);
-                if(lbm.effectiveFLG__c == true){
-                    p1List.add(lbm.ProductName__c);
-                }
-            }
-
-            if(p1List.size() > 0){
-                for(Id p1 : p1List){
-                    if(!lbpMap.containsKey(p1)){
-                        p2List.add(p1);
+            for(LastbuyProduct__c lbp1 : newList){
+                LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
+                if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
+                    System.debug('lt123鏃犳晥锛�'+lbp1.effectiveFLG__c);
+                    if(lbp1.effectiveFLG__c == false){
+                        System.debug('lt123鏃犳晥'+lbp1.effectiveFLG__c);
+                        pfList.add(lbp1.ProductName__c);
                     }
                 }
-            }else{
-                for(LastbuyProduct__c lbm : lbpList){
-                    p2List.add(lbm.ProductName__c);
+                //浜у搧鍙戠敓鍙樺寲鏃讹紝妫�绱袱涓骇鍝佺殑鏍囪瘑
+                if(oldLbp1.ProductName__c != lbp1.ProductName__c){
+                    pfList.add(oldLbp1.ProductName__c);
                 }
             }
             
-            List<Product2> pro1List = [select Id, LastbuyProductFLG__c from Product2 where Id in :p2List];
-            List<Product2> prflgList = new List<Product2>();
-            for(Product2 pro1 : pro1List){
-                pro1.LastbuyProductFLG__c = false;
-                System.debug('lt123棰勭暀浜у搧鏍囪瘑'+pro1.LastbuyProductFLG__c);
-                prflgList.add(pro1);
-            }
-            if(prflgList.size() > 0){
-                update prflgList;
-            }
-        }
-        
-        //"棰勭暀浜у搧"鏍囪瘑 鍙�"true"
-        if(ptList.size() > 0){
-            List<Product2> protList = [select Id, LastbuyProductFLG__c from Product2 where Id in :ptList];
-            List<Product2> ptflgList = new List<Product2>();
-            for(Product2 prot : protList){
-                prot.LastbuyProductFLG__c = true;
-                ptflgList.add(prot);
-            }
-            if(ptflgList.size() > 0){
-                update ptflgList;
-            }
-        }
+            System.debug('lt123闇�妫�绱㈡墍鏈夐鐣欎骇鍝佺殑浜у搧ID-pfList'+pfList);
 
+            //妫�绱骇鍝佷笅鐨勬墍鏈夐鐣欎骇鍝侊紝鍏ㄦ棤鏁堝皢浜у搧涓绘暟鎹笅鐨勬爣璇嗙疆涓篺alse
+            if(pfList.size() > 0){
+                //Map<浜у搧Id锛岄鐣欎骇鍝�>
+                Map<String,LastbuyProduct__c> lbpMap = new Map<String,LastbuyProduct__c>();
+                //鍙戠敓鍙樺寲鐨勪骇鍝両d涓嬬殑鎵�鏈夐鐣欎骇鍝�
+                List<LastbuyProduct__c> lbpList = [select id, effectiveFLG__c,ProductName__c from LastbuyProduct__c where ProductName__c in :pfList];
+                System.debug('lt123鍙樺寲鐨勯鐣欎骇鍝乴bpList'+lbpList);
+                //p1List effectiveFLG__c涓簍rue 鐨勪骇鍝両d
+                List<Id> p1List = new List<Id>();
+                //p2List 杩欎釜浜у搧鎵�鏈夌殑棰勭暀浜у搧閮芥棤鏁� 鐨勪骇鍝両d
+                List<Id> p2List = new List<Id>();
+
+                if(lbpList.size() > 0){   //浜у搧鏈夐鐣欎骇鍝� 妫�鏌ラ鐣欎骇鍝佺殑"鏄惁鏈夋晥"
+                    for(LastbuyProduct__c lbm : lbpList){
+                        lbpMap.put(lbm.ProductName__c,lbm);
+                        if(lbm.effectiveFLG__c == true){
+                            p1List.add(lbm.ProductName__c);
+                        }
+                    }
+        
+                    if(p1List.size() > 0){
+                        for(Id p1 : p1List){
+                            if(!lbpMap.containsKey(p1)){
+                                p2List.add(p1);
+                            }
+                        }
+                    }else{
+                        for(LastbuyProduct__c lbm : lbpList){
+                            p2List.add(lbm.ProductName__c);
+                        }
+                    }
+                    
+                }
+                else{   //浜у搧 娌℃湁棰勭暀浜у搧  鏍囪瘑false
+                    p2List = pfList;
+                }
+                
+                List<Product2> pro1List = [select Id, LastbuyProductFLG__c from Product2 where Id in :p2List];
+                List<Product2> prflgList = new List<Product2>();
+                for(Product2 pro1 : pro1List){
+                    pro1.LastbuyProductFLG__c = false;
+                    System.debug('lt123棰勭暀浜у搧鏍囪瘑'+pro1.LastbuyProductFLG__c);
+                    prflgList.add(pro1);
+                }
+                if(prflgList.size() > 0){
+                    update prflgList;
+                }
+            }
+        }
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.1