debug.controller.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { Request, Response } from 'express';
  2. import { designService, COLOR_MAPPING } from '../services/design.service';
  3. import { query, initializeDatabase } from '../database';
  4. export const debugController = {
  5. initDb: async (req: Request, res: Response) => {
  6. try {
  7. await initializeDatabase();
  8. res.json({ success: true, message: '数据库已初始化' });
  9. } catch (error) {
  10. console.error('数据库初始化错误:', error);
  11. res.status(500).json({ success: false, error: '初始化失败' });
  12. }
  13. },
  14. checkDb: async (req: Request, res: Response) => {
  15. try {
  16. const tableExists = await query(`
  17. SELECT EXISTS (
  18. SELECT 1 FROM information_schema.tables
  19. WHERE table_name = 'design_usage'
  20. )
  21. `);
  22. res.json({ exists: tableExists.rows[0].exists });
  23. } catch (error) {
  24. console.error('数据库检查错误:', error);
  25. res.status(500).json({ success: false, error: '检查失败' });
  26. }
  27. },
  28. generateTestData: async (req: Request, res: Response) => {
  29. try {
  30. const count = parseInt(req.query.count as string) || 100;
  31. const colorCodes = COLOR_MAPPING.map(c => c.code);
  32. for (let i = 0; i < count; i++) {
  33. const design = {
  34. part1: colorCodes[Math.floor(Math.random() * colorCodes.length)],
  35. part2: colorCodes[Math.floor(Math.random() * colorCodes.length)],
  36. part3: colorCodes[Math.floor(Math.random() * colorCodes.length)],
  37. part4: colorCodes[Math.floor(Math.random() * colorCodes.length)],
  38. };
  39. await designService.saveDesign(design);
  40. }
  41. res.json({ success: true, message: `已生成 ${count} 条记录` });
  42. } catch (error) {
  43. console.error('生成测试数据错误:', error);
  44. res.status(500).json({ success: false, error: '生成失败' });
  45. }
  46. },
  47. resetStatistics: async (req: Request, res: Response) => {
  48. try {
  49. await query('TRUNCATE TABLE design_usage');
  50. res.json({ success: true, message: '统计数据已重置' });
  51. } catch (error) {
  52. console.error('重置统计数据错误:', error);
  53. res.status(500).json({ success: false, error: '重置失败' });
  54. }
  55. }
  56. };