1. --生成日结数据
  2.  
  3. ====================================
  4. -- Author: <Author,,Name>
  5. -- Create date: <Create Date,,>
  6. -- Description: 资金日结
  7. -- =============================================
  8. ALTER PROCEDURE [UC].[P_Fin_DailySummary_Insert]
  9. AS
  10. BEGIN TRY
  11. SET NOCOUNT ON ;
  12. DECLARE @ErrorID INT= 0
  13. DECLARE @vcExecInfo VARCHAR(1)=''
  14. SET NOCOUNT ON ;
  15. DECLARE @dtDate VARCHAR(15)= CONVERT(VARCHAR(15), DATEADD(day, ( -1 ), GETDATE()), 23)
  16. DECLARE @dtYesterdayDate VARCHAR(15)= CONVERT(VARCHAR(15), DATEADD(day, ( -2 ), GETDATE()), 23)
  17. DECLARE @dtTodayDate VARCHAR(15)= CONVERT(VARCHAR(15), DATEADD(day, ( 0 ), GETDATE()), 23)
  18.  
  19. --DELETE UC.Fin_DailySummary
  20. --WHERE dtBalanceDate = @dtDate
  21.  
  22. INSERT INTO UC.Fin_DailySummary ( dtBalanceDate, vcCustomerNo, vcLoginId, nCustomerType, dmYesterdayBalance, dmTodayBalance, dmRechargeAmount, dmWithDrawAmount, dmSellGoldAmount, dmBuyGoldAmount, dmGoldCompensate, dmWithDrawFee, dmRechargeFee, dmGoldSellFee, dmAdvertAmount, dmRechargeAdjust, dmWithDrawAdjust, dmGoldOrderAdjust )
  23. SELECT @dtDate, a.vcCustomerNo, a.vcUserName,a.nCustomerType,0 AS dmYesterdayBalance,ISNULL(a.dmCurrentFund-ISNULL(c.dmFund,0),0) AS dmTodayBalance, ISNULL(b.dmRechargeAmount, 0) AS dmRechargeAmount, ISNULL(b.dmWithDrawAmount, 0) AS dmWithDrawAmount,ISNULL(b.dmSellGoldAmount, 0) AS dmSellGoldAmount, ISNULL(b.dmBuyGoldAmount, 0) AS dmBuyGoldAmount, ISNULL(b.dmGoldCompensate, 0) AS dmGoldCompensate, ISNULL(b.dmWithdrawFee, 0) AS dmWithDrawFee, ISNULL(b.dmRechargeFee, 0) AS dmRechargeFee,0 AS dmGoldSellFee,0 AS dmAdvertAmount,ISNULL(b.dmRechargeAdjust, 0) AS dmRechargeAdjust,ISNULL(b.dmWithDrawAdjust, 0) AS dmWithDrawAdjust,ISNULL(b.dmGoldOrderAdjust, 0) AS dmGoldOrderAdjust
  24. FROM UC.Cus_Customer AS a
  25. LEFT JOIN ( SELECT vcCustomerNo,
  26. ISNULL(SUM(CASE nFundType
  27. WHEN 10 THEN dmFund
  28. ELSE 0 END), 0) AS dmRechargeAmount,
  29. ISNULL(SUM(CASE nFundType
  30. WHEN 14 THEN dmFund
  31. ELSE 0 END), 0) AS dmWithDrawAmount,
  32. ISNULL(SUM(CASE nFundType
  33. WHEN 22 THEN dmFund
  34. ELSE 0 END), 0) AS dmBuyGoldAmount,
  35. ISNULL(SUM(CASE nFundType
  36. WHEN 23 THEN dmFund
  37. ELSE 0 END), 0) AS dmSellGoldAmount,
  38. ISNULL(SUM(CASE nFundType
  39. WHEN 17 THEN dmFund
  40. ELSE 0 END), 0) AS dmGoldCompensate,
  41. ISNULL(SUM(CASE nFundType
  42. WHEN 11 THEN dmFund
  43. ELSE 0 END), 0) AS dmRechargeFee,
  44. ISNULL(SUM(CASE nFundType
  45. WHEN 18 THEN dmFund
  46. ELSE 0 END), 0) AS dmWithdrawFee,
  47. ISNULL(SUM(CASE nAdjustType
  48. WHEN 11 THEN dmFund
  49. ELSE 0 END), 0) AS dmRechargeAdjust,
  50. ISNULL(SUM(CASE nAdjustType
  51. WHEN 12 THEN dmFund
  52. ELSE 0 END), 0) AS dmWithDrawAdjust,
  53. ISNULL(SUM(CASE nAdjustType
  54. WHEN 13 THEN dmFund
  55. ELSE 0 END), 0) AS dmGoldOrderAdjust
  56. FROM UC.Fin_CustomerFundJour
  57. WHERE CONVERT(VARCHAR(10),dtCreateDate,120) = @dtDate
  58. GROUP BY vcCustomerNo ) AS b
  59. ON a.vcCustomerNo = b.vcCustomerNo
  60. LEFT JOIN (SELECT SUM(dmFund) AS dmFund,vcCustomerNo
  61. FROM UC.Fin_CustomerFundJour
  62. WHERE CONVERT(VARCHAR(10),dtCreateDate,120) = @dtTodayDate
  63. GROUP BY vcCustomerNo) AS c
  64. ON a.vcCustomerNo = c.vcCustomerNo
  65.  
  66. --修改前日余额
  67. UPDATE Fin_DailySummary
  68. SET dmYesterdayBalance = c.dmTodayBalance
  69. FROM Fin_DailySummary AS a ,
  70. ( SELECT b.dmTodayBalance, b.vcCustomerNo
  71. FROM Fin_DailySummary AS b
  72. WHERE b.dtBalanceDate = @dtYesterdayDate ) c
  73. WHERE a.vcCustomerNo = c.vcCustomerNo AND a.dtBalanceDate = @dtDate
  74.  
  75. END TRY
  76. BEGIN CATCH
  77. IF @@trancount > 0
  78. ROLLBACK TRAN ;
  79. EXEC P_Pub_GetErrorMsgExecInfo @ErrorID OUT,@vcExecInfo OUT
  80. END CATCH

