Exemple #1
0
    def login(self):
        data = request.data
        data = json.loads(data)
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))

        if "UStelphone" not in data or "USpassword" not in data:
            return PARAMS_MISS

        Utel = data["UStelphone"]
        usid = get_model_return_dict(self.susers.get_user_by_utel(Utel))
        print(self.title.format("usid"))
        print(usid)
        print(self.title.format("usid"))
        if not usid:
            return import_status("ERROR_MESSAGE_NONE_TELPHONE", "GROUPMEAL_ERROR", "ERROR_CODE_NONE_TELPHONE")

        upwd = self.susers.get_upwd_by_utel(Utel)
        if upwd != data["USpassword"]:
            return import_status("ERROR_MESSAGE_WRONG_PASSWORD", "GROUPMEAL_ERROR", "ERROR_CODE_WRONG_PASSWORD")

        back_response = import_status("SUCCESS_MESSAGE_LOGIN", "OK")
        from GroupMeal.common.MakeToken import usid_to_token
        token = usid_to_token(usid.get("USid"))
        back_response["data"] = {}
        back_response["data"]["token"] = token
        return back_response
    def compute_om_price_by_coupons(self, coupon, omprice):
        from decimal import Decimal
        time_now = timeformate.get_db_time_str()
        omprice = Decimal(str(omprice))
        print(self.title.format("timenow"))
        print(time_now)
        print(self.title.format("timenow"))
        print(self.title.format("coutime"))
        print("endtime:", coupon.get("COend", ""), "\n starttime:",
              coupon.get("COstart", ""))
        print(self.title.format("coutime"))

        if coupon.get("COend") and time_now > coupon.get("COend"):
            return import_status("ERROR_MESSAGE_COUPONS_TIMEEND",
                                 "SHARPGOODS_ERROR", "ERROR_TIMR")

        if coupon.get("COstart") and time_now < coupon.get("COstart"):
            return import_status("ERROR_MESSAGE_COUPONS_TIMESTART",
                                 "SHARPGOODS_ERROR", "ERROR_TIMR")

        if omprice > coupon.get("COfilter", 0):
            if coupon.get("COamount"):
                omprice = omprice - Decimal(str(coupon.get("COamount", 0)))
            elif isinstance(coupon.get("COdiscount"), float):
                omprice = omprice * Decimal(str(coupon.get("COdiscount")))
            else:
                # 优惠券不打折扣也不满减,要他干嘛
                pass

        print(self.title.format("限定两位小数前的omproce"))
        print(omprice)
        print(self.title.format("限定两位小数前的omproce"))
        omprice = omprice.quantize(Decimal("0.00"))
        return float(omprice) if omprice >= 0 else 0.00
    def new_meal(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args and "MSid" not in args:
            return PARAMS_MISS
        USid = token_to_usid(args["token"])
        MSid = args["MSid"]
        user = self.susers.get_user_by_usid(USid)
        if not user:
            return import_status("ERROR_NONE_USER", "GROUPMEAL_ERROR",
                                 "ERROR_NONE_USER")
        mess = self.smess.get_mess_by_msid(MSid)
        if not mess:
            return SYSTEM_ERROR
        # TODO 用户改为管理员
        data = request.data
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))
        data = json.loads(data)

        meal_not_null_keys = ["MEname", "MEimage", "MEprice", "MEtype"]
        meal_null_keys = [
            "MEinfo", "MEdprice", "MEweight", "MEinventory", "MEprotein",
            "MEfat", "MEcarbohydrate", "MEcalorie", "MEinorganic", "MEcalcium",
            "MEphosphorus", "MEiron"
        ]

        for row in data.keys():
            if row not in meal_not_null_keys and row not in meal_null_keys:
                return PARAMS_REDUNDANCY

        data["MEvolume"] = 0
        data["MEfraction"] = 0
        data["MEstatus"] = 281
        data["MEtag"] = 296
        data["MSid"] = args["MSid"]
        data["MEid"] = str(uuid.uuid1())
        MEtype = data["MEtype"]
        data["MEtype"] = self.num_word_change(word=MEtype)

        print data
        new_meal = add_model("Meals", **data)
        print(self.title.format("new_meal"))
        print(new_meal)
        print(self.title.format("new_meal"))
        if not new_meal:
            return SYSTEM_ERROR

        return import_status("SUCCESS_ADD_MEAL", "OK")
