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

Merge branch 'gn_2.6_add_ppt_cover_1121@guomengyuan' into debug

# Conflicts:
#	controllers/ppt_v2.go
#	routers/router.go
gmy 3 сар өмнө
parent
commit
cb4c0c2ce3

+ 32 - 0
controllers/data_manage/chart_info.go

@@ -167,6 +167,38 @@ func (this *ChartInfoController) ChartInfoAdd() {
 		return
 	}
 
+	// 来源字数校验
+	type SourcesFrom struct {
+		Text string `json:"text"`
+	}
+
+	if req.SourcesFrom != "" && len(req.SourcesFrom) > 0 {
+		var sourcesFrom SourcesFrom
+		err = json.Unmarshal([]byte(req.SourcesFrom), &sourcesFrom)
+		if err != nil {
+			return
+		}
+		if len(sourcesFrom.Text) > 50 {
+			br.Msg = "字数已达上限!"
+			br.ErrMsg = "来源文本字数已达上限,请修改!"
+			return
+		}
+	}
+
+	// 说明字数校验
+	if req.Instructions != "" && len(req.Instructions) > 0 {
+		var instructions SourcesFrom
+		err = json.Unmarshal([]byte(req.Instructions), &instructions)
+		if err != nil {
+			return
+		}
+		if len(instructions.Text) > 100 {
+			br.Msg = "字数已达上限!"
+			br.ErrMsg = "说明文本字数已达上限,请修改!"
+			return
+		}
+	}
+
 	chartInfo, err, errMsg, isSendEmail := data.AddChartInfo(req, sysUser.AdminId, sysUser.RealName, this.Lang)
 	if err != nil {
 		br.Msg = "保存失败"

+ 18 - 0
controllers/data_manage/excel/excel_info.go

@@ -107,6 +107,24 @@ func (c *ExcelInfoController) Add() {
 		}
 	}
 
+	// 来源字数校验
+	type SourcesFrom struct {
+		Text string `json:"text"`
+	}
+
+	if req.SourcesFrom != "" && len(req.SourcesFrom) > 0 {
+		var sourcesFrom SourcesFrom
+		err = json.Unmarshal([]byte(req.SourcesFrom), &sourcesFrom)
+		if err != nil {
+			return
+		}
+		if len(sourcesFrom.Text) > 50 {
+			br.Msg = "字数已达上限!"
+			br.ErrMsg = "来源文本字数已达上限,请修改!"
+			return
+		}
+	}
+
 	if req.ParentId > 0 {
 		parentExcelInfo, e := excel3.GetExcelInfoById(req.ParentId)
 		if e != nil {

+ 19 - 0
controllers/data_manage/range_analysis/chart_info.go

@@ -183,6 +183,25 @@ func (this *RangeChartChartInfoController) Add() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
+
+	// 来源字数校验
+	type SourcesFrom struct {
+		Text string `json:"text"`
+	}
+
+	if req.SourcesFrom != "" && len(req.SourcesFrom) > 0 {
+		var sourcesFrom SourcesFrom
+		err = json.Unmarshal([]byte(req.SourcesFrom), &sourcesFrom)
+		if err != nil {
+			return
+		}
+		if len(sourcesFrom.Text) > 50 {
+			br.Msg = "字数已达上限!"
+			br.ErrMsg = "来源文本字数已达上限,请修改!"
+			return
+		}
+	}
+
 	if req.DateType == 0 {
 		req.DateType = 3
 	}

+ 157 - 0
controllers/image_conf_controller.go

@@ -0,0 +1,157 @@
+package controllers
+
+import (
+	"encoding/json"
+	"eta_gn/eta_api/models"
+	"eta_gn/eta_api/utils"
+	"github.com/rdlucklib/rdluck_tools/paging"
+)
+
+type ImageConfController struct {
+	BaseAuthController
+}
+
+// AddImageMaterial
+// @Title 新增图片素材
+// @Description 新增图片素材
+// @Success 200 操作成功
+// @router /add/image/material [post]
+func (this *ImageConfController) AddImageMaterial() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		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 []*models.ImageConf
+	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+
+	// 校验图片名称是否重复
+	for _, item := range req {
+		if item.ImageType <= 0 {
+			br.Msg = "请选择图片类型!"
+			br.ErrMsg = "请选择图片类型!"
+			return
+		}
+
+		if item.Url == "" {
+			br.Msg = "请上传图片!"
+			br.ErrMsg = "请上传图片!"
+			return
+		}
+
+		// 校验名称是否重复
+		imageConfByName, err := models.GetImageConfByName(item.ImageName)
+		if err != nil {
+			return
+		}
+		if imageConfByName != nil {
+			br.Msg = "图片名称已存在,请重新上传!"
+			br.ErrMsg = "图片名称已存在,请重新上传!"
+			return
+		}
+	}
+
+	err := models.BatchAddImageMaterials(req, len(req))
+	if err != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "操作失败,Err:" + err.Error()
+		return
+	}
+
+	br.Msg = "操作成功"
+	br.Ret = 200
+	return
+}
+
+// AddImageMaterial
+// @Title 根据条件查询图片素材
+// @Description 根据条件查询图片素材
+// @Success
+// @router /add/get/image/material [get]
+func (this *ImageConfController) getImageMaterialList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	confType, err := this.GetInt("ConfType")
+	if err != nil {
+		return
+	}
+	if confType <= 0 {
+		br.Msg = "请选择配置类型!"
+		br.ErrMsg = "请选择配置类型!"
+		return
+	}
+	imageType, err := this.GetInt("ImageType")
+	if err != nil {
+		return
+	}
+	if imageType <= 0 {
+		br.Msg = "请选择图片类型!"
+		br.ErrMsg = "请选择图片类型!"
+		return
+	}
+	imageName := this.GetString("ImageName")
+
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize := paging.StartIndex(currentIndex, pageSize)
+
+	var condition string
+	var pars []interface{}
+
+	condition += ` AND conf_type=? `
+	pars = append(pars, confType)
+
+	condition += ` AND image_type=? `
+	pars = append(pars, imageType)
+
+	if imageName != "" {
+		condition += ` AND image_name LIKE '%` + imageName + `%' `
+	}
+
+	condition += ` ORDER BY modify_time DESC `
+
+	condition += ` LIMIT ?, ? `
+	pars = append(pars, pageSize, startSize)
+
+	imageConfList, err := models.GetImageConfByCondition(condition, pars)
+
+	br.Msg = "操作成功"
+	br.Ret = 200
+	br.Data = imageConfList
+	return
+}

