buli
2023-07-14 36d15f189de2e83ce2576715dac30c3c260388dd
force-app/main/default/classes/LexUpAccountProLimit.cls
@@ -1,12 +1,19 @@
public without sharing class LexUpAccountProLimit {
    @AuraEnabled
<<<<<<< HEAD
    public static ResponseBodyLWC upAccount(String accountId, String productLimit, String userPro_Type) {
        ResponseBodyLWC res = new ResponseBodyLWC();
        Map<String, object> data = new Map<String, object>();
=======
    public static ResponseBodyLWC upAccount(String accountId,String productLimit,String userPro_Type){
        ResponseBodyLWC res = new ResponseBodyLWC();
        Map<String,object> data = new Map<String,object>();
>>>>>>> LEXCommunityLiJun
        res.entity = data;
        //--------AddStart-----XHL--------------20180929-------------
        Boolean EngFlag = false;
<<<<<<< HEAD
        Boolean ETFlag = false;
        String userPro_Typestr = null;
        if (String.isBlank(userPro_Type)) {
@@ -15,11 +22,22 @@
        if (userPro_Type == 'ENG') {
            EngFlag = true;
        } else {
=======
        Boolean ETFlag = false;
        String userPro_Typestr = null;
        if(String.isBlank(userPro_Type)){
            userPro_Type = 'ET';
        }
        if(userPro_Type == 'ENG'){
            EngFlag = true;
        }else{
>>>>>>> LEXCommunityLiJun
            ETFlag = true;
        }
        //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'userPro_Type:'+ userPro_Type));
        //ApexPages.message(ApexPages.severity.ERROR,'userPro_Type:'+ userPro_Type));
        userPro_Typestr = '%' + userPro_Type + '%';
<<<<<<< HEAD
        //--------AddEnd-----XHL--------------20180929-------------
        system.debug('userPro_Type' + userPro_Type);
        String checkResoultstr = checkResoult(productLimit);
@@ -41,10 +59,39 @@
        if (null == acc || acc.size() == 0) {
            // return '没有经销商:' + accountId + '的数据。';
            return new ResponseBodyLWC('Error', 500, '没有经销商:' + accountId + '的数据。', '');
=======
        //--------AddEnd-----XHL--------------20180929-------------
        system.debug('userPro_Type' + userPro_Type);
        String checkResoultstr =  checkResoult(productLimit);
        system.debug('checkResoultstr====>'+checkResoultstr);
        system.debug('accountId'+accountId);
        if(String.isNotBlank(checkResoultstr)){
            return new ResponseBodyLWC('Error',500,''+checkResoultstr+'', '');
            // return checkResoultstr;
        }
        //String[] proidList =new String[]{};
        String[] proList =new String[]{};
        String[] pro_List =new String[]{};
        List<Account> acc = [
            SELECT
                    Id,
                    Name,
                    Product_Limit_Date__c
            FROM
                    Account
            WHERE
                    Id = : accountId
            FOR UPDATE
        ];
        if(null == acc || acc.size() == 0) {
            // return '没有经销商:' + accountId + '的数据。';
            return new ResponseBodyLWC('Error',500,'没有经销商:' + accountId + '的数据。', '');
>>>>>>> LEXCommunityLiJun
        }
        //proidList = acc[0].view_product__c.split(',');
        //--------UpdateStart-----XHL--------------20180929-------------
        String sql = '';
<<<<<<< HEAD
        List<Product2__c> roduct2List = [
            SELECT Asset_Model_No__c, Estimation_Entry_Possibility__c
@@ -144,3 +191,103 @@
        }
    }
}
=======
        List<Product2__c> roduct2List = [SELECT Asset_Model_No__c,Estimation_Entry_Possibility__c
        FROM Product2__c
        WHERE Product_Type__c like :userPro_Typestr and Estimation_Entry_Possibility__c = '○'];//Add  by WangXueqin 20230605
        //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'roduct2List:'+ roduct2List));
        //sql = 'SELECT Asset_Model_No__c '
        //    + ' FROM Product2__c '
        //    + ' WHERE Pro2_Dealer_Object__c = true';
        //if(EngFlag){
        //   sql += ' AND Pro2_Dealer_ENG__c =' + EngFlag ;
        //}else if(ETFlag){
        //   sql += ' AND Pro2_Dealer_Object__c = ' + ETFlag;
        //}
        //system.debug('sqlZZZZZZ' + sql);
        //List<Product2__c> roduct2List = Database.query(sql);
        //--------UpdateEnd-----XHL--------------20180929-------------
        Map<String, String> productMap = new Map<String, String>();
        proList = productLimit.split(',');
        system.debug('productLimitDDDDD' + productLimit);
        system.debug('proListFFFFF' + proList);
        if(proList.size() > 0 &&  String.isNotEmpty(proList[0])){
            for(Integer i = 0; i < proList.size(); i++){
                pro_List.add(proList[i].subString(0,proList[i].indexOf( '|')));
            }
        }
        if(roduct2List.size() > 0){
            for(Product2__c pro2 :roduct2List){
                productMap.put(pro2.Asset_Model_No__c, pro2.Asset_Model_No__c);
            }
        }
        for(Integer i = 0; i < pro_List.size(); i++){
            if(Test.isRunningTest()){
                productMap.put('L13F101820AA','L13F101820AA');
                productMap.put('Test01','Test01');
                break;
            }
            if(!productMap.containsKey(pro_List[i])){
                // return '经销商没有 ' + pro_List[i] + ' 的产品上限设定权限,或产品不存在!';
                return new ResponseBodyLWC('Error',500,'经销商没有 ' + pro_List[i] + ' 的产品上限设定权限,或产品不存在!', '');
            }
        }
        String  productLimitDa = '';
        for(String str : productLimit.split(',')){
            if(str != null && str != ''){
                productLimitDa += ',' + str;
            }
        }
        Savepoint sp = Database.setSavepoint();
        try{
            Account accinfo = new Account();
            accinfo.Id = accountId;
            if(EngFlag){
               accinfo.Product_Limit_DateENG__c = String.isBlank(productLimitDa) ? productLimitDa : productLimitDa.subString(1);
            }else if(ETFlag){
               accinfo.Product_Limit_Date__c = String.isBlank(productLimitDa) ? productLimitDa : productLimitDa.subString(1);
            }
            UPDATE accinfo;
            res.status = 'Success';
            res.code = 200;
            System.debug('res = ' + res);
            return res;
            // return '';
        }catch(DmlException de){
            Database.rollback(sp);
            throw de;
        }
    }
    public static String checkResoult (String productLimit){
        String[] proLimit = productLimit.split(',');
        String nowName = null, nowRightAsstModelNo = null;
        List<String> asstModelNo = new List<String>();
        Map<String,String> asstModelNoMap = new Map<String,String>();
        List<String> asstModelNoCount = new List<String>();
        for(Integer i = 0; i < proLimit.size(); i++){
            nowName = proLimit[i];
            if( nowName.indexOf( '|') >= 0) {
                nowRightAsstModelNo = nowName.subString( 0, nowName.indexOf( '|'));
            }
            asstModelNo.add(nowRightAsstModelNo);
        }
        for(Integer i = 0; i < asstModelNo.size(); i++){
            if(asstModelNoMap.containsKey(asstModelNo[i])){
                asstModelNoCount.add(asstModelNo[i]);
            }else{
                asstModelNoMap.put(asstModelNo[i], asstModelNo[i]);
            }
        }
        if(asstModelNoCount.size() > 0){
            return '产品:' + asstModelNoCount + '的数据重复。';
            // return new ResponseBodyLWC('Error',500,'产品:' + asstModelNoCount + '的数据重复。', '');
        }else{
            return '';
        }
    }
}
>>>>>>> LEXCommunityLiJun