Commit e6beff8242d8c237c645216b94f5d096b7a04b88

Authored by liuye
1 parent e55b8f0d

feat<central_clearing_system>:打印功能完成,解析接口未完成

central_clearing_system/ETradeClient/hardware/hardware_cmd.cpp
... ... @@ -1292,143 +1292,215 @@ StylusPrinterCmd::Reply StylusPrinterCmd::Execute(const std::string&amp; input)
1292 1292  
1293 1293 int StylusPrinterCmd::Print(std::vector<OrderInfo> &order_vector)
1294 1294 {
1295   - CPrintDialog dlg(false);
1296   - dlg.GetDefaults();
1297   - CDC dc;
1298   - dc.Attach(dlg.GetPrinterDC());
1299   - LPDEVMODE pDevMode;
1300   - pDevMode = (LPDEVMODE)GlobalLock(dlg.m_pd.hDevMode);
1301   - pDevMode->dmOrientation = DMORIENT_PORTRAIT;//设置打印方向为横向
1302   - pDevMode->dmPaperSize = DMPAPER_9X11;//设置纸张大小为A4
1303   - dc.ResetDC(pDevMode);
1304   - dc.StartDoc(L"print");
1305   -
  1295 + HDC print_dc;
  1296 + DOCINFO docin;
  1297 +
  1298 + //设置打印机相关参数
  1299 + docin.cbSize = sizeof(DOCINFO);
  1300 + docin.lpszDocName = L"ETrade";
  1301 + docin.lpszOutput = NULL;
  1302 + CPrintDialog print_dialog(TRUE, PD_ALLPAGES | PD_NOPAGENUMS, NULL);
  1303 + PRINTDLG *print_dlg_info = &print_dialog.m_pd;
  1304 + AfxGetApp()->GetPrinterDeviceDefaults(print_dlg_info);
  1305 + DEVMODE* lpDevMode = (DEVMODE*)::GlobalLock(print_dlg_info->hDevMode);
  1306 + ::GlobalUnlock(print_dlg_info->hDevMode);
  1307 + lpDevMode->dmFields |= -1;
  1308 + lpDevMode->dmPaperLength = 1397; //设定纸长为 139.7mm
  1309 + lpDevMode->dmPaperWidth = 2410; //设定纸宽为 241mm
  1310 + print_dc = print_dialog.CreatePrinterDC(); // 返回一个打印DC句柄
  1311 + CDC *dc = new CDC;
  1312 + dc->Attach(print_dc);
1306 1313 CFont title_font;
1307 1314 title_font.CreatePointFont(350, L"宋体");
1308   -
1309 1315 CFont normal_font;
1310 1316 normal_font.CreatePointFont(200, L"宋体");
1311   -
  1317 + //
  1318 +
  1319 + const int FirstPageCommCount = 5; //如果有多页第一页商品数为6
  1320 + const int NormalPageCommCount = 10; //非第一页和最后一页,其他页的商品数目
  1321 + const int LastPageCommCount = 9; //最后一页最多商品数量
  1322 +
  1323 + const int TitleCtrlHIBig = 900; //表头不同组别控件横向间隔
  1324 + const int TitleCtrlHISmall = 150; //表头同组别控件横向间隔
  1325 + const int TitleCtrlVI = 50; //表头控件纵向间隔
  1326 + const int LineStartX = 100; //横线起点x坐标
  1327 + const int LineLength = 1600; //横线长度
  1328 + const int CommStartX = 200; //商品信息起始x坐标
  1329 + const int CommToLineVI = 30; //商品距横线纵向间隔
  1330 + const int NormalCommStartY = 40; //非第一页商品信息起始y坐标
  1331 + const int CommHI = 300; //商品信息横向间隔
  1332 + const int CommVI = 80; //商品信息纵向间隔
  1333 + const CPoint PagePoint(1200, 870); //页码坐标
  1334 + const CPoint TitleStartPoint(600, 50);//表名起始坐标
  1335 + const CPoint TitleCtrlStartPoint(100, 150);//表头控件起始坐标
  1336 +
  1337 + //开始打印
  1338 + StartDoc(print_dc, &docin); // 启动打印工作
1312 1339 for (auto iter : order_vector)
1313 1340 {
1314   - dc.StartPage();
1315   - dc.SelectObject(&title_font);
1316   - dc.TextOut(600, 50, iter.doc_name);
1317   -
1318   - dc.SelectObject(&normal_font);
1319   - dc.TextOut(100, 150, StatementNoText);
1320   - dc.TextOut(250, 150, iter.statements_no);
1321   -
1322   - dc.TextOut(1000, 150, TradeTimeText);
1323   - dc.TextOut(1150, 150, iter.trade_time);
1324   -
1325   - dc.TextOut(100, 200, BuyerNameText);
1326   - dc.TextOut(250, 200, iter.buyer_name);
1327   -
1328   - dc.TextOut(1000, 200, SalerNameText);
1329   - dc.TextOut(1150, 200, iter.seller_name);
1330   -
1331   - dc.MoveTo(100, 250);
1332   - dc.LineTo(1700, 250);
1333   -
1334   - dc.TextOut(200, 280, CommNameText);
1335   - dc.TextOut(500, 280, PriceText);
1336   - dc.TextOut(800, 280, CountText);
1337   - dc.TextOut(1100, 280, SubtotalText);
1338   - int y_point = 280;
1339   -
  1341 + //打印阶段单头部信息
  1342 + StartPage(print_dc);
  1343 +
  1344 + int y_point = TitleCtrlStartPoint.y;
  1345 + int x_point = TitleCtrlStartPoint.x;
  1346 +
  1347 + dc->SelectObject(&title_font);
  1348 + dc->TextOut(TitleStartPoint.x, TitleStartPoint.y, iter.doc_name);
  1349 +
  1350 + dc->SelectObject(&normal_font);
  1351 + dc->TextOut(TitleCtrlStartPoint.x, TitleCtrlStartPoint.y, StatementNoText);
  1352 + x_point += TitleCtrlHISmall;
  1353 + dc->TextOut(x_point, y_point, iter.statements_no);
  1354 +
  1355 + x_point += TitleCtrlHIBig;
  1356 + dc->TextOut(x_point, y_point, TradeTimeText);
  1357 + x_point += TitleCtrlHISmall;
  1358 + dc->TextOut(x_point, y_point, iter.trade_time);
  1359 +
  1360 + x_point = TitleCtrlStartPoint.x;
  1361 + y_point += TitleCtrlVI;
  1362 + dc->TextOut(x_point, y_point, BuyerNameText);
  1363 + x_point += TitleCtrlHISmall;
  1364 + dc->TextOut(x_point, y_point, iter.buyer_name);
  1365 +
  1366 + x_point += TitleCtrlHIBig;
  1367 + dc->TextOut(x_point, y_point, SalerNameText);
  1368 + x_point += TitleCtrlHISmall;
  1369 + dc->TextOut(x_point, y_point, iter.seller_name);
  1370 +
  1371 + y_point += TitleCtrlVI;
  1372 + dc->MoveTo(LineStartX, y_point);
  1373 + x_point += LineLength;
  1374 + dc->LineTo(x_point, y_point);
  1375 + //
  1376 +
  1377 + //打印商品信息头
  1378 + x_point = CommStartX;
  1379 + y_point += CommToLineVI;
  1380 + dc->TextOut(x_point, y_point, CommNameText);
  1381 + x_point += CommHI;
  1382 + dc->TextOut(x_point, y_point, PriceText);
  1383 + x_point += CommHI;
  1384 + dc->TextOut(x_point, y_point, CountText);
  1385 + x_point += CommHI;
  1386 + dc->TextOut(x_point, y_point, SubtotalText);
  1387 + //
  1388 +
  1389 + //计算页数
1340 1390 int comm_count = iter.comm_vector.size();
1341   - CString pagination;
1342   -
1343 1391 int page_count = 0;
1344   - if (comm_count <= 5)
  1392 + if (comm_count <= FirstPageCommCount)
1345 1393 {
1346 1394 page_count = 1;
1347 1395 }
1348   - else
  1396 + else
1349 1397 {
1350   - //comm_count -= 6;
1351   - page_count = (comm_count - 6) / 9 + ((comm_count - 6) % 9 > 0 ? 2 : 1);
  1398 + page_count = (comm_count - FirstPageCommCount - 1) / NormalPageCommCount + 2;
1352 1399 }
  1400 + //
1353 1401  
1354   - int first_page_comm = page_count > 1 ? 6 : comm_count; //第一页不分页最多有5条商品,分页最多有6条商品
  1402 + CString pagination;//页码文本
1355 1403  
  1404 + // 打印第一页
  1405 + int first_page_comm = page_count > 1 ? FirstPageCommCount + 1 : comm_count; //第一页不分页最多有5条商品,分页最多有6条商品
1356 1406 int comm_index = 0;
1357 1407 for (; comm_index < first_page_comm; ++comm_index)
1358 1408 {
1359   - y_point += 80;
1360   - dc.TextOut(200, y_point, iter.comm_vector[comm_index].comm_name);
1361   - dc.TextOut(500, y_point, iter.comm_vector[comm_index].price);
1362   - dc.TextOut(800, y_point, iter.comm_vector[comm_index].count);
1363   - dc.TextOut(1100, y_point, iter.comm_vector[comm_index].total_money);
  1409 + y_point += CommVI;
  1410 + x_point = CommStartX;
  1411 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].comm_name);
  1412 + x_point += CommHI;
  1413 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].price);
  1414 + x_point += CommHI;
  1415 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].count);
  1416 + x_point += CommHI;
  1417 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].total_money);
