where(['saas_id'=>$saas_id,'is_pay'=>1,'is_delete'=>0])->andWhere([">","pay_time",0]) ->andWhere(['or', ['>=','end_time',$time], ['end_time' => 0]])->andWhere(["<=",'begin_time',$time])->asArray()->all(); //$orderInfo = BusinessOrder::find()->asArray()->all(); if(count($orderInfo) > 0){ $existMemberInfo = array_column($orderInfo,NULL,'member_id'); } $memberInfo = BusinessMember::find()->where(['is_delete'=>0,'status'=>1])->asArray()->all(); foreach($memberInfo as $k=>$v){ if(isset($existMemberInfo[$v['id']]) ){ $businessMemberOrder = BusinessMemberOrder::find()->where(['member_id' => $v['id'], 'is_pay' => 1])->andWhere([">","pay_time",0]) ->andWhere(['or', ['>=','end_time',$time], ['end_time' => 0]])->andWhere(["<=",'begin_time',$time]) ->orderBy('id DESC')->asArray()->one(); $memberInfo[$k]['end_time'] = $businessMemberOrder['end_time'] > 0 ? date('Y-m-d H:i:s', $businessMemberOrder['end_time']) : '永久有效'; $memberInfo[$k]['is_sell'] = 1; $memberInfo[$k]['member_type_text'] = BusinessMemberOrder::MEMBER_TYPE_ARR[$businessMemberOrder['member_type']]; $memberInfo[$k]['member_type'] = $businessMemberOrder['member_type']; }else{ $memberInfo[$k]['is_sell'] = 0; } if($v['give'] == 1){ //优惠券信息 if($v['give_coupon']){ $couponIds = json_decode($v['coupon_info'],true); if(count($couponIds) > 0 ){ $couponInfo = Coupon::find()->alias("c")->where(['in','c.id',$couponIds])->andWhere(['c.is_delete'=>0,'c.is_business'=>1]) ->leftJoin(['s' => Store::tableName()], 'c.store_id=s.id') ->select("c.*,s.logo") ->asArray()->all(); foreach($couponInfo as $key=>$val){ $is_coupon_info = SaasCoupon::find()->where(['saas_id'=>$saas_id,'coupon_id'=>$val['id'] ])->one(); $couponInfo[$key]['is_sell'] = ($is_coupon_info) ? 1 : 0; } $memberInfo[$k]['coupon_info_detail'] = $couponInfo; $memberInfo[$k]['coupon_info'] = $couponIds; } } //核销卡信息 if($v['give_verify']){ $verifyIds = json_decode($v['verify_info'],true); if(count($verifyIds) > 0 ){ $verifyInfo = VerifyCard::find()->alias("v")->where(['in','v.id',$verifyIds])->andWhere(['v.is_delete'=>0,'v.is_business'=>1]) ->leftJoin(['s' => Store::tableName()], 'v.store_id=s.id') ->select("v.*,s.logo") ->asArray()->all(); foreach($verifyInfo as $key=>$val){ $is_verify_info = VerifyCardSale::find()->where(['saas_id'=>$saas_id,'verify_card_id'=>$val['id'] ])->one(); $verifyInfo[$key]['is_sell'] = ($is_verify_info) ? 1 : 0; } $memberInfo[$k]['verify_info_detail'] = $verifyInfo; $memberInfo[$k]['verify_info'] = $verifyIds; } } } if($v['sale_info']){ $memberInfo[$k]['sale_info'] = json_decode($v['sale_info'],true); } //权利信息 if($v['right_info']){ // $info = BusinessRightInfo::find()->where(['is_delete'=>0])->select("id,name,explanation")->asArray()->all(); $info = BusinessRightInfo::resetRightInfo([], "id,name,explanation"); $rightInfo = json_decode($v['right_info'],true); $rightInfo = array_column($rightInfo,NULL,'id'); foreach($info as $key=>$val){ if(isset($rightInfo[$val['id']]['icon']) && $rightInfo[$val['id']]['icon']){ $info[$key]['icon'] = $rightInfo[$val['id']]['icon']; }else{ $info[$key]['icon'] = ''; } if(isset($rightInfo[$val['id']]['choosed']) && $rightInfo[$val['id']]['choosed']){ $info[$key]['choosed'] = $rightInfo[$val['id']]['choosed']; }else{ $info[$key]['choosed'] = false; } if(isset($rightInfo[$val['id']]['custom_name']) && $rightInfo[$val['id']]['custom_name']){ $info[$key]['custom_name'] = $rightInfo[$val['id']]['custom_name']; }else{ $info[$key]['custom_name'] = ''; } if(isset($rightInfo[$val['id']]['custom_explanation']) && $rightInfo[$val['id']]['custom_explanation']){ $info[$key]['custom_explanation'] = $rightInfo[$val['id']]['custom_explanation']; }else{ $info[$key]['custom_explanation'] = ''; } } $memberInfo[$k]['right_info'] = $info; } } return [ 'code' => 0, 'msg' => '成功', 'data' => $memberInfo ]; } public function checkCanOpenRight($saas_id, $rid) { $rel = [ 1 => 'consumerRebate', 2 => 'allianceDistribution', 3 => 'shopReferrer', ]; $conf = Option::get('alliance_member_right_conf', -1, 'store', '{}'); $conf = json_decode($conf['value'], true); if(empty($conf[$rel[$rid]]) || empty($conf[$rel[$rid]]['condition'])){ return [ 'code' => 1, 'msg' => '权限配置未找到', ]; } $iconf = $conf[$rel[$rid]]['condition']; if(isset($iconf['free']) && intval($iconf['free']) == 0){ if(isset($iconf['consume']) && intval($iconf['consume']) > 0){ $paySum = $this->paySum($saas_id); if($paySum < intval($iconf['consume'])){ return [ 'code' => 1, 'msg' => '消费金额不满足条件', 'paySum' => $paySum, ]; } } } return [ 'code' => 0, 'msg' => 'ok', ]; } public function paySum($saas_id) { $res = Order::find()->where([ 'and', [ 'saas_id' => $saas_id, 'is_pay' => 1, 'type' => 0, ], ['>', 'pay_time', 0], ])->select('SUM(pay_price) paysum')->scalar(); return $res > 0 ? $res : 0; } public function openRight($saas_id, $rid) { $check = $this->checkCanOpenRight($saas_id, $rid); if($check['code'] != 0){ return $check; } $form = new AdminBusinessMemberForm(); $save = $form->rightDuration($saas_id,$rid,0, BusinessRightDuration::FROM_PAYSUM); return [ 'code'=> $save ? 0 : 1, 'msg' => $save ? '成功' : '失败', ]; } }