mock.go 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. package model
  2. import (
  3. "fmt"
  4. "math/rand"
  5. )
  6. // 预先定义好设备名、位置、报警内容
  7. var DeviceNames = []string{"控制器", "温度传感器", "湿度传感器", "CO2传感器", "光照传感器", "烟雾探测器", "门禁控制器", "电动阀门", "执行机构", "智能电表", "水流量计", "视频监控摄像头", "新风机组控制器", "风机盘管控制器"}
  8. var Locations = []string{"B1停车场", "1F大厅", "2F办公室A区", "3F会议室", "4F数据中心机房", "5F行政办公区", "6F设备间", "7F技术层", "8F研发部", "9F控制室", "10F高管办公室", "11F员工休息区", "12F屋顶空调机房"}
  9. var AlarmContents = []string{"通信中断", "温度过高", "CO2浓度超标", "电源异常", "信号丢失", "非法入侵", "门磁状态异常", "数据采集失败", "电机过载", "湿度异常", "烟雾报警", "存储空间不足", "设备离线", "校准失败"}
  10. // 广播系统设备名称
  11. var GBDeviceName = []string{
  12. "主控主机", "数字音频处理器", "功率放大器", "扬声器终端", "消防联动控制器",
  13. "分区控制器", "远程控制终端", "背景音乐播放器", "紧急广播麦克风", "网络音频终端",
  14. }
  15. // 终端日志内容
  16. var GBterminalLogs = []string{
  17. "系统启动成功", "设备已上线", "音频播放测试完成", "分区3扬声器无响应", "功率放大器过热警告",
  18. "接收到消防中心紧急广播信号", "背景音乐播放已暂停", "网络连接中断", "设备配置更新成功",
  19. "紧急广播已触发", "音频文件加载失败", "麦克风输入信号异常", "设备离线,请检查网络",
  20. "音量调节至75%", "定时任务执行完成",
  21. }
  22. // 姓名列表
  23. var Names = []string{
  24. "张伟", "王芳", "李强", "刘洋", "陈敏",
  25. "杨丽", "黄勇", "周杰", "徐娟", "吴斌",
  26. }
  27. // 大屏名称列表
  28. var LargeScreenNames = []string{
  29. "一楼大厅主显示屏",
  30. "二楼导引信息屏",
  31. "三楼会议中心显示屏",
  32. "四楼候梯厅信息屏",
  33. "五楼行政办公区公告屏",
  34. "六楼机房监控屏",
  35. "七楼研发部展示屏",
  36. "八楼高管会议室主屏",
  37. "九楼控制室监控大屏",
  38. "十楼展厅互动显示终端",
  39. }
  40. // 信息类型
  41. var InfoTypes = []string{
  42. "紧急通知",
  43. "天气预报",
  44. "新闻资讯",
  45. "活动公告",
  46. "失物招领",
  47. "寻人启事",
  48. "交通信息",
  49. "安全提示",
  50. "健康小贴士",
  51. "楼层导览图",
  52. "公司介绍",
  53. "产品广告",
  54. "会议议程",
  55. "欢迎词",
  56. "实时数据统计",
  57. }
  58. // 智能照明设备名称
  59. var IlluminatingDeviceNames = []string{
  60. "大厅主照明回路",
  61. "走廊应急照明回路",
  62. "办公区普通照明回路",
  63. "会议室调光控制模块",
  64. "楼梯间感应照明回路",
  65. "电梯厅常亮灯组",
  66. "地下车库LED照明组",
  67. "出入口门厅灯控",
  68. "安全出口指示灯回路",
  69. "景观装饰灯带控制器",
  70. }
  71. // 真实照明事件描述
  72. var LightingEvents = []string{
  73. "设备正常开启", "设备已关闭", "通信中断", "灯具故障报警",
  74. "过载保护触发", "电压异常警告", "传感器无信号", "自动模式启动",
  75. "手动操作执行", "定时任务完成", "夜间节能模式激活", "紧急照明切换成功",
  76. }
  77. var MonitorDeviceNames = []string{
  78. "前门摄像头",
  79. "后门监控器",
  80. "停车场入口摄像机",
  81. "停车场出口监控",
  82. "一楼大厅监控",
  83. "二楼走廊摄像头",
  84. "电梯内摄像头",
  85. "仓库监控点",
  86. "办公室监控",
  87. "紧急出口摄像头",
  88. }
  89. // 真实入侵报警系统设备名称列表
  90. var IntrusionDeviceNames = []string{
  91. "前门磁性传感器",
  92. "后门磁性传感器",
  93. "一楼窗户红外探测器",
  94. "二楼走廊运动传感器",
  95. "仓库玻璃破碎探测器",
  96. "紧急出口门磁开关",
  97. "电梯厅摄像头监控",
  98. "办公室烟雾探测器",
  99. "财务室震动传感器",
  100. "数据中心红外对射探测器",
  101. }
  102. // 真实巡查事件名称列表
  103. var InspectionEvents = []string{
  104. "设备巡检完成",
  105. "安全检查无异常",
  106. "发现可疑人员",
  107. "紧急出口畅通",
  108. "灭火器压力正常",
  109. "监控系统运行正常",
  110. "报警系统测试成功",
  111. "门禁系统工作正常",
  112. "走廊照明完好",
  113. "消防栓未被遮挡",
  114. }
  115. // 真实巡查位置列表
  116. var InspectionLocations = []string{
  117. "前门入口",
  118. "一楼大厅",
  119. "二楼办公室",
  120. "三楼会议室",
  121. "四楼休息区",
  122. "五楼机房",
  123. "地下停车场",
  124. "仓库区域",
  125. "紧急疏散通道",
  126. "屋顶平台",
  127. }
  128. // 真实巡更设备名称列表
  129. var RealInspectionDeviceNames = []string{
  130. "智能巡更棒X1",
  131. "RFID读卡器RC-200",
  132. "红外感应巡检点A3",
  133. "无线巡检按钮WB-5",
  134. "指纹识别巡检终端F9",
  135. "NFC近场通信模块N1",
  136. "防水巡检打卡器W10",
  137. "蓝牙信标巡检点B1",
  138. "二维码巡检标签Q7",
  139. "门磁联动巡检器D3",
  140. }
  141. // 真实访客姓名列表
  142. var VisitorNames = []string{
  143. "张伟", "王芳", "李强", "刘洋", "陈敏",
  144. "杨丽", "黄勇", "周杰", "徐娟", "吴斌",
  145. "孙磊", "胡静", "朱莉", "何涛", "罗红",
  146. "高翔", "林雪", "夏军", "崔健", "马莉",
  147. "郭峰", "于娜", "潘龙", "谢芳",
  148. }
  149. // 安全事件 & 位置
  150. var SecurityEvents = []string{
  151. "人群聚集预警", "出入口异常闯入", "儿童走失事件", "老人跌倒检测",
  152. "可疑人员徘徊", "物品遗留警报", "消防通道堵塞", "闸机故障报警",
  153. "人脸识别不匹配", "黑名单人员出现",
  154. }
  155. var LocationsADD = []string{
  156. "一楼主入口", "二楼扶梯口", "三楼休息区", "地下停车场A区",
  157. "东侧安检口", "西侧出站口", "中央服务台", "电梯间C座",
  158. "男厕入口", "女厕入口",
  159. }
  160. // 客群类型
  161. var CustomerGroups = []string{
  162. "普通消费者", "潜在客户", "回头客", "高价值客户", "带小孩家庭",
  163. "老年顾客", "情侣顾客", "商务人士", "学生群体", "游客群体",
  164. }
  165. var MJDeviceNames = []string{
  166. "前门读卡器",
  167. "后门指纹识别终端",
  168. "东侧闸机",
  169. "西侧人脸识别终端",
  170. "南侧紧急出口按钮",
  171. "北侧门禁控制器",
  172. "一楼大厅入口控制",
  173. "二楼会议室门禁",
  174. "三楼休息区入口",
  175. "四楼电梯口门禁",
  176. }
  177. var MJlocations = []string{
  178. "前门",
  179. "后门",
  180. "东侧通道",
  181. "西侧走廊",
  182. "南侧紧急出口",
  183. "北侧员工入口",
  184. "一楼大厅",
  185. "二楼会议室",
  186. "三楼休息区",
  187. "四楼电梯间",
  188. }
  189. var MJalarmContents = []string{
  190. "读卡失败,请重试。",
  191. "未授权访问尝试。",
  192. "设备离线,无法连接。",
  193. "传感器故障,需维护。",
  194. "非法闯入警告!",
  195. "门长时间未关闭。",
  196. "电池电量低,即将失效。",
  197. "门禁控制器异常重启。",
  198. "人脸识别失败,权限不足。",
  199. "紧急出口被激活。",
  200. }
  201. var EntranceExitDeviceNames = []string{
  202. "主入口闸机",
  203. "副出口读卡器",
  204. "东侧员工通道控制器",
  205. "西侧访客登记终端",
  206. "南门人脸识别闸机",
  207. "北侧紧急疏散控制面板",
  208. "一楼大厅出入口管理器",
  209. "二楼VIP通道门禁终端",
  210. "三楼办公区入口识别器",
  211. "四楼数据中心闸机",
  212. "地下停车场入口控制器",
  213. "地上一层出口感应器",
  214. "消防通道门磁控制器",
  215. "电梯厅出入口读卡器",
  216. "贵宾专用通道闸机",
  217. "无障碍通道升降平台控制器",
  218. "自动旋转门控制系统",
  219. "玻璃门电控锁装置",
  220. "人行通道翼闸机",
  221. "车辆道闸控制系统",
  222. }
  223. var ResidentToPropertyContents = []string{
  224. "广播系统今天早上启动后声音不稳定,请检查。",
  225. "公共区域广播设备好像没有上线,是否在维护中?",
  226. "背景音乐播放测试未完成,可能影响楼层氛围。",
  227. "3楼分区扬声器一直无响应,影响紧急通知传达。",
  228. "功率放大器出现过热警告,请注意消防安全。",
  229. "消防中心发出的广播信号未被接收,请排查故障。",
  230. "背景音乐频繁暂停,是否有设置问题?",
  231. "广播系统网络中断,已持续超过一小时。",
  232. "设备配置更新后广播仍无法正常使用。",
  233. "紧急广播触发后覆盖范围不全,存在盲区。",
  234. "音频文件加载失败,是否是服务器问题?",
  235. "麦克风输入异常,访客呼叫听不到声音。",
  236. "广播设备离线,请尽快恢复通讯。",
  237. "音量调节到75%,但实际声音偏小。",
  238. "定时广播任务未执行,请查看日志记录。",
  239. }
  240. // 生成随机电话号码
  241. func GeneratePhoneNumber() string {
  242. return fmt.Sprintf("1%010d", rand.Intn(1000000000))
  243. }
  244. // 随机生成车牌号
  245. func GenerateLicensePlate() string {
  246. province := []string{"京", "沪", "粤", "浙", "苏", "鲁", "湘", "鄂", "川"}
  247. cityLetter := "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[rand.Intn(26)]
  248. return fmt.Sprintf("%s%c%s", province[rand.Intn(len(province))], cityLetter, RandomString(5))
  249. }
  250. // 生成固定长度的随机字符串(数字+字母)
  251. func RandomString(n int) string {
  252. const letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  253. b := make([]byte, n)
  254. for i := range b {
  255. b[i] = letters[rand.Intn(len(letters))]
  256. }
  257. return string(b)
  258. }
  259. func GetRandomItem(items []string) string {
  260. return items[rand.Intn(len(items))]
  261. }