def set(): if request.method == "GET": resp_data = {} req = request.args id = int( req.get( "id",0 ) ) reback_url = UrlManager.buildUrl("/member/index") if id < 1: return redirect(reback_url) info = Member.query.filter_by(id=id).first() if not info: return redirect(reback_url) if info.status != 1: return redirect(reback_url) resp_data['info'] = info resp_data['current'] = 'index' return ops_render( "member/set.html",resp_data ) resp = { 'code':200,'msg':'操作成功~~','data':{} } req = request.values id = req['id'] if 'id' in req else 0 nickname = req['nickname'] if 'nickname' in req else '' if nickname is None or len( nickname ) < 1: resp['code'] = -1 resp['msg'] = "请输入符合规范的姓名~~" return jsonify( resp ) member_info = Member.query.filter_by(id=id).first() if not member_info: resp['code'] = -1 resp['msg'] = "指定会员不存在~~" return jsonify(resp) member_info.nickname = nickname member_info.updated_time = getCurrentDate() db.session.add( member_info ) db.session.commit() return jsonify( resp )
def login(): if request.method == "GET": g.current_user = check_login() if g.current_user: return redirect(UrlManager.buildUrl("/blog")) return ops_render("SignIn/index.html") resp = {'code': 200, 'msg': '登录成功~~', 'data': {}} req = request.values login_name = req['login_name'] if 'login_name' in req else '' login_pwd = req['login_pwd'] if 'login_pwd' in req else '' if login_name is None or len(login_name) < 1: resp['code'] = -1 resp['msg'] = "请输入正确的登录用户名~~" return jsonify(resp) if login_pwd is None or len(login_pwd) < 1: resp['code'] = -1 resp['msg'] = "请输入正确的邮箱密码~~" return jsonify(resp) user_info = User.query.filter_by(login_name=login_name).first() if not user_info: resp['code'] = -1 resp['msg'] = "请输入正确的登录用户名~~" return jsonify(resp) if user_info.login_pwd != UserService.genePwd(login_pwd, user_info.login_salt): resp['code'] = -1 resp['msg'] = "请输入正确的登录用户名和密码-2~~" return jsonify(resp) g.current_user = user_info response = make_response(json.dumps({'code': 200, 'msg': '登录成功~~'})) response.set_cookie(app.config['AUTH_COOKIE_NAME'], '%s#%s' % (UserService.geneAuthCode(user_info), user_info.uid), 60 * 60 * 24 * 120) # 保存120天 return response
def before_request(): return ignore_urls = app.config["IGNORE_URLS"] path = request.path pattern = re.compile("%s" % "|".join(ignore_urls)) if pattern.match(path): return if "/test" in path: return # 微信小程序用户 if "/wechat" in path: member_info = check_user_login() g.member_info = None if not member_info: resp = {"code": -1, "msg": "未登录", "data": {}} return jsonify(resp) g.member_info = member_info return # 后台管理员 user_info = check_admin_login() g.current_user = None if not user_info: return redirect(UrlManager.buildUrl("/admin/login")) else: now = datetime.datetime.now() now = getFormatDate(date=now) if now > user_info.expiretime: msg = "登录超时,请重新登录" return render_template("admin/login.html", msg=msg) elif user_info.status == 0: msg = "账号已禁用,请联系管理员" return render_template("admin/login.html", msg=msg) else: g.current_user = user_info return
def getFoodInfo(): resp_data = {} req = request.args food_id = int(req.get('id', 0)) print(food_id) reback_url = UrlManager.buildUrl("/") if food_id < 1: return redirect(reback_url) # food_info = FoodSaleChangeLog.query.filter_by(id=food_id).all() food = Food.query.filter_by(id=food_id).first() date_from = food.date_from.__str__() print(date_from) date_to = food.date_to.__str__() print(date_to) rs = db.session.query( FoodSaleChangeLog.community_name, func.sum( FoodSaleChangeLog.quantity)).filter_by(food_id=food_id).filter( FoodSaleChangeLog.created_time >= date_from).filter( FoodSaleChangeLog.created_time <= date_to).group_by( FoodSaleChangeLog.community_name).all() print(rs) sum_quantity = 0 stat_list = [] for row in rs: sum_quantity = sum_quantity + row[1] temp_data = {} temp_data['community_name'] = row[0] temp_data['quantity'] = row[1].__str__() stat_list.append(temp_data) if not rs: return redirect(reback_url) resp_data['sum_quantity'] = sum_quantity resp_data['stat_list'] = stat_list return ops_render("index/info.html", resp_data)
def before_request(): ignore_urls = app.config['IGNORE_URLS'] ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS'] path = request.path pattern = re.compile('|'.join(ignore_check_login_urls)) if pattern.match(path): return pattern = re.compile('|'.join(ignore_urls)) if pattern.match(path): return user_info = check_login() g.current_user = None if user_info: g.current_user = user_info #渲染变量 if not user_info: return redirect(UrlManager.buildUrl('/user/login')) return
def info(): """ 详情页面 """ resp_data = {} # json对象 req = request.args # 只取get参数 # req = request.values # 获取参数。request.values将所有参数拼装好,放到一个字典里面 uid = int(req.get('id', 0)) # 默认值 0 reback_url = UrlManager.buildUrl("/account/index") # 反回列表页面 if uid < 1: # 如果id<1,即用户不存在 return redirect(reback_url) # 回到列表页面 info = User.query.filter_by(uid=uid).first() # 查询这个用户id是否存在 if not info: # 如果没有这个用户信息 return redirect(reback_url) access_list = AppAccessLog.query.filter_by(uid=uid).order_by( AppAccessLog.id.desc()).limit(10).all() resp_data['info'] = info # 用户信息存在,则传给前台页面 resp_data['access_list'] = access_list return ops_render("account/info.html", resp_data)
def info(): resp_data = {} req = request.args id = int(req.get("id", 0)) reback_url = UrlManager.buildUrl("/member/index") if id < 1: return redirect(reback_url) info = Member.query.filter_by(id=id).first() if not info: return redirect(reback_url) pay_order_list = PayOrder.query.filter_by( member_id = id ).filter( PayOrder.status.in_( [-8,1] ) )\ .order_by( PayOrder.id.desc() ).all() comment_list = MemberComments.query.filter_by(member_id=id).order_by( MemberComments.id.desc()).all() resp_data['info'] = info resp_data['pay_order_list'] = pay_order_list resp_data['comment_list'] = comment_list resp_data['current'] = 'index' return render_template_ops("member/info.html", resp_data)
def info(): resp_data = {} req = request.values id = int(req['id']) if 'id' in req else 0 reback_url = UrlManager.buildUrl("/finance/index") if id < 1: return redirect(reback_url) pay_order_info = PayOrder.query.filter_by(id=id).first() if not pay_order_info: return redirect(reback_url) member_info = Member.query.filter_by(id=pay_order_info.member_id).first() if not member_info: return redirect(reback_url) order_item_list = PayOrderItem.query.filter_by( pay_order_id=pay_order_info.id).all() data_order_item_list = [] if order_item_list: product_map = getDictFilterField( Product, Product.id, "id", selectFilterObj(order_item_list, "product_id")) for item in order_item_list: tmp_product_info = product_map[item.product_id] tmp_data = { "quantity": item.quantity, "price": item.price, "name": tmp_product_info.name } data_order_item_list.append(tmp_data) resp_data['pay_order_info'] = pay_order_info resp_data['pay_order_items'] = data_order_item_list resp_data['member_info'] = member_info resp_data['current'] = 'index' return ops_render("finance/pay_info.html", resp_data)
def before_request(): ignore_urls = app.config['IGNORE_URLS'] ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS'] path = request.path user_info = check_login() # g.current_user = None # if user_info: # g.current_user = user_info pattern = re.compile('%s' % "|".join(ignore_check_login_urls)) if pattern.match(path): return pattern = re.compile('%s' % "|".join(ignore_urls)) if pattern.match(path): return if not user_info: return redirect(UrlManager.buildUrl("/user/login")) return
def before_request(): ignore_urls = app.config['IGNORE_URLS'] ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS'] path = request.path # 如果是静态文件就不用查询用户信息 pattern = re.compile('|'.join(ignore_check_login_urls)) if pattern.match(path): return user_info = check_login() # 登录成功之后设置一个user_info对象全局变量 g.current_user = None if user_info: g.current_user = user_info # 登录之后url加入日志 LogService.add_access_log() pattern = re.compile('%s' % "|".join(ignore_urls)) if pattern.match(path): return if not user_info: return redirect(UrlManager.buildUrl('/user/login')) return
def info(): resp_data = {} req = request.values uid = int(req.get('id', 0)) back_url = UrlManager.buildUrl('/account/index') if uid < 1: return redirect(back_url) user_info = User.query.filter_by(uid=uid).first() if not user_info: return redirect(back_url) # 按照id倒序排列,只显示10条数据 access_list = AppAccessLog.query.filter_by(uid=uid).order_by( AppAccessLog.id.desc()).limit(10).all() resp_data['user_info'] = user_info resp_data['access_list'] = access_list return ops_render('/account/info.html', resp_data)
def before_request(): path = request.path ignore_urls = app.config["IGNORE_URLS"] ignore_check_login_urls = app.config["IGNORE_CHECK_LOGIN_URLS"] user_info = check_login() g.current_user = None if user_info: g.current_user = user_info # 设置忽略静态资源 ^/static pattern = re.compile("%s" % "|".join(ignore_check_login_urls)) if pattern.match(path): return # 设置/user/login得忽略规则,要用到正则表达式 ^/user/login pattern = re.compile("%s" % "|".join(ignore_urls)) if pattern.match(path): return if not user_info: return redirect(UrlManager.buildUrl("/user/login")) return
def info(): resp_data = {} req = request.args uid = int(req.get('id', 0)) reback_url = UrlManager.buildUrl('/account/index') if uid < 1: return redirect(reback_url) info = User.query.filter_by(uid=uid).first() #显示每个人的访问时间和访问地址 query = AppAccessLog.query list = query.order_by( AppAccessLog.created_time.desc()).filter_by(uid=uid).all()[0:5] if not info: return redirect(reback_url) resp_data['info'] = info resp_data['list'] = list return ops_render('account/info.html', resp_data)
def before_request(): # 跳过这些url的登录验证 ignore_urls = app.config['IGNORE_URLS'] ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS'] path = request.path user_info = check_login() # 如果是静态文件就不要查询用户信息了 pattern = re.compile('%s' % "|".join(ignore_check_login_urls)) if pattern.match(path): return if '/api' in path: return user_info = check_login() g.current_user = None if not user_info: return redirect(UrlManager.buildUrl("/user/login")) return
def login(): if request.method == "GET": if g.current_user: return redirect(UrlManager.buildUrl("/index")) return ops_render('login.html') result = {'code': 200, 'msg': '登录成功'} value = request.values login_name = value['login_name'] if 'login_name' in value else '' login_pwd = value['login_pwd'] if 'login_pwd' in value else '' if login_name is None or len(login_name) < 1: result['code'] = -1 result['msg'] = 'error' return jsonify(result) if login_pwd is None or len(login_pwd) < 1: result['code'] = -1 result['msg'] = 'error' return jsonify(result) user_info = S_User_Info.query.filter_by(UserName=login_name).first() if not user_info: result['code'] = -1 result['msg'] = '账号错误' return jsonify(result) if user_info.UserPwd != login_pwd: result['code'] = -1 result['msg'] = '密码错误' return jsonify(result) response = make_response(json.dumps(result)) response.set_cookie( app.config['AUTH_COOKIE_NAME'], "%s#%s" % (UserService.geneAuthCode(user_info), user_info.Id)) return response
def before_request(): ignore_urls = app.config['IGNORE_URLS'] api_ignore_urls = app.config['API_IGNORE_URLS'] app_ignore_urls = app.config['APP_IGNORE_URLS'] img_ignore_urls = app.config['IMG_IGNORE_URLS'] ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS'] path = request.path pattern = re.compile('%s' % "|".join(ignore_check_login_urls)) if pattern.match(path): return user_info = check_login() g.current_user = None if user_info: g.current_user = user_info session['uid'] = user_info.uid pattern = re.compile('%s' % "|".join(ignore_urls)) if pattern.match(path): return pattern = re.compile('%s' % "|".join(api_ignore_urls)) if pattern.match(path): return pattern = re.compile('%s' % "|".join(app_ignore_urls)) if pattern.match(path): return pattern = re.compile('%s' % "|".join(img_ignore_urls)) if pattern.match(path): return if not user_info: return redirect(UrlManager.buildUrl("/login/")) return
def before_request(): path = request.path ignore_urls = app.config['IGNORE_URLS'] ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS'] #设置忽略静态资源 ^/static pattern = re.compile('%s' % '|'.join(ignore_check_login_urls)) if pattern.match(path): return user_info = check_login() g.current_user = None if user_info: g.current_user = user_info #设置/user/login的忽略规则。要用正则表达式 pattern = re.compile('%s' % '|'.join(ignore_urls)) if pattern.match(path): return if not user_info: return redirect(UrlManager.buildUrl('/user/login')) return
def before_request(): ignore_urls = app.config['IGNORE_URLS'] ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS'] path = request.path pattern = re.compile('%s' % "|".join(ignore_check_login_urls)) if pattern.match(path): return user_info = check_login() g.current_user = user_info if user_info else None # 加入日志 LogService.addAccessLog() pattern = re.compile('%s' % "||".join(ignore_urls)) if pattern.match(path): return if not user_info: return redirect(UrlManager.buildUrl("/user/login")) return
def set(): if request.method == "GET": resp_data = {} input_id = request.args.get("id", 0, type=int) reback_url = UrlManager.buildUrl("/member/index") if input_id < 1: return redirect(reback_url) target_info = Member.query.filter_by(id=input_id).first() if not target_info: return redirect(reback_url) if target_info.status != 1: return redirect(reback_url) resp_data['info'] = target_info resp_data['current'] = 'index' return ops_render("member/set.html", **resp_data) resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values input_id = ParamsValidator.GetORSetValue(req, 'id', value=0) nickname = ParamsValidator.GetORSetValue(req, 'nickname', value='') if nickname is None or len(nickname) < 1: resp['code'] = -1 resp['msg'] = "请输入符合规范的姓名" return jsonify(resp) elif not Member.query.filter_by(id=input_id).first(): resp['code'] = -1 resp['msg'] = "指定会员不存在" else: member_info = Member.query.filter_by(id=input_id).first() member_info.nickname = nickname member_info.updated_time = getCurrentDate() db.session.add(member_info) db.session.commit() return jsonify(resp)
def before_request(): ignore_urls = app.config["IGNORE_URLS"] ignore_check_login_urls = app.config["IGNORE_CHECK_LOGIN_URLS"] path = request.path # 忽略静态资源 patten = re.compile('%s' % "|".join(ignore_check_login_urls)) if patten.match(path): return user_info = check_login() g.current_user = None if user_info: g.current_user = user_info # 正则匹配路由 patten = re.compile('%s' % "|".join(ignore_urls)) if patten.match(path): return if not user_info: return redirect(UrlManager.buildUrl("/user/login")) return
def info(): resp_data = {} req = request.args id = int(req.get("id", 0)) reback_url = UrlManager.buildUrl("/food/index") if id < 1: return redirect( reback_url ) info = Food.query.filter_by( id =id ).first() if not info: return redirect( reback_url ) stock_change_list = FoodStockChangeLog.query.filter( FoodStockChangeLog.food_id == id )\ .order_by( FoodStockChangeLog.id.desc() ).all() sale_change_list = FoodSaleChangeLog.query.filter( FoodSaleChangeLog.food_id == id )\ .order_by( FoodSaleChangeLog.id.desc() ).all() resp_data['info'] = info resp_data['stock_change_list'] = stock_change_list resp_data['sale_change_list'] = sale_change_list resp_data['current'] = 'index' return ops_render( "food/info.html",resp_data )
def before_request(): path = request.path ignore_urls = app.config['IGNORE_URLS'] ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS'] pattern = re.compile("%s" % "|".join(ignore_check_login_urls)) if pattern.match(path): return pattern = re.compile("%s" % "|".join(ignore_urls)) if pattern.match(path): return if '/api' in path: return user_info = if_login() g.current_user = None if user_info: g.current_user = user_info # 加入日志 LogService.addAccessLog() else: return redirect(UrlManager.buildUrl('/user/login')) return
def logout(): response = make_response(redirect(UrlManager.buildUrl('/user/login'))) response.delete_cookie(app.config['AUTH_COOKIE_NAME']) return response
def set(): if request.method == "GET": resp_data = {} req = request.args id = int(req.get('id', 0)) info = Good.query.filter_by(id=id).first() if info and info.status != 1: return redirect(UrlManager.buildUrl("/goods/index")) resp_data['info'] = info return ops_render("goods/set.html", resp_data) # POST resp = {'code': 200, 'msg': "操作成功", 'data': {}} req = request.values id = int(req['id']) if 'id' in req and req['id'] else 0 cat_id = int(req['cat_id']) if 'cat_id' in req else 0 name = req['name'] if 'name' in req else '' price = req['price'] if 'price' in req else '' main_image = req['main_image'] if 'main_image' in req else '' summary = req['summary'] if 'summary' in req else '' stock = int(req['stock']) if 'stock' in req else '' tags = req['tags'] if 'tags' in req else '' if cat_id < 1: resp['code'] = -1 resp['msg'] = "请选择分类" return jsonify(resp) if name is None or len(name) < 1: resp['code'] = -1 resp['msg'] = "请输入符合规范的名称" return jsonify(resp) if not price or len(price) < 1: resp['code'] = -1 resp['msg'] = "请输入符合规范的价格" return jsonify(resp) price = Decimal(price).quantize(Decimal('0.00')) if price < 0: resp['code'] = -1 resp['msg'] = "请输入符合规范的价格" return jsonify(resp) if main_image is None or len(main_image) < 3: resp['code'] = -1 resp['msg'] = "请上传封面" return jsonify(resp) if summary is None or len(summary) < 3: resp['code'] = -1 resp['msg'] = "请输入商品描述,不少于10个字符" return jsonify(resp) if stock < 1: resp['code'] = -1 resp['msg'] = "请输入符合规范的库存量" return jsonify(resp) if tags is None or len(tags) < 1: resp['code'] = -1 resp['msg'] = "请输入标签,便于搜索" return jsonify(resp) goods_info = Goods.query.filter_by(uid=id).first() before_stock = 0 if goods_info: model_goods = goods_info before_stock = model_goods.stock else: model_goods = Goods() model_goods.status = 1 # 插入格式化的时间 model_goods.created_time = getCurrentDate() model_goods.cat_id = cat_id model_goods.name = name model_goods.price = price model_goods.main_image = main_image model_goods.summary = summary model_goods.stock = stock model_goods.tags = tags model_goods.updated_time = getCurrentDate() db.session.add(model_goods) db.session.commit() return jsonify(resp)
def set(): if request.method == "GET": resp_data = {} req = request.args id = int(req.get('id', 0)) info = Book.query.filter_by(book_id=id).first() if info and info.book_status != 1: return redirect(UrlManager.buildUrl("/book/index")) cat_list = BookCat.query.all() resp_data['info'] = info resp_data['cat_list'] = cat_list resp_data['current'] = 'index' return ops_render("book/set.html", resp_data) resp = {'code': 200, 'msg': '操作成功~~', 'data': {}} req = request.values id = int(req['id']) if 'id' in req and req['id'] else 0 cat_id = int(req['cat_id']) if 'cat_id' in req else 0 title = req['title'] if 'name' in req else '' price = req['price'] if 'price' in req else '' main_image = req['main_image'] if 'main_image' in req else '' desc = req['desc'] if 'desc' in req else '' stock = int(req['stock']) if 'stock' in req else '' tags = req['tags'] if 'tags' in req else '' if cat_id < 1: resp['code'] = -1 resp['msg'] = "请选择分类~~" return jsonify(resp) if title is None or len(title) < 1: resp['code'] = -1 resp['msg'] = "请输入符合规范的名称~~" return jsonify(resp) if not price or len(price) < 1: resp['code'] = -1 resp['msg'] = "请输入符合规范的售卖价格~~" return jsonify(resp) price = Decimal(price).quantize(Decimal('0.00')) if price <= 0: resp['code'] = -1 resp['msg'] = "请输入符合规范的售卖价格~~" return jsonify(resp) if main_image is None or len(main_image) < 3: resp['code'] = -1 resp['msg'] = "请上传封面图~~" return jsonify(resp) if desc is None or len(desc) < 3: resp['code'] = -1 resp['msg'] = "请输入图书描述,并不能少于10个字符~~" return jsonify(resp) if stock < 1: resp['code'] = -1 resp['msg'] = "请输入符合规范的库存量~~" return jsonify(resp) if tags is None or len(tags) < 1: resp['code'] = -1 resp['msg'] = "请输入标签,便于搜索~~" return jsonify(resp) book_info = Book.query.filter_by(book_id=id).first() before_stock = 0 if book_info: model_book = book_info before_stock = model_book.stock else: model_book = Book() model_book.status = 1 model_book.created_time = getCurrentDate() model_book.cat_id = cat_id model_book.book_title = title model_book.book_price = price model_book.book_main_image = main_image model_book.book_desc = desc model_book.book_stock = stock model_book.tags = tags model_book.updated_time = getCurrentDate() db.session.add(model_book) ret = db.session.commit() BookService.setStockChangeLog(model_book.id, int(stock) - int(before_stock), "后台修改") return jsonify(resp)
def logout(): response = make_response(UrlManager.buildUrl("/user/login")) # 清空cookie内在字段 response.delete_cookie(current_app.config['AUTH_COOKIE_NAME']) return response
def set(): if request.method == 'GET': resp_data = {} req = request.args id = int(req.get('id', 0)) info = Food.query.filter_by(id=id).first() if info and info.status != 1: return redirect(UrlManager.buildUrl('/food/index')) cat_list = FoodCat.query.all() resp_data['info'] = info resp_data['current'] = 'set' resp_data['cat_list'] = cat_list return ops_render("food/set.html", resp_data) elif request.method == 'POST': resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values id = int(req['id']) if ('id' in req and req['id']) else 0 cat_id = int(req['cat_id']) if 'cat_id' in req else 0 name = req['name'] if 'name' in req else '' price = req['price'] if 'price' in req else '' main_image = req['main_image'] if 'main_image' in req else '' summary = req['summary'] if 'summary' in req else '' stock = int(req['stock']) if 'stock' in req else '' tags = req['tags'] if 'tags' in req else '' price = Decimal(price).quantize(Decimal('0.00')) if cat_id < 1: resp['code'] = -1 resp['msg'] = '请选择分类' return jsonify(resp) if name is None or len(name) < 1: resp['code'] = -1 resp['msg'] = '请输入符合会犯的名称' return jsonify(resp) if price <= 0: resp['code'] = -1 resp['msg'] = '请输入符合规范的售卖价格' return jsonify(resp) if main_image is None or len(main_image) < 3: resp['code'] = -1 resp['msg'] = '请上传封面图' return jsonify(resp) if summary is None or len(summary) < 3: resp['code'] = -1 resp['msg'] = "请输入图书描述,并不能少于10个字符" return jsonify(resp) if stock < 1: resp['code'] = -1 resp['msg'] = '请输入符合规范的库存量' return jsonify(resp) if tags is None or len(tags) < 1: resp['code'] = -1 resp['msg'] = '请输入标签,便于搜索' return jsonify(resp) food_info = Food.query.filter_by(id=id).first() before_stock = 0 if food_info: model_food = food_info before_stock = model_food.stock else: model_food = Food() model_food.status = 1 model_food.created_time = getCurrentDate() model_food.cat_id = cat_id model_food.name = name model_food.price = price model_food.main_image = main_image model_food.summary = summary model_food.stock = stock model_food.tags = tags model_food.updated_time = getCurrentDate() db.session.add(model_food) ret = db.session.commit() FoodService.setStockChangeLog(model_food.id, int(stock) - int(before_stock), "后台修改") # model_stock_change = FoodStockChangeLog() # model_stock_change.food_id = model_food.id # # 当前的库存减去未修改前的库存,减少的话就是负数,增加就是正数 # model_stock_change.unit = int(stock) - int(before_stock) # model_stock_change.total_stock = stock # model_stock_change.note = '' # model_stock_change.created_time = getCurrentDate() # db.session.add(model_stock_change) # db.session.commit() return jsonify(resp)
def set(): if request.method == 'GET': resp_data = {} req = request.args ids = req.get('id', '') id = int(ids) if ids.isdigit() else 0 food_info = Food.query.filter_by(id=id).first() if food_info and food_info.status != 1: return redirect(UrlManager.buildUrl('/food/index')) cat_list = FoodCat.query.all() resp_data['current'] = 'index' resp_data['cat_list'] = cat_list resp_data['food_info'] = food_info return ops_render('food/set.html', resp_data) resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values id = int(req['id']) if 'id' in req and req['id'].isdigit() else 0 cat_id = int( req['cat_id']) if 'cat_id' in req and req['cat_id'].isdigit() else 0 name = req['name'] if 'name' in req else '' price = req['price'] if 'price' in req else 0 main_image = req['main_image'] if 'main_image' in req else '' summary = req['summary'] if 'summary' in req else '' stock = int( req['stock']) if 'stock' in req and req['stock'].isdigit() else 0 tags = req['tags'] if 'tags' in req else '' price = Decimal(price).quantize(Decimal('0.00')) if cat_id < 1: resp['code'] = -1 resp['msg'] = '请选择分类' return jsonify(resp) if not name or len(name) < 1: resp['code'] = -1 resp['msg'] = '请输入符合规范的名字' return jsonify(resp) if price <= 0: resp['code'] = -1 resp['msg'] = '请输入符合规范的售卖价格' return jsonify(resp) if not main_image or len(main_image) < 3: resp['code'] = -1 resp['msg'] = '请上传封面图' return jsonify(resp) if not summary or len(summary) < 10: resp['code'] = -1 resp['msg'] = '请输入描述,并且不能少于10个字符' return jsonify(resp) if stock < 1: resp['code'] = -1 resp['msg'] = '请输入符合规范的库存量' return jsonify(resp) if not tags or len(tags) < 1: resp['code'] = -1 resp['msg'] = '请输入标签,便于搜索' return jsonify(resp) # has_food_name = Food.query.filter(Food.name==name).first() # if has_food_name: # resp['code'] = -1 # resp['msg'] = '菜名已存在,请重新输入' # return jsonify(resp) food_info = Food.query.filter_by(id=id).first() before_stock = 0 if food_info: model_food = food_info before_stock = model_food.stock else: model_food = Food() model_food.created_time = getCurrentDate() model_food.cat_id = cat_id model_food.name = name model_food.main_image = main_image model_food.stock = stock model_food.price = price model_food.summary = summary model_food.tags = tags model_food.updated_time = getCurrentDate() db.session.add(model_food) db.session.commit() # model_stock_change = FoodStockChangeLog() # model_stock_change.food_id = model_food.id # model_stock_change.unit = model_food.stock - before_stock # model_stock_change.total_stock = stock # model_stock_change.note = '' # model_stock_change.created_time = getCurrentDate() # # db.session.add(model_stock_change) # db.session.commit() FoodService.setFoodStockChangeLog(model_food.id, int(stock) - int(before_stock), '后台修改') return jsonify(resp)
def set(): if request.method == 'GET': resp_data = {} req = request.args id = int(req.get('id', 0)) info = Food.query.filter_by(id=id).first() if info and info.status != 1: return redirect(UrlManager.buildUrl("/food/index")) cat_list = FoodCat.query.all() resp_data['info'] = info resp_data['cat_list'] = cat_list resp_data['current'] = index return ops_render("food/set.html", resp_data) resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values id = req['id'] if 'id' in req else 0 cat_id = int(req['cat_id']) if 'cat_id' in req else 0 name = req['name'] if 'name' in req else '' price = req['price'] if 'price' in req else '' main_image = req['main_image'] if 'main_image' in req else '' summary = req['summary'] if 'summary' in req else '' stock = int(req['stock']) if 'stock' in req else '' tags = req['tags'] if 'tags' in req else '' price = Decimal(price).quantize(Decimal('0.00')) if cat_id < 1: resp['code'] = -1 resp['msg'] = '请选择分类~' return jsonify(resp) if name is None or len(name) < 1: resp['code'] = -1 resp['msg'] = '请输入符合规范的名称' return jsonify(resp) if price <= 0: resp['code'] = -1 resp['msg'] = '请输入符合规范的售卖价格~' return jsonify(resp) if main_image is None or len(main_image) < 3: resp['code'] = -1 resp['msg'] = '请上传封面图' return jsonify(resp) if summary is None or len(summary) < 10: resp['code'] = -1 resp['msg'] = '请输入图片描述,不能少于10个字符~' return jsonify(resp) if stock < 1: resp['code'] = -1 resp['msg'] = '请输入符合规范的库存量' return jsonify(resp) if tags is None or len(tags) < 1: resp['code'] = -1 resp['msg'] = '请输入标签,便于搜索~' return jsonify(resp) food_info = Food.query.filter_by(id=id).first() # 定义之前的库存变量为before_stock before_stock = 0 if food_info: model_food = food_info before_stock = model_food.stock else: model_food = Food() model_food.status = 1 model_food.created_time = getCurrentDate() model_food.cat_id = cat_id model_food.name = name model_food.price = price model_food.main_image = main_image model_food.summary = summary model_food.stock = stock model_food.tags = tags model_food.updated_time = getCurrentDate() db.session.add(model_food) db.session.commit() FoodService.setStockChangeLog(model_food.id, int(stock) - int(before_stock), '后台修改') return jsonify(resp)
def info(): resp_data = {} req = request.args id = int( req.get( "id",0 ) ) reback_url = UrlManager.buildUrl( "/member/index" ) if id < 1: return redirect( reback_url ) info = Member.query.filter_by( id =id ).first() if not info: return redirect( reback_url ) # pay_order_list = PayOrder.query.filter_by( member_id = id ).filter( PayOrder.status.in_( [-8,1] ) )\ # .order_by( PayOrder.id.desc() ).all() comment_list = MemberComments.query.filter_by( member_id = id ).order_by( MemberComments.id.desc() ).all() data_comment_list=[] if comment_list: comment_lecture_ids = selectFilterObj(comment_list,"food_ids") comment_lecture_map = getDictFilterField(Food,Food.id,"id",comment_lecture_ids) for item in comment_list: tmp_com_lec_info = comment_lecture_map[int(item.food_ids)] # print("####") # print(comment_lecture_map) data_comment_list.append({ 'name':tmp_com_lec_info.name, 'score':item.score, 'content':item.content }) #######计算学生完成讲座次数 count=PayOrderItem.query.filter_by( member_id = id,comment_status=1 ).count() ###### cat_mapping = getDictFilterField( FoodCat,FoodCat.id,"id",[] ) lecture_list = PayOrderItem.query.filter_by(member_id=id,comment_status=1).all() data_lecture_list=[] if lecture_list: lecture_ids = selectFilterObj(lecture_list,"food_id") lecture_map = getDictFilterField(Food,Food.id,"id",lecture_ids) # lecture_info = {} for item in lecture_list: tmp_lec_info = lecture_map[item.food_id] data_lecture_list.append({ 'name':tmp_lec_info.name, 'category':tmp_lec_info.cat_id, 'speaker':item.speaker, 'lecture_time':item.lecture_time }) resp_data['cat_mapping'] = cat_mapping resp_data['count']=count resp_data['info'] = info resp_data['data_lecture_list'] = data_lecture_list resp_data['comment_list'] = data_comment_list resp_data['current'] = 'index' return ops_render( "member/info.html",resp_data )