Jelajahi Sumber

查询删除指标日志

xyxie 1 tahun lalu
induk
melakukan
ae5bced6cc

+ 141 - 0
controllers/data_stat/edb_source_stat.go

@@ -5,6 +5,11 @@ import (
 	"eta/eta_api/controllers"
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_stat"
+	"eta/eta_api/utils"
+	"fmt"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"strings"
+	"time"
 )
 
 // EdbSourceStatController 数据源统计表管理模块
@@ -117,3 +122,139 @@ func (this *EdbSourceStatController) EditColumn() {
 	br.Msg = "获取成功"
 	return
 }
+
+// EdbDeleteLog
+// @Title 查询删除指标列表
+// @Description 查询删除指标列表接口
+// @Success 200 {object} data_stat.StatColumnList
+// @router /edb_delete_log [get]
+func (this *EdbSourceStatController) EdbDeleteLog() {
+	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
+	}
+
+	sortParamReq := this.GetString("SortParam", "")
+	sortType := this.GetString("SortType", "desc")
+	createTime := this.GetString("CreateTime", "")
+
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+
+	startSize = paging.StartIndex(currentIndex, pageSize)
+
+	var condition string
+	var pars []interface{}
+
+	if createTime != "" {
+		startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local)
+		if err != nil {
+			br.Msg = "请求时间格式错误"
+			return
+		}
+		endT := startT.AddDate(0, 0, 1)
+		condition += " AND create_time >= ? AND create_time < ?"
+		pars = append(pars, createTime, endT.Format(utils.FormatDate))
+	}
+
+	sortStr := ``
+	sortParam := ``
+	if sortParamReq != `` {
+		switch sortParamReq {
+		case "CreateTime":
+			sortParam = "create_time"
+		case "ErDataUpdateDate":
+			sortParam = "er_data_update_date"
+		case "LatestDate":
+			sortParam = "latest_date"
+		case "StartDate":
+			sortParam = "start_date"
+		}
+		if sortParam == "" {
+			br.Msg = "请输入正确的排序字段"
+			return
+		}
+		if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" {
+			br.Msg = "请输入正确的排序类型"
+			return
+		}
+		sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType)
+	}
+	total, err := data_stat.GetEdbDeleteLogCount(condition, pars)
+	if err != nil {
+		if err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取指标删除列表总数失败"
+			br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error()
+			return
+		} else {
+			err = nil
+		}
+	}
+	list := make([]*data_stat.EdbInfoDeleteLogItem, 0)
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	if total == 0 {
+		resp := data_stat.GetEdbDeleteLogResp{
+			Paging: page,
+			List:   list,
+		}
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
+		return
+	}
+	tmpList, err := data_stat.GetEdbDeleteLogByCondition(condition, pars, sortStr, pageSize, startSize)
+	if err != nil {
+		br.Msg = "获取指标删除列表失败"
+		br.ErrMsg = "获取指标删除列表失败,Err:" + err.Error()
+		return
+	}
+
+	for _, v := range tmpList {
+		tmp := new(data_stat.EdbInfoDeleteLogItem)
+		tmp.EdbCode = v.EdbCode
+		tmp.EdbInfoId = v.EdbInfoId
+		tmp.Id = v.Id
+		tmp.StartDate = v.StartDate
+		tmp.Unit = v.Unit
+		tmp.TerminalCode = v.TerminalCode
+		tmp.CreateTime = v.CreateTime
+		tmp.Frequency = v.Frequency
+		tmp.Source = v.Source
+		tmp.SourceName = v.SourceName
+		tmp.EdbNameSource = v.EdbNameSource
+		tmp.LatestDate = v.LatestDate
+		tmp.DataUpdateTime = v.DataUpdateTime
+		tmp.DelSysUserId = v.DelSysUserId
+		tmp.DelSysUserRealName = v.DelSysUserRealName
+		tmp.SysUserId = v.SysUserId
+		tmp.LatestValue = v.LatestValue
+		tmp.ErDataUpdateDate = v.ErDataUpdateDate
+		list = append(list, tmp)
+	}
+
+	resp := data_stat.GetEdbDeleteLogResp{
+		Paging: page,
+		List:   list,
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 108 - 43
models/data_stat/edb_info_delete_log.go

@@ -1,49 +1,114 @@
 package data_stat
 
-import "time"
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+)
 
 // EdbInfoDeleteLog 指标删除日志表
 type EdbInfoDeleteLog struct {
-	Id                 uint64    `orm:"column(id);pk"`
-	EdbInfoId          int       `description:"指标ID"`
-	EdbInfoType        int       `description:"指标类型,0:普通指标,1:预测指标"`
-	SourceName         string    `description:"来源名称"`
-	Source             int       `description:"来源id"`
-	EdbCode            string    `description:"指标编码"`
-	EdbName            string    `description:"指标名称"`
-	EdbNameEn          string    `description:"英文指标名称"`
-	EdbNameSource      string    `description:"指标名称来源"`
-	Frequency          string    `description:"频率"`
-	Unit               string    `description:"单位"`
-	UnitEn             string    `description:"英文单位"`
-	StartDate          string    `description:"起始日期"`
-	EndDate            string    `description:"终止日期"`
-	ClassifyId         int       `description:"分类id"`
-	SysUserId          int       `description:"创建人ID"`
-	SysUserRealName    string    `description:"创建人姓名"`
-	UniqueCode         string    `description:"指标唯一编码"`
-	EdbCreateTime      time.Time `description:"指标创建时间"`
-	EdbModifyTime      time.Time `description:"指标修改时间"`
-	CreateTime         time.Time
-	MinValue           float64   `description:"指标最小值"`
-	MaxValue           float64   `description:"指标最大值"`
-	CalculateFormula   string    `description:"计算公式"`
-	EdbType            int       `description:"指标类型:1:基础指标,2:计算指标"`
-	Sort               int       `description:"排序字段"`
-	LatestDate         string    `description:"数据最新日期"`
-	LatestValue        float64   `description:"数据最新值"`
-	MoveType           int       `description:"移动方式:1:领先(默认),2:滞后"`
-	MoveFrequency      string    `description:"移动频度"`
-	NoUpdate           int       `description:"是否停止更新,0:继续更新;1:停止更新"`
-	ServerUrl          string    `description:"服务器地址"`
-	ChartImage         string    `description:"图表图片"`
-	Calendar           string    `description:"公历/农历" orm:"default(公历);"`
-	DataDateType       string    `orm:"column(data_date_type);size(255);null;default(交易日)"`
-	ManualSave         int       `description:"是否有手动保存过上下限: 0-否; 1-是"`
-	TerminalCode       string    `description:"终端编码,用于配置在机器上"`
-	IsUpdate           int       `description:"当天是否已更新,1:未更新,2:已更新"`
-	DelSysUserId       int       `description:"删除人ID"`
-	DelSysUserRealName string    `description:"删除人姓名"`
-	DataUpdateTime     time.Time `description:"最近一次数据发生变化的时间"`
-	ErDataUpdateDate   time.Time `description:"本次更新,数据发生变化的最早日期"`
+	Id                 uint64  `orm:"column(id);pk"`
+	EdbInfoId          int     `description:"指标ID"`
+	EdbInfoType        int     `description:"指标类型,0:普通指标,1:预测指标"`
+	SourceName         string  `description:"来源名称"`
+	Source             int     `description:"来源id"`
+	EdbCode            string  `description:"指标编码"`
+	EdbName            string  `description:"指标名称"`
+	EdbNameEn          string  `description:"英文指标名称"`
+	EdbNameSource      string  `description:"指标名称来源"`
+	Frequency          string  `description:"频率"`
+	Unit               string  `description:"单位"`
+	UnitEn             string  `description:"英文单位"`
+	StartDate          string  `description:"起始日期"`
+	EndDate            string  `description:"终止日期"`
+	SysUserId          int     `description:"创建人ID"`
+	SysUserRealName    string  `description:"创建人姓名"`
+	UniqueCode         string  `description:"指标唯一编码"`
+	EdbCreateTime      string  `description:"指标创建时间"`
+	EdbModifyTime      string  `description:"指标修改时间"`
+	CreateTime         string  `description:"创建时间即删除时间"`
+	MinValue           float64 `description:"指标最小值"`
+	MaxValue           float64 `description:"指标最大值"`
+	CalculateFormula   string  `description:"计算公式"`
+	EdbType            int     `description:"指标类型:1:基础指标,2:计算指标"`
+	LatestDate         string  `description:"数据最新日期"`
+	LatestValue        float64 `description:"数据最新值"`
+	MoveType           int     `description:"移动方式:1:领先(默认),2:滞后"`
+	MoveFrequency      string  `description:"移动频度"`
+	NoUpdate           int8    `description:"是否停止更新,0:继续更新;1:停止更新"`
+	ChartImage         string  `description:"图表图片"`
+	Calendar           string  `description:"公历/农历" orm:"default(公历);"`
+	DataDateType       string  `orm:"column(data_date_type);size(255);null;default(交易日)"`
+	ManualSave         int     `description:"是否有手动保存过上下限: 0-否; 1-是"`
+	TerminalCode       string  `description:"终端编码,用于配置在机器上"`
+	DelSysUserId       int     `description:"删除人ID"`
+	DelSysUserRealName string  `description:"删除人姓名"`
+	DataUpdateTime     string  `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate   string  `description:"本次更新,数据发生变化的最早日期"`
+}
+
+type EdbInfoDeleteLogItem struct {
+	Id                 uint64  `orm:"column(id);"`
+	EdbInfoId          int     `description:"指标ID"`
+	EdbInfoType        int     `description:"指标类型,0:普通指标,1:预测指标"`
+	SourceName         string  `description:"来源名称"`
+	Source             int     `description:"来源id"`
+	EdbCode            string  `description:"指标编码"`
+	EdbName            string  `description:"指标名称"`
+	EdbNameEn          string  `description:"英文指标名称"`
+	EdbNameSource      string  `description:"指标名称来源"`
+	Frequency          string  `description:"频率"`
+	Unit               string  `description:"单位"`
+	StartDate          string  `description:"起始日期"`
+	EndDate            string  `description:"终止日期"`
+	SysUserId          int     `description:"创建人ID"`
+	SysUserRealName    string  `description:"创建人姓名"`
+	EdbCreateTime      string  `description:"指标创建时间"`
+	CreateTime         string  `description:"创建时间即删除时间"`
+	LatestDate         string  `description:"数据最新日期"`
+	LatestValue        float64 `description:"数据最新值"`
+	TerminalCode       string  `description:"终端编码,用于配置在机器上"`
+	DelSysUserId       int     `description:"删除人ID"`
+	DelSysUserRealName string  `description:"删除人姓名"`
+	DataUpdateTime     string  `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate   string  `description:"本次更新,数据发生变化的最早日期"`
+}
+
+func AddEdbDeleteLog(item *EdbInfoDeleteLog) (lastId int64, err error) {
+	o := orm.NewOrmUsingDB("data")
+	lastId, err = o.Insert(item)
+	return
+}
+
+type GetEdbDeleteLogResp struct {
+	List   []*EdbInfoDeleteLogItem
+	Paging *paging.PagingItem
+}
+
+func GetEdbDeleteLogByCondition(condition string, pars []interface{}, orderStr string, pageSize, startSize int) (item []*EdbInfoDeleteLog, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM edb_info_delete_log WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	if orderStr != "" {
+		sql += orderStr
+	} else {
+		sql += ` ORDER BY create_time DESC, id DESC `
+	}
+
+	sql += ` LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	return
+}
+
+// GetEdbDeleteLogCount
+func GetEdbDeleteLogCount(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT count(*) FROM edb_info_delete_log WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
 }

+ 14 - 0
models/db.go

@@ -5,6 +5,7 @@ import (
 	"eta/eta_api/models/data_manage"
 	future_good2 "eta/eta_api/models/data_manage/future_good"
 	"eta/eta_api/models/data_manage/supply_analysis"
+	"eta/eta_api/models/data_stat"
 	"eta/eta_api/models/eta_trial"
 	"eta/eta_api/models/ppt_english"
 	"eta/eta_api/models/sandbox"
@@ -140,6 +141,9 @@ func init() {
 	if utils.BusinessCode == utils.BusinessCodeSandbox {
 		initEtaTrial()
 	}
+
+	// initDataStat 数据源统计管理相关表
+	initDataStat()
 }
 
 // initSystem 系统表 数据表
@@ -414,3 +418,13 @@ func initEtaTrial() {
 		new(eta_trial.QuestionnaireFillRecord), // 问卷填写记录表
 	)
 }
+
+// initDataStat 数据源统计管理相关表
+func initDataStat() {
+	orm.RegisterModel(
+		new(data_stat.EdbInfoDeleteLog),  // 指标删除日志表
+		new(data_stat.EdbInfoUpdateStat), // 指标更新/刷新 汇总表(数据源明细表)
+		new(data_stat.EdbInfoUpdateLog),  // 指标更新/刷新日志列表
+		new(data_stat.EdbSourceStat),     // 数据源统计表
+	)
+}

+ 9 - 0
routers/commentsRouter.go

@@ -3436,6 +3436,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbSourceStatController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbSourceStatController"],
+        beego.ControllerComments{
+            Method: "EdbDeleteLog",
+            Router: `/edb_delete_log`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbSourceStatController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbSourceStatController"],
         beego.ControllerComments{
             Method: "Column",

+ 2 - 1
services/data/edb_classify.go

@@ -5,6 +5,7 @@ import (
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/data_stat"
 	"eta/eta_api/utils"
 	"fmt"
 	"strconv"
@@ -573,7 +574,7 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 			err = errors.New("删除失败,Err:" + tmpErr.Error())
 			return
 		}
-
+		go data_stat.AddEdbDeleteLog(edbInfo, sysUser)
 		// 返回下一个表格的信息
 		{
 			var condition string

+ 63 - 0
services/data_stat/edb_delete_log.go

@@ -0,0 +1,63 @@
+package data_stat
+
+import (
+	"eta/eta_api/models/data_manage"
+	"eta/eta_api/models/data_stat"
+	"eta/eta_api/models/system"
+	"eta/eta_api/utils"
+	"fmt"
+	"time"
+)
+
+func AddEdbDeleteLog(edbInfo *data_manage.EdbInfo, sysUser *system.Admin) (err error) {
+	if edbInfo != nil {
+		log := new(data_stat.EdbInfoDeleteLog)
+
+		log.EdbInfoId = edbInfo.EdbInfoId
+		log.EdbInfoType = edbInfo.EdbInfoType
+		log.SourceName = edbInfo.SourceName
+		log.Source = edbInfo.Source
+		log.EdbCode = edbInfo.EdbCode
+		log.EdbName = edbInfo.EdbName
+		log.EdbNameEn = edbInfo.EdbNameEn
+		log.EdbNameSource = edbInfo.EdbNameSource
+		log.Frequency = edbInfo.Frequency
+		log.Unit = edbInfo.Unit
+		log.UnitEn = edbInfo.UnitEn
+		log.StartDate = edbInfo.StartDate
+		log.EndDate = edbInfo.EndDate
+		log.SysUserId = edbInfo.SysUserId
+		log.SysUserRealName = edbInfo.SysUserRealName
+		log.UniqueCode = edbInfo.UniqueCode
+		log.EdbCreateTime = edbInfo.CreateTime.Format(utils.FormatDateTime)
+		log.EdbModifyTime = edbInfo.ModifyTime.Format(utils.FormatDateTime)
+		log.CreateTime = time.Now().Format(utils.FormatDateTime)
+		log.MinValue = edbInfo.MinValue
+		log.MaxValue = edbInfo.MaxValue
+		log.CalculateFormula = edbInfo.CalculateFormula
+		log.EdbType = edbInfo.EdbType
+		log.LatestDate = edbInfo.LatestDate
+		log.LatestValue = edbInfo.LatestValue
+		log.MoveType = edbInfo.MoveType
+		log.MoveFrequency = edbInfo.MoveFrequency
+		log.NoUpdate = edbInfo.NoUpdate
+		log.ChartImage = edbInfo.ChartImage
+		log.Calendar = edbInfo.Calendar
+		log.DataDateType = edbInfo.DataDateType
+		log.ManualSave = edbInfo.ManualSave
+		log.TerminalCode = edbInfo.TerminalCode
+
+		log.DelSysUserId = sysUser.AdminId
+		log.DelSysUserRealName = sysUser.RealName
+		// todo 更新信息
+		/*
+			log.DataUpdateTime = edbInfo.DataUpdateTime
+					log.ErDataUpdateDate = edbInfo.ErDataUpdateDate*/
+		_, err = data_stat.AddEdbDeleteLog(log)
+		if err != nil {
+			err = fmt.Errorf("新增指标删除日志失败,Err: %s", err)
+			return
+		}
+	}
+	return
+}