Example #1
0
def comment():
    if request.method == 'POST':
        commentdata = request.get_json()
        post_user_id = int(commentdata['post_user_id'])

        #发表帖子
        if commentdata['is_host']:
            max_group_id = db_session.query(func.max(Comment.group_id)).filter(Comment.from_novel_id == int(commentdata['novel_id'])).first()
            if max_group_id is None:
                group_id = 1
            else:
                group_id = int(max_group_id[0]) + 1

            new_comment = Comment(from_user_id=post_user_id, from_novel_id=int(commentdata["novel_id"]), is_host=True,
                                  group_id=group_id, content=commentdata["comment"])

            db_session.add(new_comment)
            db_session.flush()
            comment_id = new_comment.id
            db_session.commit()
            return jsonify(code=1, comment_id=comment_id, group_id=group_id)

        #回复帖子
        else:
            new_comment = Comment(from_user_id=post_user_id, from_novel_id=int(commentdata['novel_id']), to_user_id=int(commentdata['to_user_id']),
                                  is_host=False, group_id=int(commentdata['group_id']), content=commentdata['comment'])

            db_session.add(new_comment)
            db_session.flush()
            comment_id = new_comment.id
            to_nickname = new_comment.to_user.nickname
            to_headpic = new_comment.to_user.headpic
            db_session.commit()

            return jsonify(code=1, comment_id=comment_id, to_nickname=to_nickname, to_headpic=to_headpic)
Example #2
0
def book_infor(novel_id):
    novel = db_session.query(Novel).filter(Novel.id == novel_id).one()
    if request.method == 'GET':
        return render_template('book_infor.html', novel=novel)
    elif request.method == 'POST':
        novel.name = request.form['novel_name']
        novel.author = request.form['novel_author']
        novel.last_update = request.form['novel_last_update']
        novel.type = request.form['novel_type']
        novel.image = request.form['novel_image']
        novel.description = request.form['novel_description']
        novel.recommend = int(request.form['novel_recommend'])
        novel.source_url = request.form['novel_source_url']
        novel.chapter_source_bequge_url = request.form['chapter_source_bequge_url']
        novel.chapter_source_ybd_url = request.form['chapter_source_ybd_url']

        db_session.flush()
        db_session.commit()
        return redirect(request.headers['referer'])
Example #3
0
def post_book():
    userid = g.current_user.id
    content = request.get_json().get('getnav')
    # print userid

    if len(content) > 0:

        addbook = Guestbook(userid=userid,
                            content=content,
                            addtime=datetime.datetime.now())

        try:
            db_session.add(addbook)
            db_session.commit()
            db_session.flush()

            gbid = addbook.id
            teamid = g.current_user.teamid

            manageid = db_session.query(Manage).filter(
                or_(Manage.teamid == teamid, Manage.group_id == 1)).all()
            # print len(manageid)
            if manageid:
                glbooks = [
                    MuGb(manageid=manageid[i].id, bookid=gbid, status=0)
                    for i in range(len(manageid))
                ]
                db_session.query(MuGb).first()
                try:
                    db_session.add_all(glbooks)
                    db_session.commit()
                except Exception as e:
                    print(e)
                    db_session.rollback()
                    return jsonify({"state": "数据库错误"})

        except Exception as e:
            print(e)
            db_session.rollback()
            return jsonify({'code': 0, 'message': '数据库错误'})
    db_session.close()

    return jsonify({'state': 'ok'})
Example #4
0
def useralter():
    '''
        用户修改
    '''
    # 得到用户参数
    new_phone_number = request.values.get('new_phone_number')
    new_password = request.values.get('new_password')
    new_nickname = request.values.get('new_nickname')
    # 根据登陆的token 获得所登陆者的电话号码

    # 获得用户
    user = g.current_user
    # 修改电话号码
    if new_phone_number and len(new_phone_number) != 11:
        return jsonify({'message': '电话位数不符合', 'code': 2})

    # 修改密码
    if new_password and len(new_password) < 6:
        return jsonify({'message': '密码至少六位数', 'code': 2})
    # import ipdb; ipdb.set_trace()
    # 判断输入的密码和电话是否有为空的 不为空则修改原始数据
    # 原始电话
    phone_number = user.phone_number

    if new_phone_number:
        user.phone_number = new_phone_number
    if new_password:
        user.password = new_password
    # 判断用户昵称是否修改了
    if new_nickname:
        user.nickname = new_nickname

    db_session.add(user)
    db_session.flush()
    db_session.commit()

    redis_store.delete('token:{0}'.format(g.token))
    redis_store.delete('user:{0}'.format(phone_number))

    return jsonify({'message': '修改成功,请重新登陆', 'code': 200})
