Browse Source

Merge branch 'master' of http://git.choozmo.com:3000/zooey/ntcri

Mia 1 year ago
parent
commit
01af6c4a39
2 changed files with 33 additions and 7 deletions
  1. 31 6
      app/api/registration.py
  2. 2 1
      app/models/models.py

+ 31 - 6
app/api/registration.py

@@ -1,3 +1,5 @@
+import json
+
 from fastapi_login import LoginManager
 from fastapi import APIRouter, Form, Depends, HTTPException, File, UploadFile
 from typing import List,Optional,Union
@@ -150,13 +152,23 @@ async def input_information(
     gender : str = Form(default=''),
     phone : str = Form(default=''),
     address : str = Form(default=''),
-    user_id = Depends(check_token)
+    user_id = Depends(check_token),
+    position: str = Form(...),
 ):
     try :
         if not user_id :
             return  {"msg": "no access", "code": 200}
-        
-        
+
+        position_list = json.loads(position)
+        d = {"學員":0,"開課工藝家":0,"其他":0}
+        if 1 in position_list:
+            d["學員"] = 1
+        if 2 in position_list:
+            d["開課工藝家"] = 1
+        if 3 in position_list:
+            d["其他"] = 1
+        print(d)
+
         inform = await User_information.get_or_create(
         user_id=user_id,
             defaults={
@@ -164,7 +176,8 @@ async def input_information(
                 'birthday' :birthday,
                 'gender': gender,
                 'phone': phone,
-                'address': address
+                'address': address,
+                'position': d,
             }
         )
 
@@ -187,7 +200,8 @@ async def update_information(
     gender : str = Form(default=''),
     phone : str = Form(default=''),
     address : str = Form(default=''),
-    user_id = Depends(check_token)
+    user_id = Depends(check_token),
+    position : str = Form(default=''),
 ):
     try :
         if not user_id :
@@ -195,6 +209,14 @@ async def update_information(
         
         infor = await User_information.get(user_id = user_id)
         user = await User.get(id = user_id)
+        position_list = json.loads(position)
+        d = {"學員":0,"開課工藝家":0,"其他":0}
+        if 1 in position_list:
+            d["學員"] = 1
+        if 2 in position_list:
+            d["開課工藝家"] = 1
+        if 3 in position_list:
+            d["其他"] = 1
 
         if name != '':
             infor.name = name
@@ -213,6 +235,8 @@ async def update_information(
 
         if user_name != '':
             user.username = user_name
+        if position != '':
+            infor.position = d
         
         await infor.save()
         await user.save()
@@ -257,13 +281,14 @@ async def get_user_information(
                     user_inform["address"]  = inform.address
                     user_inform["msg"] = "user information exist"
                     user_inform["exist"] = True
+                    user_inform["position"] = inform.position
                     
                 except:
                     user_inform["msg"] = "no user information"
                     user_inform["exist"] = False
 
             user_inform_list.append(user_inform)
-
+        print(user_inform_list)
 
         return {"msg":"success","code":200,"user_inform": user_inform_list}
     except Exception as e:

+ 2 - 1
app/models/models.py

@@ -15,7 +15,6 @@ class User(Model):
     points = fields.IntField(description="點數")
     is_superuser = fields.IntField(description="超級使用者")
     token = fields.CharField(max_length=200)
-    # position = fields.CharField(max_length=200,description="登入身分")
     is_active = fields.IntField(description="是否已認證")
 
 class UserPydantic(BaseModel):
@@ -144,6 +143,7 @@ class Registration(Model):
     is_del = fields.IntField(description="是否取消(1:yes ,0:no)")
     create_time = fields.DatetimeField(description="創建時間")
 
+
 class News(Model):
     id = fields.IntField(pk=True)
     title = fields.CharField(max_length=200, description="標題")
@@ -218,6 +218,7 @@ class User_information(Model):
     phone = fields.CharField(max_length=45, description="電話")
     address = fields.TextField(description="地址")
     is_default = fields.IntField(description="是否為預設")
+    position = fields.JSONField(max_length=200,description="登入身分")
 
 class Class_date(Model):
     id = fields.IntField(pk=True)