Получение дубликатов имен агентов - PullRequest
1 голос
/ 18 апреля 2020

Здесь я использую карту, не в состоянии понять, как решить дублирующееся имя, я хочу, чтобы одно имя агента совпадало с числом платежей (потомок оппонента)

как получить уникальные имена пользователей

 public class First_Pay_ClearRates_Controller {
      @AuraEnabled
    public static Map<Id,User> fetchUsers() {
     // List<User> userList= [SELECT Id, Name FROM User WHERE Profile.Name = 'Sales' LIMIT 20];
    Map<Id,User> userMap= new Map<Id,User>([SELECT Id, Name FROM User WHERE Profile.Name = 'Sales' LIMIT 20]);  
        return userMap;
    }

  @AuraEnabled
    public static List<Opportunity> getOpps(Map<Id,User> usrMap){
        Map<Id,List<Opportunity>> oppMap = new Map<Id,List<Opportunity>>();
        List<Opportunity> oppList =  new List<Opportunity>();  
        List<Payments__c> payList= new List<Payments__c>();
         List<Payments__c> payList1= new List<Payments__c>();
        // prev key Agent_Name_User__c
        // AND First_Payment_Date__c=THIS_MONTH
        for(Opportunity o: [SELECT Id,First_Payment_Date__c,OwnerId,Owner.Name ,of_Payments_Made__c,PaymentsCounter__c,CollectedPaymentCount__c,First_Client_Payment_Collected_Date__c From Opportunity WHERE OwnerId IN: usrMap.keyset() AND First_Payment_Date__c!=null LIMIT 20]){ 
            if(!oppMap.containsKey(o.OwnerId)){
                 oppMap.put(o.OwnerId,new List<Opportunity>());   
            }
            o.PaymentsCounter__c=0;
              o.CollectedPaymentCount__c=0;
            //AND Due_Date__c=THIS_MONTH
            for(Payments__c p :[Select Id,Opportunity__c,Payment_Collected__c,Due_Date__c FROM Payments__c WHERE  Opportunity__c =: o.Id ]){
                if(!p.Payment_Collected__c){
                    payList.add(p);
                    o.PaymentsCounter__c= payList.size();
                }else if(p.Payment_Collected__c){
                   payList1.add(p); 
                   o.CollectedPaymentCount__c= payList1.size();
                }        
           }  
            oppList.add(o);
            oppMap.put(o.OwnerId,oppList);
       } 

          return oppList; 
    }
...