Example #5
0
def userregister():
    '''
        用户注册
    '''
    # 得到用户参数
    phone_number = request.values.get('phone_number')
    password = request.values.get('password')
    nickname = request.values.get('nickname')
    # 非空判断
    if not phone_number:
        return jsonify({'message': '请输入电话号码', 'code': 0})
    elif len(phone_number) != 11:
        return jsonify({'message': '电话位数不符合', 'code': 2})

    if not password:
        return jsonify({'message': '密码不允许为空', 'code': 0})
    if len(password) < 6:
        return jsonify({'message': '密码至少六位数', 'code': 2})

    if not nickname:
        nickname = 'zhangsan'

    # 判断号码是否被使用
    user = User.query.filter_by(phone_number=phone_number).first()
    # import ipdb; ipdb.set_trace()
    if user:
        return jsonify({'message': '该号码已被注册', 'code': 1})
    u1 = User()
    u1.password = password
    u1.phone_number = phone_number
    u1.nickname = nickname
    # import ipdb; ipdb.set_trace()
    db_session.add(u1)
    db_session.flush()
    db_session.commit()
    # import ipdb; ipdb.set_trace()
    return jsonify({'message': '注册成功', 'code': 200})
Example #6
0
def upload_and_db(title, imgs):
    """
    把得到的img的url和title上传到七牛,返回的url存入到数据库
    """
    q = Auth(access_key, secret_key)
    new_pic = Picture(title=title)
    db_session.add(new_pic)
    db_session.flush()
    picture_id = new_pic.id

    for img in imgs:
        print img
        data = requests.get(img).content
        new_path = Path(picture=new_pic)
        db_session.add(new_path)
        db_session.flush()
        key_path = key_upload + str(new_path.id)
        mime_type = "image/jpeg"
        token = q.upload_token(bucket_name, key_path)
        ret, info = put_data(token, key_path, data,  mime_type=mime_type, check_crc=True)
        new_path.path_ = qiniu_url + ret['key']

    db_session.commit()
    return picture_id