Exemple #4
0
    def update_first_user(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args:
            return PARAMS_MISS
        token = args.get("token")
        Uid = token_to_usid(token)
        is_user = self.susers.get_user_by_usid(Uid)
        print(self.title.format("is_user"))
        print(is_user)
        print(self.title.format("is_user"))
        if not is_user:
            return import_status("ERROR_MESSAGE_NONE_USER", "GROUPMEAL_ERROR", "ERROR_CODE_NONE_USER")

        data = request.data
        data = json.loads(data)
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))

        if "USheight" not in data or "USweight" not in data or "USbirthday" not in data or "UScardno" not in data or "USworker" not in data:
            return PARAMS_MISS
        users = data
        # TODO 创建优惠券过程

        update_info = self.susers.update_users_by_uid(Uid, users)
        print(self.title.format("update_info"))
        print(update_info)
        print(self.title.format("update_info"))
        if not update_info:
            return SYSTEM_ERROR

        uslevel = self.susers.get_uslevel_by_usid(Uid)
        print(self.title.format("uslevel"))
        print(uslevel)
        print(self.title.format("uslevel"))
        if not uslevel:
            return SYSTEM_ERROR
        update_info = {
            "USlevel": uslevel + 1
        }
        update_uslevel = self.susers.update_users_by_uid(Uid, update_info)
        print(self.title.format("update_uslevel"))
        print(update_uslevel)
        print(self.title.format("update_uslevel"))
        if not update_uslevel:
            return SYSTEM_ERROR
        back_response = import_status("SUCCESS_MESSAGE_UPDATE_INFO", "OK")
        return back_response
 def del_cart(self, uid, pid):
     try:
         cart = self.scart.get_cart_by_usid_meid(uid, pid)
         print(self.title.format("cart"))
         print(cart)
         print(self.title.format("cart"))
         if not cart:
             return import_status("ERROR_MESSAGE_NONE_PRODUCT",
                                  "GROUPMEAL_ERROR", "ERROR_NONE_PRODUCT")
         self.scart.del_carts(cart.CAid)
         return import_status("SUCCESS_MESSAGE_DEL_CART", "OK")
     except Exception as e:
         print(e.message)
         return SYSTEM_ERROR
    def get_carts_by_uid(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args or "MSid" not in args:
            return PARAMS_MISS

        token = args.get("token")
        USid = token_to_usid(token)
        MSid = args["MSid"]
        is_user = self.susers.get_user_by_usid(USid)
        print(self.title.format("is_user"))
        print(is_user)
        print(self.title.format("is_user"))
        if not is_user:
            return import_status("ERROR_MESSAGE_NONE_USER", "GROUPMEAL_ERROR",
                                 "ERROR_CODE_NONE_USER")
        mess = self.smess.get_mess_by_msid(MSid)
        if not mess:
            return SYSTEM_ERROR
        cart_list = get_model_return_list(self.scart.get_carts_by_Uid(USid))
        print(self.title.format("cartlist"))
        print(cart_list)
        print(self.title.format("cartlist"))

        i = len(cart_list) - 1
        while i >= 0:
            MEid = cart_list[i]["MEid"]
            msid = self.smeal.get_msid_by_meid(MEid)
            print(self.title.format("msid"))
            print(msid)
            print(self.title.format("msid"))
            if msid != MSid:
                cart_list.remove(cart_list[i])
            else:
                meal = get_model_return_dict(self.smeal.get_meal_by_meid(MEid))
                print(self.title.format("meal"))
                print(meal)
                print(self.title.format("meal"))
                if not meal:
                    return SYSTEM_ERROR
                for key in meal.keys():
                    cart_list[i][key] = meal[key]
            i = i - 1

        back_response = import_status("SUCCESS_GET_MESSAGE", "OK")
        back_response["data"] = cart_list
        return back_response
Exemple #7
0
    def register(self):
        data = request.data
        data = json.loads(data)
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))

        if "UStelphone" not in data or "USpassword" not in data or "UScode" not in data:
            return PARAMS_MISS

        user = self.susers.get_user_by_utel(data["UStelphone"])
        print(self.title.format("user"))
        print(user)
        print(self.title.format("user"))
        if user:
            return import_status("MESSAGE_ERROR_REPAET_TELPHONE", "GROUPMEAL_ERROR", "ERROR_CODE_NONE_TELPHONE")

        UScode_dict = self.susers.get_code_by_utel(data["UStelphone"])
        print(self.title.format("UScode"))
        print(UScode_dict)
        print(self.title.format("UScode"))
        if not UScode_dict:
            return import_status("ERROR_MESSAGE_NONE_ICCODE", "GROUPMEAL_ERROR", "ERROR_CODE_NONE_ICCODE")
        UScode = UScode_dict.ICcode
        if UScode != data["UScode"]:
            return import_status("ERROR_MESSAGE_WRONG_ICCODE", "GROUPMEAL_ERROR", "ERROR_CODE_WRONG_ICCODE")

        if "USinvatecode" in data:
            Uinvate = data["USinvatecode"]
            # TODO 创建优惠券

        UStelphone = "昵称" + str(data["UStelphone"])
        USinvatecode = self.make_invate_code()
        new_user = add_model("Users",
                  **{
                      "USid": str(uuid.uuid1()),
                      "USname": UStelphone,
                      "UStelphone": data["UStelphone"],
                      "USpassword": data["USpassword"],
                      "USlevel": 1,
                      "UScoin": 0,
                      "USinvatecode": USinvatecode
                  })
        if not new_user:
            return SYSTEM_ERROR

        back_response = import_status("SUCCESS_MESSAGE_REGISTER_OK", "OK")
        return back_response
