Example #1
0
    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"]
        })
Example #2
0
    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"
        })
Example #3
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})
Example #4
0
    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"})
Example #5
0
 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"})
Example #6
0
 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"})
Example #7
0
 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"})
Example #8
0
 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
     })
Example #9
0
 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"})
Example #10
0
    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"})
Example #11
0
 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"})
Example #12
0
    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})
Example #13
0
    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
        })
Example #14
0
    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"})
Example #15
0
    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"})
Example #16
0
    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"})