123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833 |
- <?php
- /**
- * 会员模型
- *
- *
- *
- *
- */
- defined('InShopNC') or exit('Access Invalid!');
- require_once(BASE_CORE_PATH . '/framework/libraries/validate.php');
- class memberModel extends Model
- {
- const mobile_login = 0;
- const anonymous_login = 1;
- const wxopen_login = 2;
- public function __construct()
- {
- parent::__construct('member');
- }
- public static function gen_openid_uid($openid, $type)
- {
- $key = 'openid_uid:' . $openid . ':' . $type;
- return $key;
- }
- public static function gen_token_uid($token)
- {
- $key = 'token_uid:' . $token;
- return $key;
- }
- public static function gen_uid_token($uid)
- {
- $key = 'uid_token:' . $uid;
- return $key;
- }
- /**
- * 会员详细信息(查库)
- * @param array $condition
- * @param string $field
- * @return array
- */
- public function getMemberInfo($condition, $field = '*', $master = false)
- {
- return $this->table('member')->field($field)->where($condition)->master($master)->find();
- }
- /**
- * 读取商品缓存
- * @param string $userid
- * @param string $type
- * @return array
- */
- public function getMemberID($openid, $type, $passwd = '')
- {
- if (empty($openid) || !in_array($type, array(0, 1, 2))) {
- return -1;
- }
- $key = $this->gen_openid_uid($openid, $type);
- $user = rcache($key, 'member');
- if (!empty($user)) {
- if (($type == 0) && (md5($passwd) != $user['member_passwd'])) {
- return -1;
- }
- } else {
- $conditions = array();
- $conditions['member_type'] = $type;
- if ($type == self::mobile_login) {
- $conditions['member_mobile'] = $openid;
- $conditions['member_passwd'] = md5($passwd);
- } elseif ($type == self::anonymous_login) {
- $conditions['anonymous_id'] = $openid;
- } elseif ($type == self::wxopen_login) {
- $conditions['member_wxopenid'] = $openid;
- } else {
- return -1;
- }
- Log::record("member.model.php,getMemberID,conditions['member_mobile']={$conditions['member_mobile']},conditions['member_passwd']={$conditions['member_passwd']},", Log::DEBUG);
- $user = $this->getMemberInfo($conditions, 'member_id,member_passwd');
- Log::record("member.model.php,getMemberID user={$user['member_id']}", Log::DEBUG);
- if (empty($user)) {
- return -1;
- } else {
- wcache($key, $user, 'member');
- }
- }
- return $user['member_id'];
- }
- /**
- * 校验登陆(登陆是个不频繁操作,可以不使用缓存)
- */
- public function checkPasswd($mobile, $passwd)
- {
- // 登陆信息
- $conditions['member_mobile'] = $mobile;
- $conditions['member_passwd'] = md5($passwd);
- $user = $this->getMemberInfo($conditions);
- if (empty($user)) {
- return -1;
- }
- $member_info = array();
- $member_info['member_id'] = $user['member_id'];
- $member_info['member_mobile'] = $user['member_mobile'];
- $member_info['member_name'] = $user['member_name'];
- $member_info['member_sex'] = $user['member_sex'];
- $member_info['member_points'] = $user['member_points'];
- return $member_info;
- }
- /**
- * 微信登陆校验
- * @param $openid
- * @return array|int
- */
- public function checkWxopenid($openid)
- {
- // 登陆信息
- $conditions['member_wxopenid'] = $openid;
- $user = $this->getMemberInfo($conditions);
- if (empty($user)) {
- return -1;
- }
- $member_info = array();
- $member_info['member_id'] = $user['member_id'];
- $member_info['member_mobile'] = $user['member_mobile'];
- $member_info['member_name'] = $user['member_name'];
- $member_info['member_sex'] = $user['member_sex'];
- $member_info['member_points'] = $user['member_points'];
- return $member_info;
- }
- /**
- * 修改密码
- */
- public function chPasswd($mobile, $oldpasswd, $newpasswd)
- {
- $info = $this->checkPasswd($mobile, $oldpasswd);
- if ($info == -1) {
- return -1;
- }
- // 修改密码
- $condition = array();
- $condition['member_id'] = $info['member_id'];
- $data = array();
- $passwd = trim($newpasswd);
- $data['member_passwd'] = empty($passwd) ? $passwd : md5($passwd);
- $ret = $this->table('member')->where($condition)->update($data);
- if (!$ret) {
- return -1;
- }
- return $info;
- }
- /**
- * 更新用户密码
- */
- public function uptPasswd($member_id, $passwd)
- {
- // 修改密码
- $condition = array();
- $condition['member_id'] = $member_id;
- $data = array();
- $passwd = trim($passwd);
- $data['member_passwd'] = empty($passwd) ? $passwd : md5($passwd);
- $ret = $this->table('member')->where($condition)->update($data);
- if (!$ret) {
- return -1;
- }
- return 0;
- }
- /**
- * 绑定微信账号
- */
- public function bindwx($member_id, $openid)
- {
- $condition = array();
- $condition['member_id'] = $member_id;
- $data = array();
- $conditions['member_wxopenid'] = $openid;
- $ret = $this->table('member')->where($condition)->update($data);
- if (!$ret) {
- return -1;
- }
- return 0;
- }
- /**
- * 取得会员详细信息(优先查询缓存)
- * 如果未找到,则缓存所有字段
- * @param int $member_id
- * @param string $field 需要取得的缓存键值, 例如:'*','member_name,member_sex'
- * @return array
- */
- public function getMemberInfoByID($member_id, $fields = '*')
- {
- $member_info = rcache($member_id, 'member', $fields);
- if (empty($member_info)) {
- $member_info = $this->getMemberInfo(array('member_id' => $member_id), '*', true);
- wcache($member_id, $member_info, 'member');
- }
- return $member_info;
- }
- /**
- * 会员列表
- * @param array $condition
- * @param string $field
- * @param number $page
- * @param string $order
- */
- public function getMemberList($condition = array(), $field = '*', $page = 0, $order = 'member_id desc', $limit = '')
- {
- return $this->table('member')->where($condition)->page($page)->order($order)->limit($limit)->select();
- }
- /**
- * 会员数量
- * @param array $condition
- * @return int
- */
- public function getMemberCount($condition)
- {
- return $this->table('member')->where($condition)->count();
- }
- /**
- * 编辑会员
- * @param array $condition
- * @param array $data
- */
- public function editMember($condition, $data)
- {
- $update = $this->table('member')->where($condition)->update($data);
- if ($update && $condition['member_id']) {
- dcache($condition['member_id'], 'member');
- }
- return $update;
- }
- /**
- * 登录时创建会话SESSION
- *
- * @param array $member_info 会员信息
- */
- public function createSession($member_info = array(), $reg = false)
- {
- if (empty($member_info) || !is_array($member_info)) return;
- $_SESSION['is_login'] = '1';
- $_SESSION['member_id'] = $member_info['member_id'];
- $_SESSION['member_name'] = $member_info['member_name'];
- $_SESSION['member_email'] = $member_info['member_email'];
- $_SESSION['is_buy'] = isset($member_info['is_buy']) ? $member_info['is_buy'] : 1;
- $_SESSION['avatar'] = $member_info['member_avatar'];
- $seller_info = Model('seller')->getSellerInfo(array('member_id' => $_SESSION['member_id']));
- $_SESSION['store_id'] = $seller_info['store_id'];
- if (trim($member_info['member_qqopenid'])) {
- $_SESSION['openid'] = $member_info['member_qqopenid'];
- }
- if (trim($member_info['member_sinaopenid'])) {
- $_SESSION['slast_key']['uid'] = $member_info['member_sinaopenid'];
- }
- if (!$reg) {
- //添加会员积分
- $this->addPoint($member_info);
- //添加会员经验值
- $this->addExppoint($member_info);
- }
- if (!empty($member_info['member_login_time'])) {
- $update_info = array(
- 'member_login_num' => ($member_info['member_login_num'] + 1),
- 'member_login_time' => TIMESTAMP,
- 'member_old_login_time' => $member_info['member_login_time'],
- 'member_login_ip' => getIp(),
- 'member_old_login_ip' => $member_info['member_login_ip']
- );
- $this->editMember(array('member_id' => $member_info['member_id']), $update_info);
- }
- setNcCookie('cart_goods_num', '', -3600);
- }
- /**
- * 获取会员信息
- * @param array $param 会员条件
- * @param string $field 显示字段
- * @return array 数组格式的返回结果
- */
- public function infoMember($param, $field = '*')
- {
- if (empty($param)) return false;
- //得到条件语句
- $condition_str = $this->getCondition($param);
- $param = array();
- $param['table'] = 'member';
- $param['where'] = $condition_str;
- $param['field'] = $field;
- $param['limit'] = 1;
- $member_list = Db::select($param);
- $member_info = $member_list[0];
- if (intval($member_info['store_id']) > 0) {
- $param = array();
- $param['table'] = 'store';
- $param['field'] = 'store_id';
- $param['value'] = $member_info['store_id'];
- $field = 'store_id,store_name,grade_id';
- $store_info = Db::getRow($param, $field);
- if (!empty($store_info) && is_array($store_info)) {
- $member_info['store_name'] = $store_info['store_name'];
- $member_info['grade_id'] = $store_info['grade_id'];
- }
- }
- return $member_info;
- }
- /**
- * 注册
- */
- public function register($register_info)
- {
- // 注册验证
- $obj_validate = new Validate();
- $obj_validate->validateparam = array(
- array("input" => $register_info["username"], "require" => "true", "message" => '用户名不能为空'),
- array("input" => $register_info["password"], "require" => "true", "message" => '密码不能为空'),
- array("input" => $register_info["password_confirm"], "require" => "true", "validator" => "Compare", "operator" => "==", "to" => $register_info["password"], "message" => '密码与确认密码不相同'),
- //array("input"=>$register_info["email"], "require"=>"true", "validator"=>"email", "message"=>'电子邮件格式不正确'),
- );
- $error = $obj_validate->validate();
- if ($error != '') {
- return array('error' => $error);
- }
- // 验证用户名是否重复
- $check_member_name = $this->getMemberInfo(array('member_name' => $register_info['username']));
- if (is_array($check_member_name) and count($check_member_name) > 0) {
- return array('error' => '用户名已存在');
- }
- // 验证邮箱是否重复
- $check_member_email = $this->getMemberInfo(array('member_email' => $register_info['email']));
- if (is_array($check_member_email) and count($check_member_email) > 0) {
- return array('error' => '邮箱已存在');
- }
- // 会员添加
- $member_info = array();
- $member_info['member_name'] = $register_info['username'];
- $member_info['member_passwd'] = $register_info['password'];
- $member_info['member_email'] = $register_info['email'];
- //添加邀请人(推荐人)会员积分 by abc.com
- $member_info['inviter_id'] = $register_info['inviter_id'];
- $insert_id = $this->addMember($member_info);
- if ($insert_id) {
- //添加会员积分
- if (C('points_isuse')) {
- Model('points')->savePointsLog('regist', array('pl_memberid' => $insert_id, 'pl_membername' => $register_info['username']), false);
- //添加邀请人(推荐人)会员积分 by abc.com
- $inviter_name = Model('member')->table('member')->getfby_member_id($member_info['inviter_id'], 'member_name');
- Model('points')->savePointsLog('inviter', array('pl_memberid' => $register_info['inviter_id'], 'pl_membername' => $inviter_name, 'invited' => $member_info['member_name']));
- }
- // 添加默认相册
- $insert['ac_name'] = '买家秀';
- $insert['member_id'] = $insert_id;
- $insert['ac_des'] = '买家秀默认相册';
- $insert['ac_sort'] = 1;
- $insert['is_default'] = 1;
- $insert['upload_time'] = TIMESTAMP;
- $this->table('sns_albumclass')->insert($insert);
- $member_info['member_id'] = $insert_id;
- $member_info['is_buy'] = 1;
- return $member_info;
- } else {
- return array('error' => '注册失败');
- }
- }
- private function empty_model($param)
- {
- $member = array();
- $passwd = trim($param['member_passwd']);
- $member['member_passwd'] = empty($passwd) ? $passwd : md5($passwd);
- $member['member_time'] = TIMESTAMP;
- $member['member_login_time'] = TIMESTAMP;
- $member['member_old_login_time'] = TIMESTAMP;
- $member['member_login_ip'] = getIp();
- $member['member_old_login_ip'] = $member['member_login_ip'];
- return $member;
- }
- /**
- * 注册商城会员
- *
- * @param array $param 会员信息
- * @return array 数组格式的返回结果
- */
- public function addMember($param)
- {
- if (empty($param)) {
- return false;
- }
- try {
- $this->beginTransaction();
- $member_info = $this->empty_model($param);
- foreach ($param as $key => $value) {
- if ($key == 'member_passwd') {
- $passwd = trim($param['member_passwd']);
- $member_info['member_passwd'] = empty($passwd) ? $passwd : md5($passwd);
- } elseif ($key == 'member_time') {
- $member_info['member_time'] = TIMESTAMP;
- } elseif ($key == 'member_login_time') {
- $member_info['member_login_time'] = TIMESTAMP;
- } elseif ($key == 'member_login_ip') {
- $member_info['member_login_ip'] = getIp();
- } else {
- $member_info[$key] = $value;
- }
- }
- $insert_id = $this->table('member')->insert($member_info);
- if (!$insert_id) {
- throw new Exception();
- }
- $insert = $this->addMemberCommon(array('member_id' => $insert_id));
- if (!$insert) {
- throw new Exception();
- }
- $this->commit();
- return $insert_id;
- } catch (Exception $e) {
- $this->rollback();
- return false;
- }
- }
- /**
- * 会员登录检查
- *
- */
- public function checkloginMember()
- {
- if ($_SESSION['is_login'] == '1') {
- @header("Location: index.php");
- exit();
- }
- }
- /**
- * 检查会员是否允许举报商品
- *
- */
- public function isMemberAllowInform($member_id)
- {
- $condition = array();
- $condition['member_id'] = $member_id;
- $member_info = $this->getMemberInfo($condition, 'inform_allow');
- if (intval($member_info['inform_allow']) === 1) {
- return true;
- } else {
- return false;
- }
- }
- /**
- * 取单条信息
- * @param unknown $condition
- * @param string $fields
- */
- public function getMemberCommonInfo($condition = array(), $fields = '*')
- {
- return $this->table('member_common')->where($condition)->field($fields)->find();
- }
- /**
- * 插入扩展表信息
- * @param unknown $data
- * @return Ambigous <mixed, boolean, number, unknown, resource>
- */
- public function addMemberCommon($data)
- {
- return $this->table('member_common')->insert($data);
- }
- /**
- * 编辑会员扩展表
- * @param unknown $data
- * @param unknown $condition
- * @return Ambigous <mixed, boolean, number, unknown, resource>
- */
- public function editMemberCommon($data, $condition)
- {
- return $this->table('member_common')->where($condition)->update($data);
- }
- /**
- * 添加会员积分
- * @param unknown $member_info
- */
- public function addPoint($member_info)
- {
- if (!C('points_isuse') || empty($member_info)) return;
- //一天内只有第一次登录赠送积分
- if (trim(@date('Y-m-d', $member_info['member_login_time'])) == trim(date('Y-m-d'))) return;
- //加入队列
- $queue_content = array();
- $queue_content['member_id'] = $member_info['member_id'];
- $queue_content['member_name'] = $member_info['member_name'];
- QueueClient::push('addPoint', $queue_content);
- }
- /**
- * 添加会员经验值
- * @param unknown $member_info
- */
- public function addExppoint($member_info)
- {
- if (empty($member_info)) return;
- //一天内只有第一次登录赠送经验值
- if (trim(@date('Y-m-d', $member_info['member_login_time'])) == trim(date('Y-m-d'))) return;
- //加入队列
- $queue_content = array();
- $queue_content['member_id'] = $member_info['member_id'];
- $queue_content['member_name'] = $member_info['member_name'];
- QueueClient::push('addExppoint', $queue_content);
- }
- /**
- * 取得会员安全级别
- * @param unknown $member_info
- */
- public function getMemberSecurityLevel($member_info = array())
- {
- $tmp_level = 0;
- if ($member_info['member_email_bind'] == '1') {
- $tmp_level += 1;
- }
- if ($member_info['member_mobile_bind'] == '1') {
- $tmp_level += 1;
- }
- if ($member_info['member_paypwd'] != '') {
- $tmp_level += 1;
- }
- return $tmp_level;
- }
- /**
- * 获得会员等级
- * @param bool $show_progress 是否计算其当前等级进度
- * @param int $exppoints 会员经验值
- * @param array $cur_level 会员当前等级
- */
- public function getMemberGradeArr($show_progress = false, $exppoints = 0, $cur_level = '')
- {
- $member_grade = C('member_grade') ? unserialize(C('member_grade')) : array();
- //处理会员等级进度
- if ($member_grade && $show_progress) {
- $is_max = false;
- if ($cur_level === '') {
- $cur_gradearr = $this->getOneMemberGrade($exppoints, false, $member_grade);
- $cur_level = $cur_gradearr['level'];
- }
- foreach ($member_grade as $k => $v) {
- if ($cur_level == $v['level']) {
- $v['is_cur'] = true;
- }
- $member_grade[$k] = $v;
- }
- }
- return $member_grade;
- }
- /**
- * 将条件数组组合为SQL语句的条件部分
- *
- * @param array $conditon_array
- * @return string
- */
- private function getCondition($conditon_array)
- {
- $condition_sql = '';
- if ($conditon_array['member_id'] != '') {
- $condition_sql .= " and member_id= '" . intval($conditon_array['member_id']) . "'";
- }
- if ($conditon_array['member_name'] != '') {
- $condition_sql .= " and member_name='" . $conditon_array['member_name'] . "'";
- }
- if ($conditon_array['member_passwd'] != '') {
- $condition_sql .= " and member_passwd='" . $conditon_array['member_passwd'] . "'";
- }
- //是否允许举报
- if ($conditon_array['inform_allow'] != '') {
- $condition_sql .= " and inform_allow='{$conditon_array['inform_allow']}'";
- }
- //是否允许购买
- if ($conditon_array['is_buy'] != '') {
- $condition_sql .= " and is_buy='{$conditon_array['is_buy']}'";
- }
- //是否允许发言
- if ($conditon_array['is_allowtalk'] != '') {
- $condition_sql .= " and is_allowtalk='{$conditon_array['is_allowtalk']}'";
- }
- //是否允许登录
- if ($conditon_array['member_state'] != '') {
- $condition_sql .= " and member_state='{$conditon_array['member_state']}'";
- }
- if ($conditon_array['friend_list'] != '') {
- $condition_sql .= " and member_name IN (" . $conditon_array['friend_list'] . ")";
- }
- if ($conditon_array['member_email'] != '') {
- $condition_sql .= " and member_email='" . $conditon_array['member_email'] . "'";
- }
- if ($conditon_array['no_member_id'] != '') {
- $condition_sql .= " and member_id != '" . $conditon_array['no_member_id'] . "'";
- }
- if ($conditon_array['like_member_name'] != '') {
- $condition_sql .= " and member_name like '%" . $conditon_array['like_member_name'] . "%'";
- }
- if ($conditon_array['like_member_email'] != '') {
- $condition_sql .= " and member_email like '%" . $conditon_array['like_member_email'] . "%'";
- }
- if ($conditon_array['like_member_truename'] != '') {
- $condition_sql .= " and member_truename like '%" . $conditon_array['like_member_truename'] . "%'";
- }
- if ($conditon_array['in_member_id'] != '') {
- $condition_sql .= " and member_id IN (" . $conditon_array['in_member_id'] . ")";
- }
- if ($conditon_array['in_member_name'] != '') {
- $condition_sql .= " and member_name IN (" . $conditon_array['in_member_name'] . ")";
- }
- if ($conditon_array['member_qqopenid'] != '') {
- $condition_sql .= " and member_qqopenid = '{$conditon_array['member_qqopenid']}'";
- }
- if ($conditon_array['member_sinaopenid'] != '') {
- $condition_sql .= " and member_sinaopenid = '{$conditon_array['member_sinaopenid']}'";
- }
- return $condition_sql;
- }
- /**
- * 删除会员
- *
- * @param int $id 记录ID
- * @return array $rs_row 返回数组形式的查询结果
- */
- public function del($id)
- {
- if (intval($id) > 0) {
- $where = " member_id = '" . intval($id) . "'";
- $result = Db::delete('member', $where);
- return $result;
- } else {
- return false;
- }
- }
- /**
- * 获得某一会员等级
- * @param int $exppoints
- * @param bool $show_progress 是否计算其当前等级进度
- * @param array $member_grade 会员等级
- */
- public function getOneMemberGrade($exppoints, $show_progress = false, $member_grade = array())
- {
- if (!$member_grade) {
- $member_grade = C('member_grade') ? unserialize(C('member_grade')) : array();
- }
- if (empty($member_grade)) {//如果会员等级设置为空
- $grade_arr['level'] = -1;
- $grade_arr['level_name'] = '暂无等级';
- return $grade_arr;
- }
- $exppoints = intval($exppoints);
- $grade_arr = array();
- if ($member_grade) {
- foreach ($member_grade as $k => $v) {
- if ($exppoints >= $v['exppoints']) {
- $grade_arr = $v;
- }
- }
- }
- //计算提升进度
- if ($show_progress == true) {
- if (intval($grade_arr['level']) >= (count($member_grade) - 1)) {//如果已达到顶级会员
- $grade_arr['downgrade'] = $grade_arr['level'] - 1;//下一级会员等级
- $grade_arr['downgrade_name'] = $member_grade[$grade_arr['downgrade']]['level_name'];
- $grade_arr['downgrade_exppoints'] = $member_grade[$grade_arr['downgrade']]['exppoints'];
- $grade_arr['upgrade'] = $grade_arr['level'];//上一级会员等级
- $grade_arr['upgrade_name'] = $member_grade[$grade_arr['upgrade']]['level_name'];
- $grade_arr['upgrade_exppoints'] = $member_grade[$grade_arr['upgrade']]['exppoints'];
- $grade_arr['less_exppoints'] = 0;
- $grade_arr['exppoints_rate'] = 100;
- } else {
- $grade_arr['downgrade'] = $grade_arr['level'];//下一级会员等级
- $grade_arr['downgrade_name'] = $member_grade[$grade_arr['downgrade']]['level_name'];
- $grade_arr['downgrade_exppoints'] = $member_grade[$grade_arr['downgrade']]['exppoints'];
- $grade_arr['upgrade'] = $member_grade[$grade_arr['level'] + 1]['level'];//上一级会员等级
- $grade_arr['upgrade_name'] = $member_grade[$grade_arr['upgrade']]['level_name'];
- $grade_arr['upgrade_exppoints'] = $member_grade[$grade_arr['upgrade']]['exppoints'];
- $grade_arr['less_exppoints'] = $grade_arr['upgrade_exppoints'] - $exppoints;
- $grade_arr['exppoints_rate'] = round(($exppoints - $member_grade[$grade_arr['level']]['exppoints']) / ($grade_arr['upgrade_exppoints'] - $member_grade[$grade_arr['level']]['exppoints']) * 100, 2);
- }
- }
- return $grade_arr;
- }
- /**
- * @param $user_id 用户ID
- * @return value 获取用户预存款金额
- */
- public function getPdAmount($member_id){
- //查询会员信息
- $member_id = intval($member_id);
- $member_info = $this->getMemberInfo(array('member_id'=>$member_id));
- if (!is_array($member_info) || count($member_info)<=0){
- return 0; // 用户信息不对
- }
- $available_predeposit=floatval($member_info['available_predeposit']);
- return $available_predeposit;
- }
- /**
- * @param $user_id 用户ID
- * @return value 获取用户预存款订单列表(图片, 名字, 数量, 订单时间, 订单号)
- */
- public function getPdOrderList($member_id){
- //查询预存款订单列表
- $member_id = intval($member_id);
- $member_info = $this->getMemberInfo(array('member_id'=>$member_id));
- if (!is_array($member_info) || count($member_info)<=0){
- return array(); // 用户信息不对
- }
- // 预存款订单查询条件
- $condition = 'lg_freeze_amount=0.0 and lg_av_amount<0.0 and lg_member_name=\'' . $member_info['member_name'] . '\'';
-
- $model_pd = Model('predeposit');
- $tmp_log_list = array();
- //$pd_log_list =$this->getPdLogList($condition,20,'*','lg_id desc');
- $pd_log_list = $model_pd->getPdLogList($condition,'','*','lg_id desc');
- // 订单数据查询条件(只查询已完成订单), 生成订单查询语句, 在详细查询阶段进行批量查询
- $condition_order = "refund_state=0 and delete_state=0 and order_id in(";
- foreach ($pd_log_list as $key => $value) {
- $use_list = array();
- $match = '';
- preg_match('/\d+/',$value['lg_desc'], $match);
- $order_id = $match[0];
- $use_list['order_id'] = $order_id;
- $use_list['order_add_time'] = $value['lg_add_time'];
- $use_list['order_value'] = $value['lg_av_amount'];
- if (empty($tmp_log_list)) {
- $condition_order .= '\''.$order_id .'\'';
- } else {
- $condition_order .= "," . '\''. $order_id .'\'';
- }
- // 获取订单数据
- $tmp_log_list[$order_id] = $use_list;
- }
-
- // 查询订单详细数据
- $condition_order .= ")";
- $model_order = Model('order');
- //$order_list = $model_order->getOrderList($condition_order, 20, '*', 'order_id desc','', array('order_common','order_goods','store'));
- $order_list = $model_order->getOrderList($condition_order, '', '*', 'order_id desc','', array('order_common','order_goods','store'));
- // 订单列表处理
- foreach ($order_list as $key => $value) {
- $item = array();
- // 查询订单
- // 图片, 名字, 数量
- $order_id = $value['order_id'];
- $use_list = $tmp_log_list[$order_id];
- if (empty($use_list)) continue; // 该订单为其他消耗, 非购买商品
- $item['goods_name'] = $value['goods_name'];
- $item['goods_num'] = $value['goods_num'];
- $item['goods_image'] = $value['goods_image'];
- array_push($use_list['item'], $item);
- array_push($tmp_log_list[$order_id], $item);
- }
- // 最终结果组装
- $pd_result_list = array();
- foreach ($tmp_log_list as $key => $value) {
- $use_list = array();
- $use_list['order_id']= $value['order_id'];
- $use_list['order_add_time']= $value['order_add_time'];
- $use_list['order_value']= $value['order_value'];
- $use_list['item']= $value['item'];
- array_push($pd_result_list, $use_list);
- }
- return $pd_result_list;
- }
- }
|