123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- package entity
- import (
- "log"
- "strings"
- "encoding/json"
- "sync"
- util "app.yhyue.com/moapp/jybase/common"
- elastic "app.yhyue.com/moapp/jybase/es"
- "app.yhyue.com/moapp/jybase/mongodb"
- "app.yhyue.com/moapp/jybase/mysql"
- "app.yhyue.com/moapp/jybase/redis"
- "github.com/nsqio/go-nsq"
- "github.com/zeromicro/go-zero/core/logx"
- )
- var (
- JyMysql *mysql.Mysql
- JyDocMysql *mysql.Mysql
- JyBiMysql *mysql.Mysql
- JyTidb *mysql.Mysql
- JyBiTidb *mysql.Mysql
- CallTidb *mysql.Mysql
- BiService *mysql.Mysql
- Mgo *mongodb.MongodbSim
- Bidding *mongodb.MongodbSim
- Es elastic.Es
- EntEs elastic.EsV7
- AreaCode = map[string]string{}
- Hlyj *HlyjS
- DataLock = sync.Mutex{}
- DistributeLock = sync.Mutex{}
- ClueImportLock = sync.Mutex{}
- ClueImportTtLock = sync.Mutex{}
- CodeTrail = map[string]string{
- "00": "无意向客户",
- "01": "商机线索",
- "02": "空号停机",
- "03": "沉睡客户",
- "04": "潜在客户",
- "05": "意向客户",
- "06": "高意向客户",
- "07": "待签署客户",
- "08": "成交客户",
- }
- PublicKey = ""
- )
- type HlyjS struct {
- Appid string
- Account string
- Secret string
- TokenUrl string
- CallFlag int
- CallUrl string
- Integratedid string
- }
- type Handler struct {
- }
- func InitMysql(n, x, y, z, s, m, a *mysql.Mysql) {
- JyMysql = &mysql.Mysql{
- Address: n.Address,
- UserName: n.UserName,
- PassWord: n.PassWord,
- DBName: n.DBName,
- MaxOpenConns: n.MaxOpenConns,
- MaxIdleConns: n.MaxIdleConns,
- }
- JyMysql.Init()
- JyDocMysql = &mysql.Mysql{
- Address: x.Address,
- UserName: x.UserName,
- PassWord: x.PassWord,
- DBName: x.DBName,
- MaxOpenConns: x.MaxOpenConns,
- MaxIdleConns: x.MaxIdleConns,
- }
- JyDocMysql.Init()
- JyBiMysql = &mysql.Mysql{
- Address: y.Address,
- UserName: y.UserName,
- PassWord: y.PassWord,
- DBName: y.DBName,
- MaxOpenConns: y.MaxOpenConns,
- MaxIdleConns: y.MaxIdleConns,
- }
- JyBiMysql.Init()
- JyTidb = &mysql.Mysql{
- Address: z.Address,
- UserName: z.UserName,
- PassWord: z.PassWord,
- DBName: z.DBName,
- MaxOpenConns: z.MaxOpenConns,
- MaxIdleConns: z.MaxIdleConns,
- }
- JyTidb.Init()
- JyBiTidb = &mysql.Mysql{
- Address: s.Address,
- UserName: s.UserName,
- PassWord: s.PassWord,
- DBName: s.DBName,
- MaxOpenConns: s.MaxOpenConns,
- MaxIdleConns: s.MaxIdleConns,
- }
- JyBiTidb.Init()
- CallTidb = &mysql.Mysql{
- Address: m.Address,
- UserName: m.UserName,
- PassWord: m.PassWord,
- DBName: m.DBName,
- MaxOpenConns: m.MaxOpenConns,
- MaxIdleConns: m.MaxIdleConns,
- }
- CallTidb.Init()
- BiService = &mysql.Mysql{
- Address: a.Address,
- UserName: a.UserName,
- PassWord: a.PassWord,
- DBName: a.DBName,
- MaxOpenConns: a.MaxOpenConns,
- MaxIdleConns: a.MaxIdleConns,
- }
- BiService.Init()
- logx.Info("初始化mysql")
- }
- func InitMongo(addr, db string, size int) {
- Mgo = mongodb.NewMgo(addr, db, size)
- }
- func InitBiddingMgo(addr, db, user, pwd string, size int) {
- Bidding = mongodb.NewMgoWithUser(addr, db, user, pwd, size)
- }
- func InitEs(version, address, userName, password string, size int) {
- Es = elastic.NewEs(version, address, size, userName, password)
- }
- func InitEntEs(version, address, userName, password string, size int) {
- EntEs = elastic.EsV7{
- Address: address,
- UserName: userName,
- Password: password,
- Size: size,
- }
- EntEs.Init()
- }
- func InitArea() {
- info := JyBiMysql.Find("d_area_code_back", nil, "", "", -1, -1)
- if info != nil && len(*info) > 0 {
- for _, m := range *info {
- var key string
- for i, v := range []string{"area", "city", "district"} {
- if i == 0 && util.ObjToString(m[v]) != "" {
- key = util.ObjToString(m[v])
- } else if util.ObjToString(m[v]) != "" {
- key += "," + util.ObjToString(m[v])
- }
- }
- AreaCode[key] = util.ObjToString(m["code"])
- }
- }
- log.Println("AreaCodeLen ", len(AreaCode))
- }
- func (h *Handler) HandleMessage(m *nsq.Message) error {
- defer util.Catch()
- if len(m.Body) == 0 {
- log.Println("Nsq接收到空")
- return nil
- }
- var msg *map[string]interface{}
- err := json.Unmarshal(m.Body, &msg)
- if err != nil {
- log.Println(err)
- return err
- }
- entPostionId := util.Int64All((*msg)["entPostionId"])
- userPositionId := util.Int64All((*msg)["userPositionId"])
- entId := util.Int64All((*msg)["entId"])
- entUserName := util.ObjToString((*msg)["entUserName"])
- entName := ""
- log.Println(userPositionId, entPostionId, entId, entUserName, entName)
- if userPositionId == 0 || entPostionId == 0 {
- log.Println("职位id为空")
- return nil
- }
- data := JyMysql.FindOne("entniche_info", map[string]interface{}{"id": entId}, "", "")
- if data != nil && len(*data) > 0 {
- entName = util.ObjToString((*data)["name"])
- }
- ok := JyBiMysql.Update("dwd_f_report_data_baseinfo", map[string]interface{}{"position_id": userPositionId}, map[string]interface{}{"ent_id": entId, "position_type": 1, "user_name": entUserName, "company_name": entName})
- if ok {
- log.Println("个人销售数据同步企业数据成功!!!")
- } else {
- log.Println("个人销售数据同步企业数据失败-----")
- }
- return nil
- }
- // 初始化reidis
- func InitRedis(redisAddr []string) {
- redis.InitRedisBySize(strings.Join(redisAddr, ","), 100, 30, 300)
- }
- func GetHlyj(appid, account, secret, tokenUrl, callUrl, integratedid string, callFlag int) {
- Hlyj = &HlyjS{
- Appid: appid,
- Account: account,
- Secret: secret,
- TokenUrl: tokenUrl,
- CallFlag: callFlag,
- CallUrl: callUrl,
- Integratedid: integratedid,
- }
- }
|