123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package yb_community_question
- import (
- "hongze/hongze_yb/global"
- "hongze/hongze_yb/models/tables/yb_community_question_audio"
- "time"
- )
- func (item *YbCommunityQuestion) Create() (err error) {
- err = global.DEFAULT_MYSQL.Create(item).Error
- return
- }
- func (item *YbCommunityQuestion) Update(updateCols []string) (err error) {
- err = global.DEFAULT_MYSQL.Model(item).Select(updateCols).Updates(*item).Error
- return
- }
- // GetPageListByCondition 获取问答列表-分页
- func GetPageListByCondition(condition string, pars []interface{}, pageIndex, pageSize int) (list []*YbCommunityQuestion, err error) {
- offset := (pageIndex - 1) * pageSize
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).Where(condition, pars...).Offset(offset).Limit(pageSize).Order("create_time DESC").Scan(&list).Error
- return
- }
- // GetItemById 主键获取问答信息
- func GetItemById(questionId int) (item *YbCommunityQuestion, err error) {
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).
- Where("community_question_id = ? AND is_deleted = 0", questionId).
- First(&item).Error
- return
- }
- // UpdateQuestionAndAudioList 更新问答及音频
- func UpdateQuestionAndAudioList(item *YbCommunityQuestion, updateCols []string, audioList []*yb_community_question_audio.YbCommunityQuestionAudio) (err error) {
- tx := global.DEFAULT_MYSQL.Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- } else {
- tx.Commit()
- }
- }()
- if err = tx.Model(item).Select(updateCols).Updates(*item).Error; err != nil {
- return
- }
- if err = tx.Where("community_question_id = ?", item.CommunityQuestionID).
- Delete(yb_community_question_audio.YbCommunityQuestionAudio{}).Error; err != nil {
- return
- }
- if err = tx.Model(yb_community_question_audio.YbCommunityQuestionAudio{}).
- CreateInBatches(audioList, len(audioList)).Error; err != nil {
- }
- return
- }
- type QuestionListCount struct {
- ReplierUserId uint64 `json:"replier_user_id"`
- UserId uint64 `json:"user_id"`
- ReplyStatus int `json:"reply_status"`
- Total int `json:"total"`
- }
- // GetQuestionListCount 获取问答数量统计
- func GetQuestionListCount(condition string, pars []interface{}) (list []*QuestionListCount, err error) {
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).
- Select("reply_status, replier_user_id, user_id, COUNT(1) total").
- Where(condition, pars...).
- Group("reply_status, replier_user_id, user_id").
- Scan(&list).Error
- return
- }
- // GetUnreadNum 获取未读数
- func GetUnreadNum(condition string, pars []interface{}) (num int64, err error) {
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).Where(condition, pars...).Count(&num).Error
- return
- }
- // UpdateReplierRead 更新回复人已读
- func UpdateReplierRead(replierUserId int, questionIds []int) (err error) {
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).
- Where("replier_user_id = ? AND community_question_id IN (?) AND replier_is_read=0", replierUserId, questionIds).
- Updates(YbCommunityQuestion{
- ReplierIsRead: 1,
- ModifyTime: time.Now().Local(),
- }).Error
- return
- }
- // UpdateUserRead 更新用户已读
- func UpdateUserRead(userId int, questionIds []int) (err error) {
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).
- Where("user_id = ? AND community_question_id IN (?) AND is_read=0", userId, questionIds).
- Updates(YbCommunityQuestion{
- IsRead: 1,
- ModifyTime: time.Now().Local(),
- }).Error
- return
- }
|