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(request) return { "message": "delete review success !", "status": 200, }
def get_review(self): args = request.args.to_dict() # 捕获前端的URL参数,以字典形式呈现 # 判断url参数是否异常 if len(args) != 2 or "Oid" not in args.keys() or "token" not in args.keys(): message, status, statuscode = import_status("URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG") return { "message": message, "status": status, "statuscode": statuscode, } # 验证是否存在该订单 token_to_str = get_str(args, "token") oid_to_str = get_str(args, "Oid") oid_list_service = self.service_order.get_all_order_by_uid(token_to_str) if oid_list_service != None: oid_list_control = [] for i in range(len(oid_list_service)): oid = oid_list_service[i].Oid oid_list_control.append(oid) if oid_to_str in oid_list_control: # 查看订单状态是否正常 order_abo = self.service_order.get_order_abo_by_oid(oid_to_str) if order_abo.Ostatus != 49: message, status, statuscode = import_status("messages_error_wrong_status_code", "response_error", "error_wrong_status_code") return { "message": message, "status": status, "statuscode": statuscode, } oid_to_str = get_str(args, "Oid") review_list_service = self.service_review.get_review(oid_to_str) print(review_list_service) review_list_control = [] for i in range(len(review_list_service)): review_dic = {} review_dic["Pid"] = review_list_service[i].Pid review_dic["Rscore"] = review_list_service[i].Rscore review_dic["Rcontent"] = review_list_service[i].Rcontent review_list_control.append(review_dic) from config.messages import get_review_success return { "message": get_review_success, "status": 200, "data": review_list_control } else: from config.status import response_error from config.status_code import SYSTEM_ERROR from config.messages import error_system_error return { "message": error_system_error, "status": response_error, "status_code": SYSTEM_ERROR }
def team_abo(self): if not self.steams.status: # 校验数据库是否连接异常 return system_error args = request.args.to_dict() if "TEid" not in args or "Uid" not in args: return param_miss teid = get_str(args, "TEid") uid = get_str(args, "Uid") utype = self.suser.get_utype_by_uid(uid) in_team = True result_of_team_abo = {} result_of_team_student_list = [] team_abo = self.steams.get_team_abo_by_teid(teid) result_of_team_abo["TEid"] = team_abo.TEid result_of_team_abo["TEname"] = team_abo.TEname result_of_team_abo["TEnum"] = team_abo.TEnum cid = team_abo.Cid competition_abo = self.scompetitions.get_competitions_abo_by_cid(cid) result_of_team_abo["Cname"] = competition_abo[0].Cname result_of_team_abo["Cno"] = competition_abo[0].Cno result_of_team_abo["Clevel"] = competition_abo[0].Clevel result_of_team_abo["Cabo"] = competition_abo[0].Cabo leader_id = self.steams.get_sid_by_teid(teid) result_of_team_abo["TEleader"] = self.sstudent.get_sname_by_sid( leader_id) teacher_id = self.steams.get_tid_by_teid(teid) result_of_team_abo["Teachername"] = self.steacher.get_tname_by_tid( teacher_id) wait_num, refuse_num = self.steams.get_count_wait_refuse_by_teid(teid) result_of_team_abo["Wait"] = wait_num result_of_team_abo["Refuse"] = refuse_num team_student = self.steams.get_student_list_by_teid(teid) for row in team_student: result_of_team_student_item = {} result_of_team_student_item["Sid"] = row.Sid result_of_team_student_item["TStype"] = row.TStype result_of_team_student_item[ "Sname"] = self.sstudent.get_sname_by_sid(row.Sid) result_of_team_student_list.append(result_of_team_student_item) result_of_team_abo["student_list"] = result_of_team_student_list result_response = {} result_response["status"] = 200 result_response["messages"] = "" result_response["team_abo"] = result_of_team_abo return result_response
def get_user_review(self): args = request.args.to_dict() # 捕获前端的URL参数,以字典形式呈现 # 判断url参数是否异常 if len(args) != 1 or "Uid" 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, } review_of_control = self.service_review.get_user_review(uid_to_str) review_list = [] for i in range(len(review_of_control)): dict_of_review = {} dict_of_review["Rid"] = review_of_control[i].get("Rid") dict_of_review["Rpname"] = review_of_control[i].get("Rpname") dict_of_review["Rpimage"] = review_of_control[i].get("Rpimage") dict_of_review["Rscore"] = review_of_control[i].get("Rscore") dict_of_review["Rcontent"] = review_of_control[i].get("Rcontent") review_list.append(dict_of_review) return { "message": "get user revirew success !", "status": 200, "statuscode": review_list }
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 students_list(self): """ 获取所有学生的简略信息 :return: """ if not self.sstudents.status: # 校验数据库是否连接异常 return system_error args = request.args.to_dict() # 判断是否含有参数 params = [] try: # 参数成对存在,判断是否缺失,并判断具体内容是否合法,非法或为空均报错 page_num, page_size = self.judgeData.check_page_params(args) from models.model import Students if "start" in args: params.append(Students.Sgrade >= args.get("start")) if "end" in args: params.append(Students.Sgrade <= args.get("end")) if "Sname" in args: name = get_str(args, "Sname") params.append(Students.Sname.like("%{0}%".format(name))) if "Sschool" in args: school = get_str(args, "Sschool") params.append(Students.Sschool.like("%{0}%".format(school))) page_num, count = JudgeData.check_page_value( page_num, page_size, "Students", params) start_num = (page_num - 1) * page_size search_student_list_success[ "student_list"] = self.get_students_list( start_num, page_size, params) search_student_list_success["count"] = count search_student_list_success["page_num"] = page_num return search_student_list_success except (ParamsNotExitError) as e: print(e) return param_miss except ValueError as e: print(e) return param_notright.fromkeys(e) except Exception as e: print(e) return system_error
def teachers_list(self): """ 获取所有教师的简略信息 :return: 所有教师简略信息的list """ if not self.steachers.status: return system_error args = request.args.to_dict() from models.model import Teachers # 判断是否含有参数 try: # 参数成对存在,判断是否缺失,并判断具体内容是否合法,非法或为空均返回具体错误 page_num, page_size = self.judgeData.check_page_params(args) params = [] if "Ttime" in args: params.append(Teachers.Ttime == args.get("Ttime")) if "Tname" in args: name = get_str(args, "Tname") params.append(Teachers.Tname.like("%{0}%".format(name))) if "Tschool" in args: school = get_str(args, "Tschool") params.append(Teachers.Tschool.like("%{0}%".format(school))) page_num, count = JudgeData.check_page_value( page_num, page_size, "Teachers", params) start_num = (page_num - 1) * page_size search_teachers_list_success[ "teacher_list"] = self.get_teachers_list( start_num, page_size, params) search_teachers_list_success["count"] = count search_teachers_list_success["page_num"] = page_num return search_teachers_list_success except ParamsNotExitError as e: print e.message return param_miss except ValueError as e: print e.message return param_notright except Exception as e: print e.message return system_error
def get_info_by_id(self): args = request.args.to_dict() # 捕获前端的URL参数,以字典形式呈现 # 判断url参数是否异常 if len(args) != 1 or "Pid" not in args.keys(): message, status, statuscode = import_status( "URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG") return { "message": message, "status": status, "statuscode": statuscode, } pid_to_str = get_str(args, "Pid") # 判断是否存在此pid print type(pid_to_str) all_product_id = self.service_product.get_all_pid() if all_product_id != None: print type(all_product_id[0]) if pid_to_str not in all_product_id: message, status, statuscode = import_status( "NO_THIS_PRODUCT", "response_error", "NO_THIS_PRODUCT") return { "message": message, "status": status, "statuscode": statuscode, } # 返回商品详情 proabo_of_controller = {} proabo_of_service = self.service_product.get_pro_info_by_pid( pid_to_str) proabo_of_controller["Pname"] = proabo_of_service.Pname proabo_of_controller["Pprice"] = proabo_of_service.Pprice proabo_of_controller["Pimage"] = proabo_of_service.Pimage proabo_of_controller["Pinfo"] = proabo_of_service.Pinfo proabo_of_controller["Pnum"] = 0 from config.messages import get_product_info_success return { "status": 200, "message": get_product_info_success, "data": proabo_of_controller, } else: from config.status import response_error from config.status_code import SYSTEM_ERROR from config.messages import error_system_error return { "message": error_system_error, "status": response_error, "status_code": 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_all_by_category(self, cid): args = request.args.to_dict() # 捕获前端的URL参数,以字典形式呈现 # 判断url参数是否异常 if len(args) != 1 or "Cid" not in args.keys(): message, status, statuscode = import_status( "URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG") return { "message": message, "status": status, "statuscode": statuscode, } cid_to_str = get_str(args, "Cid") # 判断是否存在此cid all_category_id = self.service_cotegory.get_all_cid() if cid_to_str not in all_category_id: message, status, statuscode = import_status( "NO_THIS_CATEGORY", "response_error", "NO_THIS_CATEGORY") return { "message": message, "status": status, "statuscode": statuscode, } # 根据cid获取所有商品的信息 cid_list = self.service_product.get_pro_id_by_cid(cid_to_str) pro_info_list = [] for each_cid in cid_list: proabo_of_controller = {} proabo_of_service = self.service_product.get_pro_info_by_uid( each_cid) proabo_of_controller["Pname"] = proabo_of_service.Pname proabo_of_controller["Pprice"] = proabo_of_service.Pprice proabo_of_controller["Pimage"] = proabo_of_service.Pimage proabo_of_controller["Sid"] = proabo_of_service.Sid proabo_of_controller["Pabo"] = proabo_of_service.Pabo proabo_of_controller["Pstatus"] = proabo_of_service.Pstatus pro_info_list.append(proabo_of_controller) return { "status": 200, "message": "get pro_list success !", "productinfo": pro_info_list, }
def competitions_list(self): if not self.scompetitions.status: return system_error args = request.args.to_dict() # 判断是否含有参数 params = [] try: from models.model import Competitions # 参数成对存在,判断是否缺失,并判断具体内容是否合法,非法或为空报错 page_num, page_size = self.judgeData.check_page_params(args) if "Cend" in args: params.append(Competitions.Cstart >= args.get("Cstart")) if "Cstart" in args: params.append(Competitions.Tname <= args.get("Cend")) if "Cname" in args: name = get_str(args, "Cname") params.append(Competitions.Cname.like("%{0}%".format(name))) if "Clevel" in args: params.append(Competitions.Clevel == args.get("Clevel")) page_num, count = JudgeData.check_page_value( page_num, page_size, "Competitions", params) start_num = (page_num - 1) * page_size search_competitions_list_success[ "competition_list"] = self.get_competition_list( start_num, page_size, params) search_competitions_list_success["count"] = count search_competitions_list_success["page_num"] = page_num return search_competitions_list_success except ParamsNotExitError as e: print(e) return param_miss except ValueError as e: print(e) return param_notright except Exception as e: print(e) 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 teams_list(self): if not self.steams.status: # 校验数据库是否连接异常 return system_error args = request.args.to_dict() # 判断是否含有参数 try: params_Te = set() params_C = set() params_T = set() # 参数成对存在,判断是否缺失,并判断具体内容是否合法,非法或为空均报错 page_num, page_size = self.judgeData.check_page_params(args) from models.model import Teams, Competitions, Teachers if "Tname" in args: params_Te.add( Teams.TEname.like("%{0}%".format(get_str(args, "TEname")))) if "Cname" in args: params_C.add( Competitions.Cname.like("%{0}%".format( get_str(args, "Cname")))) if "Cno" in args: params_C.add(Competitions.Cno == args.get("Cno")) if "Clevel" in args: params_C.add(Competitions.Clevel == args.get("Clevel")) if "TEteachername" in args: params_T.add( Teachers.Tname.like("%{0}%".format( get_str("TEteachername", args)))) team_list_data = self.steams.get_all_teams( params_Te) # 第一层筛选 通过团队名称来筛选 result_of_team_list = [] for row in team_list_data: result_of_team_item = {} result_of_team_item["TEid"] = row.TEid result_of_team_item["TEname"] = row.TEname tenum = row.TEnum tenum_now = self.steams.get_count_by_teid(row.TEid) # 第二层筛选,通过isFUll筛选 if "isFull" in args and bool(args.get("isFull")) != bool( tenum_now in range(0, tenum + 1)): continue result_of_team_item["isFull"] = 0 if bool( tenum_now in range(0, tenum + 1)) else 1 competitions_item = self.steams.get_cname_cno_clevel_by_cid( row.Cid, params_C) # 第三层筛选,通过竞赛相关的三个筛选条件筛选 if not competitions_item: continue result_of_team_item["Cname"] = competitions_item.Cname result_of_team_item["Cno"] = competitions_item.Cno result_of_team_item["Clevel"] = competitions_item.Clevel leader_id = self.steams.get_sid_by_teid(row.TEid) # 第四层筛选, 通过团队leader筛选 if "TEleader" in args and args.get( "TEleader") not in self.sstudent.get_sname_by_sid( leader_id): continue result_of_team_item[ "TEleader"] = self.sstudent.get_sname_by_sid(leader_id) teacher_id = self.steams.get_tid_by_teid(row.TEid) params_T.add(Teachers.Tid == teacher_id) # 第5层筛选,通过教师名称来筛选 if not self.steacher.get_tname_by_tid(params_T): continue result_of_team_item[ "TEteachername"] = self.steacher.get_tname_by_tid(params_T) result_of_team_list.append(result_of_team_item) result_response = {} result_response["status"] = 200 result_response["messages"] = "" result_response["team_list"] = result_of_team_list return result_response except (ParamsNotExitError) as e: print e.message return param_miss except ValueError as e: print e.message # return param_notright.fromkeys(e.message) except Exception as e: print e.message return system_error
def create_review(self): args = request.args.to_dict() # 捕获前端的URL参数,以字典形式呈现 # 判断url参数是否异常 if len(args) != 2 or "token" not in args.keys() or "Oid" not in args.keys(): message, status, statuscode = import_status("URL_PARAM_WRONG", "response_error", "URL_PARAM_WRONG") return { "message": message, "status": status, "statuscode": statuscode, } token_to_str = get_str(args, "token") print('token'+token_to_str) oid_to_str = get_str(args, "Oid") oid_list_service = self.service_order.get_all_order_by_uid(token_to_str) oid_list_control = [] print(oid_list_service) if oid_list_service == None: message, status, statuscode = import_status("messages_error_wrong_status_code", "response_error", "error_wrong_status_code") return { "message": message, "status": status, "statuscode": statuscode, } for i in range(len(oid_list_service)): oid = oid_list_service[i].Oid oid_list_control.append(oid) print(oid_to_str) if oid_to_str not in oid_list_control: message, status, statuscode = import_status("messages_error_wrong_status_code", "response_error", "error_wrong_status_code") return { "message": message, "status": status, "statuscode": statuscode, } else: # 查看订单状态是否正常 order_abo = self.service_order.get_order_abo_by_oid(oid_to_str) if order_abo.Ostatus != 42: message, status, statuscode = import_status("messages_error_wrong_status_code", "response_error", "error_wrong_status_code") return { "message": message, "status": status, "statuscode": statuscode, } form = request.data # 获取前端发送的body体 form = json.loads(form) pro_list = form["Product_list"] print pro_list for i in range(len(pro_list)): review = model.Review() Rid = uuid.uuid4() review.Rid = str(Rid) review.Oid = oid_to_str review.Pid = pro_list[i].get("Pid") review.Uid = token_to_str review.Rscore = pro_list[i].get("Rscore") review.Rcontent = pro_list[i].get("Rcontent") review.Rstatus = "on" result = self.service_review.create_review(review) print(result) # 更新订单状态 try: order_status = {} order_status["Ostatus"] = 49 self.service_order.update_status_by_oid(oid_to_str, order_status) except Exception as e: print(e) from config.status import response_error from config.status_code import SYSTEM_ERROR from config.messages import error_system_error return { "message": error_system_error, "status": response_error, "statuscode": SYSTEM_ERROR, } from config.messages import create_review_success return { "message": create_review_success, "status": 200, }
def teams_list(self): if not self.steams.status: # 校验数据库是否连接异常 return system_error args = request.args.to_dict() # 判断是否含有参数 try: # 参数成对存在,判断是否缺失,并判断具体内容是否合法,非法或为空均报错 page_num, page_size = self.judgeData.check_page_params(args) if "Tname" in args: tename = get_str(args, "TEname") # params.append(Students.Sname.like("%{0}%".format(name))) if "Cname" in args: cname = get_str(args, "Cname") # params.append(Students.Sschool.like("%{0}%".format(school))) if "Cno" in args: cno = get_str(args, "Cno") if "Clevel" in args: clevel = get_str(args, "Clevel") if "Sname" in args: sname = get_str(args, "Sname") if "isFull" in args: isFull = get_str(args, "Sname") team_list_data = self.steams.get_all_teams( page_size * (page_num - 1) + 1, page_size) result_of_team_list = [] for row in team_list_data: result_of_team_item = {} result_of_team_item["TEid"] = row.TEid result_of_team_item["TEname"] = row.TEname tenum = row.TEnum tenum_now = self.steams.get_count_by_teid(row.TEid) if tenum != 0 and tenum > tenum_now: result_of_team_item["isFull"] = 0 else: result_of_team_item["isFull"] = 1 competitions_item = self.steams.get_cname_cno_clevel_by_cid( row.Cid) result_of_team_item["Cname"] = competitions_item.Cname result_of_team_item["Cno"] = competitions_item.Cno result_of_team_item["Clevel"] = competitions_item.Clevel leader_id = self.steams.get_sid_by_teid(row.TEid) result_of_team_item[ "TEleader"] = self.sstudent.get_sname_by_sid(leader_id) teacher_id = self.steams.get_tid_by_teid(row.TEid) result_of_team_item[ "TEteachername"] = self.steacher.get_tname_by_tid( teacher_id) result_of_team_list.append(result_of_team_item) result_response = {} result_response["status"] = 200 result_response["messages"] = "" result_response["team_list"] = result_of_team_list return result_response except (ParamsNotExitError) as e: print(e) return param_miss except ValueError as e: print(e) # return param_notright.fromkeys(e.message) except Exception as e: print(e) return system_error