def put(self): """ 商品添加数量 """ # redis用法 token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] json_data = request.json redis_conn = get_redis_connection(3) redis_conn.hset(user_id, json_data["sku_id"], json_data["count"]) if json_data["selected"]: redis_conn.sadd("selected_%s" % user_id, json_data["sku_id"]) if not json_data["selected"]: redis_conn.srem("selected_%s" % user_id, json_data["sku_id"]) # # MYSQL方法 # cart_selected_obj = Selected.query.filter_by(user_id=user_id, sku_id=json_data["sku_id"]).first() # cart_selected_obj.count = json_data["count"] # cart_selected_obj.is_selected = json_data["selected"] # db.session.commit() return jsonify({ "code": 200, "msg": "success", "selected": json_data["selected"], "count": json_data["count"] })
def get(self): token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] redis_conn = get_redis_connection(3) sku_count_ids = redis_conn.hgetall(user_id) sku_selected_ids = redis_conn.smembers("selected_%s" % user_id) cart = {} for key, val in sku_count_ids.items(): if key in sku_selected_ids: cart[int(key)] = int(val) sku_selected_obj = SKU.query.filter(SKU.id.in_(cart.keys())).all() skus = [] for sku_selected in sku_selected_obj: orders = sku_selected.to_order_dict() orders["count"] = cart[sku_selected.id] skus.append(orders) return jsonify({ "code": 200, "msg": "success", "skus": skus, "freight": "10.0" })
def post(self): """ 加入购物车 POST "/cart/" """ json_data = request.json sku_id = json_data.get("sku_id") count = json_data.get("count") token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] # redis用法 redis_conn = get_redis_connection(3) redis_conn.hset(user_id, sku_id, count) redis_conn.sadd("selected_%s" % user_id, sku_id) # # MYSQL方法 # cart_selected_obj = Selected.query.filter_by(sku_id=sku_id, user_id=user_id).first() # if cart_selected_obj: # if cart_selected_obj.is_deleted: # cart_selected_obj.is_deleted = False # cart_selected_obj.count = 1 # else: # cart_selected_obj.count += count # else: # mysql_selected = Selected( # user_id=user_id, # sku_id=sku_id, # count=count # ) # db.session.add(mysql_selected) # db.session.commit() return jsonify({"code": 200, "msg": "success", "count": count})
def post(self): json_data = request.json token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] count = Address.query.filter_by(user_id=user_id, is_deleted=False).count() if count == 0: address_obj = Address(user_id=user_id, receiver=json_data["receiver"], province_id=json_data["province_id"], city_id=json_data["city_id"], title=json_data["title"], district_id=json_data["district_id"], mobile=json_data["mobile"], tel=json_data["tel"], place=json_data["place"], email=json_data["email"], default_address=True) db.session.add(address_obj) db.session.commit() else: address_obj = Address(user_id=user_id, receiver=json_data["receiver"], province_id=json_data["province_id"], city_id=json_data["city_id"], title=json_data["title"], district_id=json_data["district_id"], mobile=json_data["mobile"], tel=json_data["tel"], place=json_data["place"], email=json_data["email"]) db.session.add(address_obj) db.session.commit() return jsonify({"code": 200, "msg": "success"})
def get(self): token = request.args.get("token") user_id = check_token(token).get("user_id") user_obj = User.query.get(user_id) user_obj.email_active = True db.session.commit() return jsonify({"code": 200, "msg": "success"})
def delete(self, address_id): token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] address_obj = Address.query.filter_by(user_id=user_id, id=address_id, is_deleted=False).first() address_obj.is_deleted = True db.session.commit() return jsonify({"code": 200, "msg": "success"})
def put(self): email = request.json["email"] token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] user_obj = User.query.get(user_id) user_obj.email = email db.session.commit() send_email(email, "Confirm Your Account", "http://127.0.0.1:5000/success_verify_email.html", token) return jsonify({"code": 200, "msg": "success"})
def get(self): token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] user_obj = User.query.get(user_id) return jsonify({ "code": 200, "msg": "success", "user_id": user_id, "username": user_obj.username, "mobile": user_obj.mobile, "email": user_obj.email, "email_active": user_obj.email_active })
def put(self): json_data = request.json token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] user_obj = User.query.get(user_id) if not check_password_hash(user_obj.password, json_data.get("oldpassword")): raise Exception('旧密码输入错误') if not json_data["newpassword1"] == json_data.get("newpassword2"): raise Exception("两次密码输入不相同") password_hash = generate_password_hash(json_data.get("newpassword1")) user_obj.password = password_hash db.session.commit() return jsonify({"code": 200, "msg": "SUCCESS"})
def put(self, addresses_id): """ put /users/addresses/<string:addresses_id>/status/ 设置默认地址 """ token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] old_address_obj = Address.query.filter_by( user_id=user_id, default_address=True).first() old_address_obj.default_address = False new_address_obj = Address.query.get(addresses_id) new_address_obj.default_address = True db.session.commit() return jsonify({"code": 200, "msg": "success"})
def put(self): """ 修改密码 """ json_data = request.json token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] user_obj = User.query.get(user_id) if check_password_hash(user_obj.password, json_data["oldpassword"]): raise Exception("旧密码输入错误") if json_data["newpassword1"] != json_data["newpassword2"]: raise Exception("两次密码输入不同") password_hash = generate_password_hash(json_data["oldpassword"]) user_obj.password = password_hash db.session.commit() return jsonify({"code": 200, "msg": "success"})
def get(self): """ 显示购物车 GET "/cart/" """ token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] # # MYSQL用法 # cart_return = [] # all_selected_obj = Selected.query.filter_by(user_id=user_id, is_deleted=False).all() # for one_selected_obj in all_selected_obj: # all_sku_id_obj = SKU.query.filter_by(id=one_selected_obj.sku_id).all() # for one_sku_id_obj in all_sku_id_obj: # sku_return = one_sku_id_obj.to_dict() # sku_return["amount"] = one_selected_obj.count * float(one_sku_id_obj.price) # sku_return["count"] = one_selected_obj.count # sku_return["selected"] = one_selected_obj.is_selected # cart_return.append(sku_return) # redis用法 redis_conn = get_redis_connection(3) sku_count_ids = redis_conn.hgetall(user_id) sku_selected_ids = redis_conn.smembers("selected_%s" % user_id) cart = {} for sku_id, count in sku_count_ids.items(): cart[int(sku_id)] = { "count": int(count), "selected": sku_id in sku_selected_ids } ids = cart.keys() skus = SKU.query.filter(SKU.id.in_(ids)).all() cart_return = [] for sku in skus: sku_return = sku.to_dict() sku_return["amount"] = cart[sku.id]["count"] * float(sku.price) sku_return["count"] = cart[sku.id]["count"] sku_return["selected"] = cart[sku.id]["selected"] cart_return.append(sku_return) return jsonify({"code": 200, "msg": "success", "cart": cart_return})
def get(self): """ 查看地址 """ token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] address = [] all_address_obj = Address.query.filter_by(user_id=user_id, is_deleted=False).all() default_address_id = "" for one_address_obj in all_address_obj: if one_address_obj.default_address: default_address_id = one_address_obj.id data = { "id": one_address_obj.id, "user_id": one_address_obj.user_id, "province_id": one_address_obj.province_id, "city_id": one_address_obj.city_id, "district_id": one_address_obj.district_id, "receiver": one_address_obj.receiver, "title": one_address_obj.title, "mobile": one_address_obj.mobile, "tel": one_address_obj.tel, "place": one_address_obj.place, "email": one_address_obj.email } province_obj = Area.query.get(one_address_obj.province_id) data["province"] = province_obj.name city_obj = Area.query.get(one_address_obj.city_id) data["city"] = city_obj.name district_obj = Area.query.get(one_address_obj.district_id) data["district"] = district_obj.name address.append(data) return jsonify({ "code": 200, "msg": "success", "addresses": address, "limit": 10, "default_address_id": default_address_id })
def post(self): """ post /users/addresses/ 新增地址 """ json_data = Munch(request.json) token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] count = Address.query.filter_by(user_id=user_id, is_deleted=False).count() if not count: address = Address(user_id=user_id, province_id=json_data.province_id, city_id=json_data.city_id, district_id=json_data.district_id, receiver=json_data.receiver, title=json_data.title, mobile=json_data.mobile, tel=json_data.tel, place=json_data.place, email=json_data.email, default_address=True) db.session.add(address) db.session.commit() else: address = Address( user_id=user_id, province_id=json_data.province_id, city_id=json_data.city_id, district_id=json_data.district_id, receiver=json_data.receiver, title=json_data.title, mobile=json_data.mobile, tel=json_data.tel, place=json_data.place, email=json_data.email, ) db.session.add(address) db.session.commit() return jsonify({"code": 200, "msg": "success"})
def delete(self): """ 删除购物车内商品 """ # redis用法 token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] json_data = request.json redis_conn = get_redis_connection(3) redis_conn.hdel(user_id, json_data["sku_id"]) redis_conn.srem("selected_%s" % user_id, json_data["sku_id"]) # # MYSQL方法 # token = request.headers.get("Authorization").split(" ")[-1] # user_id = check_token(token)["user_id"] # json_data = request.json # del_cart_obj = Selected.query.filter_by(sku_id=json_data["sku_id"], user_id=user_id).first() # del_cart_obj.is_deleted = True # db.session.commit() return jsonify({"code": 200, "msg": "success"})
def put(self, address_id): # Munch 包装成一个对象 json_data = Munch(request.json) token = request.headers.get("Authorization").split(" ")[-1] user_id = check_token(token)["user_id"] address_obj = Address.query.filter_by(user_id=user_id, id=address_id, is_deleted=False).first() address_obj.city_id = json_data.city_id address_obj.district_id = json_data.district_id address_obj.email = json_data.email address_obj.mobile = json_data.mobile address_obj.place = json_data.place address_obj.province = json_data.province address_obj.province_id = json_data.province_id address_obj.receiver = json_data.receiver address_obj.tel = json_data.tel address_obj.title = json_data.title db.session.commit() return jsonify({"code": 200, "msg": "success"})