def sualenh(request, current_user): if request.method == 'PUT': data = json.loads(json.dumps(request.data)) if 'id' not in data: return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' }) if data['fromtypecoin'] == data['totypecoin'] or not data['id']: return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' }) try: lenh = Exchange.objects.get(id=data['id']) except: return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' }) if lenh.userid.id != current_user.id: return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' }) #kiem tra fromcoin usrfrom = UserCoin.objects.filter(userid=current_user.id, coinid=data['fromtypecoin']) if float(data['fromcoin']) > float(usrfrom[0].value): return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' }) data['id'] = lenh.id data['status'] = False data['time'] = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') data['userid'] = current_user.id serializer = ExchangeSerializer(lenh, data=data) if serializer.is_valid(): serializer.save() return JsonResponse({'data': 'OK', 'status': 'success'}) else: return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' })
def datlenh(request, current_user): if request.method == 'POST': data = json.loads(json.dumps(request.data)) if 'fromtypecoin' not in data or 'fromcoin' not in data or 'totypecoin' not in data or 'tocoin' not in data: return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' }) if data['fromtypecoin'] == data['totypecoin'] or data[ 'fromcoin'] == 0 or data['tocoin'] == 0 or data[ 'fromcoin'] == "0" or data['tocoin'] == "0": return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' }) #kiem tra fromcoin #coin con lai o tai khoan usrfrom = UserCoin.objects.filter(userid=current_user.id, coinid=data['fromtypecoin']) #coin da dung de dat lenh coinfalse = Exchange.objects.filter(userid=current_user.id, fromtypecoin=data['fromtypecoin'], status=0) total = 0 for i in coinfalse: t = i.fromcoin total = total + t #import pdb; pdb.set_trace(); #kiem tra dieu kien coin = float(usrfrom[0].value - total) if float(data['fromcoin']) > coin: return JsonResponse({ 'message': 'Du lieu khong hop le nhe', 'status': 'error' }) data['time'] = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') data['userid'] = current_user.id serializer = ExchangeSerializer(data=data) if serializer.is_valid(): serializer.save() return JsonResponse({'data': 'OK', 'status': 'success'}) else: return JsonResponse({ 'message': 'Du lieu khong hop le', 'status': 'error' })
def xemlenhdakhop(request, current_user): if request.META['REQUEST_METHOD'] == 'GET': lenhdakhop = Exchange.objects.filter(userid=current_user.id, status=True) serializer = ExchangeSerializer(lenhdakhop, many=True) return JsonResponse({'data': serializer.data, 'status': 'success'})
def khoplenh(request, current_user): if request.method == 'POST': data = json.loads(json.dumps(request.data)) #gia hien tai cua cac loai tien giahientai = laygiatienhientai() #return JsonResponse({'d': giahientai}) ex = Exchange.objects.filter(status=False).order_by('time') serializer = ExchangeSerializer(ex, many=True) total = serializer.data total = loaichenhlech(total, giahientai) #return JsonResponse({'data':total, 'len': len(total)}) listsosanh = [] for t in total: for t1 in total: lai = 0 if t1['id'] > t['id'] and t['userid'] != t1['userid'] and t[ 'fromtypecoin'] == t1['totypecoin'] and t[ 'totypecoin'] == t1['fromtypecoin'] and ( (t['fromcoin'] == t1['tocoin'] and t['tocoin'] < t1['fromcoin']) or (t['tocoin'] == t1['fromcoin'] and t1['tocoin'] < t['fromcoin'])): if t['tocoin'] < t1['fromcoin']: lai = (t1['fromcoin'] - t['tocoin']) * giatien( t['fromtypecoin'], giahientai) tienlai = t1['fromcoin'] - t['tocoin'] loaitienlai = t['totypecoin'] if t1['tocoin'] < t['fromcoin']: lai = (t['fromcoin'] - t1['tocoin']) * giatien( t['fromtypecoin'], giahientai) tienlai = t['fromcoin'] - t1['tocoin'] loaitienlai = t['fromtypecoin'] l = { 'tienlai': lai, 'from': t['id'], 'to': t1['id'], 'lai': tienlai, 'loaitienlai': loaitienlai } listsosanh.append(l) listsosanh = sorted(listsosanh) #, reverse=True #return JsonResponse({'data': listsosanh}) for li in listsosanh: if checktrangthai(li['from']) == False and checktrangthai( li['to']) == False: #import pdb; pdb.set_trace(); chuyenexchange(li['from'], li['lai'], li['loaitienlai']) chuyenexchange(li['to'], li['lai'], li['loaitienlai']) chuyenmatchexchange(li['from'], li['to']) return JsonResponse({'status': 'success'})
def danhsachgiaodichdangcho(request, current_admin): if request.META['REQUEST_METHOD'] == 'GET': danhsach = Exchange.objects.filter(status=False).order_by('-time') serializer = ExchangeSerializer(danhsach, many=True) data = [] for i in serializer.data: k = {} k['id'] = i['id'] k['fromcoin'] = i['fromcoin'] k['namefromtypecoin'] = str(TypeCoin.objects.get(id=i['fromtypecoin']).name) k['tocoin'] = i['tocoin'] k['nametotypecoin'] = str(TypeCoin.objects.get(id=i['totypecoin']).name) k['userid'] = i['userid'] k['time'] = i['time'] k['status'] = i['status'] data.append(k) return JsonResponse({'data': data, 'status': 'success'})
def xemdanhsachgiaodich(request): if request.META['REQUEST_METHOD'] == 'GET': danhsachgiaodich = Exchange.objects.filter( status=False).order_by('-time') serializer = ExchangeSerializer(danhsachgiaodich, many=True) return JsonResponse({'data': serializer.data, 'status': 'success'})
def chuyenexchange(exchangeid, tienlai, loaitienlai): giachenhlech = 0.01 ex = Exchange.objects.filter(id=exchangeid) data = {} data['id'] = ex[0].id data['fromcoin'] = ex[0].fromcoin data['tocoin'] = ex[0].tocoin data['time'] = ex[0].time data['fromtypecoin'] = ex[0].fromtypecoin.id data['totypecoin'] = ex[0].totypecoin.id data['userid'] = ex[0].userid.id data['status'] = True serializer = ExchangeSerializer(ex[0], data=data) if serializer.is_valid(): serializer.save() #xac dinh gia chenh lech chenhlech = ChenhLech.objects.filter(fromtypecoin=ex[0].fromtypecoin.id, totypecoin=ex[0].totypecoin.id) giachenhlech = chenhlech[0].value #trutien if ex[0].fromtypecoin == loaitienlai: usercoin = UserCoin.objects.filter(userid=ex[0].userid.id, coinid=ex[0].fromtypecoin.id) data = {} data['id'] = usercoin[0].id data['userid'] = usercoin[0].userid.id data['coinid'] = usercoin[0].coinid.id data['value'] = usercoin[0].value - float(ex[0].fromcoin) serializer = UserCoinSerializer(usercoin[0], data=data) if serializer.is_valid(): serializer.save() usercoin = UserCoin.objects.filter(userid=ex[0].userid.id, coinid=ex[0].totypecoin.id) data = {} data['id'] = usercoin[0].id data['userid'] = usercoin[0].userid.id data['coinid'] = usercoin[0].coinid.id data['value'] = usercoin[0].value + float( float(ex[0].tocoin) * (1 - giachenhlech)) serializer = UserCoinSerializer(usercoin[0], data=data) if serializer.is_valid(): serializer.save() #admin + tienlai + 0.01 tocoin usercoin = UserCoin.objects.filter(userid='D4AD333121', coinid=ex[0].totypecoin.id) data = {} data['id'] = usercoin[0].id data['userid'] = usercoin[0].userid.id data['coinid'] = usercoin[0].coinid.id data['value'] = usercoin[0].value + float( float(ex[0].tocoin) * giachenhlech) serializer = UserCoinSerializer(usercoin[0], data=data) if serializer.is_valid(): serializer.save() #admin + tienlai usercoin = UserCoin.objects.filter(userid='D4AD333121', coinid=ex[0].fromtypecoin.id) data = {} data['id'] = usercoin[0].id data['userid'] = usercoin[0].userid.id data['coinid'] = usercoin[0].coinid.id data['value'] = usercoin[0].value + float(tienlai) serializer = UserCoinSerializer(usercoin[0], data=data) if serializer.is_valid(): serializer.save() else: usercoin = UserCoin.objects.filter(userid=ex[0].userid.id, coinid=ex[0].fromtypecoin.id) data = {} data['id'] = usercoin[0].id data['userid'] = usercoin[0].userid.id data['coinid'] = usercoin[0].coinid.id data['value'] = usercoin[0].value - float(ex[0].fromcoin) #import pdb; pdb.set_trace(); serializer = UserCoinSerializer(usercoin[0], data=data) if serializer.is_valid(): serializer.save() usercoin = UserCoin.objects.filter(userid=ex[0].userid.id, coinid=ex[0].totypecoin.id) data = {} data['id'] = usercoin[0].id data['userid'] = usercoin[0].userid.id data['coinid'] = usercoin[0].coinid.id data['value'] = usercoin[0].value + float( float(ex[0].tocoin) * (1 - giachenhlech)) serializer = UserCoinSerializer(usercoin[0], data=data) if serializer.is_valid(): serializer.save() #admin + 0.01 tocoin usercoin = UserCoin.objects.filter(userid='D4AD333121', coinid=ex[0].totypecoin.id) data = {} data['id'] = usercoin[0].id data['userid'] = usercoin[0].userid.id data['coinid'] = usercoin[0].coinid.id data['value'] = usercoin[0].value + float( float(ex[0].tocoin) * giachenhlech) serializer = UserCoinSerializer(usercoin[0], data=data) if serializer.is_valid(): serializer.save() return 0