Files
order/web/controllers/api/Member.py
2023-11-23 22:59:12 +08:00

260 lines
9.3 KiB
Python

# -*- coding: utf-8 -*-
from web.controllers.api import route_api
import os
from flask import request,jsonify,g,send_file
from application import app,db
import requests,json
from common.models.member.Member import Member
from common.models.member.Mendianuserinfo import Mendianuserinfo
from common.models.member.DeviceInfo import Deviceinfo
from common.models.member.Membermiya import Membermiya
from common.models.member.OauthMemberBind import OauthMemberBind
from common.models.food.WxShareHistory import WxShareHistory
from common.libs.Helper import getCurrentDate
from common.libs.member.MemberService import MemberService
# RJBrjb
@route_api.route("/member/login",methods = [ "GET","POST" ])
def login():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
code = req['code'] if 'code' in req else ''
app.logger.info(code)
if not code or len(code) < 1:
resp['code'] = -1
resp['msg'] = "需要code"
return jsonify(resp)
openid = MemberService.getWeChatOpenId(code)
app.logger.info(openid)
if openid is None:
resp['code'] = -1
resp['msg'] = "调用微信出错"
return jsonify(resp)
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 ''
'''
判断是否已经测试过,注册了直接返回一些信息
'''
bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
if not bind_info:
model_member = Member()
model_member.nickname = nickname
model_member.sex = sex
model_member.avatar = avatar
model_member.salt = MemberService.geneSalt()
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
member_info = Member.query.filter_by(id=bind_info.member_id).first()
token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
resp['data'] = {'token': token}
return jsonify(resp)
@route_api.route("/member/logintwo",methods = [ "GET","POST" ])
def logintwo():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
app.logger.info(req)
name = req['name'] if 'name' in req else ''
app.logger.info(name)
phone = req['phone'] if 'phone' in req else 0
app.logger.info(phone)
storename = req['storename'] if 'storename' in req else ''
app.logger.info(storename)
name_info = Mendianuserinfo.query.filter_by(nickname=name).first()
if not name_info:
model_mendianuserinfo = Mendianuserinfo()
model_mendianuserinfo.nickname = name
model_mendianuserinfo.mobile = phone
model_mendianuserinfo.storename = storename
db.session.add(model_mendianuserinfo)
db.session.commit()
return jsonify(resp)
@route_api.route("/member/deviceinfo",methods = [ "GET","POST" ])
def deviceinfo():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
app.logger.info(req)
nickname = req['nickname'] if 'nickname' in req else ''
app.logger.info(nickname)
version = req['version'] if 'version' in req else ''
app.logger.info(version)
jiguang = req['jiguang'] if 'jiguang' in req else ''
app.logger.info(jiguang)
xiaoqu = req['xiaoqu'] if 'xiaoqu' in req else ''
app.logger.info(xiaoqu)
louhao = req['louhao'] if 'louhao' in req else ''
app.logger.info(louhao)
danyuan = req['danyuan'] if 'danyuan' in req else ''
app.logger.info(danyuan)
jingdu = req['jingdu'] if 'jingdu' in req else ''
app.logger.info(jingdu)
weidu = req['weidu'] if 'weidu' in req else ''
app.logger.info(weidu)
snnum = req['snnum'] if 'snnum' in req else ''
app.logger.info(snnum)
reg_ip = req['reg_ip'] if 'reg_ip' in req else ''
app.logger.info(reg_ip)
name_info = Deviceinfo.query.filter_by(nickname=nickname).first()
if not name_info:
model_deviceinfo = Deviceinfo()
model_deviceinfo.nickname = nickname
model_deviceinfo.version = version
model_deviceinfo.jiguang = jiguang
model_deviceinfo.xiaoqu = xiaoqu
model_deviceinfo.louhao = louhao
model_deviceinfo.danyuan = danyuan
model_deviceinfo.jingdu = jingdu
model_deviceinfo.weidu = weidu
model_deviceinfo.snnum = snnum
model_deviceinfo.reg_ip = reg_ip
db.session.add(model_deviceinfo)
db.session.commit()
return jsonify(resp)
@route_api.route("/member/loginmiya",methods = [ "GET","POST" ])
def loginmiya():
resp = {'code': 200, 'msg': 'r操作成功~', 'data': {}}
req = request.values
app.logger.info(req)
name = req['nickname'] if 'nickname' in req else ''
app.logger.info(name)
mobile = req['mobile'] if 'mobile' in req else 0
app.logger.info(mobile)
token = req['token'] if 'token' in req else ''
app.logger.info(token)
miya_info = Membermiya.query.filter_by(nickname=name).first()
if not miya_info:
model_membermiya = Membermiya()
model_membermiya.nickname = name
model_membermiya.mobile = mobile
model_membermiya.token = token
db.session.add(model_membermiya)
db.session.commit()
return jsonify(resp)
@route_api.route("/member/ruilaizi",methods = [ "GET" ])
def ruilaizi():
# version = request.args.get('version', type=str) # 获取要下载的版本号
package_path = '/web/static/app/app.apk' # 假设更新包存放在 /path/to/update/package 目录下
if os.path.exists(package_path): # 如果更新包存在
app.logger.info(token)
return send_from_directory(directory='/web/static/app', filename='app.apk', as_attachment=True)
else: # 如果更新包不存在
return jsonify({
'code': 404,
'msg': '找不到指定版本的安装包'
})
# 下载文件服务
@app.route("/member/download/<filename>", methods=['GET'])
def download(filename):
if request.method == "GET":
if os.path.isfile(os.path.join('static', filename)):
app.logger.info(filename)
return send_from_directory('static', filename, as_attachment=True)
else: # 如果更新包不存在
return jsonify({
'code': 404,
'msg': '找不到指定版本的安装包'
})
@route_api.route("/member/ruilaizitest",methods = [ "GET","POST" ])
def ruilaizitest():
resp = {'code': 200, 'msg': 'r操作成功~', 'data': {}}
req = request.values
app.logger.info(req)
# name = req['nickname'] if 'nickname' in req else ''
# app.logger.info(name)
# mobile = req['mobile'] if 'mobile' in req else 0
# app.logger.info(mobile)
# token = req['token'] if 'token' in req else ''
# app.logger.info(token)
# miya_info = Membermiya.query.filter_by(nickname=name).first()
# if not miya_info:
# model_membermiya = Membermiya()
# model_membermiya.nickname = name
# model_membermiya.mobile = mobile
# model_membermiya.token = token
# db.session.add(model_membermiya)
# db.session.commit()
return jsonify(resp)
@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 }
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
}
return jsonify(resp)