|
@@ -5,6 +5,7 @@ import (
|
|
|
"fmt"
|
|
|
"hongze/hongze_yb/models/request"
|
|
|
"hongze/hongze_yb/models/response"
|
|
|
+ "hongze/hongze_yb/models/tables/research_group"
|
|
|
"hongze/hongze_yb/models/tables/user_record"
|
|
|
"hongze/hongze_yb/models/tables/yb_community_question"
|
|
|
"hongze/hongze_yb/models/tables/yb_community_question_audio"
|
|
@@ -18,7 +19,7 @@ import (
|
|
|
)
|
|
|
|
|
|
// GetQuestionList 获取问答列表
|
|
|
-func GetQuestionList(pageIndex, pageSize, onlyMine, chartPermissionId, replyStatus int, userInfo user.UserInfo) (resp []*response.CommunityQuestionItem, err error) {
|
|
|
+func GetQuestionList(pageIndex, pageSize, onlyMine, chartPermissionId, replyStatus, groupId int, userInfo user.UserInfo) (resp []*response.CommunityQuestionItem, err error) {
|
|
|
condition := make(map[string]interface{})
|
|
|
condition["is_deleted ="] = 0
|
|
|
// 用户身份
|
|
@@ -51,6 +52,9 @@ func GetQuestionList(pageIndex, pageSize, onlyMine, chartPermissionId, replyStat
|
|
|
if chartPermissionId > 0 {
|
|
|
condition["chart_permission_id ="] = chartPermissionId
|
|
|
}
|
|
|
+ if groupId > 0 {
|
|
|
+ condition["research_group_second_id ="] = groupId
|
|
|
+ }
|
|
|
// 问题列表
|
|
|
questionList, e := yb_community_question.GetPageListByCondition(condition, pageIndex, pageSize)
|
|
|
if e != nil {
|
|
@@ -99,22 +103,24 @@ func GetQuestionList(pageIndex, pageSize, onlyMine, chartPermissionId, replyStat
|
|
|
avatar = utils.HZ_DEFAULT_AVATAR
|
|
|
}
|
|
|
item := &response.CommunityQuestionItem{
|
|
|
- CommunityQuestionID: v.CommunityQuestionID,
|
|
|
- UserId: v.UserID,
|
|
|
- QuestionContent: v.QuestionContent,
|
|
|
- ReplierRealName: v.ReplierRealName,
|
|
|
- ReplierRank: replierRank,
|
|
|
- ReplierAvatar: avatar,
|
|
|
- ChartPermissionID: v.CommunityQuestionID,
|
|
|
- ChartPermissionName: v.ChartPermissionName,
|
|
|
- IsRead: v.IsRead,
|
|
|
- ReplierIsRead: v.ReplierIsRead,
|
|
|
- ReplyStatus: v.ReplyStatus,
|
|
|
- CreateTime: v.CreateTime.Format(utils.FormatDateTime),
|
|
|
- ReplyTime: v.ReplyTime.Format(utils.FormatDateTime),
|
|
|
- AuthOk: authOk,
|
|
|
- PermissionInfo: permissionInfo,
|
|
|
- AudioList: audios,
|
|
|
+ CommunityQuestionID: v.CommunityQuestionID,
|
|
|
+ UserId: v.UserID,
|
|
|
+ QuestionContent: v.QuestionContent,
|
|
|
+ ReplierRealName: v.ReplierRealName,
|
|
|
+ ReplierRank: replierRank,
|
|
|
+ ReplierAvatar: avatar,
|
|
|
+ ChartPermissionID: v.CommunityQuestionID,
|
|
|
+ ChartPermissionName: v.ChartPermissionName,
|
|
|
+ ResearchGroupSecondId: v.ResearchGroupSecondID,
|
|
|
+ ResearchGroupSecondName: v.ResearchGroupSecondName,
|
|
|
+ IsRead: v.IsRead,
|
|
|
+ ReplierIsRead: v.ReplierIsRead,
|
|
|
+ ReplyStatus: v.ReplyStatus,
|
|
|
+ CreateTime: v.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ ReplyTime: v.ReplyTime.Format(utils.FormatDateTime),
|
|
|
+ AuthOk: authOk,
|
|
|
+ PermissionInfo: permissionInfo,
|
|
|
+ AudioList: audios,
|
|
|
}
|
|
|
if !isResearcher && item.IsRead == 0 && item.UserId == userId {
|
|
|
item.IsTop = 1
|
|
@@ -162,22 +168,24 @@ func GetQuestionDetail(questionId int, userInfo user.UserInfo) (item *response.C
|
|
|
avatar = utils.HZ_DEFAULT_AVATAR
|
|
|
}
|
|
|
item = &response.CommunityQuestionItem{
|
|
|
- CommunityQuestionID: detail.CommunityQuestionID,
|
|
|
- UserId: detail.UserID,
|
|
|
- QuestionContent: detail.QuestionContent,
|
|
|
- ReplierRealName: detail.ReplierRealName,
|
|
|
- ReplierRank: replierRank,
|
|
|
- ReplierAvatar: detail.ReplierAvatar,
|
|
|
- ChartPermissionID: detail.ChartPermissionID,
|
|
|
- ChartPermissionName: detail.ChartPermissionName,
|
|
|
- IsRead: detail.IsRead,
|
|
|
- ReplierIsRead: detail.ReplierIsRead,
|
|
|
- ReplyStatus: detail.ReplyStatus,
|
|
|
- CreateTime: detail.CreateTime.Format(utils.FormatDateTime),
|
|
|
- ReplyTime: detail.ReplyTime.Format(utils.FormatDateTime),
|
|
|
- AuthOk: authOk,
|
|
|
- PermissionInfo: permissionInfo,
|
|
|
- AudioList: audios,
|
|
|
+ CommunityQuestionID: detail.CommunityQuestionID,
|
|
|
+ UserId: detail.UserID,
|
|
|
+ QuestionContent: detail.QuestionContent,
|
|
|
+ ReplierRealName: detail.ReplierRealName,
|
|
|
+ ReplierRank: replierRank,
|
|
|
+ ReplierAvatar: detail.ReplierAvatar,
|
|
|
+ ChartPermissionID: detail.ChartPermissionID,
|
|
|
+ ChartPermissionName: detail.ChartPermissionName,
|
|
|
+ ResearchGroupSecondId: detail.ResearchGroupSecondID,
|
|
|
+ ResearchGroupSecondName: detail.ResearchGroupSecondName,
|
|
|
+ IsRead: detail.IsRead,
|
|
|
+ ReplierIsRead: detail.ReplierIsRead,
|
|
|
+ ReplyStatus: detail.ReplyStatus,
|
|
|
+ CreateTime: detail.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ ReplyTime: detail.ReplyTime.Format(utils.FormatDateTime),
|
|
|
+ AuthOk: authOk,
|
|
|
+ PermissionInfo: permissionInfo,
|
|
|
+ AudioList: audios,
|
|
|
}
|
|
|
errMsg = "获取成功"
|
|
|
return
|
|
@@ -212,21 +220,25 @@ func CreateQuestion(userId int, mobile, realName, content string) (err error) {
|
|
|
}
|
|
|
|
|
|
// ReplyUserQuestion 回复问题
|
|
|
-func ReplyUserQuestion(replierId, questionId int, audios []*request.ReplyReqAudioList) (err error) {
|
|
|
+func ReplyUserQuestion(replierId, questionId int, audios []*request.ReplyReqAudioList) (errMsg string, err error) {
|
|
|
item, e := yb_community_question.GetItemById(questionId)
|
|
|
if e != nil {
|
|
|
+ errMsg = "问答信息有误"
|
|
|
err = errors.New("获取提问信息失败 Err:" + e.Error())
|
|
|
return
|
|
|
}
|
|
|
if item.ReplyStatus < 2 {
|
|
|
+ errMsg = "回复状态有误"
|
|
|
err = errors.New("回复状态有误")
|
|
|
return
|
|
|
}
|
|
|
if item.ReplyStatus == 3 {
|
|
|
+ errMsg = "请勿重复提交"
|
|
|
err = errors.New("问题已回复,请勿重复提交")
|
|
|
return
|
|
|
}
|
|
|
if item.ReplierUserID != replierId {
|
|
|
+ errMsg = "回复人不匹配"
|
|
|
err = errors.New(fmt.Sprintf("回复人与分配人不匹配, 当前回复人ID: %d, 分配的回复人ID: %d", replierId, item.ReplierUserID))
|
|
|
return
|
|
|
}
|
|
@@ -356,3 +368,48 @@ func GetMyQuestionUnread(userInfo user.UserInfo) (total int, err error) {
|
|
|
total = int(num)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// GetResearchGroupTree 获取研究方向分组
|
|
|
+func GetResearchGroupTree() (respList []*response.ResearchGroupItem, err error) {
|
|
|
+ respList = make([]*response.ResearchGroupItem, 0)
|
|
|
+ list, e := research_group.GetResearchGroupList()
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("获取研究方向分组失败, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ listLen := len(list)
|
|
|
+ if listLen == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 分类
|
|
|
+ firstList := make([]*response.ResearchGroupItem, 0)
|
|
|
+ secondList := make([]*response.ResearchGroupItem, 0)
|
|
|
+ for i := 0; i < listLen; i++ {
|
|
|
+ item := new(response.ResearchGroupItem)
|
|
|
+ item.ResearchGroupId = list[i].ResearchGroupID
|
|
|
+ item.ResearchGroupName = list[i].ResearchGroupName
|
|
|
+ item.ParentId = list[i].ParentID
|
|
|
+ item.ChartPermissionId = list[i].ChartPermissionID
|
|
|
+ item.Sort = list[i].Sort
|
|
|
+ if list[i].ParentID == 0 {
|
|
|
+ firstList = append(firstList, item)
|
|
|
+ } else {
|
|
|
+ secondList = append(secondList, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(firstList) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 匹配子分类
|
|
|
+ for _, p := range firstList {
|
|
|
+ children := make([]*response.ResearchGroupItem, 0)
|
|
|
+ for _, child := range secondList {
|
|
|
+ if p.ResearchGroupId == child.ParentId {
|
|
|
+ children = append(children, child)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p.Children = children
|
|
|
+ }
|
|
|
+ respList = firstList
|
|
|
+ return
|
|
|
+}
|