Exemplo n.º 1
0
class CAddress():
    def __init__(self):
        self.title = "========={0}========="
        from LoveBreakfast.services.SAddress import SAddress
        self.sadd = SAddress()

    def get_addfirst(self):
        """
        通过城市名称和类型获取区域名称或者所有线路
        :return:
        """
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "ACname" not in args or "AFtype" not in args:
            return PARAMS_MISS

        try:
            acname = args.get("ACname")
            city = get_model_return_dict(self.sadd.get_city_by_name(acname))
            if not city:
                return import_status("error_no_city", "LOVEBREAKFAST_ERROR",
                                     "error_no_city")

            print(self.title.format("city"))
            print(city)
            print(self.title.format("city"))
            af_type = get_str(args, "AFtype")
            list_first = get_model_return_list(
                self.sadd.get_addfirst_by_acid_astype(city.get("ACid"),
                                                      AFTYPE.index(af_type)))
            print(self.title.format("list_first"))
            print(list_first)
            print(self.title.format("list_first"))
            return_data = import_status("messages_get_area_success", "OK")
            return_data["data"] = list_first
            return return_data
        except Exception as e:
            print(self.title.format("error"))
            print(e.message)
            print(self.title.format("error"))
            return SYSTEM_ERROR

    def get_citys(self):
        try:
            city_list = get_model_return_list(self.sadd.get_citys())
            if not city_list:
                return SYSTEM_ERROR
            print(self.title.format("city_list"))
            print(city_list)
            print(self.title.format("city_list"))
            for city in city_list:
                # todo 不同城市可能开通的type不同,考虑增加字段来解决
                city["AFtype"] = AFTYPE

            return_data = import_status("messages_get_area_success", "OK")
            return_data["data"] = city_list
            return return_data
        except Exception as e:
            print(self.title.format("error"))
            print(e.message)
            print(self.title.format("error"))
            return SYSTEM_ERROR

    def get_addsecond(self):
        args = request.args.to_dict()
        print(self.title.format("args"))
        print(args)
        print(self.title.format("args"))
        if "AFid" not in args:
            return PARAMS_MISS
        try:
            afid = get_str(args, "AFid")
            list_addsecond = get_model_return_list(
                self.sadd.get_addsecond_by_afid(afid))
            if not list_addsecond:
                return SYSTEM_ERROR
            print(self.title.format("list_addsecond"))
            print(list_addsecond)
            print(self.title.format("list_addsecond"))
            return_data = import_status("messages_get_area_success", "OK")
            return_data["data"] = list_addsecond
            return return_data
        except Exception as e:
            print(self.title.format("error"))
            print(e.message)
            print(self.title.format("error"))
            return SYSTEM_ERROR

    def get_addabo(self):
        data = json.loads(request.data)
        if "ASid" not in data:
            return PARAMS_MISS
        if "CAid" not in data and "PRid" not in data:
            return PARAMS_MISS
        from LoveBreakfast.services.SCarts import SCarts
        from LoveBreakfast.services.SMachinery import SMachinery
        scarts = SCarts()
        smach = SMachinery()
        if "CAid" in data:
            caid_list = data.get("CAid")
            prid_list = [scarts.get_prid_by_caid(caid) for caid in caid_list]
        elif "PRid" in data:
            prid_list = [data["PRid"]]
        aaid_mach_list = []
        for prid in prid_list:
            aaid_mach_list.extend(
                [mach.AAid for mach in smach.get_aaid_by_prid(prid)])
        try:
            asid = get_str(data, "ASid")
            list_addabo = get_model_return_list(
                self.sadd.get_addabo_by_asid(asid))
            print(self.title.format("list_addabo"))
            print(list_addabo)
            print(self.title.format("list_addabo"))
            aaid_as_list = [addabo.get("AAid") for addabo in list_addabo]
            print(self.title.format("aaid_as_list"))
            print(aaid_as_list)
            print(self.title.format("aaid_as_list"))
            aaid_list = list(set(aaid_as_list).intersection(aaid_mach_list))
            print(self.title.format("aaid_list"))
            print(aaid_list)
            print(self.title.format("aaid_list"))
            if not aaid_list:
                return SYSTEM_ERROR
            import random
            index = random.randint(0, len(aaid_list) - 1)
            aaid = aaid_list[index]

            return_data = import_status("messages_get_area_success", "OK")
            return_data["data"] = list_addabo[aaid_as_list.index(aaid)]
            return return_data
        except Exception as e:
            print(self.title.format("error"))
            print(e.message)
            print(self.title.format("error"))
            return SYSTEM_ERROR