<--------------------------------------------------------------------分割线-------------------------------------------------------------------------------------->

  1. --日结数据查询
  2.  
  3. -- =============================================
    -- Author: <Author,,Name>
  4. -- Create date: <Create Date,,>
  5. -- Description: 客户资金日结查询
  6. -- =============================================
  7. ALTER PROCEDURE [UC].[P_Admin_Fin_DailySummary_Search]
  8. @vcBeginDate VARCHAR(50) ,
  9. @vcEndDate VARCHAR(50) ,
  10. @nCustomerType INT ,
  11. @vcSearValue VARCHAR(100) ,
  12. @nPageIndex INT ,
  13. @nPageSize INT ,
  14. @nTotleRecord INT OUT ,
  15. @nPageCount INT OUT
  16. AS
  17. BEGIN
  18. SET NOCOUNT ON ;
  19. DECLARE @nRowStart INT
  20. DECLARE @nRowEnd INT
  21. DECLARE @vcSearchBeginDate VARCHAR(50)
  22. DECLARE @vcSearchEndDate VARCHAR(50)
  23. SET @nRowEnd = @nPageIndex * @nPageSize
  24. SET @nRowStart = @nRowEnd - @nPageSize + 1
  25.  
  26. --设置默认值
  27. IF @vcBeginDate = ''
  28. SET @vcBeginDate = CONVERT(VARCHAR(10), GETDATE() - 1, 120)
  29. IF @vcEndDate = ''
  30. SET @vcEndDate = CONVERT(VARCHAR(10), GETDATE(), 120)
  31.  
  32. SET @vcSearchBeginDate = @vcBeginDate
  33. SET @vcSearchEndDate = @vcEndDate
  34.  
  35. SELECT *
  36. FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY vcCustomerNo DESC ) AS RowIndex, *
  37. FROM UC.Fin_DailySummary
  38. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND ( @nCustomerType = 0 OR nCustomerType = @nCustomerType ) AND dtBalanceDate BETWEEN @vcBeginDate AND @vcEndDate ) AS cte
  39. WHERE RowIndex BETWEEN @nRowStart AND @nRowEnd
  40.  
  41. IF NOT EXISTS ( SELECT 1
  42. FROM UC.Fin_DailySummary
  43. WHERE CONVERT(VARCHAR(10), dtBalanceDate, 120) = @vcSearchBeginDate )
  44. BEGIN
  45. --如果不存在按照开始日期查询的数据 取数据库最开始的时间
  46. SELECT DISTINCT TOP 1
  47. @vcSearchBeginDate = CONVERT(VARCHAR(10), dtBalanceDate, 120)
  48. FROM UC.Fin_DailySummary
  49. ORDER BY CONVERT(VARCHAR(10), dtBalanceDate, 120) ASC
  50. END
  51. IF NOT EXISTS ( SELECT 1
  52. FROM UC.Fin_DailySummary
  53. WHERE CONVERT(VARCHAR(10), dtBalanceDate, 120) = @vcSearchEndDate )
  54. BEGIN
  55. --如果不存在按照结束日期查询的数据 取数据库最新的时间
  56. SELECT DISTINCT TOP 1
  57. @vcSearchEndDate = CONVERT(VARCHAR(10), dtBalanceDate, 120)
  58. FROM UC.Fin_DailySummary
  59. ORDER BY CONVERT(VARCHAR(10), dtBalanceDate, 120) DESC
  60. END
  61.  
  62. IF @nCustomerType = 0
  63. BEGIN
  64. --查询所有客户分类时
  65.  
  66. --按照客户分类汇总信息
  67. SELECT CASE nCustomerType
  68. WHEN 10 THEN '正式客户合计' + CONVERT(VARCHAR(10), COUNT(1)) + '条'
  69. WHEN 11 THEN '测试客户合计' + CONVERT(VARCHAR(10), COUNT(1)) + '条'
  70. WHEN 12 THEN '内部客户合计' + CONVERT(VARCHAR(10), COUNT(1)) + '条'
  71. END AS vcCustomerNo, SUM(dmRechargeAmount) AS dmRechargeAmount, SUM(dmWithDrawAmount) AS dmWithDrawAmount, SUM(dmSellGoldAmount) AS dmSellGoldAmount, SUM(dmBuyGoldAmount) AS dmBuyGoldAmount, SUM(dmGoldCompensate) AS dmGoldCompensate, SUM(dmWithDrawFee) AS dmWithDrawFee, SUM(dmRechargeFee) AS dmRechargeFee, SUM(dmGoldSellFee) AS dmGoldSellFee, SUM(dmAdvertAmount) AS dmAdvertAmount, SUM(dmRechargeAdjust) AS dmRechargeAdjust, SUM(dmWithDrawAdjust) AS dmWithDrawAdjust, SUM(dmGoldOrderAdjust) AS dmGoldOrderAdjust, nCustomerType
  72. INTO #summary
  73. FROM UC.Fin_DailySummary
  74. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND dtBalanceDate BETWEEN @vcBeginDate AND @vcEndDate
  75. GROUP BY nCustomerType
  76.  
  77. --汇总所有的记录
  78. SELECT '合计' + CONVERT(VARCHAR(10), COUNT(1)) + '条' AS vcCustomerNo, SUM(dmRechargeAmount) AS dmRechargeAmount, SUM(dmWithDrawAmount) AS dmWithDrawAmount, SUM(dmSellGoldAmount) AS dmSellGoldAmount, SUM(dmBuyGoldAmount) AS dmBuyGoldAmount, SUM(dmGoldCompensate) AS dmGoldCompensate, SUM(dmWithDrawFee) AS dmWithDrawFee, SUM(dmRechargeFee) AS dmRechargeFee, SUM(dmGoldSellFee) AS dmGoldSellFee, SUM(dmAdvertAmount) AS dmAdvertAmount, SUM(dmRechargeAdjust) AS dmRechargeAdjust, SUM(dmWithDrawAdjust) AS dmWithDrawAdjust, SUM(dmGoldOrderAdjust) AS dmGoldOrderAdjust
  79. INTO #allsummary
  80. FROM UC.Fin_DailySummary
  81. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND dtBalanceDate BETWEEN @vcBeginDate AND @vcEndDate
  82.  
  83. --按照客户分类 汇总前日余额
  84. SELECT SUM(dmYesterdayBalance) AS dmYesterdayBalance, nCustomerType
  85. INTO #yesterday
  86. FROM UC.Fin_DailySummary
  87. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND CONVERT(VARCHAR(10), dtBalanceDate, 120) = @vcSearchBeginDate
  88. GROUP BY nCustomerType
  89.  
  90. --按照客户分类 汇总当日余额
  91. SELECT SUM(dmTodayBalance) AS dmTodayBalance, nCustomerType
  92. INTO #today
  93. FROM UC.Fin_DailySummary
  94. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND CONVERT(VARCHAR(10), dtBalanceDate, 120) = @vcSearchEndDate
  95. GROUP BY nCustomerType
  96.  
  97. --汇总所有客户的前日余额
  98. SELECT SUM(dmYesterdayBalance) AS dmYesterdayBalance
  99. INTO #allyesterday
  100. FROM UC.Fin_DailySummary
  101. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND CONVERT(VARCHAR(10), dtBalanceDate, 120) = @vcSearchBeginDate
  102.  
  103. --汇总所有客户的当日余额
  104. SELECT SUM(dmTodayBalance) AS dmTodayBalance
  105. INTO #alltoday
  106. FROM UC.Fin_DailySummary
  107. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND CONVERT(VARCHAR(10), dtBalanceDate, 120) = @vcSearchEndDate
  108.  
  109. --返回结果(根据客户分类汇总的记录以及所有客户的汇总记录)
  110. SELECT #summary.vcCustomerNo, #yesterday.dmYesterdayBalance, #today.dmTodayBalance, #summary.dmRechargeAmount, #summary.dmWithDrawAmount, #summary.dmSellGoldAmount, #summary.dmBuyGoldAmount, #summary.dmGoldCompensate, #summary.dmWithDrawFee, #summary.dmRechargeFee, #summary.dmGoldSellFee, #summary.dmAdvertAmount, #summary.dmRechargeAdjust, #summary.dmWithDrawAdjust, #summary.dmGoldOrderAdjust
  111. FROM #summary
  112. INNER JOIN #yesterday
  113. ON #summary.nCustomerType = #yesterday.nCustomerType
  114. INNER JOIN #today
  115. ON #summary.nCustomerType = #today.nCustomerType
  116. UNION ALL
  117. ( SELECT #allsummary.vcCustomerNo, #allyesterday.dmYesterdayBalance, #alltoday.dmTodayBalance, #allsummary.dmRechargeAmount, #allsummary.dmWithDrawAmount, #allsummary.dmSellGoldAmount, #allsummary.dmBuyGoldAmount, #allsummary.dmGoldCompensate, #allsummary.dmWithDrawFee, #allsummary.dmRechargeFee, #allsummary.dmGoldSellFee, #allsummary.dmAdvertAmount, #allsummary.dmRechargeAdjust, #allsummary.dmWithDrawAdjust, #allsummary.dmGoldOrderAdjust
  118. FROM #allsummary
  119. CROSS JOIN #allyesterday
  120. CROSS JOIN #alltoday)
  121.  
  122. END
  123. ELSE
  124. BEGIN
  125. --按照客户分类查询时
  126.  
  127. --根据条件汇总数据
  128. SELECT '合计' + CONVERT(VARCHAR(10), COUNT(1)) + '条' AS vcCustomerNo, SUM(dmRechargeAmount) AS dmRechargeAmount, SUM(dmWithDrawAmount) AS dmWithDrawAmount, SUM(dmSellGoldAmount) AS dmSellGoldAmount, SUM(dmBuyGoldAmount) AS dmBuyGoldAmount, SUM(dmGoldCompensate) AS dmGoldCompensate, SUM(dmWithDrawFee) AS dmWithDrawFee, SUM(dmRechargeFee) AS dmRechargeFee, SUM(dmGoldSellFee) AS dmGoldSellFee, SUM(dmAdvertAmount) AS dmAdvertAmount, SUM(dmRechargeAdjust) AS dmRechargeAdjust, SUM(dmWithDrawAdjust) AS dmWithDrawAdjust, SUM(dmGoldOrderAdjust) AS dmGoldOrderAdjust
  129. INTO #temp1
  130. FROM UC.Fin_DailySummary
  131. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND ( @nCustomerType = 0 OR nCustomerType = @nCustomerType ) AND dtBalanceDate BETWEEN @vcBeginDate AND @vcEndDate
  132.  
  133. --根据条件汇总前日余额
  134. SELECT SUM(dmYesterdayBalance) AS dmYesterdayBalance
  135. INTO #allyesterday1
  136. FROM UC.Fin_DailySummary
  137. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND ( @nCustomerType = 0 OR nCustomerType = @nCustomerType ) AND CONVERT(VARCHAR(10), dtBalanceDate, 120) = @vcSearchBeginDate
  138.  
  139. --根据条件汇总当日余额
  140. SELECT SUM(dmTodayBalance) AS dmTodayBalance
  141. INTO #alltoday1
  142. FROM UC.Fin_DailySummary
  143. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND ( @nCustomerType = 0 OR nCustomerType = @nCustomerType ) AND CONVERT(VARCHAR(10), dtBalanceDate, 120) = @vcSearchEndDate
  144.  
  145. --返回结果
  146. SELECT #temp1.vcCustomerNo, #allyesterday1.dmYesterdayBalance, #alltoday1.dmTodayBalance, #temp1.dmRechargeAmount, #temp1.dmWithDrawAmount, #temp1.dmSellGoldAmount, #temp1.dmBuyGoldAmount, #temp1.dmGoldCompensate, #temp1.dmWithDrawFee, #temp1.dmRechargeFee, #temp1.dmGoldSellFee, #temp1.dmAdvertAmount, #temp1.dmRechargeAdjust, #temp1.dmWithDrawAdjust, #temp1.dmGoldOrderAdjust
  147. FROM #temp1
  148. CROSS JOIN #allyesterday1
  149. CROSS JOIN #alltoday1
  150.  
  151. END
  152.  
  153. --返回所有的记录数以及分页数
  154. SELECT @nTotleRecord = COUNT(1), @nPageCount = COUNT(1) / @nPageSize + CASE COUNT(1) % @nPageSize
  155. WHEN 0 THEN 0
  156. ELSE 1
  157. END
  158. FROM UC.Fin_DailySummary
  159. WHERE ( @vcSearValue = '' OR ( vcLoginId = @vcSearValue OR vcCustomerNo = @vcSearValue ) ) AND ( @nCustomerType = 0 OR nCustomerType = @nCustomerType ) AND dtBalanceDate BETWEEN @vcBeginDate AND @vcEndDate
  160.  
  161. END

sql 日结的更多相关文章

  1. SQL Server 为代码减负之存储过程

        存储过程能够用来提高数据库的查询效率.由于它事先被编译过.被储存于内存中,每次执行前.不必被从新编译,所以效率非常高. 存储过程是一组sql增删改查的集合,假设程序中的一个功能涉及到对数据库的 ...

  2. SQL SERVER数据库基本语法汇总,仅代表个人整理,仅供参考

    以下SQL基本语法皆由本人整理,以下做一个汇总,关于游标,可作为了解,不要求掌握,其他查询.修改.删除操作等基本语法必须会使用.select * from [dbo].[TBICJE]select m ...

  3. SQL做日历

    DECLARE @DATE DATETIME SET @DATE=GETDATE() SELECT SUN -DAY(@DATE),@DATE))=@DATE THEN '*' ELSE '' END ...

  4. sql server生成自动增长的字母数字字符串

    在开发的过程中,我们经常会遇到要生成一些固定格式字符串,例如“BX201903150001”,结构为:BX+日期+N位序号,类似这种的字符串我们很难生成,在这里我们借助一个存储过程来实现这个功能. 1 ...

  5. sql优化实战:从1353秒到135秒(删除索引+修改数据+重建索引)

    最近在优化日结存储过程,日结存储过程中大概包含了20多个存储过程. 发现其有一个存储过程代码有问题,进一步发现结存的数据中有一个 日期字段business_date 是有问题的,这个字段对应的类型是v ...

  6. SpringMVC +mybatis+spring 结合easyui用法及常见问题总结

    SpringMVC +mybatis+spring 结合easyui用法及常见问题总结 1.FormatString的用法. 2.用postAjaxFillGrid实现dataGrid 把form表单 ...

  7. Datatable.Compute小技巧

    在个人版机房重构的过程中,大家最发愁的一件事无非就是上下机,结账和报表.那么在结账的过程中,最发愁的是否就数计算日结账单的数据和周结账的数据.还记得在第一遍机房收费系统的过程中用的是for 循环,但是 ...

  8. VB.NET版机房收费系统---报表

    报表,即报告情况的表格,简单的说:报表就是用表格.图表等格式来动态显示数据,可以用公式表示为:"报表 = 多样的格式 + 动态的数据". 在没有计算机以前,人们利用纸和笔来记录数据 ...

  9. MySQL ORDER BY主键id加LIMIT限制走错索引

    背景及现象 report_product_sales_data表数据量2800万: 经测试,在当前数据量情况下,order by主键id,limit最大到49的时候可以用到索引report_produ ...

