|
@@ -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
|
|
|
+}
|