def get_wechat_info(request, openid): if not openid: code = request.args.get("code") if not code: return redirect(WeixinHelper.oauth3(request.url)) else: wechat_login_fun(code)
def tickets(): """券包""" openid = session.get("openid") if not openid: code = request.args.get("code") if not code: print "not code" return redirect(WeixinHelper.oauth3(request.url)) else: wechat_login_fun(code) type = request.args.get("type", "not_use") user = g.user nav = 2 if user: user_id = user.id else: user_id = '' records = GetTicketRecord.query.filter(GetTicketRecord.user_id == user_id) if type == 'not_use': from sqlalchemy import or_ records = records.filter(or_(GetTicketRecord.status == 'normal', GetTicketRecord.status == 'verify')) new_records = [] for record in records: if record.is_expire: new_records.append(record) elif type == 'expire': new_records = [] for record in records: if not record.is_expire: new_records.append(record) return render_template('mobile/my_tickets.html', type=type, nav=2, records=new_records)
def check_saler_info(): """确认收银员信息""" brand_id = int(request.args.get("bid", 0)) openid = session.get("openid") do = request.args.get("do") form = SalerInfoForm() if not openid: code = request.args.get("code") if not code: print "not code" # print "/check_saler_info" return redirect(WeixinHelper.oauth3(request.url)) else: wechat_login_fun(code) if do == 'check': # 绑定店员 mobile = request.args.get("mobile") exist_saler = Saler.query.filter(Saler.user_id == g.user.id, Saler.brand_id == brand_id).first() if not exist_saler: g.user.mobile = mobile saler = Saler(user_id=g.user.id, brand_id=brand_id) db.session.add(saler) db.session.commit() wechat = WechatBasic(appid=appid, appsecret=appsecret) wechat.send_text_message(openid, "您已成功绑定门店") return json.dumps({"message": "提交成功", "type": "success"}) else: return json.dumps({"message": "您已绑定门店,不用再次绑定", "type": "error"}) return render_template('mobile/check_saler_info.html', brand_id=brand_id, form=form)
def user_home(): """我的个人中心""" type = request.args.get("type") tickets = GetTicketRecord.query.all() nav = 4 openid = session.get("openid") if not openid: code = request.args.get("code") if not code: print "not code" return redirect(WeixinHelper.oauth3(request.url)) else: wechat_login_fun(code) return render_template('mobile/user_home.html', type=type, nav=nav, tickets=tickets)
def inner(*args, **kwargs): openid = session.get("openid") userinfo = None if not openid: code = request.args.get("code") if not code: return redirect(WeixinHelper.oauth3(request.url)) else: data = json.loads(WeixinHelper.getAccessTokenByCode(code)) access_token, openid, refresh_token = data["access_token"], data["openid"], data["refresh_token"] # WeixinHelper.refreshAccessToken(refresh_token) userinfo = json.loads(WeixinHelper.getSnsapiUserInfo(access_token, openid)) print userinfo print openid # else: # if session.get('openid') != openid: # return redirect("/") session['openid'] = openid if callable(callback): g.user = User.query.filter(User.profile.any(Profile.openid == openid)).first() response = func() return response
def favorite_brands(): openid = session.get("openid") if not openid: code = request.args.get("code") if not code: print "not code" return redirect(WeixinHelper.oauth3(request.url)) else: wechat_login_fun(code) user = g.user type = request.args.get('type', 'new') act = request.args.get('act') brand_id = request.args.get('bid', type=int) if act == "add": exist = MyFavoriteBrand.query.filter(MyFavoriteBrand.user_id == user.id, MyFavoriteBrand.brand_id == brand_id).all() if not exist: favorite = MyFavoriteBrand() favorite.user_id = user.id favorite.brand_id = brand_id db.session.add(favorite) db.session.commit() if type == 'hot': # TODO records = MyFavoriteBrand.query.filter(MyFavoriteBrand.user_id == user.id).order_by( MyFavoriteBrand.create_at.desc()) else: records = MyFavoriteBrand.query.filter(MyFavoriteBrand.user_id == user.id).order_by( MyFavoriteBrand.create_at.desc()) if records.first(): brand = records.first().brand else: brand = {} nav = 1 return render_template('mobile/my_favorite_brand.html', type=type, nav=nav, brand=brand, records=records)