def fill_data(): try: path = os.path.dirname(__file__) data: pandas.DataFrame = pandas.read_csv( os.path.join(path, 'jd_book.csv')) for index in data.index: line = data.loc[index] item = Item() item.item_cid = 3 item.item_name = line.title item.item_price = line.standard_price item.item_standard_price = line.standard_price item.item_shop_price = line.shop_price item.item_desc = '我是商品: {}'.format(item.item_name) item.item_brand_id = 1 item.item_sn = get_random_num(digit=10) item.item_sn_type = 1 item.item_pic_url = line.pic_src item.item_vertical_market = 1 item.item_stock_inventory = 1000 item.item_sell_pt = '是我啊!;{}'.format(line.title) item.item_template_id = 1 item.item_level = 1 item.item_rate_num = 0 item.item_sale_num = 0 item.item_status = 1 item.item_is_delete = 0 db.session.add(item) db.session.commit() return responseSuccessHandler(body={"res": "suc"}) except: return responseSuccessHandler(body={'err': 'err'})
def get_super_cate_info(cate_id): """ 获得一个分类的父节点 :return: """ if cate_id is None: return CommonError.args_miss(msg='cate_id_required') cate: Cate = Cate.get_a_cate(cate_id=cate_id) if cate is None: return CommonError.getError(errorCode=1006) su = Cate.get_a_cate(cate_id=cate.cate_supercate_id) if su: body = dict({ "cate_id": su.cate_id, "cate_supercate_id": su.cate_supercate_id, "cate_is_parent": su.cate_is_parent, "cate_name": su.cate_name, "cate_is_delete": su.cate_is_delete, "cate_common_props": su.cate_common_props, "cate_sort_num": su.cate_sort_num, "cate_create_time": su.cate_create_time, "cate_update_time": su.cate_update_time, }) return responseSuccessHandler(body=body) return responseSuccessHandler(body={})
def cart_update_server(): """ 更新终端中的购物车到服务器 :return: """ user: User = User.get_user_by_token(request.get_json().get('token')) items = request.get_json().get('items') items = list(items) try: sql = "DELETE FROM bao_cart WHERE cart_item_belong='{}';".format( user.user_id) result = db.session.execute(sql) for item in items: o = Cart() o.cart_id = item.get('id', 0) o.cart_item_id = item.get('item_id', 0) o.cart_sku_id = item.get('sn', 0) o.cart_sku_num = item.get('num', 0) o.cart_item_belong = user.user_id or 0 db.session.add(o) db.session.commit() except Exception as e: db.session.rollback() return CommonError.getError(errorCode=999) return responseSuccessHandler()
def order_detail(order_sn: str): """ 查看订单详情 :param order_sn: 订单编号 :return: """ order_sn = order_sn or '' order: Order = db.session.query(Order).filter_by(order_sn=order_sn).first() body = {} if order: goods_info = [] sum_price = str(order.sum_price) # 检索订单关联商品 sql = "SELECT * FROM bao_rsp_order_item WHERE order_sn='{}'".format( order_sn) result = db.session.execute(sql) for r in result: item: Item = db.session.query(Item).filter_by( item_sn=r.item_sku_id).first() if item: goods_info.append({ 'good_title': item.item_name, 'good_price': str(item.item_shop_price), 'good_inventory': item.item_stock_inventory }) body['sum_price'] = str(order.sum_price) body['order_sn'] = order_sn body['totol_price'] = sum_price body['sum_price'] = str(order.sum_price) body['goods_list'] = goods_info return responseSuccessHandler(body=body) else: return CommonError.args_miss('order_sn错误,找不到订单')
def update_activity(activity_id): """改""" if activity_id <= 0: return CommonError.args_miss(msg='activity_id_required') activity_title = request.args.get('activity_title') activity_type = request.args.get('activity_type') activity_link = request.args.get('activity_link') activity_recommand = request.args.get('activity_recommand') activity_url = request.args.get('activity_url') activity = db.session.query(Activity).filter_by( activity_id=activity_id).one() if activity == None: return CommonError.getError(errorCode=1006) if activity_title: activity.activity_title = activity_title elif activity_type: activity.activity_type = activity_type elif activity_recommand: activity.activity_recommand = activity_recommand elif activity_url: activity.activity_url = activity_url elif activity_link: activity.activity_link = activity_link else: return CommonError.args_miss(msg="you need update something..") db.session.commit() return responseSuccessHandler(body='update success')
def update_brand_info(brand_id): if brand_id is None: return CommonError.args_miss(msg='brand_id_required') brand_name = request.args.get("brand_name") brand_pic_url = request.args.get("brand_pic_url") brand_cate_id = request.args.get("brand_cate_id") brand_note = request.args.get("brand_note") try: brand = db.session.query(Brand).filter_by(brand_id=brand_id).one() if brand_name: brand.brand_name = brand_name if brand_note: brand.brand_note = brand_note if brand_cate_id: brand.brand_cate_id = brand_cate_id if brand_pic_url: brand.brand_pic_url = brand_pic_url db.session.add(brand) body = dict({ "brand_id": brand.brand_id, "brand_name": brand.brand_name, "brand_pic_url": brand.brand_pic_url, "brand_cate_id": brand.brand_cate_id, "brand_note": brand.brand_note, "brand_is_delete": brand.brand_is_delete, "brand_create_time": brand.brand_create_time, }) return responseSuccessHandler(body=body) except NoResultFound: return CommonError.getError(errorCode=1006)
def user_login(): """ 用户登录 :return: """ user_password = request.args.get("user_password") user_email = request.args.get("user_email") requires = [ "user_password", "user_email", ] for r in requires: if request.args.get(r) is None: return CommonError.args_miss('{}_required'.format(r)) try: user = db.session.query(User).filter_by(user_email=user_email).first() if user.user_password == user_password: verfy_ = current_app.config['SERVICE_TOKEN_SUFFIX'] or 'token' user_verfy_code = getMD5("{0}{1}".format(get_random_num(), verfy_)) user.user_verfy_code = user_verfy_code db.session.add(user) db.session.commit() return responseSuccessHandler(body={"token": user_verfy_code}) else: return CommonError.args_miss("password_or_email_worong") except NoResultFound: return CommonError.getError(errorCode=1201)
def get_children_cate_info(cate_id): """ 获得一个分类的子节点 :param cate_id: 节点的id :return: might be None """ if cate_id is None: return CommonError.args_miss(msg='cate_id_required') cate: Cate = Cate.get_a_cate(cate_id=cate_id) if cate is None: return CommonError.getError(errorCode=1006) cates = Cate.get_children_cate(cate_id) or list() if len(cates) == 0: return responseErrorHandler(errorCode=999) bodys = list() for cate in cates: body = dict({ "cate_id": cate.cate_id, "cate_supercate_id": cate.cate_supercate_id, "cate_is_parent": cate.cate_is_parent, "cate_name": cate.cate_name, "cate_is_delete": cate.cate_is_delete, "cate_common_props": cate.cate_common_props, "cate_sort_num": cate.cate_sort_num, "cate_create_time": cate.cate_create_time, "cate_update_time": cate.cate_update_time, }) bodys.append(body) return responseSuccessHandler(body=bodys)
def get_a_item(item_id): try: item = db.session.query(Item).filter_by(item_id=item_id).first() if item is None: return CommonError.getError(errorCode=1201) body = item.item_dict() return responseSuccessHandler(body=body) except NoResultFound: return CommonError.getError(errorCode=1006)
def delete_activity(activity_id): """删""" if activity_id <= 0: return CommonError.args_miss(msg='activity_id_required') result: bool = Activity.deleteActivity(activity_id) if result: return responseSuccessHandler(body='delete success') else: return CommonError.getError(errorCode=999)
def register_user(): """注册用户""" user_name = request.args.get("user_name") user_password = request.args.get("user_password") password_repeat = request.args.get("password_repeat") user_mobile = request.args.get("user_mobile") user_email = request.args.get("user_email") user_is_man = request.args.get("user_is_man") requires = [ "user_name", "user_password", "password_repeat", "user_email", "user_is_man", ] for r in requires: if request.args.get(r) is None: return CommonError.args_miss('{}_required'.format(r)) if password_repeat != user_password: return CommonError.args_miss(msg="两次密码不匹配") verfy_ = current_app.config['SERVICE_TOKEN_SUFFIX'] or 'token' user_verfy_code = getMD5("{0}{1}".format(get_random_num(), verfy_)) user_ip = request.args.get("user_ip") or request.remote_addr user_id_card = request.args.get("user_id_card") user_last_ip = user_ip user_logo = request.args.get("user_logo") user_status = request.args.get("user_status") or 1 if db.session.query(User).filter_by(user_email=user_email).first(): return CommonError.args_miss("email_used") user = User() user.user_name = user_name user.user_verfy_code = user_verfy_code user.user_password = getMD5(user_password) user.user_mobile = user_mobile user.user_email = user_email user.user_ip = user_ip user.user_is_man = user_is_man user.user_id_card = user_id_card user.user_last_ip = user_last_ip user.user_logo = user_logo user.user_status = user_status db.session.add(user) db.session.commit() body = dict({ "user_name": user.user_name, "user_verfy_code": user.user_verfy_code, "user_password": user.user_password, "user_mobile": user.user_mobile, "user_email": user.user_email, "user_ip": user.user_ip, "user_is_man": user.user_is_man, "user_id_card": user.user_id_card, "user_last_ip": user.user_last_ip, "user_status": user.user_status, "user_logo": user.user_logo, }) return responseSuccessHandler(body=body)
def payment(): """ 支付接口 :return: """ params = request.values or request.get_json() print(params) requires = [ "order_sn", "pay_platform", "pay_machine_code", "pay_system_version", "pay_app_version", "pay_type" ] for r in requires: if params.get(r) is None: return CommonError.args_miss(msg='{}_required'.format(r)) order_sn = params.get('order_sn') pay_machine = params.get('pay_platform') # ios/Andriod... pay_machine_code = params.get('pay_machine_code') # iPhone 7,2... pay_system_version = params.get('pay_system_version') # ios 10.0... pay_app_version = params.get('pay_app_version') # 1.5.4... pay_type = params.get('pay_type') # 0/1/2... remark = params.get('remark') # 留言 order: Order = db.session.query(Order).filter_by(order_sn=order_sn).first() if order: try: order.pay_platform = pay_machine order.pay_machine_code = pay_machine_code order.pay_system_version = pay_system_version order.pay_app_version = pay_app_version order.pay_type = pay_type order.totol_price = Decimal(order.sum_price) order.remark = remark order.is_payed = 1 order.pay_time = getUnix_timeTuple() # 找到商品们,更新销量 items = db.session.query(OrderContainItem).filter_by( order_sn=order_sn).all() or list() for item_by_order_sn in items: item_by_order_sn: OrderContainItem item = db.session.query(Item).filter_by( item_sn=item_by_order_sn.item_sku_id).first() if item: item.item_sale_num += item_by_order_sn.item_sku_num else: return CommonError.args_miss( "no item find by sn:{}".format( item_by_order_sn.item_sku_id)) pass db.session.commit() return responseSuccessHandler() except: db.session.rollback() return CommonError.getError(errorCode=999) else: return CommonError.args_miss( "can't find order info, please check your order_sn")
def index_modules(): """获得模块信息""" modules = ('今日推荐', '新闻', '测试', '测试01', '我是绯闻', '娱乐新闻', '今日特价', '秒杀抢购') body = list() for mo in modules: body.append( dict(icon_name=mo, icon_url='http://url_path/{}'.format(get_random_num()), icon_idf=get_random_num(digit=2))) return responseSuccessHandler(body=body)
def get_a_user(user_id): user = User.query.get(user_id) if user is None: return CommonError.getError(errorCode=1201) body = dict({ "user_name": user.user_name, "user_mobile": user.user_mobile, "user_email": user.user_email, "user_is_man": user.user_is_man, "user_id_card": user.user_id_card, "user_logo": user.user_logo, "user_id": user.user_id, }) return responseSuccessHandler(body=body)
def insert_a_cate(): cate_name = request.args.get('cate_name') super_id = request.args.get('super_id') sort_num = request.args.get('sort_num') if cate_name is None: return CommonError.args_miss(msg='cate_name_required') if super_id is None: return CommonError.args_miss(msg='super_id_required') if Cate.get_a_cate(cate_name=cate_name): return CateBluePrintError.getError(errorCode=3000) try: cate_id = Cate.insert_a_cate(cate_name, super_id, sort_num) return responseSuccessHandler(body={'cate_id': cate_id}) except: return CommonError.getError(errorCode=999)
def get_cates(): result = db.session.query(Cate).filter_by(cate_supercate_id=0).all() body = list() for r in result: body.append({ "cate_id": r.cate_id, "cate_supercate_id": r.cate_supercate_id, "cate_is_parent": r.cate_is_parent, "cate_name": r.cate_name, "cate_is_delete": r.cate_is_delete, "cate_common_props": r.cate_common_props, "cate_sort_num": r.cate_sort_num, "cate_create_time": r.cate_create_time, "cate_update_time": r.cate_update_time, }) return responseSuccessHandler(body=body)
def delete(): tmp = request.args.get('cate_ids') cate_ids = list(tmp) if isinstance(tmp, str): i = int(tmp) cate_ids.append(i) elif isinstance(tmp, int): cate_ids.append(tmp) elif isinstance(tmp, list): cate_ids = tmp else: return CateBluePrintError.getError(errorCode=3002) if len(cate_ids) == 0: return CommonError.args_miss(msg='cate_ids_required') if Cate.delete_cates(cate_ids=tmp): return responseSuccessHandler()
def get_brands(): sql = "select * from bao_brand" if g.get("page") > 0: sql += "LIMIT {0}, {1}".format(g.get('page'), g.get('page_limit')) brands = db.session.execute(sql) body = list() for brand in brands: body.append({ "brand_id": brand.brand_id, "brand_name": brand.brand_name, "brand_pic_url": brand.brand_pic_url, "brand_cate_id": brand.brand_cate_id, "brand_note": brand.brand_note, "brand_is_delete": brand.brand_is_delete, "brand_create_time": brand.brand_create_time, "brand_update_time": brand.brand_update_time, }) return responseSuccessHandler(body=body)
def query_activity(activity_id): """查""" if activity_id <= 0: return CommonError.args_miss(msg='activity_id_required') query = db.session.query(Activity) query = query.filter_by(activity_id=activity_id) query = query.filter_by(activity_is_delete=0) query = query.first() if query == None: return CommonError.getError(errorCode=1006) body = dict({ "activity_id": query.activity_id, "activity_title": query.activity_title, "activity_link": query.activity_link, "activity_url": query.activity_url, "activity_type": query.activity_type }) return responseSuccessHandler(body=body)
def index_banner(): """获得导航栏信息""" banners = list() query = db.session.query(Activity).filter_by(activity_type=10) query = query.filter_by(activity_is_delete=0) query = query.order_by(Activity.activity_recommand.desc()) query = query.order_by(Activity.activity_create_time.desc()) pics = query.limit(5).all() for pic in pics: banner = dict({ "pic": pic.activity_url or '', "title": pic.activity_title or '', "is_recommend": pic.activity_recommand, "link": pic.activity_link or '', "id": pic.activity_id }) banners.append(banner) return responseSuccessHandler(body=banners)
def index_recommand_items(): page = max(int(request.args.get('page', 1)), 0) page_limit = int( request.args.get('page_limit', current_app.config.get('PAGE_LIMIT'), 10)) offset = page_limit * (page - 1) # 目前是销量和创建时间排序推荐 query = db.session.query(Item).filter_by(item_is_delete=0) query = query.filter_by(item_vertical_market=1) query = query.order_by(Item.item_sale_num.desc()) query = query.order_by(Item.item_create_time.desc()) query = query.limit(page_limit).offset(offset) query = query.all() result = list() for q in query: result.append(q.item_dict()) print("输出了{}个推荐商品".format(len(result))) return responseSuccessHandler(body=result)
def get_self_info(): """获得用户自己的信息""" token = request.args.get('token') user = User.get_user_by_token(token) body = dict({ "user_name": user.user_name, "user_verfy_code": user.user_verfy_code, "user_password": user.user_password, "user_mobile": user.user_mobile, "user_email": user.user_email, "user_ip": user.user_ip, "user_is_man": user.user_is_man, "user_id_card": user.user_id_card, "user_last_ip": user.user_last_ip, "user_status": user.user_status, "user_logo": user.user_logo, "user_id": user.user_id, }) return responseSuccessHandler(body=body)
def cart_synchro(): """ 同步终端的购物车到终端 :return: """ user = User.get_user_by_token(request.values.get('token')) query = db.session.query(Cart).filter_by(cart_item_belong=user.user_id, is_delete=0).all() carts = list() if query: for q in query: cart_item: Cart = q carts.append({ "id": cart_item.cart_id, "item_id": cart_item.cart_item_id, "sn": cart_item.cart_sku_id, "num": cart_item.cart_sku_num }) return responseSuccessHandler(body=carts)
def cart_add(): """ 添加到购物车 :return: """ params = request.values or request.get_json() user = User.get_user_by_token(params.get('token')) cart_item_id = params.get("cart_item_id") cart_sku_id = params.get("cart_sku_id") cart_add_from = params.get("cart_add_from") cart_sku_num = params.get("cart_sku_num") requires = [ "cart_item_id", "cart_sku_id", "cart_sku_num", ] for r in requires: if params.get(r) is None: return CommonError.args_miss(msg='{}_required'.format(r)) cart_item: Cart try: cart_item = db.session.query(Cart).filter_by(cart_item_id=cart_item_id, cart_sku_id=cart_sku_id, is_delete=0).one() if cart_item is not None: cart_item = cart_item cart_item.cart_sku_num += int(cart_sku_num) db.session.add(cart_item) db.session.commit() except NoResultFound: cart_item = Cart() cart_item.cart_item_id = cart_item_id cart_item.cart_sku_id = cart_sku_id cart_item.cart_add_from = int(cart_add_from) or 1 cart_item.cart_sku_num = cart_sku_num cart_item.cart_item_belong = user.user_id cart_item.is_delete = 0 db.session.add(cart_item) db.session.commit() except: return CommonError.getError(errorCode=999) return responseSuccessHandler()
def delete_items(): tmp = request.args.get('item_ids') item_ids = list(tmp) if isinstance(tmp, str): i = int(tmp) item_ids.append(i) elif isinstance(tmp, int): item_ids.append(tmp) elif isinstance(tmp, list): item_ids = tmp else: return CateBluePrintError.getError(errorCode=3002) if len(item_ids) == 0: return CommonError.args_miss(msg='cate_ids_required') tmp = db.session.query(Item).filter(Item.item_id.in_(item_ids)).all() if len(tmp) == 0: return CommonError.getError(errorCode=1006) for item in tmp: item.item_is_delete = 1 db.session.commit() return responseSuccessHandler()
def insert_a_brand(): brand_name = request.args.get("brand_name") brand_pic_url = request.args.get("brand_pic_url") brand_cate_id = request.args.get("brand_cate_id") brand_note = request.args.get("brand_note") if brand_name is None: return CommonError.args_miss(msg='brand_name_required') if brand_pic_url is None: return CommonError.args_miss(msg='brand_pic_url_require') if brand_cate_id is None: return CommonError.args_miss(msg='brand_cate_id_required') if brand_note is None: return CommonError.args_miss(msg='brand_note_required') brand = Brand() brand.brand_name = brand_name brand.brand_pic_url = brand_pic_url brand.brand_cate_id = brand_cate_id brand.brand_note = brand_note db.session.add(brand) db.session.commit() return responseSuccessHandler(body={'brand_id': brand.brand_id})
def get_a_cates(cate_id): t_cate: Cate = Cate.query.get_or_404(cate_id) if cate_id is None: return CommonError.args_miss(msg='cate_id_required') try: r = Cate.get_a_cate(cate_id=cate_id) if isinstance(r, Cate): body = dict({ "cate_id": r.cate_id, "cate_supercate_id": r.cate_supercate_id, "cate_is_parent": r.cate_is_parent, "cate_name": r.cate_name, "cate_is_delete": r.cate_is_delete, "cate_common_props": r.cate_common_props, "cate_sort_num": r.cate_sort_num, "cate_create_time": r.cate_create_time, "cate_update_time": r.cate_update_time, }) return responseSuccessHandler(body=body) return CommonError.getError(errorCode=1006) except: return CommonError.getError(errorCode=999)
def insert_activity(): """增""" activity_title = request.args.get('activity_title') activity_type = request.args.get('activity_type') activity_link = request.args.get('activity_link') activity_recommand = request.args.get('activity_recommand') or 0 activity_url = request.args.get('activity_url') if activity_title is None: return CommonError.args_miss(msg='activity_title_required') if activity_type is None: return CommonError.args_miss(msg='activity_type_required') if activity_link is None: return CommonError.args_miss(msg='activity_link_required') if activity_url is None: return CommonError.args_miss(msg='activity_url_required') try: cate_id = Activity.insertActivity(activity_title, activity_url, activity_link, activity_type, activity_recommand) return responseSuccessHandler(body={'cate_id': cate_id}) except: return CommonError.getError(errorCode=999)
def order_preview(): """ 订单预览(确认订单逻辑) :return: """ params = request.values or request.get_json() items: list = params.get('goods_info') body = {} goods_list = [] for item in items: # loop to check item: dict = item item_id = int(item.get('item_id', '0')) item_sn = str(item.get('sn', '0')) item_num = int(item.get('num', '0')) good: Item = db.session.query(Item).filter_by(item_id=item_id).first() if not good: # 找不到忽略 continue good_info = good.item_dict(needall=False) goods_list.append(good_info) body['goods_list'] = goods_list return responseSuccessHandler(body=body.copy())
def request_test(): print('in test function') # form = TestFormer() # print(form['token']) # print(request.__dict__) logg = "" logg += "===============请求方法====================\n" logg += "{}\n".format(request.method) print(logg) logg = "=================header==================\n" logg += "{}\n".format(request.headers or 'No Header') print(logg) logg = "=================数据==================\n" logg += "{}\n".format(request.values.to_dict() or 'No 数据') print(logg) logg = "=================data==================\n" logg += "{}\n".format(request.get_json() or 'no Data') print(logg) logg = "===================================" print(logg) from app.units.common import responseSuccessHandler body = request.get_json() or request.values or {'msg': 'No Data'} return responseSuccessHandler(body=body)