Commit 32cca12cd2a9cc8db4d4eb8c256045f8b034bab5

Authored by puhui999
1 parent 217a31a1

fix:seckillTime => seckillConfig

Showing 26 changed files with 949 additions and 554 deletions
sql/dm/ruoyi-vue-pro-dm8.sql
@@ -1797,27 +1797,112 @@ INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT" @@ -1797,27 +1797,112 @@ INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT"
1797 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2046,'满减送活动关闭','promotion:reward-activity:close',3,5,2041,'','','',null,0,1,1,1,'1','2022-11-05 10:42:53','1','2022-11-05 10:42:53',0); 1797 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2046,'满减送活动关闭','promotion:reward-activity:close',3,5,2041,'','','',null,0,1,1,1,'1','2022-11-05 10:42:53','1','2022-11-05 10:42:53',0);
1798 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2047,'限时折扣活动','',2,7,2030,'discount-activity','time','mall/promotion/discountActivity/index','PromotionDiscountActivity',0,1,1,1,'','2022-11-05 17:12:15','1','2023-04-08 11:45:44',0); 1798 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2047,'限时折扣活动','',2,7,2030,'discount-activity','time','mall/promotion/discountActivity/index','PromotionDiscountActivity',0,1,1,1,'','2022-11-05 17:12:15','1','2023-04-08 11:45:44',0);
1799 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2048,'限时折扣活动查询','promotion:discount-activity:query',3,1,2047,'','','',null,0,1,1,1,'','2022-11-05 17:12:15','','2022-11-05 17:12:15',0); 1799 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2048,'限时折扣活动查询','promotion:discount-activity:query',3,1,2047,'','','',null,0,1,1,1,'','2022-11-05 17:12:15','','2022-11-05 17:12:15',0);
1800 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2049,'限时折扣活动创建','promotion:discount-activity:create',3,2,2047,'','','',null,0,1,1,1,'','2022-11-05 17:12:15','','2022-11-05 17:12:15',0);  
1801 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2050,'限时折扣活动更新','promotion:discount-activity:update',3,3,2047,'','','',null,0,1,1,1,'','2022-11-05 17:12:16','','2022-11-05 17:12:16',0);  
1802 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2051,'限时折扣活动删除','promotion:discount-activity:delete',3,4,2047,'','','',null,0,1,1,1,'','2022-11-05 17:12:16','','2022-11-05 17:12:16',0);  
1803 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2052,'限时折扣活动关闭','promotion:discount-activity:close',3,5,2047,'','','',null,0,1,1,1,'','2022-11-05 17:12:16','','2022-11-05 17:12:16',0);  
1804 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2059,'秒杀活动管理','',2,0,2030,'seckill-activity','time-range','mall/promotion/seckill/seckillActivity/index','PromotionSeckillActivity',0,1,1,1,'','2022-11-06 22:24:49','1','2023-04-08 11:46:02',0);  
1805 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2060,'秒杀活动查询','promotion:seckill-activity:query',3,1,2059,'','','',null,0,1,1,1,'','2022-11-06 22:24:49','','2022-11-06 22:24:49',0);  
1806 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2061,'秒杀活动创建','promotion:seckill-activity:create',3,2,2059,'','','',null,0,1,1,1,'','2022-11-06 22:24:49','','2022-11-06 22:24:49',0);  
1807 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2062,'秒杀活动更新','promotion:seckill-activity:update',3,3,2059,'','','',null,0,1,1,1,'','2022-11-06 22:24:49','','2022-11-06 22:24:49',0);  
1808 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2063,'秒杀活动删除','promotion:seckill-activity:delete',3,4,2059,'','','',null,0,1,1,1,'','2022-11-06 22:24:49','','2022-11-06 22:24:49',0);  
1809 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2064,'秒杀活动导出','promotion:seckill-activity:export',3,5,2059,'','','',null,0,1,1,1,'','2022-11-06 22:24:49','','2022-11-06 22:24:49',0);  
1810 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2066,'秒杀时段管理','',2,0,2030,'seckill-time','','mall/promotion/seckill/seckillTime/index','PromotionSeckillTime',0,0,1,1,'','2022-11-15 19:46:50','1','2023-04-08 11:46:17',0);  
1811 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2067,'秒杀时段查询','promotion:seckill-time:query',3,1,2066,'','','',null,0,1,1,1,'','2022-11-15 19:46:51','','2022-11-15 19:46:51',0);  
1812 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2068,'秒杀时段创建','promotion:seckill-time:create',3,2,2066,'','','',null,0,1,1,1,'','2022-11-15 19:46:51','','2022-11-15 19:46:51',0);  
1813 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2069,'秒杀时段更新','promotion:seckill-time:update',3,3,2066,'','','',null,0,1,1,1,'','2022-11-15 19:46:51','','2022-11-15 19:46:51',0);  
1814 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2070,'秒杀时段删除','promotion:seckill-time:delete',3,4,2066,'','','',null,0,1,1,1,'','2022-11-15 19:46:51','','2022-11-15 19:46:51',0);  
1815 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2071,'秒杀时段导出','promotion:seckill-time:export',3,5,2066,'','','',null,0,1,1,1,'','2022-11-15 19:46:51','','2022-11-15 19:46:51',0);  
1816 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2072,'订单中心','',1,65,0,'/trade','order',null,null,0,1,1,1,'1','2022-11-19 18:57:19','1','2022-12-10 16:32:57',0);  
1817 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2073,'售后退款','',2,1,2072,'trade/after-sale','education','mall/trade/afterSale/index','TradeAfterSale',0,1,1,1,'','2022-11-19 20:15:32','1','2023-04-08 11:43:19',0);  
1818 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2074,'售后查询','trade:after-sale:query',3,1,2073,'','','',null,0,1,1,1,'','2022-11-19 20:15:33','1','2022-12-10 21:04:29',0);  
1819 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2075,'秒杀活动关闭','promotion:sekill-activity:close',3,6,2059,'','','',null,0,1,1,1,'1','2022-11-28 20:20:15','1','2022-11-28 20:20:15',0);  
1820 -INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2076,'订单列表','',2,0,2072,'trade/order','list','mall/trade/order/index','TradeOrder',0,1,1,1,'1','2022-12-10 21:05:44','1','2023-04-08 11:42:23',0); 1800 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1801 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1802 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1803 +VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', null, 0, 1, 1, 1, '',
  1804 + '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', 0);
  1805 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1806 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1807 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1808 +VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', null, 0, 1, 1, 1, '',
  1809 + '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', 0);
  1810 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1811 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1812 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1813 +VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', null, 0, 1, 1, 1, '',
  1814 + '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', 0);
  1815 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1816 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1817 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1818 +VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', null, 0, 1, 1, 1, '',
  1819 + '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', 0);
  1820 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1821 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1822 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1823 +VALUES (2059, '秒杀活动管理', '', 2, 0, 2030, 'seckill-activity', 'time-range',
  1824 + 'mall/promotion/seckill/seckillActivity/index', 'PromotionSeckillActivity', 0, 1, 1, 1, '',
  1825 + '2022-11-06 22:24:49', '1', '2023-04-08 11:46:02', 0);
  1826 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1827 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1828 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1829 +VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', null, 0, 1, 1, 1, '',
  1830 + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0);
  1831 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1832 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1833 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1834 +VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', null, 0, 1, 1, 1, '',
  1835 + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0);
  1836 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1837 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1838 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1839 +VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', null, 0, 1, 1, 1, '',
  1840 + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0);
  1841 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1842 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1843 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1844 +VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', null, 0, 1, 1, 1, '',
  1845 + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0);
  1846 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1847 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1848 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1849 +VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', null, 0, 1, 1, 1, '',
  1850 + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0);
  1851 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1852 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1853 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1854 +VALUES (2066, '秒杀时段管理', '', 2, 0, 2030, 'seckill-time', '', 'mall/promotion/seckill/SeckillConfig/index',
  1855 + 'PromotionSeckillConfig', 0, 0, 1, 1, '', '2022-11-15 19:46:50', '1', '2023-04-08 11:46:17', 0);
  1856 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1857 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1858 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1859 +VALUES (2067, '秒杀时段查询', 'promotion:seckill-time:query', 3, 1, 2066, '', '', '', null, 0, 1, 1, 1, '',
  1860 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0);
  1861 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1862 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1863 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1864 +VALUES (2068, '秒杀时段创建', 'promotion:seckill-time:create', 3, 2, 2066, '', '', '', null, 0, 1, 1, 1, '',
  1865 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0);
  1866 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1867 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1868 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1869 +VALUES (2069, '秒杀时段更新', 'promotion:seckill-time:update', 3, 3, 2066, '', '', '', null, 0, 1, 1, 1, '',
  1870 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0);
  1871 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1872 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1873 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1874 +VALUES (2070, '秒杀时段删除', 'promotion:seckill-time:delete', 3, 4, 2066, '', '', '', null, 0, 1, 1, 1, '',
  1875 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0);
  1876 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1877 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1878 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1879 +VALUES (2071, '秒杀时段导出', 'promotion:seckill-time:export', 3, 5, 2066, '', '', '', null, 0, 1, 1, 1, '',
  1880 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0);
  1881 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1882 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1883 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1884 +VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', null, null, 0, 1, 1, 1, '1', '2022-11-19 18:57:19', '1',
  1885 + '2022-12-10 16:32:57', 0);
  1886 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1887 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1888 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1889 +VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index',
  1890 + 'TradeAfterSale', 0, 1, 1, 1, '', '2022-11-19 20:15:32', '1', '2023-04-08 11:43:19', 0);
  1891 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1892 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1893 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1894 +VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', null, 0, 1, 1, 1, '', '2022-11-19 20:15:33',
  1895 + '1', '2022-12-10 21:04:29', 0);
  1896 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1897 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1898 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1899 +VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', null, 0, 1, 1, 1, '1',
  1900 + '2022-11-28 20:20:15', '1', '2022-11-28 20:20:15', 0);
  1901 +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON",
  1902 + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE",
  1903 + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED")
  1904 +VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 'TradeOrder', 0, 1, 1, 1,
  1905 + '1', '2022-12-10 21:05:44', '1', '2023-04-08 11:42:23', 0);
