本文整理汇总了Golang中github.com/QLeelulu/goku.MysqlDB.Insert方法的典型用法代码示例。如果您正苦于以下问题:Golang MysqlDB.Insert方法的具体用法?Golang MysqlDB.Insert怎么用?Golang MysqlDB.Insert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/QLeelulu/goku.MysqlDB
的用法示例。
在下文中一共展示了MysqlDB.Insert方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: User_SaveMap
func User_SaveMap(m map[string]interface{}) (sql.Result, error) {
var db *goku.MysqlDB = GetDB()
defer db.Close()
m["email_lower"] = strings.ToLower(m["email"].(string))
r, err := db.Insert("user", m)
return r, err
}
示例2: SaveUserFavorite
//收藏link
func SaveUserFavorite(f map[string]interface{}) error {
var db *goku.MysqlDB = GetDB()
defer db.Close()
_, err := db.Insert("user_favorite_link", f)
return err
}
示例3: linkForUser_AddWithDb
// 减少DB操作
// @t: 推送类型, 1:关注的用户, 2:关注的话题
func linkForUser_AddWithDb(db *goku.MysqlDB, userId, linkId int64, t int) error {
m := map[string]interface{}{
"user_id": userId,
"link_id": linkId,
"create_time": time.Now(),
}
if t == 1 {
m["user_count"] = 1
} else {
m["topic_count"] = 1
}
_, err := db.Insert(LinkForUser_TableName(userId), m)
if err != nil {
if strings.Index(err.Error(), "Duplicate entry") > -1 {
m := map[string]interface{}{}
if t == 1 {
m["user_count"] = 1
} else {
m["topic_count"] = 1
}
_, err = db.Update(LinkForUser_TableName(userId), m, "user_id=? and link_id=?", userId, linkId)
if err != nil {
goku.Logger().Errorln(err.Error())
}
} else {
goku.Logger().Errorln(err.Error())
}
}
return err
}
示例4: Topic_SaveTopics
// 保持topic到数据库,同时建立topic与link的关系表
// 如果topic已经存在,则直接建立与link的关联
// 全部成功则返回true
func Topic_SaveTopics(topics string, linkId int64) bool {
if topics == "" {
return true
}
var db *goku.MysqlDB = GetDB()
defer db.Close()
success := true
topicList := strings.Split(topics, ",")
for _, topic := range topicList {
topicLower := strings.ToLower(topic)
t := new(Topic)
err := db.GetStruct(t, "`name_lower`=?", topic)
if err != nil {
goku.Logger().Logln(topic)
goku.Logger().Errorln(err.Error())
success = false
continue
}
if t.Id < 1 {
t.Name = topic
t.NameLower = topicLower
_, err = db.InsertStruct(t)
if err != nil {
goku.Logger().Errorln(err.Error())
success = false
continue
}
}
if t.Id > 0 && linkId > 0 {
_, err = db.Insert("topic_link", map[string]interface{}{"topic_id": t.Id, "link_id": linkId})
if err != nil {
goku.Logger().Errorln(err.Error())
success = false
} else {
// 成功,更新话题的链接数量统计
Topic_IncCount(db, t.Id, "link_count", 1)
redisClient := GetRedis()
defer redisClient.Quit()
// 加入推送队列
// 格式: pushtype,topicid,linkid,timestamp
qv := fmt.Sprintf("%v,%v,%v,%v", LinkForUser_ByTopic, t.Id, linkId, time.Now().Unix())
_, err = redisClient.Lpush(golink.KEY_LIST_PUSH_TO_USER, qv)
if err != nil {
goku.Logger().Errorln(err.Error())
}
}
}
}
return success
}
示例5: Save
func (ur *UserRecovery) Save() (sql.Result, error) {
var db *goku.MysqlDB = GetDB()
defer db.Close()
m := make(map[string]interface{})
m["user_id"] = ur.UserId
m["token"] = ur.Token
m["active"] = ur.Active
m["create_time"] = ur.CreateTime
m["recovery_time"] = ur.RecoveryTime
r, err := db.Insert("user_recovery", m)
return r, err
}
示例6: Link_SaveMap
// 保存link到数据库,如果成功,则返回link的id
func Link_SaveMap(m map[string]interface{}) int64 {
var db *goku.MysqlDB = GetDB()
defer db.Close()
m["create_time"] = time.Now()
//新增link默认投票1次,显示的时候默认减一
m["vote_up"] = 0 //1
m["reddit_score"] = utils.LinkSortAlgorithm(m["create_time"].(time.Time), int64(0), int64(0))
m["context_md5"] = utils.MD5_16(strings.ToLower(m["context"].(string)))
r, err := db.Insert("link", m)
if err != nil {
goku.Logger().Errorln(err.Error())
return 0
}
var id int64
id, err = r.LastInsertId()
if err != nil {
goku.Logger().Errorln(err.Error())
return 0
}
if id > 0 {
uid := m["user_id"].(int64)
// 更新用户的链接计数
IncCountById(db, "user", uid, "link_count", 1)
// 直接推送给自己,自己必须看到
LinkForUser_Add(uid, id, LinkForUser_ByUser)
// 存入`tui_link_for_handle` 链接处理队列表
db.Query("INSERT ignore INTO tui_link_for_handle(link_id,create_time,user_id,insert_time,data_type) VALUES (?, ?, ?, NOW(), ?)",
id, m["create_time"].(time.Time), uid, 1)
redisClient := GetRedis()
defer redisClient.Quit()
// 加入推送队列
// 格式: pushtype,userid,linkid,timestamp
qv := fmt.Sprintf("%v,%v,%v,%v", LinkForUser_ByUser, uid, id, time.Now().Unix())
_, err = redisClient.Lpush(golink.KEY_LIST_PUSH_TO_USER, qv)
if err != nil {
goku.Logger().Errorln(err.Error())
// return 0
}
}
return id
}
示例7: CommentForUser_Add
// 添加一条推送评论到被评论的用户,
func CommentForUser_Add(userId int64, comment Comment) error {
var db *goku.MysqlDB = GetDB()
defer db.Close()
m := map[string]interface{}{}
m["user_id"] = userId
m["comment_id"] = comment.Id
m["link_id"] = comment.LinkId
m["pcomment_id"] = comment.ParentId
m["create_time"] = comment.CreateTime
_, err := db.Insert(table_CommentForUser, m)
if err != nil {
goku.Logger().Errorln(err.Error())
}
return err
}
示例8: User_Follow
// userId 关注 followId
func User_Follow(userId, followId int64) (bool, error) {
if userId < 1 || followId < 1 {
return false, errors.New("参数错误")
}
if userId == followId {
return false, errors.New("不能关注自己")
}
var db *goku.MysqlDB = GetDB()
defer db.Close()
vals := map[string]interface{}{
"user_id": userId,
"follow_id": followId,
"create_time": time.Now(),
}
r, err := db.Insert("user_follow", vals)
if err != nil {
if strings.Index(err.Error(), "Duplicate entry") > -1 {
return false, errors.New("已经关注该用户")
} else {
goku.Logger().Errorln(err.Error())
return false, err
}
}
var afrow int64
afrow, err = r.RowsAffected()
if err != nil {
goku.Logger().Errorln(err.Error())
return false, err
}
if afrow > 0 {
LinkForUser_FollowUser(userId, followId)
// 更新粉丝数
User_IncCount(db, userId, "friend_count", 1)
// 更新关注数
User_IncCount(db, followId, "follower_count", 1)
// 通知有新粉丝
Remind_Inc(followId, REMIND_FANS)
return true, nil
}
return false, nil
}
示例9: Save
func (u *ThirdPartyUser) Save() (sql.Result, error) {
var db *goku.MysqlDB = GetDB()
defer db.Close()
m := make(map[string]interface{})
m["user_id"] = u.UserId
m["third_party"] = u.ThirdParty
m["third_party_user_id"] = u.ThirdPartyUserId
m["third_party_email"] = u.ThirdPartyEmail
m["access_token"] = u.AccessToken
m["refresh_token"] = u.RefreshToken
m["token_expire_time"] = u.TokenExpireTime
m["create_time"] = u.CreateTime
m["last_active_time"] = u.LastActiveTime
m["avatar_url"] = u.AvatarUrl
m["link"] = u.Link
r, err := db.Insert("third_party_user", m)
return r, err
}
示例10: Topic_Follow
// 用户userId 关注 话题topicId
func Topic_Follow(userId, topicId int64) (bool, error) {
if userId < 1 || topicId < 1 {
return false, errors.New("参数错误")
}
var db *goku.MysqlDB = GetDB()
defer db.Close()
vals := map[string]interface{}{
"user_id": userId,
"topic_id": topicId,
"create_time": time.Now(),
}
r, err := db.Insert("topic_follow", vals)
if err != nil {
if strings.Index(err.Error(), "Duplicate entry") > -1 {
return false, errors.New("已经关注该话题")
} else {
goku.Logger().Errorln(err.Error())
return false, err
}
}
var afrow int64
afrow, err = r.RowsAffected()
if err != nil {
goku.Logger().Errorln(err.Error())
return false, err
}
if afrow > 0 {
// 关注话题成功,将话题的链接推送给用户
LinkForUser_FollowTopic(userId, topicId)
// 更新用户关注话题的数量
User_IncCount(db, userId, "ftopic_count", 1)
// 更新话题的关注用户数
Topic_IncCount(db, topicId, "follower_count", 1)
return true, nil
}
return false, nil
}
示例11: Comment_SaveMap
// 保存评论到数据库,如果成功,则返回comment的id
func Comment_SaveMap(m map[string]interface{}) (int64, error) {
var db *goku.MysqlDB = GetDB()
defer db.Close()
// TODO: 链接评论的链接存不存在?
// 检查父评论是否存在
var pComment *Comment
var err error
if id, ok := m["parent_id"].(int64); ok && id > 0 {
pComment, err = Comment_GetById(id)
if err != nil {
goku.Logger().Errorln(err.Error())
return int64(0), err
}
// 指定了父评论的id但是数据库中没有
if pComment == nil {
return int64(0), errors.New("指定的父评论不存在")
}
}
// 路径相关
if pComment == nil {
m["parent_id"] = 0
m["top_parent_id"] = 0
m["parent_path"] = "/"
m["deep"] = 0
} else {
m["parent_id"] = pComment.Id
if pComment.TopParentId == 0 {
m["top_parent_id"] = pComment.Id
} else {
m["top_parent_id"] = pComment.TopParentId
}
m["parent_path"] = fmt.Sprintf("%v%v/", pComment.ParentPath, pComment.Id)
m["deep"] = pComment.Deep + 1
}
m["status"] = 1
m["create_time"] = time.Now()
//新增comment默认投票1次,显示的时候默认减一
m["vote_up"] = 1
m["reddit_score"] = utils.RedditSortAlgorithm(m["create_time"].(time.Time), int64(1), int64(0))
r, err := db.Insert(Table_Comment, m)
if err != nil {
goku.Logger().Errorln(err.Error())
return 0, err
}
var id int64
id, err = r.LastInsertId()
if err != nil {
goku.Logger().Errorln(err.Error())
return 0, err
}
if id > 0 {
// 更新Link的计数器
IncCountById(db, Table_Link, m["link_id"].(int64), "comment_count", 1)
if pComment != nil {
IncCountById(db, Table_Comment, pComment.Id, "children_count", 1)
} else {
IncCountById(db, Table_Link, m["link_id"].(int64), "comment_root_count", 1)
}
}
return id, nil
}
示例12: Comment_SaveMap
// 保存评论到数据库,如果成功,则返回comment的id
func Comment_SaveMap(m map[string]interface{}) (int64, error) {
var db *goku.MysqlDB = GetDB()
defer db.Close()
var err error
// 评论的链接存不存在?
linkId := m["link_id"].(int64)
link, err := Link_GetById(linkId)
if err != nil {
return 0, err
} else if link.Id < 1 {
return int64(0), errors.New("评论的链接不存在")
}
// 检查父评论是否存在
var pComment *Comment
if id, ok := m["parent_id"].(int64); ok && id > 0 {
pComment, err = Comment_GetById(id)
if err != nil {
goku.Logger().Errorln(err.Error())
return int64(0), err
}
// 指定了父评论的id但是数据库中没有
if pComment == nil {
return int64(0), errors.New("指定的父评论不存在")
}
} else if !ok {
m["parent_id"] = int64(0)
}
// 路径相关
if pComment == nil {
m["parent_id"] = int64(0)
m["top_parent_id"] = int64(0)
m["parent_path"] = "/"
m["deep"] = 0
} else {
m["parent_id"] = pComment.Id
if pComment.TopParentId == 0 {
m["top_parent_id"] = pComment.Id
} else {
m["top_parent_id"] = pComment.TopParentId
}
m["parent_path"] = fmt.Sprintf("%v%v/", pComment.ParentPath, pComment.Id)
m["deep"] = pComment.Deep + 1
}
m["status"] = 1
m["create_time"] = time.Now()
//新增comment默认投票1次,显示的时候默认减一
m["vote_up"] = 1
m["reddit_score"] = utils.RedditSortAlgorithm(m["create_time"].(time.Time), int64(1), int64(0))
r, err := db.Insert(Table_Comment, m)
if err != nil {
goku.Logger().Errorln(err.Error())
return 0, err
}
var id int64
id, err = r.LastInsertId()
if err != nil {
goku.Logger().Errorln(err.Error())
return 0, err
}
if id > 0 {
// 更新Link的计数器
IncCountById(db, Table_Link, linkId, "comment_count", 1)
if pComment != nil {
IncCountById(db, Table_Comment, pComment.Id, "children_count", 1)
} else {
IncCountById(db, Table_Link, linkId, "comment_root_count", 1)
}
// 通知评论用户
userId := m["user_id"].(int64)
toLinkUser := userId != link.UserId
// 如果是回复,则推送给所回复评论的用户
toPcommentUser := (pComment != nil && userId != pComment.UserId && pComment.UserId != link.UserId)
if toLinkUser || toPcommentUser {
comment := Comment{}
comment.Id = id
comment.UserId = userId
comment.LinkId = linkId
comment.ParentId = m["parent_id"].(int64)
comment.CreateTime = m["create_time"].(time.Time)
if toLinkUser {
CommentForUser_Add(link.UserId, comment)
Remind_Inc(link.UserId, REMIND_COMMENT)
}
if toPcommentUser {
CommentForUser_Add(pComment.UserId, comment)
Remind_Inc(pComment.UserId, REMIND_COMMENT)
}
}
}
return id, nil
//.........这里部分代码省略.........
示例13: SaveTodo
func SaveTodo(m map[string]interface{}) (sql.Result, error) {
var db *goku.MysqlDB = GetDB()
defer db.Close()
r, err := db.Insert("todo", m)
return r, err
}