随机推荐

  1. c++的复制构造函数

    在C++中,下面三种对象需要调用拷贝构造函数(有时也称“复制构造函数”): 1) 一个对象作为函数参数,以值传递的方式传入函数体: 2) 一个对象作为函数返回值,以值传递的方式从函数返回: 3) 一个 ...

  2. 如何用Linux外接显示器或投影仪

    在Windows下使用Win+P键或者定制屏幕选项,可以让自己用多个显示器工作或者外接投影仪进行演讲.在Linux下,Gnome与KDE这样的“重量级”桌面环境同样提供了类似的功能与操作方式.但是像我 ...

  3. poj 2299 Ultra-QuickSort 逆序对模版题

    用树状数组求逆序数 唯一的坑点就是sum要用long long存 直接贴代码了 以后忘了还能直接看 2333…… PS:和hdu3743代码是一样的,因为两个都是逆序对模版题…… #include&l ...

  4. ListCtrl中垂直滚动条自动滚动

    在用ListCtrl控件时,当向该控件中添加数据时,怎么样可以把滚动条时时滚动到最后一行,这样便可看到添加的新数据内容 1 加完数据后执行 EnsureVisible(最后一行索引) 可以保证滚动到最 ...

  5. solr与tomcat整合

    一.准备工作:我使用的是tomcat7.0,solr-4.8.1 solr-4.8.1解压后是这样的. 二.开始配置了 1.首先要创建两个文件夹.home和server.我是创建在与solr-4.8. ...

  6. Threading

    new System.Threading.Thread(new System.Threading.ThreadStart(ReadState)).Start();

  7. 在客户端缓存Servlet的输出

    对于不经常变化的数据,在servlet中可以为其设置合理的缓存时间值,以避免浏览器频繁向服务器发送请求,提升服务器的性能. public class ServletContext7 extends H ...

  8. 2015 ACM/ICPC Asia Regional Hefei Online

    1001 Monitor the Alpacas 1002 The Relationship in Club 1003 Difference of Clustering 两边离散化.暴力扫C就过了. ...

  9. Mongodb 抛出异常:dbexit: really exiting now

    删除 数据库文件夹下,的 _tmp 和 mongodb.lock 文件 , 重启即可.我的数据文件在  /data/mongo/data/  下

  10. angular项目——小小记事本2

    一,路由的规划. 需要模拟的页面有三个:all,active,conplete. 首先,写好铺垫需要的各种东西,重要的组件的引用等—— 这里我们会将index.html设为主页,将body.html加 ...