Skip to content

Commit

Permalink
Merge branch 'master' of github.com:wenhaogege66/software-engineering
Browse files Browse the repository at this point in the history
  • Loading branch information
LeChatelier-Lenz committed Jun 11, 2024
2 parents 0f113a6 + 09be89f commit eb59011
Show file tree
Hide file tree
Showing 42 changed files with 1,343 additions and 678 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__/user_urls.cpython-312.pyc
Binary file not shown.
Binary file modified backend/bank_site/bank_app/__pycache__/user_views.cpython-312.pyc
Binary file not shown.
9 changes: 6 additions & 3 deletions backend/bank_site/bank_app/manager_urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
from . import manager_views

urlpatterns = [
path('query_blacklist/<int:sys_manager_id>/', manager_views.query_blacklist, name='query_blacklist'),
path('blacklist_account/<int:sys_manager_id>/<int:user_id>/', manager_views.blacklist_account, name='blacklist_account'),
path('cancel_black_account/<int:sys_manager_id>/<int:user_id>/', manager_views.cancel_black_account, name='cancel_black_account'),
path('sign_in/', manager_views.online_manager_log_in),
path('user_frozen/', manager_views.user_frozen),
path('blacklist_add/', manager_views.blacklist_account_add),
path('blacklist_query/', manager_views.blacklist_account_query),
path('user_data_query/', manager_views.user_data_query),
path('blacklist_delet/', manager_views.blacklist_account_delet),
]
183 changes: 170 additions & 13 deletions backend/bank_site/bank_app/manager_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,184 @@
from django.http import JsonResponse
from .models import sys_manage, online_user, BlackList

from rest_framework.views import APIView
from rest_framework.response import Response

import json
import datetime
from django.shortcuts import render
from django.http import JsonResponse, HttpResponse
from .models import *
from django.views.decorators.csrf import csrf_exempt
from django.core import serializers

def query_blacklist(request, sys_manager_id):
admin = get_object_or_404(sys_manage, sys_manager_id=sys_manager_id)
blacklisted_users = BlackList.objects.filter(admin=admin).values('user_id', 'user__user_name')
return JsonResponse(list(blacklisted_users), safe=False)

@csrf_exempt
def online_manager_log_in(request):
# print("文豪说看看这个密码")
if request.method == 'POST':
# print("文豪说看看这个密码")
# 将请求体中的数据转化为json格式
data = json.loads(request.body.decode('utf-8'))
print('看看data:{}'.format(data))
print('看看account:{}'.format(data.get('account')))
filter_online_user = online_bank_manager.objects.filter(account=data.get('account'))
# print('看看filter_online_user:{}'.format(filter_online_user.account))
if filter_online_user.exists():
# 用户存在开始对照密码
cur_manager = online_bank_manager.objects.get(account=data.get('account'))
print(f"文豪说看看这个密码: {cur_manager.password}")
if data.get('password') == cur_manager.password:
return_data = {'id': cur_manager.online_bank_manager_id, 'state': True}
return JsonResponse(return_data, status=200)
else:
# print("看看这里")
# print(new_user)
return JsonResponse({"error": "password is wrong",'state': False}, status=400)
else:
return JsonResponse({"error": "Manager don't exist",'state': False}, status=403)
elif request.method == 'OPTION':
return JsonResponse({"success": "OPTION operation"}, status=200)
else:
return JsonResponse({"error": "Method not allowed",'state': True}, status=405)

def blacklist_account(request, sys_manager_id, user_id):
admin = get_object_or_404(sys_manage, sys_manager_id=sys_manager_id)
user = get_object_or_404(online_user, user_id=user_id)
@csrf_exempt
def blacklist_account_add(request):
# print("文豪说看看这个密码")
if request.method == 'POST':
# print("文豪说看看这个密码")
# 将请求体中的数据转化为json格式
data = json.loads(request.body.decode('utf-8'))
print('看看data:{}'.format(data))
filter_online_manager = online_bank_manager.objects.filter(account=data.get('manager_name'))
# print('看看filter_online_manager:{}'.format(filter_online_manager.account))
if filter_online_manager.exists():
# 用户存在开始对照密码
cur_manager = online_bank_manager.objects.get(account=data.get('manager_name'))
filter_online_user = online_user.objects.filter(user_name=data.get('user_name'))
print('看看filter_online_manager:{}'.format(cur_manager.account))

