model('mc'); $fansinfo = mc_fansinfo($openid); if (empty($fansinfo)) { $fansinfo = mc_init_fans_info($openid, true); } $userinfo = array( 'uid' => $fansinfo['uid'], 'openid' => $fansinfo['openid'], 'nickname' => $fansinfo['nickname'], 'avatar' => $fansinfo['avatar'], 'unionid' => $fansinfo['unionid'] ); return $userinfo; } /** * 获取用户信息 * @param $mcinfo 用户id|用户openid|条件 * @param array $fields 字段,留空返回全部信息 * @param bool $credit 是否需要返回微擎用户积分余额 * @return bool */ static function wl_member_get($mcinfo, $fields = [], $credit = true) { global $_W; if (is_array($mcinfo)) { //$where = $mcinfo; $member = pdo_get(PDO_NAME . 'member', array_merge($mcinfo, array('uniacid' => $_W['uniacid'])), $fields); } else { $field = is_array($fields) && count($fields) > 0 ? implode(',',$fields) : '*'; $member = pdo_fetch("SELECT {$field} FROM ".tablename(PDO_NAME."member") ." WHERE id = {$mcinfo} OR openid = '{$mcinfo}' "); //$where = intval($mcinfo) ? ['id' => $mcinfo] : ['openid' => $mcinfo]; } //$member = pdo_get(PDO_NAME . 'member', array_merge($where, array('uniacid' => $_W['uniacid'])), $fields); // if(!empty($member['openid']) && $_W['source'] == 1){ // $newinfo = self::wl_fans_info($member['openid']); // $member['avatar'] = $newinfo['avatar']; // $member['nickname'] = $newinfo['nickname']; // pdo_update(PDO_NAME . 'member',array('avatar' => $newinfo['avatar'],'nickname' => $newinfo['nickname']),array('openid' => $member['openid'])); // } if (!empty($member['uid']) && $credit) { load()->model('mc'); $credits = pdo_get('mc_members', array('uid' => $member['uid']), array('credit1', 'credit2')); $member['credit1'] = $credits['credit1']; $member['credit2'] = $credits['credit2']; } if (!empty($member['nickname']) && !empty($member['encodename'])) { $member['nickname'] = base64_decode($member['encodename']); } return $member; } /** * 创建新用户 * @param $userinfo 用户信息 * @param string $channel 渠道wechat(微信公众号)wxapp(微信小程序)webapp(打包APP)mobile(H5手机号) * @return array|bool */ static function wl_member_create($userinfo, $channel = 'wechat') { global $_W; $userinfo['encodename'] = base64_encode($userinfo['nickname']); $channels = ['wechat' => 'openid', 'wxapp' => 'wechat_openid', 'webapp' => 'webapp_openid', 'mobile' => 'mobile']; if (!in_array($channel, array_keys($channels))) { return error(1, '渠道错误,请检查后重试'); } $uidstr = $channels[$channel]; if (empty($userinfo[$uidstr])) { return error(1, '缺少用户标识,请检查后重试'); } $member = self::wl_member_get([$uidstr => $userinfo[$uidstr]]); if (empty($member) && !empty($userinfo['unionid'])) { $member = self::wl_member_get(['unionid' => $userinfo['unionid']]); } $newinfo = []; $fields = self::wl_member_update_fields(); foreach ($fields as $field) { if (!empty($userinfo[$field])) { $newinfo[$field] = $userinfo[$field]; } } if (empty($member)) { $newinfo['avatar'] = $newinfo['avatar'] ? str_replace('132132', '132', $newinfo['avatar']) : './addons/'.MODULE_NAME.'/h5/resource/image/default_avatar.png'; $member = array( 'uniacid' => $_W['uniacid'], 'tokey' => strtoupper(MD5(sha1(time() . random(12)))), 'createtime' => time(), 'dotime' => time() ); $member = array_merge($member, $newinfo); if (!empty($member['openid'])) { $member['uid'] = mc_openid2uid($member['openid']); } if(empty($member['uid'])){ $member['uid'] = self::createUserInfo($member['nickname']); } pdo_insert(PDO_NAME . 'member', $member); $member['id'] = pdo_insertid(); } else { //判断是否存在uid 不存在则添加uid $uid = pdo_getcolumn(PDO_NAME."member",['id'=>$member['id']],'uid'); if($uid <= 0){ $newinfo['uid'] = self::createUserInfo($member['nickname']); } $member = self::wl_member_update($newinfo, $member['id']); } return $member; } /** * 更新用户信息 * @param $userinfo 用户信息 * @param $mid 用户ID * @return array|bool */ static function wl_member_update($userinfo, $mid) { global $_W; load()->model('mc'); $member = self::wl_member_get($mid, [], false); if (empty($member)) { return error(1, '用户不存在,请检查后重试'); } if(empty($userinfo['uid'])){ $userinfo['uid'] = $member['uid']; } $upgrade = array('dotime' => time()); //同步用户积分信息 $uid = 0; if (!empty($member['openid'])) { $uid = mc_openid2uid($member['openid']); } if (!empty($uid)) { if($userinfo['uid'] != $uid){ $creditarray = pdo_get('mc_members',array('uid'=>$userinfo['uid']),array('credit1','credit2')); $member['credit1'] = $creditarray['credit1']; $member['credit2'] = $creditarray['credit2']; $zoreres = pdo_update('mc_members',array('credit1' => 0,'credit2' => 0),array('uid' => $userinfo['uid'])); if($zoreres){ pdo_insert(PDO_NAME . 'credit2zero', ['uid'=>$userinfo['uid'],'uniacid'=>$_W['uniacid'],'createtime'=>time()]); } } $flaguid = $userinfo['uid']; $userinfo['uid'] = $uid; if (0 < $member['credit1']) { mc_credit_update($uid, 'credit1', $member['credit1'],array($uid, '合并用户数据修改积分,uid='.$flaguid, MODULE_NAME)); $upgrade['credit1'] = 0; $userinfo['credit1'] = 0; } if (0 < $member['credit2']) { mc_credit_update($uid, 'credit2', $member['credit2'],array($uid, '合并用户数据修改余额,uid='.$flaguid, MODULE_NAME)); $upgrade['credit2'] = 0; $userinfo['credit2'] = 0; } }else if(!empty($member['uid'])){ //公众号同步到小程序数据 if($userinfo['uid'] != $member['uid']){ $creditarray = pdo_get('mc_members',array('uid'=>$member['uid']),array('credit1','credit2')); $member['credit1'] = $creditarray['credit1']; $member['credit2'] = $creditarray['credit2']; $zoreres = pdo_update('mc_members',array('credit1' => 0,'credit2' => 0),array('uid' => $member['uid'])); if($zoreres){ pdo_insert(PDO_NAME . 'credit2zero', ['uid'=>$member['uid'],'uniacid'=>$_W['uniacid'],'createtime'=>time()]); } } $flaguid = $member['uid']; if (0 < $member['credit1']) { mc_credit_update($userinfo['uid'], 'credit1', $member['credit1'],array($userinfo['uid'], '合并用户数据修改积分,uid='.$flaguid, MODULE_NAME)); $upgrade['credit1'] = 0; $userinfo['credit1'] = 0; } if (0 < $member['credit2']) { mc_credit_update($userinfo['uid'], 'credit2', $member['credit2'],array($userinfo['uid'], '合并用户数据修改余额,uid='.$flaguid, MODULE_NAME)); $upgrade['credit2'] = 0; $userinfo['credit2'] = 0; } } //对比用户信息,不同则更新 if (empty($member['tokey'])) { $upgrade['tokey'] = strtoupper(MD5(sha1(time() . random(12)))); } $fields = self::wl_member_update_fields(); foreach ($fields as $field) { if (!empty($userinfo[$field]) && $userinfo[$field] != $member[$field]) { $upgrade[$field] = $userinfo[$field]; } } if ($upgrade['nickname'] == '微信用户') { unset($upgrade['nickname']); unset($upgrade['encodename']); unset($upgrade['avatar']); } pdo_update(PDO_NAME . 'member', $upgrade, array('id' => $member['id'])); $member = array_merge($member, $upgrade); if ($member['uid']) { $credit = pdo_get('mc_members', array('uid' => $member['uid']), array('credit1', 'credit2')); $member['credit1'] = $credit['credit1'] + $member['credit1']; $member['credit2'] = $credit['credit2'] + $member['credit2']; } //同步分销商表 if ($member['distributorid']) { pdo_update('wlmerchant_distributor', array('mobile' => $member['mobile'], 'nickname' => $member['nickname'], 'realname' => $member['realname']), array('mid' => $member['id'])); } return $member; } /** * 用户更新字段 * @return array */ private static function wl_member_update_fields() { return ['uid', 'avatar', 'nickname', 'encodename','openid', 'wechat_openid', 'webapp_openid', 'unionid', 'mobile', 'password', 'salt', 'session_key', 'credit1', 'credit2']; } /** * 合并用户的账号 * @param $keyval 合并关键内容的值 手机号 || unionid * @param string $type mobile或unionid为关键 * @return bool */ static function wl_member_merge($keyval, $type = 'mobile') { global $_W; if (empty($keyval)) { return error(1, '合并内容值不得为空'); } if (!in_array($type, ['mobile', 'unionid'])) { return error(1, '合并类型错误,检查后重试'); } #1、获取符号条件的所账号信息 $fields = self::wl_member_update_fields(); $info = pdo_getall(PDO_NAME . "member", array('uniacid' => $_W['uniacid'], $type => $keyval), array_merge($fields, array('id', 'distributorid', 'tokey')), '', 'id asc'); #2、判断账号信息是否大于等于 2 条,是通过循环合并账号信息 否则不管 if (count($info) < 2) { return error(1, '不存在重复信息,无需合并'); } #3、获取最早建立的账号 为主账号 $earliest = $info[0]; #4、通过循环合并账号信息 WeliamWeChat::startTrans();//开启事务处理 foreach ($info as $key => $val) { //修改的账号不包括最早建立的账号 if ($val['id'] != $earliest['id']) { //---4-1: 合并第一项内容 账号信息 合并内容:member表中 不同的openid,mobile,unionid $userinfo = $val; unset($userinfo['id'], $userinfo['distributorid'], $userinfo['tokey']); self::wl_member_update($userinfo, $earliest['id']); //---4-2: 合并第二项内容 订单信息 合并内容:order订单表,rush_order订单表中的mid 全部改为最早账号的mid //修改 order 订单表 pdo_update(PDO_NAME . "order", array('mid' => $earliest['id']), array('mid' => $val['id'])); //修改 rush_order 订单表 pdo_update(PDO_NAME . "rush_order", array('mid' => $earliest['id']), array('mid' => $val['id'])); //修改disorder 表 pdo_update(PDO_NAME . "disorder", array('buymid' => $earliest['id']), array('buymid' => $val['id'])); //---4-3: 合并第三项内容 分销商信息 if (empty($earliest['distributorid'])) { $earliest['distributorid'] = $val['distributorid']; } else if ($val['distributorid'] > 0) { //修改distributor表 金额 下级 $eardis = pdo_get('wlmerchant_distributor', array('id' => $earliest['distributorid']), array('dismoney', 'nowmoney', 'mid')); $valdis = pdo_get('wlmerchant_distributor', array('id' => $val['distributorid']), array('dismoney', 'nowmoney', 'mid')); if ($valdis['dismoney'] > 0) { $newdismoney = sprintf("%.2f", $eardis['dismoney'] + $valdis['dismoney']); pdo_update('wlmerchant_distributor', array('dismoney' => $newdismoney), array('id' => $earliest['distributorid'])); } if ($valdis['nowmoney'] > 0) { $newnowmoney = sprintf("%.2f", $eardis['nowmoney'] + $valdis['nowmoney']); pdo_update('wlmerchant_distributor', array('nowmoney' => $newnowmoney), array('id' => $earliest['distributorid'])); } pdo_update('wlmerchant_distributor', array('leadid' => $earliest['id']), array('leadid' => $val['id'])); pdo_delete('wlmerchant_distributor', array('id' => $val['distributorid'])); //修改disorder 分销订单表 pdo_update('wlmerchant_disorder', array('oneleadid' => $earliest['distributorid']), array('oneleadid' => $val['distributorid'], 'status' => 0)); pdo_update('wlmerchant_disorder', array('twoleadid' => $earliest['distributorid']), array('twoleadid' => $val['distributorid'], 'status' => 0)); //修改disapply 分销商提现表 pdo_update('wlmerchant_disapply', array('mid' => $earliest['id'], 'disid' => $earliest['distributorid']), array('mid' => $val['id'])); } //---4-4: 合并第四项内容 商户信息 //修改 merchantuser 将当前用户mid修改为最早账号的mid pdo_update(PDO_NAME . "merchantuser", ['mid' => $earliest['id']], ['mid' => $val['id']]); #5、账号合并完成 当前账号的信息已经全部合并给最早建立的账号 删除当前账号 pdo_delete(PDO_NAME . "member", array('id' => $val['id'])); } } WeliamWeChat::commit();//提交事务信息 return $earliest; } /* * 更新积分信息 */ static function credit_update_credit1($mid, $credit1 = 0, $remark = '', $orderno = '') { global $_W; $member = self::wl_member_get($mid); $settings = Setting::wlsetting_read('base'); if (empty($member)) { return error(-1, '用户不存在'); } if (($member['credit1'] + $credit1) < 0) { return error(-1, '用户积分不足'); } if(abs($credit1) > 0.01){ //会员不存在uid时,更新模块本身的积分余额 if (empty($member['uid'])) { return error(-1, 'UID不存在,请重新登录'); //$res = pdo_update(PDO_NAME . "member", array('credit1' => $member['credit1'] + $credit1), array('id' => $member['id'])); } else { load()->model('mc'); if (empty($remark)) { $remark = $settings['name'] ? $settings['name'] . '积分操作' : '智慧城市积分操作'; } $res = mc_credit_update($member['uid'], 'credit1', $credit1, array($member['uid'], $remark, MODULE_NAME)); } if(is_error($res)){ return $res; }else{ $data = array('uid' => $member['uid'], 'uniacid' => $_W['uniacid'], 'mid' => $member['id'], 'num' => $credit1, 'createtime' => TIMESTAMP, 'type' => 1, 'remark' => $remark, 'ordersn' => $orderno); pdo_insert(PDO_NAME . "creditrecord", $data); $newCredit = pdo_getcolumn('mc_members',['uid' => $member['uid']],'credit1'); //积分变更通知 $trade = Setting::wlsetting_read('trade'); $integralText = $trade['credittext'] ? : '积分'; if(Customized::init('customized530') && $credit1 > 0){ $payinfo = [ 'first' => "收益到账通知:", 'profit_money' => "{$credit1}{$integralText}",//收益金额 'profit_source' => $remark,//收益来源 'time' => date("Y年m月d日 Y:i:s",time()),//变更日期 'remark' => '', ]; TempModel::sendInit('profit',$member['id'],$payinfo,$_W['source']); }else if(!Customized::init('customized530')){ $integral = trim($credit1,'-'); $payinfo = [ 'first' => "您的{$integralText}已发生变化", 'old_number' => "原有{$integralText}:{$member['credit1']},{$remark}:{$integral}",//原有数量 'current_number' => "现有{$integralText}:{$newCredit}",//变更结果 'time' => date("Y-m-d H:i:s",time()),//变更日期 'remark' => "点击查看{$integralText}变更记录", 'change_num' => $credit1, 'balance' => $newCredit, 'change_remark' => $remark, ]; $url = h5_url('pages/subPages/IntegralRecord/IntegralRecord'); TempModel::sendInit('change',$member['id'],$payinfo,$_W['source'],$url); } } return TRUE; }else{ return error(-1, '修改积分数额不正确'); } } /* * 更新余额信息 * */ static function credit_update_credit2($mid, $credit2 = 0, $remark = '', $orderno = '') {//余额 global $_W; $member = self::wl_member_get($mid); $settings = Setting::wlsetting_read('base'); if (empty($member)) { return error(-1, '用户不存在'); } if (($member['credit2'] + $credit2) < 0) { return error(-1, '用户余额不足'); } if(abs($credit2)>0){ //会员不存在uid时,更新模块本身的积分余额 if (empty($member['uid'])) { return error(-1, 'UID不存在,请重新登录'); //pdo_update(PDO_NAME . "member", array('credit2' => $member['credit2'] + $credit2), array('id' => $member['id'])); } else { load()->model('mc'); $header = $remark ? $settings['name'] . ':' : '智慧城市余额操作'; $res = mc_credit_update($member['uid'], 'credit2', $credit2, array($member['uid'], $header . $remark, MODULE_NAME)); } if(is_error($res)){ return $res; }else { $data = array('uid' => $member['uid'], 'uniacid' => $_W['uniacid'], 'mid' => $member['id'], 'num' => $credit2, 'createtime' => TIMESTAMP, 'type' => 2, 'remark' => $remark, 'ordersn' => $orderno); pdo_insert(PDO_NAME . "creditrecord", $data); } } return TRUE; } //验证一卡通会员 static function checkhalfmember($url = '') { global $_W; if (empty($_W['mid'])) { Uniapp::renderError('未登录'); } $now = time(); if ($_W['wlsetting']['halfcard']['halfcardtype'] == 2) { $halfcardflag = pdo_fetch("SELECT id FROM " . tablename('wlmerchant_halfcardmember') . "WHERE uniacid = {$_W['uniacid']} AND mid = {$_W['mid']} AND aid = {$_W['aid']} AND expiretime > {$now} AND disable != 1"); } else { $halfcardflag = pdo_fetch("SELECT id FROM " . tablename('wlmerchant_halfcardmember') . "WHERE uniacid = {$_W['uniacid']} AND mid = {$_W['mid']} AND expiretime > {$now} AND disable != 1"); } return $halfcardflag; } static function payChargeNotify($params) { global $_W; Util::wl_log('payResult_notify', PATH_DATA . "merchant/data/", $params); //写入异步日志记录 $order_out = pdo_get(PDO_NAME . 'order', array('orderno' => $params['tid'])); $_W['uniacid'] = $order_out['uniacid']; if ($order_out['status'] == 0 || $order_out['status'] == 5) { $data = self::getVipPayData($params); //得到支付参数,处理代付 if ($data['status'] == 1) { $data['status'] = 3; } pdo_update(PDO_NAME . 'order', $data, array('orderno' => $params['tid'])); $res1 = self::credit_update_credit2($order_out['mid'], $order_out['price'], '余额充值', $order_out['orderno']); $settings = Setting::wlsetting_read('recharge'); $count = count($settings['kilometre']); for ($i = 0; $i < $count; $i++) { $array[$i]['kilometre'] = $settings['kilometre'][$i]; $array[$i]['kilmoney'] = $settings['kilmoney'][$i]; } $give = 0; foreach ($array as $key => $val) { $dos[$key] = $val['kilometre']; } array_multisort($dos, SORT_ASC, $array); foreach ($array as $key => $ar) { if ($order_out['price'] > $ar['kilometre'] || $order_out['price'] == $ar['kilometre']) { $give = $ar['kilmoney']; } } if ($give > 0) { $res2 = self::credit_update_credit2($order_out['mid'], $give, '余额充值赠送', $order_out['orderno']); } } } static function payChargeReturn($params) { wl_message('充值成功', h5_url('pages/mainPages/userCenter/userCenter')); } static function getVipPayData($params) { global $_W; $data = array('status' => $params['result'] == 'success' ? 1 : 0); if ($params['is_usecard'] == 1) { $fee = $params['card_fee']; $data['is_usecard'] = 1; } else { $fee = $params['fee']; } //$paytype = array('credit' => 1, 'wechat' => 2, 'alipay' => 3, 'delivery' => 4, 'wxapp' => 5); $data['paytype'] = $params['type']; if ($params['type'] == 'wechat') $data['transid'] = $params['tag']['transaction_id']; $data['paytime'] = TIMESTAMP; return $data; } /** * Comment: 生成微信用户信息 * Author: zzw * Date: 2020/3/9 10:32 * @param $nickname * @return mixed */ public static function createUserInfo($nickname){ global $_W; $group_id = pdo_getcolumn('mc_groups', ['uniacid' => $_W['uniacid'], 'isdefault' => 1], 'groupid'); $salt = random(8); $data = [ 'uniacid' => $_W['uniacid'], 'salt' => $salt, 'groupid' => $group_id, 'createtime' => TIMESTAMP, 'nickname' => $nickname, ]; //储存微擎用户数据信息 pdo_insert('mc_members', $data); $uid = pdo_insertid(); return $uid; } /** * 修改商户关联用户身份 * @param $storeid // 商户id * @param $merchant_type // 商户类型 1-企业 2-商户 * @return false|void */ static function updateStoreUserIdentity($storeid,$merchant_type = '') { if (empty($storeid)) return false; $storeRes = pdo_get(PDO_NAME . 'merchantdata' , ['id' => $storeid] , ['status','merchant_type']); if ($storeRes['status'] != 2) return false; if (empty($merchant_type)) $merchant_type = $storeRes['merchant_type']; $identity_id = $merchant_type == 1 ? 5 : 4; // 4 商家 5 企业 $mid_res = pdo_getall(PDO_NAME . 'merchantuser', ['storeid' => $storeid, 'ismain' => 1],['mid']); foreach ($mid_res as $mid_row) { pdo_update(PDO_NAME . 'member',['identity_id' => $identity_id], ['id' => $mid_row['mid']]); } } /** * 商户企业身份 回退游客身份 * @param $mid */ static function returnIdentity($mid) { $query = pdo_get(PDO_NAME . 'merchantuser',['mid' => $mid]); if (!$query) { $memberQuery = pdo_get(PDO_NAME.'member',['id' => $mid,'identity_id' => [4,5]],'identity_id'); if ($memberQuery) { pdo_update(PDO_NAME . 'member',['identity_id' => 1], ['id' => $mid]); } } } /** * 获取用户头像和昵称 * @param $data * @param $mid * @return false|void */ static function getMemberInfo(&$data,$mid) { if (!is_array($data)) return false; $memberinfo = pdo_get(PDO_NAME.'member',array('id' => $mid),array('avatar','nickname','encodename')); if (!$memberinfo) return false; $data['nickname'] = base64_decode($memberinfo['encodename']); $data['avatar'] = tomedia($memberinfo['avatar']); } /** * 验证用户身份是否可以认证 * @param $mid // 用户ID * @param $notIdentity // 是否进行身份验证 * @return array|bool[] */ static function validateMemberIdentity($mid,$notIdentity = true,$storePay = false) { if (empty($mid)) return ['status' => true]; // 防止交叉申请认证 $where = ['mid' => $mid, 'status' => 0]; $student_res = pdo_get(PDO_NAME . 'member_student_info',['check_status' => 0, 'mid' => $mid],'id'); if ($student_res) return ['status' => false, 'msg' => '学生身份认证审核中...,不可申请认证', 'identity' => '学生身份']; $teacher_res = pdo_get(PDO_NAME . 'member_teacher_certified',$where,'id'); if ($teacher_res) return ['status' => false, 'msg' => '教师身份认证审核中...,不可申请认证', 'identity' => '教师身份']; $blogger_res = pdo_get(PDO_NAME . 'member_daren_certified',$where,'id'); if ($blogger_res) return ['status' => false, 'msg' => '达人身份认证审核中...,不可申请认证', 'identity' => '达人身份']; $user_res = pdo_get(PDO_NAME . 'merchantuser',['mid' => $mid],['storeid']); if ($user_res) { $statusArr = $storePay ? 1 : [0,1]; $merchant_res = pdo_get(PDO_NAME . 'merchantdata',['id' => $user_res['storeid'], 'status' => $statusArr],['id','status']); if ($merchant_res) { $str = $merchant_res['status'] == 1 ? '审核' : '待支付'; return ['status' => false, 'msg' => '企业身份认证'.$str.'中...,不可申请认证', 'identity' => '企业身份']; } } // 认证身份是否可以申请 if ($notIdentity) { $member = pdo_get(PDO_NAME . 'member',['id' => $mid],['identity_id']); if (in_array($member['identity_id'],[1,3])) return ['status' => true]; $identity = pdo_get(PDO_NAME . 'member_identity',['id' => $member['identity_id']],'name'); return ['status' => false, 'msg' => '当前用户已是'.$identity['name'].'身份,不可申请认证', 'identity' => $identity['name'].'身份']; } return ['status' => true]; } /** * 申请变更身份的用户 * @return array */ static function applyChangeInentityUser() { $midArr = []; $student_res = pdo_getall(PDO_NAME . 'member_student_info',['check_status' => 0],'mid'); foreach ($student_res as $student_row) $midArr[] = $student_row['mid']; $teacher_res = pdo_getall(PDO_NAME . 'member_teacher_certified',['status' => 0],'mid'); foreach ($teacher_res as $teacher_row) $midArr[] = $teacher_row['mid']; $blogger_res = pdo_getall(PDO_NAME . 'member_daren_certified',['status' => 0],'mid'); foreach ($blogger_res as $blogger_row) $midArr[] = $blogger_row['mid']; $user_sql = "select a.mid from ".tablename('wlmerchant_merchantuser')." as a join ".tablename('wlmerchant_merchantdata')." as b " ." on a.storeid = b.id where a.enabled = 1 and a.status in (0,1) and b.status in (0,1)"; $user_res = pdo_fetch($user_sql); foreach ($user_res as $user_row) $midArr[] = $user_row['mid']; return array_unique($midArr); } /** * 验证用户权限 * @param $mid * @param $key * @param $member * @return array|bool[] */ public static function validateMemberRights($mid,$key,$member = []) { if (empty($member)) { $member = pdo_get(PDO_NAME . 'member',['id' => $mid]); } $rights = $member['rights']; $rightsInfo = $rights ? unserialize($rights) : []; // 用户权限 # 校园活动发布是否显示 判断用户是否有权限 是否有校园活动发布权限 switch ($key) { case 'campus_activities': if (!isset($rightsInfo[$key]) || $rightsInfo[$key] != 1) { return ['status' => false, 'msg' => '您未开通校园活动发布权限,无法访问']; } break; case '未完待续': break; } return ['status' => true]; } /** * 递归删除校园活动评论 */ static function commentDelete($id) { global $_W; if (empty($id)) return false; $arr = pdo_getall(PDO_NAME . 'member_evaluation_activities' , ['uniacid' => $_W['uniacid'] , 'pid' => $id]); if (empty($arr)) return pdo_delete(PDO_NAME . 'member_evaluation_activities' , ['uniacid' => $_W['uniacid'] , 'id' => $id]); foreach ($arr as $key => $value) { if (!self::commentDelete($value['id'])) return false; } return pdo_delete(PDO_NAME . 'member_evaluation_activities' , ['uniacid' => $_W['uniacid'] , 'id' => $id]); } }