def edit_product():

	this = 'edit'
	
	getid = request.args.get('id')

	washlist = Wash.wash_check().all()
	sizelist = Size.size_check().all()
	recommend = Recommend.recommend_check().all()
	towclass = []
	for cls in recommend:
		towclass.append({'id':cls.id, 'topid':cls.topid, 'titles':cls.titles})
	recommend = json.dumps(get_Children(0,towclass))

	classify = Classify.classify_check().all()
	towclass = []
	for cls in classify:
		towclass.append({'id':cls.classid, 'text':cls.classname, 'topid':cls.topid})
	classifylist = json.dumps(getaChildren(0,towclass))

	form = EditProductForm()


	productData = Product.query.filter_by(proid = getid).first()
	pid = productData.pid
	
	if productData:
		form.proid.data        = productData.proid
		form.pid.data          = productData.pid
		form.new_p.data        = productData.new_p
		form.covers.data       = productData.covers
		form.oldcovers.data    = productData.covers
		form.oldpid.data       = productData.oldpid
		form.creatorid.data    = productData.creatorid 
		form.teamid.data       = productData.teamid
		form.proname.data      = productData.proname
		form.price.data        = productData.price
		form.model_height.data = productData.model_height
		form.fabric.data       = productData.fabric
		form.lining.data       = productData.lining
		form.size_table.data   = productData.size_table
		form.weights.data      = productData.weights
		form.the_net.data      = productData.the_net
		form.first_order.data  = productData.first_order
		form.again_order.data  = productData.again_order
		form.shipping.data     = productData.shipping
		form.flying.data       = productData.flying
		form.place.data        = productData.place
		form.size.data         = productData.size
		form.colorid.data      = productData.colorid
		form.display.data      = productData.display

		form.text_centont.data = productData.text_centont

	if form.validate_on_submit():
		productData.proid = int(request.form.get('proid'))
		productData.pid = int(request.form.get('pid'))
		productData.oldpid = int(request.form.get('oldpid'))
		productData.new_p = int(request.form.get('new_p'))
		productData.creatorid = int(request.form.get('creatorid'))
		productData.teamid = int(request.form.get('teamid'))
		productData.proname = request.form.get('proname')
		productData.price = request.form.get('price')
		productData.model_height = request.form.get('model_height')
		productData.fabric = request.form.get('fabric')
		productData.lining = request.form.get('lining')
		productData.wash = request.form.get('wash')
		productData.size_table = request.form.get('size_table')
		productData.weights = request.form.get('weights')
		productData.the_net = request.form.get('the_net')
		productData.first_order = request.form.get('first_order')
		productData.again_order = request.form.get('again_order')
		productData.shipping = request.form.get('shipping')
		productData.flying = request.form.get('flying')
		productData.place = request.form.get('place')
		productData.size = request.form.get('size')
		productData.colorid = request.form.get('colorid')
		productData.display = request.form.get('display')

		html_parser = HTMLParser.HTMLParser()
		html_con = request.form.get('text_centont')
		productData.text_centont = html_parser.unescape(html_con)

		# 处理封面图片
		getcovers = request.form.get('covers')
		oldcovers = request.form.get('oldcovers')
		print (getcovers,oldcovers)
		if getcovers == '':
			productData.covers = oldcovers

			try:
				db_session.add(productData)
				db_session.commit()
			except:
				flash("数据库错误!")
				return redirect('%s%s' %('/manage/add_product?pid=',pid))
		if getcovers != oldcovers and getcovers != '':
			productData.covers = getcovers

			try:
				db_session.add(productData)
				db_session.commit()
			except:
				flash("数据库错误!")
				return redirect('%s%s' %('/manage/add_product?pid=',pid))

			if oldcovers != '' and oldcovers != None and oldcovers != '0':
				deli = db_session.query(Images).filter(Images.id == oldcovers).first();
				imgurl = deli.picurl
				imgurl = actros_split(imgurl)
				
				delImage(imgurl)
				db_session.delete(deli)
				db_session.commit()

		

		proid = int(request.form.get('proid'))


		color_check = productData.colors.all()

		# 颜色部分
		colortitle = request.form.getlist('colortitle')
		color = request.form.getlist('color')
		number = request.form.getlist('number')
		picurl = request.form.getlist('picid')
		cover = request.form.getlist('cover')

		if len(color_check) == len(color) :
			for i in range(len(color_check)):
				color_check[i].colortitle = colortitle[i]
				color_check[i].color = color[i]
				color_check[i].number = number[i]
				color_check[i].picurl = picurl[i]
				color_check[i].cover = cover[i]

		elif len(color_check) < len(color) :
			for i in range(len(color_check)):
				color_check[i].colortitle = colortitle[i]
				color_check[i].color = color[i]
				color_check[i].number = number[i]
				color_check[i].picurl = picurl[i]
				color_check[i].cover = cover[i]

			color_list = [ProColor(
						colortitle = str(colortitle[i]),
						color = str(color[i]),
						number = str(number[i]),
						cover = cover[i],
						proid = proid
					) for i in range(len(color_check),len(color))]
			db_session.add_all(color_list)
			db_session.commit()
			db_session.flush()
			'''
				调用图片排序添加proid函数
				因为是增加了新的颜色组,所以第一个参数使用 update
				最后一个参数加入新添加的数据 color_list
			'''
			give_picid('update',picurl,color_check,color_list)  #调用图片排序添加proid函数

		db_session.commit()
		db_session.flush()

		give_picid('up',picurl,color_check,None) #调用图片排序添加proid函数

		db_session.commit()
		db_session.close()

		flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。")
		return redirect('%s%s' %('/manage/add_product?pid=',pid))


	return render_template(
		"edit_product.html", 
		this = this,
		pid = pid,
		thdata = productData,
		washlist = washlist,
		sizelist = sizelist,
		recommend= recommend,
		classifylist=classifylist,
		pagename='product',
		form=form)
