Эх сурвалжийг харах

Merge branch 'cygx_11.3' of http://8.136.199.33:3000/cxzhang/hongze_clpt

xingzai 1 жил өмнө
parent
commit
f094976d6e

+ 89 - 1
controllers/report_selection.go

@@ -131,8 +131,14 @@ func (this *ReportSelectionController) Detail() {
 						br.ErrMsg = "获取信息失败,Err:" + err.Error()
 						return
 					}
-					listSonLog[k2].OverviewArticleId = articleStockMap[v2.SubjectName]
+					//后台如果勾了隐藏那么这里就不展示  V11.3  2023-08-17
+					if listSonLog[k2].IsShowOverviewArticle == 1 {
+						listSonLog[k2].OverviewArticleId = articleStockMap[v2.SubjectName]
+					} else {
+						listSonLog[k2].OverviewArticleId = 0
+					}
 					listSonLog[k2].List = listIndustrial
+					listSonLog[k2].IsShowApplyButton = true
 					if v2.Label != "" {
 						CompanyLabelSlice := strings.Split(v2.Label, "{|}")
 						for _, vCompanyLabel := range CompanyLabelSlice {
@@ -310,3 +316,85 @@ func (this *ReportSelectionController) AddStopTime() {
 	br.Success = true
 	br.Msg = "操作成功"
 }
+
+// @Title 报告精选申请路演
+// @Description 报告精选申请路演
+// @Param	request	body cygx.CygxBannerIdReq true "type json string"
+// @Success 200 Ret=200 提交成功
+// @router /report_selection_log/apply [post]
+func (this *ReportSelectionController) ReportSelectionLogApply() {
+	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
+	}
+	var req models.CygxReportSelectionLogApplyReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	articleId := req.ArticleId
+	subjectName := req.SubjectName
+
+	var condition string
+	var pars []interface{}
+	condition += ` AND  article_id = ? AND subject_name = ? AND user_id = ?  `
+	pars = append(pars, articleId, subjectName, user.UserId)
+	totalApply, err := models.GetCygxReportSelectionLogApplyCount(condition, pars)
+	if err != nil {
+		br.Msg = "申请失败!"
+		br.ErrMsg = "申请失败,Err:" + err.Error()
+		return
+	}
+	if totalApply > 0 {
+		br.Msg = "您已提交过此公司的路演申请,请等待销售与您联系!"
+		return
+	}
+
+	logDetail, err := models.GetCygxReportSelectionLogDetail(articleId, subjectName)
+	if err != nil {
+		br.Msg = "申请失败!"
+		br.ErrMsg = "申请失败,Err:" + err.Error()
+		return
+	}
+
+	item := new(models.CygxReportSelectionLogApply)
+	item.UserId = user.UserId
+	item.CreateTime = time.Now()
+	item.ModifyTime = time.Now()
+	item.Mobile = user.Mobile
+	item.Email = user.Email
+	item.CompanyId = user.CompanyId
+	item.CompanyName = user.CompanyName
+	item.ArticleId = logDetail.ArticleId
+	item.SubjectName = logDetail.SubjectName
+	item.IndustrialSubjectId = logDetail.IndustrialSubjectId
+	item.RegisterPlatform = utils.REGISTER_PLATFORM
+	sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	item.RealName = user.RealName
+	if sellerItem != nil {
+		item.SellerName = sellerItem.RealName
+	}
+	_, err = models.AddCygxReportSelectionLogApply(item)
+	if err != nil {
+		br.Msg = "申请失败"
+		br.ErrMsg = "申请失败,Err:" + err.Error()
+		return
+	}
+	go services.SendCygxReportSelectionLogApplyTemplateMsg(user, logDetail.SubjectName)
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "记录成功"
+}

+ 1 - 0
models/db.go

@@ -81,6 +81,7 @@ func init() {
 		new(CygxActivitySpecialInheritPointsCompany),
 		new(CygxArticleApplyAppointmentExpert),
 		new(CygxBannerYxSurvey),
+		new(CygxReportSelectionLogApply),
 	)
 	// 记录ORM查询日志
 	orm.Debug = true

+ 12 - 12
models/micro_roadshow.go

@@ -242,9 +242,9 @@ func GetMicroRoadShowVideoPageListV8(startSize, pageSize int, condition string,
 			art.chart_permission_id,
 			art.chart_permission_name,
 			"" AS play_seconds,
-			"" AS background_img,
+			v.background_img,
 			"" AS industry_name,
-			"" AS share_img,
+			v.share_img,
 			0 AS industrial_management_id,
 			v.activity_id
 		FROM
@@ -269,9 +269,9 @@ func GetMicroRoadShowVideoPageListV8(startSize, pageSize int, condition string,
 			b.chart_permission_id,
 			b.chart_permission_name,
 			a.voice_play_seconds AS play_seconds,
-			a.img_url AS background_img,
+			a.background_img,
 			"" AS industry_name,
-			"" AS share_img,
+			a.share_img,
 			0 AS industrial_management_id,
 			a.activity_id 
 		FROM
@@ -341,9 +341,9 @@ func CountMicroRoadShowVideoPageList(condition string, pars []interface{}, condi
 			art.chart_permission_id,
 			art.chart_permission_name,
 			"" AS play_seconds,
-			"" AS background_img,
+			v.background_img,
 			"" AS industry_name,
-			"" AS share_img,
+			v.share_img,
 			v.activity_id
 		FROM
 			cygx_activity_video as v
@@ -362,9 +362,9 @@ func CountMicroRoadShowVideoPageList(condition string, pars []interface{}, condi
 			b.chart_permission_id,
 			b.chart_permission_name,
 			a.voice_play_seconds AS play_seconds,
-			a.img_url AS background_img,
+			a.background_img,
 			"" AS industry_name,
-			"" AS share_img,
+			a.share_img,
 			a.activity_id 
 		FROM
 			cygx_activity_voice AS a
@@ -421,10 +421,10 @@ func GetMicroRoadShowVideoPageListIkWord(startSize, pageSize int, condition stri
 			art.chart_permission_id,
 			art.chart_permission_name,
 			"" AS play_seconds,
-			"" AS background_img,
+			v.background_img,
 			"" AS industry_name,
 			0 AS industrial_management_id,
-			"" AS share_img,
+			v.share_img,
 			v.activity_id
 		FROM
 			cygx_activity_video as v
@@ -448,10 +448,10 @@ func GetMicroRoadShowVideoPageListIkWord(startSize, pageSize int, condition stri
 			b.chart_permission_id,
 			b.chart_permission_name,
 			a.voice_play_seconds AS play_seconds,
-			a.img_url AS background_img,
+			a.background_img,
 			"" AS industry_name,
 			0 AS industrial_management_id,
-			"" AS share_img,
+			a.share_img,
 			a.activity_id 
 		FROM
 			cygx_activity_voice AS a

+ 2 - 17
models/report_selection.go

@@ -3,7 +3,6 @@ package models
 import (
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
-	"time"
 )
 
 type CygxReportSelectionRep struct {
@@ -74,11 +73,13 @@ type CygxReportSelectionLogDetail struct {
 	IndustrialManagementId string   `description:"产业Id"`
 	IndustrialSubjectId    int      `description:"标的ID"`
 	SubjectName            string   `description:"标的名称"`
+	IsShowApplyButton      bool     `description:"是否展示申请路由按钮"`
 	IsNew                  bool     `description:"是否展示新标签"`
 	Body                   string   `description:"内容"`
 	CompanyLabel           []string `description:"公司标签"`
 	Label                  string   `description:"公司标签"`
 	OverviewArticleId      int      `description:"综述报告Id"`
+	IsShowOverviewArticle  int      `description:"是否展示综述报告 1展示,0隐藏"`
 	List                   []*IndustriaReportSelection
 }
 type IndustriaReportSelection struct {
@@ -141,22 +142,6 @@ func GetReportSelectionListHome(condition, tbdb string, pars []interface{}, star
 	return
 }
 
-type CygxReportSelectionLog struct {
-	ArticleSunId           int       `description:"子级报告id"`
-	ArticleId              int       `description:"父级报告Id"`
-	ChartPermissionId      int       `description:"行业ID"`
-	PermissionName         string    `description:"行业ID"`
-	CreateTime             time.Time `description:"创建时间"`
-	Body                   string    `description:"内容"`
-	IndustrialSubjectId    int       `description:"标的ID"`
-	IndustrialManagementId string    `description:"产业资源包Id  多个用 , 隔开"`
-	SubjectName            string    `description:"标的名称"`
-	IcoLink                string    `orm:"column(image_url)"description:"图标链接"`
-	CompanyLabel           []string  `description:"公司标签"`
-	Label                  string    `description:"公司标签"`
-	OverviewArticleId      int       `description:"综述报告Id"`
-}
-
 // 列表
 func GetReportSelectionlogListAll(articleId int) (items []*CygxReportSelectionLog, err error) {
 	o := orm.NewOrm()

+ 58 - 0
models/report_selection_log.go

@@ -0,0 +1,58 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxReportSelectionLog struct {
+	ArticleSunId           int       `description:"子级报告id"`
+	ArticleId              int       `description:"父级报告Id"`
+	ChartPermissionId      int       `description:"行业ID"`
+	PermissionName         string    `description:"行业ID"`
+	CreateTime             time.Time `description:"创建时间"`
+	Body                   string    `description:"内容"`
+	IndustrialSubjectId    int       `description:"标的ID"`
+	IndustrialManagementId string    `description:"产业资源包Id  多个用 , 隔开"`
+	SubjectName            string    `description:"标的名称"`
+	IcoLink                string    `orm:"column(image_url)"description:"图标链接"`
+	CompanyLabel           []string  `description:"公司标签"`
+	Label                  string    `description:"公司标签"`
+	OverviewArticleId      int       `description:"综述报告Id"`
+}
+
+type CygxReportSelectionLogResp struct {
+	ArticleSunId           int       `description:"子级报告id"`
+	ArticleId              int       `description:"父级报告Id"`
+	ChartPermissionId      int       `description:"行业ID"`
+	PermissionName         string    `description:"行业ID"`
+	CreateTime             time.Time `description:"创建时间"`
+	Body                   string    `description:"内容"`
+	IndustrialSubjectId    int       `description:"标的ID"`
+	IndustrialManagementId string    `description:"产业资源包Id  多个用 , 隔开"`
+	SubjectName            string    `description:"标的名称"`
+	IcoLink                string    `orm:"column(image_url)"description:"图标链接"`
+	CompanyLabel           []string  `description:"公司标签"`
+	Label                  string    `description:"公司标签"`
+	OverviewArticleId      int       `description:"综述报告Id"`
+}
+
+// 列表
+func GetCygxReportSelectionLog(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxReportSelectionLog, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_report_selection_log as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?  `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+// 通过ID获取详情
+func GetCygxReportSelectionLogDetail(articleId int, subjectName string) (item *CygxReportSelectionLogResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_report_selection_log  WHERE article_id=? AND subject_name = ?  LIMIT 1 `
+	err = o.Raw(sql, articleId, subjectName).QueryRow(&item)
+	return
+}

+ 63 - 0
models/report_selection_log_apply.go

@@ -0,0 +1,63 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxReportSelectionLogApply struct {
+	ReportSelectionLogApplyId int `orm:"column(report_selection_log_apply_id);pk"`
+	UserId                    int
+	CreateTime                time.Time
+	Mobile                    string    `description:"手机号"`
+	Email                     string    `description:"邮箱"`
+	CompanyId                 int       `description:"公司id"`
+	CompanyName               string    `description:"公司名称"`
+	ModifyTime                time.Time `description:"修改时间"`
+	RealName                  string    `description:"用户实际名称"`
+	SellerName                string    `description:"所属销售"`
+	RegisterPlatform          int       `description:"来源 1小程序,2:网页"`
+	ArticleId                 int       `description:"报告Id"`
+	IndustrialSubjectId       int       `description:"标的ID"`
+	SubjectName               string    `description:"标的名称"`
+}
+
+type CygxReportSelectionLogApplyReq struct {
+	ArticleId   int    `description:"报告Id"`
+	SubjectName string `description:"标的ID"`
+}
+
+// 添加信息
+func AddCygxReportSelectionLogApply(item *CygxReportSelectionLogApply) (lastId int64, err error) {
+	o, err := orm.NewOrm().Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+
+	//更新申请数量
+	sql := ` UPDATE cygx_report_selection SET  apply_total= 1 + apply_total WHERE  article_id  = ?`
+	_, err = o.Raw(sql, item.ArticleId).Exec()
+	if err != nil {
+		return
+	}
+	lastId, err = o.Insert(item)
+	return
+}
+
+// 获取数量
+func GetCygxReportSelectionLogApplyCount(condition string, pars []interface{}) (count int, err error) {
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_report_selection_log_apply as art WHERE 1= 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -844,6 +844,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ReportSelectionController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ReportSelectionController"],
+        beego.ControllerComments{
+            Method: "ReportSelectionLogApply",
+            Router: `/report_selection_log/apply`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ResourceController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ResourceController"],
         beego.ControllerComments{
             Method: "Upload",

+ 70 - 0
services/report_selection.go

@@ -0,0 +1,70 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_clpt/models"
+	"hongze/hongze_clpt/utils"
+	"time"
+)
+
+// 重点公司路演申请,给吴昂迪、对口销售
+func SendCygxReportSelectionLogApplyTemplateMsg(user *models.WxUserItem, content string) (err error) {
+	var msg string
+	msg = fmt.Sprint(user, content)
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("SendCygxReportSelectionLogApplyTemplateMsg Err"+msg+err.Error(), 2)
+		}
+	}()
+
+	var mobiles []string
+	//获取权益销售
+	sellerItem, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if e != nil {
+		err = errors.New("GetAdminByRoleName, Err: " + e.Error())
+		return
+	}
+
+	mobiles = append(mobiles, sellerItem.Mobile)
+	mobiles = append(mobiles, "")
+	mobiles = append(mobiles, utils.MobileShenTao, utils.MobileZhangChuanXin, utils.MobileWuAngDi) // 添加沈涛、张传星、吴昂迪手机号
+	openIdList, e := models.GetWxOpenIdByMobileSliceList(mobiles)
+	if e != nil {
+		err = errors.New("GetWxOpenIdByMobileSliceList, Err: " + e.Error())
+		return
+	}
+	if len(openIdList) == 0 {
+		return
+	}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+
+	fmt.Println(openIdArr)
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	keyword1 = fmt.Sprint(user.RealName, "--", user.CompanyName, "(", sellerItem.RealName, ")")
+	if user.Mobile == "" {
+		user.Mobile = user.Email
+	}
+	keyword2 = user.Mobile
+	keyword3 = time.Now().Format(utils.FormatDateTime)
+	keyword4 = fmt.Sprint(content, "(申请路演)")
+	var redirectUrl string
+	sendInfo := new(SendWxTemplate)
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_ADD
+	sendInfo.TemplateId = utils.WxMsgTemplateIdApplyXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
+	return
+}

+ 1 - 0
utils/constants.go

@@ -217,6 +217,7 @@ const (
 	MobileShenTao       = "18767183922" //沈涛手机号
 	MobileZhangChuanXin = "15557270714" // 张传星手机号
 	MobileWangFang      = "18621268829" // 王芳手机号
+	MobileWuAngDi       = "18701809782" // 吴昂迪手机号
 )
 
 const (