Exemplo n.º 2
0
class CCarts():
    def __init__(self):
        from LoveBreakfast.services.SCarts import SCarts
        self.scart = SCarts()
        from LoveBreakfast.services.SProduct import SProduct
        self.spro = SProduct()
        from LoveBreakfast.services.SUsers import SUsers
        self.susers = SUsers()
        from LoveBreakfast.services.SProduct import SProduct
        self.sproduct = SProduct()
        from LoveBreakfast.services.SAddress import SAddress
        self.sadd = SAddress()
        from LoveBreakfast.services.SMachinery import SMachinery
        self.smach = SMachinery()
        self.title = '============{0}============'

    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 "AAid" not in args:
            return PARAMS_MISS

        token = args.get("token")
        uid = token_to_usid(token)
        ASid = args.get("ASid")
        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",
                                 "LOVEBREAKFAST_ERROR", "ERROR_CODE_NONE_USER")

        cart_info_list = []
        cart_list = self.scart.get_carts_by_Uid(uid)
        print(self.title.format("cartlist"))
        print(cart_list)
        print(self.title.format("cartlist"))
        aaid_list = self.sadd.get_addabo_by_asid(ASid)

        for cart in cart_list:
            if cart.CAstatus != 1:
                continue
            PRid = cart.PRid
            address_list = [i.AAid for i in self.smach.get_aaid_by_prid(PRid)]
            print(self.title.format("address_list"))
            print(address_list)
            print(self.title.format("address_list"))
            if not address_list:
                return SYSTEM_ERROR

            if not set(address_list).intersection(aaid_list):
                continue
            cart_service_info = self.spro.get_all_pro_fro_carts(PRid)
            print(self.title.format("cart_service_info"))
            print(cart_service_info)
            print(self.title.format("cart_service_info"))
            if not cart_service_info:
                return SYSTEM_ERROR

            cart_info = {}
            cart_info["PRid"] = cart_service_info.PRid
            cart_info["PRimage"] = cart_service_info.PRimage
            cart_info["PRname"] = cart_service_info.PRname
            cart_info["PRstatus"] = cart_service_info.PRstatus
            cart_info["PRsalesvolume"] = cart_service_info.PRsalesvolume
            cart_info["PRprice"] = cart_service_info.PRprice
            cart_info["PRscore"] = cart_service_info.PRscore
            cart_info["CAnumber"] = cart.CAnumber
            cart_info_list.append(cart_info)

        back_response = import_status("SUCCESS_GET_MESSAGE", "OK")
        back_response["data"] = cart_info_list
        return back_response

    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")
        uid = token_to_usid(token)
        pid = data.get("PRid")
        CAnumber = data.get("CAnumber")
        if CAnumber <= 0:
            PBnumber = self.scart.get_pbnumber_by_pbid_and_usid(pid, uid)
            pnum = int(CAnumber) + int(PBnumber)
            if pnum <= 0:
                return self.del_cart(uid, pid)
        try:
            if not self.sproduct.get_pro_info_by_pid(pid):
                return import_status("ERROR_MESSAGE_NONE_PRODUCT",
                                     "SHARPGOODS_ERROR", "ERROR_NONE_PRODUCT")
            cart = self.scart.get_cart_by_uid_pid(uid, pid)
            print(self.title.format("cart"))
            print(cart)
            print(self.title.format("cart"))
            if cart:
                PBnumber = self.scart.get_pbnumber_by_pbid_and_usid(pid, uid)
                pnum = int(CAnumber) + int(PBnumber)
                self.scart.update_num_cart(pnum, cart.CAid)
            else:
                add_model(
                    "Cart", **{
                        "CAid": str(uuid.uuid1()),
                        "CAnumber": CAnumber,
                        "USid": uid,
                        "CAstatus": 1,
                        "PRid": pid
                    })
        except dberror:
            return SYSTEM_ERROR
        except Exception as e:
            print(e.message)
            return SYSTEM_ERROR

        return import_status("SUCCESS_MESSAGE_UPDATE_CART", "OK")

    def del_cart(self, uid, pid):
        try:
            cart = self.scart.get_cart_by_uid_pid(uid, pid)
            print(self.title.format("cart"))
            print(cart)
            print(self.title.format("cart"))
            if not cart:
                return import_status("ERROR_MESSAGE_NONE_PRODUCT",
                                     "LOVEBREAKFAST_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 del_product(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"))

        if "PRid" not in data:
            return PARAMS_MISS
        token = args.get("token")
        uid = token_to_usid(token)
        return self.del_cart(uid, data.get("PRid"))

    def get_carts_by_uid_caid(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

        caid_list = []

        if request.environ.get("REQUEST_METHOD") == "POST":
            data = json.loads(request.data)
            print(self.title.format("data"))
            print(data)
            print(self.title.format("data"))
            caid_list = data.get("CAid")
        token = args.get("token")
        uid = token_to_usid(token)
        ASid = args.get("ASid")

        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",
                                 "LOVEBREAKFAST_ERROR", "ERROR_CODE_NONE_USER")

        aaid_list = [i.AAid for i in self.sadd.get_addabo_by_asid(ASid)]
        cart_info_list = []
        cart_list = self.scart.get_carts_by_Uid(uid)
        print(self.title.format("cartlist"))
        print(cart_list)
        print(self.title.format("cartlist"))

        for cart in cart_list:
            if cart.CAstatus != 1:
                continue
            if caid_list and cart.CAid not in caid_list:
                continue
            PRid = cart.PRid
            address_list = [i.AAid for i in self.smach.get_aaid_by_prid(PRid)]
            print(self.title.format("address_list"))
            print(address_list)
            print(self.title.format("address_list"))
            if not address_list:
                return SYSTEM_ERROR
            if not set(address_list).intersection(aaid_list):
                continue

            cart_service_info = self.spro.get_all_pro_fro_carts(PRid)
            print(self.title.format("cart_service_info"))
            print(cart_service_info)
            print(self.title.format("cart_service_info"))
            if not cart_service_info:
                return SYSTEM_ERROR

            cart_info = {}
            cart_info["PRid"] = cart_service_info.PRid
            cart_info["PRimage"] = cart_service_info.PRimage
            cart_info["PRname"] = cart_service_info.PRname
            cart_info["PRstatus"] = cart_service_info.PRstatus
            cart_info["PRsalesvolume"] = cart_service_info.PRsalesvolume
            cart_info["PRprice"] = cart_service_info.PRprice
            cart_info["PRscore"] = cart_service_info.PRscore
            cart_info["CAnumber"] = cart.CAnumber
            cart_info["CAid"] = cart.CAid
            cart_info_list.append(cart_info)

        back_response = import_status("SUCCESS_GET_MESSAGE", "OK")
        back_response["data"] = cart_info_list
        return back_response