def add_product():

	pid = int(request.args.get('pid'))

	this = 'add'

	washlist = Wash.wash_check().all()
	sizelist = Size.size_check().all()
	recommend = Recommend.recommend_check().all()
	towclass = []
	for cls in recommend:
		towclass.append({'id':cls.id, 'topid':cls.topid, 'titles':cls.titles})
	recommend = json.dumps(get_Children(0,towclass))

	classify = Classify.classify_check().all()
	towclass = []
	for cls in classify:
		towclass.append({'id':cls.classid, 'text':cls.classname, 'topid':cls.topid})
	classifylist = json.dumps(getaChildren(0,towclass))

	form = AddProductForm()
	if form.validate_on_submit():

		pid = int(request.form.get('pid'))
		oldpid = int(request.form.get('oldpid'))
		creatorid = int(request.form.get('creatorid'))
		teamid = int(request.form.get('teamid'))
		new_p = int(request.form.get('new_p'))
		covers = request.form.get('covers')
		proname = request.form.get('proname')
		price = request.form.get('price')
		model_height = request.form.get('model_height')
		fabric = request.form.get('fabric')
		lining = request.form.get('lining')
		wash = request.form.get('wash')
		size_table = request.form.get('size_table')
		weights = request.form.get('weights')
		the_net = request.form.get('the_net')
		first_order = request.form.get('first_order')
		again_order = request.form.get('again_order')
		shipping = request.form.get('shipping')
		flying = request.form.get('flying')
		place = request.form.get('place')
		size = request.form.get('size')
		colorid = request.form.get('colorid')
		display = request.form.get('display')

		html_parser = HTMLParser.HTMLParser()
		html_con = request.form.get('text_centont')
		text_centont = html_parser.unescape(html_con)

		if covers == '' or covers == None:
			covers = 0

		product = Product(
			pid          = pid,
			oldpid       = oldpid,
			new_p        = new_p,
			covers       = covers,
			creatorid    = creatorid,
			teamid       = teamid,
			proname      = proname,
			price        = price,
			text_centont = text_centont,
			model_height = model_height,
			fabric       = fabric,
			lining       = lining,
			wash         = wash,
			size_table   = size_table,
			weights      = weights,
			the_net      = the_net,
			first_order  = first_order,
			again_order  = again_order,
			shipping     = shipping,
			flying       = flying,
			place        = place,
			size         = size,
			colorid      = colorid,
			display      = display,
			add_time     = datetime.datetime.now()
		)

		product_check = db_session.query(Product).first()
		if len(proname):
			try:
				db_session.add(product)
				db_session.commit()
				db_session.flush()
				pro_id = product.proid
			except:
				flash("数据库错误!")
				return redirect('%s%s' %('/manage/add_product?pid=',pid))


			# 颜色部分
			colortitle = request.form.getlist('colortitle')
			color = request.form.getlist('color')
			number = request.form.getlist('number')
			proid = pro_id
			picurl = request.form.getlist('picid')
			cover = request.form.getlist('cover')
			# print picurl
			color_list = [ProColor(
							colortitle = str(colortitle[i]),
							color = str(color[i]),
							number = str(number[i]),
							cover = cover[i],
							picurl = picurl[i],
							proid = proid
						) for i in range(len(color))]
			color_check = db_session.query(ProColor).first()
			db_session.add_all(color_list)
			db_session.commit()
			db_session.flush()
			# 开始处理复杂的图片所属颜色id和排序问题

			# 开始处理得到排序
			give_picid('up',picurl,color_list,None) #调用图片排序添加proid函数

			db_session.commit()
			db_session.close()

			flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。")
			return redirect('%s%s' %('/manage/add_product?pid=',pid))
	# print recommend
	return render_template(
		"edit_product.html", 
		pagename='product',
		this = this,
		pid = pid,
		washlist = washlist,
		sizelist=sizelist,
		recommend= recommend,
		classifylist=classifylist,
		form = form)
Example #9
0
def post_order():
    userid = g.current_user.id
    userphone = g.current_user.phone
    orderitems = request.get_json().get('orderitems')
    addressid = request.get_json().get('addressid')
    teamid = g.current_user.teamid

    # 设计订单编号
    nowTime = datetime.datetime.now().strftime("%Y%m%d%H%M")  #生成当前时间
    randomNum = random.randint(10000, 100000)  #生成的随机5位整数n,其中1000<=n<=10000
    phnumber = str(userphone)[-4:]
    ordernumber = '%s%s%s%s' % (int(nowTime), int(phnumber), int(teamid),
                                int(randomNum))

    # 订单类型
    order_type = orderitems[0]['order_type']

    # 计算订单总金额 和 图片真实地址 和 购物车id
    cartid = []
    all_total = 0
    if 'cartid' not in orderitems[0]:
        all_total = orderitems[0]['color_total']
    else:
        for i in range(len(orderitems)):
            # 计算订单总金额
            all_total += orderitems[i]['color_total']
            # 得到购物车id
            cartid.append(orderitems[i]['cartid'])

    if len(orderitems) > 0:

        addorder = Order(number=ordernumber,
                         userid=userid,
                         teamid=teamid,
                         addressid=addressid,
                         state=0,
                         order_total=all_total,
                         order_type=order_type,
                         addtime=datetime.datetime.now())

        try:
            db_session.add(addorder)
            db_session.commit()
            # 获取刚加添加的id
            db_session.flush()
            order_id = addorder.id
            order_item = [
                OrderDetailed(proid=int(orderitems[i]['proid']),
                              pronumber=orderitems[i]['pronumber'],
                              size=orderitems[i]['size'],
                              color=orderitems[i]['color'],
                              unit=int(orderitems[i]['unit']),
                              price=int(float(orderitems[i]['price'])),
                              color_total=int(orderitems[i]['color_total']),
                              order_id=int(order_id))
                for i in range(len(orderitems))
            ]

            try:
                db_session.add_all(order_item)
                db_session.commit()
            except Exception as e:
                print(e)
                db_session.rollback()
                return jsonify({'code': 3, 'message': '数据库错误'})

        except Exception as e:
            print(e)
            db_session.rollback()
            return jsonify({'code': 3, 'message': '数据库错误'})

        # 删除购物车
        delcart = db_session.query(UserCart).filter(UserCart.id.in_(
            (cartid))).all()
        try:
            [db_session.delete(n) for n in delcart]
            db_session.commit()
            db_session.close()
        except Exception as e:
            print(e)
            db_session.rollback()
            return jsonify({'code': 3, 'message': '数据库错误'})

        return jsonify({'code': 1, 'message': '下单成功'})