Files
order/web/controllers/api/Address.py
2019-08-06 14:17:42 +08:00

173 lines
5.2 KiB
Python

# -*- coding: utf-8 -*-
from web.controllers.api import route_api
from flask import request, jsonify,g
from application import app,db
from common.libs.UrlManager import UrlManager
from common.libs.Helper import getCurrentDate
from common.models.member.MemberAddress import MemberAddress
@route_api.route("/my/address/index")
def myAddressList():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
member_info = g.member_info
list = MemberAddress.query.filter_by( status = 1, member_id = member_info.id )\
.order_by( MemberAddress.id.desc() ).all()
data_list = []
if list:
for item in list:
tmp_data = {
"id":item.id,
"nickname":item.nickname,
"mobile":item.mobile,
"is_default":item.is_default,
"address":"%s%s%s%s"%( item.province_str,item.city_str,item.area_str,item.address ),
}
data_list.append( tmp_data )
resp['data']['list'] = data_list
return jsonify(resp)
@route_api.route("/my/address/set",methods = [ "POST" ])
def myAddressSet():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
id = int( req['id'] ) if 'id' in req and req['id'] else 0
nickname = req['nickname'] if 'nickname' in req else ''
address = req['address'] if 'address' in req else ''
mobile = req['mobile'] if 'mobile' in req else ''
province_id = int( req['province_id'] ) if ( 'province_id' in req and req['province_id'] ) else 0
province_str = req['province_str'] if 'province_str' in req else ''
city_id = int( req['city_id'] ) if ( 'city_id' in req and req['city_id'])else 0
city_str = req['city_str'] if 'city_str' in req else ''
district_id = int( req['district_id'] ) if ( 'district_id' in req and req['district_id'] ) else 0
district_str = req['district_str'] if 'district_str' in req else ''
member_info = g.member_info
if not nickname:
resp['code'] = -1
resp['msg'] = "请填写联系人姓名~~"
return jsonify(resp)
if not mobile:
resp['code'] = -1
resp['msg'] = "请填写手机号码~~"
return jsonify(resp)
if province_id < 1:
resp['code'] = -1
resp['msg'] = "请选择地区~~"
return jsonify(resp)
if city_id < 1:
resp['code'] = -1
resp['msg'] = "请选择地区~~"
return jsonify(resp)
if district_id < 1:
district_str = ''
if not address:
resp['code'] = -1
resp['msg'] = "请填写详细地址~~"
return jsonify(resp)
if not member_info:
resp['code'] = -1
resp['msg'] = "系统繁忙,请稍后再试~~"
return jsonify(resp)
address_info = MemberAddress.query.filter_by( id = id,member_id = member_info.id ).first()
if address_info:
model_address = address_info
else:
default_address_count = MemberAddress.query.filter_by( is_default = 1,member_id = member_info.id ,status = 1).count()
model_address = MemberAddress()
model_address.member_id = member_info.id
model_address.is_default = 1 if default_address_count == 0 else 0
model_address.created_time = getCurrentDate()
model_address.nickname = nickname
model_address.mobile = mobile
model_address.address = address
model_address.province_id = province_id
model_address.province_str = province_str
model_address.city_id = city_id
model_address.city_str = city_str
model_address.area_id = district_id
model_address.area_str = district_str
model_address.updated_time = getCurrentDate()
db.session.add(model_address )
db.session.commit()
return jsonify(resp)
@route_api.route("/my/address/info")
def myAddressInfo():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
id = int( req['id'] ) if 'id' in req else 0
member_info = g.member_info
if id < 1 or not member_info:
resp['code'] = -1
resp['msg'] = "系统繁忙,请稍后再试~~"
return jsonify(resp)
address_info = MemberAddress.query.filter_by( id = id ).first()
if not address_info:
resp['code'] = -1
resp['msg'] = "系统繁忙,请稍后再试~~"
return jsonify(resp)
resp['data']['info'] = {
"nickname":address_info.nickname,
"mobile":address_info.mobile,
"address":address_info.address,
"province_id":address_info.province_id,
"province_str":address_info.province_str,
"city_id":address_info.city_id,
"city_str":address_info.city_str,
"area_id":address_info.area_id,
"area_str":address_info.area_str
}
return jsonify(resp)
@route_api.route("/my/address/ops",methods = [ "POST" ])
def myAddressOps():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
id = int(req['id']) if 'id' in req else 0
act = req['act'] if 'act' in req else ''
member_info = g.member_info
if id < 1 or not member_info:
resp['code'] = -1
resp['msg'] = "系统繁忙,请稍后再试~~"
return jsonify(resp)
address_info = MemberAddress.query.filter_by(id=id,member_id = member_info.id).first()
if not address_info:
resp['code'] = -1
resp['msg'] = "系统繁忙,请稍后再试~~"
return jsonify(resp)
if act == "del":
address_info.status = 0
address_info.updated_time = getCurrentDate()
db.session.add(address_info)
db.session.commit()
elif act == "default":
MemberAddress.query.filter_by( member_id=member_info.id)\
.update({ 'is_default' :0 })
address_info.is_default = 1
address_info.updated_time = getCurrentDate()
db.session.add(address_info)
db.session.commit()
return jsonify(resp)