def smscaptcha_request(r, phone): # 校验验证码 if r.c_type == Const['model.device.pc']: rand_code = r.REQUEST['rand_code'] # rand_code_arr = ['X3NC', '4MPQ', '8FAE', 'YG9H', 'MYAV', '2B7Q', '83EJ', 'HE4S', 'GAWQ', 'RWTU'] # if not rand_code_arr[int(rand_pic)] == rand_code: # return JsonResponse(code=Const['code.system_error'], msg='请输入正确验证码') if not r.session['randcode'] == rand_code.lower(): return JsonResponse(code=Const['code.system_error'], msg='请输入正确验证码') capt = str(randint(100000, 999999)) nowtime = msec_time() if phone in [13586280698]: return JsonResponse(code=Const['code.request_error']) try: s = Smscaptcha.objects.get(phone=phone) s.create_time = nowtime s.captcha = capt s.save() except ObjectDoesNotExist: s = Smscaptcha.objects.create(phone=phone, captcha=capt, create_time=nowtime) result = SMSService.sendTemplateSMS(phone, [capt, Const['sms.valid.time']], 133993) if (result['statusCode'] == '000000'): return JsonResponse(code=Const['code.success']) else: logger.error(result) return JsonResponse(code=Const['code.system_error'], msg='发送短信验证码失败')
def user_this(request): if 'user_id' in request.session: return JsonResponse( code=Const['code.success'], data=User.objects.get(pk=request.session['user_id']).to_data()) else: return JsonResponse(code=Const['code.permission_deny'])
def user_publicinfo(r, uid): try: user = User.objects.get(pk=uid) except Exception: return JsonResponse(code=Const['code.user.nonexists']) return JsonResponse(code=Const['code.success'], data=user.to_sub_dict('id', 'photo'))
def tbaccount_verify(r, tid): tb = TBAccount.objects.get(pk=tid) if obj_verify(r, tb, 'verify_status', 'status'): tb.user.notice_set(Const['model.remind.tb_verify'], True) # tb.user.save() return JsonResponse(code=Const['code.success']) else: return JsonResponse(code=Const['code.request_error'])
def user_setbuyerlevel(r, uid): u = User.objects.get(pk=uid) level = int(r.REQUEST['level']) if level < 1 or level > 6: return JsonResponse(code=Const['code.request_error']) u.buyer_level = level u.save() return JsonResponse(code=Const['code.success'])
def recharge_create(r): form = RechargeForm(r.POST) if form.is_valid(): data = form.cleaned_data data['user_id'] = r.REQUEST['user_id'] Recharge.objects.create(**data) return JsonResponse(code=Const['code.success']) return JsonResponse(code=Const['code.request_error'])
def user_verify(r, uid): user = User.objects.get(pk=uid) if obj_verify(r, user): user.notice_set(Const['model.remind.idc_verify'], True) # 身份验证信息变更的通知 # user.save() return JsonResponse(code=Const['code.success']) else: return JsonResponse(code=Const['code.request_error'])
def bankcard_verify(r, bid): bankcard = Bankcard.objects.get(pk=bid) if obj_verify(r, bankcard): bankcard.user.notice_set(Const['model.remind.bankcard_verify'], True) # 银行卡验证信息变更的通知 # bankcard.user.save() return JsonResponse(code=Const['code.success']) else: return JsonResponse(code=Const['code.request_error'])
def administrator_login(r): params = r.REQUEST admin = Administrator.objects.filter(adminname=params['adminname'], password=params['password']) if not admin: return JsonResponse(code=Const['code.login_error']) else: r.session['admin_id'] = admin[0].id return JsonResponse(code=Const['code.success'])
def user_setimei(r, uid): if 'imei' not in r.REQUEST or r.REQUEST['imei'] is None or r.REQUEST[ 'imei'] == '': logger.info(str(uid) + ' has no imei') return JsonResponse(code=Const['code.success']) user = User.objects.get(pk=uid) user.imei = r.REQUEST['imei'] user.save(update_fields=['imei']) return JsonResponse(code=Const['code.success'])
class SetRequestDevice(): def process_request(self, request): request.c_version = '' request.c_versioncode = 0 request.c_type = Const['model.device.unknown'] request.c_userid = 0 if request.path.startswith('/rest'): useragent = '' try: useragent = request.META['HTTP_USER_AGENT'] except KeyError: pass try: if request.path.startswith('/rest_web/'): request.c_type = Const['model.device.pc'] request.c_versioncode = 1 else: clienttype = request.META['HTTP_X_REQUEST_CLIENT'] #logger.info('client(%s) url:%s'%(clienttype,request.path)) arr = clienttype.split(';') request.c_version = arr[2] request.c_versioncode = int(arr[1]) if arr[0] == 'Android': request.c_type = Const['model.device.android'] elif arr[0] == 'iOS': request.c_type = Const['model.device.ios'] except KeyError, e: #print e pass except Exception, e1: logger.error('process_request exception %s' % e1) pass # 这个日志太多了也没啥用 # RequestLog.objects.create(url=request.path, c_type=request.c_type,\ # c_version=request.c_version, c_versioncode=request.c_versioncode, useragent=useragent) if request.c_type == 0: # 个人任务列表+签到奖励+可接任务列表 屏蔽 低版本 if (useragent == None or useragent == '' \ or (useragent != None and useragent != '' and not useragent.startswith('tbTasker/'))) \ and (request.path.startswith('/rest/tasks/order/listavaliable') \ or request.path.startswith('/rest/users/user/award/') \ or request.path.startswith('/rest/users/user/listbuyerorder/')) : return JsonResponse( code=Const['code.global.client_unsupport']) # ios 低版本屏蔽所有接口 if useragent != None and useragent != '' and useragent.startswith( 'tbTasker/'): return JsonResponse( code=Const['code.global.client_unsupport']) elif request.c_type==1 and request.c_versioncode < 28\ and (request.path.startswith('/rest/tasks/order/listavaliable') \ or request.path.startswith('/rest/users/user/award/') \ or request.path.startswith('/rest/users/user/listbuyerorder/') \ or request.path.startswith('/rest/users/user/login')): #低于28的版本+屏蔽登录接口 return JsonResponse(code=Const['code.global.client_unsupport'])
def inner(request, *args, **kwarg): if not 'admin_id' in request.session: return JsonResponse(code=Const['code.permission_deny']) aid = int(request.session['admin_id']) admin = Administrator.objects.get(pk=aid) if getattr(admin, ptype + '_permission'): request.admin_id = aid return f(request, *args, **kwarg) else: return JsonResponse(code=Const['code.permission_deny'])
def user_changepwd(r, uid): params = r.REQUEST old_password = params['old_password'] new_password = params['new_password'] u = User.objects.get(pk=uid) if old_password == u.password: u.password = new_password u.save() return JsonResponse(code=Const['code.success']) else: return JsonResponse(code=Const['code.password_error'])
def notice_create(r): form = NoticeForm(r.POST) if form.is_valid(): notice = form.save(commit=False) notice.publish_admin_id = r.admin_id notice.important = bool(int(r.POST['important'])) notice.save() if not notice.url: notice.url = 'http://www.shouzhuanvip.com/notice/%d' % notice.id notice.save() return JsonResponse(code=Const['code.success']) return JsonResponse(code=Const['code.request_error'])
def user_createbankcard(request, user_id): form = BankcardForm(request.POST) if Bankcard.objects.filter(account_id=form.data['account_id']).count() > 0: return JsonResponse(code=Const['code.bankcard.repeat']) user = get_object_or_404(User, pk=user_id) if form.is_valid(): bankcard = form.save(commit=False) bankcard.user_id = user_id bankcard.save() return JsonResponse(code=Const['code.success'], data=bankcard.to_dict()) return JsonResponse(code=Const['code.request_error'], errmsg=form.errors)
def user_award(r, uid): user = User.objects.get(pk=uid) now = msec_time() last = user.last_award_time if (not last) or (get_date_by_stamp(now) != get_date_by_stamp(last)): award = random.uniform(Const['min.award'], Const['max.award']) user.money_operate(Const['model.record.commission'], award, '签到奖励', Const['model.record.category.signup']) user.last_award_time = now user.save() return JsonResponse(code=Const['code.success'], data={'award': award}) else: return JsonResponse(code=Const['code.award.already.receive'])
def user_forgetpwd(r): params = r.REQUEST phone = params['phone'] new_password = params['new_password'] captcha = params['captcha'] try: u = User.objects.get(phone=phone) except ObjectDoesNotExist: return JsonResponse(code=Const['code.user_not_exists']) if _smscaptcha_verify(phone, captcha): u.password = new_password u.save() return JsonResponse(code=Const['code.success']) else: return JsonResponse(code=Const['code.sms_error'])
def user_setidc(request, user_id): user_id = int(user_id) user = get_object_or_404(User, pk=user_id) form = IdcForm(request.POST) if form.is_valid(): user.idc_name = form.cleaned_data['idc_name'] # user.idc_number = form.cleaned_data['idc_number'] user.idc_photo = json.dumps([ form.cleaned_data['idc_photo1'], form.cleaned_data['idc_photo2'], ]) user.verify_status = Const['model.verify.need_check'] user.save() return JsonResponse(code=Const['code.success']) return JsonResponse(code=Const['code.request_error'], errmsg=form.errors)
def user_updatesellerlevel(r, uid): uid = int(uid) level = int(r.REQUEST['seller_level']) user = User.objects.get(pk=uid) user.seller_level = level user.save() return JsonResponse(code=Const['code.success'])
def user_storeinfo(r, uid): store_list = Store.objects.filter(user_id=uid) data = [] for b in store_list: d = b.to_dict() data.append(d) return JsonResponse(code=Const['code.success'], data=data)
def user_setqq(request, user_id): user_id = int(user_id) user = get_object_or_404(User, pk=user_id) qq = request.POST['qq'] user.qq = qq user.save() return JsonResponse(code=Const['code.success'])
def inner(request, *args, **kwarg): print request.c_versioncode if 'Android' in request.META.get( 'HTTP_X_REQUEST_CLIENT') and request.c_versioncode < 78: return JsonResponse(code=-1000, msg=u'版本太低,请查看公告下载最新版本') else: return f(request, *args, **kwarg)
def notice_sets(r, uid): user = User.objects.get(pk=uid) params = r.REQUEST logger.info(params) if 'bit' in params: n = int(params['bit']) user.notice_set(n, False) # user.save() data = [] for i in range(15): if user.notice_has(i) == 1: d = 100 + i data.append(d) return JsonResponse(code=Const['code.success'], data=data) else: return JsonResponse(code=Const['code.request_error'])
def tb_modify(r): frozen_days = r.REQUEST["frozen_days"] tb_id = r.REQUEST["tb_id"] tb = TBAccount.objects.get(id=tb_id) if not frozen_days == '0': tb.frozen_days = frozen_days tb.is_frozen = 1 tb.frozen_start_datetime = datetime.datetime.now() else: tb.is_frozen = 0 tb.phone = r.REQUEST["phone"] tb.place = r.REQUEST["place"] tb.address = r.REQUEST["address"] tb.register_time = r.REQUEST["register_time"] tb.age = r.REQUEST["age"] tb.gender = r.REQUEST["gender"] tb.wangwang_level = r.REQUEST['wangwang_level'] tb.is_credit_card_open = r.REQUEST['is_credit_card_open'] tb.is_huabei_open = r.REQUEST['is_huabei_open'] tb.save() tb.user.qq = r.REQUEST['qq'] order_money_limit = r.REQUEST['order_money_limit'] if not order_money_limit: tb.user.order_money_limit = None else: tb.user.order_money_limit = order_money_limit tb.user.save() return JsonResponse(code=Const['code.success'])
def user_listidc(r): start, num = get_paginator(r) condition = make_conditions(r, id='user_id', verify_status='verify_status') if 'register_start_time' in r.REQUEST: condition['register_time__gte'] = get_stamp_by_date( r.REQUEST['register_start_time']) users = User.objects.exclude(idc_name='').filter(**condition)[start:start + num] logger.debug(users.query) total = User.objects.exclude(idc_name='').filter(**condition).count() data = [] for u in users: try: idcphotos = json.loads(u.idc_photo) except Exception: idcphotos = [None, None] data.append({ 'user_id': u.id, 'register_time': u.register_time, 'user_name': u.idc_name, 'idc_photo1': idcphotos[0], 'idc_photo2': idcphotos[1], 'verify_status': u.verify_status, }) return JsonResponse(code=Const['code.success'], data={ 'total': total, 'users': data })
def recharge_verify(r, rid): logger.debug('start to recharge_verify') recharge = Recharge.objects.get(pk=rid) logger.debug('start to recharge_verify status=%s' % r.REQUEST['verify_status']) if obj_verify_strict(r, recharge): if int(r.REQUEST['verify_status']) == Const['model.verify.check_pass']: # logger.debug('start to recharge_verify pass %f,%f'%(recharge.amount,recharge.user.principal)) recharge.user.money_operate(Const['model.record.pricipal'], recharge.amount, '本金账户充值成功', Const['model.record.category.recharge'] ) # logger.debug('start to recharge_verify finish %f'%recharge.user.principal) return JsonResponse(code=Const['code.success']) else: return JsonResponse(code=Const['code.request_error'])
def user_updateflag(r, uid): index = int(r.REQUEST['index']) value = True if int(r.REQUEST['value']) == 1 else False user = User.objects.get(pk=uid) user.flag_set(index, value) user.save() return JsonResponse(code=Const['code.success'])
def withdraw_list(r): start, num = get_paginator(r) params = r.REQUEST condition = make_conditions(r, type='type', bankcard_id='bankcard_id', verify_status='verify_status') if 'create_time_start' in params: condition['create_time__gte'] = get_stamp_by_date(params['create_time_start']) if 'create_time_end' in params: condition['create_time__lte'] = get_stamp_by_date(params['create_time_end']) if 'user_id' in r.REQUEST: condition['bankcard__user_id'] = r.REQUEST['user_id'] withdraws = Withdraw.objects.filter(**condition)[start:start + num] total = Withdraw.objects.filter(**condition).count() data = [] for wit in withdraws: d = wit.to_dict() if wit.reward == 0: d['reward'] = wit.amount d['bank_name'] = wit.bankcard.bank_name d['bank_city'] = wit.bankcard.bank_city d['owner_name'] = wit.bankcard.owner_name d['account_id'] = wit.bankcard.account_id d['account_name'] = wit.bankcard.account_name d['user_id'] = wit.bankcard.user_id d['user_qq'] = wit.bankcard.user.qq d['user_name'] = wit.bankcard.user.idc_name d['user_phone'] = wit.bankcard.user.phone d['create_time'] = wit.create_time data.append(d) return JsonResponse(code=Const['code.success'], data={'total': total, 'withdraws': data})
def tbaccount_list(r): start, num = get_paginator(r) condition = make_conditions(r, user_id='user_id', status='verify_status') if 'register_start_time' in r.REQUEST: condition['user__register_time__gte'] = get_stamp_by_date( r.REQUEST['register_start_time']) tbs = TBAccount.objects.filter(**condition)[start:start + num] total = TBAccount.objects.filter(**condition).count() data = [] for t in tbs: d = t.to_dict() try: pics = json.loads(t.pic_paths) except Exception: pics = [None, None] if not isinstance(pics, list): pics = [None, None] # 获取user的身份证姓名信息,如果没有提交,那么使用旺旺号码 idc_name = t.user.idc_name if (idc_name): d['name'] = idc_name else: d['name'] = u'未绑定身份证--' + d['name'] d['pic1'] = pics[0] d['pic2'] = pics[1] d['register_time'] = t.user.register_time d['tb_register_time'] = t.register_time # 旺旺注册时间 data.append(d) return JsonResponse(code='code.success', data={ 'total': total, 'tbaccounts': data })
def user_listappeal(r, uid): start, num = get_paginator(r) if r.REQUEST['type'] == '0': appeals = Appeal.objects.filter(complainant_id=uid).filter( order__tb__user__id=uid)[start:start + num] else: appeals = Appeal.objects.filter(respondent_id=uid).filter( order__tb__user__id=uid)[start:start + num] data = [] for a in appeals: data.append( obj_to_dict(a, 'id', 'order_id', 'complainant_id', 'respondent_id', 'create_time', 'status', pics='get_pics', description='get_description', complainant_qq='get_complainant_qq', respondent_qq='get_respondent_qq', talks='get_talks', type='get_type')) return JsonResponse(code=Const['code.success'], data=data)