Exemple #8
0
    def all_info(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args:
            return PARAMS_MISS
        token = args.get("token")
        Uid = token_to_usid(token)

        users_info = get_model_return_dict(self.susers.get_all_users_info(Uid))
        print(self.title.format("users_info"))
        print(users_info)
        print(self.title.format("users_info"))
        if not users_info:
            return SYSTEM_ERROR

        if users_info.get("USsex") not in["", None]:
            Usex = users_info.get("USsex")
            if Usex == 101:
                users_info["USsex"] = "男"
            elif Usex == 102:
                users_info["USsex"] = "女"
            else:
                users_info["USsex"] = "未知性别"
        else:
            users_info["USsex"] = None

        back_response = import_status("SUCCESS_GET_MESSAGE", "OK")
        back_response["data"] = users_info
        return back_response
Exemple #9
0
    def add_cardpackage(self):
        args = request.args.to_dict()
        data = json.loads(request.data)

        if "token" not in args:
            return PARAMS_MISS
        token = args.get("token")
        uid = token_to_usid(token)

        couid = data.get("COid")

        try:
            cart_pkg = self.scoupons.get_card_by_uid_couid(uid, couid)
            self.scoupons.add_cardpackage(**{
                "CAid": str(uuid.uuid4()),
                "USid": uid,
                "COid": couid
            })
        except dberror:
            return SYSTEM_ERROR
        except Exception as e:
            print(e.message)
            return SYSTEM_ERROR

        return import_status("messages_add_coupons_success", "OK")
    def shelf_or_obtained(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args and "MEid" not in args:
            return PARAMS_MISS
        USid = token_to_usid(args["token"])
        user = self.susers.get_user_by_usid(USid)
        if not user:
            return import_status("ERROR_NONE_USER", "GROUPMEAL_ERROR",
                                 "ERROR_NONE_USER")
        # TODO 食堂的存在验证
        data = request.data
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))
        data = json.loads(data)

        meal_not_null_keys = ["MEname", "MEimage", "MEprice", "MEtype"]
        meal_null_keys = [
            "MEinfo", "MEdprice", "MEweight", "MEinventory", "MEprotein",
            "MEfat", "MEcarbohydrate", "MEcalorie", "MEinorganic", "MEcalcium",
            "MEphosphorus", "MEiron"
        ]

        for row in meal_not_null_keys:
            if row not in data.keys():
                return PARAMS_MISS
        for row in data.keys():
            if row not in meal_not_null_keys and row not in meal_null_keys:
                return PARAMS_REDUNDANCY
        if "MEtag" in data:
            data["MEtag"] = self.tag_word_change(word=data["MEtag"])
        if "MEtype" in data:
            data["MEtype"] = self.num_word_change(word=data["MEtype"])
        MEid = args["MEid"]

        update_meal = self.smeals.update_meal(MEid, data)
        print(self.title.format("update_meal"))
        print(update_meal)
        print(self.title.format("update_meal"))
        if not update_meal:
            return SYSTEM_ERROR

        return import_status("SUCCESS_UPDATE_MEAL", "OK")
Exemple #11
0
    def forget_pwd(self):
        data = request.data
        data = json.loads(data)
        print self.title.format("data")
        print data
        print self.title.format("data")
        if "USpasswordnew" not in data or "USpasswordnewrepeat" not in data or "UStelphone" not in data or "UScode" not in data:
            return SYSTEM_ERROR

        Utel = data["UStelphone"]
        list_utel = self.susers.get_all_user_tel()
        print self.title.format("list_utel")
        print list_utel
        print self.title.format("list_utel")
        if list_utel == False:
            return SYSTEM_ERROR

        if Utel not in list_utel:
            return import_status("ERROR_MESSAGE_NONE_TELPHONE", "GROUPMEAL_ERROR", "ERROR_CODE_NONE_TELPHONE")

        code_in_db = self.susers.get_code_by_utel(data["UStelphone"])
        print self.title.format("code_in_db")
        print code_in_db
        print self.title.format("code_in_db")
        if not code_in_db:
            return import_status("ERROR_MESSAGE_WRONG_TELCODE", "GROUPMEAL_ERROR", "ERROR_CODE_WRONG_TELCODE")
        if code_in_db.ICcode != data["UScode"]:
            return import_status("ERROR_MESSAGE_WRONG_TELCODE", "GROUPMEAL_ERROR", "ERROR_CODE_WRONG_TELCODE")

        if data["USpasswordnew"] != data["USpasswordnewrepeat"]:
            return import_status("ERROR_MESSAGE_WRONG_REPEAT_PASSWORD", "GROUPMEAL_ERROR", "ERROR_CODE_WRONG_REPEAT_PASSWORD")

        users = {}
        Upwd = data["USpasswordnew"]
        users["USpassword"] = Upwd
        Uid = self.susers.get_uid_by_utel(Utel)
        update_info = self.susers.update_users_by_uid(Uid, users)
        print self.title.format("update_info")
        print update_info
        print self.title.format("update_info")
        if not update_info:
            return SYSTEM_ERROR

        response_of_update_users = import_status("SUCCESS_MESSAGE_UPDATE_PASSWORD", "OK")
        return response_of_update_users
