|
@@ -43,14 +43,15 @@ class Recruitment extends Api{
|
|
|
if( $data['start_time'] > $custom['insert_time'] || $data['end_time'] < $custom['insert_time'] ) return json_send(['code'=>'error','msg'=>'账号不在活动范围','data'=>['error'=>'不在活动时间内注册']]);
|
|
|
// 如果城市限制并且不在在城市范围内,不允许参加
|
|
|
if ( $data['city_ids'] && !in_array($custom['city_id'],explode(',',$data['city_ids'])) ) return json_send(['code'=>'error','msg'=>'账号不在城市范围,请核对您的城市','data'=>['error'=>'不在标签范围内']]);
|
|
|
+ // 是否需要获取用户标签
|
|
|
+ $tags = $data['tag_scope'] || $data['tag_except'] ? $WeiBanTags->getTags($uid) : [];
|
|
|
+ // 获取用户的标签
|
|
|
+ $tags = $tags ? array_column($tags,'name') : [];
|
|
|
// 判断是不是可以参与
|
|
|
if( $data['tag_scope'] ) {
|
|
|
// 解析数组
|
|
|
$data['tag_scope'] = explode(',',$data['tag_scope']);
|
|
|
- // 查询用户标签
|
|
|
- $tags = $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
|
|
|
- // 获取用户的标签
|
|
|
- $tags = array_column($tags,'name');
|
|
|
+ // 计算交集
|
|
|
$intersect = count(array_intersect($data['tag_scope'],$tags));
|
|
|
// 判断标签是否必须同时满足
|
|
|
if( $data['tag_scope_type'] == 1 ) {
|
|
@@ -61,8 +62,15 @@ class Recruitment extends Api{
|
|
|
if( !$intersect ) return json_send(['code'=>'error','msg'=>'账号不在标签范围','data'=>['error'=>'不在标签范围内']]);
|
|
|
}
|
|
|
}
|
|
|
- // 默认可以参加活动
|
|
|
- $data['allow_join'] = 1;
|
|
|
+ // 判断是不是可以参与
|
|
|
+ if( $data['tag_except'] ) {
|
|
|
+ // 解析数组
|
|
|
+ $data['tag_except'] = explode(',',$data['tag_except']);
|
|
|
+ // 计算交集
|
|
|
+ $intersect = count(array_intersect($data['tag_except'],$tags));
|
|
|
+ // 如果存在交集,在排除范围,即不可参与
|
|
|
+ if( $intersect ) return json_send(['code'=>'error','msg'=>'账号不在范围','data'=>['error'=>'在标签排除范围内']]);
|
|
|
+ }
|
|
|
// 奖品
|
|
|
$reward = $RecruitmentReward->getListByLottery($data['id']);
|
|
|
// 活动暂无奖品
|
|
@@ -94,6 +102,8 @@ class Recruitment extends Api{
|
|
|
// 奖项
|
|
|
$data['reward_list'][] = ['id'=>$value['id'],'name'=>$value['reward_name'],'img'=>$value['reward_thumb'],'reward_type'=>$value['reward_type']];
|
|
|
}
|
|
|
+ // 默认可以参加活动
|
|
|
+ $data['allow_join'] = 1;
|
|
|
// 返回结果
|
|
|
return json_send(['code'=>'success','msg'=>'获取成功','data'=>$data]);
|
|
|
}
|
|
@@ -145,8 +155,15 @@ class Recruitment extends Api{
|
|
|
if( !$intersect ) return json_send(['code'=>'error','msg'=>'账号不在标签范围','data'=>['error'=>'不在标签范围内']]);
|
|
|
}
|
|
|
}
|
|
|
- // 默认可以参加活动
|
|
|
- $data['allow_join'] = 1;
|
|
|
+ // 判断是不是可以参与
|
|
|
+ if( $data['tag_except'] ) {
|
|
|
+ // 解析数组
|
|
|
+ $data['tag_except'] = explode(',',$data['tag_except']);
|
|
|
+ // 计算交集
|
|
|
+ $intersect = count(array_intersect($data['tag_except'],$tags));
|
|
|
+ // 如果存在交集,在排除范围,即不可参与
|
|
|
+ if( $intersect ) return json_send(['code'=>'error','msg'=>'账号在不可参与范围','data'=>['error'=>'账号在标签排除范围内']]);
|
|
|
+ }
|
|
|
// 奖品
|
|
|
$reward = $RecruitmentReward->getListByLottery($data['id']);
|
|
|
// 活动暂无奖品
|
|
@@ -249,6 +266,8 @@ class Recruitment extends Api{
|
|
|
foreach ($reward as $value) {
|
|
|
$rewardList[] = ['id'=>$value['id'],'name'=>$value['reward_name'],'img'=>$value['reward_thumb'],'reward_type'=>$value['reward_type']];
|
|
|
}
|
|
|
+ // 默认可以参加活动
|
|
|
+ $data['allow_join'] = 1;
|
|
|
// 返回结果
|
|
|
return json_send(['code'=>'success','msg'=>'抽奖成功','data'=>['reward_list'=>$rewardList,'reward_index'=>$rewardIndex,'join_num'=>$data['join_num']-1]]);
|
|
|
// 异常处理
|