network.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package common
  2. import (
  3. "context"
  4. "fmt"
  5. "strings"
  6. . "app.yhyue.com/moapp/jybase/common"
  7. "github.com/zeromicro/go-zero/core/logx"
  8. )
  9. //人脉通公用方法
  10. var NetworkCom = &networkCom{}
  11. type networkCom struct{}
  12. //根据标签类型获取标签占位
  13. func (n *networkCom) GetEntTagSeat(labelType int) []string {
  14. rows, err := ClickhouseConn.Query(context.Background(), `select bitmap_num from information.ent_label where label_type=?`, labelType)
  15. if err != nil {
  16. logx.Error(err)
  17. return nil
  18. }
  19. array := []string{}
  20. for rows.Next() {
  21. var (
  22. bitmap_num int8
  23. )
  24. if err := rows.Scan(&bitmap_num); err != nil {
  25. logx.Error(err)
  26. continue
  27. }
  28. array = append(array, fmt.Sprint(bitmap_num))
  29. }
  30. rows.Close()
  31. if err := rows.Err(); err != nil {
  32. logx.Error(err)
  33. }
  34. return array
  35. }
  36. //获取我的业态
  37. func (n *networkCom) GetMyProbusfor(entAccoutId int64) []string {
  38. datas := CrmMysql.SelectBySql(`select probusfor from crm.config_tenant where account_id=?`, entAccoutId)
  39. if datas == nil || len(*datas) == 0 {
  40. return nil
  41. }
  42. probusfor := ObjToString((*datas)[0]["probusfor"])
  43. if probusfor == "" {
  44. return nil
  45. }
  46. return strings.Split(probusfor, ",")
  47. }
  48. //获取总数封装
  49. func (n *networkCom) Count(query string, args ...interface{}) int64 {
  50. row := ClickhouseConn.QueryRow(context.Background(), query, args...)
  51. var count uint64
  52. if err := row.Scan(&count); err != nil {
  53. logx.Error(err)
  54. return 0
  55. }
  56. return int64(count)
  57. }
  58. //获取我监控的企业
  59. func (n *networkCom) EntMonitor(userId string) map[string]bool {
  60. m := map[string]bool{}
  61. list, _ := Mgo.Find("follow_customer", map[string]interface{}{"userId": userId}, nil, `{"_id":0,"name":1}`, false, -1, -1)
  62. if list == nil {
  63. return m
  64. }
  65. for _, v := range *list {
  66. name, _ := v["name"].(string)
  67. m[name] = true
  68. }
  69. return m
  70. }
  71. //获取问号占位符数量及对应的参数值
  72. func (n *networkCom) WhArgs(args []string) (string, []interface{}) {
  73. newArgs := make([]interface{}, len(args))
  74. wh := make([]string, len(args))
  75. for k, v := range args {
  76. newArgs[k] = v
  77. wh[k] = "?"
  78. }
  79. return strings.Join(wh, ","), newArgs
  80. }