117 lines
2.9 KiB
TypeScript
117 lines
2.9 KiB
TypeScript
/**
|
|
* 배송/화물 관리 컨트롤러
|
|
*/
|
|
|
|
import { Request, Response } from 'express';
|
|
import * as deliveryService from '../services/deliveryService';
|
|
|
|
/**
|
|
* GET /api/delivery/status
|
|
* 배송 현황 조회
|
|
*/
|
|
export async function getDeliveryStatus(req: Request, res: Response): Promise<void> {
|
|
try {
|
|
const data = await deliveryService.getDeliveryStatus();
|
|
res.json({
|
|
success: true,
|
|
data,
|
|
});
|
|
} catch (error) {
|
|
console.error('배송 현황 조회 실패:', error);
|
|
res.status(500).json({
|
|
success: false,
|
|
message: '배송 현황 조회에 실패했습니다.',
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* GET /api/delivery/delayed
|
|
* 지연 배송 목록 조회
|
|
*/
|
|
export async function getDelayedDeliveries(req: Request, res: Response): Promise<void> {
|
|
try {
|
|
const deliveries = await deliveryService.getDelayedDeliveries();
|
|
res.json({
|
|
success: true,
|
|
data: deliveries,
|
|
});
|
|
} catch (error) {
|
|
console.error('지연 배송 조회 실패:', error);
|
|
res.status(500).json({
|
|
success: false,
|
|
message: '지연 배송 조회에 실패했습니다.',
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* GET /api/delivery/issues
|
|
* 고객 이슈 목록 조회
|
|
*/
|
|
export async function getCustomerIssues(req: Request, res: Response): Promise<void> {
|
|
try {
|
|
const { status } = req.query;
|
|
const issues = await deliveryService.getCustomerIssues(status as string);
|
|
res.json({
|
|
success: true,
|
|
data: issues,
|
|
});
|
|
} catch (error) {
|
|
console.error('고객 이슈 조회 실패:', error);
|
|
res.status(500).json({
|
|
success: false,
|
|
message: '고객 이슈 조회에 실패했습니다.',
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* PUT /api/delivery/:id/status
|
|
* 배송 상태 업데이트
|
|
*/
|
|
export async function updateDeliveryStatus(req: Request, res: Response): Promise<void> {
|
|
try {
|
|
const { id } = req.params;
|
|
const { status, delayReason } = req.body;
|
|
|
|
await deliveryService.updateDeliveryStatus(id, status, delayReason);
|
|
|
|
res.json({
|
|
success: true,
|
|
message: '배송 상태가 업데이트되었습니다.',
|
|
});
|
|
} catch (error) {
|
|
console.error('배송 상태 업데이트 실패:', error);
|
|
res.status(500).json({
|
|
success: false,
|
|
message: '배송 상태 업데이트에 실패했습니다.',
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* PUT /api/delivery/issues/:id/status
|
|
* 고객 이슈 상태 업데이트
|
|
*/
|
|
export async function updateIssueStatus(req: Request, res: Response): Promise<void> {
|
|
try {
|
|
const { id } = req.params;
|
|
const { status } = req.body;
|
|
|
|
await deliveryService.updateIssueStatus(id, status);
|
|
|
|
res.json({
|
|
success: true,
|
|
message: '이슈 상태가 업데이트되었습니다.',
|
|
});
|
|
} catch (error) {
|
|
console.error('이슈 상태 업데이트 실패:', error);
|
|
res.status(500).json({
|
|
success: false,
|
|
message: '이슈 상태 업데이트에 실패했습니다.',
|
|
});
|
|
}
|
|
}
|
|
|