Skip to content

주문 정보 업로드 및 주문 내역 조회 API 개발

Notifications You must be signed in to change notification settings

Alloboo/order_management_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

주문 정보 업로드 및 주문 내역 조회 API 개발


1. 사용 기술

환경

언어

프레임워크/라이브러리

데이터베이스



2. 데이터베이스 설계

ERD

스크린샷 2024-01-15 213732


DDL(migration으로 대체)

import { ConnectionOptions, MigrationInterface, QueryRunner } from "typeorm";

export class CreateUserTable1705682562235 implements MigrationInterface {
  name = "CreateUserTable1705682562235";

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE \`customer\` (\`customer_id\` int NOT NULL AUTO_INCREMENT, \`customer_name\` varchar(200) NOT NULL, \`customer_grade\` varchar(50) NOT NULL, PRIMARY KEY (\`customer_id\`)) ENGINE=InnoDB`
    );
    await queryRunner.query(
      `CREATE TABLE \`order_history\` (\`order_id\` int NOT NULL AUTO_INCREMENT, \`customer_id\` int NOT NULL, \`order_date\` date NOT NULL, \`order_type\` enum ('order', 'refund') NOT NULL, \`order_amount\` decimal(10,2) NOT NULL, PRIMARY KEY (\`order_id\`)) ENGINE=InnoDB`
    );
    await queryRunner.query(
      `ALTER TABLE \`customer\` ALTER COLUMN \`customer_name\` SET DEFAULT '기본이름'`
    );
    await queryRunner.query(
      `ALTER TABLE \`order_history\` ADD CONSTRAINT \`FK_7ec8834ccf79631a801ab032f94\` FOREIGN KEY (\`customer_id\`) REFERENCES \`customer\`(\`customer_id\`) ON DELETE CASCADE ON UPDATE NO ACTION`
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE \`order_history\` DROP FOREIGN KEY \`FK_7ec8834ccf79631a801ab032f94\``
    );
    await queryRunner.query(`DROP TABLE \`order_history\``);
    await queryRunner.query(`DROP TABLE \`customer\``);
  }
}


3. API 설계

구현 API

  1. 고객정보 및 주문내역정보 업로드 API: 엑셀 파일을 읽어서 Database에 데이터를 등록한다.
  2. 월별 매출 통계 API: 월별 매출 합계 데이터를 반환한다.
  3. 주문 목록 조회 API: 주문 목록을 조회하는 페이지에서 API 요청 시 조건에 맞게(페이지네이션, 필터) 주문 데이터를 반환한다.

API 명세

스크린샷 2024-01-20 130529


테스트 케이스

  • 고객 정보 및 주문 내역 db 저장
  • /api/uploads
  • req.body.file
  • 월별 매출 통계
  • /api/monthlySales
  • 전체 주문 목록 조회
  • /api/orderList
  • 특정 날짜 범위 주문 조회
  • /api/orderList?startDate=2023-01-01&endDate=2023-01-31
  • 주문 타입별 주문 조회
  • /api/orderList?orderType=2
  • 고객별 주문 조회
  • /api/orderList?customerId=70
  • 날짜 범위/주문 타입/고객 주문 조회
  • /api/orderList?startDate=2023-01-01&endDate=2023-02-28&orderType=2&customerId=70


About

주문 정보 업로드 및 주문 내역 조회 API 개발

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published