Forráskód Böngészése

我的客户列表接口

renjiaojiao 3 éve
szülő
commit
23799f960e

+ 6 - 0
src/config.json

@@ -102,5 +102,11 @@
   "tidb": "jianyu:top@123@tcp(192.168.3.109:4000)/convertlabsync?charset=utf8mb4&parseTime=true&loc=Local",
   "lookAllMsg": {
     "87": true
+  },
+  "cusTidbMysql": {
+    "username": "root",
+    "password": "Tidb#20220214",
+    "address": "192.168.3.109:4000",
+    "dbName": "callCenter"
   }
 }

+ 6 - 5
src/config/config.go

@@ -46,11 +46,12 @@ type SysConfig struct {
 		Normal_discount float64 `json:"normal_discount"`
 		Senior_discount float64 `json:"senior_discount"`
 	} `json:"packs_showList"` //在售数据包列表
-	UserIdMap      map[string]string `json:"userIdMap"`
-	Etcd           []string          `json:"etcd"`
-	PushGrpcServer string            `json:"pushGrpcServer"`
-	Tidb           string            `json:"tidb"`
-	LookAllMsg     map[string]bool   `json:"lookAllMsg"`
+	UserIdMap      map[string]string      `json:"userIdMap"`
+	Etcd           []string               `json:"etcd"`
+	PushGrpcServer string                 `json:"pushGrpcServer"`
+	Tidb           string                 `json:"tidb"`
+	LookAllMsg     map[string]bool        `json:"lookAllMsg"`
+	CusTidbMysql   map[string]interface{} `json:"cusTidbMysql"`
 }
 
 var SysConfigs SysConfig

+ 34 - 14
src/customerService/customController.go

@@ -3,6 +3,7 @@ package customerService
 import (
 	"errors"
 	"github.com/baiy/Cadmin-server-go/admin"
+	"github.com/baiy/Cadmin-server-go/system/utils"
 	"github.com/tealeg/xlsx"
 	"io/ioutil"
 	"log"
@@ -11,17 +12,18 @@ import (
 )
 
 type customMsg struct {
-	Id         int    `form:"id"`         //消息id
-	MsgType    int    `form:"msgType"`    //消息类型
-	Title      string `form:"title"`      //标题
-	Content    string `form:"content"`    //内容
-	Link       string `form:"link"`       //链接
-	SendMode   int    `form:"sendMode"`   //发送时效 发送模式  1- 定时 2-实时
-	SendTime   string `form:"sendTime"`   // 发送时间
-	AndroidUrl string `form:"androidUrl"` //安卓连接
-	IosUrl     string `form:"iosUrl"`     //ios连接
-	WeChatUrl  string `form:"weChatUrl"`  //微信连接
-	UserIds    string `form:"userIds"`    //发送用户id
+	Id         int                      `form:"id"`         //消息id
+	MsgType    int                      `form:"msgType"`    //消息类型
+	Title      string                   `form:"title"`      //标题
+	Content    string                   `form:"content"`    //内容
+	Link       string                   `form:"link"`       //链接
+	SendMode   int                      `form:"sendMode"`   //发送时效 发送模式  1- 定时 2-实时
+	SendTime   string                   `form:"sendTime"`   // 发送时间
+	AndroidUrl string                   `form:"androidUrl"` //安卓连接
+	IosUrl     string                   `form:"iosUrl"`     //ios连接
+	WeChatUrl  string                   `form:"weChatUrl"`  //微信连接
+	UserIds    string                   `form:"userIds"`    //发送用户id
+	UserArr    []map[string]interface{} `form:"userArr"`
 }
 
 func CustomSendMsg(context *admin.Context) (interface{}, error) {
@@ -50,14 +52,18 @@ func MyCustomerList(context *admin.Context) (interface{}, error) {
 		UpdateTimeEnd   string `form:"updateTimeEnd"`   //最近更新时间筛选结束时间
 		CompanyName     string `form:"companyName"`     //公司名称
 		Phone           string `form:"phone"`
+		utils.Page
 	})
 	err := context.Form(param)
 	if err != nil {
 		return nil, err
 	}
-	MyCustomerService(param.State, param.UpdateTimeStart, param.UpdateTimeEnd, param.CompanyName, param.Phone)
-
-	return nil, nil
+	adminPhone := context.User.Phone
+	count, data := MyCustomerService(param.State, param.UpdateTimeStart, param.UpdateTimeEnd, param.CompanyName, param.Phone, adminPhone, param.Page.Offset, param.Page.PageSize)
+	return map[string]interface{}{
+		"lists": data,
+		"total": count,
+	}, nil
 }
 
 func SingleAdd(context *admin.Context) (interface{}, error) {
@@ -192,3 +198,17 @@ func ImportUser(context *admin.Context) (interface{}, error) {
 	}
 	return returnRs, nil
 }
