Parcourir la source

上传图片至社区

xyxie il y a 11 mois
Parent
commit
87cb0d77ec

+ 92 - 0
controllers/data_manage/chart_info.go

@@ -3896,3 +3896,95 @@ func (this *ChartInfoController) UploadToForum() {
 	br.Success = true
 	br.Msg = "保存成功"
 }
+
+// UpdateToForum
+// @Title 更新社区图表
+// @Description 更新社区图表
+// @Param	request	body data_manage.SetChartInfoImageReq true "type json string"
+// @Success Ret=200 保存成功
+// @router /chart_info/forum/update [post]
+func (this *ChartInfoController) UpdateToForum() {
+	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 eta_forum.UpdateChartToForumReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	if req.ChartInfoId <= 0 {
+		br.Msg = "请选择图表"
+		return
+	}
+
+	err, errMsg := eta_forum.UpdateChart(req.ChartInfoId)
+	if err != nil {
+		br.Msg = errMsg
+		br.ErrMsg = err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "保存成功"
+}
+
+// ForumDelete
+// @Title 从社区撤回
+// @Description 从社区撤回
+// @Param	request	body data_manage.SetChartInfoImageReq true "type json string"
+// @Success Ret=200 保存成功
+// @router /chart_info/forum/delete [post]
+func (this *ChartInfoController) ForumDelete() {
+	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 eta_forum.DeleteChartReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	if req.ChartInfoId <= 0 {
+		br.Msg = "请选择图表"
+		return
+	}
+
+	err, errMsg := eta_forum.DeleteChart(req.ChartInfoId)
+	if err != nil {
+		br.Msg = errMsg
+		br.ErrMsg = err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}

+ 11 - 0
models/data_manage/chart_info.go

@@ -284,6 +284,16 @@ func ModifyChartInfo(item *EditChartInfoReq) (err error) {
 	_, err = o.Raw(sql, item.ChartName, item.ChartClassifyId, item.ChartInfoId).Exec()
 	return
 }
+func SetForumChartInfoId(chartInfoId, forumChartInfoId int) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` UPDATE  chart_info
+			SET
+              forum_chart_info_id=?,
+			  modify_time = NOW()
+			WHERE chart_info_id = ?`
+	_, err = o.Raw(sql, forumChartInfoId, chartInfoId).Exec()
+	return
+}
 
 type ChartInfoList struct {
 	ChartInfoId          int    `orm:"column(chart_info_id);pk"`
@@ -1459,6 +1469,7 @@ type ChartInfoView struct {
 	MarkersAreas      string          `description:"标识区"`
 	IsJoinPermission  int             `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
 	HaveOperaAuth     bool            `description:"是否有数据权限,默认:false"`
+	ForumChartInfoId  int             `description:"社区的图表ID"`
 }
 
 type ChartViewButton struct {

+ 18 - 0
routers/commentsRouter.go

@@ -2167,6 +2167,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "ForumDelete",
+            Router: `/chart_info/forum/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "UpdateToForum",
+            Router: `/chart_info/forum/update`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
         beego.ControllerComments{
             Method: "UploadToForum",

+ 154 - 1
services/eta_forum/eta_forum_hub.go

@@ -13,6 +13,10 @@ type UploadChartToForumReq struct {
 	Description string `description:"逻辑简述"`
 }
 
+type UpdateChartToForumReq struct {
+	ChartInfoId int `description:"图表ID"`
+}
+
 type ChartSaveLibReq struct {
 	ChartInfo               *data_manage.ChartInfo
 	Description             string `description:"逻辑简述"`
@@ -28,7 +32,7 @@ type ChartSaveLibResp struct {
 	Msg         string
 	ErrMsg      string
 	ErrCode     string
-	Data        data_manage.AddChartInfoResp
+	Data        *data_manage.AddChartInfoResp
 	Success     bool `description:"true 执行成功,false 执行失败"`
 	IsSendEmail bool `json:"-" description:"true 发送邮件,false 不发送邮件"`
 	IsAddLog    bool `json:"-" description:"true 新增操作日志,false 不新增操作日志" `
@@ -39,6 +43,10 @@ type AddEdbDataReq struct {
 	DataList []*data_manage.EdbDataBase
 }
 
+type DeleteChartReq struct {
+	ChartInfoId int `description:"图表id"`
+}
+
 // UploadChart 上传图表接口
 func UploadChart(chartInfoId int, description string) (err error, errMsg string) {
 	// 查询图表信息
@@ -53,6 +61,11 @@ func UploadChart(chartInfoId int, description string) (err error, errMsg string)
 		err = fmt.Errorf("获取图表信息失败,Err:" + err.Error())
 		return
 	}
+	if chartInfo.ForumChartInfoId > 0 {
+		errMsg = "该图表已上传至社区,无法再次上传"
+		err = fmt.Errorf(errMsg)
+		return
+	}
 	//查询图表主题
 
 	//查询图表指标
@@ -104,6 +117,93 @@ func UploadChart(chartInfoId int, description string) (err error, errMsg string)
 		err = fmt.Errorf(respItem.ErrMsg)
 		return
 	}
+
+	if respItem.Data != nil && respItem.Data.ChartInfoId != 0 {
+		// 更新社区返回的图表ID
+		err = data_manage.SetForumChartInfoId(chartInfoId, respItem.Data.ChartInfoId)
+		if err != nil {
+			errMsg = "更新图表ID失败"
+			err = fmt.Errorf("更新图表ID失败,Err:" + err.Error())
+			return
+		}
+	}
+
+	return
+}
+
+// UpdateChart 更新社区里的图表接口
+func UpdateChart(chartInfoId int) (err error, errMsg string) {
+	// 查询图表信息
+	chartInfo, err := data_manage.GetChartInfoById(chartInfoId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			errMsg = "图表不存在"
+			err = fmt.Errorf(errMsg)
+			return
+		}
+		errMsg = "获取图表信息失败"
+		err = fmt.Errorf("获取图表信息失败,Err:" + err.Error())
+		return
+	}
+
+	if chartInfo.ForumChartInfoId <= 0 {
+		errMsg = "该图表未上传至社区"
+		err = fmt.Errorf(errMsg)
+		return
+	}
+	//查询图表主题
+
+	//查询图表指标
+	//获取原图表关联的指标信息列表
+	chartMappingList, err := data_manage.GetChartMappingList(chartInfoId)
+	if err != nil {
+		errMsg = "获取图表关联的指标信息失败"
+		err = fmt.Errorf("获取图表关联的指标信息失败,Err:" + err.Error())
+		return
+	}
+	edbIds := make([]int, 0)
+	for _, v := range chartMappingList {
+		edbIds = append(edbIds, v.EdbInfoId)
+	}
+	var (
+		edbInfoList     []*data_manage.EdbInfo
+		edbMappingList  []*data_manage.EdbInfoCalculateMapping
+		edbInfoDataList []*AddEdbDataReq
+	)
+	//查询指标详情
+	edbInfoList, edbMappingList, edbInfoDataList, err = GetEdbListByEdbInfoId(edbIds)
+	if err != nil {
+		errMsg = "获取指标详情失败"
+		err = fmt.Errorf("获取指标详情失败,Err:" + err.Error())
+		return
+	}
+	req := new(ChartSaveLibReq)
+	req.ChartInfo = chartInfo
+	req.ChartInfo.ChartInfoId = chartInfo.ForumChartInfoId
+	req.ChartEdbMapping = chartMappingList
+	req.EdbInfoList = edbInfoList
+	req.EdbInfoDataList = edbInfoDataList
+	req.EdbInfoCalculateMapping = edbMappingList
+
+	// 添加计算指标
+	reqJson, err := json.Marshal(req)
+	if err != nil {
+		errMsg = "参数解析异常"
+		err = fmt.Errorf("参数解析异常,Err:" + err.Error())
+		return
+	}
+	respItem, err := ChartUpdateLib(string(reqJson))
+	if err != nil {
+		errMsg = "更新失败"
+		err = fmt.Errorf("上传失败,Err:" + err.Error())
+		return
+	}
+	if respItem.Ret != 200 {
+		errMsg = "更新失败"
+		err = fmt.Errorf(respItem.ErrMsg)
+		return
+	}
+
 	return
 }
 
@@ -214,3 +314,56 @@ func traceEdbInfoByEdbInfoId(edbInfoId int, hasFindMap map[int]struct{}, edbInfo
 	hasFindMap[edbInfoId] = struct{}{}
 	return
 }
+
+// DeleteChart 上传图表接口
+func DeleteChart(chartInfoId int) (err error, errMsg string) {
+	// 查询图表信息
+	chartInfo, err := data_manage.GetChartInfoById(chartInfoId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			errMsg = "图表不存在"
+			err = fmt.Errorf(errMsg)
+			return
+		}
+		errMsg = "获取图表信息失败"
+		err = fmt.Errorf("获取图表信息失败,Err:" + err.Error())
+		return
+	}
+	if chartInfo.ForumChartInfoId <= 0 {
+		errMsg = "该图表未上传至社区,无需撤回"
+		err = fmt.Errorf(errMsg)
+		return
+	}
+
+	req := new(DeleteChartReq)
+	req.ChartInfoId = chartInfo.ForumChartInfoId
+
+	// 添加计算指标
+	reqJson, err := json.Marshal(req)
+	if err != nil {
+		errMsg = "参数解析异常"
+		err = fmt.Errorf("参数解析异常,Err:" + err.Error())
+		return
+	}
+	respItem, err := ChartDeleteLib(string(reqJson))
+	if err != nil {
+		errMsg = "撤回失败"
+		err = fmt.Errorf("撤回失败,Err:" + err.Error())
+		return
+	}
+	if respItem.Ret != 200 {
+		errMsg = "撤回失败"
+		err = fmt.Errorf(respItem.ErrMsg)
+		return
+	}
+
+	// 更新社区返回的图表ID
+	err = data_manage.SetForumChartInfoId(chartInfoId, 0)
+	if err != nil {
+		errMsg = "撤回失败"
+		err = fmt.Errorf("更新图表ID失败,Err:" + err.Error())
+		return
+	}
+
+	return
+}

+ 20 - 0
services/eta_forum/eta_forum_hub_lib.go

@@ -20,6 +20,26 @@ func ChartSaveLib(req string) (resp *ChartSaveLibResp, err error) {
 	return
 }
 
+// ChartUpdateLib 更新图表信息
+func ChartUpdateLib(req string) (resp *ChartSaveLibResp, err error) {
+	_, resultByte, err := post(req, "/v1/chart/update")
+	err = json.Unmarshal(resultByte, &resp)
+	if err != nil {
+		return
+	}
+	return
+}
+
+// ChartDeleteLib 从社区撤回图表
+func ChartDeleteLib(req string) (resp *models.BaseResponse, err error) {
+	_, resultByte, err := post(req, "/v1/chart/delete")
+	err = json.Unmarshal(resultByte, &resp)
+	if err != nil {
+		return
+	}
+	return
+}
+
 // post
 func post(paramStr string, urlStr string) (resp *models.BaseResponse, result []byte, err error) {
 	if utils.ETA_FORUM_HUB_URL == "" {