1364 1418 }
1365 1419  
1366 1420 if (page_count > 1)
1367 1421 {
1368 1422 pagination.Format(L"%d/%d", 1, page_count);
1369   - dc.TextOut(1200, 870, pagination);
1370   - dc.EndPage();
  1423 + dc->TextOut(PagePoint.x, PagePoint.y, pagination);
  1424 + dc->EndPage();
1371 1425 }
  1426 + //
1372 1427  
  1428 + //打印除第一页和最后一页的其余页数
1373 1429 for (int index = 1; index < page_count - 1; ++index)
1374 1430 {
1375   - dc.StartPage();
1376   - y_point = 40;
1377   - for (int comm = 0; comm < 9; ++comm, ++comm_index)
  1431 + StartPage(print_dc);
  1432 + y_point = NormalCommStartY;
  1433 + for (int comm = 0; comm < NormalPageCommCount; ++comm, ++comm_index)
1378 1434 {
1379   - y_point += 80;
1380   - dc.TextOut(200, y_point, iter.comm_vector[comm_index].comm_name);
1381   - dc.TextOut(500, y_point, iter.comm_vector[comm_index].price);
1382   - dc.TextOut(800, y_point, iter.comm_vector[comm_index].count);
1383   - dc.TextOut(1100, y_point, iter.comm_vector[comm_index].total_money);
  1435 + x_point = CommStartX;
  1436 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].comm_name);
  1437 + x_point += CommHI;
  1438 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].price);
  1439 + x_point += CommHI;
  1440 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].count);
  1441 + x_point += CommHI;
  1442 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].total_money);
  1443 + y_point += CommVI;
