123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- package fe_calendar
- import (
- "eta/eta_api/utils"
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "strings"
- "time"
- )
- const (
- MatterTypeFree = 1 // 事项类型-自定义事项
- MatterTypeEdb = 2 // 事项类型-基础指标
- MatterTypePredict = 3 // 事项类型-预测指标
- )
- // FeCalendarMatter 外汇日历-事项表
- type FeCalendarMatter struct {
- FeCalendarMatterId int `orm:"column(fe_calendar_matter_id);pk" description:"事项ID"`
- ChartPermissionId int `description:"品种ID"`
- ChartPermissionName string `description:"品种名称"`
- MatterMonth string `description:"事项年月:格式2006-01"`
- MatterDate time.Time `description:"事项日期"`
- Title string `description:"标题"`
- MatterType int `description:"事项类型:1-自定义事项;2-基础指标;3-预测指标"`
- EdbInfoId int `description:"指标ID"`
- EdbUniqueCode string `description:"指标唯一编码"`
- EdbCode string `description:"指标编码"`
- FontColor string `description:"字体颜色"`
- FillingColor string `description:"填充颜色"`
- FontBold int `description:"字体加粗:0-否;1-是"`
- Sort int `description:"排序"`
- SysUserId int `description:"创建人ID"`
- SysUserName string `description:"创建人姓名"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time `description:"更新时间"`
- }
- var FeCalendarMatterCols = struct {
- FeCalendarMatterId string
- ChartPermissionId string
- ChartPermissionName string
- MatterMonth string
- MatterDate string
- Title string
- MatterType string
- EdbInfoId string
- EdbUniqueCode string
- EdbCode string
- FontColor string
- FillingColor string
- FontBold string
- Sort string
- SysUserId string
- SysUserName string
- CreateTime string
- ModifyTime string
- }{
- FeCalendarMatterId: "fe_calendar_matter_id",
- ChartPermissionId: "chart_permission_id",
- ChartPermissionName: "chart_permission_name",
- MatterMonth: "matter_month",
- MatterDate: "matter_date",
- Title: "title",
- MatterType: "matter_type",
- EdbInfoId: "edb_info_id",
- EdbUniqueCode: "edb_unique_code",
- EdbCode: "edb_code",
- FontColor: "font_color",
- FillingColor: "filling_color",
- FontBold: "font_bold",
- Sort: "sort",
- SysUserId: "sys_user_id",
- SysUserName: "sys_user_name",
- CreateTime: "create_time",
- ModifyTime: "modify_time",
- }
- func (m *FeCalendarMatter) TableName() string {
- return "fe_calendar_matter"
- }
- func (m *FeCalendarMatter) PrimaryId() string {
- return FeCalendarMatterCols.FeCalendarMatterId
- }
- func (m *FeCalendarMatter) Create() (err error) {
- o := orm.NewOrmUsingDB("data")
- id, err := o.Insert(m)
- if err != nil {
- return
- }
- m.FeCalendarMatterId = int(id)
- return
- }
- func (m *FeCalendarMatter) CreateMulti(items []*FeCalendarMatter) (err error) {
- if len(items) == 0 {
- return
- }
- o := orm.NewOrmUsingDB("data")
- _, err = o.InsertMulti(len(items), items)
- return
- }
- func (m *FeCalendarMatter) Update(cols []string) (err error) {
- o := orm.NewOrmUsingDB("data")
- _, err = o.Update(m, cols...)
- return
- }
- func (m *FeCalendarMatter) Del() (err error) {
- o := orm.NewOrmUsingDB("data")
- sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
- _, err = o.Raw(sql, m.FeCalendarMatterId).Exec()
- return
- }
- func (m *FeCalendarMatter) MultiDel(menuIds []int) (err error) {
- if len(menuIds) == 0 {
- return
- }
- o := orm.NewOrmUsingDB("data")
- sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
- _, err = o.Raw(sql, menuIds).Exec()
- return
- }
- func (m *FeCalendarMatter) GetItemById(id int) (item *FeCalendarMatter, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
- err = o.Raw(sql, id).QueryRow(&item)
- return
- }
- func (m *FeCalendarMatter) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FeCalendarMatter, err error) {
- o := orm.NewOrmUsingDB("data")
- order := ``
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
- err = o.Raw(sql, pars).QueryRow(&item)
- return
- }
- func (m *FeCalendarMatter) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- func (m *FeCalendarMatter) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FeCalendarMatter, err error) {
- o := orm.NewOrmUsingDB("data")
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := fmt.Sprintf(`ORDER BY %s DESC`, FeCalendarMatterCols.CreateTime)
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- func (m *FeCalendarMatter) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FeCalendarMatter, err error) {
- o := orm.NewOrmUsingDB("data")
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := fmt.Sprintf(`ORDER BY %s DESC`, FeCalendarMatterCols.CreateTime)
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- type FeCalendarMatterItem struct {
- FeCalendarMatterId int `description:"事项ID"`
- ChartPermissionId int `description:"品种ID"`
- ChartPermissionName string `description:"品种名称"`
- MatterDate string `description:"事项日期"`
- Title string `description:"标题"`
- MatterType int `description:"事项类型:1-自定义事项;2-基础指标;3-预测指标"`
- EdbInfoId int `description:"指标ID"`
- EdbUniqueCode string `description:"指标唯一编码"`
- EdbCode string `description:"指标编码"`
- FontColor string `description:"字体颜色"`
- FillingColor string `description:"填充颜色"`
- FontBold int `description:"字体加粗:0-否;1-是"`
- Sort int `description:"排序"`
- }
- func FormatFeCalendarMatter2Item(origin *FeCalendarMatter) (item *FeCalendarMatterItem) {
- if origin == nil {
- return
- }
- item = new(FeCalendarMatterItem)
- item.FeCalendarMatterId = origin.FeCalendarMatterId
- item.ChartPermissionId = origin.ChartPermissionId
- item.ChartPermissionName = origin.ChartPermissionName
- item.MatterDate = utils.TimeTransferString(utils.FormatDate, origin.MatterDate)
- item.Title = origin.Title
- item.MatterType = origin.MatterType
- item.EdbInfoId = origin.EdbInfoId
- item.EdbUniqueCode = origin.EdbUniqueCode
- item.EdbCode = origin.EdbCode
- item.FontColor = origin.FontColor
- item.FillingColor = origin.FillingColor
- item.FontBold = origin.FontBold
- item.Sort = origin.Sort
- return
- }
- // FeCalendarMatterListReq 事项列表请求体
- type FeCalendarMatterListReq struct {
- ChartPermissionId int `form:"ChartPermissionId" description:"品种ID"`
- StartDate string `form:"StartDate" description:"开始日期"`
- EndDate string `form:"EndDate" description:"结束日期"`
- }
- // FeCalendarMatterListItem 事项列表
- type FeCalendarMatterListItem struct {
- Date string `description:"日期"`
- Matters []*FeCalendarMatterItem `description:"日期事项"`
- }
- // FeCalendarMatterSaveReq 保存事项请求体
- type FeCalendarMatterSaveReq struct {
- ChartPermissionId int `description:"品种ID"`
- MatterDate string `description:"日期"`
- Matters []*FeCalendarMatterSaveItem `description:"事项"`
- }
- type FeCalendarMatterSaveItem struct {
- FeCalendarMatterId int `description:"事项ID"`
- Title string `description:"标题"`
- MatterType int `description:"事项类型:1-自定义事项;2-基础指标;3-预测指标"`
- EdbInfoId int `description:"指标ID"`
- EdbUniqueCode string `description:"指标唯一编码"`
- EdbCode string `description:"指标编码"`
- FontColor string `description:"字体颜色"`
- FillingColor string `description:"填充颜色"`
- FontBold int `description:"字体加粗:0-否;1-是"`
- Sort int `description:"排序"`
- }
- func (m *FeCalendarMatter) Save(addMatters, editMatters, removeMatters []*FeCalendarMatter, updateCols []string) (err error) {
- o := orm.NewOrmUsingDB("data")
- tx, e := o.Begin()
- if e != nil {
- err = fmt.Errorf("begin tx err: %s", e.Error())
- return
- }
- defer func() {
- if err != nil {
- _ = tx.Rollback()
- return
- }
- _ = tx.Commit()
- }()
- if len(addMatters) > 0 {
- _, e = tx.InsertMulti(len(addMatters), addMatters)
- if e != nil {
- err = fmt.Errorf("insert multi err: %s", e.Error())
- return
- }
- }
- if len(editMatters) > 0 {
- for _, v := range editMatters {
- _, e = tx.Update(v, updateCols...)
- if e != nil {
- err = fmt.Errorf("update err: %s", e.Error())
- return
- }
- }
- }
- if len(removeMatters) > 0 {
- p, e := tx.Raw(fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())).Prepare()
- if e != nil {
- err = fmt.Errorf("remove prepare err: %s", e.Error())
- return
- }
- defer func() {
- _ = p.Close()
- }()
- for _, v := range removeMatters {
- _, e = p.Exec(v.FeCalendarMatterId)
- if e != nil {
- err = fmt.Errorf("remove exec err: %s", e.Error())
- return
- }
- }
- }
- return
- }
|