if filter_online_user.exists():
cur_user = online_user.objects.get(user_name=data.get('user_name'))
print('看看filter_online_user:{}'.format(cur_user.user_name))
if cur_user.is_blacklisted == False:
if not BlackList.objects.filter(user_id=cur_user.user_id).exists():
print("我日了个蛋")
cur_black = BlackList(user_id=cur_user, online_bank_manager_id=cur_manager)
cur_black.save()
cur_user.is_blacklisted=True
cur_user.save()
return_data = {'state': True}
return JsonResponse(return_data, status=200)
else:
# print("看看这里")
# print(new_user)
return JsonResponse({"error": "already in black",'state': False}, status=400)
else:
return JsonResponse({"error": "User don't exist",'state': False}, status=403)
else:
return JsonResponse({"error": "Manager don't exist",'state': False}, status=403)
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 user_frozen(request):
# print("文豪说看看这个密码")
if request.method == 'POST':
data = json.loads(request.body.decode('utf-8'))
print('看看data:{}'.format(data))
filter_online_user = online_user.objects.filter(user_id=data.get('user_id'))
# print('看看filter_online_manager:{}'.format(filter_online_manager.account))
if filter_online_user.exists():
cur_user = online_user.objects.get(user_id=data.get('user_id'))
filter_online_user = online_user.objects.filter(user_name=data.get('user_name'))
print('看看filter_online_user:{}'.format(cur_user.user_name))
if cur_user.is_frozen == False:
cur_user.is_frozen=True
cur_user.save()
return_data = {'state': True}
return JsonResponse(return_data, status=200)
else:
return JsonResponse({"error": "已经冻结了,宝贝",'state': False}, status=403)
else:
return JsonResponse({"error": "User don't exist",'state': False}, status=403)
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 blacklist_account_delet(request):
# print("文豪说看看这个密码")
if request.method == 'POST':
data = json.loads(request.body.decode('utf-8'))
print('看看data:{}'.format(data))
filter_online_user = online_user.objects.filter(user_id=data.get('user_id'))
# print('看看filter_online_manager:{}'.format(filter_online_manager.account))
if filter_online_user.exists():
# 用户存在开始对照密码
cur_user = online_user.objects.get(user_id=data.get('user_id'))
filter_online_user = online_user.objects.filter(user_name=data.get('user_name'))
print('看看filter_online_user:{}'.format(cur_user.user_name))
if cur_user.is_blacklisted == True:
if BlackList.objects.filter(user_id=cur_user.user_id).exists():
cur_black = BlackList.objects.get(user_id=cur_user)
cur_black.delete()
cur_user.is_blacklisted=False
cur_user.save()
return_data = {'state': True}
return JsonResponse(return_data, status=200)
else:
return JsonResponse({"error": "Blacklist don't exist",'state': False}, status=403)
else:
return JsonResponse({"error": "User don't exist",'state': False}, status=403)
elif request.method == 'OPTION':
return JsonResponse({"success": "OPTION operation"}, status=200)
else:
return JsonResponse({"error": "Method not allowed",'state': True}, status=405)


def blacklist_account_query(request):
if request.method == 'GET':
filter_blacks = online_user.objects.filter(is_blacklisted = True)
# if filter_users.exists():
# filter_user = filter_users[0]
# else:
# return JsonResponse({"error": "User not found"}, status=404)
# filter_cards = filter_user.accounts.all()
results = [{
"user_name": black.user_name,
"phone_num": black.phone_num,
"id_card": black.identity_card,
"user_id": black.user_id,
} for black in filter_blacks]
# for res in results:
# print(res)
return JsonResponse(results, status=200,safe=False)
else:
return JsonResponse({"error": "Method not allowed"}, status=405)

def user_data_query(request):
if request.method == 'GET':
filter_blacks = online_user.objects.all()
results = [{
"user_name": black.user_name,
"phone_num": black.phone_num,
"id_card": black.identity_card,
"user_id": black.user_id,
} for black in filter_blacks]
# for res in results:
# print(res)
return JsonResponse(results, status=200,safe=False)
else:
return JsonResponse({"error": "Method not allowed"}, status=405)

if not BlackList.objects.filter(admin=admin, user=user).exists():
BlackList.objects.create(admin=admin, user=user)
user.is_blacklisted = True
user.save()
return JsonResponse({'status': 'success'})


