瀏覽代碼

Merge branch 'cygx/cygx_12.4' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

xingzai 1 年之前
父節點
當前提交
3b4e82d471

+ 327 - 0
controllers/cygx/askserie_video.go

@@ -0,0 +1,327 @@
+package cygx
+
+import (
+	"encoding/json"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"hongze/hz_crm_api/controllers"
+	"hongze/hz_crm_api/models"
+	"hongze/hz_crm_api/models/cygx"
+	cygxService "hongze/hz_crm_api/services/cygx"
+	"hongze/hz_crm_api/utils"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// 系列问答视频
+type AskserieVideoController struct {
+	controllers.BaseAuthController
+}
+
+// @Title 新增
+// @Description 新增系列问答接口
+// @Param	request	body cygx.AddProductInteriorReq true "type json string"
+// @Success 200 {object} "保存成功"
+// @router /askserie_video/preserveAndEdit [post]
+func (this *AskserieVideoController) PreserveAndPublish() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req cygx.AddAskserieVideoReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	askserieVideoId := req.AskserieVideoId
+	videoName := req.VideoName
+	videoUrl := req.VideoUrl
+	videoDuration := req.VideoDuration
+	chartPermissionId := req.ChartPermissionId
+	chartPermissionName := req.ChartPermissionName
+	industrialManagementIds := req.IndustrialManagementIds
+	backgroundImg := req.BackgroundImg
+	shareImg := req.ShareImg
+	// 产业ID校验
+	if industrialManagementIds != "" {
+		industrialManagementIdList := strings.Split(industrialManagementIds, ",")
+		for _, v := range industrialManagementIdList {
+			_, err := strconv.Atoi(v)
+			if err != nil {
+				br.Msg = "参数解析异常!"
+				br.ErrMsg = "产业ID不规范,Err:" + err.Error() + industrialManagementIds
+				return
+			}
+		}
+	}
+
+	item := new(cygx.CygxAskserieVideo)
+	item.AskserieVideoId = askserieVideoId
+	item.VideoName = videoName
+	item.VideoUrl = videoUrl
+	item.VideoDuration = videoDuration
+	item.ChartPermissionId = chartPermissionId
+	item.ChartPermissionName = chartPermissionName
+	item.PublishStatus = 1
+	item.BackgroundImg = backgroundImg
+	item.ShareImg = shareImg
+	item.AdminId = sysUser.AdminId
+	item.ModifyDate = time.Now()
+	item.PublishDate = time.Now()
+	item.CreateTime = time.Now()
+
+	if askserieVideoId == 0 {
+		//新增
+		err = cygx.AddCygxAskserieVideo(item, industrialManagementIds)
+	} else {
+		//更新
+		_, err := cygx.GetCygxAskserieVideoDetail(askserieVideoId)
+		if err != nil {
+			br.Msg = "详情不存在"
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
+		}
+		err = cygx.UpdateCygxAskserieVideo(item, industrialManagementIds)
+	}
+	if err != nil {
+		br.Msg = "保存失败"
+		br.ErrMsg = "保存失败,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.IsAddLog = true
+	br.Msg = "操作成功"
+}
+
+// @Title 列表
+// @Description 列表接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Param   StartDate   query   string  false       "开始时间 ,列如2021-03-06 "
+// @Param   EndDate   query   string  false       "结束时间,列如2021-03-06 "
+// @Param   PublishStatus   query   int  true       "发布状态: -1-默认全部; 0-未发布; 1-已关注"
+// @Param   ChartPermissionId   query   string  false       "行业Id"
+// @Success Ret=200 {object} cygx.GetCygxTacticsTimeLineResp
+// @router /askserie_video/list [get]
+func (this *AskserieVideoController) List() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	resp := new(cygx.GetCygxAskserieVideoRespListResp)
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	publishStatus, _ := this.GetInt("PublishStatus", -1)
+	startDate := this.GetString("StartDate")
+	endDate := this.GetString("EndDate")
+	chartPermissionId, _ := this.GetInt("ChartPermissionId")
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+	var condition string
+	var pars []interface{}
+	//发布状态查询
+	if publishStatus == 0 || publishStatus == 1 {
+		condition += ` AND art.publish_status = ? `
+		pars = append(pars, publishStatus)
+	}
+	//起始日期查询
+	if startDate != "" && endDate != "" {
+		condition += ` 	AND art.publish_time  BETWEEN ?   AND  ? `
+		pars = append(pars, startDate, endDate)
+	}
+	//行业查询
+	if chartPermissionId > 0 {
+		condition += ` 	AND art.chart_permission_id = ?`
+		pars = append(pars, chartPermissionId)
+	}
+	total, err := cygx.GetCygxAskserieVideoCount(condition, pars)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	condition += "	ORDER BY art.modify_date DESC  "
+	list, err := cygx.GetCygxAskserieVideoList(condition, pars, startSize, pageSize)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	var askserieVideoIds []int
+	for _, v := range list {
+		askserieVideoIds = append(askserieVideoIds, v.AskserieVideoId)
+	}
+
+	mapLabel := cygxService.GetCygxAskserieVideoLabelMap(askserieVideoIds) // 标签
+	for _, v := range list {
+		v.IndustryName = mapLabel[v.AskserieVideoId]
+	}
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	resp.List = list
+	resp.Paging = page
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
+// @Title  详情
+// @Description 获取详情接口
+// @Param   AskserieVideoId   query   int  true       "ID"
+// @Success Ret=200 {object} cygx.GetCygxProductInteriorDetailResp
+// @router /askserie_video/detail [get]
+func (this *AskserieVideoController) Detail() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	AdminUser := this.SysUser
+	if AdminUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	resp := new(cygx.GetCygxAskserieVideoDetailResp)
+	askserieVideoId, _ := this.GetInt("AskserieVideoId")
+	if askserieVideoId < 1 {
+		br.Msg = "请输入详情ID"
+		return
+	}
+	detail, err := cygx.GetCygxAskserieVideoDetail(askserieVideoId)
+	if err != nil {
+		br.Msg = "详情不存在"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+
+	//产业标签
+	industrialListMap := cygxService.GetCygxAskserieVideoLabelListMap([]int{askserieVideoId})
+	detail.ListIndustrial = industrialListMap[askserieVideoId]
+	resp.Detail = detail
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
+// @Title  播放记录详情
+// @Description 播放记录详情接口
+// @Param   AskserieVideoId   query   int  true       "ID"
+// @Success Ret=200 {object} cygx.GetCygxProductInteriorDetailResp
+// @router /askserie_video/history_list [get]
+func (this *AskserieVideoController) HistoryList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	AdminUser := this.SysUser
+	if AdminUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	resp := new(cygx.CygxCygxAskserieVideoHistoryRecordListResp)
+	askserieVideoId, _ := this.GetInt("AskserieVideoId")
+	if askserieVideoId < 1 {
+		br.Msg = "请输入详情ID"
+		return
+	}
+	_, err := cygx.GetCygxAskserieVideoDetail(askserieVideoId)
+	if err != nil {
+		br.Msg = "详情不存在"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	var condition string
+	var pars []interface{}
+	condition = ` AND askserie_video_id = ?  ORDER BY id DESC  `
+	pars = append(pars, askserieVideoId)
+	list, err := cygx.GetCygxAskserieVideoHistoryRecordList(condition, pars)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	resp.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
+// @Title  留言记录详情
+// @Description 留言记录详情接口
+// @Param   AskserieVideoId   query   int  true       "ID"
+// @Success Ret=200 {object} cygx.GetCygxProductInteriorDetailResp
+// @router /askserie_video/collection_list [get]
+func (this *AskserieVideoController) CollectionList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	AdminUser := this.SysUser
+	if AdminUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	resp := new(cygx.CygxAskserieVideoCollectionListResp)
+	askserieVideoId, _ := this.GetInt("AskserieVideoId")
+	if askserieVideoId < 1 {
+		br.Msg = "请输入详情ID"
+		return
+	}
+	_, err := cygx.GetCygxAskserieVideoDetail(askserieVideoId)
+	if err != nil {
+		br.Msg = "详情不存在"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	var condition string
+	var pars []interface{}
+	condition = ` AND askserie_video_id = ?  ORDER BY id DESC  `
+	pars = append(pars, askserieVideoId)
+	list, err := cygx.GetCygxAskserieVideoCollectionList(condition, pars)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	resp.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 195 - 0
models/cygx/askserie_video.go

@@ -0,0 +1,195 @@
+package cygx
+
+import (
+	//"github.com/beego/beego/v2/client/orm"
+	//"github.com/rdlucklib/rdluck_tools/paging"
+	//"strconv"
+	//"strings"
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"strconv"
+	"strings"
+	"time"
+)
+
+type CygxAskserieVideo struct {
+	AskserieVideoId     int       `orm:"column(askserie_video_id);pk"description:"视频id"`
+	VideoName           string    `description:"视频标题"`
+	VideoUrl            string    `description:"视频地址"`
+	VideoDuration       string    `description:"视频时长"`
+	ChartPermissionId   int       `description:"行业ID"`
+	ChartPermissionName string    `description:"行业名称"`
+	PublishStatus       int       `description:"发布状态 1发布 0没有"`
+	VideoCounts         int       `description:"播放量"`
+	BackgroundImg       string    `description:"封面图片"`
+	ShareImg            string    `description:"分享图片"`
+	AdminId             int       `description:"管理员、销售ID"`
+	ModifyDate          time.Time `description:"更新时间"`
+	PublishDate         time.Time `description:"发布时间"`
+	CreateTime          time.Time `description:"创建时间"`
+}
+
+type AddAskserieVideoReq struct {
+	AskserieVideoId         int    `description:"askserie_video_id"`
+	VideoName               string `description:"视频标题"`
+	VideoUrl                string `description:"视频地址"`
+	VideoDuration           string `description:"视频时长"`
+	ChartPermissionId       int    `description:"行业ID"`
+	ChartPermissionName     string `description:"行业名称"`
+	IndustrialManagementIds string `description:"产业id 多个用 , 隔开"`
+	BackgroundImg           string `description:"封面图片"`
+	ShareImg                string `description:"分享图片"`
+}
+
+type CygxAskserieVideoResp struct {
+	AskserieVideoId     int    `orm:"column(askserie_video_id);pk"description:"视频id"`
+	VideoName           string `description:"视频标题"`
+	VideoUrl            string `description:"视频地址"`
+	VideoDuration       string `description:"视频时长"`
+	ChartPermissionId   int    `description:"行业ID"`
+	ChartPermissionName string `description:"行业名称"`
+	PublishStatus       int    `description:"发布状态 1发布 0没有"`
+	VideoCounts         int    `description:"播放量"`
+	CommentNum          int    `description:"留言总数"`
+	BackgroundImg       string `description:"封面图片"`
+	ShareImg            string `description:"分享图片"`
+	AdminId             int    `description:"管理员、销售ID"`
+	IndustryName        string `description:"产业名称"`
+	ModifyDate          string `description:"更新时间"`
+	PublishDate         string `description:"发布时间"`
+	CreateTime          string `description:"创建时间"`
+	ListIndustrial      []*IndustrialActivityGroupManagementRep
+}
+
+type GetCygxAskserieVideoDetailResp struct {
+	Detail *CygxAskserieVideoResp
+}
+
+// 通过ID获取详情
+func GetCygxAskserieVideoDetail(askserieVideoId int) (item *CygxAskserieVideoResp, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_askserie_video  WHERE askserie_video_id=? `
+	err = o.Raw(sql, askserieVideoId).QueryRow(&item)
+	return
+}
+
+// 添加
+func AddCygxAskserieVideo(item *CygxAskserieVideo, industrialManagementIds string) (err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+	newId, err := to.Insert(item)
+	if err != nil {
+		return
+	}
+	//添加与产业的关联
+	//new(cygx.CygxIndustrialAskserieVideoGroupManagement),
+	industrialManagementIdList := strings.Split(industrialManagementIds, ",")
+	for _, v := range industrialManagementIdList {
+		itemIndustrialManagementGroup := new(CygxIndustrialAskserieVideoGroupManagement)
+		newIndustrialId, _ := strconv.Atoi(v)
+		itemIndustrialManagementGroup.CreateTime = time.Now()
+		itemIndustrialManagementGroup.AskserieVideoId = int(newId)
+		itemIndustrialManagementGroup.IndustrialManagementId = newIndustrialId
+		_, err = to.Insert(itemIndustrialManagementGroup)
+		if err != nil {
+			return
+		}
+	}
+	return
+}
+
+// 修改
+func UpdateCygxAskserieVideo(item *CygxAskserieVideo, industrialManagementIds string) (err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+
+	updateParams := make(map[string]interface{})
+	updateParams["VideoName"] = item.VideoName
+	updateParams["VideoUrl"] = item.VideoUrl
+	updateParams["VideoDuration"] = item.VideoDuration
+	updateParams["ChartPermissionId"] = item.ChartPermissionId
+	updateParams["ChartPermissionName"] = item.ChartPermissionName
+	updateParams["BackgroundImg"] = item.BackgroundImg
+	updateParams["ShareImg"] = item.ShareImg
+	updateParams["ModifyDate"] = time.Now()
+	ptrStructOrTableName := "cygx_askserie_video"
+	whereParam := map[string]interface{}{"askserie_video_id": item.AskserieVideoId}
+	qs := to.QueryTable(ptrStructOrTableName)
+	for expr, exprV := range whereParam {
+		qs = qs.Filter(expr, exprV)
+	}
+	_, err = qs.Update(updateParams)
+	if err != nil {
+		return
+	}
+
+	//删除关联产业 (避免截断表时产生的脏数据,故不用update而是先删除再增加)
+	sql := `	DELETE FROM cygx_industrial_askserie_video_group_management WHERE askserie_video_id = ?`
+	_, err = to.Raw(sql, item.AskserieVideoId).Exec()
+	if err != nil {
+		return
+	}
+
+	industrialManagementIdList := strings.Split(industrialManagementIds, ",")
+	for _, v := range industrialManagementIdList {
+		itemIndustrialManagementGroup := new(CygxIndustrialAskserieVideoGroupManagement)
+		newIndustrialId, _ := strconv.Atoi(v)
+		itemIndustrialManagementGroup.CreateTime = time.Now()
+		itemIndustrialManagementGroup.AskserieVideoId = item.AskserieVideoId
+		itemIndustrialManagementGroup.IndustrialManagementId = newIndustrialId
+		_, err = to.Insert(itemIndustrialManagementGroup)
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}
+
+// 获取数量
+func GetCygxAskserieVideoCount(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_askserie_video as art WHERE 1= 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}
+
+// 列表
+func GetCygxAskserieVideoList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxAskserieVideoResp, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_askserie_video as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?  `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+type GetCygxAskserieVideoRespListResp struct {
+	Paging *paging.PagingItem `description:"分页数据"`
+	List   []*CygxAskserieVideoResp
+}

+ 69 - 0
models/cygx/askserie_video_history_record.go

@@ -0,0 +1,69 @@
+package cygx
+
+import "github.com/beego/beego/v2/client/orm"
+
+type CygxAskserieVideoHistoryRecordResp struct {
+	Id               int    `orm:"column(id);pk"`
+	AskserieVideoId  int    `description:"askserie_video_id"`
+	UserId           int    `description:"用户ID"`
+	CreateTime       string `description:"创建时间"`
+	Mobile           string `description:"手机号"`
+	Email            string `description:"邮箱"`
+	CompanyId        int    `description:"公司id"`
+	CompanyName      string `description:"公司名称"`
+	RealName         string `description:"用户实际名称"`
+	SellerName       string `description:"所属销售"`
+	RegisterPlatform int    `description:"来源 1小程序,2:网页"`
+	ModifyTime       string `description:"更新时间"`
+	VideoDuration    string `description:"视频时长"`
+}
+
+// Pv数据列表
+type CygxCygxAskserieVideoHistoryRecordListResp struct {
+	//Paging *paging.PagingItem `description:"分页数据"`
+	List []*CygxAskserieVideoHistoryRecordResp
+}
+
+// 列表
+func GetCygxAskserieVideoHistoryRecordList(condition string, pars []interface{}) (items []*CygxAskserieVideoHistoryRecordResp, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_askserie_video_history_record as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+type CygxAskserieVideoCollectionResp struct {
+	Id               int    `orm:"column(id);pk"`
+	AskserieVideoId  int    `description:"askserie_video_id"`
+	UserId           int    `description:"用户ID"`
+	CreateTime       string `description:"创建时间"`
+	Mobile           string `description:"手机号"`
+	Email            string `description:"邮箱"`
+	CompanyId        int    `description:"公司id"`
+	CompanyName      string `description:"公司名称"`
+	RealName         string `description:"用户实际名称"`
+	SellerName       string `description:"所属销售"`
+	RegisterPlatform int    `description:"来源 1小程序,2:网页"`
+	ModifyTime       string `description:"更新时间"`
+	Content          string `description:"留言"`
+}
+
+// Pv数据列表
+type CygxAskserieVideoCollectionListResp struct {
+	//Paging *paging.PagingItem `description:"分页数据"`
+	List []*CygxAskserieVideoCollectionResp
+}
+
+// 列表
+func GetCygxAskserieVideoCollectionList(condition string, pars []interface{}) (items []*CygxAskserieVideoCollectionResp, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_askserie_video_collection as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}

+ 41 - 0
models/cygx/industrial_askserie_video_group_management.go

@@ -0,0 +1,41 @@
+package cygx
+
+import (
+	//"github.com/beego/beego/v2/client/orm"
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
+	"time"
+)
+
+// 首页资源表与产业的关系
+type CygxIndustrialAskserieVideoGroupManagement struct {
+	Id                     int       `orm:"column(id);pk" description:"主键ID"`
+	AskserieVideoId        int       `description:"askserie_video_id"`
+	IndustrialManagementId int       `description:"cygx_industrial_management表的主键ID"`
+	CreateTime             time.Time `description:"创建时间"`
+}
+
+type IndustrialAskserieVideoManagementRep struct {
+	AskserieVideoId        int    `description:"askserie_video_id"`
+	IndustrialManagementId int    `description:"cygx_industrial_management表的主键ID"`
+	IndustryName           string `description:"产业名称"`
+	ChartPermissionId      int    `description:"权限id"`
+	PermissionName         string `description:"行业名称"`
+}
+
+// 列表GetCygxIndustrialAskserieVideoGroupManagementList
+func GetCygxIndustrialAskserieVideoGroupManagementList(askserieVideoIds []int) (items []*IndustrialAskserieVideoManagementRep, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT
+			am.askserie_video_id,
+			m.chart_permission_id,
+			m.industrial_management_id,
+			m.industry_name 
+			FROM
+			cygx_industrial_askserie_video_group_management AS am
+			INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
+			WHERE
+			am.askserie_video_id IN (` + utils.GetOrmInReplace(len(askserieVideoIds)) + `)`
+	_, err = o.Raw(sql, askserieVideoIds).QueryRows(&items)
+	return
+}

+ 2 - 0
models/db.go

@@ -459,6 +459,8 @@ func initCygx() {
 		new(cygx.CygxAllocationCompanyContractPermissionLog),
 		new(cygx.CygxQuestionnaire),
 		new(cygx.CygxQuestionnaireTheme),
+		new(cygx.CygxAskserieVideo),
+		new(cygx.CygxIndustrialAskserieVideoGroupManagement),
 	)
 }
 

+ 45 - 0
routers/commentsRouter.go

@@ -1285,6 +1285,51 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"],
+        beego.ControllerComments{
+            Method: "CollectionList",
+            Router: `/askserie_video/collection_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"],
+        beego.ControllerComments{
+            Method: "Detail",
+            Router: `/askserie_video/detail`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"],
+        beego.ControllerComments{
+            Method: "HistoryList",
+            Router: `/askserie_video/history_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"],
+        beego.ControllerComments{
+            Method: "List",
+            Router: `/askserie_video/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AskserieVideoController"],
+        beego.ControllerComments{
+            Method: "PreserveAndPublish",
+            Router: `/askserie_video/preserveAndEdit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:BannerCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:BannerCoAntroller"],
         beego.ControllerComments{
             Method: "PreserveAndPublish",

+ 1 - 0
routers/router.go

@@ -156,6 +156,7 @@ func init() {
 				&cygx.YanxuanSpecialController{},
 				&cygx.ContractAllocationController{},
 				&cygx.QuestionnaireController{},
+				&cygx.AskserieVideoController{},
 			),
 		),
 		web.NSNamespace("/advisory",

+ 69 - 0
services/cygx/askserie_video.go

@@ -0,0 +1,69 @@
+package cygx
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/services/alarm_msg"
+	"hongze/hz_crm_api/utils"
+	"strings"
+)
+
+// 获取问答系列产业列表
+func GetCygxAskserieVideoLabelListMap(askserieVideoIds []int) (mapResp map[int][]*cygx.IndustrialActivityGroupManagementRep) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg("获取产品内测的阅读数据,信息失败,GetCygxAskserieVideoLabelListMap Err:"+err.Error(), 3)
+		}
+	}()
+	lenArr := len(askserieVideoIds)
+	if lenArr == 0 {
+		return
+	}
+	industrialList, e := cygx.GetCygxIndustrialAskserieVideoGroupManagementList(askserieVideoIds)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("获取详情失败 GetCygxIndustrialAskserieVideoGroupManagementList Err" + e.Error())
+		return
+	}
+	mapResp = make(map[int][]*cygx.IndustrialActivityGroupManagementRep, 0)
+	for _, v := range industrialList {
+		item := new(cygx.IndustrialActivityGroupManagementRep)
+		item.IndustryName = v.IndustryName
+		item.IndustrialManagementId = v.IndustrialManagementId
+		item.ChartPermissionId = v.ChartPermissionId
+		mapResp[v.AskserieVideoId] = append(mapResp[v.AskserieVideoId], item)
+	}
+	return
+}
+
+// 获取问答系列产业列表
+func GetCygxAskserieVideoLabelMap(askserieVideoIds []int) (mapResp map[int]string) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg("获取产品内测的阅读数据,信息失败,GetCygxAskserieVideoLabelListMap Err:"+err.Error(), 3)
+		}
+	}()
+	lenArr := len(askserieVideoIds)
+	if lenArr == 0 {
+		return
+	}
+	industrialList, e := cygx.GetCygxIndustrialAskserieVideoGroupManagementList(askserieVideoIds)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("获取详情失败 GetCygxIndustrialAskserieVideoGroupManagementList Err" + e.Error())
+		return
+	}
+	mapIndustryName := make(map[int][]string)
+	mapResp = make(map[int]string, 0)
+	for _, v := range industrialList {
+		mapIndustryName[v.AskserieVideoId] = append(mapIndustryName[v.AskserieVideoId], v.IndustryName)
+	}
+
+	for k, v := range mapIndustryName {
+		mapResp[k] = strings.Join(v, ",")
+	}
+	return
+}