|
@@ -0,0 +1,399 @@
|
|
|
|
+package controllers
|
|
|
|
+
|
|
|
|
+import (
|
|
|
|
+ "encoding/json"
|
|
|
|
+ "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
|
+ "hongze/hongze_cygx/models"
|
|
|
|
+ "hongze/hongze_cygx/services"
|
|
|
|
+ "hongze/hongze_cygx/utils"
|
|
|
|
+ "html"
|
|
|
|
+ "strconv"
|
|
|
|
+ "strings"
|
|
|
|
+ "time"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+type HtgjController struct {
|
|
|
|
+ BaseAuthController
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type BaseHtgjController struct {
|
|
|
|
+ BaseCommonController
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// @Title 首页列表接口(海通国际)
|
|
|
|
+// @Description 首页列表接口(海通国际)
|
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
|
+// @Param ChartPermissionId query int true "品类id,最新传0"
|
|
|
|
+// @Param CompanyCode query string false "机构编号"
|
|
|
|
+// @Param CompanyName query string false "机构名称"
|
|
|
|
+// @Param Email query string false "邮箱"
|
|
|
|
+// @Param Sign query string false "加密签名"
|
|
|
|
+// @Success 200 {object} models.HomeListResp
|
|
|
|
+// @router /home/listPublic [get]
|
|
|
|
+func (this *BaseCommonController) ListHomePublic() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ companyCode := this.GetString("CompanyCode")
|
|
|
|
+ companyName := this.GetString("CompanyName")
|
|
|
|
+ email := this.GetString("Email")
|
|
|
|
+ sign := this.GetString("Sign")
|
|
|
|
+ var userType int
|
|
|
|
+ var err error
|
|
|
|
+ if companyCode != "" && companyName != "" && email != "" {
|
|
|
|
+ errMsg, errHt, wxUser, _ := services.CheckHtgj(companyCode, companyName, email, sign)
|
|
|
|
+ if errHt != nil {
|
|
|
|
+ br.Msg = "获取"
|
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + errHt.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if errMsg != "" {
|
|
|
|
+ br.Msg = errMsg
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ user := wxUser
|
|
|
|
+ if user == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,用户信息为空"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ userType, _, err = services.GetUserType(user.CompanyId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
|
+ chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
|
+
|
|
|
|
+ var startSize int
|
|
|
|
+ if pageSize <= 0 {
|
|
|
|
+ pageSize = utils.PageSize20
|
|
|
|
+ }
|
|
|
|
+ if currentIndex <= 0 {
|
|
|
|
+ currentIndex = 1
|
|
|
|
+ }
|
|
|
|
+ startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
|
+ var condition string
|
|
|
|
+ var pars []interface{}
|
|
|
|
+ var total int
|
|
|
|
+ resp := new(models.HomeListResp)
|
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
|
+ resp.HaveResearch = true
|
|
|
|
+ condition += ` AND is_summary = 1 `
|
|
|
|
+ if chartPermissionId > 0 {
|
|
|
|
+ categoryId, err := models.GetCategoryId(chartPermissionId)
|
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取分类权限信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if userType == 1 && strings.Contains(categoryinfo.PermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
|
|
|
|
+ resp.HaveResearch = false
|
|
|
|
+ resp.Paging = page
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+ br.Data = resp
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
|
+ if categoryId != "" {
|
|
|
|
+ condition += ` AND category_id IN(` + categoryId + `)`
|
|
|
|
+ //condition += ` OR ( category_name LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )`
|
|
|
|
+ } else {
|
|
|
|
+ condition += ` AND category_name LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ //永续客户无法查看研选分类的内容
|
|
|
|
+ if userType == 1 {
|
|
|
|
+ condition += ` AND category_name NOT LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
|
|
|
|
+ }
|
|
|
|
+ total, err = models.GetHomeCount(condition, pars)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.Msg = "获取帖子总数失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
|
+ list, err := models.GetHomeList(condition, pars, startSize, pageSize)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.Msg = "获取帖子数据失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ for k, v := range list {
|
|
|
|
+ item := list[k]
|
|
|
|
+ //如果文章一开始的内容是图片,优先展示第一张图片
|
|
|
|
+ imgurl, _ := services.FixArticleImgUrl(html.UnescapeString(list[k].Body))
|
|
|
|
+ newBody, _ := services.GetReportContentTextSub(item.Body)
|
|
|
|
+ list[k].Body = newBody
|
|
|
|
+ if imgurl != "" {
|
|
|
|
+ list[k].BodyHtml = imgurl
|
|
|
|
+ }
|
|
|
|
+ list[k].PublishDate = utils.StrTimeToTime(item.PublishDate).Format(utils.FormatDateTimeNoSecond) //时间字符串格式转时间格式
|
|
|
|
+ if strings.Contains(item.CategoryName, utils.CHART_PERMISSION_NAME_YANXUAN) {
|
|
|
|
+ list[k].IsResearch = true
|
|
|
|
+ }
|
|
|
|
+ if list[k].ArticleId < utils.SummaryArticleId {
|
|
|
|
+ list[k].HttpUrl = utils.StrategyPlatform + strconv.Itoa(v.ArticleId)
|
|
|
|
+ list[k].IsNeedJump = true
|
|
|
|
+ }
|
|
|
|
+ if item.Pv > 999 {
|
|
|
|
+ list[k].Pv = 999
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ resp.List = list
|
|
|
|
+ resp.Paging = page
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+ br.Data = resp
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// @Title 访谈申请(海通国际)
|
|
|
|
+// @Description 访谈申请(海通国际)
|
|
|
|
+// @Param request body models.ArticleInterviewApplyReq true "type json string"
|
|
|
|
+// @Success 200 {object} models.FontsCollectResp
|
|
|
|
+// @router /interview/apply [post]
|
|
|
|
+func (this *BaseCommonController) InterviewApply() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ var req models.ArticleInterviewApplyReqHtgj
|
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //articleId := req.ArticleId
|
|
|
|
+ companyCode := req.CompanyCode
|
|
|
|
+ companyName := req.CompanyName
|
|
|
|
+ wxuUserName := req.Email
|
|
|
|
+ sign := req.Sign
|
|
|
|
+ if companyCode == "" || companyName == "" || wxuUserName == "" || sign == "" {
|
|
|
|
+ br.Msg = "上传失败"
|
|
|
|
+ br.ErrMsg = "必填参数不能为空"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ companyNameHt := companyCode + "_" + companyName
|
|
|
|
+ errMsg := services.CheckSign(companyCode+companyName+wxuUserName, sign)
|
|
|
|
+ if errMsg != "" {
|
|
|
|
+ br.Msg = errMsg
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ companyInfo, err := models.GetCompanyByThirdName(companyNameHt)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ user, err := models.GetUserByThirdName(companyInfo.CompanyId, wxuUserName)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ uid := user.UserId
|
|
|
|
+
|
|
|
|
+ article, err := models.GetArticleDetailById(req.ArticleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取纪要失败!"
|
|
|
|
+ br.ErrMsg = "获取纪要失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ count, err := models.GetArticleInterviewApplyCount(uid, req.ArticleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取数据失败!"
|
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ resp := new(models.ArticleInterviewApplyResp)
|
|
|
|
+ if count <= 0 {
|
|
|
|
+ item := new(models.CygxInterviewApply)
|
|
|
|
+ item.ArticleId = req.ArticleId
|
|
|
|
+ item.UserId = uid
|
|
|
|
+ item.CompanyId = user.CompanyId
|
|
|
|
+ item.Status = "待邀请"
|
|
|
|
+ item.Sort = 1
|
|
|
|
+ item.ArticleTitle = article.Title
|
|
|
|
+ item.CreateTime = time.Now()
|
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
|
+ item.ArticleIdMd5 = article.ArticleIdMd5
|
|
|
|
+ _, err = models.AddCygxInterviewApply(item)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "申请失败"
|
|
|
|
+ br.ErrMsg = "申请失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "申请成功"
|
|
|
|
+ resp.Status = 1
|
|
|
|
+ //发送模板消息
|
|
|
|
+ if user.CompanyId > 1 {
|
|
|
|
+ mobile := user.Mobile
|
|
|
|
+ if mobile == "" {
|
|
|
|
+ mobile = user.Email
|
|
|
|
+ }
|
|
|
|
+ sellerItem, _ := models.GetSellerByCompanyId(user.CompanyId)
|
|
|
|
+ if sellerItem != nil && sellerItem.AdminId > 0 && user.Mobile != "" {
|
|
|
|
+ openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
|
|
|
|
+ if openIpItem != nil && openIpItem.OpenId != "" {
|
|
|
|
+ go services.SendInterviewApplyTemplateMsg(user.RealName, sellerItem.CompanyName, mobile, article.Title, openIpItem)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ err = models.RemoveArticleInterviewApply(uid, req.ArticleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "取消申请失败"
|
|
|
|
+ br.ErrMsg = "取消申请失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "已取消申请"
|
|
|
|
+ resp.Status = 2
|
|
|
|
+ if user.CompanyId > 1 {
|
|
|
|
+ mobile := user.Mobile
|
|
|
|
+ if mobile == "" {
|
|
|
|
+ mobile = user.Email
|
|
|
|
+ }
|
|
|
|
+ sellerItem, _ := models.GetSellerByCompanyId(user.CompanyId)
|
|
|
|
+ if sellerItem != nil && sellerItem.AdminId > 0 && user.Mobile != "" {
|
|
|
|
+ openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
|
|
|
|
+ if openIpItem != nil && openIpItem.OpenId != "" {
|
|
|
|
+ go services.SendInterviewApplyCancelTemplateMsg(user.RealName, sellerItem.CompanyName, mobile, article.Title, openIpItem)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Data = resp
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// @Title 收藏
|
|
|
|
+// @Description 收藏
|
|
|
|
+// @Param request body models.ArticleCollectReq true "type json string"
|
|
|
|
+// @Success 200 {object} models.FontsCollectResp
|
|
|
|
+// @router /collect [post]
|
|
|
|
+func (this *BaseCommonController) ArticleCollect() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ var req models.ArticleInterviewApplyReqHtgj
|
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ articleId := req.ArticleId
|
|
|
|
+ companyCode := req.CompanyCode
|
|
|
|
+ companyName := req.CompanyName
|
|
|
|
+ wxuUserName := req.Email
|
|
|
|
+ sign := req.Sign
|
|
|
|
+ if companyCode == "" || companyName == "" || wxuUserName == "" || sign == "" {
|
|
|
|
+ br.Msg = "上传失败"
|
|
|
|
+ br.ErrMsg = "必填参数不能为空"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ companyNameHt := companyCode + "_" + companyName
|
|
|
|
+ errMsg := services.CheckSign(companyCode+companyName+wxuUserName, sign)
|
|
|
|
+ if errMsg != "" {
|
|
|
|
+ br.Msg = errMsg
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ companyInfo, err := models.GetCompanyByThirdName(companyNameHt)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ wxuser, err := models.GetUserByThirdName(companyInfo.CompanyId, wxuUserName)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ uid := wxuser.UserId
|
|
|
|
+ user := new(models.WxUserItem)
|
|
|
|
+ user.Mobile = wxuser.Mobile
|
|
|
|
+ user.Email = wxuser.Email
|
|
|
|
+ user.CompanyId = wxuser.CompanyId
|
|
|
|
+ user.RealName = wxuser.RealName
|
|
|
|
+ user.CompanyName = companyInfo.CompanyName
|
|
|
|
+ detail, err := models.GetArticleDetailById(articleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ count, err := models.GetArticleCollectCount(uid, articleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取数据失败!"
|
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ resp := new(models.ArticleCollectResp)
|
|
|
|
+ if count <= 0 {
|
|
|
|
+ item := new(models.CygxArticleCollect)
|
|
|
|
+ item.ArticleId = req.ArticleId
|
|
|
|
+ item.UserId = uid
|
|
|
|
+ item.CreateTime = time.Now()
|
|
|
|
+ item.Mobile = user.Mobile
|
|
|
|
+ item.Email = user.Email
|
|
|
|
+ item.CompanyId = user.CompanyId
|
|
|
|
+ item.CompanyName = user.CompanyName
|
|
|
|
+ item.RealName = user.RealName
|
|
|
|
+ _, err = models.AddCygxArticleCollect(item)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "收藏失败"
|
|
|
|
+ br.ErrMsg = "收藏失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "收藏成功"
|
|
|
|
+ resp.Status = 1
|
|
|
|
+ // 文章收藏消息发送
|
|
|
|
+ go services.ArticleUserRemind(user, detail, 2)
|
|
|
|
+ } else {
|
|
|
|
+ err = models.RemoveArticleCollect(uid, articleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "取消收藏失败"
|
|
|
|
+ br.ErrMsg = "取消收藏失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "已取消收藏"
|
|
|
|
+ resp.Status = 2
|
|
|
|
+ }
|
|
|
|
+ collectTotal, err := models.GetArticleCollectUsersCount(articleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ resp.CollectCount = collectTotal
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Data = resp
|
|
|
|
+}
|