+ 4 - 0
controllers/ppt_report.go

@@ -388,6 +388,8 @@ func (this *PptV2Controller) CreateReport() {
 		}
 		newItem.TemplateType = inheritPpt.TemplateType
 		newItem.BackgroundImg = inheritPpt.BackgroundImg
+		newItem.CurrentBackgroundImg = inheritPpt.CurrentBackgroundImg
+		newItem.BackCoverImg = inheritPpt.BackCoverImg
 		newItem.ReportType = inheritPpt.ReportType
 		newItem.PptDate = inheritPpt.PptDate
 		newItem.Content = inheritPpt.Content
@@ -399,6 +401,8 @@ func (this *PptV2Controller) CreateReport() {
 	if req.InheritPptId <= 0 {
 		newItem.TemplateType = req.FirstPage.TemplateType
 		newItem.BackgroundImg = req.FirstPage.ImgUrl
+		newItem.CurrentBackgroundImg = req.FirstPage.CurrentBackgroundImg
+		newItem.BackCoverImg = req.FirstPage.BackCoverImg
 		newItem.ReportType = req.FirstPage.ReportType
 		newItem.PptDate = req.FirstPage.PptDate
 		newItem.Content = req.Content

+ 3 - 27
controllers/ppt_v2.go

@@ -227,17 +227,7 @@ func (this *PptV2Controller) EditPpt() {
 		br.Msg = "标题不能为空"
 		return
 	}
-	//item, err := models.GetPptV2ByTitleAndId(req.FirstPage.Title, this.SysUser.AdminId)
-	//if err != nil && !utils.IsErrNoRow(err) {
-	//	br.Msg = "获取数据异常!"
-	//	br.ErrMsg = "获取数据异常,Err:" + err.Error()
-	//	return
-	//}
-	//if item != nil && item.PptId > 0 && item.PptId != int(req.PptId) {
-	//	br.Msg = "标题已存在,不可重复添加"
-	//	br.IsSendEmail = false
-	//	return
-	//}
+
 	pptInfo, err := models.GetPptV2ById(int(req.PptId))
 	if err != nil {
 		br.Msg = "信息获取失败"
@@ -262,25 +252,11 @@ func (this *PptV2Controller) EditPpt() {
 		}
 	}
 
-	// 判断权限
-	//if pptInfo.AdminId != this.SysUser.AdminId {
-	//	_, err := models.GetPPtGrantConf(pptInfo.PptId, this.SysUser.AdminId)
-	//	if err != nil {
-	//		if utils.IsErrNoRow(err) {
-	//			br.Msg = `该PPT已取消共享,保存失败`
-	//			br.ErrMsg = `该PPT已取消共享,保存失败`
-	//			br.IsSendEmail = false
-	//		} else {
-	//			br.Msg = `保存失败`
-	//			br.ErrMsg = `保存失败,ERR:` + err.Error()
-	//		}
-	//		return
-	//	}
-	//}
-
 	// 修改
 	pptInfo.TemplateType = req.FirstPage.TemplateType
 	pptInfo.BackgroundImg = req.FirstPage.ImgUrl
+	pptInfo.CurrentBackgroundImg = req.FirstPage.CurrentBackgroundImg
+	pptInfo.BackCoverImg = req.FirstPage.BackCoverImg
 	pptInfo.Title = req.FirstPage.Title
 	pptInfo.ReportType = req.FirstPage.ReportType
 	pptInfo.PptDate = req.FirstPage.PptDate

+ 35 - 0
models/image_conf.go

@@ -0,0 +1,35 @@
+package models
+
+import (
+	"eta_gn/eta_api/global"
+	"time"
+)
+
+type ImageConf struct {
+	ImageConfId int       `gorm:"primaryKey;column:image_conf_id;type:int(10) unsigned;not null"`
+	CreateTime  time.Time `gorm:"column:create_time" description:"消息时间"`
+	ModifyTime  time.Time `gorm:"column:modify_time" description:"更新时间"`
+	ImageName   string    `gorm:"column:image_name;type:varchar(64);not null;default:''" description:"图片名称"`
+	Url         string    `gorm:"column:url;type:varchar(512);not null;default:''" description:"图片地址"`
+	ConfType    int       `gorm:"column:conf_type;type:tinyint(4) unsigned;not null;default:1" description:"配置类型 1-ppt素材"`
+	ImageType   int       `gorm:"column:image_type;type:tinyint(4) unsigned;not null;default:1" description:"图片类型 1-封面图 2-背景图 3-封底图"`
+}
+
+// BatchAddImageMaterials 新增图片素材
+func BatchAddImageMaterials(items []*ImageConf, batchSize int) (err error) {
+	err = global.DmSQL["rddp"].CreateInBatches(items, batchSize).Error
+	return
+}
+
+// GetImageConfByName 根据图片名称查询
+func GetImageConfByName(imageName string) (item *ImageConf, err error) {
+	item = &ImageConf{}
+	err = global.DmSQL["rddp"].Where("image_name = ?", imageName).First(item).Error
+	return
+}
+
+// GetImageConfByCondition 根据条件查询图片素材
+func GetImageConfByCondition(condition string, pars []interface{}) (list []*ImageConf, err error) {
+	err = global.DmSQL["rddp"].Where(condition, pars...).Find(&list).Error
+	return
+}

+ 51 - 45
models/ppt_v2.go

@@ -12,39 +12,41 @@ import (
 
 // PptV2 表
 type PptV2 struct {
-	PptId            int       `gorm:"column:ppt_id;primaryKey;autoIncrement:true" description:"ppt的Id"`
-	TemplateType     int       `gorm:"column:template_type" description:"模版类型"`
-	BackgroundImg    string    `gorm:"column:background_img" description:"背景图片"`
-	Title            string    `gorm:"column:title" description:"标题"`
-	ReportType       string    `gorm:"column:report_type" description:"报告类型"`
-	PptDate          string    `gorm:"column:ppt_date" description:"选择日期"`
-	Content          string    `gorm:"column:content" description:"ppt内容"`
-	PptUrl           string    `gorm:"column:ppt_url" description:"ppt下载地址"`
-	PptxUrl          string    `gorm:"column:pptx_url" description:"pptx下载地址"`
-	CreateTime       time.Time `gorm:"column:create_time" description:"创建时间"`
-	ModifyTime       time.Time `gorm:"column:modify_time" description:"修改时间"`
-	AdminId          int       `gorm:"column:admin_id" description:"系统用户id"`
-	AdminRealName    string    `gorm:"column:admin_real_name" description:"系统用户名称"`
-	PptVersion       int8      `gorm:"column:ppt_version" description:"是否ppt的旧版本;1:旧的,2:新的"`
-	ReportId         int       `gorm:"column:report_id" description:"关联的报告ID"`
-	ReportCode       string    `gorm:"column:report_code" description:"关联的报告code"`
-	IsShare          int8      `gorm:"column:is_share" description:"是否分享,0:不分享,1:分享"`
-	PublishTime      time.Time `gorm:"column:publish_time" description:"发布时间"`
-	CoverContent     string    `gorm:"column:cover_content" description:"PPT内容-JSON"`
-	PptPage          int       `gorm:"column:ppt_page" description:"PPT页数"`
-	TitleSetting     string    `gorm:"column:title_setting" description:"PPT标题设置"`
-	ClassifyId       int       `gorm:"column:classify_id" description:"报告分类ID"`
-	AddType          int       `gorm:"column:add_type" description:"新增方式:1-新增报告;2-继承报告"`
-	InheritReportId  int       `gorm:"column:inherit_report_id" description:"继承的报告ID"`
-	CollaborateType  int       `gorm:"column:collaborate_type" description:"协作方式:1-个人;2-多人协作"`
-	CollaborateUsers string    `gorm:"column:collaborate_users" description:"协作人IDs, 英文逗号分隔"`
-	IsPublicPublish  int       `gorm:"column:is_public_publish" description:"是否公开发布:1-是;2-否"`
-	SubmitTime       time.Time `gorm:"column:submit_time" description:"提交时间"`
-	ApproveTime      time.Time `gorm:"column:approve_time" description:"审批时间"`
-	ReportSource     int       `gorm:"column:report_source" description:"报告来源:1-系统内;2-智力共享"`
-	OutReportId      string    `gorm:"column:out_report_id" description:"外部报告ID(或编码)"`
-	State            int       `gorm:"column:state" description:"报告状态:1-未发布;2-已发布;3-待提交;4-待审批;5-已驳回;6-已通过"`
-	TopicEndTime     time.Time `gorm:"column:topic_end_time" description:"课题结束时间"`
+	PptId                int       `gorm:"column:ppt_id;primaryKey;autoIncrement:true" description:"ppt的Id"`
+	TemplateType         int       `gorm:"column:template_type" description:"模版类型"`
+	BackgroundImg        string    `gorm:"column:background_img" description:"现在实际存的封面图(前端改动太大,不知道该字段之前谁定义的)"`
+	Title                string    `gorm:"column:title" description:"标题"`
+	ReportType           string    `gorm:"column:report_type" description:"报告类型"`
+	PptDate              string    `gorm:"column:ppt_date" description:"选择日期"`
+	Content              string    `gorm:"column:content" description:"ppt内容"`
+	PptUrl               string    `gorm:"column:ppt_url" description:"ppt下载地址"`
+	PptxUrl              string    `gorm:"column:pptx_url" description:"pptx下载地址"`
+	CreateTime           time.Time `gorm:"column:create_time" description:"创建时间"`
+	ModifyTime           time.Time `gorm:"column:modify_time" description:"修改时间"`
+	AdminId              int       `gorm:"column:admin_id" description:"系统用户id"`
+	AdminRealName        string    `gorm:"column:admin_real_name" description:"系统用户名称"`
+	PptVersion           int8      `gorm:"column:ppt_version" description:"是否ppt的旧版本;1:旧的,2:新的"`
+	ReportId             int       `gorm:"column:report_id" description:"关联的报告ID"`
+	ReportCode           string    `gorm:"column:report_code" description:"关联的报告code"`
+	IsShare              int8      `gorm:"column:is_share" description:"是否分享,0:不分享,1:分享"`
+	PublishTime          time.Time `gorm:"column:publish_time" description:"发布时间"`
+	CoverContent         string    `gorm:"column:cover_content" description:"PPT内容-JSON"`
+	PptPage              int       `gorm:"column:ppt_page" description:"PPT页数"`
+	TitleSetting         string    `gorm:"column:title_setting" description:"PPT标题设置"`
+	ClassifyId           int       `gorm:"column:classify_id" description:"报告分类ID"`
+	AddType              int       `gorm:"column:add_type" description:"新增方式:1-新增报告;2-继承报告"`
+	InheritReportId      int       `gorm:"column:inherit_report_id" description:"继承的报告ID"`
+	CollaborateType      int       `gorm:"column:collaborate_type" description:"协作方式:1-个人;2-多人协作"`
+	CollaborateUsers     string    `gorm:"column:collaborate_users" description:"协作人IDs, 英文逗号分隔"`
+	IsPublicPublish      int       `gorm:"column:is_public_publish" description:"是否公开发布:1-是;2-否"`
+	SubmitTime           time.Time `gorm:"column:submit_time" description:"提交时间"`
+	ApproveTime          time.Time `gorm:"column:approve_time" description:"审批时间"`
+	ReportSource         int       `gorm:"column:report_source" description:"报告来源:1-系统内;2-智力共享"`
+	OutReportId          string    `gorm:"column:out_report_id" description:"外部报告ID(或编码)"`
+	State                int       `gorm:"column:state" description:"报告状态:1-未发布;2-已发布;3-待提交;4-待审批;5-已驳回;6-已通过"`
+	TopicEndTime         time.Time `gorm:"column:topic_end_time" description:"课题结束时间"`
+	CurrentBackgroundImg string    `gorm:"column:current_background_img " description:"背景图片"`
+	BackCoverImg         string    `gorm:"column:back_cover_img" description:"封底图片"`
 }
 
 type PptV2Item struct {
@@ -127,12 +129,14 @@ func DeletePptV2(pptId int) (err error) {
 type AddPptV2Req struct {
 	PptId     int64 `description:"ppt_id"`
 	FirstPage struct {
-		Title        string `description:"标题"`
-		ReportType   string `description:"类型"`
-		PptDate      string `description:"日期"`
-		ImgUrl       string `description:"图片"`
-		BackIndex    int    `description:"背景图片下标"`
-		TemplateType int    `description:"模版id"`
+		Title                string `description:"标题"`
+		ReportType           string `description:"类型"`
+		PptDate              string `description:"日期"`
+		ImgUrl               string `description:"封面图片"`
+		CurrentBackgroundImg string `description:"背景图片"`
+		BackCoverImg         string `description:"封底图片"`
+		BackIndex            int    `description:"背景图片下标"`
+		TemplateType         int    `description:"模版id"`
 	} `description:"首页"`
 	Content      string `description:"ppt的json数据"`
 	GroupId      int64  `description:"目录id"`
@@ -442,12 +446,14 @@ type PptReportCreateReq struct {
 	CollaborateType    int    `description:"协作方式,1:个人,2:多人协作。默认:1"`
 	CollaborateUserIds []int  `description:"协作人IDs"`
 	FirstPage          struct {
-		Title        string `description:"标题"`
-		ReportType   string `description:"类型"`
-		PptDate      string `description:"日期"`
-		ImgUrl       string `description:"图片"`
-		BackIndex    int    `description:"背景图片下标"`
-		TemplateType int    `description:"模版id"`
+		Title                string `description:"标题"`
+		ReportType           string `description:"类型"`
+		PptDate              string `description:"日期"`
+		ImgUrl               string `description:"图片"`
+		CurrentBackgroundImg string `description:"背景图片"`
+		BackCoverImg         string `description:"封底图片"`
+		BackIndex            int    `description:"背景图片下标"`
+		TemplateType         int    `description:"模版id"`
 	} `description:"首页"`
 	Content      string `description:"ppt的json数据"`
 	CoverContent string `description:"封面图内容-JSON数据"`

+ 18 - 0
routers/commentsRouter.go

@@ -6487,6 +6487,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ImageConfController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ImageConfController"],
+        beego.ControllerComments{
+            Method: "getImageMaterialList",
+            Router: `/add/get/image/material`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ImageConfController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ImageConfController"],
+        beego.ControllerComments{
+            Method: "AddImageMaterial",
+            Router: `/add/image/material`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta_gn/eta_api/controllers:MeetingProbabilitiesController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:MeetingProbabilitiesController"],
         beego.ControllerComments{
             Method: "Detail",

+ 5 - 0
routers/router.go

@@ -354,6 +354,11 @@ func init() {
 				&controllers.PptV2HistoryController{},
 			),
 		),
+		web.NSNamespace("/image_conf",
+			web.NSInclude(
+				&controllers.ImageConfController{},
+			),
+		),
 	)
 	web.AddNamespace(ns)
 }