constants.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. package utils
  2. import (
  3. "io/fs"
  4. )
  5. // 常量定义
  6. const (
  7. FormatTime = "15:04:05" //时间格式
  8. FormatTimeHm = "15:04" //时间格式
  9. FormatDate = "2006-01-02" //日期格式
  10. FormatDateUnSpace = "20060102" //日期格式
  11. FormatDateTime = "2006-01-02 15:04:05" //完整时间格式
  12. HlbFormatDateTime = "2006-01-02_15:04:05.999" //完整时间格式
  13. FormatDateTimeUnSpace = "20060102150405" //完整时间格式
  14. FormatShortDateTimeUnSpace = "060102150405" //省去开头两位年份的时间格式
  15. EmptyDateTimeStr = "0000-00-00 00:00:00" //DateTime零值字符串
  16. EmptyDateStr = "0000-00-00" //Date零值字符串
  17. FormatMonthDayUnSpace = "0102" //日期格式
  18. FormatMonthDay = "01-02" //日期格式
  19. FormatYearMonthDate = "2006-01" //日期格式
  20. FormatYearDate = "2006" //日期格式
  21. PageSize15 = 15 //列表页每页数据量
  22. PageSize5 = 5
  23. PageSize10 = 10
  24. PageSize20 = 20
  25. PageSize30 = 30
  26. PageSize50 = 50
  27. )
  28. const DateTypeNYears = 20 //时间类型为最近N年
  29. // 手机号,电子邮箱正则
  30. const (
  31. RegularMobile = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0-9])|(17[0-9])|(16[0-9])|(19[0-9]))\\d{8}$" //手机号码
  32. RegularEmail = `\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*` //匹配电子邮箱
  33. )
  34. // 验证码code
  35. const (
  36. REGISTER_CODE = iota + 1 //注册
  37. LOGIN_CODE //登录
  38. )
  39. // 管理员,ficc管理员,ficc销售,权益管理员,权益销售。
  40. // 角色类型/类型编码
  41. const (
  42. ROLE_TYPE_ADMIN = "管理员"
  43. ROLE_TYPE_FICC_ADMIN = "ficc管理员"
  44. ROLE_TYPE_FICC_SELLER = "ficc销售"
  45. ROLE_TYPE_RAI_ADMIN = "权益管理员"
  46. ROLE_TYPE_RAI_SELLER = "权益销售"
  47. ROLE_TYPE_FICC_GROUP = "ficc销售组长"
  48. ROLE_TYPE_FICC_MANAGER = "ficc销售主管"
  49. ROLE_TYPE_RAI_GROUP = "权益组长"
  50. ROLE_TYPE_FICC_DEPARTMENT = "ficc部门经理"
  51. ROLE_TYPE_RAI_DEPARTMENT = "权益部门经理"
  52. ROLE_TYPE_FICC_RESEARCHR = "ficc研究员"
  53. ROLE_TYPE_RAI_RESEARCHR = "权益研究员"
  54. ROLE_NAME_FICC_DIRECTOR = "ficc销售经理" // 实际角色类型为ficc销售主管
  55. ROLE_TYPE_CODE_ADMIN = "admin" //管理员
  56. ROLE_TYPE_CODE_FICC_ADMIN = "ficc_admin" //ficc管理员
  57. ROLE_TYPE_CODE_FICC_SELLER = "ficc_seller" //ficc销售
  58. ROLE_TYPE_CODE_RAI_ADMIN = "rai_admin" //权益管理员
  59. ROLE_TYPE_CODE_RAI_SELLER = "rai_seller" //权益销售
  60. ROLE_TYPE_CODE_FICC_GROUP = "ficc_group" //ficc销售主管
  61. ROLE_TYPE_CODE_RAI_GROUP = "rai_group" //ficc组长
  62. ROLE_TYPE_CODE_FICC_DEPARTMENT = "ficc_department" //ficc部门经理
  63. ROLE_TYPE_CODE_RAI_DEPARTMENT = "rai_department" //权益部门经理
  64. ROLE_TYPE_CODE_FICC_RESEARCHR = "ficc_researcher" //ficc研究员
  65. ROLE_TYPE_CODE_RESEARCHR = "researcher" //ficc研究员(最早定义的)
  66. ROLE_TYPE_CODE_RAI_RESEARCHR = "rai_researcher" //权益研究员
  67. ROLE_TYPE_CODE_COMPLIANCE = "compliance" //合规角色
  68. ROLE_TYPE_CODE_FINANCE = "finance" //财务角色
  69. ROLE_TYPE_CODE_FICC_TEAM = "ficc_team" //ficc销售组长
  70. ROLE_TYPE_SELLERS = "'ficc_admin','ficc_seller','ficc_team','rai_admin','rai_seller','ficc_group','rai_group','ficc_department','rai_department','compliance','finance'"
  71. )
  72. const (
  73. COMPANY_PRODUCT_FICC_ID = 1
  74. COMPANY_PRODUCT_FICC_NAME = "ficc"
  75. COMPANY_PRODUCT_RAI_ID = 2
  76. COMPANY_PRODUCT_RAI_NAME = "权益"
  77. )
  78. var PermissionFiccClassifyArr = [...]string{"宏观经济", "化工产业", "建材产业", "有色产业", "新能源", "市场策略"}
  79. var PermissionAllClassifyArr = [...]string{"宏观经济", "化工产业", "建材产业", "有色产业", "新能源", "市场策略", "权益"}
  80. //apply_method:申请类型:1:试用->正式,2:冻结—>试用,3:流失—>正式,4:试用延期,5:原销售申请领取流失客户,6:正式客户申请服务更新
  81. // 数据来源渠道
  82. const (
  83. DATA_SOURCE_THS = iota + 1 //同花顺
  84. DATA_SOURCE_WIND //wind->2
  85. DATA_SOURCE_PB //彭博->3
  86. DATA_SOURCE_CALCULATE //指标运算->4
  87. DATA_SOURCE_CALCULATE_LJZZY //累计值转月->5
  88. DATA_SOURCE_CALCULATE_TBZ //同比值->6
  89. DATA_SOURCE_CALCULATE_TCZ //同差值->7
  90. DATA_SOURCE_CALCULATE_NSZYDPJJS //N数值移动平均计算->8
  91. DATA_SOURCE_MANUAL //手工指标->9
  92. DATA_SOURCE_LZ //隆众->10
  93. DATA_SOURCE_YS //有色->11
  94. DATA_SOURCE_CALCULATE_HBZ //环比值->12
  95. DATA_SOURCE_CALCULATE_HCZ //环差值->13
  96. DATA_SOURCE_CALCULATE_BP //变频->14
  97. DATA_SOURCE_GL //钢联->15
  98. DATA_SOURCE_ZZ //郑商所->16
  99. DATA_SOURCE_DL //大商所->17
  100. DATA_SOURCE_SH //上期所->18
  101. DATA_SOURCE_CFFEX //中金所->19
  102. DATA_SOURCE_SHFE //上期能源->20
  103. DATA_SOURCE_GIE //欧洲天然气->21
  104. DATA_SOURCE_CALCULATE_TIME_SHIFT //时间移位->22
  105. DATA_SOURCE_CALCULATE_ZJPJ //直接拼接->23
  106. DATA_SOURCE_CALCULATE_LJZTBPJ //累计值同比拼接->24
  107. DATA_SOURCE_LT //路透->25
  108. DATA_SOURCE_COAL //中国煤炭网->26
  109. DATA_SOURCE_PYTHON //python代码->27
  110. DATA_SOURCE_PB_FINANCE //彭博财务数据->28
  111. DATA_SOURCE_GOOGLE_TRAVEL //谷歌出行->29
  112. DATA_SOURCE_PREDICT //普通预测指标->30
  113. DATA_SOURCE_PREDICT_CALCULATE //预测指标运算->31
  114. DATA_SOURCE_PREDICT_CALCULATE_TBZ //预测同比值->32
  115. DATA_SOURCE_PREDICT_CALCULATE_TCZ //预测同差值->33
  116. DATA_SOURCE_MYSTEEL_CHEMICAL //钢联化工->34
  117. DATA_SOURCE_CALCULATE_CJJX //超季节性->35
  118. DATA_SOURCE_EIA_STEO //eia steo报告->36
  119. DATA_SOURCE_CALCULATE_NHCC //计算指标(拟合残差)->37
  120. DATA_SOURCE_COM_TRADE //联合国商品贸易数据->38
  121. DATA_SOURCE_PREDICT_CALCULATE_NSZYDPJJS //预测指标 - N数值移动平均计算 -> 39
  122. DATA_SOURCE_CALCULATE_ADJUST //数据调整->40
  123. DATA_SOURCE_SCI //卓创数据(红桃三)->41
  124. DATA_SOURCE_PREDICT_CALCULATE_LJZZY //预测指标 - 累计值转月->42
  125. DATA_SOURCE_PREDICT_CALCULATE_HBZ //预测指标 - 环比值->43
  126. DATA_SOURCE_PREDICT_CALCULATE_HCZ //预测指标 - 环差值->44
  127. DATA_SOURCE_PREDICT_CALCULATE_BP //预测指标 - 变频->45
  128. DATA_SOURCE_PREDICT_CALCULATE_TIME_SHIFT //预测指标 - 时间移位->46
  129. DATA_SOURCE_PREDICT_CALCULATE_ZJPJ //预测指标 - 直接拼接->47
  130. DATA_SOURCE_PREDICT_CALCULATE_LJZTBPJ //预测指标 - 累计值同比拼接->48
  131. DATA_SOURCE_PREDICT_CALCULATE_CJJX //预测指标 - 超季节性->49
  132. DATA_SOURCE_PREDICT_CALCULATE_NHCC //预测指标 - 计算指标(拟合残差)->50
  133. DATA_SOURCE_CALCULATE_JP //变频->51
  134. DATA_SOURCE_CALCULATE_NH //年化->52
  135. DATA_SOURCE_CALCULATE_KSZS //扩散指数->53
  136. DATA_SOURCE_PREDICT_CALCULATE_JP //预测指标 - 计算指标(降频)->54
  137. DATA_SOURCE_PREDICT_CALCULATE_NH //预测指标 - 计算指标(年化)->55
  138. DATA_SOURCE_PREDICT_CALCULATE_KSZS //预测指标 - 计算指标(扩散指数)->56
  139. DATA_SOURCE_BAIINFO //百川盈孚 ->57
  140. DATA_SOURCE_STOCK_PLANT //存量装置 ->58
  141. DATA_SOURCE_CALCULATE_CORRELATION //滚动相关性->59
  142. DATA_SOURCE_NATIONAL_STATISTICS //国家统计局->60
  143. DATA_SOURCE_CALCULATE_LJZZJ //累计值转季 -> 61
  144. DATA_SOURCE_CALCULATE_LJZ //累计值 -> 62
  145. DATA_SOURCE_CALCULATE_LJZNCZJ //累计值(年初至今) -> 63
  146. DATA_SOURCE_PREDICT_CALCULATE_LJZZJ //预测指标 - 累计值转季->64
  147. DATA_SOURCE_PREDICT_CALCULATE_LJZ //预测指标 - 累计值 -> 65
  148. DATA_SOURCE_PREDICT_CALCULATE_LJZNCZJ //预测指标 - 累计值(年初至今) -> 66
  149. DATA_SOURCE_CALCULATE_STANDARD_DEVIATION //标准差->67
  150. DATA_SOURCE_CALCULATE_PERCENTILE //百分位图表->68
  151. DATA_SOURCE_PREDICT_CALCULATE_STANDARD_DEVIATION //预测标准差->69
  152. DATA_SOURCE_PREDICT_CALCULATE_PERCENTILE //预测百分位->70
  153. DATA_SOURCE_FUBAO //富宝->71
  154. DATA_SOURCE_CALCULATE_ZSXY // 指数修匀->72
  155. DATA_SOURCE_PREDICT_CALCULATE_ZSXY // 预测指数修匀->73
  156. DATA_SOURCE_CALCULATE_ZDYFX // 自定义分析->74
  157. DATA_SOURCE_CALCULATE_RJZ // 日均值计算->75
  158. )
  159. // 数据刷新频率
  160. const (
  161. DATA_START_REFRESH_LIMIT = 7 //7个单位,日/周/月/季度/年
  162. DATA_END_DATE_LIMIT = 4 //数据结束日期为,当前日期,加上4年时间
  163. )
  164. const (
  165. DATA_PREFIX = "hz_data"
  166. CHART_PREFIX = "hz_chart"
  167. EXCEL_DATA_PREFIX = "hz_excel_data"
  168. )
  169. const (
  170. EDB_DATA_LIMIT = 10
  171. )
  172. var Hz_Data_WIND_Url_List = []string{"http://datawind.hzinsights.com:8040/", "http://datawind2.hzinsights.com:8040/"}
  173. const (
  174. HZ_CHART_LIB_DETAIL = "HZ_CHART_LIB_DETAIL_" //图表数据缓存
  175. HZ_CHART_LIB_EXCEL_TABLE_DETAIL = "HZ_CHART_LIB_EXCEL_TABLE_DETAIL" //excel表格数据缓存
  176. )
  177. // 缓存key
  178. const (
  179. CACHE_KEY_LOGS = "HZ_ADMIN_CACHE_KEY_LOGS" //api用户操作日志队列
  180. CACHE_KEY_ADMIN = "calendar:admin:list" //系统用户列表缓存key
  181. CACHE_KEY_ADMIN_ID = "calendar:admin:id:list" //系统用户列表缓存key
  182. CACHE_KEY_OLD_REPORT_PUBLISH = "HZ_CACHE_KEY_OLD_REPORT_PUBLISH" //老后台报告发布队列
  183. CACHE_ADMIN_YB_CONFIG = "admin:yb_config:" //研报配置相关缓存前缀
  184. CACHE_WIND_URL = "CACHE_WIND_URL" //指标与wind服务器的绑定关系
  185. CACHE_CHART_INFO_DATA = "chart:info:data:" //图表数据
  186. CACHE_CHART_CLASSIFY = "chart:classify" //图表分类数据
  187. CACHE_IMPORT_MANUAL_DATA = "import:manual:data" //手工数据导入后刷新
  188. CACHE_ACCESS_TOKEN_LOGIN = "pc_eta_admin:login:" //管理后台登录
  189. CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST = "pc_eta_admin:login:no_trust:" //管理后台登录(不可信登录态)
  190. CACHE_ABNORMAL_LOGIN = "pc_eta_admin:login:abnormal:" //管理后台登录-异常登录
  191. CACHE_LOGIN_ERR_PASS = "pc_eta_admin:login:errPass:" //管理后台登录-输入错误密码次数
  192. CACHE_FIND_PASS_VERIFY = "pc_eta_admin:findPass:verify:" //找回密码校验成功标记
  193. CACHE_KEY_MYSTEEL_REFRESH = "mysteel_chemical:refresh" //钢联化工刷新
  194. CACHE_KEY_DAYNEW_REFRESH = "admin:day_new:refresh" //每日资讯拉取企业微信聊天记录
  195. CACHE_KEY_DAYNEW_TRANSLATE = "admin:day_new:translate" //每日资讯中翻英
  196. CACHE_KEY_ADMIN_OPERATE_RECORD = "HZ_ADMIN_CACHE_ADMIN_OPERATE_RECORD" //系统用户操作日志队列
  197. CACHE_SYNC_ADMIN = "hz_crm_eta:sync_admin" // 同步用户的缓存队列key
  198. CACHE_SYNC_ROLE = "hz_crm_eta:sync_role" // 同步角色的缓存队列key
  199. CACHE_SYNC_DEPARTMENT = "hz_crm_eta:sync_department" // 同步部门的缓存队列key
  200. CACHE_SYNC_GROUP = "hz_crm_eta:sync_group" // 同步分组的缓存队列key
  201. CACHE_SYNC_USER_EN_ROLE = "hz_crm_eta:sync_user_en_role" // 同步用户英文权限角色缓存队列key
  202. CACHE_SMART_REPORT_EDITING = "eta:smart_report:editing:" // 智能研报用户编辑中
  203. CACHE_SMART_REPORT_SEND_MSG = "eta:smart_report:sending:" // 智能研报用户报告推送
  204. CACHE_PPT_EDITING = "eta:ppt:editing:" // PPT用户编辑中
  205. CACHE_EN_PPT_EDITING = "eta:en_ppt:editing:" // 英文PPT用户编辑中
  206. CACHE_CREATE_REPORT_IMGPDF_QUEUE = "eta_report:report_img_pdf_queue" // 生成报告长图PDF队列
  207. CACHE_EDB_TERMINAL_CODE_URL = "edb:terminal_code:edb_code:" // 指标与终端关系的缓存
  208. )
  209. // 模板消息推送类型
  210. const (
  211. TEMPLATE_MSG_REPORT = iota + 1 //日度点评报告推送
  212. )
  213. // 研报类型标识
  214. var (
  215. REPORT_TYPE_DAY = "day"
  216. REPORT_TYPE_WEEK = "week"
  217. REPORT_TYPE_TWO_WEEK = "two_week"
  218. REPORT_TYPE_MONTH = "month"
  219. REPORT_TYPE_OTHER = "other"
  220. )
  221. // GetFiccAdminDepartmentIds 获取ficc管理员的所属部门
  222. func GetFiccAdminDepartmentIds() (idStr string) {
  223. if RunMode == "release" {
  224. idStr = `1,2,4,6`
  225. } else {
  226. idStr = `1,2,6`
  227. }
  228. return
  229. }
  230. const (
  231. ReportFrequencyDay = "日度"
  232. ReportFrequencyWeek = "周度"
  233. ReportFrequencyTwoWeek = "双周度"
  234. ReportFrequencyMonth = "月度"
  235. ReportFrequencyDefault = "不定时"
  236. )
  237. // 图表类型
  238. const (
  239. CHART_SOURCE_DEFAULT = 1
  240. CHART_SOURCE_FUTURE_GOOD = 2
  241. CHART_SOURCE_CORRELATION = 3 // 相关性图表
  242. CHART_SOURCE_ROLLING_CORRELATION = 4 // 滚动相关性图表
  243. CHART_SOURCE_FUTURE_GOOD_PROFIT = 5 // 商品利润曲线
  244. CHART_SOURCE_LINE_EQUATION = 6 // 拟合方程图表
  245. CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION = 7 // 统计特征-标准差图表
  246. CHART_SOURCE_LINE_FEATURE_PERCENTILE = 8 // 统计特征-百分位图表
  247. CHART_SOURCE_LINE_FEATURE_FREQUENCY = 9 // 统计特征-频率分布图表
  248. CHART_SOURCE_CROSS_HEDGING = 10 // 跨品种分析图表
  249. )
  250. // 批量配置图表的位置来源
  251. const (
  252. CHART_MULTIPLE_GRAPH_CURVE = 1 // 曲线图
  253. CHART_MULTIPLE_GRAPH_CORRELATION = 2 // 相关性图
  254. CHART_MULTIPLE_GRAPH_ROLLING_CORRELATION_ONE = 3 // 滚动相关性图1
  255. CHART_MULTIPLE_GRAPH_ROLLING_CORRELATION_TWO = 4 // 滚动相关性图2
  256. CHART_MULTIPLE_GRAPH_LINE_EQUATION_ONE = 5 // 拟合方程-斜率图
  257. CHART_MULTIPLE_GRAPH_LINE_EQUATION_TWO = 6 // 拟合方程-截距图
  258. CHART_MULTIPLE_GRAPH_LINE_EQUATION_THREE = 7 // 拟合方程-相关性图
  259. CHART_MULTIPLE_GRAPH_LINE_FEATURE_STANDARD_DEVIATION = 8 // 统计特征-标准差图表
  260. CHART_MULTIPLE_GRAPH_LINE_FEATURE_PERCENTILE = 9 // 统计特征-百分位图表
  261. CHART_MULTIPLE_GRAPH_LINE_FEATURE_FREQUENCY = 10 // 统计特征-频率分布图表
  262. )
  263. // ETA表格
  264. const (
  265. EXCEL_DEFAULT = 1 // 自定义excel
  266. TIME_TABLE = 2 // 时间序列表格
  267. MIXED_TABLE = 3 // 混合表格
  268. CUSTOM_ANALYSIS_TABLE = 4 // 自定义分析表格
  269. )
  270. // 图表样式类型
  271. const (
  272. CHART_TYPE_CURVE = 1 //曲线图
  273. CHART_TYPE_BAR = 7 //柱形图
  274. CHART_TYPE_SECTION_SCATTER = 10 //截面散点图样式
  275. )
  276. // 指标类型
  277. const (
  278. EDB_INFO_TYPE = 0 //指标类型 0:普通指标
  279. PREDICT_EDB_INFO_TYPE = 1 //指标类型 1:预测指标
  280. )
  281. // FrequencyDaysMap 频度日期的map关系
  282. var FrequencyDaysMap = map[string]int{
  283. "天": 1, "周": 7, "月": 30, "季": 90, "年": 365,
  284. }
  285. const (
  286. AiChatLimit = 50
  287. )
  288. // 系统来源
  289. const (
  290. SOURCE_ETA_FLAG = 2
  291. )
  292. // BusinessCodeSalt 商家编码盐值
  293. const BusinessCodeSalt = "dr7WY0OZgGR7upw1"
  294. // 自用商户号
  295. const (
  296. BusinessCodeSandbox = "E2023080700" // 试用平台
  297. BusinessCodeRelease = "E2023080900" // 生产环境
  298. )
  299. // 验证码
  300. const (
  301. CaptchaCachePrefix = "captcha:lock:eta_" // 验证码缓存Key
  302. VerifyCodeExpireMinute = 15 // 短信/邮箱验证码过期时间-分钟
  303. SmsLoginTplId = "65692" // 【弘则研究】您的验证码是XXX,如非本人操作,请忽略本短信
  304. SmsNewLoginTplId = "254663" // 【弘则研究】您的验证码是XXX,有效期15分钟
  305. )
  306. const CrmEtaAuthorization = "NIi1RbEmH0C2rksXtPGDPBBgRgTZY87Q"
  307. const LoginCacheTime = 60 // 登录缓存时长, 分钟
  308. // 对象存储客户端
  309. const (
  310. STORAGESOURCE_OSS = 1 //阿里云OSS
  311. STORAGESOURCE_MINIO = 2 //MinIo
  312. )
  313. // DIR_MOD 目录创建权限
  314. const DIR_MOD fs.FileMode = 0766 // Unix permission bits
  315. // 子数据来源渠道
  316. const (
  317. DATA_SUB_SOURCE_EDB = iota //经济数据库
  318. DATA_SUB_SOURCE_DATE //日期序列
  319. )
  320. const (
  321. WindDbWsd = "wsd"
  322. ThsDs = "thsds"
  323. )
  324. const (
  325. UserLoginSalt = "MiQM9yusNA9T2uIH" // 用户登录盐值
  326. DesKeySalt = "JMCqSoUrTAmyNNIRb0TtlrPk" // DesKey盐值
  327. )