def _post(self): if self.admin.level < 2: return self.render_html('admin/error.html', msg="no permission!") express_name = self.get_argument("express_name") express_no = self.get_argument("express_no") order_id = self.get_argument("order_id") if not all([express_name, express_no, order_id]): return self.render_html('admin/error.html', msg="fields is required!") ugs = UserGoodsService(UserGoods) ug = ugs.get(id=order_id) deliver_info = DeliverInfo() deliver_info.user_goods_id = order_id deliver_info.user_id = ug.user_id deliver_info.goods_id = ug.goods_id deliver_info.goods_name = ug.goods_name deliver_info.number = ug.number deliver_info.express_name = express_name deliver_info.express_no = express_no deliver_info.deliver_address_id = ug.deliver_address_id deliver_info.status = 0 ugs.deliver(deliver_info, {'status': 2}, **{'id': order_id}) self.redirect('/admin/delivered_list')
def _get(self): service = UserGoodsService(UserGoods) feeding, delivered = service.get_count() d = {} for item in feeding: fd = {} fd['goods_id'] = item.goods_id fd['goods_name'] = item.goods_name fd['goods_sum'] = item.sum fd['user_number'] = item.count fd['feeding_num'] = item.count fd['deliver_num'] = 0 d[item.goods_id] = fd for item in delivered: if item.goods_id in d: d[item.goods_id]['goods_sum'] += item.sum d[item.goods_id]['user_number'] += item.count d[item.goods_id]['deliver_num'] = item.count else: dd = {} dd['goods_id'] = item.goods_id dd['goods_name'] = item.goods_name dd['goods_sum'] = item.sum dd['user_number'] = item.count dd['deliver_num'] = item.count dd['feeding_num'] = 0 d[item.goods_id] = dd return self.render_html('admin/main.html',name=self.admin.name, li=map(Odict,d.itervalues()))
def _post(self): status = int(self.get_argument('status', -1)) status_list = [status] if status in [1, 2] else [1, 2, 3] user_goods_service = UserGoodsService(UserGoods) orders = user_goods_service.gets(user_id=self.user.id) order_list = [] for order in orders: if order.status not in status_list: continue d = {} d['order_id'] = order.id d['user_id'] = order.user_id d['goods_id'] = order.goods_id d['goods_name'] = order.goods_name d['number'] = order.number d['feed_day'] = order.feed_day d['deliver_date'] = str(order.deliver_date).split()[0] # d['create_date'] = order.create_date d['status'] = order.status goods = GoodsService(GoodsInfo).get(id=order.goods_id) d['brief'] = goods.brief d['type'] = goods.type d['avatar'] = '' if goods.avatar_id: avatar = AvatarService(AvatarInfo).get(id=goods.avatar_id) d['avatar'] = os.path.join(settings.AVATAR_URL, avatar.filename) if avatar else '' if order.status != 1: di = DeliverService(DeliverInfo).get(user_goods_id=order.id) if di: d['deliver_date'] = str(di.create_date).split()[0] ftext, stext, after = self.get_text(order, d['deliver_date'], goods.type) d['ftext'] = ftext d['stext'] = stext d['after'] = after order_list.append(d) return Result(alert.SUCCESS, data=order_list[::-1])()
def _post(self): user_id = self.get_argument("uid", '') account = self.get_argument("account", '') user_info = None if len(user_id) > 0: user_info = UserInfoService(UserInfo).get(id=int(user_id)) elif len(account) > 0: user_info = UserInfoService(UserInfo).get(account=account) else: return self.render_html('admin/look_user.html', uid='',account='',msg=u'请输入用户ID或用户账号!') if user_info: uinfo = {} uinfo['user_id'] = user_info.id uinfo['account'] = user_info.account uinfo['nickname'] = user_info.nickname uinfo['phone'] = user_info.phone uinfo['deliver_address_id'] = user_info.deliver_address_id user_id = user_info.id user_adress = UserDeliverAddressService(UserDeliverAddress).gets(user_id=user_id, status=1) user_goods = UserGoodsService(UserGoods).gets(user_id=user_id) ugl = [] if user_goods: for item in user_goods: d = {} d['goods_id'] = item.goods_id d['goods_name'] = item.goods_name d['number'] = item.number d['deliver_date'] = item.deliver_date d['status'] = {1:u'待发货',2:u'已发货',3:u'已完成'}.get(item.status) ugl.append(Odict(d)) udal = [] if user_adress: for item in user_adress: d = {} d['name'] = item.name d['phone'] = item.phone d['address'] = u'{0}{1}'.format(item.region_name, item.address) d['region_name'] = item.region_name d['region_id'] = item.region_id udal.append(Odict(d)) uinfo['goods'] = ugl uinfo['address'] = udal return self.render_html('admin/look_user.html',uid=user_id,msg=None,**uinfo) return self.render_html('admin/look_user.html', uid=user_id,account=account,msg=u'该用户不存在!')
def __init__(self, *args, **kwargs): super(GoodsList, self).__init__(*args, **kwargs) self.order_service = UserGoodsService(UserGoods)
class PayResult(TornadoHttpHandler): ''' 支付结果处理 ''' def __init__(self, *args, **kwargs): super(GoodsList, self).__init__(*args, **kwargs) self.order_service = UserGoodsService(UserGoods) @returns(need_login=True, rjson=True) def _get(self): order_code = self.get_argument("order_code", '') if order_code: order = self.order_service.get_by_code(code=order_code) if order: return self.look_unifiedorder(order)() return Result(alert.FAIL, message=u"订单不存在!")() def look_unifiedorder(self, order): ''' 微信统一订单查询 ''' orderquery = { 'appid': constant.WBC['APPID'], 'mch_id': constant.WBC['MCHID'], 'nonce_str': check.get_nonce_str(), 'out_trade_no': order.code } xml = self.get_xml(orderquery) resp = requests.post(constant.WECHAT_QUERY_ORDER, data=xml.encode('utf-8'), headers={'Content-Type': 'text/xml'}) msg = resp.text.encode('ISO-8859-1').decode('utf-8') xmlresp = xmltodict.parse(msg) xmlresp = xmlresp['xml'] if xmlresp['return_code'] == 'SUCCESS': if xmlresp['result_code'] == 'SUCCESS': if xmlresp['trade_state'] == 'SUCCESS': transaction_id = xmlresp['transaction_id'] cash_fee = xmlresp['cash_fee'] user_pay = UserPay() user_pay.user_goods_id = order.id user_pay.transaction_id = transaction_id user_pay.user_id = self.user.id user_pay.goods_id = order.goods_id user_pay.amount = cash_fee user_pay.status = 1 self.order_service.pay(user_pay, {'status':1, 'transaction_id':transaction_id}, id=order.id) return Result(alert.SUCCESS) else: msg = xmlresp['trade_state_desc'] return Result(alert.FAIL, message=msg) else: msg = xmlresp['err_code_des'] return Result(alert.FAIL, message=msg) else: msg = xmlresp['return_msg'] return Result(alert.FAIL, message=msg)
def _post(self): goods_id = int(self.get_argument("goods_id", 0)) p = int(self.get_argument("p", 1)) sign = self.get_argument("sign", "0") now = time.time() startdate = self.get_argument("startdate", time_util.to_str(now, ft="%Y-%m-%d")) if sign == "1": enddate = self.get_argument( "enddate", time_util.to_str(now + 3600 * 24 * 7, ft="%Y-%m-%d")) query_filed = 'deliver_date' status = 1 else: enddate = self.get_argument("enddate", time_util.to_str(now, ft="%Y-%m-%d")) query_filed = 'create_date' status = 0 service = UserGoodsService(UserGoods) address_service = UserDeliverAddressService(UserDeliverAddress) li, num = service.get_by_date(goods_id, query_filed, status, startdate, enddate, p, constants.NUM_PER_PAGE) nl = [] for item in li: d = {} d['order_id'] = item.id d['user_id'] = item.user_id d['goods_id'] = item.goods_id d['goods_name'] = item.goods_name d['number'] = item.number d['deliver_date'] = item.deliver_date d['create_date'] = item.create_date d['status'] = item.status d['status_text'] = { 0: u"待支付", 1: u'待发货', 2: u'已发货', 3: u'已完成' }.get(item.status) address = ( address_service.get(id=item.deliver_address_id, status=1) or address_service.get(id=item.deliver_address_id, status=0)) d['name'] = address.name d['phone'] = address.phone d['address'] = u'{0}{1}'.format(address.region_name, address.address) d['zip_code'] = address.zip_code nl.append(Odict(d)) tp = int(math.ceil(num * 1.0 / constants.NUM_PER_PAGE)) return self.render_html('admin/deliver_list.html', li=nl, enddate=enddate, startdate=startdate, goods_id=goods_id, cp=p, pages=range(1, tp + 1) if tp > 0 else [1], sign=sign, today=time.strftime("%Y-%m-%d"))
def _get(self): order_id = self.get_argument("order_id", '') code = self.get_argument("code", '') ug = None if len(order_id) > 0: ug = UserGoodsService(UserGoods).get(id=int(order_id)) elif len(code) > 0: ug = UserGoodsService(UserGoods).get_by_code(code=code) else: return self.render_html('admin/deliver.html', order_id='', code=code, msg=u'请输入订单ID 或 订单编号!') if not ug: return self.render_html('admin/deliver.html', order_id='', code=code, msg=u'该订单不存在!') info = {} info['order_id'] = ug.id info['code'] = ug.code info['user_id'] = ug.user_id info['goods_id'] = ug.goods_id info['goods_name'] = ug.goods_name info['number'] = ug.number info['feed_day'] = ug.feed_day info['deliver_date'] = ug.deliver_date info['create_date'] = ug.create_date info['status'] = ug.status info['amount'] = '' info['pay_date'] = '' pay = UserPayService(UserPay).get(user_goods_id=order_id) if pay: info['amount'] = pay.amount info['pay_date'] = pay.create_date udas = UserDeliverAddressService(UserDeliverAddress) address = udas.get(id=ug.deliver_address_id, status=1) or udas.get( id=ug.deliver_address_id, status=0) info['name'] = address.name info['phone'] = address.phone info['address'] = u'{0}{1}'.format(address.region_name, address.address) info['express_name'] = '' info['express_no'] = '' info['li'] = [] if ug.status == 1: info['li'] = [ u'乐牧自送', u'顺丰快递', u'圆通快递', u'申通快递', u'中通快递', u'韵达快递', u'天天快递', u'邮政包裹' ] else: service = DeliverService(DeliverInfo) di = service.get(user_goods_id=ug.id) if di: info['deliver_date'] = di.create_date info['express_name'] = di.express_name info['express_no'] = di.express_no info['deliver_date'] = str(info['deliver_date']).split()[0] return self.render_html('admin/deliver.html', msg=None, today=time.strftime("%Y-%m-%d"), **info)
def _get(self): order_id = int(self.get_argument('order_id', 0)) if not order_id: return self.render_html('app/alert.html', msg=u"请选择订单!") user_goods_service = UserGoodsService(UserGoods) order = user_goods_service.get(id=order_id) if not order: return self.render_html('app/alert.html', msg=u"该订单不存在!") info = {} info['order_id'] = order.id info['code'] = order.code info['user_id'] = order.user_id info['goods_id'] = order.goods_id info['goods_name'] = order.goods_name info['number'] = order.number info['feed_day'] = order.feed_day info['deliver_date'] = str(order.deliver_date).split()[0] info['create_date'] = order.create_date info['status'] = order.status udas = UserDeliverAddressService(UserDeliverAddress) address = udas.get(id=order.deliver_address_id, status=1) or udas.get( id=order.deliver_address_id, status=0) info['name'] = address.name info['phone'] = address.phone info['address'] = u'{0}{1}'.format(address.region_name, address.address) info['zip_code'] = address.zip_code goods = GoodsService(GoodsInfo).get(id=order.goods_id) info['type'] = goods.type info['avatar'] = '' if goods.avatar_id: avatar = AvatarService(AvatarInfo).get(id=goods.avatar_id) info['avatar'] = os.path.join(settings.AVATAR_URL, avatar.filename) if avatar else '' info['goods_price'] = order.goods_price info['amount'] = 0 info['pay_date'] = '' info['discount'] = 0 pay = UserPayService(UserPay).get(user_goods_id=order_id) if pay: info['amount'] = pay.amount info['pay_date'] = pay.create_date info['discount'] = order.goods_price * order.number - pay.amount info['express_name'] = '' info['express_no'] = '' if order.status != 1: di = DeliverService(DeliverInfo).get(user_goods_id=order_id) if di: info['deliver_date'] = str(di.create_date).split()[0] info['express_name'] = di.express_name info['express_no'] = di.express_no ftext, stext, after = self.get_text(order, info['deliver_date'], goods.type) info['ftext'] = ftext info['stext'] = stext info['after'] = after return self.render_html('app/order_detail.html', **info)