Exemplo n.º 3
0
class CProduct():
    def __init__(self):
        try:
            self.title = "========{0}========="
            self.sproduct = SProduct()
            self.service_category = SCategory()
            self.smach = SMachinery()
            self.sadd = SAddress()
        except Exception as e:
            print(self.title.format("error"))
            print(e.message)
            print(self.title.format("error"))

    def get_all(self):
        args = request.args.to_dict()
        if "VNtelphone" in args:
            pass
        try:
            pro_list_of_product = get_model_return_list(
                self.sproduct.get_all())
            print(self.title.format("pro_list_of_product"))
            print(pro_list_of_product)
            print(self.title.format("pro_list_of_product"))
            if "PRhost" in args and args.get("PRhost") == "host":
                prolist = pro_list_of_product[:]
            elif "ASid" in args and args.get("ASid"):
                aaid_list = get_model_return_list(
                    self.sadd.get_addabo_by_asid(get_str(args, "ASid")))
                print(self.title.format("aaid_list"))
                print(aaid_list)
                print(self.title.format("aaid_list"))
                pro_list_of_addabo = []
                for aaid in aaid_list:
                    pro_list_of_addabo.extend([
                        i.PRid
                        for i in self.smach.get_pro_by_aaid(aaid.get("AAid"))
                    ])

                pro_list_of_addabo = {}.fromkeys(pro_list_of_addabo).keys()
                print(self.title.format("pro_list_of_addabo"))
                print(pro_list_of_addabo)
                print(self.title.format("pro_list_of_addabo"))

                prolist = [
                    pro for pro in pro_list_of_product
                    if pro.get("PRid") in pro_list_of_addabo
                ]
            elif "ASid" not in args:
                return PARAMS_MISS
            else:
                return SYSTEM_ERROR

            print(self.title.format("prolist"))
            print(prolist)
            print(self.title.format("prolist"))
            pro_list_of_control = []
            if prolist:
                pro_list_of_control = prolist

            data = import_status("get_product_list_success", "OK")
            data["data"] = pro_list_of_control
            return data
        except Exception as e:
            print(self.title.format("error"))
            print(e.message)
            print(self.title.format("error"))
            return SYSTEM_ERROR

    # 根据商品id获取商品详情
    def get_info_by_id(self):
        args = request.args.to_dict()  # 捕获前端的URL参数,以字典形式呈现
        # 判断url参数是否异常
        if len(args) != 1 or "PRid" not in args.keys():
            return import_status("URL_PARAM_WRONG", "response_error",
                                 "URL_PARAM_WRONG")

        pid_to_str = get_str(args, "PRid")

        print(self.title.format("pid_to_str"))
        print(pid_to_str)
        print(self.title.format("pid_to_str"))
        # 返回商品详情
        try:
            proabo_of_service = get_model_return_dict(
                self.sproduct.get_pro_info_by_pid(pid_to_str))
            if not proabo_of_service:
                # 判断是否存在此pid
                return import_status("NO_THIS_PRODUCT", "response_error",
                                     "NO_THIS_PRODUCT")

            print("proabo_of_service")
            print(proabo_of_service)
            print("proabo_of_service")

            proabo_of_service["Pnum"] = 0
            data = import_status("get_product_info_success", "OK")
            data["data"] = proabo_of_service
            return data
        except Exception as e:
            print(self.title.format("error"))
            print(e.message)
            print(self.title.format("error"))
            return SYSTEM_ERROR