Skip to content

Commit

Permalink
Merge pull request #1 from wenhaogege66/new_branch
Browse files Browse the repository at this point in the history
New branch(complete the backend interfaces part 3)
  • Loading branch information
wenhaogege66 committed Jun 7, 2024
2 parents 099119b + b7187c0 commit 80ddc51
Show file tree
Hide file tree
Showing 26 changed files with 84 additions and 11 deletions.
Binary file modified backend/bank_site/bank_app/__pycache__/__init__.cpython-312.pyc
Binary file not shown.
Binary file modified backend/bank_site/bank_app/__pycache__/admin.cpython-312.pyc
Binary file not shown.
Binary file modified backend/bank_site/bank_app/__pycache__/apps.cpython-312.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified backend/bank_site/bank_app/__pycache__/models.cpython-312.pyc
Binary file not shown.
Binary file modified backend/bank_site/bank_app/__pycache__/urls.cpython-312.pyc
Binary file not shown.
Binary file modified backend/bank_site/bank_app/__pycache__/user_urls.cpython-312.pyc
Binary file not shown.
Binary file not shown.
Binary file modified backend/bank_site/bank_app/__pycache__/views.cpython-312.pyc
Binary file not shown.
1 change: 1 addition & 0 deletions backend/bank_site/bank_app/admin.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from django.contrib import admin
# from models import employee,sys_manage,cashier,account,withdrawal_record,transfer_record

# Register your models here.
4 changes: 3 additions & 1 deletion backend/bank_site/bank_app/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,9 @@ class Migration(migrations.Migration):
(
"identity_card",
models.ForeignKey(
on_delete=django.db.models.deletion.PROTECT,
on_delete=django.db.models.deletion.SET_NULL,
to_field="identity_card",
db_column="identity_card",
to="bank_app.online_user",
),
),
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
7 changes: 4 additions & 3 deletions backend/bank_site/bank_app/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# Create your models here.



class employee(models.Model):
employee_id = models.AutoField(primary_key = True)
employee_name = models.CharField(max_length = 20, null = False, default = "Unknown")
Expand Down Expand Up @@ -32,10 +31,11 @@ class cashier(models.Model):


class online_user(models.Model):
objects = models.Manager()
user_id = models.AutoField(primary_key = True,default = 1)
user_name = models.CharField(max_length = 20, null = False, default = "Unknown")
password = models.CharField(max_length=20, null=False,default = "666666")
identity_card = models.CharField(max_length = 18, null = False)
identity_card = models.CharField(max_length = 18, null = False,unique=True)
phone_num = models.CharField(max_length=20, null=False,default = "10086")
is_frozen = models.BooleanField(null=False, default=False)
is_lost = models.BooleanField(null=False, default=False)
Expand All @@ -44,9 +44,10 @@ class online_user(models.Model):

# 账户表
class account(models.Model):
objects = models.Manager()
account_id = models.AutoField(primary_key=True)
password = models.CharField(max_length=20, null=False)
identity_card = models.ForeignKey(online_user, on_delete=models.PROTECT)
identity_card = models.ForeignKey(online_user, on_delete=models.PROTECT,to_field='identity_card',db_column='identity_card')
card_type = models.IntegerField(null=False)
balance = models.FloatField(null=False, default=0.0)
current_deposit = models.FloatField(null=False, default=0.0)
Expand Down
5 changes: 4 additions & 1 deletion backend/bank_site/bank_app/user_urls.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
# 自己建的
from django.urls import path

from bank_app import user_views
from . import user_views

urlpatterns = [
path('sign_up/', user_views.user_add),
path('sign_in/', user_views.user_log_in),
path('change_password/', user_views.user_change_password),
path('list_cards/', user_views.list_cards),
path('bind_card', user_views.bind_card),
path('card_lost/', user_views.card_lost),
path('queryAccount/', user_views.online_bank_query_accounts),
]

