美文网首页
排他校验 两个活动串下活动是否出现 同活动ID 版本不同冲突

排他校验 两个活动串下活动是否出现 同活动ID 版本不同冲突

作者: dongdog | 来源:发表于2020-06-18 21:02 被阅读0次
        /**
         * 排他校验两个活动串下 同活动ID的版本是否冲突
         *
         * @param $sid1
         * @param $sid2
         *
         * @return bool|string
         */
        private function checkActivityIdVersion($sid1, $sid2)
        {
            $map = [
                'sid' => [
                    'IN',
                    [$sid1, $sid2]
                ]
            ];
            $field        = [
                'activity_id',
                'activity_version'
            ];
            //获取两个活动串下绑定的活动
            $activityList = M('string_config')
                ->field($field)
                ->where($map)
                ->select();
            //分组
            $data = array_group_by($activityList, 'activity_id');
            $msg = '';
            foreach ($data as $value) {
                //取列
                $version = array_column($value, 'activity_version');
                //去重数组元素超过1 则存在多版本问题
                $count = count(array_unique($version));
                if ($count > 1) {
                    $msg .= "两个活动串冲突 : 活动ID:{$value[0]['activity_id']} 出现版本不一致 <br />";
                    foreach ($value as $v) {
                        $msg .= "版本{$v['activity_version']} <br />";
                    }
                }
            }
            //没有消息 则返回 false 正常
            if (empty($msg)) {
                return FALSE;
            }
            return $msg;
        }
    

    相关文章

      网友评论

          本文标题:排他校验 两个活动串下活动是否出现 同活动ID 版本不同冲突

          本文链接:https://www.haomeiwen.com/subject/djspxktx.html