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