1821 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2077,'物流公司管理管理','',2,0,2072,'express-company','','mall/trade/expressCompany/index',null,0,1,1,1,'','2022-12-20 23:27:55','1','2022-12-20 23:36:20',0); 1906 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2077,'物流公司管理管理','',2,0,2072,'express-company','','mall/trade/expressCompany/index',null,0,1,1,1,'','2022-12-20 23:27:55','1','2022-12-20 23:36:20',0);
1822 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2078,'物流公司管理查询','trade:express-company:query',3,1,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0); 1907 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2078,'物流公司管理查询','trade:express-company:query',3,1,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0);
1823 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2079,'物流公司管理创建','trade:express-company:create',3,2,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0); 1908 INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2079,'物流公司管理创建','trade:express-company:create',3,2,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0);
sql/mysql/ruoyi-vue-pro.sql
@@ -1980,27 +1980,112 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i @@ -1980,27 +1980,112 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i
1980 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2046, '满减送活动关闭', 'promotion:reward-activity:close', 3, 5, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-05 10:42:53', '1', '2022-11-05 10:42:53', b'0'); 1980 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2046, '满减送活动关闭', 'promotion:reward-activity:close', 3, 5, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-05 10:42:53', '1', '2022-11-05 10:42:53', b'0');
1981 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2047, '限时折扣活动', '', 2, 7, 2030, 'discount-activity', 'time', 'mall/promotion/discountActivity/index', 'PromotionDiscountActivity', 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '1', '2023-04-08 11:45:44', b'0'); 1981 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2047, '限时折扣活动', '', 2, 7, 2030, 'discount-activity', 'time', 'mall/promotion/discountActivity/index', 'PromotionDiscountActivity', 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '1', '2023-04-08 11:45:44', b'0');
1982 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2048, '限时折扣活动查询', 'promotion:discount-activity:query', 3, 1, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0'); 1982 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2048, '限时折扣活动查询', 'promotion:discount-activity:query', 3, 1, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0');
1983 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0');  
1984 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0');  
1985 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0');  
1986 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0');  
1987 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2059, '秒杀活动管理', '', 2, 0, 2030, 'seckill-activity', 'time-range', 'mall/promotion/seckill/seckillActivity/index', 'PromotionSeckillActivity', 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '1', '2023-04-08 11:46:02', b'0');  
1988 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');  
1989 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');  
1990 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');  
1991 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');  
1992 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');  
1993 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2066, '秒杀时段管理', '', 2, 0, 2030, 'seckill-time', '', 'mall/promotion/seckill/seckillTime/index', 'PromotionSeckillTime', 0, b'0', b'1', b'1', '', '2022-11-15 19:46:50', '1', '2023-04-08 11:46:17', b'0');  
1994 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2067, '秒杀时段查询', 'promotion:seckill-time:query', 3, 1, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');  
1995 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2068, '秒杀时段创建', 'promotion:seckill-time:create', 3, 2, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');  
1996 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2069, '秒杀时段更新', 'promotion:seckill-time:update', 3, 3, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');  
1997 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2070, '秒杀时段删除', 'promotion:seckill-time:delete', 3, 4, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');  
1998 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2071, '秒杀时段导出', 'promotion:seckill-time:export', 3, 5, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');  
1999 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-11-19 18:57:19', '1', '2022-12-10 16:32:57', b'0');  
2000 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index', 'TradeAfterSale', 0, b'1', b'1', b'1', '', '2022-11-19 20:15:32', '1', '2023-04-08 11:43:19', b'0');  
2001 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-19 20:15:33', '1', '2022-12-10 21:04:29', b'0');  
2002 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-28 20:20:15', '1', '2022-11-28 20:20:15', b'0');  
2003 -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 'TradeOrder', 0, b'1', b'1', b'1', '1', '2022-12-10 21:05:44', '1', '2023-04-08 11:42:23', b'0'); 1983 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  1984 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  1985 + `updater`, `update_time`, `deleted`)
  1986 +VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', NULL, 0, b'1', b'1',
  1987 + b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0');
  1988 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  1989 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  1990 + `updater`, `update_time`, `deleted`)
  1991 +VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', NULL, 0, b'1', b'1',
  1992 + b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0');
  1993 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  1994 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  1995 + `updater`, `update_time`, `deleted`)
  1996 +VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', NULL, 0, b'1', b'1',
  1997 + b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0');
  1998 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  1999 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2000 + `updater`, `update_time`, `deleted`)
  2001 +VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', NULL, 0, b'1', b'1',
  2002 + b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0');
  2003 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2004 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2005 + `updater`, `update_time`, `deleted`)
  2006 +VALUES (2059, '秒杀活动管理', '', 2, 0, 2030, 'seckill-activity', 'time-range',
  2007 + 'mall/promotion/seckill/seckillActivity/index', 'PromotionSeckillActivity', 0, b'1', b'1', b'1', '',
  2008 + '2022-11-06 22:24:49', '1', '2023-04-08 11:46:02', b'0');
  2009 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2010 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2011 + `updater`, `update_time`, `deleted`)
  2012 +VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '',
  2013 + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');
  2014 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2015 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2016 + `updater`, `update_time`, `deleted`)
  2017 +VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', NULL, 0, b'1', b'1', b'1',
  2018 + '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');
  2019 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2020 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2021 + `updater`, `update_time`, `deleted`)
  2022 +VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', NULL, 0, b'1', b'1', b'1',
  2023 + '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');
  2024 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2025 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2026 + `updater`, `update_time`, `deleted`)
  2027 +VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', NULL, 0, b'1', b'1', b'1',
  2028 + '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');
  2029 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2030 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2031 + `updater`, `update_time`, `deleted`)
  2032 +VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', NULL, 0, b'1', b'1', b'1',
  2033 + '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0');
  2034 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2035 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2036 + `updater`, `update_time`, `deleted`)
  2037 +VALUES (2066, '秒杀时段管理', '', 2, 0, 2030, 'seckill-time', '', 'mall/promotion/seckill/SeckillConfig/index',
  2038 + 'PromotionSeckillConfig', 0, b'0', b'1', b'1', '', '2022-11-15 19:46:50', '1', '2023-04-08 11:46:17', b'0');
  2039 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2040 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2041 + `updater`, `update_time`, `deleted`)
  2042 +VALUES (2067, '秒杀时段查询', 'promotion:seckill-time:query', 3, 1, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '',
  2043 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');
  2044 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2045 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2046 + `updater`, `update_time`, `deleted`)
  2047 +VALUES (2068, '秒杀时段创建', 'promotion:seckill-time:create', 3, 2, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '',
  2048 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');
  2049 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2050 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2051 + `updater`, `update_time`, `deleted`)
  2052 +VALUES (2069, '秒杀时段更新', 'promotion:seckill-time:update', 3, 3, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '',
  2053 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');
  2054 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2055 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2056 + `updater`, `update_time`, `deleted`)
  2057 +VALUES (2070, '秒杀时段删除', 'promotion:seckill-time:delete', 3, 4, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '',
  2058 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');
  2059 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2060 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2061 + `updater`, `update_time`, `deleted`)
  2062 +VALUES (2071, '秒杀时段导出', 'promotion:seckill-time:export', 3, 5, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '',
  2063 + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0');
  2064 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2065 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2066 + `updater`, `update_time`, `deleted`)
  2067 +VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-11-19 18:57:19',
  2068 + '1', '2022-12-10 16:32:57', b'0');
  2069 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2070 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2071 + `updater`, `update_time`, `deleted`)
  2072 +VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index',
  2073 + 'TradeAfterSale', 0, b'1', b'1', b'1', '', '2022-11-19 20:15:32', '1', '2023-04-08 11:43:19', b'0');
  2074 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2075 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2076 + `updater`, `update_time`, `deleted`)
  2077 +VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', NULL, 0, b'1', b'1', b'1', '',
  2078 + '2022-11-19 20:15:33', '1', '2022-12-10 21:04:29', b'0');
  2079 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2080 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2081 + `updater`, `update_time`, `deleted`)
  2082 +VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '1',
  2083 + '2022-11-28 20:20:15', '1', '2022-11-28 20:20:15', b'0');
  2084 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`,
  2085 + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`,
  2086 + `updater`, `update_time`, `deleted`)
  2087 +VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 'TradeOrder', 0, b'1', b'1',
  2088 + b'1', '1', '2022-12-10 21:05:44', '1', '2023-04-08 11:42:23', b'0');
