def add_goods(): # 获取用户输入信息 title = request.form.get('title') img = request.files.get('img') price = request.form.get('price') detail = request.form.get('detail') if not title: return jsonify({'code': '601', 'msg': '商品名称不能为空!'}) if not price: return jsonify({'code': '602', 'msg': '请输入商品价格!'}) # 保存图片 if img: # 获取项目根路径 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 获取媒体文件路径 MEDIA_DIR = os.path.join(BASE_DIR, 'static/media') # 随机生成图片名称 filename = str(uuid.uuid4()) i = img.mimetype.split('/')[-1] image = filename + '.' + i # 拼接图片地址 path = os.path.join(MEDIA_DIR, image) img.save(path) img_url = '/static/media/' + image else: img_url = '' # 存储到数据库 goods = Goods() goods.title = title goods.img_url = img_url goods.price = price goods.detail = detail db.session.add(goods) db.session.commit() return jsonify({'code': 200, 'msg': '添加成功'})
def goods_update(): try: res = request.get_json() goods_id = res.get('goods_id') name = res.get('name') price = res.get('price') ku_num = res.get('ku_num') detail = res.get('detail') # {'image_data':[{'img_url':'http:xxx','is_min':1},{'img_url':'http:xxx','is_min':0}]} image_data = res.get('image_data') # img_url = res.get('img_url') postage = res.get('postage') admin_id = g.user_id Logging.logger.info('request_args:{0}'.format(res)) if not all([name, price, ku_num, image_data, postage]): return jsonify(errno=-1, errmsg='参数不完整') try: price = int(price) ku_num = int(ku_num) postage = int(postage) except Exception as e: Logging.logger.error('errmsg:{0}'.format(e)) return jsonify(errno=-1, errmsg='参数错误') if goods_id: # 修改 try: goods_id = int(goods_id) except Exception as e: Logging.logger.error('errmsg:{0}'.format(e)) return jsonify(errno=-1, errmsg='参数错误') goods_obj = Goods.query.get(goods_id) if not goods_obj: return jsonify(errno=-1, errmsg='当前商品不存在') goods_obj.name = name goods_obj.price = price now_available_num = ku_num - (goods_obj.ku_num - goods_obj.available_num) if now_available_num < 0: return jsonify(errno=-1, errmsg='商品库存数量不能小于原已兑换数量') goods_obj.available_num = now_available_num goods_obj.ku_num = ku_num goods_obj.detail = detail goods_obj.postage = postage goods_obj.admin_id = admin_id # goods_obj.img_url = img_url if image_data: # 删除原有的商品轮播图片 goods_img = GoodsImage.query.filter( GoodsImage.goods_id == goods_id).all() for img in goods_img: db.session.delete(img) # 添加新的图片 for image in image_data: image_obj = GoodsImage() image_obj.goods_id = goods_id image_obj.img_url = image.get('img_url') image_obj.is_min = image.get('is_min') db.session.add(image_obj) db.session.add(goods_obj) else: # 新增 goods = Goods.query.filter(Goods.name == name).first() if goods: return jsonify(errno=-1, errmsg='该商品名称已经存在') goods_obj = Goods() goods_obj.name = name goods_obj.price = price goods_obj.ku_num = ku_num goods_obj.available_num = ku_num goods_obj.detail = detail goods_obj.postage = postage goods_obj.admin_id = admin_id # goods_obj.img_url = img_url db.session.add(goods_obj) db.session.commit() for image in image_data: image_obj = GoodsImage() image_obj.goods_id = goods_obj.id image_obj.img_url = image.get('img_url') image_obj.is_min = image.get('is_min') db.session.add(image_obj) db.session.commit() return jsonify(errno=0, errmsg="OK") except Exception as e: Logging.logger.error('errmsg:{0}'.format(e)) db.session.rollback() return jsonify(errno=-1, errmsg='更新商品失败')