+
+// GetUserInfo 消息记录中获取发送用户的信息
+func GetUserInfo(context *admin.Context) (interface{}, error) {
+	param := new(struct {
+		MsgId int `form:"msgId"`
+		utils.Page
+	})
+	err := context.Form(param)
+	if err != nil {
+		return nil, err
+	}
+	userData := FindUserInfo(param.MsgId, param.Page.Offset, param.Page.PageSize)
+	return userData, nil
+}

+ 67 - 21
src/customerService/customService.go

@@ -2,6 +2,7 @@ package customerService
 
 import (
 	"config"
+	"database/sql"
 	"errors"
 	"fmt"
 	"github.com/tealeg/xlsx"
@@ -24,23 +25,38 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
 	}
 	// 更新消息
 	if param.Id != 0 {
+
 		msgLogId = strconv.Itoa(param.Id)
-		ok := util.JysqlDB.Update("message_send_log", map[string]interface{}{"id": param.Id}, map[string]interface{}{
-			"send_usergroup_id":   "",
-			"send_usergroup_name": "",
-			"receive_user_id":     param.UserIds,
-			"msg_type":            param.MsgType,
-			"title":               param.Title,
-			"content":             param.Content,
-			"send_mode":           param.SendMode,
-			"send_time":           param.SendTime,
-			"send_status":         sendStatus,
-			"update_time":         time.Now().Format(qutil.Date_Full_Layout),
-			"link":                param.Link,
-			"isdel":               1,
-			"send_userid":         loginUserId,
+		isOk := util.JysqlDB.ExecTx("更新消息出错", func(tx *sql.Tx) bool {
+			ok1 := util.JysqlDB.Delete("sendmsg_customer_info", map[string]interface{}{"msg_id": param.Id})
+			var fields []string
+			var args []interface{}
+			for _, val := range param.UserArr {
+				for k, v := range val {
+					fields = append(fields, k)
+					args = append(args, v)
+				}
+			}
+			count, _ := util.JysqlDB.InsertBatch("sendmsg_customer_info", fields, args)
+			ok := util.JysqlDB.Update("message_send_log", map[string]interface{}{"id": param.Id}, map[string]interface{}{
+				"send_usergroup_id":   "",
+				"send_usergroup_name": "",
+				"receive_user_id":     param.UserIds,
+				"msg_type":            param.MsgType,
+				"title":               param.Title,
+				"content":             param.Content,
+				"send_mode":           param.SendMode,
+				"send_time":           param.SendTime,
+				"send_status":         sendStatus,
+				"update_time":         time.Now().Format(qutil.Date_Full_Layout),
+				"link":                param.Link,
+				"isdel":               1,
+				"send_userid":         loginUserId,
+			})
+			return ok1 && ok && count > 0
 		})
-		if !ok {
+
+		if !isOk {
 			return 0, errors.New("发送消息出错")
 		}
 		if param.SendMode == 1 {
@@ -84,6 +100,7 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
 			"isdel":       1,
 			"send_userid": loginUserId,
 			"send_name":   loginUserName,
+			"sign":        1,
 		})
 		msgLogId = strconv.FormatInt(msgId, 10)
 		//如果是定时发送
@@ -112,7 +129,7 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
 		orm := util.Tidb.NewSession()
 		err := orm.Begin()
 		if err != nil {
-			log.Println("简历数据库连接出错:", err)
+			log.Println("建立数据库连接出错:", err)
 		}
 		log.Println("--------", sendStatus)
 		userNames := ""
@@ -131,7 +148,6 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
 		}
 		userIdArr := strings.Split(param.UserIds, ",")
 		for _, val := range userIdArr {
-			i++
 			userId := val
 			if config.SysConfigs.UserIdMap[userId] != "" {
 				userId = config.SysConfigs.UserIdMap[userId]
@@ -142,6 +158,7 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
 			} else {
 				projectIdMap.Store(userId, true)
 			}
+			i++
 			userIds += userId + ","
 
 			//查询mongo库用户信息
@@ -206,14 +223,38 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
 	return 0, errors.New("发送消息出错")
 }
 
-func MyCustomerService(state, updateTimeStart, UpdateTimeEnd, CompanyName, Phone string) {
-	sql := "SELECT * FROM message_send_log "
+func MyCustomerService(state, updateTimeStart, updateTimeEnd, companyName, phone, adminPhone string, offSet, pageSize int) (count int64, data *[]map[string]interface{}) {
+	sql := "SELECT * FROM message_send_log where owner = '" + adminPhone + "' "
 	str := ""
-	sqlc := "SELECT COUNt(id) FROM message_send_log "
+	sqlc := "SELECT COUNt(id) FROM message_send_log where owner = '" + adminPhone + "' "
+
 	if state != "" {
-		str += " "
+		str += " and status999 = " + state
+	}
+	if updateTimeStart != "" {
+		str += " and lastUpdateTime >= " + updateTimeStart
+	}
+	if updateTimeEnd != "" {
+		str += " and lastUpdateTime < " + updateTimeEnd
+	}
+	if companyName != "" {
+		str += " and company = " + companyName
+	}
+	if phone != "" {
+		str += " and phone = " + phone
 	}
 	log.Println(sql, sqlc)
+	if str != "" {
+		sql += str + " order by id desc limit " + fmt.Sprint(offSet) + " " + "," + " " + fmt.Sprint(pageSize)
+		sqlc += str
+	}
+	log.Println("sql:", sql)
+	log.Println("sqlc:", sqlc)
+	count = util.CusTiDb.CountBySql(sqlc)
+	if count > 0 {
+		data = util.CusTiDb.SelectBySql(sql)
+	}
+	return count, data
 }
 
 func SaveFile(rdata [][]interface{}, templatePath string, savePath string, saveName string, domainPath string) (url string, err error) {
@@ -257,3 +298,8 @@ func GetUserById(id string) (userData *map[string]interface{}, ok bool) {
 	//log.Println(userData, ok)
 	return userData, ok
 }
+
+func FindUserInfo(msgId int, offSet, pageSize int) *[]map[string]interface{} {
+	users := util.JysqlDB.Find("sendmsg_customer_info", map[string]interface{}{"msg_id": msgId}, "", "createtime desc", offSet, pageSize)
+	return users
+}

+ 5 - 5
src/customerService/newsController.go

@@ -35,7 +35,7 @@ type Message struct {
 	WeChatUrl     string `form:"weChatUrl"`     //微信连接
 }
 
-//查看消息内容
+// MessageDetails 查看消息内容
 func MessageDetails(context *admin.Context) (interface{}, error) {
 	param := new(struct {
 		Id int `form:"id"`
@@ -48,7 +48,7 @@ func MessageDetails(context *admin.Context) (interface{}, error) {
 	return data, err
 }
 
-//删除消息
+// MessageDelete 删除消息
 func MessageDelete(context *admin.Context) (interface{}, error) {
 	param := new(struct {
 		Id string `form:"id"`
@@ -63,7 +63,7 @@ func MessageDelete(context *admin.Context) (interface{}, error) {
 	}, err
 }
 
-//消息列表
+// MessageList 消息列表
 func MessageList(context *admin.Context) (interface{}, error) {
 	param := &MsgListParam{}
 	err := context.Form(param)
@@ -93,7 +93,7 @@ func MessageList(context *admin.Context) (interface{}, error) {
 	}, nil
 }
 
-//保存消息
+// MessageSave 保存消息
 func MessageSave(context *admin.Context) (interface{}, error) {
 	param := &Message{}
 	err := context.Form(param)
@@ -113,7 +113,7 @@ func MessageSave(context *admin.Context) (interface{}, error) {
 	}, err
 }
 
-//获取分组
+// GetGroup 获取分组
 func GetGroup(context *admin.Context) (interface{}, error) {
 	group, err := GetGroupData()
 	if err != nil {

+ 2 - 1
src/customerService/newsService.go

@@ -597,6 +597,7 @@ func SendMsg(param *Message, sendStatus int, loginUserName string, loginUserId i
 			"isdel":       1,
 			"send_userid": loginUserId,
 			"send_name":   loginUserName,
+			"sign":        0,
 		})
 		msgLogId = strconv.FormatInt(msgId, 10)
 		//如果是定时发送
@@ -663,7 +664,6 @@ func SendMsg(param *Message, sendStatus int, loginUserName string, loginUserId i
 			}
 			//log.Println("单条数据:", user.UserId)
 			userId := user.UserId
-			i++
 			if config.SysConfigs.UserIdMap[userId] != "" {
 				userId = config.SysConfigs.UserIdMap[userId]
 			}
@@ -673,6 +673,7 @@ func SendMsg(param *Message, sendStatus int, loginUserName string, loginUserId i
 			} else {
 				projectIdMap.Store(userId, true)
 			}
+			i++
 			userIds += userId + ","
 
 			//查询mongo库用户信息

+ 2 - 0
src/customerService/router.go

@@ -76,6 +76,8 @@ func init() {
 		"Baiy.Cadmin.Message.customSendMsg":          CustomSendMsg,
 		"Baiy.Cadmin.Message.singleAdd":              SingleAdd,
 		"Baiy.Cadmin.Message.importUser":             ImportUser,
+		"Baiy.Cadmin.Message.myCustomerList":         MyCustomerList,
+		"Baiy.Cadmin.Message.getUserInfo":            GetUserInfo,
 	})
 	RegisterDispatch(SalesDispatcher)
 }

+ 11 - 0
src/util/db.go

@@ -21,6 +21,7 @@ import (
 
 var JysqlDB *mysql.Mysql
 var AdminDB *mysql.Mysql
+var CusTiDb *mysql.Mysql
 var CbsDB *mysql.Mysql
 var Tidb *xorm.Engine
 var admindb *sql.DB
@@ -71,6 +72,16 @@ func init() {
 	}
 	CbsDB.Init()
 
+	CusTiDb = &mysql.Mysql{
+		Address:      SysConfigs.CusTidbMysql["address"].(string),
+		UserName:     SysConfigs.CusTidbMysql["username"].(string),
+		PassWord:     SysConfigs.CusTidbMysql["password"].(string),
+		DBName:       SysConfigs.CusTidbMysql["dbName"].(string),
+		MaxOpenConns: util.IntAll(SysConfigs.CusTidbMysql["maxOpenConns"]),
+		MaxIdleConns: util.IntAll(SysConfigs.CusTidbMysql["maxIdleConns"]),
+	}
+	CusTiDb.Init()
+
 	Tidb, err = xorm.NewEngine("mysql", SysConfigs.Tidb)
 	if err != nil {
 		log.Println("初始化tidb数据库失败")