def get(self, oiid): result = {'status' : False, 'msg' : 0} user = self.get_current_user() if user: try: orderitem = OrderItem.get(id = oiid) order = Order.get(id = orderitem.oid) if order.uid == user.id: if OrderItem.select().where(OrderItem.oid == orderitem.oid).count() == 1: order.delete_instance() if user.order > 0: user.order = user.order - 1 user.save() self.session['user'] = user self.session.save() orderitem.delete_instance() result['status'] = True result['msg'] = 200 else: result['msg'] = 403 except Exception, ex: logging.error(ex) result['msg'] = 500
def get(self, oid): try: order = Order.get(id = oid) except: pass self.render("admin/changeorder.html", order = order)
def post(self, oid, sid): result = {'status' : False, 'msg' : 0} user = self.get_current_user() if user: try: order = Order.get(id = oid) if order.uid == user.id: try: orderitem = OrderItem.get(OrderItem.oid == oid, OrderItem.sid == sid) except: orderitem = OrderItem() orderitem.oid = oid orderitem.sid = sid orderitem.num = orderitem.num + 1 try: orderitem.save() result['status'] = True result['msg'] = 200 except Exception, ex: logging.error(ex) result['msg'] = 500 else: result['msg'] = 403
def check_order_store_quantity(store_id, oid): result = 0 items = OrderItem.select().where(OrderItem.order == oid) r = 0 if store_id: for i in items: if i.product.is_store == 1: # and i.product.store.id == int(store_id) r += 1 else: r += check_store_product_quantity(store_id, i.product_standard.id) if r == items.count(): result = 1 else: list = [] order = Order.get(Order.id == oid) store = Store.select().where(Store.status == 1) sid = 0 for s in store: ss = getDistanceAS(order.take_address.replace(' ', ''), s.id) if ss['flag'] == 1: list.append(float(ss['data'])) if float(ss['data']) < setting.PeiSongDistance: sid = s.id for i in items: if i.product.is_store == 1 and i.product.store.id == sid: r += 1 else: r += check_store_product_quantity(sid, i.product_standard.id) if r == items.count(): result = 1 return result
def get(self): orderitems = [] user = self.current_user try: order = Order.get(uid=user.id, status=0) for orderitem in OrderItem.select().where( OrderItem.oid == order.id).dicts(): try: orderitem['shop'] = Shop.get(id=orderitem['sid']) if orderitem['said'] > 0: orderitem['shopattr'] = ShopAttr.get( id=orderitem['said']) orderitems.append(orderitem) except: pass except: order = Order() ashops = Shop.select().where((Shop.cid == 2) & (Shop.status != 9)) self.render("shop/order.html", orderitems=orderitems, order=order, ashops=ashops)
def get(self, oid): try: order = Order.get(id=oid) except: pass self.render("admin/changeorder.html", order=order)
def get(self, oid): orderitems = [] price = 0.0 credit = 0.0 order = None try: order = Order.get(id = oid) print order.id for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts(): try: orderitem['shop'] = Shop.get(id = orderitem['sid']) _oiprice = orderitem['shop'].price if orderitem['said'] > 0: orderitem['shopattr'] = ShopAttr.get(id = orderitem['said']) if orderitem['shop'].cid == 1: _oicredit = orderitem['shopattr'].price credit = credit + _oicredit * orderitem['num'] _oiprice = orderitem['shopattr'].price else: _oiprice = orderitem['shopattr'].price else: _oiprice = float(_oiprice) orderitems.append(orderitem) price = price + float(_oiprice) * orderitem['num'] except: pass print price except: pass self.render("/responsive/user_confirmorder.html", order = order, credit = credit, orderitems = orderitems)
def post(self, oid, sid): result = {'status': False, 'msg': 0} user = self.get_current_user() if user: try: order = Order.get(id=oid) if order.uid == user.id: try: orderitem = OrderItem.get(OrderItem.oid == oid, OrderItem.sid == sid) except: orderitem = OrderItem() orderitem.oid = oid orderitem.sid = sid orderitem.num = orderitem.num + 1 try: orderitem.save() result['status'] = True result['msg'] = 200 except Exception, ex: logging.error(ex) result['msg'] = 500 else: result['msg'] = 403
def get(self, oiid): result = {'status': False, 'msg': 0} user = self.get_current_user() if user: try: orderitem = OrderItem.get(id=oiid) order = Order.get(id=orderitem.oid) if order.uid == user.id: if OrderItem.select().where( OrderItem.oid == orderitem.oid).count() == 1: order.delete_instance() if user.order > 0: user.order = user.order - 1 user.save() self.session['user'] = user self.session.save() orderitem.delete_instance() result['status'] = True result['msg'] = 200 else: result['msg'] = 403 except Exception, ex: logging.error(ex) result['msg'] = 500
def get(self): orderitems = [] user = self.current_user order = None distributions = self.get_distributions() price = 0.0 credit = 0.0 try: order = Order.get(uid=user.id, status=0) try: mobile = '18014349809' sendmsg(self.settings, mobile, '新订单') except: pass for orderitem in OrderItem.select().where( OrderItem.oid == order.id).dicts(): try: orderitem['shop'] = Shop.get(id=orderitem['sid']) _oiprice = orderitem['shop'].price if orderitem['said'] > 0: orderitem['shopattr'] = ShopAttr.get( id=orderitem['said']) if orderitem['shop'].cid == 1: _oicredit = orderitem['shopattr'].price credit = credit + _oicredit * orderitem['num'] else: _oiprice = orderitem['shopattr'].price else: _oiprice = float(_oiprice) orderitems.append(orderitem) price = price + _oiprice * orderitem['num'] except: pass order.price = price order.save() except: pass if orderitems: self.render("shop/settle.html", tmday=datetime.date.today() + datetime.timedelta(days=1), order=order, orderitems=orderitems, distributions=distributions.values(), credit=credit)
def post(self): result = {'status': False, 'msg': 0} user = self.get_current_user() if user: sid = int(self.get_argument("sid", 0)) said = int(self.get_argument("said", 0)) num = int(self.get_argument("num", 1)) #判断商品是否下架 if sid > 0 and said > 0 and num > 0: try: Shop.get(id=sid) ShopAttr.get(id=said) #判断是否有未使用的订单或生成新订单 try: try: order = Order.get(uid=user.id, status=0) except: order = Order() order.uid = user.id order.mobile = user.mobile order.ordered = int(time.time()) try: order.save() except Exception, ex: logging.error(ex) try: orderitem = OrderItem.get(oid=order.id, sid=sid, said=said) except: orderitem = OrderItem() orderitem.oid = order.id orderitem.sid = sid orderitem.said = said orderitem.num = orderitem.num + num orderitem.save() result['status'] = True result['msg'] = 200 except Exception, ex: logging.error(ex) result['msg'] = 500 except:
def post(self): result = {'status' : False, 'msg' : 0} user = self.get_current_user() if user: sid = int(self.get_argument("sid", 0)) said = int(self.get_argument("said", 0)) num = int(self.get_argument("num", 1)) #判断商品是否下架 if sid > 0 and said > 0 and num > 0: try: Shop.get(id = sid) ShopAttr.get(id = said) #判断是否有未使用的订单或生成新订单 try: try: order = Order.get(uid = user.id, status = 0) except: order = Order() order.uid = user.id order.mobile = user.mobile order.ordered = int(time.time()) try: order.save() except Exception, ex: logging.error(ex) try: orderitem = OrderItem.get(oid = order.id, sid = sid, said = said) except: orderitem = OrderItem() orderitem.oid = order.id orderitem.sid = sid orderitem.said = said orderitem.num = orderitem.num + num orderitem.save() result['status'] = True result['msg'] = 200 except Exception, ex: logging.error(ex) result['msg'] = 500 except:
def get(self): orderitems = [] user = self.current_user order = None distributions = self.get_distributions() price = 0.0 credit = 0.0 try: order = Order.get(uid = user.id, status = 0) try: mobile = '18014349809' sendmsg(self.settings, mobile, '新订单') except: pass for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts(): try: orderitem['shop'] = Shop.get(id = orderitem['sid']) _oiprice = orderitem['shop'].price if orderitem['said'] > 0: orderitem['shopattr'] = ShopAttr.get(id = orderitem['said']) if orderitem['shop'].cid == 1: _oicredit = orderitem['shopattr'].price credit = credit + _oicredit * orderitem['num'] else: _oiprice = orderitem['shopattr'].price else: _oiprice = float(_oiprice) orderitems.append(orderitem) price = price + _oiprice * orderitem['num'] except: pass order.price = price order.save() except: pass if orderitems: self.render("shop/settle.html", tmday = datetime.date.today() + datetime.timedelta(days=1), order = order, orderitems = orderitems, distributions = distributions.values(), credit = credit)
def post(self): alipay = Alipay(**self.settings) params = {} ks = list(self.request.arguments.keys()) for k in ks: params[k] = self.get_argument(k) if alipay.notify_verify(params): tn = self.get_argument("out_trade_no", None) trade_no = self.get_argument("trade_no", None) trade_status = self.get_argument("trade_status", None) logging.info("notify:%s - %s - %s" % (tn, trade_no, trade_status)) oid = int(tn.split('-')[1].replace('S', '')) try: order = Order.get(id = oid) if order.status == 0: order.status = 1 order.save() user = User.get(id = order.uid) user.credit = user.credit + int(order.price) user.save() log = CreditLog() log.uid = order.uid log.mobile = user.mobile log.ctype = 0 log.affect = int(order.price) log.log = '成功下单 - %s' % tn log.save() except Exception as ex: logging.error(ex) if trade_status == 'WAIT_SELLER_SEND_GOODS': alipay.send_goods_confirm_by_platform(trade_no) self.write("success") else: self.write("fail")
def post(self): alipay = Alipay(**self.settings) params = {} ks = self.request.arguments.keys() for k in ks: params[k] = self.get_argument(k) if alipay.notify_verify(params): tn = self.get_argument("out_trade_no", None) trade_no = self.get_argument("trade_no", None) trade_status = self.get_argument("trade_status", None) logging.info("notify:%s - %s - %s" % (tn, trade_no, trade_status)) oid = int(tn.split('-')[1].replace('S', '')) try: order = Order.get(id = oid) if order.status == 0: order.status = 1 order.save() user = User.get(id = order.uid) user.credit = user.credit + int(order.price) user.save() log = CreditLog() log.uid = order.uid log.mobile = user.mobile log.ctype = 0 log.affect = int(order.price) log.log = u'成功下单 - %s' % tn log.save() except Exception, ex: logging.error(ex) if trade_status == 'WAIT_SELLER_SEND_GOODS': alipay.send_goods_confirm_by_platform(trade_no) self.write("success")
def get(self): alipay = Alipay(**self.settings) params = {} ks = list(self.request.arguments.keys()) for k in ks: params[k] = self.get_argument(k) if alipay.notify_verify(params): tn = self.get_argument("out_trade_no", None) trade_no = self.get_argument("trade_no", None) trade_status = self.get_argument("trade_status", None) logging.info("return:%s - %s - %s" % (tn, trade_no, trade_status)) oid = int(tn.split('-')[1].replace('S', '')) try: order = Order.get(id = oid) order.status = 1 order.save() user = User.get(id = order.uid) user.credit = user.credit + int(order.price) user.save() log = CreditLog() log.uid = order.uid log.mobile = user.mobile log.ctype = 0 log.affect = int(order.price) log.log = '成功下单 - %s' % tn log.save() self.session['user'] = user self.session.save() alipay.send_goods_confirm_by_platform(trade_no) self.flash("支付成功") except Exception as ex: logging.error(ex) else: self.flash("支付失败") self.redirect("/pay")
def get(self): alipay = Alipay(**self.settings) params = {} ks = self.request.arguments.keys() for k in ks: params[k] = self.get_argument(k) if alipay.notify_verify(params): tn = self.get_argument("out_trade_no", None) trade_no = self.get_argument("trade_no", None) trade_status = self.get_argument("trade_status", None) logging.info("return:%s - %s - %s" % (tn, trade_no, trade_status)) oid = int(tn.split('-')[1].replace('S', '')) try: order = Order.get(id = oid) order.status = 1 order.save() user = User.get(id = order.uid) user.credit = user.credit + int(order.price) user.save() log = CreditLog() log.uid = order.uid log.mobile = user.mobile log.ctype = 0 log.affect = int(order.price) log.log = u'成功下单 - %s' % tn log.save() self.session['user'] = user self.session.save() alipay.send_goods_confirm_by_platform(trade_no) self.flash("支付成功") except Exception, ex: logging.error(ex) else: self.flash("支付失败")
def get(self): orderitems = [] user = self.current_user try: order = Order.get(uid = user.id, status = 0) for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts(): try: orderitem['shop'] = Shop.get(id = orderitem['sid']) if orderitem['said'] > 0: orderitem['shopattr'] = ShopAttr.get(id = orderitem['said']) orderitems.append(orderitem) except: pass except: order = Order() ashops = Shop.select().where((Shop.cid == 2) & (Shop.status != 9)) self.render("shop/order.html", orderitems = orderitems, order = order, ashops = ashops)
def buy(): if request.method == 'POST' and request.form['name']: order = Order( # goods = request.form['goods'], name=request.form['name'], phone=request.form['phone'], pay_method=request.form['payment'], del_method=request.form['delivery'], ) order.save() # huey = Goods.get(Goods.id == 2) # cs1 = Order.get(Order.id == 2) # huey.orders.add(cs1) # id_goods = request.form['goods'].split() for id in id_goods: huey = Goods.get(Goods.id == id) huey.orders.add(Order.get(Order.id == order.id)) return redirect(url_for('goods_list'))
def get(self): orderitems = [] user = self.current_user order = None distributions = self.get_distributions() price = 0.0 credit = 0.0 try: order = Order.get(uid=user.id, status=0) print order.id ''' try: mobile = '18014349809' sendmsg(self.settings, mobile, '新订单') except: pass ''' for orderitem in OrderItem.select().where( OrderItem.oid == order.id).dicts(): try: orderitem['shop'] = Shop.get(id=orderitem['sid']) _oiprice = orderitem['shop'].price if orderitem['said'] > 0: orderitem['shopattr'] = ShopAttr.get( id=orderitem['said']) if orderitem['shop'].cid == 1: _oicredit = orderitem['shopattr'].price credit = credit + _oicredit * orderitem['num'] _oiprice = orderitem['shopattr'].price else: _oiprice = orderitem['shopattr'].price else: _oiprice = float(_oiprice) orderitems.append(orderitem) price = price + float(_oiprice) * orderitem['num'] except: pass print price price_pay = str(int(price * 100)) print 'price_pay:' + price_pay openid = user.openid print 'wx_pay:' + openid jsApi = JsApi_pub() unifiedOrder = UnifiedOrder_pub() unifiedOrder.setParameter("openid", openid) #商品描述 unifiedOrder.setParameter("body", "菜市优品购物") #商品描述 timeStamp = time.time() print timeStamp out_trade_no = "{0}{1}".format(WxPayConf_pub.APPID, int(timeStamp * 100)) unifiedOrder.setParameter("out_trade_no", out_trade_no) #商户订单号 print 'out_trade_no:' + out_trade_no Order.update(wxid=out_trade_no).where( Order.id == order.id).execute() unifiedOrder.setParameter("total_fee", price_pay) #总金额 print WxPayConf_pub.NOTIFY_URL unifiedOrder.setParameter("notify_url", WxPayConf_pub.NOTIFY_URL) #通知地址 unifiedOrder.setParameter("trade_type", "JSAPI") #交易类型 prepay_id = unifiedOrder.getPrepayId() jsApi.setPrepayId(prepay_id) jsApiParameters = jsApi.getParameters() print jsApiParameters appid = json.loads(jsApiParameters).get("appId") timestamp = json.loads(jsApiParameters).get("timeStamp") noncestr = json.loads(jsApiParameters).get("nonceStr") package = json.loads(jsApiParameters).get("package") signtype = json.loads(jsApiParameters).get("signType") paysign = json.loads(jsApiParameters).get("paySign") print appid + timestamp + noncestr + package + signtype + paysign if orderitems: self.render("/responsive/wxpay.html", tmday=datetime.date.today() + datetime.timedelta(days=1), order=order, orderitems=orderitems, distributions=distributions.values(), credit=credit, appid=appid, timestamp=timestamp, noncestr=noncestr, package=package, signtype=signtype, paysign=paysign) except: pass
def get(self, oid): o = Order.get(id=oid) self.render('/store/order/order_detail.html', o=o, active='orders')
def post(self): order = None user = self.get_current_user() try: order = Order.get(uid = user.id, status = 0) mobile = self.get_argument("mobile", user.mobile) uaid = self.get_argument("uaid", None) distrid = self.get_argument("distrid", None) day = self.get_argument("day", datetime.date.today() + datetime.timedelta(days=1)) hour = int(self.get_argument("hour", 10)) payment = self.get_argument("payment", 0) message = self.get_argument("message", "") isinvoice = self.get_argument("isinvoice", 0) invoicesub = self.get_argument("invoicesub", 0) invoicename = self.get_argument("invoicename", "") invoicecontent = self.get_argument("payment", 1) shippingprice = self.get_argument("shippingprice", 0.0) if uaid and distrid: try: distrib = Distribution.get(id = distrid) shippingprice = distrib.price except: pass order.mobile = mobile order.uaid = uaid order.distrid = distrid order.distribbed = "%s %d:00:00" % (str(day), hour) order.payment = payment order.message = message order.isinvoice = isinvoice if isinvoice: order.invoicesub = invoicesub order.invoicename = invoicename order.invoicecontent = invoicecontent order.shippingprice = shippingprice order.save() body = "" for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts(): try: shop = Shop.get(id = orderitem['sid']) sname = "" if orderitem['said'] > 0: shopattr = ShopAttr.get(id = orderitem['said']) if shop.cid == 1: credits = shopattr.price * orderitem['num'] if credits > user.credit: OrderItem.delete().where(OrderItem.id == orderitem['id']).execute() else: user = User.get(id = user.id) user.credit = user.credit - credits user.save() clog = CreditLog() clog.uid = user.id clog.mobile = user.mobile clog.ctype = 1 clog.affect = int(credits) clog.log = u"购买" + shop.name clog.save() self.session['user'] = user self.session.save() sname = shopattr.name #body = body + shop.name + " " + sname + " " + str(orderitem['num']) + "个\n" body = body + shop.name + " " + sname + " " + str(orderitem['num']) except Exception, ex: logging.error(ex) tn = "U%d-S%d" % (user.id, order.id) if int(payment) == 1: self.redirect("/alipay/topay?tn=%s&body=%s&price=%f" % (tn, body, order.price)) else: self.flash(u"请选择地址和收货方式") self.redirect("/user/orders") else:
def post(self): order = None user = self.get_current_user() try: order = Order.get(uid=user.id, status=0) mobile = self.get_argument("mobile", user.mobile) uaid = self.get_argument("uaid", None) distrid = self.get_argument("distrid", None) day = self.get_argument( "day", datetime.date.today() + datetime.timedelta(days=1)) hour = int(self.get_argument("hour", 10)) payment = self.get_argument("payment", 0) message = self.get_argument("message", "") isinvoice = self.get_argument("isinvoice", 0) invoicesub = self.get_argument("invoicesub", 0) invoicename = self.get_argument("invoicename", "") invoicecontent = self.get_argument("payment", 1) shippingprice = self.get_argument("shippingprice", 0.0) if uaid and distrid: try: distrib = Distribution.get(id=distrid) shippingprice = distrib.price except: pass order.mobile = mobile order.uaid = uaid order.distrid = distrid order.distribbed = "%s %d:00:00" % (str(day), hour) order.payment = payment order.message = message order.isinvoice = isinvoice if isinvoice: order.invoicesub = invoicesub order.invoicename = invoicename order.invoicecontent = invoicecontent order.shippingprice = shippingprice order.save() body = "" for orderitem in OrderItem.select().where( OrderItem.oid == order.id).dicts(): try: shop = Shop.get(id=orderitem['sid']) sname = "" if orderitem['said'] > 0: shopattr = ShopAttr.get(id=orderitem['said']) if shop.cid == 1: credits = shopattr.price * orderitem['num'] if credits > user.credit: OrderItem.delete().where( OrderItem.id == orderitem['id']).execute() else: user = User.get(id=user.id) user.credit = user.credit - credits user.save() clog = CreditLog() clog.uid = user.id clog.mobile = user.mobile clog.ctype = 1 clog.affect = int(credits) clog.log = u"购买" + shop.name clog.save() self.session['user'] = user self.session.save() sname = shopattr.name body = body + shop.name + " " + sname + " " + str( orderitem['num']) + "个\n" except Exception, ex: logging.error(ex) tn = "U%d-S%d" % (user.id, order.id) if int(payment) == 1: self.redirect("/alipay/topay?tn=%s&body=%s&price=%f" % (tn, body, order.price)) else: self.flash(u"请选择地址和收货方式") self.redirect("/user/orders") else:
def get(self): orderitems = [] user = self.current_user order = None distributions = self.get_distributions() price = 0.0 credit = 0.0 try: order = Order.get(uid = user.id, status = 0) print order.id ''' try: mobile = '18014349809' sendmsg(self.settings, mobile, '新订单') except: pass ''' for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts(): try: orderitem['shop'] = Shop.get(id = orderitem['sid']) _oiprice = orderitem['shop'].price if orderitem['said'] > 0: orderitem['shopattr'] = ShopAttr.get(id = orderitem['said']) if orderitem['shop'].cid == 1: _oicredit = orderitem['shopattr'].price credit = credit + _oicredit * orderitem['num'] _oiprice = orderitem['shopattr'].price else: _oiprice = orderitem['shopattr'].price else: _oiprice = float(_oiprice) orderitems.append(orderitem) price = price + float(_oiprice) * orderitem['num'] except: pass print price price_pay = str(int(price*100)) print 'price_pay:' + price_pay openid = user.openid print 'wx_pay:'+ openid jsApi = JsApi_pub() unifiedOrder = UnifiedOrder_pub() unifiedOrder.setParameter("openid",openid) #商品描述 unifiedOrder.setParameter("body","菜市优品购物") #商品描述 timeStamp = time.time() print timeStamp out_trade_no = "{0}{1}".format(WxPayConf_pub.APPID, int(timeStamp*100)) unifiedOrder.setParameter("out_trade_no", out_trade_no) #商户订单号 print 'out_trade_no:' + out_trade_no Order.update(wxid = out_trade_no).where(Order.id == order.id).execute() unifiedOrder.setParameter("total_fee", price_pay) #总金额 print WxPayConf_pub.NOTIFY_URL unifiedOrder.setParameter("notify_url", WxPayConf_pub.NOTIFY_URL) #通知地址 unifiedOrder.setParameter("trade_type", "JSAPI") #交易类型 prepay_id = unifiedOrder.getPrepayId() jsApi.setPrepayId(prepay_id) jsApiParameters = jsApi.getParameters() print jsApiParameters appid = json.loads(jsApiParameters).get("appId") timestamp = json.loads(jsApiParameters).get("timeStamp") noncestr = json.loads(jsApiParameters).get("nonceStr") package = json.loads(jsApiParameters).get("package") signtype = json.loads(jsApiParameters).get("signType") paysign = json.loads(jsApiParameters).get("paySign") print appid + timestamp + noncestr + package + signtype +paysign if orderitems: self.render("/responsive/wxpay.html", tmday = datetime.date.today() + datetime.timedelta(days=1), order = order, orderitems = orderitems, distributions = distributions.values(), credit = credit, appid = appid, timestamp = timestamp, noncestr = noncestr, package = package, signtype = signtype, paysign = paysign) except: pass