/**
* 排他校验两个活动串下 同活动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;
}
网友评论