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")) products_list = data.get("productlist") # OMcointype = "¥" order_list = [] OMprice = 0 try: for product in products_list: prnumber = product.get("PRnumber") product = get_model_return_dict( self.sproduct.get_pro_info_by_pid(product.get("PRid"))) # if product.get("PBunit") != OMcointype: # TODO 增加换算过程 # pass OMprice += (product.get("PRprice") * prnumber) order_list.append(product) 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, "productlist": 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 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
def get_category_by_sid(self): args = request.args.to_dict() # 捕获前端的URL参数,以字典形式呈现 # 判断url参数是否异常 if len(args) != 1 or "Sid" not in args.keys(): message, status, statuscode = import_status( "URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG") return { "message": message, "status": status, "statuscode": statuscode, } sid_to_str = get_str(args, "Sid") # 判断是否存在此sid print type(sid_to_str) all_shop_id = self.service_shop.get_all_sid() print type(all_shop_id) print all_shop_id if str(args["Sid"]) not in all_shop_id: message, status, statuscode = import_status( "NO_THIS_Shop", "response_error", "NO_THIS_Shop") return { "message": message, "status": status, "statuscode": statuscode, } list_for_cate_and_pro = self.service_category.get_all_cid_cname() return { "status": 200, "message": "get cate_and_pro success !", "data": list_for_cate_and_pro }
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
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_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
def get_category_and_product(self): args = request.args.to_dict() # 捕获前端的URL参数,以字典形式呈现 # 判断url参数是否异常 if len(args) != 1 or "Sid" not in args.keys(): message, status, statuscode = import_status("URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG") return { "message": message, "status": status, "statuscode": statuscode, } sid_to_str = get_str(args, "Sid") # 判断是否存在此sid print(type(sid_to_str)) all_shop_id = self.service_shop.get_all_sid() print(type(all_shop_id)) print(all_shop_id) if str(args["Sid"]) not in all_shop_id: message, status, statuscode = import_status("NO_THIS_Shop", "response_error", "NO_THIS_Shop") return { "message": message, "status": status, "statuscode": statuscode, } # 获取所有的分类信息 dic_for_cate_and_pro = [] cate_list = self.service_shop.get_all_cid_cname(str(args["Sid"])) for i in range(cate_list.__len__()): dict1 = {} dict1["name"] = cate_list[i].Pcatgoryname Pcategoryid = cate_list[i].Pcategoryid pro_dic = None pro_dic = self.service_product.get_pro_id_by_cid(Pcategoryid) # 根据分类id获取商品信息 pro_dic_of_control = None pro_dic_of_control["Pname"] = pro_dic.Pname pro_dic_of_control["Pprice"] = pro_dic.Pprice pro_dic_of_control["Pimage"] = pro_dic.Pimage dict1["data"] = pro_dic_of_control dic_for_cate_and_pro.append(dict1) return { "status": 200, "message": "get get_category_and_product success !", "data": dic_for_cate_and_pro }
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 update_order_status(self): args = request.args.to_dict() print(self.title.format("args")) print(args) print(self.title.format("args")) data = request.data data = json.loads(data) print(self.title.format("data")) print(data) print(self.title.format("data")) if "token" not in args: return PARAMS_MISS if "OMstatus" not in data or "OMid" not in data: return PARAMS_MISS # 处理token过程,这里未设计 OMstatus = get_str(data, "OMstatus") if OMstatus not in OMstatus_list: return import_status("messages_error_wrong_status_code", "LOVEBREAKFAST_ERROR", "error_wrong_status_code") OMid = data["OMid"] update_OMstatus = {} update_OMstatus["OMstatus"] = self.get_status_by_status_name(OMstatus) response_update_order_status = self.sorders.update_status_by_oid( OMid, update_OMstatus) if not response_update_order_status: return SYSTEM_ERROR return import_status("messages_update_order_status_ok", "OK")
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.service_product.get_product_all_by_pid(row.get("PRid"))) 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_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_shop_detail(self): args = request.args.to_dict() # 捕获前端的URL参数,以字典形式呈现 # 判断url参数是否异常 if len(args) != 1 or "Sid" not in args.keys(): message, status, statuscode = import_status("URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG") return { "message": message, "status": status, "statuscode": statuscode, } sid_to_str = get_str(args, "Sid") # 判断是否存在此pid print(type(sid_to_str)) all_shop_id = self.service_shop.get_all_sid() print(type(all_shop_id)) print(all_shop_id) if str(args["Sid"]) not in all_shop_id: message, status, statuscode = import_status("NO_THIS_Shop", "response_error", "NO_THIS_Shop") return { "message": message, "status": status, "statuscode": statuscode, } shopdetail = {} shopdetail_from_service = self.service_shop.get_shop_detail(sid_to_str) shopdetail["Sname"] = shopdetail_from_service.Sname shopdetail["Simage"] = shopdetail_from_service.Simage shopdetail["Stel"] = shopdetail_from_service.Stel shopdetail["Sdetail"] = shopdetail_from_service.Sdetail return { "status": 200, "message": "get shop_detail success !", "data": shopdetail }
def make_main_order(self): return TIME_ERROR 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: return PARAMS_MISS params_list = ["Order_items", "OMtime", "OMdate", "OMtotal", "AAid"] for params in params_list: if params not in data: return PARAMS_MISS token = args.get("token") Uid = token_to_usid(token) OMtime = timeformate.get_db_time_str(data["OMtime"]) if self.checktime(): return import_status("error_make_ordermain_time", "LOVEBREAKFAST_ERROR", "error_make_ordermain_time") OMdate = timeformate.get_db_time_str(data["OMdate"]) if not self.check_order_date(OMdate): return import_status("") order_item = data["Order_items"] OMcode = self.make_code() import uuid aaid = get_str(data, "AAid") OMid = str(uuid.uuid1()) try: for op in order_item: prostatus = self.sproduct.get_product_status_by_prid( op.get("PRid")) print(self.title.format("prostatus")) print(prostatus.PRstatus) print(self.title.format("prostatus")) if prostatus.PRstatus != 1: return import_status("error_no_pro", "LOVEBREAKFAST_ERROR", "error_no_pro") mach = self.smach.get_maid_by_aaid_prid( get_str(data, "AAid"), op.get("PRid")) print(self.title.format("mach")) print(mach) print(self.title.format("mach")) if not mach: return SYSTEM_ERROR self.sorders.add_model( "Orderpart", **{ "OPid": str(uuid.uuid1()), "OMid": OMid, "PRid": op.get("PRid"), "PRnumber": op.get("PRnumber") }) cart = get_model_return_dict( self.scart.get_cart_by_uid_pid(Uid, get_str(op, "PRid"))) 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")) self.sorders.add_model( "Ordermain", **{ "OMid": OMid, "OMtime": OMtime, "OMdate": OMdate, "OMstatus": 7, "USid": Uid, "AAid": aaid, "OMcode": OMcode, "OMabo": get_str(data, "OMabo"), "OMtotal": data.get("OMtotal") }) self.scoupons.update_carbackage(get_str(data, "CAid")) response_make_main_order = import_status( "messages_add_main_order_success", "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 >= 49: return import_status("ERROR_MESSAGE_WRONG_OMSTATUS", "LOVEBREAKFAST_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 "PRid" not in row or "REscore" not in row: return PARAMS_MISS if "REcontent" in row: REcontent = row["REcontent"] else: REcontent = None PRid = row["PRid"] 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, "PRid": PRid, "USid": USid, "REscore": REscore, "REcontent": REcontent, "REstatus": 1 }) 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.service_product.get_product_volume_by_prid( PRid) product_score = self.service_product.get_product_score_by_prid( PRid) score = (product_score * product_volue + REscore) / product_volue product = {"PRscore": score} update_product = self.service_product.update_product_by_prid( 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": 49} update_order = self.service_order.update_ordermain_by_omid( 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