item.go 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package bid
  2. import "zhiyuan/pkg/param/common"
  3. type CalcType struct {
  4. ID int `json:"id"`
  5. Name string `json:"name"`
  6. Param []CalcParam `json:"param"`
  7. }
  8. type CalcParam struct {
  9. Label string `json:"label"`
  10. Key string `json:"key"`
  11. ShowType string `json:"show_type"`
  12. DataType string `json:"data_type"`
  13. }
  14. type Category struct {
  15. ID int `json:"id"`
  16. Name string `json:"name"`
  17. Level int `json:"level"`
  18. }
  19. type CategoryGroup struct {
  20. ID int `json:"id"`
  21. Name string `json:"name"`
  22. CategoryIds []int `json:"category_ids"`
  23. }
  24. var Params = struct {
  25. Category []Category `json:"category"`
  26. CategoryGroup []CategoryGroup `json:"category_group"`
  27. CalcType []CalcType `json:"calc_type"`
  28. Level []common.Base `json:"level"`
  29. }{
  30. Category: []Category{
  31. {1, "套餐施工项", 1},
  32. {2, "套餐主材项", 1},
  33. {3, "施工增项", 2},
  34. {4, "主材增项", 2},
  35. {5, "主材减项", 2},
  36. {6, "主材升级", 2},
  37. {11, "设计费", 2},
  38. {12, "定制品", 3},
  39. {13, "家具", 3},
  40. {14, "灯具", 3},
  41. {15, "窗帘", 3},
  42. {21, "定制品成本", 3},
  43. {22, "家具成本", 3},
  44. {23, "灯具成本", 3},
  45. {24, "窗帘成本", 3},
  46. {25, "活动奖品成本", 3},
  47. {26, "定金抵扣", 3},
  48. {27, "家电成本", 3},
  49. {30, "卫生间施工项", 4},
  50. {31, "卫生间主材项", 4},
  51. },
  52. CategoryGroup: []CategoryGroup{
  53. {1, "套餐内项目", []int{1, 2}},
  54. {3, "施工增项", []int{3}},
  55. {4, "主材增项", []int{4}},
  56. {5, "主材减项", []int{5}},
  57. {6, "主材升级", []int{6}},
  58. {11, "设计费", []int{11}},
  59. {12, "全包项目", []int{12, 13, 14, 15}},
  60. {21, "套餐外成本", []int{21, 22, 23, 24, 25, 26, 27}},
  61. {30, "额外卫生间", []int{30, 31}},
  62. },
  63. Level: []common.Base{
  64. {1, "套餐内"},
  65. {2, "个性化"},
  66. },
  67. CalcType: []CalcType{
  68. {1, "地面面积*单价", []CalcParam{}},
  69. {5, "可变数*单价", []CalcParam{}},
  70. {19, "可变数*损耗系数*单价", []CalcParam{
  71. {"损耗系数", "loss_rate", "text", "float"},
  72. }},
  73. {3, "可变数*建筑面积", []CalcParam{}},
  74. {2, "固定数*单价", []CalcParam{
  75. {"固定数", "fix_num", "text", "float"},
  76. }},
  77. {10, "门洞*单价", []CalcParam{}},
  78. {16, "窗宽*单价", []CalcParam{}},
  79. {11, "地面周长*单价", []CalcParam{}},
  80. {20, "地面周长*损耗系数*单价", []CalcParam{
  81. {"损耗系数", "loss_rate", "text", "float"},
  82. }},
  83. {21, "客餐厅地面周长*损耗系数*单价", []CalcParam{
  84. {"损耗系数", "loss_rate", "text", "float"},
  85. }},
  86. {24, "(地面周长-固定数)*损耗系数*单价", []CalcParam{
  87. {"损耗系数", "loss_rate", "text", "float"},
  88. {"固定数", "fix_num", "text", "float"},
  89. }},
  90. {18, "客餐厅地面周长*单价", []CalcParam{}},
  91. {12, "门洞周长*单价", []CalcParam{
  92. {"门洞高度", "hole_height", "text", "float"},
  93. }},
  94. {13, "门洞面积*单价", []CalcParam{
  95. {"门洞高度", "hole_height", "text", "float"},
  96. }},
  97. {4, "墙面面积*单价", []CalcParam{
  98. {"门洞高度", "hole_height", "text", "float"},
  99. {"墙面高度", "wall_height", "text", "float"},
  100. }},
  101. {9, "(地面面积+墙面面积-窗面积)*单价", []CalcParam{
  102. {"墙面高度", "wall_height", "text", "float"},
  103. {"门洞高度", "hole_height", "text", "float"},
  104. {"窗户高度", "window_height", "text", "float"},
  105. }},
  106. {26, "(墙面面积-窗户面积)*单价", []CalcParam{
  107. {"墙面高度", "wall_height", "text", "float"},
  108. {"门洞高度", "hole_height", "text", "float"},
  109. {"窗户高度", "window_height", "text", "float"},
  110. }},
  111. {17, "(地面面积+客餐厅墙面面积-窗面积)*单价", []CalcParam{
  112. {"墙面高度", "wall_height", "text", "float"},
  113. {"门洞高度", "hole_height", "text", "float"},
  114. {"窗户高度", "window_height", "text", "float"},
  115. }},
  116. {19, "(客餐厅墙面面积-窗面积)*单价", []CalcParam{
  117. {"墙面高度", "wall_height", "text", "float"},
  118. {"门洞高度", "hole_height", "text", "float"},
  119. {"窗户高度", "window_height", "text", "float"},
  120. }},
  121. {8, "全房面积*单价", []CalcParam{}},
  122. {14, "墙面面积*损耗系数*单价", []CalcParam{
  123. {"墙面高度", "wall_height", "text", "float"},
  124. {"门洞高度", "hole_height", "text", "float"},
  125. {"损耗系数", "loss_rate", "text", "float"},
  126. }},
  127. {6, "地面面积*损耗系数*单价", []CalcParam{
  128. {"损耗系数", "loss_rate", "text", "float"},
  129. }},
  130. {7, "基础房间*房间单价", []CalcParam{
  131. {"基础房间数", "room_num", "text", "int"},
  132. {"基础卫生间数", "toilet_num", "text", "int"},
  133. {"基础厨房数", "kitchen_num", "text", "int"},
  134. {"基础客餐厅数", "restaurant_num", "text", "int"},
  135. {"基础金额", "base_money", "text", "float"},
  136. {"增加房间金额", "add_room_money", "text", "float"},
  137. {"增加卫生金额", "add_toilet_money", "text", "float"},
  138. {"增加厨房金额", "add_kitchen_money", "text", "float"},
  139. {"增加客餐厅金额", "add_restaurant__money", "text", "float"},
  140. }},
  141. {15, "窗台石面积*单价", []CalcParam{}},
  142. {22, "定制品面积*单价", []CalcParam{}},
  143. {23, "定制品面积*损耗系数*单价", []CalcParam{
  144. {"损耗系数", "loss_rate", "text", "float"},
  145. }},
  146. {25, "(阳台墙面面积-阳台窗户面积)*单价", []CalcParam{
  147. {"墙面高度", "wall_height", "text", "float"},
  148. {"门洞高度", "hole_height", "text", "float"},
  149. {"窗户高度", "window_height", "text", "float"},
  150. }},
  151. {27, "阳台地面面积*单价", []CalcParam{}},
  152. {28, "阳台门洞周长*单价", []CalcParam{
  153. {"门洞高度", "hole_height", "text", "float"},
  154. }},
  155. {29, "(墙面面积-窗户面积)*损耗系数*单价", []CalcParam{
  156. {"墙面高度", "wall_height", "text", "float"},
  157. {"门洞高度", "hole_height", "text", "float"},
  158. {"窗户高度", "window_height", "text", "float"},
  159. {"损耗系数", "loss_rate", "text", "float"},
  160. }},
  161. {30, "(地面周长+门洞)*单价", []CalcParam{}},
  162. {31, "(阳台墙面面积-阳台窗户面积)*损耗系数*单价", []CalcParam{
  163. {"墙面高度", "wall_height", "text", "float"},
  164. {"门洞高度", "hole_height", "text", "float"},
  165. {"窗户高度", "window_height", "text", "float"},
  166. {"损耗系数", "loss_rate", "text", "float"},
  167. }},
  168. {32, "最小地面周长*损耗系数*单价", []CalcParam{
  169. {"最小值", "fix_num", "text", "float"},
  170. {"损耗系数", "loss_rate", "text", "float"},
  171. }},
  172. },
  173. }
  174. func GetCategoryMap() map[int]Category {
  175. categoryMap := make(map[int]Category)
  176. for _, v := range Params.Category {
  177. categoryMap[v.ID] = v
  178. }
  179. return categoryMap
  180. }
  181. func GetCalcTypeMap() map[int]CalcType {
  182. calcMap := make(map[int]CalcType)
  183. for _, v := range Params.CalcType {
  184. calcMap[v.ID] = v
  185. }
  186. return calcMap
  187. }