def pay_for_service(self): data = parameter_required() if is_tourist(): raise TOKEN_ERROR() if is_admin(): raise AUTHORITY_ERROR(u'请使用普通用户登陆') usid = request.user.id user = self.suser.get_user_by_usid(usid) openid = user.WXopenid if 'umtid' in data: umtid = data.get('umtid') usermoverorder = self.strade.get_mover_order_by_umtid(umtid) if not usermoverorder or usermoverorder.UMTstatus != 0: raise NOT_FOUND() total_fee = usermoverorder.UMTpreviewprice out_trade_no = self.pay.nonce_str self.strade.update_movertrade_detail_by_umtid( umtid, {'sn': out_trade_no}) body = u'邻家搬家' attach = u'mover' elif 'uctid' in data: uctid = data.get('uctid') user_clean_order = self.strade.get_clean_order_by_uctid(uctid) if not user_clean_order or user_clean_order.UCTstatus != 0: raise NOT_FOUND() total_fee = user_clean_order.UCTprice out_trade_no = self.pay.nonce_str self.strade.update_cleanorder_detail_by_uctid( uctid, {'sn': out_trade_no}) body = u'cleaner' attach = u'cleaner' elif 'uftid' in data: uftid = data.get('uftid') user_fixer_order = self.strade.get_fixer_order_by_uftid(uftid) if not user_fixer_order or user_fixer_order.UFTstatus != 0: raise NOT_FOUND() total_fee = user_fixer_order.UFTprice out_trade_no = self.pay.nonce_str self.strade.update_fixerorder_detail_by_uftid( uftid, {'sn': out_trade_no}) body = u'fixer' attach = u'fixer' else: raise PARAMS_ERROR() try: total_fee *= 100 raw = self.pay.jsapi(trade_type="JSAPI", openid=openid, body=body, out_trade_no=out_trade_no, total_fee=int(total_fee), attach=attach, spbill_create_ip=request.remote_addr) res = dict(raw) res['paySign'] = res.get('sign') except WeixinPayError as e: return SYSTEM_ERROR(e.message) return Success(res)
def delete_banner_show(self): """删除轮播""" if not is_admin(): raise AUTHORITY_ERROR('请使用管理员登录') data = parameter_required(('ibid', )) banner = self.sindex.delete_banner_show_by_ibid(data.get('ibid')) message = u'删除成功' if banner else u'要删除的元素不存在' return Success(message, { 'ibid': data.get('ibid') })
def add_server_index(self): """新建首页显示的服务项目""" if not is_admin(): raise AUTHORITY_ERROR('请使用管理员登录') data = parameter_required(('sisimage', 'sislink', 'sissort'), others='ignore') data['SISid'] = str(uuid.uuid4()) self.sindex.add_model('ServerIndexShow', data) return Success(u'添加成功', { 'sisid': data['SISid'] })
def add_banner(self): """新建轮播图, 必要的参数: 图片地址, 顺序标志, 链接""" if not is_admin(): raise AUTHORITY_ERROR('请使用管理员登录') data = parameter_required(('ibimage', 'iblink', 'ibsort'), others='ignore') data['IBid'] = str(uuid.uuid4()) self.sindex.add_model('IndexBanner', data) return Success(u'添加成功', { 'ibid': data['IBid'] })
def delete_server_index_show(self): """删除首页显示的服务""" if not is_admin(): raise AUTHORITY_ERROR('请使用管理员登录') data = parameter_required(('sisid', )) server_index_show = self.sindex.delete_server_index_show(data.get('sisid')) message = u'删除成功' if server_index_show else u'要删除的对象不存在' return Success(message, { 'sisid': data.get('sisid') })
def delete_room_show_by_roid(self): if not is_admin(): raise AUTHORITY_ERROR('请使用管理员登录') data = parameter_required(('roid', )) room_index_show = self.sindex.delete_room_show_by_roid(data.get('roid')) cache.delete("get_index_room_list_data") # 删除缓存 message = u'取消成功' if room_index_show else u'要取消的房源不在首页' return Success(message, { 'roid': data.get('roid') })
def delete_room_show(self): """删除首页显示的整租或合租房源""" if not is_admin(): raise AUTHORITY_ERROR('请使用管理员登录') data = parameter_required(('risid', )) room_index_show = self.sindex.delete_room_show_by_risid(data.get('risid')) cache.delete("get_index_room_list_data") # 删除缓存 message = u'删除成功' if room_index_show else u'要删除的对象不存在' return Success(message, { 'risid': data.get('risid') })
def add_room_show(self): """新建首页显示的合租整租公寓民宿, 必要的参数 房源id, type, 和顺序: """ if not is_admin(): raise AUTHORITY_ERROR('请使用管理员登录') data = parameter_required(('roid', 'rotype', 'rosort'), others='ignore') data['RISid'] = str(uuid.uuid4()) self.sindex.add_model('RoomIndexShow', data) cache.delete("get_index_room_list_data") # 删除缓存 return Success(u'添加成功', { 'risid': data['RISid'] })
def unfreeze_admin(self): """管理员解冻""" if not is_hign_level_admin(): raise TOKEN_ERROR(u'需要高级管理权限') data = parameter_required(('adid', )) adid = data.get('adid') admin = self.suser.get_admin_by_adid(adid) if admin and admin.ADlevel >= request.user.level: raise AUTHORITY_ERROR() unfreezed = self.suser.unfreeze_admin_by_adid(adid) msg = u'操作成功' if unfreezed else u'无此记录' return Success(msg, { 'adid': adid })
def add_admin(self): # 添加管理员, 默认添加0级别管理员 if not is_hign_level_admin(): raise TOKEN_ERROR(u'需要高级管理权限') required = ['adname', 'adusername', 'adpassword', 'admobiel', 'ademail'] data = parameter_required(required) if self.suser.get_admin_by_adusername(data.get('adusername')): raise PARAMS_ERROR(u'用户名重复') validate_phone(data.get('admobiel')) validate_phone(data.get('adphone')) validate_arg('\w+@\w+\.\w+', data.get('ademail'), u'电子邮箱格式不正确') data['adlevel'] = 0 or data.get('adlevel') if data['adlevel'] >= request.user.level: raise AUTHORITY_ERROR() data['adid'] = str(uuid.uuid4()) data['adpassword'] = generate_password_hash(data.get('adpassword')) self.suser.add_model('Admin', data) return Success(u'添加管理员成功', { 'adid': data.get('adid') })