class AccountBaseHandler(BaseHandler): """ 用户管理微信号的base handler 用户进入/account/{aid}/*的页面,保证获取的access_token可用 """ account = None fans_manager = None message_manager = None article_manager = None account_manager = None menu_manager = None image_article_manager = None auto_manager = None form_manager = None card_manager = None impact_manager = None auto_keyword_manager = None site_manager = None event_manager = None template_manager = None canyin_manager = None @authenticated @asynchronous def prepare(self): self.fans_manager = FansManager(self.db) self.message_manager = MessageManager(self.db) self.article_manager = ArticleManager(self.db) self.account_manager = AccountManager(self.db) self.menu_manager = MenuManager(self.db) self.image_article_manager = ImageArticleManager(self.db) self.auto_manager = AutoManager(self.db) self.form_manager = FormManager(self.db) self.card_manager = CardManager(self.db) self.impact_manager = ImpactManager(self.db) self.auto_keyword_manager = AutoKeywordManager(self.db) self.site_manager = SiteManager(self.db) self.event_manager = EventManager(self.db) self.template_manager = TemplateManager(self.db) self.canyin_manager = CanyinManager(self.db) aid = self.request.uri.split('/')[2] if not aid: raise HTTPError(404) account = self.account_manager.get_account_by_aid(aid) if not account: raise HTTPError(404) if account.user_id != self.current_user.id: raise HTTPError(403) if self.get_cookie('aid', None) != account.aid: self.set_cookie('aid', aid) if not wei_api.access_token_available(account): wei_api.get_access_token(account, self.account_manager.update_account_token) self.account = self.account_manager.get_account_by_aid(aid) AccountBaseHandler.account = account
def prepare(self): self.fans_manager = FansManager(self.db) self.message_manager = MessageManager(self.db) self.article_manager = ArticleManager(self.db) self.account_manager = AccountManager(self.db) self.menu_manager = MenuManager(self.db) self.image_article_manager = ImageArticleManager(self.db) self.auto_manager = AutoManager(self.db) self.form_manager = FormManager(self.db) self.card_manager = CardManager(self.db) self.impact_manager = ImpactManager(self.db) self.auto_keyword_manager = AutoKeywordManager(self.db) self.site_manager = SiteManager(self.db) self.event_manager = EventManager(self.db) self.template_manager = TemplateManager(self.db) self.canyin_manager = CanyinManager(self.db) aid = self.request.uri.split('/')[2] if not aid: raise HTTPError(404) account = self.account_manager.get_account_by_aid(aid) if not account: raise HTTPError(404) if account.user_id != self.current_user.id: raise HTTPError(403) if self.get_cookie('aid', None) != account.aid: self.set_cookie('aid', aid) if not wei_api.access_token_available(account): wei_api.get_access_token(account, self.account_manager.update_account_token) self.account = self.account_manager.get_account_by_aid(aid) AccountBaseHandler.account = account
class EventBaseHandler(BaseHandler): """ 用户管理微信号的base handler 用户进入/account/{aid}/*的页面,保证获取的access_token可用 """ account = None fans_manager = None account_manager = None card_manager = None event_manager = None TYPE_SCRATCH = 'scratch' TYPE_LOTTERY = 'lottery' def prepare(self): self.fans_manager = FansManager(self.db) self.account_manager = AccountManager(self.db) self.card_manager = CardManager(self.db) self.event_manager = EventManager(self.db) aid = self.request.uri.split('/')[2] if not aid: raise HTTPError(404) self.account = self.account_manager.get_account_by_aid(aid)
def prepare(self): self.fans_manager = FansManager(self.db) self.account_manager = AccountManager(self.db) self.card_manager = CardManager(self.db) self.event_manager = EventManager(self.db) aid = self.request.uri.split('/')[2] if not aid: raise HTTPError(404) self.account = self.account_manager.get_account_by_aid(aid)
def prepare(self): self.fans_manager = FansManager(self.db) self.card_manager = CardManager(self.db) self.account_manager = AccountManager(self.db)
class CardHandler(BaseHandler): """会员卡服务""" fans_manager = None card_manager = None account_manager = None def prepare(self): self.fans_manager = FansManager(self.db) self.card_manager = CardManager(self.db) self.account_manager = AccountManager(self.db) def get(self, cid): """ 用户访问会员卡页面 1. 如果已经有会员卡,返回信息 2. 如果没有 1. 如果会员卡允许自动创建,则自动创建 2. 如果不允许自动创建,按照要求填写表单 """ card = self.card_manager.get_card_by_cid(cid) openid = self.get_argument('i', None) if not openid or not card: raise HTTPError(404) fans = self.fans_manager.get_fans_by_openid(openid) if not fans: pass account = self.account_manager.get_account_by_aid(card.aid) card_member = self.card_manager.get_user_card_info(cid, openid) rule = self.card_manager.get_account_card_rule(card.aid) if card_member: historys = self.card_manager.get_history_by_openid(card.aid, openid) self.render('front/card.html', member=card_member, card=card, account=account, rule=rule, historys=historys) return if card.register == 1: # 自动注册 card_id = card.id num = key_util.generate_digits_starts_with(str(card_id), 7) num = str(card_id) + num self.card_manager.save_member(card.aid, cid, num, openid, '', '', '') card_member = self.card_manager.get_user_card_info(cid, openid) self.render('front/card.html', member=card_member, account=account, card=card) return else: # 返回注册卡片页面 m = self.get_argument('m', None) self.render('front/card_reg.html', card=card, openid=openid, account=account, m=m) def post(self, *args, **kwargs): """提交领取会员卡的表单""" result = {'r': 0} openid = self.get_argument('openid', None) mobile = self.get_argument('mobile', None) address = self.get_argument('address', None) sex = self.get_argument('sex', None) birthday = self.get_argument('birthday', None) name = self.get_argument('name', '') if not openid: result['error'] = '出了点错误,重新注册吧~' self.write(result) return card = self.card_manager.get_card_by_cid(args[0]) if not card: result['error'] = '你来到了一个不存在的页面~' self.write(result) return if card.mobile and not mobile: result['error'] = '手机号一定要填哦~' self.write(result) return if card.address and not address: result['error'] = '地址一定要填哦~' self.write(result) return if card.sex and not sex: result['error'] = '性别一定要选哦~' self.write(result) return if card.birthday and not birthday: result['error'] = '生日一定要填哦~' self.write(result) return card_id = card.id num = key_util.generate_digits_starts_with(str(card_id), 7) num = str(card_id) + num self.card_manager.save_member(card.aid, card.cid, num, openid, name, mobile, address, sex, birthday) result['r'] = 1 result['openid'] = openid self.write(result) return