model('app'); $dos = array('display', 'credits', 'address', 'card', 'mycard', 'record', 'mobile', 'email', 'barcode', 'qrcode', 'consume', 'card_qrcode', 'addressadd'); $do = in_array($do, $dos) ? $do : 'display'; load()->func('tpl'); load()->model('user'); if ($do == 'credits') { $where = ''; $params = array(':uid' => $_W['member']['uid']); $pindex = max(1, intval($_GPC['page'])); $psize = 15; if (empty($starttime) || empty($endtime)) { $starttime = strtotime('-1 month'); $endtime = time(); } if ($_GPC['time']) { $starttime = strtotime($_GPC['time']['start']); $endtime = strtotime($_GPC['time']['end']) + 86399; $where = ' AND `createtime` >= :starttime AND `createtime` < :endtime'; $params[':starttime'] = $starttime; $params[':endtime'] = $endtime; } $sql = 'SELECT `realname`, `avatar` FROM ' . tablename('mc_members') . " WHERE `uid` = :uid"; $user = pdo_fetch($sql, array(':uid' => $_W['member']['uid'])); if ($_GPC['credittype']) { if ($_GPC['type'] == 'order') { $sql = 'SELECT * FROM ' . tablename('mc_credits_recharge') . " WHERE `uid` = :uid $where LIMIT " . ($pindex - 1) * $psize. ',' . $psize; $orders = pdo_fetchall($sql, $params); foreach ($orders as &$value) { $value['createtime'] = date('Y-m-d', $value['createtime']); $value['fee'] = number_format($value['fee'], 2); if ($value['status'] == 1) { $orderspay += $value['fee']; } unset($value); } $ordersql = 'SELECT COUNT(*) FROM ' .tablename('mc_credits_recharge') . "WHERE `uid` = :uid {$where}"; $total = pdo_fetchcolumn($ordersql, $params); $orderpager = pagination($total, $pindex, $psize, '', array('before' => 0, 'after' => 0, 'ajaxcallback' => '')); template('mc/bond'); exit(); } $where .= " AND `credittype` = '{$_GPC['credittype']}'"; } $sql = 'SELECT `num` FROM ' . tablename('mc_credits_record') . " WHERE `uid` = :uid $where"; $nums = pdo_fetchall($sql, $params); $pay = $income = 0; foreach ($nums as $value) { if ($value['num'] > 0) { $income += $value['num']; } else { $pay += abs($value['num']); } } $pay = number_format($pay, 2); $income = number_format($income, 2); $sql = 'SELECT * FROM ' . tablename('mc_credits_record') . " WHERE `uid` = :uid {$where} ORDER BY `createtime` DESC LIMIT " . ($pindex - 1) * $psize.','. $psize; $data = pdo_fetchall($sql, $params); foreach ($data as $key=>$value) { $data[$key]['credittype'] = $creditnames[$data[$key]['credittype']]['title']; $data[$key]['createtime'] = date('Y-m-d H:i', $data[$key]['createtime']); $data[$key]['num'] = number_format($value['num'], 2); } $pagesql = 'SELECT COUNT(*) FROM ' .tablename('mc_credits_record') . "WHERE `uid` = :uid {$where}"; $total = pdo_fetchcolumn($pagesql, $params); $pager = pagination($total, $pindex, $psize, '', array('before' => 0, 'after' => 0, 'ajaxcallback' => '')); } if ($do == 'address') { if ($_GPC['op'] == 'default') { pdo_update('mc_member_address', array('isdefault' => 0), array('uniacid' => $_W['uniacid'], 'uid' => $_W['member']['uid'])); pdo_update('mc_member_address', array('isdefault' => 1), array('id' => $_GPC['id'])); pdo_update('mc_members', array('address' => $_GPC['address']), array('uid' => $_W['member']['uid'], 'uniacid' => $_W['uniacid'])); } if ($_GPC['op'] == 'delete') { pdo_delete('mc_member_address', array('id' => $_GPC['id'])); } $where = ' WHERE 1'; $params = array(':uniacid' => $_W['uniacid'], ':uid' => $_W['member']['uid']); if (!empty($_GPC['addid'])) { $where .= ' AND `id` = :id'; $params[':id'] = intval($_GPC['addid']); } $where .= ' AND `uniacid` = :uniacid AND `uid` = :uid'; $sql = 'SELECT * FROM ' . tablename('mc_member_address') . $where; if (empty($params[':id'])) { $psize = 10; $pindex = max(1, intval($_GPC['page'])); $sql .= ' LIMIT ' . ($pindex - 1) * $psize . ',' . $psize; $addresses = pdo_fetchall($sql, $params); $sql = 'SELECT COUNT(*) FROM ' . tablename('mc_member_address') . $where; $total = pdo_fetchcolumn($sql, $params); $pager = pagination($total, $pindex, $psize); } else { $address = pdo_fetch($sql, $params); } } /*添加或编辑地址*/ if ($do == 'addressadd') { if ($_W['ispost']) { $address = $_GPC['address']; if (empty($address['username'])) { message('请输入您的姓名', referer(), 'error'); } if (empty($address['mobile'])) { message('请输入您的手机号', referer(), 'error'); } if (empty($address['zipcode'])) { message('请输入您的邮政编码', referer(), 'error'); } if (empty($address['province'])) { message('请输入您的所在省', referer(), 'error'); } if (empty($address['city'])) { message('请输入您的所在市', referer(), 'error'); } if (empty($address['district'])) { message('请输入您的所在区', referer(), 'error'); } if (empty($address['address'])) { message('请输入您的详细地址', referer(), 'error'); } $address['uniacid'] = $_W['uniacid']; $address['uid'] = $_W['member']['uid']; $address_data = pdo_get('mc_member_address', array('uniacid' => $_W['uniacid'], 'uid' => $address['uid'])); if (empty($address_data)) { $address['isdefault'] = 1; } if (!empty($_GPC['addid'])) { if (pdo_update('mc_member_address', $address, array('id' => intval($_GPC['addid']), 'uid' => $address['uid']))) { message('修改收货地址成功', url('mc/bond/address'), 'success'); } else { message('修改收货地址失败,请稍后重试', url('mc/bond/address'), 'error'); } } if (pdo_insert('mc_member_address', $address)) { $adres = pdo_get('mc_member_address', array('uniacid' => $_W['uniacid'], 'uid' => $address['uid'], 'isdefault'=> 1)); if (!empty($adres)) { $adres['address'] = $adres['province'].$adres['city'].$adres['district'].$adres['address']; pdo_update('mc_members', array('address' => $adres['address']), array('uid' => $address['uid'])); } message('地址添加成功', url('mc/bond/address'), 'success'); } } if (!empty($_GPC['addid'])) { $address = pdo_get('mc_member_address', array('id' => $_GPC['addid'], 'uniacid' => $_W['uniacid'])); } } if ($do == 'card') { $mcard = pdo_fetch('SELECT * FROM ' . tablename('mc_card_members') . ' WHERE uniacid = :uniacid AND uid = :uid', array(':uniacid' => $_W['uniacid'], ':uid' => $_W['member']['uid'])); if(!empty($mcard)) { header('Location:' . url('mc/bond/mycard')); } $sql = 'SELECT * FROM ' . tablename('mc_card') . "WHERE `uniacid` = :uniacid AND `status` = '1'"; $setting = pdo_fetch($sql, array(':uniacid' => $_W['uniacid'])); if (!empty($setting)) { $setting['color'] = iunserializer($setting['color']); $setting['background'] = iunserializer($setting['background']); $setting['fields'] = iunserializer($setting['fields']); $setting['grant'] = iunserializer($setting['grant']); if(is_array($setting['grant'])) { $coupon_id = intval($setting['grant']['coupon']); if($coupon_id > 0) { $coupon = pdo_fetch('SELECT couponid,title,type FROM ' . tablename('activity_coupon') . ' WHERE uniacid = :uniacid AND couponid = :couponid', array(':uniacid' => $_W['uniacid'], ':couponid' => $coupon_id)); } } } else { message('公众号尚未开启会员卡功能', url('mc'), 'error'); } if(!empty($setting['fields'])) { $fields = array('email'); foreach($setting['fields'] as $li) { if($li['bind'] == 'birth') { $fields[] = 'birthyear'; $fields[] = 'birthmonth'; $fields[] = 'birthday'; } elseif($li['bind'] == 'reside') { $fields[] = 'resideprovince'; $fields[] = 'residecity'; $fields[] = 'residedist'; } else { $fields[] = $li['bind']; } } $member_info = mc_fetch($_W['member']['uid'], $fields); $reregister = 0; if(strlen($member_info['email']) == 39 && strexists($member_info['email'], '@we7.cc')) { $member_info['email'] = ''; $reregister = 1; } } if (checksubmit('submit')) { $data = array(); $realname = trim($_GPC['realname']); if(empty($realname)) { message('请输入姓名', referer(), 'info'); } $data['realname'] = $realname; $mobile = trim($_GPC['mobile']); if(!preg_match(REGULAR_MOBILE, $mobile)) { message('手机号有误,请重新输入', referer(), 'info'); } $data['mobile'] = $mobile; if (!empty($setting['fields'])) { foreach ($setting['fields'] as $row) { if($row['bind'] == 'mobile' && !preg_match(REGULAR_MOBILE, $_GPC['mobile'])) { message('手机号有误,请重新输入', referer(), 'info'); } if (!empty($row['require']) && ($row['bind'] == 'birth' || $row['bind'] == 'birthyear')) { if (empty($_GPC['birth']['year']) || empty($_GPC['birth']['month']) || empty($_GPC['birth']['day'])) { message('请输入完整的出生日期!', referer(), 'info'); } $row['bind'] = 'birth'; } elseif (!empty($row['require']) && $row['bind'] == 'resideprovince') { if (empty($_GPC['reside']['province']) || empty($_GPC['reside']['city']) || empty($_GPC['reside']['district'])) { message('请输入完整的居住地!', referer(), 'info'); } $row['bind'] = 'reside'; } elseif (!empty($row['require']) && empty($_GPC[$row['bind']])) { message('请输入'.$row['title'].'!', referer(), 'info'); } $data[$row['bind']] = $_GPC[$row['bind']]; } } $check = mc_check($data); if(is_error($check)) { message($check['message'], referer(), 'error'); } $sql = 'SELECT COUNT(*) FROM ' . tablename('mc_card_members') . " WHERE `uid` = :uid AND `cid` = :cid AND uniacid = :uniacid"; $count = pdo_fetchcolumn($sql, array(':uid' => $_W['member']['uid'], ':cid' => $_GPC['cardid'], ':uniacid' => $_W['uniacid'])); if ($count >= 1) { message('抱歉,您已经领取过该会员卡.', referer(), 'error'); } $record = array( 'uniacid' => $_W['uniacid'], 'openid' => $_W['openid'], 'uid' => $_W['member']['uid'], 'cid' => $_GPC['cardid'], 'cardsn' => $data['mobile'], 'status' => '1', 'createtime' => TIMESTAMP, 'endtime' => TIMESTAMP ); if(pdo_insert('mc_card_members', $record)) { if(!empty($data)){ mc_update($_W['member']['uid'], $data); } $notice = ''; if(is_array($setting['grant'])) { if($setting['grant']['credit1'] > 0) { $log = array( $_W['member']['uid'], "领取会员卡,赠送{$setting['grant']['credit1']}积分" ); mc_credit_update($_W['member']['uid'], 'credit1', $setting['grant']['credit1'], $log); $notice .= "赠送【{$setting['grant']['credit1']}】积分"; } if($setting['grant']['credit2'] > 0) { $log = array( $_W['member']['uid'], "领取会员卡,赠送{$setting['credit2']['credit1']}余额" ); mc_credit_update($_W['member']['uid'], 'credit2', $setting['grant']['credit2'], $log); $notice .= ",赠送【{$setting['grant']['credit2']}】余额"; } if($setting['grant']['coupon'] > 0 && !empty($coupon)) { if($coupon['type'] == 1) { $status = activity_coupon_grant($_W['member']['uid'], $coupon['couponid'], 'card', '领取会员卡,赠送优惠券'); } else { $status = activity_token_grant($_W['member']['uid'], $coupon['couponid'], 'card', '领取会员卡,赠送优惠券'); } if(!is_error($status)) { $notice .= ",赠送【{$coupon['title']}】优惠券"; } } } $time = date('Y-m-d H:i'); $url = murl('mc/bond/mycard/', array(), true, true); $title = "【{$_W['account']['name']}】- 领取会员卡通知\n"; $info = "您在{$time}成功领取会员卡,{$notice}。\n\n"; $info .= "点击查看详情"; $status = mc_notice_custom_text($_W['openid'], $title, $info); message("领取会员卡成功
{$notice}", url('mc/bond/mycard'), 'success'); } else { message('领取会员卡失败.', referer(), 'error'); } } } if ($do == 'mycard') { $mcard = pdo_fetch('SELECT * FROM ' . tablename('mc_card_members') . ' WHERE uniacid = :uniacid AND uid = :uid', array(':uniacid' => $_W['uniacid'], ':uid' => $_W['member']['uid'])); if(empty($mcard)) { header('Location:' . url('mc/bond/card')); } if(empty($mcard['openid']) && !empty($_W['openid'])) { pdo_update('mc_card_members', array('openid' => $_W['openid']), array('uniacid' => $_W['uniacid'], 'uid' => $_W['member']['uid'])); } if (!empty($mcard['status'])) { $setting = pdo_fetch('SELECT * FROM ' . tablename('mc_card') . ' WHERE uniacid = :uniacid', array(':uniacid' => $_W['uniacid'])); if(!empty($setting)) { $setting['color'] = iunserializer($setting['color']); $setting['background'] = iunserializer($setting['background']);; } } load()->model('card'); $notice_count = card_notice_stat(); } if($do == 'consume') { load()->model('card'); $setting = card_setting(); $stores = pdo_fetchall('SELECT id,business_name FROM ' . tablename('activity_stores') . ' WHERE uniacid = :uniacid', array(':uniacid' => $_W['uniacid']), 'id'); $card_params = json_decode($setting['params'], true); if (!empty($card_params)) { foreach ($card_params as $key => $value) { if ($value['id'] == 'cardActivity') { $grant_rate = $value['params']['grant_rate']; } } } $setting['grant_rate'] = $grant_rate; if(checksubmit()) { $credit = floatval($_GPC['credit']); $discount_credit = $credit; $store_id = intval($_GPC['store_id']); $store_str = (!$store_id || empty($stores[$store_id])) ? '未知' : $stores[$store_id]['business_name']; if(!$credit) { message('请输入消费金额', referer(), 'error'); } if($setting['discount_type'] > 0 && !empty($setting['discount'])) { $discount = $setting['discount'][$_W['member']['groupid']]; if(!empty($discount['discount']) && $credit >= $discount['condition']) { if($setting['discount_type'] == 1) { $discount_credit = $credit - $discount['discount']; $discount_str = ",该会员属于【{$_W['member']['groupname']}】,可享受【满{$discount['condition']}元减{$discount['discount']}元】,最终支付【{$discount_credit}】元"; } else { $rate = $discount['discount'] * 10; $discount_credit = $credit * $discount['discount']; $discount_str = ",该会员属于【{$_W['member']['groupname']}】,可享受【满{$discount['condition']}元打{$rate}折】,最终支付【{$discount_credit}】元"; } if($discount_credit < 0) { $discount_credit = 0; } } } if($_W['member']['credit2'] < $discount_credit) { message('余额不足', referer(), 'error'); } if($setting['grant_rate'] > 0) { $credit1 = $discount_credit * $setting['grant_rate']; $log_credit1 = array( $_W['member']['uid'], "使用会员卡消费【{$discount_credit}】元,消费返积分比率:【1:{$setting['grant_rate']}】,共赠送积分{$credit1}" ); mc_credit_update($_W['member']['uid'], 'credit1', $credit1, $log_credit1); $discount_str .= ",消费返积分比率:【1:{$setting['grant_rate']}】,共赠送积分{$credit1}"; } $log_credit2 = array( $_W['member']['uid'], "使用会员卡消费【{$credit}】元 {$discount_str},消费门店:{$store_str}", 'card', 0, $store_id ); mc_credit_update($_W['member']['uid'], 'credit2', -$discount_credit, $log_credit2); mc_notice_credit2($_W['openid'], $_W['member']['uid'], -$discount_credit, $credit1, $store_str); message("消费成功,共扣除余额{$discount_credit}元,赠送{$credit1}积分", url('mc/bond/mycard'), 'success'); } if($setting['discount_type'] != 0 && !empty($setting['discount'])) { $discount = $setting['discount']; if(!empty($discount[$_W['member']['groupid']])) { $tips = "您当前会员组 {$_W['member']['groupname']} ,可享受满 {$discount[$_W['member']['groupid']]['condition']}元"; if($setting['discount_type'] == 2) { $rate = $discount[$_W['member']['groupid']]['discount'] * 10; $tips .= "打{$rate}折"; } else { $tips .= "减{$discount[$_W['member']['groupid']]['discount']}元"; } $mine_discount = $discount[$_W['member']['groupid']]; } } $url = $_W['siteroot'] . 'app' . ltrim(murl('clerk/card', array('uid' => $_W['member']['uid'])), '.'); template('mc/consume'); exit(); } if($do == 'card_qrcode') { require_once('../framework/library/qrcode/phpqrcode.php'); $errorCorrectionLevel = "L"; $matrixPointSize = "8"; $url = $_W['siteroot'] . 'app' . ltrim(murl('clerk/card', array('uid' => $_W['member']['uid'])), '.'); QRcode::png($url, false, $errorCorrectionLevel, $matrixPointSize); exit(); } if ($do == 'barcode') { $cardsn = $_W['member']['uid']; $barcode_path = '../framework/library/barcode/'; require_once($barcode_path . 'class/BCGFontFile.php'); require_once($barcode_path . 'class/BCGColor.php'); require_once($barcode_path . 'class/BCGDrawing.php'); require_once($barcode_path . 'class/BCGcode39.barcode.php'); $color_black = new BCGColor(0, 0, 0); $color_white = new BCGColor(255, 255, 255); $drawException = null; try { $code = new BCGcode39(); $code->setScale(2); $code->setThickness(30); $code->setForegroundColor($color_black); $code->setBackgroundColor($color_white); $code->setFont($font); $code->parse($cardsn); } catch(Exception $exception) { $drawException = $exception; } $drawing = new BCGDrawing('', $color_white); if($drawException) { $drawing->drawException($drawException); } else { $drawing->setBarcode($code); $drawing->draw(); } header('Content-Type: image/png'); header('Content-Disposition: inline; filename="barcode.png"'); $drawing->finish(BCGDrawing::IMG_FORMAT_PNG); } if ($do == 'qrcode') { require_once('../framework/library/qrcode/phpqrcode.php'); $errorCorrectionLevel = "L"; $matrixPointSize = "8"; $cardsn = $_W['member']['uid']; QRcode::png($cardsn, false, $errorCorrectionLevel, $matrixPointSize); } if($do == 'record') { $setting = pdo_get('mc_card', array('uniacid' => $_W['uniacid']), array('nums_text', 'times_text')); $card = pdo_get('mc_card_members', array('uniacid' => $_W['uniacid'], 'uid' => $_W['member']['uid'])); $type = trim($_GPC['type']); $where = ' WHERE uniacid = :uniacid AND uid = :uid AND type = :type'; $params = array( ':uniacid' => $_W['uniacid'], ':uid' => $_W['member']['uid'], ':type' => $type, ); $pindex = max(1, intval($_GPC['page'])); $psize = 20; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('mc_card_record') . $where, $params); $limit = ' ORDER BY id DESC LIMIT ' . ($pindex - 1) * $psize . ', ' . $psize; $data = pdo_fetchall('SELECT * FROM ' . tablename('mc_card_record') . $where . $limit, $params); $pager = pagination($total, $pindex, $psize, '', array('before' => 0, 'after' => 0, 'ajaxcallback' => '')); } if($do == 'mobile') { $profile = mc_fetch($_W['member']['uid'], array('mobile')); $mobile_exist = empty($profile['mobile']) ? 0 : 1; if(checksubmit('submit')) { if($mobile_exist == 1) { $oldmobile = trim($_GPC['oldmobile']) ? trim($_GPC['oldmobile']) : message('请填写原手机号'); $password = trim($_GPC['password']) ? trim($_GPC['password']) : message('请填写密码'); $mobile = trim($_GPC['mobile']) ? trim($_GPC['mobile']) : message('请填写新手机号'); if(!preg_match(REGULAR_MOBILE, $mobile)) { message('新手机号格式有误', '', 'error'); } $info = pdo_fetch('SELECT uid, password, salt FROM ' . tablename('mc_members') . ' WHERE uniacid = :uniacid AND mobile = :mobile AND uid = :uid', array(':uniacid' => $_W['uniacid'], ':mobile' => $oldmobile, ':uid' => $_W['member']['uid'])); if(!empty($info)) { if($info['password'] == md5($password . $info['salt'] . $_W['config']['setting']['authkey'])) { pdo_update('mc_members', array('mobile' => $mobile), array('uniacid' => $_W['uniacid'], 'uid' => $_W['member']['uid'])); message('修改手机号成功', url('mc/home'), 'success'); } else { message('密码输入错误', '', 'error'); } } else { message('原手机号输入错误', '', 'error'); } } else { $mobile = trim($_GPC['mobile']) ? trim($_GPC['mobile']) : message('请填写手机号'); if(!preg_match(REGULAR_MOBILE, $mobile)) { message('手机号格式有误', '', 'error'); } $password = trim($_GPC['password']); if(empty($password) || strlen($password) < 6) { message('密码不能少于6位'); } $repassword = trim($_GPC['repassword']); if($password != $repassword) { message('两次输入密码不一致'); } $is_exist = pdo_fetch('SELECT uid FROM ' . tablename('mc_members') . ' WHERE uniacid = :uniacid AND mobile = :mobile AND uid != :uid', array(':uniacid' => $_W['uniacid'], ':mobile' => $mobile, ':uid' => $_W['member']['uid'])); if(!empty($is_exist)) { message('该手机号已被绑定,换个手机号试试', '', 'error'); } $salt = random(8); $password = md5($password . $salt . $_W['config']['setting']['authkey']); pdo_update('mc_members', array('mobile' => $mobile, 'salt' => $salt, 'password' => $password), array('uniacid' => $_W['uniacid'], 'uid' => $_W['member']['uid'])); message('修改手机号成功', url('mc/home'), 'success'); } } } if($do == 'email') { $username_type = empty($setting['passport']['item']) ? 'random' : $setting['passport']['item']; $profile = mc_fetch($_W['member']['uid'], array('uid', 'email', 'salt')); $reregister = false; if ($_W['member']['email'] == md5($_W['openid']).'@we7.cc') { $reregister = true; } if(checksubmit('submit')) { $type = intval($_GPC['type']); $data = array(); if ($type == 1) { if ($reregister) { if (!empty($_GPC['email'])) { $username = trim($_GPC['email']); if (($username_type == 'email' || $username_type == 'random') && preg_match(REGULAR_EMAIL, $username)) { $data['email'] = $username; $emailexists = pdo_fetch("SELECT uid FROM ".tablename('mc_members')." WHERE email = :email AND uniacid = :uniacid AND uid != :uid ", array(':email' => $data['email'], ':uniacid' => $_W['uniacid'], ':uid' => $_W['member']['uid'])); if (!empty($emailexists['uid'])) { message('抱歉,该E-Mail地址已经被注册,请更换。', '', 'error'); } } elseif (($username_type == 'mobile' || $username_type == 'random') && preg_match(REGULAR_MOBILE, $username)) { $data['mobile'] = $username; $mobileexists = pdo_fetch("SELECT uid FROM ".tablename('mc_members')." WHERE mobile = :mobile AND uniacid = :uniacid AND uid != :uid ", array(':mobile' => $data['mobile'], ':uniacid' => $_W['uniacid'], ':uid' => $_W['member']['uid'])); if (!empty($mobileexists['uid'])) { message('抱歉,该手机号已经被注册,请更换。', '', 'error'); } //当用户已填写重要资料,把用户@we7.cc格式的邮箱重置为空,防止用户登陆反复提示重置资料 $data['email'] = ''; } else { if ($username_type == 'mobile') { message('手机号码格式有误', '', 'error'); } elseif ($username_type == 'email') { message('E-Mail格式有误', '', 'error'); } else { message('手机号码或E-Mail格式有误', '', 'error'); } } } } if (empty($_GPC['password'])) { message('请输入您的密码', '', 'error'); } $data['password'] = md5($_GPC['password'] . $profile['salt'] . $_W['config']['setting']['authkey']); pdo_update('mc_members', $data, array( 'uid' => $profile['uid'] )); message('修改帐号密码成功!', url('mc/home'), 'success'); } else { $data['username'] = $_GPC['username']; $data['password'] = $_GPC['oldpassword']; if (empty($data['username']) || empty($data['password'])) { message('抱歉,用户名或是密码没有填写。', '', 'error'); } $pars_tmp[':uniacid'] = $_W['uniacid']; if(preg_match(REGULAR_MOBILE, $data['username'])) { $sql_tmp .= ' AND `mobile`=:mobile'; $pars_tmp[':mobile'] = $data['username']; } else { $sql_tmp .= ' AND `email`=:email'; $pars_tmp[':email'] = $data['username']; } $member = pdo_fetch("SELECT `uid`,`salt`,`password` FROM " . tablename('mc_members') . " WHERE `uniacid`=:uniacid " . $sql_tmp, $pars_tmp); if (empty($member)) { message('抱歉,用户不存或是已经被删除', '', 'error'); } $hash = md5($data['password'] . $member['salt'] . $_W['config']['setting']['authkey']); if($member['password'] != $hash) { message('抱歉,您输入的密码有误', '', 'error'); } pdo_update('mc_mapping_fans', array('uid' => $member['uid']), array( 'acid' => $_W['acid'], 'openid' => $_W['openid'], )); $member_old = mc_fetch($_W['member']['uid']); $member_new = mc_fetch($member['uid']); if(!empty($member_old) && !empty($member_new)) { $ignore = array('email', 'password', 'uid', 'uniacid', 'salt', 'credit1', 'credit2', 'credit3','credit4','credit5'); $profile_update = array(); foreach($member_old as $key => $value) { if(!in_array($key, $ignore)) { if(empty($member_new[$key]) && !empty($member_old[$key])) { $profile_update[$key] = $member_old[$key]; } } } $profile_update['credit1'] = $member_old['credit1'] + $member_new['credit1']; $profile_update['credit2'] = $member_old['credit2'] + $member_new['credit2']; $profile_update['credit3'] = $member_old['credit3'] + $member_new['credit3']; $profile_update['credit4'] = $member_old['credit4'] + $member_new['credit4']; $profile_update['credit5'] = $member_old['credit5'] + $member_new['credit5']; pdo_update('mc_members', $profile_update, array('uid' => $member['uid'], 'uniacid' => $_W['uniacid'])); pdo_delete('mc_members', array('uid' => $_W['member']['uid'], 'uniacid' => $_W['uniacid'])); pdo_update('activity_coupon_record', array('uid' => $member['uid']), array('uid' => $_W['member']['uid'], 'uniacid' => $_W['uniacid'])); pdo_update('activity_exchange_trades', array('uid' => $member['uid']), array('uid' => $_W['member']['uid'], 'uniacid' => $_W['uniacid'])); pdo_update('activity_exchange_trades_shipping', array('uid' => $member['uid']), array('uid' => $_W['member']['uid'], 'uniacid' => $_W['uniacid'])); pdo_update('mc_credits_record', array('uid' => $member['uid']), array('uid' => $_W['member']['uid'], 'uniacid' => $_W['uniacid'])); pdo_update('mc_card_members', array('uid' => $member['uid']), array('uid' => $_W['member']['uid'], 'uniacid' => $_W['uniacid'])); } message('重新绑定帐号成功!', url('mc/home'), 'success'); } } } template('mc/bond');