Files
order/web/controllers/api/Member.py

119 lines
4.0 KiB
Python
Raw Normal View History

2019-07-31 17:12:55 +08:00
# -*- coding: utf-8 -*-
from web.controllers.api import route_api
2019-08-06 14:17:42 +08:00
from flask import request,jsonify,g
from application import app,db
2019-07-31 17:12:55 +08:00
import requests,json
from common.models.member.Member import Member
2019-08-06 14:17:42 +08:00
from common.models.member.OauthMemberBind import OauthMemberBind
from common.models.food.WxShareHistory import WxShareHistory
2019-07-31 17:12:55 +08:00
from common.libs.Helper import getCurrentDate
2019-07-31 18:30:04 +08:00
from common.libs.member.MemberService import MemberService
2019-07-31 17:12:55 +08:00
@route_api.route("/member/login",methods = [ "GET","POST" ])
def login():
2019-08-06 14:17:42 +08:00
resp = { 'code':200 ,'msg':'操作成功~','data':{} }
2019-07-31 17:12:55 +08:00
req = request.values
code = req['code'] if 'code' in req else ''
2019-08-06 14:17:42 +08:00
if not code or len( code ) < 1:
2019-07-31 17:12:55 +08:00
resp['code'] = -1
resp['msg'] = "需要code"
return jsonify(resp)
2019-08-06 14:17:42 +08:00
openid = MemberService.getWeChatOpenId( code )
2019-07-31 18:30:04 +08:00
if openid is None:
resp['code'] = -1
resp['msg'] = "调用微信出错"
return jsonify(resp)
2019-08-06 14:17:42 +08:00
2019-07-31 17:12:55 +08:00
nickname = req['nickName'] if 'nickName' in req else ''
sex = req['gender'] if 'gender' in req else 0
avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
'''
判断是否已经测试过注册了直接返回一些信息
'''
2019-08-06 14:17:42 +08:00
bind_info = OauthMemberBind.query.filter_by( openid = openid,type = 1 ).first()
2019-07-31 17:12:55 +08:00
if not bind_info:
model_member = Member()
model_member.nickname = nickname
model_member.sex = sex
model_member.avatar = avatar
2019-07-31 18:30:04 +08:00
model_member.salt = MemberService.geneSalt()
2019-07-31 17:12:55 +08:00
model_member.updated_time = model_member.created_time = getCurrentDate()
db.session.add(model_member)
db.session.commit()
model_bind = OauthMemberBind()
model_bind.member_id = model_member.id
model_bind.type = 1
model_bind.openid = openid
model_bind.extra = ''
model_bind.updated_time = model_bind.created_time = getCurrentDate()
db.session.add(model_bind)
db.session.commit()
bind_info = model_bind
2019-08-06 14:17:42 +08:00
member_info = Member.query.filter_by(id = bind_info.member_id).first()
2019-07-31 18:30:04 +08:00
token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
resp['data'] = {'token': token}
2019-08-06 14:17:42 +08:00
return jsonify( resp )
2019-07-31 18:30:04 +08:00
@route_api.route("/member/check-reg",methods = [ "GET","POST" ])
def checkReg():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
code = req['code'] if 'code' in req else ''
if not code or len(code) < 1:
resp['code'] = -1
resp['msg'] = "需要code"
return jsonify(resp)
openid = MemberService.getWeChatOpenId(code)
if openid is None:
resp['code'] = -1
resp['msg'] = "调用微信出错"
return jsonify(resp)
bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
if not bind_info:
resp['code'] = -1
resp['msg'] = "未绑定"
return jsonify(resp)
member_info = Member.query.filter_by( id = bind_info.member_id).first()
if not member_info:
resp['code'] = -1
resp['msg'] = "未查询到绑定信息"
return jsonify(resp)
token = "%s#%s"%( MemberService.geneAuthCode( member_info ),member_info.id )
resp['data'] = { 'token':token }
2019-08-06 14:17:42 +08:00
return jsonify(resp)
@route_api.route("/member/share",methods = [ "POST" ])
def memberShare():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
url = req['url'] if 'url' in req else ''
member_info = g.member_info
model_share = WxShareHistory()
if member_info:
model_share.member_id = member_info.id
model_share.share_url = url
model_share.created_time = getCurrentDate()
db.session.add(model_share)
db.session.commit()
return jsonify(resp)
@route_api.route("/member/info")
def memberInfo():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
member_info = g.member_info
resp['data']['info'] = {
"nickname":member_info.nickname,
"avatar_url":member_info.avatar
}
2019-07-31 17:12:55 +08:00
return jsonify(resp)