66 changes: 66 additions & 0 deletions backend/bank_site/bank_app/user_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,72 @@
from django.core import serializers


def list_cards(request):
# user_id -> List[Card]
if request.method == 'GET':
filter_users = online_user.objects.filter(user_id=request.GET.get('user_id'))
if filter_users.exists():
filter_user = filter_users[0]
else:
return JsonResponse({"error": "User not found"}, status=404)
user_idcard = filter_user.identity_card
print(f'用户的身份证号码为:{user_idcard}')
filter_cards = account.objects.filter(identity_card=user_idcard)
results = [{
"account_id": card.account_id,
"card_type": card.card_type,
"balance": card.balance,
"is_frozen": card.is_frozen,
"is_lost": card.is_lost
} for card in filter_cards]
return JsonResponse(results, safe=False)
else:
return JsonResponse({"error": "Method not allowed"}, status=405)


@csrf_exempt
def bind_card(request):
if request.method == 'POST':
data = json.loads(request.body.decode('utf-8'))
print(f'获取到的post数据为:{data}')
filter_accounts = account.objects.filter(account_id=data.get('account_id'))
if filter_accounts.exists():
if filter_accounts[0].password == data.get('password') and filter_accounts[0].identity_card.identity_card == data.get('identity_card'):
if filter_accounts[0].is_lost:
return JsonResponse({"error": "The card has been lost", 'state': False}, status=200)
filter_accounts.update(identity_card=data.get('identity_card'))
return_data = {'state': True}
return JsonResponse(return_data, status=200)
else:
return JsonResponse({"error": "Password is Wrong", 'state': False}, status=200)
elif request.method == 'OPTION':
return JsonResponse({"success": "OPTION operation"}, status=200)
else:
return JsonResponse({"error": "Method not allowed", 'state': True}, status=405)


@csrf_exempt
def card_lost(request):
if request.method == 'POST':
data = json.loads(request.body.decode('utf-8'))
filter_accounts = account.objects.filter(account_id=data.get('account_id'))
# print(f'获取到的post数据为:{data}')
# print(f'获取到的filter_accounts数据为:{filter_accounts[0].password}{filter_accounts[0].identity_card.identity_card}')
if filter_accounts.exists():
if filter_accounts[0].password == data.get('password') and filter_accounts[0].identity_card.identity_card == data.get('identity_card'):
if filter_accounts[0].is_lost:
return JsonResponse({"error": "The card has been lost", 'state': False}, status=200)
filter_accounts.update(is_lost=True)
return_data = {'state': True}
return JsonResponse(return_data, status=200)
else:
return JsonResponse({"error": "Password is Wrong", 'state': False}, status=200)
elif request.method == 'OPTION':
return JsonResponse({"success": "OPTION operation"}, status=200)
else:
return JsonResponse({"error": "Method not allowed", 'state': True}, status=405)


def online_bank_query_accounts(request):
if request.method == 'GET':
filter_accounts = account.objects.filter(account_id=request.GET.get('accountID'))[0]
Expand Down
Binary file modified backend/bank_site/bank_site/__pycache__/__init__.cpython-312.pyc
Binary file not shown.
Binary file modified backend/bank_site/bank_site/__pycache__/settings.cpython-312.pyc
Binary file not shown.
Binary file modified backend/bank_site/bank_site/__pycache__/urls.cpython-312.pyc
Binary file not shown.
Binary file modified backend/bank_site/bank_site/__pycache__/wsgi.cpython-312.pyc
Binary file not shown.
12 changes: 6 additions & 6 deletions backend/bank_site/bank_site/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,13 @@
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'fse_db',
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": 'online_bank',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'zhpy050109mysql',
'HOST': 'localhost',
'PORT': '3306',
'PASSWORD': '031716cqp0222'
}
}

Expand Down
Binary file modified backend/bank_site/db.sqlite3
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 comments on commit 80ddc51

Please sign in to comment.