def cancel_black_account(request, sys_manager_id, user_id):
admin = get_object_or_404(sys_manage, sys_manager_id=sys_manager_id)
admin = get_object_or_404(online_bank_manager, online_bank_manager_id=sys_manager_id)
user = get_object_or_404(online_user, user_id=user_id)

blacklist_entry = BlackList.objects.filter(admin=admin, user=user)
Expand Down
136 changes: 3 additions & 133 deletions backend/bank_site/bank_app/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,139 +1,9 @@
# Generated by Django 5.0.6 on 2024-06-06 13:48
# Generated by Django 5.0.6 on 2024-06-10 17:17

import django.db.models.deletion
from django.db import migrations, models
from django.db import migrations


class Migration(migrations.Migration):
initial = True

dependencies = []

operations = [
migrations.CreateModel(
name="deposit_record",
fields=[
(
"deposit_record_id",
models.AutoField(primary_key=True, serialize=False),
),
("account_id", models.IntegerField()),
("deposit_type", models.CharField(max_length=10)),
("auto_renew_status", models.BooleanField()),
("deposit_start_date", models.DateField()),
("deposit_end_date", models.DateField()),
("deposit_amount", models.FloatField()),
("cashier_id", models.IntegerField()),
],
),
migrations.CreateModel(
name="employee",
fields=[
("employee_id", models.AutoField(primary_key=True, serialize=False)),
("employee_name", models.CharField(default="Unknown", max_length=20)),
("identity_card", models.CharField(default="Unknown", max_length=18)),
("employee_sex", models.IntegerField(default=0)),
("phone_number", models.CharField(default="Unknown", max_length=20)),
("occupation_name", models.CharField(default="Unknown", max_length=50)),
("is_employeed", models.BooleanField(default="False")),
(
"other_information",
models.CharField(default="Unknown", max_length=1021),
),
],
),
migrations.CreateModel(
name="online_user",
fields=[
(
"user_id",
models.AutoField(default=0, primary_key=True, serialize=False),
),
("user_name", models.CharField(default="Unknown", max_length=20)),
("password", models.CharField(default="666666", max_length=20)),
("identity_card", models.CharField(max_length=18)),
("phone_num", models.CharField(default="10086", max_length=20)),
("is_frozen", models.BooleanField(default=False)),
("is_lost", models.BooleanField(default=False)),
],
),
migrations.CreateModel(
name="transfer_record",
fields=[
(
"transfer_record_id",
models.AutoField(primary_key=True, serialize=False),
),
("account_in_id", models.IntegerField()),
("account_out_id", models.IntegerField()),
("transfer_date", models.DateField()),
("transfer_amount", models.FloatField()),
("cashier_id", models.IntegerField()),
],
),
migrations.CreateModel(
name="withdrawal_record",
fields=[
(
"withdrawal_record_id",
models.AutoField(primary_key=True, serialize=False),
),
("account_id", models.IntegerField()),
("withdrawal_date", models.DateField()),
("withdrawal_amount", models.FloatField()),
("cashier_id", models.IntegerField()),
],
),
migrations.CreateModel(
name="cashier",
fields=[
("cashier_id", models.AutoField(primary_key=True, serialize=False)),
("account", models.CharField(max_length=100)),
("password", models.CharField(max_length=20)),
("trade_authority", models.BooleanField()),
("manage_authority", models.BooleanField()),
(
"employee",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="bank_app.employee",
),
),
],
),
migrations.CreateModel(
name="account",
fields=[
("account_id", models.AutoField(primary_key=True, serialize=False)),
("password", models.CharField(max_length=20)),
("card_type", models.IntegerField()),
("balance", models.FloatField(default=0.0)),
("current_deposit", models.FloatField(default=0.0)),
("uncredited_deposit", models.FloatField(default=0.0)),
("is_frozen", models.BooleanField(default=False)),
("is_lost", models.BooleanField(default=True)),
(
"identity_card",
models.ForeignKey(
on_delete=django.db.models.deletion.PROTECT,
to="bank_app.online_user",
),
),
],
),
migrations.CreateModel(
name="sys_manage",
fields=[
("sys_manager_id", models.AutoField(primary_key=True, serialize=False)),
("account", models.CharField(max_length=100)),
("password", models.CharField(max_length=20)),
(
"employee",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="bank_app.employee",
),
),
],
),
]
operations = []

This file was deleted.

Loading

0 comments on commit eb59011

Please sign in to comment.