//根据行、列数初始化演出厅的座位 int Seat_Srv_RoomInit(seat_list_t list, int roomID, int rowsCount, int colsCount) { int i, j; seat_node_t *p; //批量获取主键 long seatID=EntKey_Srv_CompNewKeys("Seat", rowsCount*colsCount); //先按行列数生成默认座位,形成链表 for (i = 1; i <= rowsCount; i++){ for (j = 1; j <= colsCount; j++) { p = (seat_node_t *) malloc(sizeof(seat_node_t)); p->data.id = seatID; p->data.roomID = roomID; p->data.row = i; p->data.column = j; p->data.status = SEAT_NONE; seatID++; List_AddTail(list, p); } } return Seat_Perst_InsertBatch(list); }
int Ticket_Srv_AddBatch(int schedule_id, int studio_id){ int rtn,i,key; ticket_node_t *p; seat_node_t *q; ticket_list_t ticket_list; seat_list_t seat_list; schedule_t scd; play_t pld; Schedule_Srv_FetchByID(schedule_id, &scd); Play_Srv_FetchByID( scd.play_id, &pld); //Seat_Number_Count(studio_id); List_Init(ticket_list, ticket_node_t); List_Init(seat_list,seat_node_t); rtn=Seat_Srv_FetchValidByRoomID(seat_list, studio_id); key=EntKey_Srv_CompNewKeys("ticket",rtn); //Seat_Srv_FetchByRoomID(seat_list,studio_id); q=seat_list->next; for(i=1;i<=rtn;i++) { p=(ticket_node_t *)malloc(sizeof(ticket_node_t)); p->data.id=key; p->data.schedule_id=schedule_id; p->data.seat_id=q->data.id; p->data.price=pld.price; p->data.status=TICKET_AVL; List_AddTail(ticket_list,p); key++; q=q->next; } Ticket_Perst_Insert(ticket_list); return 1; }
/*根据传入的实体名entName,为新实体分配一个唯一的主键。函数返回值为取新实体的主键值*/ inline long EntKey_Srv_CompNewKey(char entName[]) { return EntKey_Srv_CompNewKeys(entName, 1); }