|
@@ -2,6 +2,7 @@ package controllers
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
+ "errors"
|
|
|
"fmt"
|
|
|
"github.com/medivhzhan/weapp/v2"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
@@ -300,13 +301,15 @@ func (this *ReportController) ArticleCategoryList() {
|
|
|
return
|
|
|
}
|
|
|
Newdetail, err := models.GetNewIndustrialUserRecordArticle(industrialManagementId, v.CategoryId)
|
|
|
- if err != nil {
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(Newdetail.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(Newdetail.PublishDate)) {
|
|
|
- list[k].IsRed = true
|
|
|
+ if Newdetail != nil {
|
|
|
+ if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(Newdetail.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(Newdetail.PublishDate)) {
|
|
|
+ list[k].IsRed = true
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -380,6 +383,17 @@ func (this *ReportController) ArticleCategoryList() {
|
|
|
CategoryId: 99999,
|
|
|
MatchTypeName: "时间线",
|
|
|
}
|
|
|
+ timeLineList, err := models.GetTimeLineReportIndustrialList(user.UserId, industrialManagementId, 0, 30)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取帖子数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range timeLineList {
|
|
|
+ if v.Readnum == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishTime)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishTime)) {
|
|
|
+ timeLineItem.IsRed = true
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
list = append([]*models.IndustrialToArticleCategoryRep{&timeLineItem}, list...)
|
|
|
}
|
|
@@ -586,7 +600,7 @@ func (this *ReportController) List() {
|
|
|
return
|
|
|
}
|
|
|
page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
- list, err := models.GetTimeLineReportIndustrialList(industrialManagementId, startSize, pageSize)
|
|
|
+ list, err := models.GetTimeLineReportIndustrialList(user.UserId, industrialManagementId, startSize, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取帖子数据失败,Err:" + err.Error()
|
|
@@ -619,9 +633,9 @@ func (this *ReportController) List() {
|
|
|
//}
|
|
|
|
|
|
for k, v := range list {
|
|
|
- //if v.Readnum == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishDate)) {
|
|
|
- // list[k].IsRed = true
|
|
|
- //}
|
|
|
+ if v.Readnum == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishTime)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishTime)) {
|
|
|
+ list[k].IsRed = true
|
|
|
+ }
|
|
|
if v.VideoUrl != "" {
|
|
|
list[k].IsHaveVideo = true
|
|
|
}
|
|
@@ -2551,7 +2565,7 @@ func (this *ReportController) SearchResource() {
|
|
|
conditionOr += ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + ` AND publish_status = 1 ) `
|
|
|
condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
|
|
|
|
|
|
- listHz, err := models.GetSearchResourceList(condition, 0, 0)
|
|
|
+ listHz, err := models.GetSearchResourceList(user.UserId, condition, 0, 0)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
@@ -2561,7 +2575,7 @@ func (this *ReportController) SearchResource() {
|
|
|
conditionOr = ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + ` AND publish_status = 1 ) `
|
|
|
condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
|
|
|
|
|
|
- listYx, err := models.GetSearchResourceList(condition, 0, 0)
|
|
|
+ listYx, err := models.GetSearchResourceList(user.UserId, condition, 0, 0)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
|
|
@@ -2722,7 +2736,7 @@ func (this *ReportController) SearchReportAndResource() {
|
|
|
conditionOr += ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + ` AND publish_status = 1 ) `
|
|
|
condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
|
|
|
|
|
|
- listHzResource, err := models.GetSearchResourceList(condition, 0, pageSize)
|
|
|
+ listHzResource, err := models.GetSearchResourceList(user.UserId, condition, 0, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
@@ -2732,7 +2746,7 @@ func (this *ReportController) SearchReportAndResource() {
|
|
|
conditionOr = ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + ` AND publish_status = 1 ) `
|
|
|
condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
|
|
|
|
|
|
- listYxResource, err := models.GetSearchResourceList(condition, 0, pageSize)
|
|
|
+ listYxResource, err := models.GetSearchResourceList(user.UserId, condition, 0, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
|
|
@@ -2746,15 +2760,99 @@ func (this *ReportController) SearchReportAndResource() {
|
|
|
return
|
|
|
}
|
|
|
industrialIdArr := make([]int, 0)
|
|
|
+ nowTime := time.Now().Local()
|
|
|
+ threeMonBefore := nowTime.AddDate(0, -3, 0)
|
|
|
+ mapHot := make(map[string]int)
|
|
|
+
|
|
|
+ hotCondition := ` ORDER BY sum_num DESC `
|
|
|
+ listHot, err := models.GetThemeHeatList(user.UserId, hotCondition, 0, 3)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listHot {
|
|
|
+ mapHot[v.IndustryName] = v.IndustrialManagementId
|
|
|
+ }
|
|
|
+ orderSrt := "man.recommended_index DESC,update_time DESC"
|
|
|
for k, v := range listHzResource {
|
|
|
+ // 关联报告发布时间均在3个月内则标记New
|
|
|
+ if v.MinReportTime != "" {
|
|
|
+ t, e := time.Parse(utils.FormatDateTime, v.MinReportTime)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("报告最早发布时间有误,GetindustryVideo " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if t.After(threeMonBefore) {
|
|
|
+ listHzResource[k].IsNew = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //弘则资源包不展示hot标签
|
|
|
+ //if mapHot[v.IndustryName] > 0 {
|
|
|
+ // listHzResource[k].IsHot = true
|
|
|
+ //}
|
|
|
listHzResource[k].Source = 1
|
|
|
if fllowMap[v.IndustrialManagementId] > 0 {
|
|
|
listHzResource[k].IsFollw = true
|
|
|
}
|
|
|
+ industrialIdSlice := make([]int, 0)
|
|
|
+ articleIdArr := make([]int, 0)
|
|
|
+ industrialIdSlice = append(industrialIdSlice, v.IndustrialManagementId)
|
|
|
+ listUpdateTime, err := models.GetNewArticleDetailByIndustrialIds(industrialIdSlice)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listUpdateTime {
|
|
|
+ articleIdArr = append(articleIdArr, v.ArticleId)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapHistroyArticleId := make(map[int]int)
|
|
|
+
|
|
|
+ if user.UserId > 0 {
|
|
|
+ listArticleHistory, e := models.GetUserToArticleHistory(user.UserId, articleIdArr)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("获取产业关联的视频失败,GetindustryVideo " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listArticleHistory {
|
|
|
+ mapHistroyArticleId[v.ArticleId] = v.ArticleId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ condition2 := ` AND man.industry_name LIKE '%` + keyWord + `%' `
|
|
|
+ list, err := models.GetIndustrialManagementAll(uid, condition2, orderSrt, 0, 20)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v2 := range list {
|
|
|
+ if mapHistroyArticleId[v2.ArticleId] == 0 && user.CreatedTime.Before(utils.StrDateToTime(v.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrDateToTime(v.PublishDate)) {
|
|
|
+ listHzResource[k].IsRed = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
industrialIdArr = append(industrialIdArr, v.IndustrialManagementId)
|
|
|
}
|
|
|
|
|
|
for k, v := range listYxResource {
|
|
|
+ // 关联报告发布时间均在3个月内则标记New
|
|
|
+ if v.MinReportTime != "" {
|
|
|
+ t, e := time.Parse(utils.FormatDateTime, v.MinReportTime)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("报告最早发布时间有误,GetindustryVideo " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if t.After(threeMonBefore) {
|
|
|
+ listYxResource[k].IsNew = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if mapHot[v.IndustryName] > 0 {
|
|
|
+ listYxResource[k].IsHot = true
|
|
|
+ }
|
|
|
listYxResource[k].Source = 2
|
|
|
if fllowMap[v.IndustrialManagementId] > 0 {
|
|
|
listYxResource[k].IsFollw = true
|
|
@@ -3103,3 +3201,225 @@ func (this *ReportController) CommentAdd() {
|
|
|
br.Success = true
|
|
|
br.Msg = "提交成功"
|
|
|
}
|
|
|
+
|
|
|
+// @Title 记录用户浏览音频回放接口
|
|
|
+// @Description 记录用户浏览音频回放接口
|
|
|
+// @Param request body models.ArticleIdReq true "type json string"
|
|
|
+// @Success Ret=200 操作成功
|
|
|
+// @router /voiceHistory/add [post]
|
|
|
+func (this *ReportController) ResearchSummaryVoiceHistoryAdd() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ user := this.User
|
|
|
+ if user == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,用户信息为空"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ uid := user.UserId
|
|
|
+ var req models.ArticleIdReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ articleId := req.ArticleId
|
|
|
+ playSeconds := req.PlaySeconds
|
|
|
+ pageRouter := req.PageRouter
|
|
|
+
|
|
|
+ if pageRouter == "本周研究汇总" {
|
|
|
+ articleInfo, errInfo := models.GetCygxResearchSummaryInfoById(articleId)
|
|
|
+ if articleInfo == nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "文章ID错误,不存在articleId:" + strconv.Itoa(articleId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errInfo != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + errInfo.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var sellerName string
|
|
|
+ sellerName, err = models.GetCompanySellerName(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "报名失败!"
|
|
|
+ br.ErrMsg = "获取对应销售失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := models.CygxResearchSummaryVoiceHistory{
|
|
|
+ ArticleId: articleId,
|
|
|
+ UserId: uid,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ Mobile: user.Mobile,
|
|
|
+ Email: user.Email,
|
|
|
+ CompanyId: user.CompanyId,
|
|
|
+ CompanyName: user.CompanyName,
|
|
|
+ RealName: user.RealName,
|
|
|
+ SellerName: sellerName,
|
|
|
+ PlaySeconds: strconv.Itoa(req.PlaySeconds),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ }
|
|
|
+
|
|
|
+ if playSeconds != 0 {
|
|
|
+ lastItem, err := models.GetLastCygxResearchSummaryVoiceHistory(articleId, user.UserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,GetLastCygxResearchSummaryVoiceHistory Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.UpdateLastCygxResearchSummaryVoiceHistory(strconv.Itoa(req.PlaySeconds), lastItem.Id)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "更新失败"
|
|
|
+ br.ErrMsg = "更新失败,UpdateLastCygxResearchSummaryVoiceHistory Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = models.AddCygxResearchSummaryVoiceHistory(&item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.UpdateResearchSummaryVoiceCounts(articleId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "更新失败"
|
|
|
+ br.ErrMsg = "更新失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if pageRouter == "上周纪要汇总" {
|
|
|
+ articleInfo, errInfo := models.GetCygxMinutesSummaryInfoById(articleId)
|
|
|
+ if articleInfo == nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "文章ID错误,不存在articleId:" + strconv.Itoa(articleId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errInfo != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + errInfo.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var sellerName string
|
|
|
+ sellerName, err = models.GetCompanySellerName(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "报名失败!"
|
|
|
+ br.ErrMsg = "获取对应销售失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := models.CygxMinutesSummaryVoiceHistory{
|
|
|
+ ArticleId: articleId,
|
|
|
+ UserId: uid,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ Mobile: user.Mobile,
|
|
|
+ Email: user.Email,
|
|
|
+ CompanyId: user.CompanyId,
|
|
|
+ CompanyName: user.CompanyName,
|
|
|
+ RealName: user.RealName,
|
|
|
+ SellerName: sellerName,
|
|
|
+ PlaySeconds: strconv.Itoa(req.PlaySeconds),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ }
|
|
|
+
|
|
|
+ if playSeconds != 0 {
|
|
|
+ lastItem, err := models.GetLastCygxMinutesSummaryVoiceHistory(articleId, user.UserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,GetLastCygxSummaryVoiceHistory Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.UpdateLastCygxMinutesSummaryVoiceHistory(strconv.Itoa(req.PlaySeconds), lastItem.Id)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "更新失败"
|
|
|
+ br.ErrMsg = "更新失败,UpdateLastCygxSummaryVoiceHistory Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = models.AddCygxMinutesSummaryVoiceHistory(&item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.UpdateMinutesSummaryVoiceCounts(articleId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "更新失败"
|
|
|
+ br.ErrMsg = "更新失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if pageRouter == "报告精选" {
|
|
|
+ articleInfo, errInfo := models.GetCygxReportSelectionInfoById(articleId)
|
|
|
+ if articleInfo == nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "文章ID错误,不存在articleId:" + strconv.Itoa(articleId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errInfo != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + errInfo.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var sellerName string
|
|
|
+ sellerName, err = models.GetCompanySellerName(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "报名失败!"
|
|
|
+ br.ErrMsg = "获取对应销售失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := models.CygxReportSelectionVoiceHistory{
|
|
|
+ ArticleId: articleId,
|
|
|
+ UserId: uid,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ Mobile: user.Mobile,
|
|
|
+ Email: user.Email,
|
|
|
+ CompanyId: user.CompanyId,
|
|
|
+ CompanyName: user.CompanyName,
|
|
|
+ RealName: user.RealName,
|
|
|
+ SellerName: sellerName,
|
|
|
+ PlaySeconds: strconv.Itoa(req.PlaySeconds),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ }
|
|
|
+
|
|
|
+ if playSeconds != 0 {
|
|
|
+ lastItem, err := models.GetLastCygxReportSelectionVoiceHistory(articleId, user.UserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,GetLastCygxSummaryVoiceHistory Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.UpdateLastCygxReportSelectionVoiceHistory(strconv.Itoa(req.PlaySeconds), lastItem.Id)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "更新失败"
|
|
|
+ br.ErrMsg = "更新失败,UpdateLastCygxSummaryVoiceHistory Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = models.AddCygxReportSelectionVoiceHistory(&item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.UpdateReportSelectionVoiceCounts(articleId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "更新失败"
|
|
|
+ br.ErrMsg = "更新失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+ return
|
|
|
+}
|