tools.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package main
  2. import (
  3. "reflect"
  4. "strings"
  5. )
  6. // getStr 根据 buyerclass 转换成行业
  7. func getStr(b string) string {
  8. if b == "" {
  9. return "其它"
  10. }
  11. a1 := "(交通|运输物流|工信|农业|住建|城管|市政|出版广电|检察院|科技|民政|生态环境|市场监管|水利|应急管理|自然资源|财政|档案|党委办|组织|发改|宣传|政府办|政务中心|人大|政协|法院|公安|国资委|海关|机关事务|纪委|军队|人社|商务|审计税务|司法|体育|统计|统战|文旅|民宗|银保监|证监|气象|社会团体|公共资源交易)"
  12. a2 := "(卫健委|医疗)"
  13. a3 := "(教育|学校)"
  14. a4 := "(人行|金融业)"
  15. a5 := "(信息技术|电信行业|农林牧渔|建筑业|传媒|制造业|住宿餐饮|采矿业|能源化工|批发零售)"
  16. if strings.Contains(a1, b) {
  17. return "政府机构"
  18. } else if strings.Contains(a2, b) {
  19. return "医疗单位"
  20. } else if strings.Contains(a3, b) {
  21. return "教育单位"
  22. } else if strings.Contains(a4, b) {
  23. return "金融企业"
  24. } else if strings.Contains(a5, b) {
  25. return "商业公司"
  26. } else {
  27. return "其它"
  28. }
  29. }
  30. // structToMap 结构体转map
  31. func structToMap(obj interface{}) map[string]interface{} {
  32. result := make(map[string]interface{})
  33. v := reflect.ValueOf(obj)
  34. t := reflect.TypeOf(obj)
  35. // Ensure the input is a struct
  36. if t.Kind() == reflect.Ptr {
  37. t = t.Elem()
  38. v = v.Elem()
  39. }
  40. if t.Kind() != reflect.Struct {
  41. return nil
  42. }
  43. for i := 0; i < t.NumField(); i++ {
  44. field := t.Field(i)
  45. value := v.Field(i)
  46. // Use the JSON tag if available
  47. tag := field.Tag.Get("json")
  48. if tag == "" {
  49. tag = field.Name
  50. }
  51. result[tag] = value.Interface()
  52. }
  53. return result
  54. }