12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package yb_community_question
- import (
- "errors"
- "hongze/hongze_yb/global"
- "hongze/hongze_yb/models/tables/yb_community_question_audio"
- "hongze/hongze_yb/utils"
- )
- 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
- }
- func GetPageListByCondition(where map[string]interface{}, pageIndex, pageSize int) (list []*YbCommunityQuestion, err error) {
- cond, vals, e := utils.WhereBuild(where)
- if e != nil {
- err = errors.New("系统异常,生成查询语句失败")
- return
- }
- offset := (pageIndex - 1) * pageSize
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).Where(cond, vals...).Offset(offset).Limit(pageSize).Order("reply_time DESC").Scan(&list).Error
- return
- }
- func GetWaitingReplyNum(replierId int) (num int64, err error) {
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).
- Where("replier_user_id =", replierId).
- Count(&num).Error
- return
- }
- 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
- }
- 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 ReplierQuestionCount struct {
- ReplyStatus int `json:"reply_status"`
- Total int `json:"total"`
- }
- func GetReplierQuestionCount(replierUserId int) (list []*ReplierQuestionCount, err error) {
- err = global.DEFAULT_MYSQL.Model(YbCommunityQuestion{}).
- Select("reply_status, COUNT(1) total").
- Where("replier_user_id = ? AND is_deleted = 0", replierUserId).
- Group("reply_status").
- Scan(&list).Error
- return
- }
|