Exemple #12
0
    def update_info(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args:
            return PARAMS_MISS
        token = args.get("token")
        Uid = token_to_usid(token)
        is_user = self.susers.get_user_by_usid(Uid)
        print(self.title.format("is_user"))
        print(is_user)
        print(self.title.format("is_user"))
        if not is_user:
            return import_status("ERROR_MESSAGE_NONE_USER", "GROUPMEAL_ERROR", "ERROR_CODE_NONE_USER")

        data = request.data
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))
        data = json.loads(data)

        users = {}
        if "USname" in data:
            users["USname"] = data["USname"]
        if "USsex" in data:
            Usex = data["USsex"].encode("utf8")
            print Usex
            if Usex == "男":
                Usex = 101
            else:
                Usex = 102
            users["USsex"] = Usex

        update_info = self.susers.update_users_by_uid(Uid, users)
        print(self.title.format("update_info"))
        print(update_info)
        print(self.title.format("update_info"))
        if not update_info:
            return SYSTEM_ERROR

        back_response = import_status("SUCCESS_MESSAGE_UPDATE_INFO", "OK")
        return back_response
    def meal_list(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))

        if "MSid" not in args:
            return PARAMS_MISS
        if "MEtag" in args and "MEtype" not in args:
            print(0)
            args["MEtag"] = self.tag_word_change(
                word=args["MEtag"].encode("utf8"))
            meal_list = get_model_return_list(
                self.smeals.get_all_meal_by_msid_and_metag(
                    args["MSid"], args["MEtag"]))
            print(self.title.format("meal_list"))
            print(meal_list)
            print(self.title.format("meal_list"))
        elif "MEtype" in args and "MEtag" not in args:
            print(1)
            args["MEtype"] = self.num_word_change(
                word=args["MEtype"].encode("utf8"))
            meal_list = get_model_return_list(
                self.smeals.get_all_meal_by_msid_and_metype(
                    args["MSid"], args["MEtype"]))
            print(self.title.format("meal_list"))
            print(meal_list)
            print(self.title.format("meal_list"))
        elif "MEtype" in args and "MEtag" in args:
            print(2)
            args["MEtype"] = self.num_word_change(
                word=args["MEtype"].encode("utf8"))
            args["MEtag"] = self.tag_word_change(
                word=args["MEtag"].encode("utf8"))
            meal_list = get_model_return_list(
                self.smeals.get_all_meal_by_msid_and_metag_metype(
                    args["MSid"], args["MEtag"], args["MEtype"]))
            print(self.title.format("meal_list"))
            print(meal_list)
            print(self.title.format("meal_list"))
        else:
            print(3)
            meal_list = get_model_return_list(
                self.smeals.get_all_meal_by_msid(args["MSid"]))
            print(self.title.format("meal_list"))
            print(meal_list)
            print(self.title.format("meal_list"))
        for meal in meal_list:
            meal["MEtype"] = self.num_word_change(num=meal["MEtype"])
            meal["MEtag"] = self.tag_word_change(tag=meal["MEtag"])
        response = import_status("SUCCESS_GET_MEAL", "OK")
        response["data"] = meal_list
        return response
    def get_order_list(self):
        args = request.args.to_dict()
        if "token" not in args:
            return PARAMS_MISS

        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))

        token = args.get("token")
        Uid = token_to_usid(token)
        user = self.susers.get_user_by_usid(Uid)
        if not user:
            return SYSTEM_ERROR
        order_list = get_model_return_list(
            self.sorders.get_all_order_by_uid(Uid))
        print(self.title.format("order_list"))
        print(order_list)
        print(self.title.format("order_list"))

        if order_list:
            for order in order_list:
                if int(order["OMstatus"]) >= 305 and int(
                        order["OMstatus"]) <= 310:
                    order["is_index"] = 702
                else:
                    order["is_index"] = 701
                order["OMstatus"] = self.status_num_change(
                    num=order["OMstatus"])
                order["OMtime"] = timeformate.get_web_time_str(
                    str(order["OMtime"]))

                order_items = get_model_return_list(
                    self.sorders.get_order_item_by_oid(order["OMid"]))
                print(self.title.format("order_items"))
                print(order_items)
                print(self.title.format("order_items"))
                order["Orderitems"] = []
                for raw in order_items:
                    MEid = raw["MEid"]
                    meal = get_model_return_dict(
                        self.smeal.get_meal_by_meid(MEid))
                    print(self.title.format("product"))
                    print(meal)
                    print(self.title.format("product"))
                    raw.update(meal)
                    order["Orderitems"].append(raw)

        response_make_main_order = import_status("SUCCESS_GET_ORDER", "OK")
        response_make_main_order["data"] = order_list

        return response_make_main_order
    def get_order_abo(self):
        args = request.args.to_dict()
        if "token" not in args or "OMid" not in args:
            return PARAMS_MISS

        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        Oid = args["OMid"]
        token = args.get("token")
        Uid = token_to_usid(token)
        user = self.susers.get_user_by_usid(Uid)
        if not user:
            return SYSTEM_ERROR
        order_abo = get_model_return_dict(
            self.sorders.get_order_abo_by_oid(Oid))
        print(self.title.format("order_abo"))
        print(order_abo)
        print(self.title.format("order_abo"))
        order_abo["OMtime"] = timeformate.get_web_time_str(order_abo["OMtime"])
        order_abo["is_index"] = 701
        if int(order_abo["OMstatus"]) >= 305 and int(
                order_abo["OMstatus"]) <= 310:
            order_abo["is_index"] = 702
        order_abo["OMstatus"] = self.status_num_change(
            num=order_abo["OMstatus"])
        # TODO 优惠券解析CPid

        users = get_model_return_dict(self.susers.get_uname_utel_by_uid(Uid))
        print(self.title.format("users"))
        print(users)
        print(self.title.format("users"))
        order_abo.update(users)
        order_items = get_model_return_list(
            self.sorders.get_order_item_by_oid(Oid))
        print(self.title.format("order_items"))
        print(order_items)
        print(self.title.format("order_items"))

        order_abo["Orderitems"] = order_items
        for row in order_items:
            product = get_model_return_dict(
                self.smeal.get_meal_by_meid(row["MEid"]))
            print(self.title.format("product"))
            print(product)
            print(self.title.format("product"))
            row.update(product)

        response_make_main_order = import_status("SUCCESS_GET_ORDER", "OK")
        response_make_main_order["data"] = order_abo
        return response_make_main_order
    def update_order_status(self):
        args = request.args.to_dict()
        data = request.data
        data = json.loads(data)

        if "token" not in args:
            return PARAMS_MISS
        if "OMstatus" not in data or "OMid" not in data:
            return PARAMS_MISS
        # 处理token过程,这里未设计
        token = args.get("token")
        USid = token_to_usid(token)
        user = self.susers.get_user_by_usid(USid)
        if not user:
            return SYSTEM_ERROR

        OMstatus = self.status_num_change(
            status=data["OMstatus"].encode("utf8"))
        if not OMstatus:
            return import_status("ERROR_UNKNOWN_OMSTATUS", "GROUPMEAL_ERROR",
                                 "ERROR_UNKNOWN_OMSTATUS")

        OMid = data["OMid"]
        usid = self.sorders.get_usid_by_omid(OMid)
        if USid != usid:
            return import_status("ERROR_NONE_PERMISSION", "GROUPMEAL_ERROR",
                                 "ERROR_NONE_PERMISSION")

        update_OMstatus = {}
        update_OMstatus["OMstatus"] = OMstatus

        response_update_order_status = self.sorders.update_order_by_oid(
            OMid, update_OMstatus)

        if not response_update_order_status:
            return SYSTEM_ERROR

        return import_status("SUCCESS_UPDATE_ORDER", "OK")
 def delete_user_review(self):
     args = request.args.to_dict()  # 捕获前端的URL参数,以字典形式呈现
     # 判断url参数是否异常
     if len(args) != 1 or "Uid" not in args.keys(
     ) or "Rid" not in args.keys():
         message, status, statuscode = import_status(
             "URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG")
         return {
             "message": message,
             "status": status,
             "statuscode": statuscode,
         }
     uid_to_str = get_str(args, "Uid")
     uid_list = []
     if uid_to_str not in uid_list:
         message, status, statuscode = import_status(
             "URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG")
         return {
             "message": message,
             "status": status,
             "statuscode": statuscode,
         }
     rid_to_str = get_str(args, "Rid")
     rid_list = self.service_review.get_rid_by_uid(uid_to_str)
     if rid_to_str not in rid_list:
         message, status, statuscode = import_status(
             "NO_THIS_REVIEW", "response_error", "NO_THIS_REVIEW")
         return {
             "message": message,
             "status": status,
             "statuscode": statuscode,
         }
     result = self.service_review.delete_user_review(rid_to_str)
     print(result)
     return {
         "message": "delete review success !",
         "status": 200,
     }
    def get_order_price(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))

        if "token" not in args:
            return PARAMS_MISS

        data = json.loads(request.data)
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))
        meals_list = data.get("meallist")
        order_list = []
        OMprice = 0
        try:
            for meal in meals_list:
                MEnumber = meal.get("MEnumber")
                meal_abo = get_model_return_dict(
                    self.smeal.get_meal_by_meid(meal.get("MEid")))
                if not meal_abo["MEdprice"]:
                    MEprice = meal_abo["MEdprice"]
                else:
                    MEprice = meal_abo["MEprice"]
                OMprice += (MEprice * MEnumber)
                order_list.append(meal)
            # TODO 优惠券计算过程
            """
            if "COid" in data and get_str(data, "COid"):
                coupon = get_model_return_dict(self.scoupons.get_coupons_by_couid(get_str(data, "COid")))
                print(self.title.format(coupon))
                print(coupon)
                print(self.title.format(coupon))
                OMprice = self.compute_om_price_by_coupons(coupon, OMprice)
                if not isinstance(OMprice, float):
                    return OMprice
            """
            print(self.title.format("OMprice"))
            print(OMprice)
            print(self.title.format("OMprice"))

            data = import_status("SUCCESS_MESSAGE_GET_INFO", "OK")
            data["data"] = {"OMprice": OMprice, "meallist": order_list}
            return data
        except Exception as e:
            print(self.title.format("get order error"))
            print(e.message)
            print(self.title.format("get order error"))
 def meal_abo(self):
     args = request.args.to_dict()
     print(self.title.format("args"))
     print(args)
     print(self.title.format("args"))
     if "MEid" not in args:
         return PARAMS_MISS
     meal_abo = get_model_return_dict(
         self.smeals.get_meal_by_meid(args["MEid"]))
     print(self.title.format("meal_abo"))
     print(meal_abo)
     print(self.title.format("meal_abo"))
     meal_abo["MEtype"] = self.num_word_change(num=meal_abo["MEtype"])
     meal_abo["MEtag"] = self.tag_word_change(tag=meal_abo["MEtag"])
     response = import_status("SUCCESS_GET_MEAL", "OK")
     response["data"] = meal_abo
     return response
