1. PHP / Говнокод #19264

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    static public function countHandled()
    {
        $criteria = new CDbCriteria;
    
        $criteria->select .= ', SUM(`su`.`purchase_stage` = "in-progress") AS sum';
        $criteria->having = '`sum` > 0';
    
        $criteria->with = array(
            'siteUser' => array(
                'with' => array(
                    'interest'
                ),
                'join' => 'LEFT JOIN `site_users` AS `su` ON '
                    .'IF(LENGTH(`siteUser`.`phone`) = 11, SUBSTR(`siteUser`.`phone`, 2, 10), `siteUser`.`phone`) = '
                    .'IF(LENGTH(`su`.`phone`) = 11, SUBSTR(`su`.`phone`, 2, 10), `su`.`phone`)'
            )
        );
        $criteria->scopes = array(
            'notDone'
        );
        $criteria->compare('siteUser.purchase_stage', SiteUsers::PURCHASE_STAGE_LOST);
        $criteria->addNotInCondition('interest.reject_reason', array(
            SiteUserInterest::REJECT_REASON_TEST,
            SiteUserInterest::REJECT_REASON_SERVICE_TO
        ));
        $criteria->addCondition('`su`.`date_modified` >= DATE_SUB(NOW(), INTERVAL 2 DAY)');
    
        $criteria->group = '`t`.`site_users_return_id`';
    
        return self::model()->count($criteria);
    }
    
    static public function countCopied()
    {
        $criteria = new CDbCriteria;
    
        $criteria->select .= ', SUM(`su`.`purchase_stage` = "in-progress") AS sum';
        $criteria->having = '`sum` > 0';
    
        $criteria->with = array(
            'siteUser' => array(
                'with' => array(
                    'interest'
                ),
                'join' => 'LEFT JOIN `site_users` AS `su` ON '
                    .'IF(LENGTH(`siteUser`.`phone`) = 11, SUBSTR(`siteUser`.`phone`, 2, 10), `siteUser`.`phone`) = '
                    .'IF(LENGTH(`su`.`phone`) = 11, SUBSTR(`su`.`phone`, 2, 10), `su`.`phone`)'
            )
        );
        $criteria->scopes = array(
            'notDone'
        );
        $criteria->compare('siteUser.purchase_stage', SiteUsers::PURCHASE_STAGE_LOST);
        $criteria->addNotInCondition('interest.reject_reason', array(
            SiteUserInterest::REJECT_REASON_TEST,
            SiteUserInterest::REJECT_REASON_SERVICE_TO
        ));
        $criteria->addCondition('`su`.`date_created` >= DATE_SUB(NOW(), INTERVAL 2 DAY)');
    
        $criteria->group = '`t`.`site_users_return_id`';
    
        return self::model()->count($criteria);
    }

    - Найди мне одно отличие:
    Ответ автора:
    "- можно конешно и параметром
    - Насамом деле это два разных счета и для вычисления совпали критерии - я так это увидел
    - Можно соптимизировать, не вопрос)"

    У класса два статичных метода, в конечном итоге при условие что countHandled() ? countCopied() / countHandled() * 100 : 0
    Ладно, опустим что сам подход не очень оптимальный, но тут явно говнокод, аля контрл-ц\в,

    зы. Спешил походу, лентяй :)

    Запостил: doommer, 29 Декабря 2015

    Комментарии (1) RSS

    • Я метнулся в родительскую спальню, на трюмо лежали тюбики, выбрав самый большой, для рук, размахивая дубинкой между ног, я вернулся к Пашке.
      Ответить

    Добавить комментарий