intval($_W['uniacid']), 'uid' => $uid, 'credit' => $sign_data['sign']['everydaynum'], 'addtime' => TIMESTAMP, 'year' => date('Y'), 'month' => date('n'), 'day' => $sign_day, ); if (!empty($sign_data['group'])) { foreach ($sign_data['group'] as $k => $val) { if (($sign_data['sign_days']+1) == $sign_data['sign'][$k] || (($sign_data['sign_days']+1) == date('t') && $k=='full_sign_num')) { $insert_extra['remedy'] = 2; $tipx = "满签".$sign_data['sign'][$k]."天送".$val."积分"; mc_credit_update($uid, 'credit1', $val, array('0', $tipx, 'wn_storex', 0, 0, 1)); pdo_insert('storex_sign_record', $insert_extra); continue; } } } if ($type == 'remedy') { $insert_record['remedy'] = 1; if (!empty($cost)) { $tips = "消费".$cost['remedy_cost']."余额,补签第".$sign_day."天"; $return = mc_credit_update($uid, $cost['remedy_cost_type'], -$cost['remedy_cost'], array('0', $tips, 'wn_storex', 0, 0, 1)); if (is_array($return)) { message(error(-1, "积分不足,补签失败!"), '', 'ajax'); } } $tip1 = "补签获得积分".$sign_data['sign']['everydaynum']; $tip2 = "补签成功,获得".$sign_data['sign']['everydaynum']."积分"; $tip3 = "补签失败!"; } else { $tip1 = "签到获得积分".$sign_data['sign']['everydaynum']; $tip2 = "签到成功,获得".$sign_data['sign']['everydaynum']."积分"; $tip3 = "签到失败!"; } pdo_insert('storex_sign_record', $insert_record); $insert_id = pdo_insertid(); if (!empty($insert_id)) { mc_credit_update($uid, 'credit1', $sign_info['credit'], array('0', $tip1, 'wn_storex', 0, 0, 1)); message(error(0, $tip2), '', 'ajax'); } else { message(error(-1, $tip3), '', 'ajax'); } } } //获取签到信息 function card_sign_info($sign_max_day){ global $_W, $_GPC; $uid = mc_openid2uid($_W['openid']); $sign_set = pdo_get('storex_sign_set', array('uniacid' => intval($_W['uniacid']))); $sign = iunserializer($sign_set['sign']); $sign_data = array(); $sign_data['sign'] = $sign; $sign_data['days'] = date('t'); $sign_data['month'] = date('n'); $sign_data['day'] = date('j'); $sign_data['content'] = $sign_set['content']; $sign_data['signs'] = array(); $sign_record = pdo_getall('storex_sign_record', array('uid' => $uid, 'year' => date('Y'), 'month' => date('n'), 'remedy !=' => 2), array(),'day','day ASC'); $sign_days = count($sign_record); $no_sign = date('t') - $sign_max_day; $group = array(); if (($sign_days + $no_sign) >= $sign['first_group_day']) { $group['first_group_day'] = $sign['first_group_num']; } if (($sign_days + $no_sign) >= $sign['second_group_day']) { $group['second_group_day'] = $sign['second_group_num']; } if (($sign_days + $no_sign) >= $sign['third_group_day']) { $group['third_group_day'] = $sign['third_group_num']; } if (($sign_days + $no_sign) == date('t')) { $group['full_sign_num'] = $sign['full_sign_num']; } $sign_data['group'] = $group; $sign_data['sign_days'] = $sign_days; for ($i = 1; $i <= $sign_data['days']; $i++) { $sign_data['signs'][$i] = array( 'credit' => $sign['everydaynum'], ); if (!empty($sign_record[$i])) { $sign_data['signs'][$i] = array( 'credit' => $sign_record[$i]['credit'], 'status' => 1,//已签到 ); } else { $sign_data['signs'][$i]['status'] = 2;//未签到 if ($i > $sign_max_day) { foreach ($group as $k => $val) { if (($i-$sign_max_day+$sign_days) == $sign[$k] || (($i-$sign_max_day+$sign_days) == date('t') && $k=='full_sign_num')) { $sign_data['signs'][$i]['credit'] += $val; continue; } } } } } return $sign_data; } //通知 function card_notices(){ global $_W, $_GPC; $uid = mc_openid2uid($_W['openid']); $notices = pdo_getall('storex_notices', array('uniacid' => intval($_W['uniacid']), 'type' => 1), array(), 'id', 'addtime DESC'); if (!empty($notices)) { $notice_ids = array(); foreach ($notices as &$info) { $info['read_status'] = 0; //未读 $info['addtime'] = date('Y-m-d', $info['addtime']); if (!empty($info['thumb'])) { $info['thumb'] = tomedia($info['thumb']); } $notice_ids[] = $info['id']; } $read_record = pdo_getall('storex_notices_unread', array('uid' => $uid, 'uniacid' => intval($_W['uniacid']), 'notice_id IN' => $notice_ids)); if (!empty($read_record)) { foreach ($read_record as $val){ if (!empty($notices[$val['notice_id']])) { $notices[$val['notice_id']]['read_status'] = 1; //已读 } } } } return $notices; } //检查邮箱,手机号是否已经注册过 function card_info_exist($data){ global $_W; $uid = mc_openid2uid($_W['openid']); if (!empty($data['email'])) { $email = trim($data['email']); $isexist = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('storex_mc_card_members') . ' WHERE uniacid = :uniacid AND email = :email AND uid != :uid', array(':uniacid' => $_W['uniacid'], ':email' => $email, ':uid' => $uid)); if ($isexist >= 1) { message(error(-1, '邮箱已被注册'), '', 'ajax'); } } if (!empty($data['mobile'])) { $mobile = trim($data['mobile']); $isexist = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('storex_mc_card_members') . ' WHERE uniacid = :uniacid AND mobile = :mobile AND uid != :uid', array(':uniacid' => $_W['uniacid'], ':mobile' => $mobile, ':uid' => $uid)); if ($isexist >= 1) { message(error(-1, '手机号已被注册'), '', 'ajax'); } } } function card_discount_price($uid, $price){ $card_credit = card_return_credit_info(); if (!empty($card_credit)) { $group = card_group_id($uid); if (!empty($group) && !empty($card_credit['discounts'][$group['groupid']])) { $discounts = $card_credit['discounts'][$group['groupid']]; if ($card_credit['discount_type'] == 1) { if ($price >= $discounts['condition_1']) { if ($price > $discounts['discount_1']) { $price -= $discounts['discount_1']; } } } elseif($card_credit['discount_type'] == 2) { if ($price >= $discounts['condition_2']) { if ($discounts['discount_2'] != 0 && $discounts['discount_2'] > 0) { $price *= $discounts['discount_2'] * 0.1; } } } } } $price = sprintf ("%1.2f", $price); return $price; } function card_group_id($uid){ global $_W; $groups = mc_groups(); if(!empty($groups)) { $members = pdo_get('mc_members', array('uniacid' => intval($_W['uniacid']), 'uid' => $uid)); if (!empty($members) && !empty($groups[$members['groupid']])) { return $groups[$members['groupid']]; } } } function card_setting_info() { global $_W; $cachekey = "wn_storex_mc_card_setting:{$_W['uniacid']}"; $cache = cache_load($cachekey); if (!empty($cache)) { return $cache; } $card_info = pdo_get('storex_mc_card', array('uniacid' => intval($_W['uniacid']))); if (empty($card_info)) { return array(); } $json_to_array = array( 'color', 'background', 'fields', 'discount', 'grant', 'nums', 'times', ); foreach ($json_to_array as $val) { if (!empty($card_info[$val])) { $card_info[$val] = iunserializer($card_info[$val]); } } if (!empty($card_info['params'])) { $card_info['params'] = json_decode($card_info['params'], true); } cache_write($cachekey, $card_info); return $card_info; } function card_return_credit_info($uid = ''){ global $_W; if (empty($uid)) { $uid = mc_openid2uid($_W['openid']); } if (!pdo_get('storex_mc_card_members', array('uniacid' => $_W['uniacid'], 'uid' => $uid), array('id'))) { return ''; } $card_info = card_setting_info(); $cardActivity = $card_info['params']['cardActivity']['params']; if ($card_info['params']['cardRecharge']['params']['recharge_type'] == 1) { if ($card_info['params']['cardRecharge']['params']['grant_rate_switch'] == 1) { return $cardActivity; } else { return ''; } } else { return $cardActivity; } } //支付成功后,根据酒店设置的消费返积分的比例给积分 function card_give_credit($uid, $sum_price){ load()->model('mc'); $card_credit = card_return_credit_info($uid); if (!empty($card_credit)) { $num = $sum_price * $card_credit['grant_rate']; $tips = "用户消费{$sum_price}元,支付{$sum_price},会员每消费1元赠送{$card_credit['grant_rate']}积分,共赠送【{$num}】积分"; mc_credit_update($uid, 'credit1', $num, array('0', $tips, 'wn_storex', 0, 0, 3)); } return error(0, $num); }