Exemple #20
0
    def get_first_user(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args:
            return PARAMS_MISS
        token = args.get("token")
        Uid = token_to_usid(token)

        users_info = get_model_return_dict(self.susers.get_first_user_by_usid(Uid))
        users_info["USbirthday"] = self.make_birthday(users_info["USbirthday"])
        users_info["USheight"] = str(users_info["USheight"]) + "cm"
        users_info["USweight"] = str(users_info["USweight"]) + "kg"
        print(self.title.format("users_info"))
        print(users_info)
        print(self.title.format("users_info"))
        if not users_info:
            return SYSTEM_ERROR

        back_response = import_status("SUCCESS_GET_MESSAGE", "OK")
        back_response["data"] = users_info
        return back_response
    def get_review(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))

        if "OMid" not in args.keys() or "token" not in args.keys():
            return PARAMS_MISS

        token = args.get("token")
        USid = token_to_usid(token)
        # TODO USid的作用?

        OMid = get_str(args, "OMid")

        all_review = get_model_return_list(
            self.service_review.get_review(OMid))
        print(self.title.format("all_review"))
        print(all_review)
        print(self.title.format("all_review"))
        if not all_review:
            return SYSTEM_ERROR

        for row in all_review:
            product = get_model_return_dict(
                self.smeal.get_meal_by_meid(row.get("MEid")))
            print(self.title.format("product"))
            print(product)
            print(self.title.format("product"))
            if not product:
                return SYSTEM_ERROR
            row.update(product)

        back_response = import_status("SUCCESS_MESSAGE_ADD_REVIEW", "OK")
        back_response["data"] = all_review
        return back_response
    def get_eat(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args:
            return PARAMS_MISS
        USid = token_to_usid(args["token"])
        response_data = {
            "calorie": 0,
            "protein": 0,
            "fat": 0,
            "carbohydrate": 0,
            "inorganic": 0,
            "calcium": 0,
            "phosphorus": 0,
            "iron": 0
        }
        if "timedetail" in args:
            timedetail = int(args["timedetail"])
            time_now = datetime.datetime.now() + datetime.timedelta(
                days=timedetail)
            date = time_now.strftime("%Y%m%d%H%M%S")[0:8]
            time_start = date + "000000"
            time_end = date + "235959"
            all_order = get_model_return_list(
                self.sorder.get_all_order_by_time(time_start, time_end, USid))
            print(self.title.format("all_order"))
            print(all_order)
            print(self.title.format("all_order"))
            if not all_order:
                return SYSTEM_ERROR
            for order in all_order:
                OMid = order["OMid"]
                meal_list = get_model_return_list(
                    self.sorder.get_order_item_by_oid(OMid))
                for meal in meal_list:
                    MEnumber = meal["MEnumber"]
                    MEid = meal["MEid"]
                    meal_abo = get_model_return_dict(
                        self.smeal.get_meal_nutrition_by_meid(MEid))
                    response_data[
                        "calorie"] += meal_abo["MEcalorie"] * MEnumber
                    response_data[
                        "protein"] += meal_abo["MEprotein"] * MEnumber
                    response_data["fat"] += meal_abo["MEfat"] * MEnumber
                    response_data["carbohydrate"] += meal_abo[
                        "MEcarbohydrate"] * MEnumber
                    response_data[
                        "inorganic"] += meal_abo["MEinorganic"] * MEnumber
                    response_data[
                        "calcium"] += meal_abo["MEcalcium"] * MEnumber
                    response_data[
                        "phosphorus"] += meal_abo["MEphosphorus"] * MEnumber
                    response_data["iron"] += meal_abo["MEiron"] * MEnumber

        if "timestart" in args and "timeend" in args:
            return
        response = import_status("SUCCESS_GET_EAT", "OK")
        response["data"] = response_data
        return response
    def make_main_order(self):
        args = request.args.to_dict()
        data = request.data
        data = json.loads(data)
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))

        if "token" not in args or "MSid" not in args:
            return PARAMS_MISS

        params_list = ["Order_items", "OMtotal", "OMtime"]
        for params in params_list:
            if params not in data:
                return PARAMS_MISS
        null_params = ["OMabo", "CPid"]
        for params in data.keys():
            if params not in null_params and params not in params_list:
                return PARAMS_REDUNDANCY

        token = args.get("token")
        Uid = token_to_usid(token)
        user = self.susers.get_user_by_usid(Uid)
        if not user:
            return SYSTEM_ERROR
        MSid = args["MSid"]
        OMtime = timeformate.get_db_time_str(data["OMtime"])

        order_item = data["Order_items"]
        OMcode = self.make_code()
        import uuid
        OMid = str(uuid.uuid1())
        try:
            for op in order_item:
                MEstatus = self.smeal.get_mestatus_by_meid(op["MEid"])
                print(self.title.format("MEstatus"))
                print(MEstatus)
                print(self.title.format("MEstatus"))
                if MEstatus != 281:
                    return import_status("error_no_pro", "GROUPMEAL_ERROR",
                                         "error_no_pro")
                msid = self.smeal.get_msid_by_meid(op["MEid"])
                if msid != MSid:
                    return import_status("ERROR_MEAL_IN_MESS",
                                         "GROUPMEAL_ERROR",
                                         "ERROR_MEAL_IN_MESS")
                add_model(
                    "OrderPart", **{
                        "OPid": str(uuid.uuid1()),
                        "OMid": OMid,
                        "MEid": op["MEid"],
                        "MEnumber": op["MEnumber"]
                    })
                volume = self.smeal.get_mevolume_by_meid(op["MEid"])
                volume = volume + 1
                update_meal = self.smeal.update_meal(op["MEid"],
                                                     {"MEvolume": volume})
                if not update_meal:
                    return SYSTEM_ERROR

                cart = get_model_return_dict(
                    self.scart.get_cart_by_usid_meid(Uid, op["MEid"]))
                print(self.title.format("cartt"))
                print(cart)
                print(self.title.format("cartt"))
                self.scart.del_carts(cart.get("CAid"))

            print(self.title.format("success add orderpart"))
            # TODO 增加优惠券id
            self.sorders.add_model(
                "OrderMain", **{
                    "OMid": OMid,
                    "OMtime": OMtime,
                    "OMstatus": 301,
                    "USid": Uid,
                    "OMcode": OMcode,
                    "OMabo": data["OMabo"],
                    "OMtotal": data["OMtotal"]
                })

            # self.scoupons.update_carbackage(get_str(data, "CAid"))
            response_make_main_order = import_status("SUCCESS_MAKE_ORDER",
                                                     "OK")
            response_make_main_order["data"] = {}
            response_make_main_order["data"]["OMid"] = OMid
            return response_make_main_order
        except Exception as e:
            print(self.title.format("error"))
            print(e.message)
            print(self.title.format("error"))
            return SYSTEM_ERROR
    def create_review(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "token" not in args.keys() or "OMid" not in args.keys():
            return PARAMS_MISS

        token = args.get("token")
        USid = token_to_usid(token)
        OMid = get_str(args, "OMid")
        OMstatus = self.service_order.get_omstatus_by_omid(OMid)
        if OMstatus != 305:
            return import_status("ERROR_MESSAGE_WRONG_OMSTATUS",
                                 "GROUPMEAL_ERROR",
                                 "ERROR_CODE_WRONG_OMSTATUS")

        data = request.data
        data = json.loads(data)
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))

        for row in data:
            print(self.title.format("data_item"))
            print(row)
            print(self.title.format("data_item"))
            if "MEid" not in row or "REscore" not in row or "REfscore" not in row:
                return PARAMS_MISS
            if "REcontent" in row:
                REcontent = row["REcontent"]
            else:
                REcontent = None
            PRid = row["MEid"]
            REscore = row["REscore"]
            print(self.title.format("REscore"))
            print(REscore)
            print(self.title.format("REscore"))
            try:
                add_model(
                    "Review", **{
                        "REid": str(uuid.uuid1()),
                        "OMid": OMid,
                        "MEid": PRid,
                        "REscore": REscore,
                        "REcontent": REcontent,
                        "REfscore": row["REfscore"]
                    })
            except Exception as e:
                print(self.title.format("add_review"))
                print(e.message)
                print(self.title.format("add_review"))
                return SYSTEM_ERROR

            product_volue = self.smeal.get_mevolume_by_meid(PRid)
            product_score = self.smeal.get_mefrac_by_meid(PRid)

            score = (product_score * product_volue + REscore) / product_volue
            product = {"MEfraction": score}
            update_product = self.smeal.update_meal(PRid, product)
            print(self.title.format("update_product"))
            print(update_product)
            print(self.title.format("update_product"))
            if not update_product:
                return SYSTEM_ERROR

            order = {"OMstatus": 306}
            update_order = self.service_order.update_order_by_oid(OMid, order)
            print(self.title.format("update_order"))
            print(update_order)
            print(self.title.format("update_order"))
            if not update_order:
                return SYSTEM_ERROR

        back_response = import_status("SUCCESS_MESSAGE_ADD_REVIEW", "OK")
        return back_response