1384 1444 }
1385 1445 pagination.Format(L"%d/%d", index + 1, page_count);
1386   - dc.TextOut(1200, 870, pagination);
1387   - dc.EndPage();
  1446 + dc->TextOut(PagePoint.x, PagePoint.y, pagination);
  1447 + dc->EndPage();
1388 1448 }
  1449 + //
1389 1450  
1390   - if (comm_count % 9 > 0 && page_count > 1)
  1451 + //打印最后一页
  1452 + if (page_count > 1)
1391 1453 {
1392   - dc.StartPage();
1393   - y_point = 40;
  1454 + StartPage(print_dc);
  1455 + y_point = NormalCommStartY;
1394 1456 for (; comm_index < comm_count; ++comm_index)
1395 1457 {
1396   - y_point += 80;
1397   - dc.TextOut(200, y_point, iter.comm_vector[comm_index].comm_name);
1398   - dc.TextOut(500, y_point, iter.comm_vector[comm_index].price);
1399   - dc.TextOut(800, y_point, iter.comm_vector[comm_index].count);
1400   - dc.TextOut(1100, y_point, iter.comm_vector[comm_index].total_money);
  1458 + x_point = CommStartX;
  1459 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].comm_name);
  1460 + x_point += CommHI;
  1461 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].price);
  1462 + x_point += CommHI;
  1463 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].count);
  1464 + x_point += CommHI;
  1465 + dc->TextOut(x_point, y_point, iter.comm_vector[comm_index].total_money);
  1466 + y_point += CommVI;
