|
@@ -302,41 +302,40 @@ func EtcdSetCountZero(userId, msgType string) {
|
|
|
func MultSave(this message.MultipleSaveMsgReq) (int64, string) {
|
|
|
userIdArr := strings.Split(this.UserIds, ",")
|
|
|
userNameArr := strings.Split(this.UserNames, ",")
|
|
|
- log.Println(len(userIdArr), len(userNameArr))
|
|
|
+ log.Println("参数:", len(userIdArr), len(userNameArr))
|
|
|
if len(userIdArr) > 0 {
|
|
|
var errCount int64
|
|
|
for k, v := range userIdArr {
|
|
|
log.Println("k--------", k, v)
|
|
|
if v == "" {
|
|
|
- return 0, "调用结束"
|
|
|
+ return errCount, "调用结束"
|
|
|
}
|
|
|
userName := userNameArr[k]
|
|
|
//消息数组
|
|
|
+ bT := time.Now()
|
|
|
c := entity.Mysql.Count("conversation", map[string]interface{}{"receive_id": v, "send_id": this.SendUserId})
|
|
|
- log.Println("查询数量:", c)
|
|
|
+ log.Println("count", c)
|
|
|
+ //m := entity.Mysql.SelectBySql("select count(id) from conversation where receive_id=? and send_id=?", v, this.SendUserId)
|
|
|
sql3 := `INSERT INTO message(appid,receive_userid,receive_name,send_userid,send_name,title,content,msg_type,link,cite_id,createtime,isRead,isdel) values ("%s",'%s','%s','%s','%s','%s','%s','%d','%s',0,'%s',0,1);`
|
|
|
sql3 = fmt.Sprintf(sql3, this.Appid, v, userName, this.SendUserId, this.SendName, this.Title, this.Content, this.MsgType, this.Link, time.Now().Format("2006-01-02 15:04:05"))
|
|
|
- if c < 1 {
|
|
|
- sql1 := `INSERT INTO conversation(appid,` + "`key`" + `,user_id,receive_id,receive_name,send_id,send_name,sort,createtime) values ('%s','','%s','%s','%s','%s','%s',0,'%s');`
|
|
|
+ if c <= 0 {
|
|
|
+ sql1 := `INSERT INTO conversation(appid,secret_key,user_id,receive_id,receive_name,send_id,send_name,sort,createtime) values ('%s','','%s','%s','%s','%s','%s',0,'%s');`
|
|
|
sql1 = fmt.Sprintf(sql1, this.Appid, this.SendUserId, v, userName, this.SendUserId, this.SendName, time.Now().Format("2006-01-02 15:04:05"))
|
|
|
ok := entity.Mysql.ExecTx("发送消息事务", func(tx *sql.Tx) bool {
|
|
|
//插入会话表
|
|
|
- bT := time.Now() //开始时间
|
|
|
- _, err := entity.Mysql.DB.Exec(sql1)
|
|
|
- log.Println("**********1", err)
|
|
|
- sql2 := `INSERT INTO conversation(appid,` + "`key`" + `,user_id,receive_id,receive_name,send_id,send_name,sort,createtime) values ('%s','','%s','%s','%s','%s','%s',0,'%s');`
|
|
|
+ //开始时间
|
|
|
+ in1 := entity.Mysql.InsertBySqlByTx(tx, sql1)
|
|
|
+ sql2 := `INSERT INTO conversation(appid,secret_key,user_id,receive_id,receive_name,send_id,send_name,sort,createtime) values ('%s','','%s','%s','%s','%s','%s',0,'%s');`
|
|
|
sql2 = fmt.Sprintf(sql2, this.Appid, v, this.SendUserId, this.SendName, v, userName, time.Now().Format("2006-01-02 15:04:05"))
|
|
|
- _, err = entity.Mysql.DB.Exec(sql2)
|
|
|
- log.Println("**********2", err)
|
|
|
+ in2 := entity.Mysql.InsertBySqlByTx(tx, sql2)
|
|
|
//插入消息表
|
|
|
- _, err = entity.Mysql.DB.Exec(sql3)
|
|
|
- eT := time.Since(bT) // 从开始到当前所消耗的时间
|
|
|
- log.Println("存储耗时:", eT)
|
|
|
- if err != nil {
|
|
|
- return false
|
|
|
- }
|
|
|
- return true
|
|
|
+ in3 := entity.Mysql.InsertBySqlByTx(tx, sql3)
|
|
|
+ log.Println("存储耗时:", time.Since(bT))
|
|
|
+ log.Println(in1, in2, in3)
|
|
|
+
|
|
|
+ return in1 > -1 && in2 > -1 && in3 > -1
|
|
|
})
|
|
|
+ log.Println("执行事务是否成功:", ok)
|
|
|
if !ok {
|
|
|
errCount++
|
|
|
continue
|
|
@@ -344,8 +343,8 @@ func MultSave(this message.MultipleSaveMsgReq) (int64, string) {
|
|
|
go EtcdCountAdd(v, strconv.Itoa(int(this.MsgType)))
|
|
|
|
|
|
} else {
|
|
|
- _, err := entity.Mysql.DB.Exec(sql3)
|
|
|
- if err == nil {
|
|
|
+ in := entity.Mysql.InsertBySql(sql3)
|
|
|
+ if in > -1 {
|
|
|
go EtcdCountAdd(v, strconv.Itoa(int(this.MsgType)))
|
|
|
} else {
|
|
|
errCount++
|