Exemple #25
0
    def get_inforcode(self):
        data = request.data
        data = json.loads(data)
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))
        if "UStelphone" not in data:
            return PARAMS_MISS
        Utel = data["UStelphone"]
        # 拼接验证码字符串(6位)
        code = ""
        while len(code) < 6:
            import random
            item = random.randint(1, 9)
            code = code + str(item)

        # 获取当前时间,与上一次获取的时间进行比较,小于60秒的获取直接报错
        import datetime
        from GroupMeal.common.timeformate import format_for_db
        time_time = datetime.datetime.now()
        time_str = datetime.datetime.strftime(time_time, format_for_db)

        """
        utel_list = self.susers.get_user_by_utel(Utel)
        print(self.title.format("utel_list"))
        print(utel_list)
        print(self.title.format("utel_list"))
        if utel_list:
            return import_status("ERROR_MESSAGE_REPEAT_TELPHONE", "GROUPMEAL_ERROR", "ERROR_CODE_REPEAT_TELPHONE")
            """
        # 根据电话号码获取时间
        time_up = self.susers.get_uptime_by_utel(Utel)
        print(self.title.format("time_up"))
        print time_up
        print(self.title.format("time_up"))
        if time_up:
            time_up_time = datetime.datetime.strptime(time_up.ICtime, format_for_db)
            delta = time_time - time_up_time
            if delta.seconds < 60:
                return import_status("ERROR_MESSAGE_GET_CODE_FAST", "GROUPMEAL_ERROR", "ERROR_CODE_GET_CODE_FAST")

        new_inforcode = self.susers.add_inforcode(Utel, code, time_str)

        print(self.title.format("new_inforcode"))
        print(new_inforcode)
        print(self.title.format("new_inforcode"))

        if not new_inforcode:
            return SYSTEM_ERROR
        from GroupMeal.config.Inforcode import SignName, TemplateCode
        from GroupMeal.common.Inforsend import send_sms
        params = '{\"code\":\"' + code + '\",\"product\":\"etech\"}'

        # params = u'{"name":"wqb","code":"12345678","address":"bz","phone":"13000000000"}'
        __business_id = uuid.uuid1()
        response_send_message = send_sms(__business_id, Utel, SignName, TemplateCode, params)

        response_send_message = json.loads(response_send_message)
        print(self.title.format("response_send_message"))
        print(response_send_message)
        print(self.title.format("response_send_message"))

        if response_send_message["Code"] == "OK":
            status = 200
        else:
            status = 405
        response_ok = {}
        response_ok["status"] = status
        response_ok["messages"] = response_send_message["Message"]

        return response_ok
    def add_or_update_cart(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        data = json.loads(request.data)
        print(self.title.format("data"))
        print(data)
        print(self.title.format("data"))

        if "token" not in args:
            return PARAMS_MISS
        token = args.get("token")
        USid = token_to_usid(token)
        MEid = data["MEid"]
        CAnumber = data["CAnumber"]
        if CAnumber <= 0:
            PBnumber = self.scart.get_canumber_by_meid_and_usid(MEid, USid)
            if not PBnumber:
                return SYSTEM_ERROR
            pnum = int(CAnumber) + int(PBnumber)
            if pnum <= 0:
                return self.del_cart(USid, MEid)
            else:
                cart = self.scart.get_cart_by_usid_meid(USid, MEid)
                print(self.title.format("cart"))
                print(cart)
                print(self.title.format("cart"))
                if not cart:
                    return SYSTEM_ERROR
                self.scart.update_num_cart(pnum, cart.CAid)
        else:
            try:
                if not self.smeal.get_meal_by_meid(MEid):
                    return import_status("ERROR_MESSAGE_NONE_PRODUCT",
                                         "GROUPMEAL_ERROR",
                                         "ERROR_NONE_PRODUCT")
                cart = self.scart.get_cart_by_usid_meid(USid, MEid)
                print(self.title.format("cart"))
                print(cart)
                print(self.title.format("cart"))
                if cart:
                    PBnumber = self.scart.get_canumber_by_meid_and_usid(
                        MEid, USid)
                    pnum = int(CAnumber) + int(PBnumber)
                    self.scart.update_num_cart(pnum, cart.CAid)
                else:
                    add_model(
                        "Cart", **{
                            "CAid": str(uuid.uuid1()),
                            "CAnumber": CAnumber,
                            "USid": USid,
                            "MEid": MEid
                        })
            except dberror:
                return SYSTEM_ERROR
            except Exception as e:
                print(e.message)
                return SYSTEM_ERROR

        return import_status("SUCCESS_MESSAGE_UPDATE_CART", "OK")
Exemple #27
0
    def get_cart_pkg(self):
        args = request.args.to_dict()
        if "token" not in args:
            return PARAMS_MISS
        token = args.get("token")
        uid = token_to_usid(token)

        try:
            cart_list = []
            cart_pkgs = self.scoupons.get_cardpackage_by_uid(uid)
            print(self.title.format("cart_pkgs"))
            print(cart_pkgs)
            print(self.title.format("cart_pkgs"))
            for cart_pkg in cart_pkgs:
                coupon = self.scoupons.get_coupons_by_couid(cart_pkg.COid)
                print(self.title.format("coupon"))
                print(coupon)
                print(self.title.format("coupon"))

                cart = {}
                COtype = coupon.COtype
                print(self.title.format("COtype"))
                print(COtype)
                print(self.title.format("COtype"))
                cart["CPid"] = cart_pkg.CPid
                cart["COid"] = cart_pkg.COid
                if COtype == 801:
                    COfilter = coupon.COfilter
                    cart["COuse"] = "满{0}元可用".format(COfilter)
                    COcut = coupon.COamount
                    cart["COcut"] = str(COcut)
                    COstart = coupon.COstart
                    cart["COstart"] = get_web_time_str(COstart,
                                                       format_forweb_no_HMS)
                    COend = coupon.COend
                    cart["COend"] = get_web_time_str(COend,
                                                     format_forweb_no_HMS)
                elif COtype == 802:
                    COfilter = coupon.COfilter
                    cart["COuse"] = "满{0}元可用".format(COfilter)
                    cart["COcut"] = str(coupon.COdiscount * 10) + "折"
                    COstart = coupon.COstart
                    cart["COstart"] = get_web_time_str(COstart,
                                                       format_forweb_no_HMS)
                    COend = coupon.COend
                    cart["COend"] = get_web_time_str(COend,
                                                     format_forweb_no_HMS)
                elif COtype == 803:
                    CObrand = coupon.CObrand.encode("utf8")
                    cart["COuse"] = "限{0}商品可用".format(str(CObrand))
                    cart["COcut"] = str(coupon.COamount)
                    COstart = coupon.COstart
                    cart["COstart"] = get_web_time_str(COstart,
                                                       format_forweb_no_HMS)
                    COend = coupon.COend
                    cart["COend"] = get_web_time_str(COend,
                                                     format_forweb_no_HMS)
                elif COtype == 804:
                    cart["COuse"] = "无限制"
                    cart["COcut"] = str(coupon.COamount)
                    COstart = coupon.COstart
                    cart["COstart"] = get_web_time_str(COstart,
                                                       format_forweb_no_HMS)
                    COend = coupon.COend
                    cart["COend"] = get_web_time_str(COend,
                                                     format_forweb_no_HMS)
                else:
                    return
                cart_list.append(cart)
        except Exception as e:
            print("ERROR: " + e.message)
            return SYSTEM_ERROR
        result = import_status("messages_get_carpkg_success", "OK")
        result["data"] = cart_list
        return result