1401 1467 }
1402   - dc.EndPage();
1403 1468 }
1404   -
1405   - dc.MoveTo(100, y_point += 80);
1406   - dc.LineTo(1700, y_point);
1407   -
1408   - dc.TextOut(100, y_point += 30, ClerkText);
1409   - dc.TextOut(250, y_point, iter.settlement_clerk);
1410   -
1411   - dc.TextOut(1100, y_point, TotalMoneyText);
1412   - dc.TextOut(1250, y_point, iter.total_money);
  1469 +
  1470 + x_point = LineStartX;
  1471 + y_point += CommVI;
  1472 + dc->MoveTo(x_point, y_point);
  1473 + x_point += LineLength;
  1474 + dc->LineTo(x_point, y_point);
  1475 +
  1476 + x_point = TitleCtrlStartPoint.x;
  1477 + y_point += CommToLineVI;
  1478 + dc->TextOut(x_point, y_point, ClerkText);
  1479 + x_point += TitleCtrlHISmall;
  1480 + dc->TextOut(x_point, y_point, iter.settlement_clerk);
  1481 +
  1482 + x_point += TitleCtrlHIBig;
  1483 + dc->TextOut(x_point, y_point, TotalMoneyText);
  1484 + x_point += TitleCtrlHISmall;
  1485 + dc->TextOut(x_point, y_point, iter.total_money);
1413 1486  
1414 1487 pagination.Format(L"%d/%d", page_count, page_count);
1415   - dc.TextOut(1200, 870, pagination);
  1488 + dc->TextOut(PagePoint.x, PagePoint.y, pagination);
1416 1489  
1417   - if (page_count == 1)
1418   - {
1419   - dc.EndPage();
1420   - }
1421   -
  1490 + EndPage(print_dc);
1422 1491 }
1423 1492  
1424   -
1425 1493 title_font.DeleteObject();
1426 1494 normal_font.DeleteObject();
1427   - dc.EndDoc();//结束打印
  1495 +
  1496 + EndDoc(print_dc);//结束打印
  1497 + DeleteDC(print_dc);
  1498 + delete dc;
1428 1499  
1429 1500 return true;
1430 1501 }
1431 1502  
  1503 +
1432 1504 static const std::string JSON_TAG_TITLE = "title";
1433 1505 static const std::string JSON_TAG_ORDERS = "orders";
1434 1506 static const std::string JSON_TAG_ORDER_ID = "orderId";
... ...
central_clearing_system/ETradeClient/mfc_ui/pay_dlg.cpp
... ... @@ -116,5 +116,5 @@ void PayDlg::OnBnClickedPayButtonPay()
116 116 {
117 117 auto printer_device = StylusPrinterCmd();
118 118  
119   - HardwareCmd::Reply reply = printer_device.Execute("{\"title\":\"长春结地利算单\",\"orders\":[{\"statementId\":\"123456\",\"tradeTime\":\"2018/10/10\",\"buyerName\":\"大熊\",\"sellerName\":\"卖家大熊\",\"userName\":\"结算员大熊\",\"totalMoney\":\"11001.91\",\"products\":[{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"55.5\",\"amount\":\"500\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"}]}]}");
  119 + HardwareCmd::Reply reply = printer_device.Execute("{\"title\":\"长春结地利算单\",\"orders\":[{\"statementId\":\"123456\",\"tradeTime\":\"2018/10/10\",\"buyerName\":\"大熊\",\"sellerName\":\"卖家大熊\",\"userName\":\"结算员大熊\",\"totalMoney\":\"11001.91\",\"products\":[{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"55.5\",\"amount\":\"500\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"}]},{\"statementId\":\"123456\",\"tradeTime\":\"2018/10/10\",\"buyerName\":\"大熊\",\"sellerName\":\"卖家大熊\",\"userName\":\"结算员大熊\",\"totalMoney\":\"11001.91\",\"products\":[{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"55.5\",\"amount\":\"500\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"},{\"orderId\":1000,\"productName\":\"商品名称大熊\",\"price\":\"2753\",\"amount\":\"752\",\"money\":\"1021.01\"}]}]}");
120 120 }
... ...