2004 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2077, '物流公司管理管理', '', 2, 0, 2072, 'express-company', '', 'mall/trade/expressCompany/index', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '1', '2022-12-20 23:36:20', b'0'); 2089 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2077, '物流公司管理管理', '', 2, 0, 2072, 'express-company', '', 'mall/trade/expressCompany/index', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '1', '2022-12-20 23:36:20', b'0');
2005 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2078, '物流公司管理查询', 'trade:express-company:query', 3, 1, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); 2090 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2078, '物流公司管理查询', 'trade:express-company:query', 3, 1, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0');
2006 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2079, '物流公司管理创建', 'trade:express-company:create', 3, 2, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); 2091 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2079, '物流公司管理创建', 'trade:express-company:create', 3, 2, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0');
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillConfigController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.promotion.controller.admin.seckill;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO;
  6 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO;
  7 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigRespVO;
  8 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO;
  9 +import cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig.SeckillConfigConvert;
  10 +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO;
  11 +import cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig.SeckillConfigService;
  12 +import io.swagger.v3.oas.annotations.Operation;
  13 +import io.swagger.v3.oas.annotations.Parameter;
  14 +import io.swagger.v3.oas.annotations.tags.Tag;
  15 +import org.springframework.security.access.prepost.PreAuthorize;
  16 +import org.springframework.validation.annotation.Validated;
  17 +import org.springframework.web.bind.annotation.*;
  18 +
  19 +import javax.annotation.Resource;
  20 +import javax.validation.Valid;
  21 +import java.util.List;
  22 +
  23 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  24 +
  25 +/**
  26 + * 管理后台 - 秒杀时段相关接口
  27 + *
  28 + * @author HUIHUI
  29 + */
  30 +@Tag(name = "管理后台 - 秒杀时段")
  31 +@RestController
  32 +@RequestMapping("/promotion/seckill-config")
  33 +@Validated
  34 +public class SeckillConfigController {
  35 +
  36 + @Resource
  37 + private SeckillConfigService seckillConfigService;
  38 +
  39 + @PostMapping("/create")
  40 + @Operation(summary = "创建秒杀时段")
  41 + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:create')")
  42 + public CommonResult<Long> createSeckillConfig(@Valid @RequestBody SeckillConfigCreateReqVO createReqVO) {
  43 + return success(seckillConfigService.createSeckillConfig(createReqVO));
  44 + }
  45 +
  46 + @PutMapping("/update")
  47 + @Operation(summary = "更新秒杀时段")
  48 + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:update')")
  49 + public CommonResult<Boolean> updateSeckillConfig(@Valid @RequestBody SeckillConfigUpdateReqVO updateReqVO) {
  50 + seckillConfigService.updateSeckillConfig(updateReqVO);
  51 + return success(true);
  52 + }
  53 +
  54 + @DeleteMapping("/delete")
  55 + @Operation(summary = "删除秒杀时段")
  56 + @Parameter(name = "id", description = "编号", required = true)
  57 + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:delete')")
  58 + public CommonResult<Boolean> deleteSeckillConfig(@RequestParam("id") Long id) {
  59 + seckillConfigService.deleteSeckillConfig(id);
  60 + return success(true);
  61 + }
  62 +
  63 + @GetMapping("/get")
  64 + @Operation(summary = "获得秒杀时段")
  65 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  66 + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:query')")
  67 + public CommonResult<SeckillConfigRespVO> getSeckillConfig(@RequestParam("id") Long id) {
  68 + SeckillConfigDO seckillConfig = seckillConfigService.getSeckillConfig(id);
  69 + return success(SeckillConfigConvert.INSTANCE.convert(seckillConfig));
  70 + }
  71 +
  72 + @GetMapping("/list")
  73 + @Operation(summary = "获得所有秒杀时段列表")
  74 + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:query')")
  75 + public CommonResult<List<SeckillConfigRespVO>> getSeckillConfigList() {
  76 + List<SeckillConfigDO> list = seckillConfigService.getSeckillConfigList();
  77 + return success(SeckillConfigConvert.INSTANCE.convertList(list));
  78 + }
  79 +
  80 + @GetMapping("/page")
  81 + @Operation(summary = "获得秒杀活动分页")
  82 + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:query')")
  83 + public CommonResult<PageResult<SeckillConfigRespVO>> getSeckillActivityPage(@Valid SeckillConfigPageReqVO pageVO) {
  84 + PageResult<SeckillConfigDO> pageResult = seckillConfigService.getSeckillConfigPage(pageVO);
  85 + return success(SeckillConfigConvert.INSTANCE.convertPage(pageResult));
  86 + }
  87 +}
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillTimeController.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.admin.seckill;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeRespVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckilltime.SeckillTimeConvert;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO;  
9 -import cn.iocoder.yudao.module.promotion.service.seckill.seckilltime.SeckillTimeService;  
10 -import io.swagger.v3.oas.annotations.Operation;  
11 -import io.swagger.v3.oas.annotations.Parameter;  
12 -import io.swagger.v3.oas.annotations.tags.Tag;  
13 -import org.springframework.security.access.prepost.PreAuthorize;  
14 -import org.springframework.validation.annotation.Validated;  
15 -import org.springframework.web.bind.annotation.*;  
16 -  
17 -import javax.annotation.Resource;  
18 -import javax.validation.Valid;  
19 -import java.util.List;  
20 -  
21 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
22 -  
23 -@Tag(name = "管理后台 - 秒杀时段")  
24 -@RestController  
25 -@RequestMapping("/promotion/seckill-time")  
26 -@Validated  
27 -public class SeckillTimeController {  
28 -  
29 - @Resource  
30 - private SeckillTimeService seckillTimeService;  
31 -  
32 - @PostMapping("/create")  
33 - @Operation(summary = "创建秒杀时段")  
34 - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:create')")  
35 - public CommonResult<Long> createSeckillTime(@Valid @RequestBody SeckillTimeCreateReqVO createReqVO) {  
36 - return success(seckillTimeService.createSeckillTime(createReqVO));  
37 - }  
38 -  
39 - @PutMapping("/update")  
40 - @Operation(summary = "更新秒杀时段")  
41 - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:update')")  
42 - public CommonResult<Boolean> updateSeckillTime(@Valid @RequestBody SeckillTimeUpdateReqVO updateReqVO) {  
43 - seckillTimeService.updateSeckillTime(updateReqVO);  
44 - return success(true);  
45 - }  
46 -  
47 - @DeleteMapping("/delete")  
48 - @Operation(summary = "删除秒杀时段")  
49 - @Parameter(name = "id", description = "编号", required = true)  
50 - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:delete')")  
51 - public CommonResult<Boolean> deleteSeckillTime(@RequestParam("id") Long id) {  
52 - seckillTimeService.deleteSeckillTime(id);  
53 - return success(true);  
54 - }  
55 -  
56 - @GetMapping("/get")  
57 - @Operation(summary = "获得秒杀时段")  
58 - @Parameter(name = "id", description = "编号", required = true, example = "1024")  
59 - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:query')")  
60 - public CommonResult<SeckillTimeRespVO> getSeckillTime(@RequestParam("id") Long id) {  
61 - SeckillTimeDO seckillTime = seckillTimeService.getSeckillTime(id);  
62 - return success(SeckillTimeConvert.INSTANCE.convert(seckillTime));  
63 - }  
64 -  
65 - @GetMapping("/list")  
66 - @Operation(summary = "获得所有秒杀时段列表")  
67 - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:query')")  
68 - public CommonResult<List<SeckillTimeRespVO>> getSeckillTimeList() {  
69 - List<SeckillTimeDO> list = seckillTimeService.getSeckillTimeList();  
70 - return success(SeckillTimeConvert.INSTANCE.convertList(list));  
71 - }  
72 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityBaseVO.java
@@ -54,7 +54,7 @@ public class SeckillActivityBaseVO { @@ -54,7 +54,7 @@ public class SeckillActivityBaseVO {
54 54
55 @Schema(description = "秒杀库存", example = "80") 55 @Schema(description = "秒杀库存", example = "80")
56 @Min(value = 0, message = "秒杀库存需要大于等于 0") 56 @Min(value = 0, message = "秒杀库存需要大于等于 0")
57 - private Integer stock; 57 + private Integer quota;
58 58
59 @Schema(description = "每人限购", example = "10") // 如果为 0 则不限购 59 @Schema(description = "每人限购", example = "10") // 如果为 0 则不限购
60 @Min(value = 0, message = "每人限购需要大于等于 0") 60 @Min(value = 0, message = "每人限购需要大于等于 0")
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeBaseVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigBaseVO.java
1 -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; 1 +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config;
2 2
3 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.Data; 4 import lombok.Data;
  5 +import org.springframework.format.annotation.DateTimeFormat;
5 6
6 import javax.validation.constraints.NotNull; 7 import javax.validation.constraints.NotNull;
7 import java.time.LocalTime; 8 import java.time.LocalTime;
8 9
  10 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_HOUR_MINUTE_SECOND;
  11 +
9 /** 12 /**
10 * 秒杀时段 Base VO,提供给添加、修改、详细的子 VO 使用 13 * 秒杀时段 Base VO,提供给添加、修改、详细的子 VO 使用
11 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 14 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
  15 + *
  16 + * @author HUIHUI
12 */ 17 */
13 @Data 18 @Data
14 -public class SeckillTimeBaseVO { 19 +public class SeckillConfigBaseVO {
15 20
16 - @Schema(description = "秒杀时段名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "上午场") 21 + @Schema(description = "秒杀时段名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "早上场")
17 @NotNull(message = "秒杀时段名称不能为空") 22 @NotNull(message = "秒杀时段名称不能为空")
18 private String name; 23 private String name;
19 24
20 - @Schema(description = "开始时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16:30:40") 25 + @Schema(description = "开始时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "09:00:00")
21 @NotNull(message = "开始时间点不能为空") 26 @NotNull(message = "开始时间点不能为空")
  27 + @DateTimeFormat(pattern = FORMAT_HOUR_MINUTE_SECOND)
22 private LocalTime startTime; 28 private LocalTime startTime;
23 29
24 - @Schema(description = "结束时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16:30:40") 30 + @Schema(description = "结束时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16:00:00")
25 @NotNull(message = "结束时间点不能为空") 31 @NotNull(message = "结束时间点不能为空")
  32 + @DateTimeFormat(pattern = FORMAT_HOUR_MINUTE_SECOND)
26 private LocalTime endTime; 33 private LocalTime endTime;
27 34
  35 + @Schema(description = "秒杀主图", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
  36 + @NotNull(message = "秒杀主图不能为空")
  37 + private String picUrl;
  38 +
  39 + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  40 + @NotNull(message = "状态不能为空")
  41 + private Integer status;
  42 +
28 } 43 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeCreateReqVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigCreateReqVO.java
1 -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; 1 +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config;
2 2
3 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.Data; 4 import lombok.Data;
5 import lombok.EqualsAndHashCode; 5 import lombok.EqualsAndHashCode;
6 import lombok.ToString; 6 import lombok.ToString;
7 7
  8 +/**
  9 + * 管理后台 秒杀时段创建 Request VO
  10 + *
  11 + * @author HUIHUI
  12 + */
8 @Schema(description = "管理后台 - 秒杀时段创建 Request VO") 13 @Schema(description = "管理后台 - 秒杀时段创建 Request VO")
9 @Data 14 @Data
10 @EqualsAndHashCode(callSuper = true) 15 @EqualsAndHashCode(callSuper = true)
11 @ToString(callSuper = true) 16 @ToString(callSuper = true)
12 -public class SeckillTimeCreateReqVO extends SeckillTimeBaseVO { 17 +public class SeckillConfigCreateReqVO extends SeckillConfigBaseVO {
13 18
14 } 19 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimePageReqVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigPageReqVO.java
1 -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; 1 +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.v3.oas.annotations.media.Schema; 4 import io.swagger.v3.oas.annotations.media.Schema;
@@ -9,21 +9,29 @@ import org.springframework.format.annotation.DateTimeFormat; @@ -9,21 +9,29 @@ import org.springframework.format.annotation.DateTimeFormat;
9 9
10 import java.time.LocalTime; 10 import java.time.LocalTime;
11 11
  12 +/**
  13 + * 管理后台 - 秒杀时段分页 Request VO
  14 + *
  15 + * @author HUIHUI
  16 + */
12 @Schema(description = "管理后台 - 秒杀时段分页 Request VO") 17 @Schema(description = "管理后台 - 秒杀时段分页 Request VO")
13 @Data 18 @Data
14 @EqualsAndHashCode(callSuper = true) 19 @EqualsAndHashCode(callSuper = true)
15 @ToString(callSuper = true) 20 @ToString(callSuper = true)
16 -public class SeckillTimePageReqVO extends PageParam { 21 +public class SeckillConfigPageReqVO extends PageParam {
17 22
18 @Schema(description = "秒杀时段名称", example = "上午场") 23 @Schema(description = "秒杀时段名称", example = "上午场")
19 private String name; 24 private String name;
20 25
  26 + @Schema(description = "状态", example = "0")
  27 + private Integer status;
  28 +
21 @Schema(description = "开始时间点", example = "16:30:40") 29 @Schema(description = "开始时间点", example = "16:30:40")
22 @DateTimeFormat(pattern = "HH:mm:ss") 30 @DateTimeFormat(pattern = "HH:mm:ss")
23 - private LocalTime startTime; 31 + private LocalTime[] startTime;
24 32
25 @Schema(description = "结束时间点", example = "16:30:40") 33 @Schema(description = "结束时间点", example = "16:30:40")
26 @DateTimeFormat(pattern = "HH:mm:ss") 34 @DateTimeFormat(pattern = "HH:mm:ss")
27 - private LocalTime endTime; 35 + private LocalTime[] endTime;
28 36
29 } 37 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeRespVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigRespVO.java
1 -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; 1 +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config;
2 2
3 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.Data; 4 import lombok.Data;
5 import lombok.EqualsAndHashCode; 5 import lombok.EqualsAndHashCode;
6 import lombok.ToString; 6 import lombok.ToString;
  7 +import org.springframework.format.annotation.DateTimeFormat;
7 8
8 import java.time.LocalDateTime; 9 import java.time.LocalDateTime;
9 10
  11 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  12 +
  13 +/**
  14 + * 管理后台 - 秒杀时段 Response VO
  15 + *
  16 + * @author HUIHUI
  17 + */
10 @Schema(description = "管理后台 - 秒杀时段 Response VO") 18 @Schema(description = "管理后台 - 秒杀时段 Response VO")
11 @Data 19 @Data
12 @EqualsAndHashCode(callSuper = true) 20 @EqualsAndHashCode(callSuper = true)
13 @ToString(callSuper = true) 21 @ToString(callSuper = true)
14 -public class SeckillTimeRespVO extends SeckillTimeBaseVO { 22 +public class SeckillConfigRespVO extends SeckillConfigBaseVO {
15 23
16 @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 24 @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
17 private Long id; 25 private Long id;
18 26
19 - @Schema(description = "秒杀活动数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 27 + @Schema(description = "秒杀活动数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
20 private Integer seckillActivityCount; 28 private Integer seckillActivityCount;
21 29
22 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) 30 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  31 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
23 private LocalDateTime createTime; 32 private LocalDateTime createTime;
24 33
25 } 34 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeUpdateReqVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateReqVO.java
1 -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; 1 +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config;
2 2
3 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.Data; 4 import lombok.Data;
@@ -7,11 +7,16 @@ import lombok.ToString; @@ -7,11 +7,16 @@ import lombok.ToString;
7 7
8 import javax.validation.constraints.NotNull; 8 import javax.validation.constraints.NotNull;
9 9
  10 +/**
  11 + * 管理后台 - 秒杀时段更新 Request VO
  12 + *
  13 + * @author HUIHUI
  14 + */
10 @Schema(description = "管理后台 - 秒杀时段更新 Request VO") 15 @Schema(description = "管理后台 - 秒杀时段更新 Request VO")
11 @Data 16 @Data
12 @EqualsAndHashCode(callSuper = true) 17 @EqualsAndHashCode(callSuper = true)
13 @ToString(callSuper = true) 18 @ToString(callSuper = true)
14 -public class SeckillTimeUpdateReqVO extends SeckillTimeBaseVO { 19 +public class SeckillConfigUpdateReqVO extends SeckillConfigBaseVO {
15 20
16 @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 21 @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
17 @NotNull(message = "编号不能为空") 22 @NotNull(message = "编号不能为空")
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillconfig/SeckillConfigConvert.java 0 → 100644
  1 +package cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO;
  5 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigRespVO;
  6 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO;
  7 +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO;
  8 +import org.mapstruct.Mapper;
  9 +import org.mapstruct.Mapping;
  10 +import org.mapstruct.factory.Mappers;
  11 +
  12 +import java.util.List;
  13 +
  14 +/**
  15 + * 秒杀时段 Convert
  16 + *
  17 + * @author 芋道源码
  18 + */
  19 +@Mapper
  20 +public interface SeckillConfigConvert {
  21 +
  22 + SeckillConfigConvert INSTANCE = Mappers.getMapper(SeckillConfigConvert.class);
  23 +
  24 + SeckillConfigDO convert(SeckillConfigCreateReqVO bean);
  25 +
  26 + SeckillConfigDO convert(SeckillConfigUpdateReqVO bean);
  27 +
  28 + @Mapping(target = "s")
  29 + SeckillConfigRespVO convert(SeckillConfigDO bean);
  30 +
  31 + List<SeckillConfigRespVO> convertList(List<SeckillConfigDO> list);
  32 +
  33 + PageResult<SeckillConfigRespVO> convertPage(PageResult<SeckillConfigDO> page);
  34 +
  35 +}
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckilltime/SeckillTimeConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.seckill.seckilltime;  
2 -  
3 -import java.util.*;  
4 -  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO;  
8 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeRespVO;  
9 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO;  
10 -import org.mapstruct.Mapper;  
11 -import org.mapstruct.factory.Mappers;  
12 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO;  
13 -  
14 -/**  
15 - * 秒杀时段 Convert  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -@Mapper  
20 -public interface SeckillTimeConvert {  
21 -  
22 - SeckillTimeConvert INSTANCE = Mappers.getMapper(SeckillTimeConvert.class);  
23 -  
24 - SeckillTimeDO convert(SeckillTimeCreateReqVO bean);  
25 -  
26 - SeckillTimeDO convert(SeckillTimeUpdateReqVO bean);  
27 -  
28 - SeckillTimeRespVO convert(SeckillTimeDO bean);  
29 -  
30 - List<SeckillTimeRespVO> convertList(List<SeckillTimeDO> list);  
31 -  
32 - PageResult<SeckillTimeRespVO> convertPage(PageResult<SeckillTimeDO> page);  
33 -  
34 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillProductDO.java
@@ -57,7 +57,7 @@ public class SeckillProductDO extends BaseDO { @@ -57,7 +57,7 @@ public class SeckillProductDO extends BaseDO {
57 /** 57 /**
58 * 秒杀库存 58 * 秒杀库存
59 */ 59 */
60 - private Integer stock; 60 + private Integer quota;
61 61
62 /** 62 /**
63 * 每人限购 63 * 每人限购
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckilltime/SeckillTimeDO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillconfig/SeckillConfigDO.java
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime; 1 +package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig;
2 2
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import com.baomidou.mybatisplus.annotation.KeySequence; 5 import com.baomidou.mybatisplus.annotation.KeySequence;
5 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
@@ -15,12 +16,12 @@ import java.time.LocalTime; @@ -15,12 +16,12 @@ import java.time.LocalTime;
15 * 16 *
16 * @author 芋道源码 17 * @author 芋道源码
17 */ 18 */
18 -@TableName("promotion_seckill_time")  
19 -@KeySequence("promotion_seckill_time_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 19 +@TableName("promotion_seckill_config")
  20 +@KeySequence("promotion_seckill_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
20 @Data 21 @Data
21 @EqualsAndHashCode(callSuper = true) 22 @EqualsAndHashCode(callSuper = true)
22 @ToString(callSuper = true) 23 @ToString(callSuper = true)
23 -public class SeckillTimeDO extends BaseDO { 24 +public class SeckillConfigDO extends BaseDO {
24 25
25 /** 26 /**
26 * 编号 27 * 编号
@@ -40,8 +41,14 @@ public class SeckillTimeDO extends BaseDO { @@ -40,8 +41,14 @@ public class SeckillTimeDO extends BaseDO {
40 */ 41 */
41 private LocalTime endTime; 42 private LocalTime endTime;
42 /** 43 /**
43 - * 秒杀活动数量 44 + * 秒杀主图
44 */ 45 */
45 - private Integer seckillActivityCount; 46 + private String picUrl;
  47 + /**
  48 + * 状态 开启:0 禁用:1
  49 + * <p>
  50 + * 枚举 {@link CommonStatusEnum 对应的类}
  51 + */
  52 + private Integer status;
46 53
47 } 54 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillconfig/SeckillConfigMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO;
  7 +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO;
  8 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  9 +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
  10 +import org.apache.ibatis.annotations.Mapper;
  11 +
  12 +import java.time.LocalTime;
  13 +import java.util.Collection;
  14 +import java.util.List;
  15 +
  16 +@Mapper
  17 +public interface SeckillConfigMapper extends BaseMapperX<SeckillConfigDO> {
  18 +
  19 + default List<SeckillConfigDO> selectListByTime(LocalTime time) {
  20 + return selectList(SeckillConfigDO::getStartTime, SeckillConfigDO::getEndTime, time);
  21 + }
  22 +
  23 + default List<SeckillConfigDO> selectListByTime(LocalTime startTime, LocalTime endTime) {
  24 + return selectList(new LambdaQueryWrapper<SeckillConfigDO>()
  25 + .ge(SeckillConfigDO::getStartTime, startTime)
  26 + .le(SeckillConfigDO::getEndTime, endTime));
  27 + }
  28 +
  29 + default void updateActivityCount(Collection<Long> ids, String type, Integer count) {
  30 + new LambdaUpdateChainWrapper<>(this)
  31 + .in(SeckillConfigDO::getId, ids)
  32 + .setSql("`seckill_activity_count` = `seckill_activity_count` " + type + count)
  33 + .update();
  34 + }
  35 +
  36 + default PageResult<SeckillConfigDO> selectPage(SeckillConfigPageReqVO reqVO) {
  37 + return selectPage(reqVO, new LambdaQueryWrapperX<SeckillConfigDO>()
  38 + .likeIfPresent(SeckillConfigDO::getName, reqVO.getName())
  39 + .betweenIfPresent(SeckillConfigDO::getStartTime, reqVO.getStartTime())
  40 + .betweenIfPresent(SeckillConfigDO::getEndTime, reqVO.getEndTime())
  41 + .eqIfPresent(SeckillConfigDO::getStatus, reqVO.getStatus())
  42 + .orderByDesc(SeckillConfigDO::getId));
  43 + }
  44 +
  45 +}
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckilltime/SeckillTimeMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckilltime;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
4 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO;  
5 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
6 -import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;  
7 -import org.apache.ibatis.annotations.Mapper;  
8 -  
9 -import java.time.LocalTime;  
10 -import java.util.Collection;  
11 -import java.util.List;  
12 -  
13 -@Mapper  
14 -public interface SeckillTimeMapper extends BaseMapperX<SeckillTimeDO> {  
15 -  
16 - default List<SeckillTimeDO> selectListByTime(LocalTime time) {  
17 - return selectList(SeckillTimeDO::getStartTime, SeckillTimeDO::getEndTime, time);  
18 - }  
19 -  
20 - default List<SeckillTimeDO> selectListByTime(LocalTime startTime, LocalTime endTime) {  
21 - return selectList(new LambdaQueryWrapper<SeckillTimeDO>()  
22 - .ge(SeckillTimeDO::getStartTime, startTime)  
23 - .le(SeckillTimeDO::getEndTime, endTime));  
24 - }  
25 -  
26 - default void updateActivityCount(Collection<Long> ids, String type, Integer count) {  
27 - new LambdaUpdateChainWrapper<>(this)  
28 - .in(SeckillTimeDO::getId, ids)  
29 - .setSql("`seckill_activity_count` = `seckill_activity_count` " + type + count)  
30 - .update();  
31 - }  
32 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityService.java
1 package cn.iocoder.yudao.module.promotion.service.seckill.seckillactivity; 1 package cn.iocoder.yudao.module.promotion.service.seckill.seckillactivity;
2 2
3 -import java.util.*;  
4 -import javax.validation.*;  
5 - 3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityCreateReqVO; 4 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityCreateReqVO;
7 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityPageReqVO; 5 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityPageReqVO;
8 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityUpdateReqVO; 6 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityUpdateReqVO;
9 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillActivityDO; 7 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillActivityDO;
10 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
11 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillProductDO; 8 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillProductDO;
12 9
  10 +import javax.validation.Valid;
  11 +import java.util.Collection;
  12 +import java.util.List;
  13 +
13 /** 14 /**
14 * 秒杀活动 Service 接口 15 * 秒杀活动 Service 接口
15 * 16 *
@@ -77,4 +78,5 @@ public interface SeckillActivityService { @@ -77,4 +78,5 @@ public interface SeckillActivityService {
77 * @return 活动商品列表 78 * @return 活动商品列表
78 */ 79 */
79 List<SeckillProductDO> getSeckillProductListByActivityId(Long id); 80 List<SeckillProductDO> getSeckillProductListByActivityId(Long id);
  81 +
80 } 82 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityServiceImpl.java
@@ -13,7 +13,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity. @@ -13,7 +13,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.
13 import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillActivityMapper; 13 import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillActivityMapper;
14 import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillProductMapper; 14 import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillProductMapper;
15 import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnum; 15 import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnum;
16 -import cn.iocoder.yudao.module.promotion.service.seckill.seckilltime.SeckillTimeService; 16 +import cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig.SeckillConfigService;
17 import cn.iocoder.yudao.module.promotion.util.PromotionUtils; 17 import cn.iocoder.yudao.module.promotion.util.PromotionUtils;
18 import org.springframework.stereotype.Service; 18 import org.springframework.stereotype.Service;
19 import org.springframework.validation.annotation.Validated; 19 import org.springframework.validation.annotation.Validated;
@@ -34,29 +34,30 @@ import static java.util.Arrays.asList; @@ -34,29 +34,30 @@ import static java.util.Arrays.asList;
34 @Service 34 @Service
35 @Validated 35 @Validated
36 public class SeckillActivityServiceImpl implements SeckillActivityService { 36 public class SeckillActivityServiceImpl implements SeckillActivityService {
  37 +
37 @Resource 38 @Resource
38 private SeckillActivityMapper seckillActivityMapper; 39 private SeckillActivityMapper seckillActivityMapper;
39 @Resource 40 @Resource
40 private SeckillProductMapper seckillProductMapper; 41 private SeckillProductMapper seckillProductMapper;
41 @Resource 42 @Resource
42 - private SeckillTimeService seckillTimeService; 43 + private SeckillConfigService seckillConfigService;
43 44
44 @Override 45 @Override
45 public Long createSeckillActivity(SeckillActivityCreateReqVO createReqVO) { 46 public Long createSeckillActivity(SeckillActivityCreateReqVO createReqVO) {
46 // 校验商品是否冲突 47 // 校验商品是否冲突
47 validateSeckillActivityProductConflicts(null, createReqVO.getProducts()); 48 validateSeckillActivityProductConflicts(null, createReqVO.getProducts());
48 // 校验秒杀时段是否存在 49 // 校验秒杀时段是否存在
49 - seckillTimeService.validateSeckillTimeExists(createReqVO.getTimeIds()); 50 + seckillConfigService.validateSeckillConfigExists(createReqVO.getTimeIds());
50 51
51 // 插入秒杀活动 52 // 插入秒杀活动
52 SeckillActivityDO seckillActivity = SeckillActivityConvert.INSTANCE.convert(createReqVO) 53 SeckillActivityDO seckillActivity = SeckillActivityConvert.INSTANCE.convert(createReqVO)
53 .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getStartTime(), createReqVO.getEndTime())); 54 .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getStartTime(), createReqVO.getEndTime()));
54 seckillActivityMapper.insert(seckillActivity); 55 seckillActivityMapper.insert(seckillActivity);
55 // 插入商品 56 // 插入商品
56 - List<SeckillProductDO> productDOS = SeckillActivityConvert.INSTANCE.convertList(createReqVO.getProducts(), seckillActivity);  
57 - seckillProductMapper.insertBatch(productDOS); 57 + List<SeckillProductDO> productDOs = SeckillActivityConvert.INSTANCE.convertList(createReqVO.getProducts(), seckillActivity);
  58 + seckillProductMapper.insertBatch(productDOs);
58 // 更新秒杀时段的秒杀活动数量 59 // 更新秒杀时段的秒杀活动数量
59 - seckillTimeService.sekillActivityCountIncr(createReqVO.getTimeIds()); 60 + seckillConfigService.seckillActivityCountIncr(createReqVO.getTimeIds());
60 return seckillActivity.getId(); 61 return seckillActivity.getId();
61 } 62 }
62 63
@@ -77,17 +78,16 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -77,17 +78,16 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
77 // 更新商品 78 // 更新商品
78 updateSeckillProduct(updateReqVO); 79 updateSeckillProduct(updateReqVO);
79 // 更新秒杀时段的秒杀活动数量 80 // 更新秒杀时段的秒杀活动数量
80 - updateSeckillTimeActivityCount(seckillActivity, updateReqVO.getTimeIds()); 81 + updateSeckillConfigActivityCount(seckillActivity, updateReqVO.getTimeIds());
81 } 82 }
82 83
83 -  
84 /** 84 /**
85 * 更新秒杀时段的秒杀活动数量 85 * 更新秒杀时段的秒杀活动数量
86 * 86 *
87 * @param seckillActivity 查询出的秒杀活动 87 * @param seckillActivity 查询出的秒杀活动
88 * @param updateTimeIds 更新后的秒杀时段id列表 88 * @param updateTimeIds 更新后的秒杀时段id列表
89 */ 89 */
90 - private void updateSeckillTimeActivityCount(SeckillActivityDO seckillActivity, List<Long> updateTimeIds) { 90 + private void updateSeckillConfigActivityCount(SeckillActivityDO seckillActivity, List<Long> updateTimeIds) {
91 // 查询出 timeIds 91 // 查询出 timeIds
92 List<Long> existsTimeIds = seckillActivity.getTimeIds(); 92 List<Long> existsTimeIds = seckillActivity.getTimeIds();
93 // 需要减少的时间段 93 // 需要减少的时间段
@@ -96,10 +96,10 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -96,10 +96,10 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
96 updateTimeIds.removeIf(existsTimeIds::contains); 96 updateTimeIds.removeIf(existsTimeIds::contains);
97 // 更新减少时间段和增加时间段 97 // 更新减少时间段和增加时间段
98 if (CollUtil.isNotEmpty(updateTimeIds)) { 98 if (CollUtil.isNotEmpty(updateTimeIds)) {
99 - seckillTimeService.sekillActivityCountIncr(updateTimeIds); 99 + seckillConfigService.seckillActivityCountIncr(updateTimeIds);
100 } 100 }
101 if (CollUtil.isNotEmpty(reduceIds)) { 101 if (CollUtil.isNotEmpty(reduceIds)) {
102 - seckillTimeService.sekillActivityCountDecr(reduceIds); 102 + seckillConfigService.seckillActivityCountDecr(reduceIds);
103 } 103 }
104 } 104 }
105 105
@@ -113,11 +113,11 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -113,11 +113,11 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
113 * @param updateReqVO 更新的请求VO 113 * @param updateReqVO 更新的请求VO
114 */ 114 */
115 private void updateSeckillProduct(SeckillActivityUpdateReqVO updateReqVO) { 115 private void updateSeckillProduct(SeckillActivityUpdateReqVO updateReqVO) {
116 - List<SeckillProductDO> seckillProductDOS = seckillProductMapper.selectListByActivityId(updateReqVO.getId()); 116 + List<SeckillProductDO> seckillProductDOs = seckillProductMapper.selectListByActivityId(updateReqVO.getId());
117 List<SeckillActivityBaseVO.Product> products = updateReqVO.getProducts(); 117 List<SeckillActivityBaseVO.Product> products = updateReqVO.getProducts();
118 118
119 // 计算需要删除的数据 119 // 计算需要删除的数据
120 - List<Long> deleteIds = CollectionUtils.convertList(seckillProductDOS, SeckillProductDO::getId, 120 + List<Long> deleteIds = CollectionUtils.convertList(seckillProductDOs, SeckillProductDO::getId,
121 seckillProductDO -> products.stream() 121 seckillProductDO -> products.stream()
122 .noneMatch(product -> SeckillActivityConvert.INSTANCE.isEquals(seckillProductDO, product))); 122 .noneMatch(product -> SeckillActivityConvert.INSTANCE.isEquals(seckillProductDO, product)));
123 if (CollUtil.isNotEmpty(deleteIds)) { 123 if (CollUtil.isNotEmpty(deleteIds)) {
@@ -127,7 +127,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -127,7 +127,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
127 // 计算需要新增的数据 127 // 计算需要新增的数据
128 List<SeckillProductDO> newSeckillProductDOs = CollectionUtils.convertList(products, 128 List<SeckillProductDO> newSeckillProductDOs = CollectionUtils.convertList(products,
129 product -> SeckillActivityConvert.INSTANCE.convert(product).setActivityId(updateReqVO.getId())); 129 product -> SeckillActivityConvert.INSTANCE.convert(product).setActivityId(updateReqVO.getId()));
130 - newSeckillProductDOs.removeIf(product -> seckillProductDOS.stream() 130 + newSeckillProductDOs.removeIf(product -> seckillProductDOs.stream()
131 .anyMatch(seckillProduct -> SeckillActivityConvert.INSTANCE.isEquals(seckillProduct, product))); 131 .anyMatch(seckillProduct -> SeckillActivityConvert.INSTANCE.isEquals(seckillProduct, product)));
132 if (CollUtil.isNotEmpty(newSeckillProductDOs)) { 132 if (CollUtil.isNotEmpty(newSeckillProductDOs)) {
133 seckillProductMapper.insertBatch(newSeckillProductDOs); 133 seckillProductMapper.insertBatch(newSeckillProductDOs);
@@ -147,21 +147,21 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -147,21 +147,21 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
147 if (CollUtil.isEmpty(products)) { 147 if (CollUtil.isEmpty(products)) {
148 return; 148 return;
149 } 149 }
150 - List<SeckillProductDO> seckillProductDOS = seckillProductMapper 150 + List<SeckillProductDO> seckillProductDOs = seckillProductMapper
151 .selectListBySkuIds(CollectionUtils.convertSet(products, SeckillActivityBaseVO.Product::getSkuId)); 151 .selectListBySkuIds(CollectionUtils.convertSet(products, SeckillActivityBaseVO.Product::getSkuId));
152 - if (CollUtil.isEmpty(seckillProductDOS)) { 152 + if (CollUtil.isEmpty(seckillProductDOs)) {
153 return; 153 return;
154 } 154 }
155 - List<SeckillActivityDO> seckillActivityDOS = seckillActivityMapper  
156 - .selectBatchIds(CollectionUtils.convertSet(seckillProductDOS, SeckillProductDO::getActivityId)); 155 + List<SeckillActivityDO> seckillActivityDOs = seckillActivityMapper
  156 + .selectBatchIds(CollectionUtils.convertSet(seckillProductDOs, SeckillProductDO::getActivityId));
157 if (id != null) { // 排除自己这个活动 157 if (id != null) { // 排除自己这个活动
158 - seckillActivityDOS.removeIf(item -> id.equals(item.getId())); 158 + seckillActivityDOs.removeIf(item -> id.equals(item.getId()));
159 } 159 }
160 // 排除不满足 status 的活动 160 // 排除不满足 status 的活动
161 List<Integer> statuses = asList(PromotionActivityStatusEnum.WAIT.getStatus(), PromotionActivityStatusEnum.RUN.getStatus()); 161 List<Integer> statuses = asList(PromotionActivityStatusEnum.WAIT.getStatus(), PromotionActivityStatusEnum.RUN.getStatus());
162 - seckillActivityDOS.removeIf(item -> !statuses.contains(item.getStatus())); 162 + seckillActivityDOs.removeIf(item -> !statuses.contains(item.getStatus()));
163 // 如果非空,则说明冲突 163 // 如果非空,则说明冲突
164 - if (CollUtil.isNotEmpty(seckillActivityDOS)) { 164 + if (CollUtil.isNotEmpty(seckillActivityDOs)) {
165 throw exception(SECKILL_ACTIVITY_SPU_CONFLICTS); 165 throw exception(SECKILL_ACTIVITY_SPU_CONFLICTS);
166 } 166 }
167 } 167 }
@@ -190,7 +190,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -190,7 +190,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
190 throw exception(SECKILL_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END); 190 throw exception(SECKILL_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END);
191 } 191 }
192 // 更新秒杀时段的秒杀活动数量 192 // 更新秒杀时段的秒杀活动数量
193 - seckillTimeService.sekillActivityCountDecr(seckillActivity.getTimeIds()); 193 + seckillConfigService.seckillActivityCountDecr(seckillActivity.getTimeIds());
194 // 删除 194 // 删除
195 seckillActivityMapper.deleteById(id); 195 seckillActivityMapper.deleteById(id);
196 } 196 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckilltime/SeckillTimeService.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigService.java
1 -package cn.iocoder.yudao.module.promotion.service.seckill.seckilltime; 1 +package cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig;
2 2
3 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO; 3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO;
  5 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO;
  6 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO;
  7 +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO;
6 8
7 import javax.validation.Valid; 9 import javax.validation.Valid;
8 import java.util.Collection; 10 import java.util.Collection;
@@ -13,7 +15,7 @@ import java.util.List; @@ -13,7 +15,7 @@ import java.util.List;
13 * 15 *
14 * @author halfninety 16 * @author halfninety
15 */ 17 */
16 -public interface SeckillTimeService { 18 +public interface SeckillConfigService {
17 19
18 /** 20 /**
19 * 创建秒杀时段 21 * 创建秒杀时段
@@ -21,21 +23,21 @@ public interface SeckillTimeService { @@ -21,21 +23,21 @@ public interface SeckillTimeService {
21 * @param createReqVO 创建信息 23 * @param createReqVO 创建信息
22 * @return 编号 24 * @return 编号
23 */ 25 */
24 - Long createSeckillTime(@Valid SeckillTimeCreateReqVO createReqVO); 26 + Long createSeckillConfig(@Valid SeckillConfigCreateReqVO createReqVO);
25 27
26 /** 28 /**
27 * 更新秒杀时段 29 * 更新秒杀时段
28 * 30 *
29 * @param updateReqVO 更新信息 31 * @param updateReqVO 更新信息
30 */ 32 */
31 - void updateSeckillTime(@Valid SeckillTimeUpdateReqVO updateReqVO); 33 + void updateSeckillConfig(@Valid SeckillConfigUpdateReqVO updateReqVO);
32 34
33 /** 35 /**
34 * 删除秒杀时段 36 * 删除秒杀时段
35 * 37 *
36 * @param id 编号 38 * @param id 编号
37 */ 39 */
38 - void deleteSeckillTime(Long id); 40 + void deleteSeckillConfig(Long id);
39 41
40 /** 42 /**
41 * 获得秒杀时段 43 * 获得秒杀时段
@@ -43,28 +45,28 @@ public interface SeckillTimeService { @@ -43,28 +45,28 @@ public interface SeckillTimeService {
43 * @param id 编号 45 * @param id 编号
44 * @return 秒杀时段 46 * @return 秒杀时段
45 */ 47 */
46 - SeckillTimeDO getSeckillTime(Long id); 48 + SeckillConfigDO getSeckillConfig(Long id);
47 49
48 /** 50 /**
49 * 获得所有秒杀时段列表 51 * 获得所有秒杀时段列表
50 * 52 *
51 * @return 所有秒杀时段列表 53 * @return 所有秒杀时段列表
52 */ 54 */
53 - List<SeckillTimeDO> getSeckillTimeList(); 55 + List<SeckillConfigDO> getSeckillConfigList();
54 56
55 /** 57 /**
56 * 校验秒杀时段是否存在 58 * 校验秒杀时段是否存在
57 * 59 *
58 * @param timeIds 秒杀时段id集合 60 * @param timeIds 秒杀时段id集合
59 */ 61 */
60 - void validateSeckillTimeExists(Collection<Long> timeIds); 62 + void validateSeckillConfigExists(Collection<Long> timeIds);
61 63
62 /** 64 /**
63 * 秒杀时段列表的秒杀活动数量加 1 65 * 秒杀时段列表的秒杀活动数量加 1
64 * 66 *
65 * @param ids 秒杀时段id列表 67 * @param ids 秒杀时段id列表
66 */ 68 */
67 - void sekillActivityCountIncr(Collection<Long> ids); 69 + void seckillActivityCountIncr(Collection<Long> ids);
68 70
69 71
70 /** 72 /**
@@ -72,5 +74,14 @@ public interface SeckillTimeService { @@ -72,5 +74,14 @@ public interface SeckillTimeService {
72 * 74 *
73 * @param ids 秒杀时段id列表 75 * @param ids 秒杀时段id列表
74 */ 76 */
75 - void sekillActivityCountDecr(Collection<Long> ids); 77 + void seckillActivityCountDecr(Collection<Long> ids);
  78 +
  79 + /**
  80 + * 获得秒杀时间段配置分页数据
  81 + *
  82 + * @param pageVO 分页请求参数
  83 + * @return 秒杀时段分页列表
  84 + */
  85 + PageResult<SeckillConfigDO> getSeckillConfigPage(SeckillConfigPageReqVO pageVO);
  86 +
76 } 87 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckilltime/SeckillTimeServiceImpl.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigServiceImpl.java
1 -package cn.iocoder.yudao.module.promotion.service.seckill.seckilltime; 1 +package cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO;  
6 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckilltime.SeckillTimeConvert;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO;  
8 -import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckilltime.SeckillTimeMapper; 4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO;
  6 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO;
  7 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO;
  8 +import cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig.SeckillConfigConvert;
  9 +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO;
  10 +import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig.SeckillConfigMapper;
9 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
10 import org.springframework.validation.annotation.Validated; 12 import org.springframework.validation.annotation.Validated;
11 13
@@ -26,43 +28,43 @@ import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.SECKILL @@ -26,43 +28,43 @@ import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.SECKILL
26 */ 28 */
27 @Service 29 @Service
28 @Validated 30 @Validated
29 -public class SeckillTimeServiceImpl implements SeckillTimeService { 31 +public class SeckillConfigServiceImpl implements SeckillConfigService {
30 32
31 @Resource 33 @Resource
32 - private SeckillTimeMapper seckillTimeMapper; 34 + private SeckillConfigMapper seckillConfigMapper;
33 35
34 @Override 36 @Override
35 - public Long createSeckillTime(SeckillTimeCreateReqVO createReqVO) { 37 + public Long createSeckillConfig(SeckillConfigCreateReqVO createReqVO) {
36 // 校验时间段是否冲突 38 // 校验时间段是否冲突
37 - validateSeckillTimeConflict(null, createReqVO.getStartTime(), createReqVO.getEndTime()); 39 + validateSeckillConfigConflict(null, createReqVO.getStartTime(), createReqVO.getEndTime());
38 // 插入 40 // 插入
39 - SeckillTimeDO seckillTime = SeckillTimeConvert.INSTANCE.convert(createReqVO);  
40 - seckillTimeMapper.insert(seckillTime); 41 + SeckillConfigDO seckillConfig = SeckillConfigConvert.INSTANCE.convert(createReqVO);
  42 + seckillConfigMapper.insert(seckillConfig);
41 // 返回 43 // 返回
42 - return seckillTime.getId(); 44 + return seckillConfig.getId();
43 } 45 }
44 46
45 @Override 47 @Override
46 - public void updateSeckillTime(SeckillTimeUpdateReqVO updateReqVO) { 48 + public void updateSeckillConfig(SeckillConfigUpdateReqVO updateReqVO) {
47 // 校验存在 49 // 校验存在
48 - this.validateSeckillTimeExists(updateReqVO.getId()); 50 + this.validateSeckillConfigExists(updateReqVO.getId());
49 // 校验时间段是否冲突 51 // 校验时间段是否冲突
50 - validateSeckillTimeConflict(updateReqVO.getId(), updateReqVO.getStartTime(), updateReqVO.getEndTime()); 52 + validateSeckillConfigConflict(updateReqVO.getId(), updateReqVO.getStartTime(), updateReqVO.getEndTime());
51 // 更新 53 // 更新
52 - SeckillTimeDO updateObj = SeckillTimeConvert.INSTANCE.convert(updateReqVO);  
53 - seckillTimeMapper.updateById(updateObj); 54 + SeckillConfigDO updateObj = SeckillConfigConvert.INSTANCE.convert(updateReqVO);
  55 + seckillConfigMapper.updateById(updateObj);
54 } 56 }
55 57
56 @Override 58 @Override
57 - public void deleteSeckillTime(Long id) { 59 + public void deleteSeckillConfig(Long id) {
58 // 校验存在 60 // 校验存在
59 - this.validateSeckillTimeExists(id); 61 + this.validateSeckillConfigExists(id);
60 // 删除 62 // 删除
61 - seckillTimeMapper.deleteById(id); 63 + seckillConfigMapper.deleteById(id);
62 } 64 }
63 65
64 - private void validateSeckillTimeExists(Long id) {  
65 - if (seckillTimeMapper.selectById(id) == null) { 66 + private void validateSeckillConfigExists(Long id) {
  67 + if (seckillConfigMapper.selectById(id) == null) {
66 throw exception(SECKILL_TIME_NOT_EXISTS); 68 throw exception(SECKILL_TIME_NOT_EXISTS);
67 } 69 }
68 } 70 }
@@ -73,17 +75,17 @@ public class SeckillTimeServiceImpl implements SeckillTimeService { @@ -73,17 +75,17 @@ public class SeckillTimeServiceImpl implements SeckillTimeService {
73 * @param startTime 开始时间 75 * @param startTime 开始时间
74 * @param endTime 结束时间 76 * @param endTime 结束时间
75 */ 77 */
76 - private void validateSeckillTimeConflict(Long id, LocalTime startTime, LocalTime endTime) { 78 + private void validateSeckillConfigConflict(Long id, LocalTime startTime, LocalTime endTime) {
77 //查询开始时间,结束时间,是否在别人的时间段内 79 //查询开始时间,结束时间,是否在别人的时间段内
78 - List<SeckillTimeDO> startTimeList = seckillTimeMapper.selectListByTime(startTime);  
79 - List<SeckillTimeDO> endTimeList = seckillTimeMapper.selectListByTime(endTime); 80 + List<SeckillConfigDO> startTimeList = seckillConfigMapper.selectListByTime(startTime);
  81 + List<SeckillConfigDO> endTimeList = seckillConfigMapper.selectListByTime(endTime);
80 //查询自己时间段内是否有时间段 82 //查询自己时间段内是否有时间段
81 - List<SeckillTimeDO> startEndTimeList = seckillTimeMapper.selectListByTime(startTime, endTime); 83 + List<SeckillConfigDO> startEndTimeList = seckillConfigMapper.selectListByTime(startTime, endTime);
82 if (id != null) { 84 if (id != null) {
83 //移除自己 85 //移除自己
84 - startTimeList.removeIf(seckillTime -> Objects.equals(seckillTime.getId(), id));  
85 - endTimeList.removeIf(seckillTime -> Objects.equals(seckillTime.getId(), id));  
86 - startEndTimeList.removeIf(seckillTime -> Objects.equals(seckillTime.getId(), id)); 86 + startTimeList.removeIf(seckillConfig -> Objects.equals(seckillConfig.getId(), id));
  87 + endTimeList.removeIf(seckillConfig -> Objects.equals(seckillConfig.getId(), id));
  88 + startEndTimeList.removeIf(seckillConfig -> Objects.equals(seckillConfig.getId(), id));
87 } 89 }
88 if (CollUtil.isNotEmpty(startTimeList) || CollUtil.isNotEmpty(endTimeList) 90 if (CollUtil.isNotEmpty(startTimeList) || CollUtil.isNotEmpty(endTimeList)
89 || CollUtil.isNotEmpty(startEndTimeList)) { 91 || CollUtil.isNotEmpty(startEndTimeList)) {
@@ -92,33 +94,38 @@ public class SeckillTimeServiceImpl implements SeckillTimeService { @@ -92,33 +94,38 @@ public class SeckillTimeServiceImpl implements SeckillTimeService {
92 } 94 }
93 95
94 @Override 96 @Override
95 - public SeckillTimeDO getSeckillTime(Long id) {  
96 - return seckillTimeMapper.selectById(id); 97 + public SeckillConfigDO getSeckillConfig(Long id) {
  98 + return seckillConfigMapper.selectById(id);
97 } 99 }
98 100
99 @Override 101 @Override
100 - public List<SeckillTimeDO> getSeckillTimeList() {  
101 - return seckillTimeMapper.selectList(); 102 + public List<SeckillConfigDO> getSeckillConfigList() {
  103 + return seckillConfigMapper.selectList();
102 } 104 }
103 105
104 @Override 106 @Override
105 - public void validateSeckillTimeExists(Collection<Long> timeIds) { 107 + public void validateSeckillConfigExists(Collection<Long> timeIds) {
106 if (CollUtil.isEmpty(timeIds)) { 108 if (CollUtil.isEmpty(timeIds)) {
107 throw exception(SECKILL_TIME_NOT_EXISTS); 109 throw exception(SECKILL_TIME_NOT_EXISTS);
108 } 110 }
109 - if (seckillTimeMapper.selectBatchIds(timeIds).size() != timeIds.size()) { 111 + if (seckillConfigMapper.selectBatchIds(timeIds).size() != timeIds.size()) {
110 throw exception(SECKILL_TIME_NOT_EXISTS); 112 throw exception(SECKILL_TIME_NOT_EXISTS);
111 } 113 }
112 } 114 }
113 115
114 @Override 116 @Override
115 - public void sekillActivityCountIncr(Collection<Long> ids) {  
116 - seckillTimeMapper.updateActivityCount(ids, "+", 1); 117 + public void seckillActivityCountIncr(Collection<Long> ids) {
  118 + seckillConfigMapper.updateActivityCount(ids, "+", 1);
117 } 119 }
118 120
119 @Override 121 @Override
120 - public void sekillActivityCountDecr(Collection<Long> ids) {  
121 - seckillTimeMapper.updateActivityCount(ids, "-", 1); 122 + public void seckillActivityCountDecr(Collection<Long> ids) {
  123 + seckillConfigMapper.updateActivityCount(ids, "-", 1);
  124 + }
  125 +
  126 + @Override
  127 + public PageResult<SeckillConfigDO> getSeckillConfigPage(SeckillConfigPageReqVO pageVO) {
  128 + return seckillConfigMapper.selectPage(pageVO);
122 } 129 }
123 130
124 } 131 }
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillconfig/SeckillConfigServiceImplTest.java 0 → 100644
  1 +package cn.iocoder.yudao.module.promotion.service.seckillconfig;
  2 +
  3 +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
  4 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO;
  5 +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO;
  6 +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO;
  7 +import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig.SeckillConfigMapper;
  8 +import cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig.SeckillConfigServiceImpl;
  9 +import com.fasterxml.jackson.core.JsonProcessingException;
  10 +import com.fasterxml.jackson.databind.ObjectMapper;
  11 +import org.junit.jupiter.api.Disabled;
  12 +import org.junit.jupiter.api.Test;
  13 +import org.springframework.context.annotation.Import;
  14 +
  15 +import javax.annotation.Resource;
  16 +
  17 +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
  18 +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
  19 +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
  20 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
  21 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
  22 +import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.SECKILL_TIME_NOT_EXISTS;
  23 +import static org.junit.jupiter.api.Assertions.assertNotNull;
  24 +import static org.junit.jupiter.api.Assertions.assertNull;
  25 +
  26 +/**
  27 + * {@link SeckillConfigServiceImpl} 的单元测试类
  28 + *
  29 + * @author 芋道源码
  30 + */
  31 +@Import(SeckillConfigServiceImpl.class)
  32 +@Disabled // TODO 芋艿:未来开启
  33 +public class SeckillConfigServiceImplTest extends BaseDbUnitTest {
  34 +
  35 + @Resource
  36 + private SeckillConfigServiceImpl SeckillConfigService;
  37 +
  38 + @Resource
  39 + private SeckillConfigMapper seckillConfigMapper;
  40 +
  41 + @Resource
  42 + private ObjectMapper objectMapper;
  43 +
  44 + @Test
  45 + public void testJacksonSerializ() {
  46 +
  47 + // 准备参数
  48 + SeckillConfigCreateReqVO reqVO = randomPojo(SeckillConfigCreateReqVO.class);
  49 +// ObjectMapper objectMapper = new ObjectMapper();
  50 + try {
  51 + String string = objectMapper.writeValueAsString(reqVO);
  52 + System.out.println(string);
  53 + } catch (JsonProcessingException e) {
  54 + e.printStackTrace();
  55 + }
  56 +
  57 +
  58 + }
  59 +
  60 + @Test
  61 + public void testCreateSeckillConfig_success() {
  62 + // 准备参数
  63 + SeckillConfigCreateReqVO reqVO = randomPojo(SeckillConfigCreateReqVO.class);
  64 +
  65 + // 调用
  66 + Long SeckillConfigId = SeckillConfigService.createSeckillConfig(reqVO);
  67 + // 断言
  68 + assertNotNull(SeckillConfigId);
  69 + // 校验记录的属性是否正确
  70 + SeckillConfigDO SeckillConfig = seckillConfigMapper.selectById(SeckillConfigId);
  71 + assertPojoEquals(reqVO, SeckillConfig);
  72 + }
  73 +
  74 + @Test
  75 + public void testUpdateSeckillConfig_success() {
  76 + // mock 数据
  77 + SeckillConfigDO dbSeckillConfig = randomPojo(SeckillConfigDO.class);
  78 + seckillConfigMapper.insert(dbSeckillConfig);// @Sql: 先插入出一条存在的数据
  79 + // 准备参数
  80 + SeckillConfigUpdateReqVO reqVO = randomPojo(SeckillConfigUpdateReqVO.class, o -> {
  81 + o.setId(dbSeckillConfig.getId()); // 设置更新的 ID
  82 + });
  83 +
  84 + // 调用
  85 + SeckillConfigService.updateSeckillConfig(reqVO);
  86 + // 校验是否更新正确
  87 + SeckillConfigDO SeckillConfig = seckillConfigMapper.selectById(reqVO.getId()); // 获取最新的
  88 + assertPojoEquals(reqVO, SeckillConfig);
  89 + }
  90 +
  91 + @Test
  92 + public void testUpdateSeckillConfig_notExists() {
  93 + // 准备参数
  94 + SeckillConfigUpdateReqVO reqVO = randomPojo(SeckillConfigUpdateReqVO.class);
  95 +
  96 + // 调用, 并断言异常
  97 + assertServiceException(() -> SeckillConfigService.updateSeckillConfig(reqVO), SECKILL_TIME_NOT_EXISTS);
  98 + }
  99 +
  100 + @Test
  101 + public void testDeleteSeckillConfig_success() {
  102 + // mock 数据
  103 + SeckillConfigDO dbSeckillConfig = randomPojo(SeckillConfigDO.class);
  104 + seckillConfigMapper.insert(dbSeckillConfig);// @Sql: 先插入出一条存在的数据
  105 + // 准备参数
  106 + Long id = dbSeckillConfig.getId();
  107 +
  108 + // 调用
  109 + SeckillConfigService.deleteSeckillConfig(id);
  110 + // 校验数据不存在了
  111 + assertNull(seckillConfigMapper.selectById(id));
  112 + }
  113 +
  114 + @Test
  115 + public void testDeleteSeckillConfig_notExists() {
  116 + // 准备参数
  117 + Long id = randomLongId();
  118 +
  119 + // 调用, 并断言异常
  120 + assertServiceException(() -> SeckillConfigService.deleteSeckillConfig(id), SECKILL_TIME_NOT_EXISTS);
  121 + }
  122 +
  123 + @Test
  124 + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
  125 + public void testGetSeckillConfigPage() {
  126 + // mock 数据
  127 +// SeckillConfigDO dbSeckillConfig = randomPojo(SeckillConfigDO.class, o -> { // 等会查询到
  128 +// o.setName(null);
  129 +// o.setStartTime(null);
  130 +// o.setEndTime(null);
  131 +// o.setCreateTime(null);
  132 +// });
  133 +// seckillConfigMapper.insert(dbSeckillConfig);
  134 +// // 测试 name 不匹配
  135 +// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setName(null)));
  136 +// // 测试 startTime 不匹配
  137 +// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setStartTime(null)));
  138 +// // 测试 endTime 不匹配
  139 +// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setEndTime(null)));
  140 +// // 测试 createTime 不匹配
  141 +// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setCreateTime(null)));
  142 +// // 准备参数
  143 +// SeckillConfigPageReqVO reqVO = new SeckillConfigPageReqVO();
  144 +// reqVO.setName(null);
  145 +//// reqVO.setStartTime((new LocalTime()));
  146 +//// reqVO.setEndTime((new LocalTime[]{}));
  147 +//// reqVO.setCreateTime((new Date[]{}));
  148 +//
  149 +// // 调用
  150 +// PageResult<SeckillConfigDO> pageResult = SeckillConfigService.getSeckillConfigPage(reqVO);
  151 +// // 断言
  152 +// assertEquals(1, pageResult.getTotal());
  153 +// assertEquals(1, pageResult.getList().size());
  154 +// assertPojoEquals(dbSeckillConfig, pageResult.getList().get(0));
  155 + }
  156 +
  157 + @Test
  158 + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
  159 + public void testGetSeckillConfigList() {
  160 + // mock 数据
  161 + SeckillConfigDO dbSeckillConfig = randomPojo(SeckillConfigDO.class, o -> { // 等会查询到
  162 + o.setName(null);
  163 + o.setStartTime(null);
  164 + o.setEndTime(null);
  165 + o.setCreateTime(null);
  166 + });
  167 + seckillConfigMapper.insert(dbSeckillConfig);
  168 + // 测试 name 不匹配
  169 + seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setName(null)));
  170 + // 测试 startTime 不匹配
  171 + seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setStartTime(null)));
  172 + // 测试 endTime 不匹配
  173 + seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setEndTime(null)));
  174 + // 测试 createTime 不匹配
  175 + seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setCreateTime(null)));
  176 + // 准备参数
  177 +// SeckillConfigExportReqVO reqVO = new SeckillConfigExportReqVO();
  178 +// reqVO.setName(null);
  179 +// reqVO.setStartTime((new LocalTime[]{}));
  180 +// reqVO.setEndTime((new LocalTime[]{}));
  181 +// reqVO.setCreateTime((new Date[]{}));
  182 +//
  183 +// // 调用
  184 +// List<SeckillConfigDO> list = SeckillConfigService.getSeckillConfigList(reqVO);
  185 +// // 断言
  186 +// assertEquals(1, list.size());
  187 +// assertPojoEquals(dbSeckillConfig, list.get(0));
  188 + }
  189 +
  190 +}
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckilltime/SeckillTimeServiceImplTest.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.seckilltime;  
2 -  
3 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.service.seckill.seckilltime.SeckillTimeServiceImpl;  
6 -import com.fasterxml.jackson.core.JsonProcessingException;  
7 -import com.fasterxml.jackson.databind.ObjectMapper;  
8 -import org.junit.jupiter.api.Disabled;  
9 -import org.junit.jupiter.api.Test;  
10 -  
11 -import javax.annotation.Resource;  
12 -  
13 -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;  
14 -  
15 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO;  
16 -import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckilltime.SeckillTimeMapper;  
17 -  
18 -import org.springframework.context.annotation.Import;  
19 -  
20 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*;  
21 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;  
22 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;  
23 -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;  
24 -import static org.junit.jupiter.api.Assertions.*;  
25 -  
26 -/**  
27 -* {@link SeckillTimeServiceImpl} 的单元测试类  
28 -*  
29 -* @author 芋道源码  
30 -*/  
31 -@Import(SeckillTimeServiceImpl.class)  
32 -@Disabled // TODO 芋艿:未来开启  
33 -public class SeckillTimeServiceImplTest extends BaseDbUnitTest {  
34 -  
35 - @Resource  
36 - private SeckillTimeServiceImpl seckillTimeService;  
37 -  
38 - @Resource  
39 - private SeckillTimeMapper seckillTimeMapper;  
40 -  
41 - @Resource  
42 - private ObjectMapper objectMapper;  
43 -  
44 - @Test  
45 - public void testJacksonSerializ(){  
46 -  
47 - // 准备参数  
48 - SeckillTimeCreateReqVO reqVO = randomPojo(SeckillTimeCreateReqVO.class);  
49 -// ObjectMapper objectMapper = new ObjectMapper();  
50 - try {  
51 - String string = objectMapper.writeValueAsString(reqVO);  
52 - System.out.println(string);  
53 - } catch (JsonProcessingException e) {  
54 - e.printStackTrace();  
55 - }  
56 -  
57 -  
58 - }  
59 -  
60 - @Test  
61 - public void testCreateSeckillTime_success() {  
62 - // 准备参数  
63 - SeckillTimeCreateReqVO reqVO = randomPojo(SeckillTimeCreateReqVO.class);  
64 -  
65 - // 调用  
66 - Long seckillTimeId = seckillTimeService.createSeckillTime(reqVO);  
67 - // 断言  
68 - assertNotNull(seckillTimeId);  
69 - // 校验记录的属性是否正确  
70 - SeckillTimeDO seckillTime = seckillTimeMapper.selectById(seckillTimeId);  
71 - assertPojoEquals(reqVO, seckillTime);  
72 - }  
73 -  
74 - @Test  
75 - public void testUpdateSeckillTime_success() {  
76 - // mock 数据  
77 - SeckillTimeDO dbSeckillTime = randomPojo(SeckillTimeDO.class);  
78 - seckillTimeMapper.insert(dbSeckillTime);// @Sql: 先插入出一条存在的数据  
79 - // 准备参数  
80 - SeckillTimeUpdateReqVO reqVO = randomPojo(SeckillTimeUpdateReqVO.class, o -> {  
81 - o.setId(dbSeckillTime.getId()); // 设置更新的 ID  
82 - });  
83 -  
84 - // 调用  
85 - seckillTimeService.updateSeckillTime(reqVO);  
86 - // 校验是否更新正确  
87 - SeckillTimeDO seckillTime = seckillTimeMapper.selectById(reqVO.getId()); // 获取最新的  
88 - assertPojoEquals(reqVO, seckillTime);  
89 - }  
90 -  
91 - @Test  
92 - public void testUpdateSeckillTime_notExists() {  
93 - // 准备参数  
94 - SeckillTimeUpdateReqVO reqVO = randomPojo(SeckillTimeUpdateReqVO.class);  
95 -  
96 - // 调用, 并断言异常  
97 - assertServiceException(() -> seckillTimeService.updateSeckillTime(reqVO), SECKILL_TIME_NOT_EXISTS);  
98 - }  
99 -  
100 - @Test  
101 - public void testDeleteSeckillTime_success() {  
102 - // mock 数据  
103 - SeckillTimeDO dbSeckillTime = randomPojo(SeckillTimeDO.class);  
104 - seckillTimeMapper.insert(dbSeckillTime);// @Sql: 先插入出一条存在的数据  
105 - // 准备参数  
106 - Long id = dbSeckillTime.getId();  
107 -  
108 - // 调用  
109 - seckillTimeService.deleteSeckillTime(id);  
110 - // 校验数据不存在了  
111 - assertNull(seckillTimeMapper.selectById(id));  
112 - }  
113 -  
114 - @Test  
115 - public void testDeleteSeckillTime_notExists() {  
116 - // 准备参数  
117 - Long id = randomLongId();  
118 -  
119 - // 调用, 并断言异常  
120 - assertServiceException(() -> seckillTimeService.deleteSeckillTime(id), SECKILL_TIME_NOT_EXISTS);  
121 - }  
122 -  
123 - @Test  
124 - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解  
125 - public void testGetSeckillTimePage() {  
126 - // mock 数据  
127 -// SeckillTimeDO dbSeckillTime = randomPojo(SeckillTimeDO.class, o -> { // 等会查询到  
128 -// o.setName(null);  
129 -// o.setStartTime(null);  
130 -// o.setEndTime(null);  
131 -// o.setCreateTime(null);  
132 -// });  
133 -// seckillTimeMapper.insert(dbSeckillTime);  
134 -// // 测试 name 不匹配  
135 -// seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setName(null)));  
136 -// // 测试 startTime 不匹配  
137 -// seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setStartTime(null)));  
138 -// // 测试 endTime 不匹配  
139 -// seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setEndTime(null)));  
140 -// // 测试 createTime 不匹配  
141 -// seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setCreateTime(null)));  
142 -// // 准备参数  
143 -// SeckillTimePageReqVO reqVO = new SeckillTimePageReqVO();  
144 -// reqVO.setName(null);  
145 -//// reqVO.setStartTime((new LocalTime()));  
146 -//// reqVO.setEndTime((new LocalTime[]{}));  
147 -//// reqVO.setCreateTime((new Date[]{}));  
148 -//  
149 -// // 调用  
150 -// PageResult<SeckillTimeDO> pageResult = seckillTimeService.getSeckillTimePage(reqVO);  
151 -// // 断言  
152 -// assertEquals(1, pageResult.getTotal());  
153 -// assertEquals(1, pageResult.getList().size());  
154 -// assertPojoEquals(dbSeckillTime, pageResult.getList().get(0));  
155 - }  
156 -  
157 - @Test  
158 - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解  
159 - public void testGetSeckillTimeList() {  
160 - // mock 数据  
161 - SeckillTimeDO dbSeckillTime = randomPojo(SeckillTimeDO.class, o -> { // 等会查询到  
162 - o.setName(null);  
163 - o.setStartTime(null);  
164 - o.setEndTime(null);  
165 - o.setCreateTime(null);  
166 - });  
167 - seckillTimeMapper.insert(dbSeckillTime);  
168 - // 测试 name 不匹配  
169 - seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setName(null)));  
170 - // 测试 startTime 不匹配  
171 - seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setStartTime(null)));  
172 - // 测试 endTime 不匹配  
173 - seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setEndTime(null)));  
174 - // 测试 createTime 不匹配  
175 - seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setCreateTime(null)));  
176 - // 准备参数  
177 -// SeckillTimeExportReqVO reqVO = new SeckillTimeExportReqVO();  
178 -// reqVO.setName(null);  
179 -// reqVO.setStartTime((new LocalTime[]{}));  
180 -// reqVO.setEndTime((new LocalTime[]{}));  
181 -// reqVO.setCreateTime((new Date[]{}));  
182 -//  
183 -// // 调用  
184 -// List<SeckillTimeDO> list = seckillTimeService.getSeckillTimeList(reqVO);  
185 -// // 断言  
186 -// assertEquals(1, list.size());  
187 -// assertPojoEquals(dbSeckillTime, list.get(0));  
188 - }  
189 -  
190 -}  
yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/clean.sql
1 -DELETE FROM "market_activity";  
2 -DELETE FROM "promotion_coupon_template";  
3 -DELETE FROM "promotion_coupon";  
4 -DELETE FROM "promotion_reward_activity";  
5 -DELETE FROM "promotion_discount_activity";  
6 -DELETE FROM "promotion_discount_product"; 1 +DELETE
  2 +FROM "market_activity";
  3 +DELETE
  4 +FROM "promotion_coupon_template";
  5 +DELETE
  6 +FROM "promotion_coupon";
  7 +DELETE
  8 +FROM "promotion_reward_activity";
  9 +DELETE
  10 +FROM "promotion_discount_activity";
  11 +DELETE
  12 +FROM "promotion_discount_product";
  13 +DELETE
  14 +FROM "promotion_seckill_config";
yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/create_tables.sql
@@ -108,17 +108,122 @@ CREATE TABLE IF NOT EXISTS &quot;promotion_discount_activity&quot; ( @@ -108,17 +108,122 @@ CREATE TABLE IF NOT EXISTS &quot;promotion_discount_activity&quot; (
108 ) COMMENT '限时折扣活动'; 108 ) COMMENT '限时折扣活动';
109 109
110 CREATE TABLE IF NOT EXISTS "promotion_discount_product" ( 110 CREATE TABLE IF NOT EXISTS "promotion_discount_product" (
111 - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,  
112 - "activity_id" bigint NOT NULL,  
113 - "spu_id" bigint NOT NULL,  
114 - "sku_id" bigint NOT NULL,  
115 - "discount_type" int NOT NULL,  
116 - "discount_percent" int,  
117 - "discount_price" int,  
118 - "creator" varchar DEFAULT '',  
119 - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,  
120 - "updater" varchar DEFAULT '',  
121 - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  
122 - "deleted" bit NOT NULL DEFAULT FALSE,  
123 - PRIMARY KEY ("id")  
124 -) COMMENT '限时折扣活动'; 111 + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  112 + "activity_id" bigint NOT NULL,
  113 + "spu_id" bigint NOT NULL,
  114 + "sku_id" bigint NOT NULL,
  115 + "discount_type" int NOT NULL,
  116 + "discount_percent"
  117 + int,
  118 + "discount_price"
  119 + int,
  120 + "creator"
  121 + varchar
  122 + DEFAULT
  123 + '',
  124 + "create_time"
  125 + datetime
  126 + NOT
  127 + NULL
  128 + DEFAULT
  129 + CURRENT_TIMESTAMP,
  130 + "updater"
  131 + varchar
  132 + DEFAULT
  133 + '',
  134 + "update_time"
  135 + datetime
  136 + NOT
  137 + NULL
  138 + DEFAULT
  139 + CURRENT_TIMESTAMP
  140 + ON
  141 + UPDATE
  142 + CURRENT_TIMESTAMP,
  143 + "deleted"
  144 + bit
  145 + NOT
  146 + NULL
  147 + DEFAULT
  148 + FALSE,
  149 + PRIMARY
  150 + KEY
  151 +(
  152 + "id"
  153 +)
  154 + ) COMMENT '限时折扣活动';
  155 +
  156 +CREATE TABLE IF NOT EXISTS "promotion_seckill_config"
  157 +(
  158 + "id"
  159 + bigint
  160 + NOT
  161 + NULL
  162 + GENERATED
  163 + BY
  164 + DEFAULT AS
  165 + IDENTITY,
  166 + "name"
  167 + varchar
  168 + NOT
  169 + NULL,
  170 + "start_time"
  171 + varchar
  172 + NOT
  173 + NULL,
  174 + "end_time"
  175 + varchar
  176 + NOT
  177 + NULL,
  178 + "seckill_activity_count"
  179 + int
  180 + NOT
  181 + NULL,
  182 + "pic_url"
  183 + varchar
  184 + NOT
  185 + NULL,
  186 + "status"
  187 + varchar
  188 + NOT
  189 + NULL,
  190 + "creator"
  191 + varchar
  192 + DEFAULT
  193 + '',
  194 + "create_time"
  195 + datetime
  196 + NOT
  197 + NULL
  198 + DEFAULT
  199 + CURRENT_TIMESTAMP,
  200 + "updater"
  201 + varchar
  202 + DEFAULT
  203 + '',
  204 + "update_time"
  205 + datetime
  206 + NOT
  207 + NULL
  208 + DEFAULT
  209 + CURRENT_TIMESTAMP
  210 + ON
  211 + UPDATE
  212 + CURRENT_TIMESTAMP,
  213 + "deleted"
  214 + bit
  215 + NOT
  216 + NULL
  217 + DEFAULT
  218 + FALSE,
  219 + "tenant_id"
  220 + bigint
  221 + NOT
  222 + NULL,
  223 + PRIMARY
  224 + KEY
  225 +(
  226 + "id"
  227 +)
  228 + ) COMMENT '秒杀时段配置';
  229 +
yudao-ui-admin/src/views/mall/promotion/seckill/seckillActivity/index.vue
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 </el-form-item> 17 </el-form-item>
18 <el-form-item label="参与场次" prop="timeId"> 18 <el-form-item label="参与场次" prop="timeId">
19 <el-select v-model="queryParams.timeId" placeholder="请选择参与场次" clearable size="small"> 19 <el-select v-model="queryParams.timeId" placeholder="请选择参与场次" clearable size="small">
20 - <el-option v-for="item in seckillTimeList" :key="item.id" :label="item.name" :value="item.id" /> 20 + <el-option v-for="item in SeckillConfigList" :key="item.id" :label="item.name" :value="item.id"/>
21 </el-select> 21 </el-select>
22 </el-form-item> 22 </el-form-item>
23 <el-form-item label="创建时间" prop="createTime"> 23 <el-form-item label="创建时间" prop="createTime">
@@ -38,8 +38,9 @@ @@ -38,8 +38,9 @@
38 v-hasPermi="['promotion:seckill-activity:create']">新增秒杀活动</el-button> 38 v-hasPermi="['promotion:seckill-activity:create']">新增秒杀活动</el-button>
39 </el-col> 39 </el-col>
40 <el-col :span="1.5"> 40 <el-col :span="1.5">
41 - <el-button type="primary" plain icon="el-icon-menu" size="mini" @click="openSeckillTime"  
42 - v-hasPermi="['promotion:seckill-activity:create']">管理参与场次</el-button> 41 + <el-button v-hasPermi="['promotion:seckill-activity:create']" icon="el-icon-menu" plain size="mini" type="primary"
  42 + @click="openSeckillConfig">管理参与场次
  43 + </el-button>
43 </el-col> 44 </el-col>
44 <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> 45 <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
45 </el-row> 46 </el-row>
@@ -54,8 +55,8 @@ @@ -54,8 +55,8 @@
54 </el-table-column> 55 </el-table-column>
55 <el-table-column label="参与场次" prop="timeIds" width="250"> 56 <el-table-column label="参与场次" prop="timeIds" width="250">
56 <template v-slot="scope"> 57 <template v-slot="scope">
57 - <span v-for="item in seckillTimeList" :key="item.id"  
58 - v-if="scope.row.timeIds.includes(item.id)"> 58 + <span v-for="item in SeckillConfigList" v-if="scope.row.timeIds.includes(item.id)"
  59 + :key="item.id">
59 <el-tag style="margin:4px;" size="small">{{ item.name }}</el-tag> 60 <el-tag style="margin:4px;" size="small">{{ item.name }}</el-tag>
60 </span> 61 </span>
61 </template> 62 </template>
@@ -110,12 +111,13 @@ @@ -110,12 +111,13 @@
110 <el-form-item label="场次选择"> 111 <el-form-item label="场次选择">
111 <el-select v-model="form.timeIds" placeholder="请选择参与场次" clearable size="small" multiple filterable 112 <el-select v-model="form.timeIds" placeholder="请选择参与场次" clearable size="small" multiple filterable
112 style="width: 880px"> 113 style="width: 880px">
113 - <el-option v-for="item in seckillTimeList" :key="item.id" :label="item.name" :value="item.id">  
114 - <span style="float: left">{{ item.name + ': { ' }} {{ item.startTime }} -- {{ item.endTime +  
115 - ' }'  
116 - }}</span>  
117 - <span style="float: right; color: #8492a6; font-size: 13px"></span>  
118 - </el-option> 114 + <el-option v-for="item in SeckillConfigList" :key="item.id" :label="item.name" :value="item.id">
  115 + <span style="float: left">{{ item.name + ': { ' }} {{ item.startTime }} -- {{
  116 + item.endTime +
  117 + ' }'
  118 + }}</span>
  119 + <span style="float: right; color: #8492a6; font-size: 13px"></span>
  120 + </el-option>
119 </el-select> 121 </el-select>
120 </el-form-item> 122 </el-form-item>
121 <el-form-item label="商品选择"> 123 <el-form-item label="商品选择">
@@ -186,10 +188,17 @@ @@ -186,10 +188,17 @@
186 </template> 188 </template>
187 189
188 <script> 190 <script>
189 -import { getSkuOptionList } from "@/api/mall/product/sku";  
190 -import { createSeckillActivity, updateSeckillActivity, closeSeckillActivity, deleteSeckillActivity, getSeckillActivity, getSeckillActivityPage, exportSeckillActivityExcel } from "@/api/mall/promotion/seckillActivity";  
191 -import { getSeckillTimeList } from "@/api/mall/promotion/seckillTime";  
192 -import { deepClone } from "@/utils"; 191 +import {getSkuOptionList} from "@/api/mall/product/sku";
  192 +import {
  193 + closeSeckillActivity,
  194 + createSeckillActivity,
  195 + deleteSeckillActivity,
  196 + getSeckillActivity,
  197 + getSeckillActivityPage,
  198 + updateSeckillActivity
  199 +} from "@/api/mall/promotion/seckillActivity";
  200 +import {getSeckillConfigList} from "@/api/mall/promotion/SeckillConfig";
  201 +import {deepClone} from "@/utils";
193 202
194 export default { 203 export default {
195 name: "PromotionSeckillActivity", 204 name: "PromotionSeckillActivity",
@@ -197,26 +206,26 @@ export default { @@ -197,26 +206,26 @@ export default {
197 }, 206 },
198 data() { 207 data() {
199 return { 208 return {
200 - // 遮罩层  
201 - loading: true,  
202 - // 显示搜索条件  
203 - showSearch: true,  
204 - // 总条数  
205 - total: 0,  
206 - // 秒杀活动列表  
207 - list: [],  
208 - // 秒杀场次列表  
209 - seckillTimeList: [],  
210 - // 弹出层标题  
211 - title: "",  
212 - // 是否显示弹出层  
213 - open: false,  
214 - // 查询参数  
215 - queryParams: {  
216 - pageNo: 1,  
217 - pageSize: 10,  
218 - name: null,  
219 - status: null, 209 + // 遮罩层
  210 + loading: true,
  211 + // 显示搜索条件
  212 + showSearch: true,
  213 + // 总条数
  214 + total: 0,
  215 + // 秒杀活动列表
  216 + list: [],
  217 + // 秒杀场次列表
  218 + SeckillConfigList: [],
  219 + // 弹出层标题
  220 + title: "",
  221 + // 是否显示弹出层
  222 + open: false,
  223 + // 查询参数
  224 + queryParams: {
  225 + pageNo: 1,
  226 + pageSize: 10,
  227 + name: null,
  228 + status: null,
220 timeId: null, 229 timeId: null,
221 createTime: [], 230 createTime: [],
222 }, 231 },
@@ -261,18 +270,18 @@ export default { @@ -261,18 +270,18 @@ export default {
261 this.total = response.data.total; 270 this.total = response.data.total;
262 this.loading = false; 271 this.loading = false;
263 }); 272 });
264 - if (timeId) {  
265 - //查询完成后设置为空  
266 - this.$route.params.timeId = undefined  
267 - }  
268 - // 获得 SKU 商品列表  
269 - getSkuOptionList().then(response => {  
270 - this.productSkus = response.data;  
271 - });  
272 - // 获取参与场次列表  
273 - getSeckillTimeList().then(response => {  
274 - this.seckillTimeList = response.data;  
275 - }); 273 + if (timeId) {
  274 + //查询完成后设置为空
  275 + this.$route.params.timeId = undefined
  276 + }
  277 + // 获得 SKU 商品列表
  278 + getSkuOptionList().then(response => {
  279 + this.productSkus = response.data;
  280 + });
  281 + // 获取参与场次列表
  282 + getSeckillConfigList().then(response => {
  283 + this.SeckillConfigList = response.data;
  284 + });
276 }, 285 },
277 /** 取消按钮 */ 286 /** 取消按钮 */
278 cancel() { 287 cancel() {
@@ -306,10 +315,10 @@ export default { @@ -306,10 +315,10 @@ export default {
306 this.resetForm("queryForm"); 315 this.resetForm("queryForm");
307 this.handleQuery(); 316 this.handleQuery();
308 }, 317 },
309 - /**打开秒杀场次管理页面 */  
310 - openSeckillTime() {  
311 - this.$tab.openPage("秒杀场次管理", "/promotion/seckill-time");  
312 - }, 318 + /**打开秒杀场次管理页面 */
  319 + openSeckillConfig() {
  320 + this.$tab.openPage("秒杀场次管理", "/promotion/seckill-time");
  321 + },
313 /** 新增按钮操作 */ 322 /** 新增按钮操作 */
314 handleAdd() { 323 handleAdd() {
315 this.reset(); 324 this.reset();
yudao-ui-admin/src/views/mall/promotion/seckill/seckillTime/index.vue
@@ -63,14 +63,19 @@ @@ -63,14 +63,19 @@
63 </template> 63 </template>
64 64
65 <script> 65 <script>
66 -import { createSeckillTime, updateSeckillTime, deleteSeckillTime, getSeckillTime, getSeckillTimePage, exportSeckillTimeExcel, getSeckillTimeList } from "@/api/mall/promotion/seckillTime"; 66 +import {
  67 + createSeckillConfig,
  68 + deleteSeckillConfig,
  69 + getSeckillConfig,
  70 + getSeckillConfigList,
  71 + updateSeckillConfig
  72 +} from "@/api/mall/promotion/SeckillConfig";
67 import router from "@/router"; 73 import router from "@/router";
68 -import { deepClone } from "@/utils"; 74 +import {deepClone} from "@/utils";
69 75
70 export default { 76 export default {
71 - name: "PromotionSeckillTime",  
72 - components: {  
73 - }, 77 + name: "PromotionSeckillConfig",
  78 + components: {},
74 data() { 79 data() {
75 return { 80 return {
76 // 遮罩层 81 // 遮罩层
@@ -104,7 +109,7 @@ export default { @@ -104,7 +109,7 @@ export default {
104 getList() { 109 getList() {
105 this.loading = true; 110 this.loading = true;
106 // 执行查询 111 // 执行查询
107 - getSeckillTimeList().then(response => { 112 + getSeckillConfigList().then(response => {
108 this.list = response.data; 113 this.list = response.data;
109 this.loading = false; 114 this.loading = false;
110 }); 115 });
@@ -148,7 +153,7 @@ export default { @@ -148,7 +153,7 @@ export default {
148 handleUpdate(row) { 153 handleUpdate(row) {
149 this.reset(); 154 this.reset();
150 const id = row.id; 155 const id = row.id;
151 - getSeckillTime(id).then(response => { 156 + getSeckillConfig(id).then(response => {
152 response.data.startAndEndTime = [response.data.startTime, response.data.endTime] 157 response.data.startAndEndTime = [response.data.startTime, response.data.endTime]
153 this.form = response.data; 158 this.form = response.data;
154 this.open = true; 159 this.open = true;
@@ -168,7 +173,7 @@ export default { @@ -168,7 +173,7 @@ export default {
168 data.endTime = this.form.startAndEndTime[1]; 173 data.endTime = this.form.startAndEndTime[1];
169 // 修改的提交 174 // 修改的提交
170 if (this.form.id != null) { 175 if (this.form.id != null) {
171 - updateSeckillTime(data).then(response => { 176 + updateSeckillConfig(data).then(response => {
172 this.$modal.msgSuccess("修改成功"); 177 this.$modal.msgSuccess("修改成功");
173 this.open = false; 178 this.open = false;
174 this.getList(); 179 this.getList();
@@ -176,7 +181,7 @@ export default { @@ -176,7 +181,7 @@ export default {
176 return; 181 return;
177 } 182 }
178 // 添加的提交 183 // 添加的提交
179 - createSeckillTime(data).then(response => { 184 + createSeckillConfig(data).then(response => {
180 this.$modal.msgSuccess("新增成功"); 185 this.$modal.msgSuccess("新增成功");
181 this.open = false; 186 this.open = false;
182 this.getList(); 187 this.getList();
@@ -187,7 +192,7 @@ export default { @@ -187,7 +192,7 @@ export default {
187 handleDelete(row) { 192 handleDelete(row) {
188 const id = row.id; 193 const id = row.id;
189 this.$modal.confirm('是否确认删除秒杀时段编号为"' + id + '"的数据项?').then(function () { 194 this.$modal.confirm('是否确认删除秒杀时段编号为"' + id + '"的数据项?').then(function () {
190 - return deleteSeckillTime(id); 195 + return deleteSeckillConfig(id);
191 }).then(() => { 196 }).then(() => {
192 this.getList(); 197 this.getList();
193 this.$modal.msgSuccess("删除成功"); 198 this.$modal.msgSuccess("删除成功");