def get_schedule(request, id): try: try: s = Schedule.objects.get(id=id) except: return utils.ErrResp(errors.DataNotExists) data = { 'id': s.id, 'stype': s.stype, 'subject': s.subject, 'sdate': s.sdate.strftime('%Y-%m-%d'), 'created_at': s.created_at.strftime('%Y-%m-%d %H:%M:%S'), 'updated_at': '', 'targets': [] } try: data['updated_at'] = s.updated_at.strftime('%Y-%m-%d %H:%M:%S') except: pass try: data['targets'] = json.loads(s.targets) except: pass data['targets'] = fullfill_targets(data['targets']) return utils.NormalResp(data) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def get_codes(request): try: p = request.GET.get('p', 1) n = request.GET.get('n', 7) q = CodeMemo.objects results = q.all()[n * (p - 1):n * p] data = [] for r in results: info = { 'id': r.id, 'ctype': r.ctype, 'description': r.description, 'content': r.content, 'created_at': r.created_at.strftime('%Y-%m-%d %H:%M:%S'), 'updated_at': '' } try: info['updated_at'] = r.updated_at.strftime('%Y-%m-%d %H:%M:%S') except: pass data.append(info) return utils.NormalResp(data) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def get_schedules(request): try: p = int(request.GET.get('p', 1)) n = int(request.GET.get('n', 7)) stype = request.GET.get('stype', '') q = Schedule.objects if stype: q = q.filter(stype=stype) results = q.all()[n * (p - 1):n * p] data = [] for r in results: info = { 'id': r.id, 'stype': r.stype, 'subject': r.subject, 'sdate': r.sdate.strftime('%Y-%m-%d'), 'created_at': r.created_at.strftime('%Y-%m-%d %H:%M:%S'), 'updated_at': '', 'targets': [] } try: info['updated_at'] = r.updated_at.strftime('%Y-%m-%d %H:%M:%S') except: pass try: info['targets'] = json.loads(r.targets) except: pass info['targets'] = fullfill_targets(info['targets']) data.append(info) return utils.NormalResp(data) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def bonus_update(request): bonus_id = int(request.GET.get('id', 0)) if bonus_id: ubonus = UserBonus.objects.get(id=bonus_id) ubonus.status = 1 ubonus.save() return utils.NormalResp()
def cbcd_sell(request): if request.method == 'POST': # if not services.is_hall_open(): # return utils.ErrResp(errors.HallNotOpened) num = int(request.POST.get('num')) price = float(request.POST.get('price')) current_order = services.get_current_order() if int(price*1000) >= int(current_order['price'] * 1000 * 1.1): return utils.ErrResp(errors.PriceTooHigh) if int(price*1000) <= int(current_order['price'] * 1000 * 0.9): return utils.ErrResp(errors.PriceTooLow) try: ubalance = UserBalance.objects.get(user=request.user) except: return utils.ErrResp(errors.CBCDLimit) if not ubalance.point or int(ubalance.point*0.05) < num: return utils.ErrResp(errors.CBCDLimit) ubalance.point = ubalance.point - num ubalance.save() uorder = UserOrderSell( seller_user=request.user, num=num, num_unsell=num, price=price, status=0 ) uorder.save() return utils.NormalResp()
def add_schedule(request): try: stype = request.POST.get('stype', '') subject = request.POST.get('subject', '') sdate = request.POST.get('sdate', '') targets = request.POST.get('targets', '') if not stype or not subject or not sdate or not targets: return utils.ErrResp(errors.ArgMis) try: sdate = datetime.strptime(sdate, '%Y-%m-%d') except: return utils.ErrResp(errors.ArgFormatInvalid) try: targets = json.loads(targets) except: return utils.ErrResp(errors.ArgFormatInvalid) s = Schedule(stype=stype, subject=subject, sdate=sdate, targets=json.dumps(targets)) s.save() return utils.NormalResp({'id': s.id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def setting(request): data = { 'index': 'member', 'sub_index': 'home', 'statics': services.get_statics(request.user.id), 'news': News.objects.all().order_by('-id')[0:10], 'changePwdForm': ChangePwdForm(), 'changeInfoForm': ChangeUserInfoForm(), 'userinfo': {}, 'errmsg': '' } if request.session['lang'] == 'cn': data['changePwdForm'] = ChangePwdForm() else: data['changePwdForm'] = EnChangePwdForm() uinfo = UserInfo.objects.get(user=request.user) data['userinfo'] = uinfo if request.method == 'POST': if request.POST.get('ctype') == 'changepwd': if request.session['lang'] == 'cn': data['changePwdForm'] = ChangePwdForm(request.POST) else: data['changePwdForm'] = EnChangePwdForm(request.POST) if data['changePwdForm'].is_valid(): user = authenticate(username=request.user.username, password=request.POST['password']) if not user: if request.session['lang'] == 'cn': data['errmsg'] = '原密码输入有误' else: data['errmsg'] = 'old password invalid' else: u = Auth_user.objects.get(username=request.user.username) u.set_password(request.POST['new_password']) u.save() uinfo = UserInfo.objects.get(user=request.user) uinfo.pwd = request.POST['new_password'] uinfo.save() auth_logout(request) return HttpResponseRedirect('/login/') elif request.POST.get('ctype', '') == 'changeinfo': try: uinfo = UserInfo.objects.get(user=request.user) uinfo.city = request.POST.get('city', uinfo.city) uinfo.provincy = request.POST.get('provincy', uinfo.provincy) uinfo.country = request.POST.get('country', uinfo.country) uinfo.phone_number = request.POST.get('phone', uinfo.phone_number) uinfo.bank_code = request.POST.get('bank_code', uinfo.bank_code) uinfo.bank_card = request.POST.get('bank_card', uinfo.bank_card) uinfo.save() return utils.NormalResp() except: traceback.print_exc() return utils.ErrResp(errors.FuncFailed) return utils.crender(request, 'frontend/member/settings.html', data)
def visa_update(request, f_id): try: vapply = UserVisaApply.objects.get(id=f_id) vapply.status = request.POST.get('status', vapply.status) vapply.save() except: traceback.print_exc() return utils.ErrResp(errors.FuncFailed) return utils.NormalResp()
def find_password(request): hashkey = CaptchaStore.generate_key() captcha_url = captcha_image_url(hashkey) data = { 'index': 'member', 'sub_index': 'visa', 'statics': services.get_statics(request.user.id), 'news': News.objects.all().order_by('-id')[0:10], 'hashkey': hashkey, 'captcha_url': captcha_url, 'ages': range(18, 61), 'data': {}, 'errmsg': '' } if request.method == 'POST': try: captcha_code = request.POST.get('captcha_code', '') captcha_code_key = request.POST.get('captcha_code_key', '') email = request.POST.get('email', '') if not utils.verify_captcha(captcha_code, captcha_code_key): return utils.ErrResp(errors.CaptchCodeInvalid) try: u = Auth_user.objects.get(email=email) except: return utils.ErrResp(errors.EmailNotExists) uresetpwd = UserResetPwd( username=u.username, email=email ) uresetpwd.save() # 发邮件 resetpwd_dt = dict({ 'title': '重置密码', 'email': email, 'username': u.username, 'reset_url': '/member/reset-pwd?hashkey=%s' % uresetpwd.hashkey }) import email_template subject = email_template.resetpwd_template['subject'] subject = subject.format(**resetpwd_dt) html = email_template.resetpwd_template['password'] html = html.format(**resetpwd_dt) utils.mailgun_send_email([email], subject, html) return utils.NormalResp() except: traceback.print_exc() return utils.ErrResp(errors.FuncFailed) else: return utils.crender(request, 'frontend/member/find_password.html', data)
def delete_schedule(request, id): try: try: schedule = Schedule.objects.get(id=id) except: return utils.ErrResp(errors.DataNotExists) schedule.delete() return utils.NormalResp({'id': schedule.id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def delete_codememo(request, id): try: try: code = CodeMemo.objects.get(id=id) except: return utils.ErrResp(errors.DataNotExists) code.delete() return utils.NormalResp({'id': code.id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def delete_schedule_config(request, schedule_id, id): try: try: sconfig = ScheduleConfig.objects.get(schedule_id=int(schedule_id), id=int(id)) except: return utils.ErrResp(errors.DataNotExists) sconfig.delete() return utils.NormalResp({'id': id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def payment_update(request): order_id = request.POST.get('order_id', '') if not order_id: return utils.ErrResp(errors.ArgMiss) try: upayment = UserPayment.objects.get(order_id=order_id) except: return utils.ErrResp(errors.DataNotExists) upayment.pay_type = request.POST.get('pay_type', upayment.pay_type) upayment.save() return utils.NormalResp()
def cbcd_buy(request): if request.method == 'POST': if not services.is_hall_open(): return utils.ErrResp(errors.HallNotOpened) num = int(request.POST.get('num', 0)) price = float(request.POST.get('price', 0)) if not num or not price: return utils.ErrResp(errors.ArgMiss) current_order = UserOrderSell.objects.filter(status=0).order_by('id').first() if num > int(current_order.num_unsell): return utils.ErrResp(errors.CBCDLimit) price = float(current_order.price) # 买家付款 try: buyer = UserBalance.objects.get(user_id=request.user.id) except: utils.debug() return utils.ErrResp(errors.MoneyLimit) # 美元 money = float(num * price) if not buyer.cash or float(buyer.cash) < money: return utils.ErrResp(errors.MoneyLimit) buyer.point = buyer.point + num buyer.cash = float(buyer.cash) - money buyer.save() # 更新订单状态 current_order.num_unsell = current_order.num_unsell - num if int(current_order.num_unsell) == 0: current_order.status = 1 current_order.save() # 卖家收钱 seller = UserBalance.objects.get(user=current_order.seller_user) seller.cash = float(seller.cash) + float(num * price) seller.save() # 写买入记录 buyorder = UserOrderBuy( seller_order_id=current_order.order_id, buyer_user=request.user, price=price, num=num ) buyorder.save() return utils.NormalResp()
def register(request): hashkey = CaptchaStore.generate_key() captcha_url = captcha_image_url(hashkey) invite_code = request.GET.get('invite_code', '') recommend_user = '' if invite_code: try: uinfo = UserInfo.objects.filter(invite_code=invite_code).first() recommend_user = uinfo.user.username except: pass data = { 'index': 'register', 'statics_info': Statics.objects.order_by('-id').first(), 'chatlist': UserFeedback.objects.order_by('-id')[0:10], 'recommend_user': recommend_user, 'form': RegForm(initial={'recommend_user': recommend_user}), 'ages': range(18, 61), 'hashkey': hashkey, 'captcha_url': captcha_url, 'errmsg': '' } if request.method == 'POST': username = request.POST.get('username', '') email = request.POST.get('email', '') username_exists = Auth_user.objects.filter(username=username).exists() if username_exists: return utils.ErrResp(errors.UserExists) if len(username) < 6: return utils.ErrResp(errors.UsernameInvalid) email_exists = Auth_user.objects.filter(email=email).exists() if email_exists: return utils.ErrResp(errors.EmailExists) if len(request.POST.get('password', '')) < 8 or len( request.POST.get('password', '')) > 16: return utils.ErrResp(errors.PasswordInvalid) captcha_code = request.POST.get('captcha_code', '') captcha_code_key = request.POST.get('captcha_code_key', '') cs = CaptchaStore.objects.filter(hashkey=captcha_code_key) true_key = cs[0].response if captcha_code.lower() != true_key: return utils.ErrResp(errors.CaptchCodeInvalid) CaptchaStore.objects.filter(hashkey=captcha_code_key).delete() services.reg(request) return utils.NormalResp() else: return utils.crender(request, 'frontend/register.html', data)
def add_schedule_config(request, schedule_id): try: key = request.POST.get('key', '') value = request.POST.get('value', '') if not key or not value: return utils.ErrResp(errors.ArgMis) s = ScheduleConfig(schedule_id=schedule_id, key=key, value=value) s.save() return utils.NormalResp({'id': s.id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def visa_apply(request): hashkey = CaptchaStore.generate_key() captcha_url = captcha_image_url(hashkey) data = { 'index': 'member', 'sub_index': 'visa', 'statics': services.get_statics(request.user.id), 'news': News.objects.all().order_by('-id')[0:10], 'hashkey': hashkey, 'captcha_url': captcha_url, 'ages': range(18, 61), 'data': {}, 'errmsg': '' } if request.method == 'POST': try: exists = UserVisaApply.objects.filter(user=request.user).exists() if exists: return utils.ErrResp(errors.VisaApplyExists) captcha_code = request.POST.get('captcha_code', '') captcha_code_key = request.POST.get('captcha_code_key', '') cs = CaptchaStore.objects.filter(hashkey=captcha_code_key) true_key = cs[0].response print true_key, captcha_code.lower() if captcha_code.lower() != true_key: return utils.ErrResp(errors.CaptchCodeInvalid) CaptchaStore.objects.filter(hashkey=captcha_code_key).delete() uapply = UserVisaApply( user=request.user, first_name=request.POST.get('first_name', ''), last_name= request.POST.get('last_name', ''), age=request.POST.get('age', 0), email=request.POST.get('email', ''), phone=request.POST.get('phone', ''), id_card=request.POST.get('id_card', ''), address=request.POST.get('address', ''), city=request.POST.get('city', ''), provincy=request.POST.get('provincy', ''), country=request.POST.get('country', ''), zip_code=request.POST.get('zip_code', '') ) uapply.save() return utils.NormalResp() except: traceback.print_exc() return utils.ErrResp(errors.FuncFailed) else: return utils.crender(request, 'frontend/member/visa_apply.html', data)
def add_codememo(request): try: ctype = request.POST.get('ctype', '') description = request.POST.get('description', '') content = request.POST.get('content', '') if not ctype or not description or not content: return utils.ErrResp(errors.ArgMis) s = CodeMemo(ctype=ctype, description=description, content=content) s.save() return utils.NormalResp({'id': s.id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def update_schedule_config(request, schedule_id, id): try: try: sconfig = ScheduleConfig.objects.get(schedule_id=int(schedule_id), id=int(id)) except: return utils.ErrResp(errors.DataNotExists) sconfig.key = request.POST.get('key', sconfig.key) sconfig.value = request.POST.get('value', sconfig.value) sconfig.save() return utils.NormalResp({'id': id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def update_codememo(request, id): try: try: code = CodeMemo.objects.get(id=id) except: return utils.ErrResp(errors.DataNotExists) code.ctype = request.POST.get('ctype', code.ctype) code.description = request.POST.get('description', code.description) code.content = request.POST.get('content', code.content) code.save() return utils.NormalResp({'id': code.id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def schedule_configs(request, schedule_id): try: q = ScheduleConfig.objects.filter(schedule_id=int(schedule_id)) results = q.all() data = [] for r in results: info = { 'id': r.id, 'schedule_id': schedule_id, 'value': r.value, 'key': r.key } data.append(info) return utils.NormalResp(data) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def reset_password(request): hashkey = CaptchaStore.generate_key() captcha_url = captcha_image_url(hashkey) pwd_hashkey = request.GET.get('hashkey', '') try: uhashkey = UserResetPwd.objects.get(hashkey=pwd_hashkey) except: return utils.ErrResp(errors.FuncFailed) data = { 'index': 'member', 'sub_index': 'visa', 'statics': services.get_statics(request.user.id), 'news': News.objects.all().order_by('-id')[0:10], 'hashkey': hashkey, 'captcha_url': captcha_url, 'pwd_hashkey': pwd_hashkey, 'data': {}, 'errmsg': '' } if request.method == 'POST': try: captcha_code = request.POST.get('captcha_code', '') captcha_code_key = request.POST.get('captcha_code_key', '') pwd_hashkey = request.POST.get('pwd_hashkey', '') password = request.POST.get('password', '') if not utils.verify_captcha(captcha_code, captcha_code_key): return utils.ErrResp(errors.CaptchCodeInvalid) try: uhashkey = UserResetPwd.objects.get(hashkey=pwd_hashkey) if uhashkey.status != 0 or uhashkey.expire_at < timezone.now(): return utils.ErrResp(errors.FuncFailed) u = Auth_user.objects.get(username=uhashkey.username) u.set_password(password) u.save() uhashkey.update_at = timezone.now() uhashkey.status = 1 uhashkey.save() except Exception, e: raise e return utils.NormalResp() except:
def update_schedule(request, id): try: try: schedule = Schedule.objects.get(id=id) except: return utils.ErrResp(errors.DataNotExists) schedule.stype = request.POST.get('stype', schedule.stype) schedule.subject = request.POST.get('subject', schedule.subject) schedule.targets = request.POST.get('targets', schedule.targets) sdate = request.POST.get('sdate', '') if sdate: sdate = datetime.strptime(sdate, '%Y-%m-%d') schedule.sdate = sdate schedule.save() return utils.NormalResp({'id': schedule.id}) except: traceback.print_exc() return utils.ErrResp(errors.SthWrong)
def payment_success(request): try: order_id = request.POST.get('order_id', '') if not order_id: return utils.ErrResp(errors.ArgMiss) try: upayment = UserPayment.objects.get(order_id=order_id) except: return utils.ErrResp(errors.DataNotExists) if upayment.status != 1: upayment.status = request.POST.get('status', upayment.status) upayment.save() try: ubalance = UserBalance.objects.get(user_id=upayment.user_id) except: ubalance = UserBalance( user_id=upayment.user_id, point=0, cash=0 ) if upayment.point: ubalance.point = ubalance.point + upayment.point else: if upayment.currency == 1: ubalance.cash = ubalance.cash + int(upayment.amount)/ settings.CURRENCY_RATIO ubalance.total = ubalance.total + int(upayment.amount)/ settings.CURRENCY_RATIO else: ubalance.cash = ubalance.cash + int(upayment.amount) ubalance.total = ubalance.total + int(upayment.amount) ubalance.save() if upayment.callback: requests.get(upayment.callback, verify=False) except: import traceback traceback.print_exc() return utils.ErrResp(errors.FuncFailed) return utils.NormalResp()
def login(request): if request.user.is_authenticated(): return HttpResponseRedirect('/member/') hashkey = CaptchaStore.generate_key() captcha_url = captcha_image_url(hashkey) data = { 'index': 'login', 'statics_info': Statics.objects.order_by('-id').first(), 'chatlist': UserFeedback.objects.order_by('-id')[0:10], 'form': LoginForm(), 'hashkey': hashkey, 'captcha_url': captcha_url, 'errmsg': '' } if request.method == 'POST': captcha_code = request.POST.get('captcha_code', '') captcha_code_key = request.POST.get('captcha_code_key', '') if not utils.verify_captcha(captcha_code, captcha_code_key): return utils.ErrResp(errors.CaptchCodeInvalid) user = authenticate(username=request.POST.get('username', ''), password=request.POST.get('password', '')) if user is not None and user.is_active: auth_login(request, user) log = UserOplog( user_id=user.id, optype=1, content=request.META['HTTP_USER_AGENT'], ip=get_ip(request), ) log.save() return utils.NormalResp() else: return utils.ErrResp(errors.LoginFailed) return utils.crender(request, 'frontend/login.html', data)
def test(request): return utils.NormalResp()
def test(request): code = InviteCode.objects.pop() d = {'code': code} return utils.NormalResp(d)
def bonus(request): data = { 'index': 'member', 'sub_index': 'bonus', 'statics': services.get_statics(request.user.id), 'news': News.objects.all().order_by('-id')[0:10] } if request.method == 'POST': b2c = { 'bonus_50': 0, 'bonus_100': 7, 'bonus_200': 6, 'bonus_400': 5, 'bonus_600': 4, 'bonus_800': 3, 'bonus_1000': 2, 'bonus_2000': 1 } result = SiteSetting.objects.all().order_by('-id').first() if not result.bonus_switch: return utils.ErrResp(errors.BonusSwitchOff) else: # 写日志 firstday, lastday = utils.getMonthFirstDayAndLastDay() ubonus = UserBonus.objects \ .filter(create_time__gte=firstday) \ .filter(create_time__lte=lastday) \ .filter(user=request.user) if ubonus: return utils.ErrResp(errors.BonusExists) else: bonuss = [] for b in b2c: bonuss.append((b, getattr(result, b))) wr = services.weighted_random(bonuss) point = int(wr.split('bonus_')[1]) level = b2c[wr] # 扣除资本兑总量 if not services.cbcd_reduce(point): return utils.ErrResp(errors.BonusSwitchOff) ubonus = UserBonus( user=request.user, point=point, status=0 ) ubonus.save() log = UserOplog( user_id=request.user.id, optype=9, content='会员认购中抽中资本兑: %s' % point, ip=get_ip(request), ) log.save() resp = { 'level': level, 'point': point, 'money': int(point*services.get_price()), 'bonus_id': ubonus.id } return utils.NormalResp(resp) return utils.crender(request, 'frontend/member/bonus.html', data)
def test(request): # return HttpResponse('ok') return utils.NormalResp()