import random from django.db import transaction import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "aiDogProject.settings") import django django.setup() from aiDogApp.models import * def generate_random_number(start, end): """生成指定范围内的随机数""" return random.randint(start, end) def generate_dog_id(): """生成随机9位数字的 d_id""" return ''.join(random.choices("0123456789", k=9)) def getAPuppy(uid,dog_name,sex,breed,birthday,skin,got_time): """为用户创建一个新的狗狗并初始化其状态""" try: # 开始事务,确保更新是原子操作 with transaction.atomic(): # 随机生成 d_id d_id = generate_dog_id() # 随机初始化各属性值 # 身体性别属性:好奇心、智商、跑步速度、跳跃速度、活泼读、敏捷度、肥胖程度 curiosity = generate_random_number(30, 70) iq = generate_random_number(30, 70) runSpeed = generate_random_number(30, 70) JumpHeight = generate_random_number(30, 70) liveliness = generate_random_number(30, 70) agility = generate_random_number(30, 70) obesity = generate_random_number(30, 70) intimate = generate_random_number(25, 50) friendly = generate_random_number(25, 50) obedience = generate_random_number(25, 50) friendlyToHost = generate_random_number(20, 40) friendlyToOtherSSDog = generate_random_number(20, 40) friendlyToOtherDSDog = generate_random_number(20, 40) friendlyToStranger = generate_random_number(10, 30) # 创建一条狗 new_dog=Doginfo( d_id=d_id, owner_id=uid, dog_name=dog_name, sex=sex, breed=breed, birthday=birthday, skin=skin) # 创建新狗狗的记录 # 创建一条狗的状态数据 new_dog_status=DogStatus( d_id=d_id, time_lasttime=got_time ) # 创建一条狗的训练数据 new_dog_training=DogTrainingNew( d_id=d_id ) # 身体性别属性:好奇心、智商、跑步速度、跳跃速度、活泼读、敏捷度、肥胖程度 new_dog_body_attributes = DogBodyAttributes( d_id=d_id, curiosity=curiosity, iq=iq, runSpeed=runSpeed, JumpHeight=JumpHeight, liveliness=liveliness, agility=agility, obesity=obesity ) # 狗狗和狗主人关系参数 new_dog_personality_relationship = DogPersonalityRelationship( d_id=d_id, intimate=intimate, friendly=friendly, obedience=obedience, friendlyToHost=friendlyToHost, friendlyToOtherSSDog=friendlyToOtherSSDog, friendlyToOtherDSDog=friendlyToOtherDSDog, friendlyToStranger=friendlyToStranger ) # 保存狗狗和其属性 new_dog.save() new_dog_status.save() new_dog_training.save() new_dog_body_attributes.save() new_dog_personality_relationship.save() # 返回成功状态和数据 return { "status": "success", "code": 200, "message": "Dog initialized successfully", "dog_state": { "d_id": d_id, "uid": uid, "dog_name":dog_name, "sex":sex, "breed":breed, "birthday":birthday, "skin":skin, "curiosity": curiosity, "iq": iq, "runSpeed": runSpeed, "JumpHeight": JumpHeight, "liveliness": liveliness, "agility": agility, "obesity": obesity, "intimate": intimate, "friendly": friendly, "obedience": obedience, "friendlyToHost": friendlyToHost, "friendlyToOtherSSDog": friendlyToOtherSSDog, "friendlyToOtherDSDog": friendlyToOtherDSDog, "friendlyToStranger": friendlyToStranger, }, } except Exception as e: # 返回失败状态 return { "status": "error", "code": 500, "message": f"Dog initialization failed: {str(e)}", }