base_from_gpr_risk.go 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package data_manage
  2. import (
  3. sql2 "database/sql"
  4. "eta/eta_task/global"
  5. "eta/eta_task/utils"
  6. "github.com/rdlucklib/rdluck_tools/paging"
  7. "gorm.io/gorm"
  8. "time"
  9. )
  10. type BaseFromGprRiskIndex struct {
  11. BaseFromGprRiskIndexId int `gorm:"column:base_from_gpr_risk_index_id;primaryKey;autoIncrement"`
  12. ClassifyId int
  13. IndexCode string
  14. IndexName string
  15. Frequency string
  16. Unit string
  17. Sort int
  18. StartDate string `description:"开始日期"`
  19. EndDate string `description:"结束日期"`
  20. EndValue float64
  21. CreateTime time.Time
  22. ModifyTime time.Time
  23. }
  24. func (m *BaseFromGprRiskIndex) AfterFind(db *gorm.DB) (err error) {
  25. m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
  26. m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
  27. return
  28. }
  29. // BaseFromGprRiskClassify GprRisk原始数据分类表
  30. type BaseFromGprRiskClassify struct {
  31. ClassifyId int `gorm:"column:classify_id;primaryKey;autoIncrement"`
  32. ClassifyName string `description:"分类名称"`
  33. ParentId int `description:"父级id"`
  34. SysUserId int `description:"创建人id"`
  35. SysUserRealName string `description:"创建人姓名"`
  36. Level int `description:"层级"`
  37. Sort int `description:"排序字段,越小越靠前,默认值:10"`
  38. ModifyTime time.Time `description:"修改时间"`
  39. CreateTime time.Time `description:"创建时间"`
  40. }
  41. func GetBaseFromGprRiskIndexMaxDate() (maxDate time.Time, err error) {
  42. o := global.DbMap[utils.DbNameIndex]
  43. sql := ` SELECT max(a.modify_time) AS max_date FROM base_from_gpr_risk_data as a `
  44. var timeNull sql2.NullTime
  45. err = o.Raw(sql).Scan(&timeNull).Error
  46. if err != nil {
  47. return
  48. }
  49. if timeNull.Valid {
  50. maxDate = timeNull.Time
  51. }
  52. return
  53. }
  54. type GprRiskIndexResp struct {
  55. Ret int
  56. Msg string
  57. ErrMsg string
  58. ErrCode string
  59. Data []*BaseFromGprRiskIndex
  60. }
  61. func GetBaseFromGprRiskIndexAll(dateStr string) (list []*BaseFromGprRiskIndex, err error) {
  62. o := global.DbMap[utils.DbNameIndex]
  63. sql := `SELECT * FROM base_from_gpr_risk_index WHERE end_date>=?`
  64. err = o.Raw(sql, dateStr).Find(&list).Error
  65. return
  66. }
  67. func (obj *BaseFromGprRiskIndex) AddBaseFromGprRiskIndex(item *BaseFromGprRiskIndex) (lastId int64, err error) {
  68. err = global.DbMap[utils.DbNameIndex].Create(item).Error
  69. return
  70. }
  71. func (obj *BaseFromGprRiskIndex) InsertOrUpdateBaseFromGprRiskIndex(item *BaseFromGprRiskIndex) (lastId int64, err error) {
  72. saveItem := *item
  73. o := global.DbMap[utils.DbNameIndex]
  74. result := o.FirstOrCreate(item, "base_from_gpr_risk_index_id = ?", item.BaseFromGprRiskIndexId)
  75. if result.Error != nil {
  76. err = result.Error
  77. return
  78. }
  79. if result.RowsAffected == 0 {
  80. saveItem.BaseFromGprRiskIndexId = 0
  81. result = o.Model(item).Where("base_from_gpr_risk_index_id = ?", item.BaseFromGprRiskIndexId).Updates(saveItem)
  82. if result.Error != nil {
  83. err = result.Error
  84. return
  85. }
  86. }
  87. return int64(item.BaseFromGprRiskIndexId), nil
  88. }
  89. type GprRiskClassifyResp struct {
  90. Ret int
  91. Msg string
  92. ErrMsg string
  93. ErrCode string
  94. Data []*BaseFromGprRiskClassify
  95. }
  96. func GetBaseFromGprRiskClassifyAll() (list []*BaseFromGprRiskClassify, err error) {
  97. o := global.DbMap[utils.DbNameIndex]
  98. sql := `SELECT * FROM base_from_gpr_risk_classify `
  99. err = o.Raw(sql).Find(&list).Error
  100. return
  101. }
  102. func AddBaseFromGprRiskClassify(item *BaseFromGprRiskClassify) (lastId int64, err error) {
  103. err = global.DbMap[utils.DbNameIndex].Create(item).Error
  104. return
  105. }
  106. func InsertOrUpdateBaseFromGprRiskClassify(item *BaseFromGprRiskClassify) (lastId int64, err error) {
  107. saveItem := *item
  108. o := global.DbMap[utils.DbNameIndex]
  109. result := o.FirstOrCreate(item, "classify_id = ?", item.ClassifyId)
  110. if result.Error != nil {
  111. err = result.Error
  112. return
  113. }
  114. if result.RowsAffected == 0 {
  115. saveItem.ClassifyId = 0
  116. result = o.Model(item).Where("classify_id = ?", item.ClassifyId).Updates(saveItem)
  117. if result.Error != nil {
  118. err = result.Error
  119. return
  120. }
  121. }
  122. return int64(item.ClassifyId), nil
  123. }
  124. // GetBaseFromGprRiskMaxDate 获取GprRisk消费者指数最大数据
  125. func GetBaseFromGprRiskMaxDate() (maxDate time.Time, err error) {
  126. o := global.DbMap[utils.DbNameIndex]
  127. sql := ` SELECT max(a.modify_time) as max_date FROM base_from_gpr_risk_data as a `
  128. var timeNull sql2.NullTime
  129. err = o.Raw(sql).Scan(&timeNull).Error
  130. if err != nil {
  131. return
  132. }
  133. if timeNull.Valid {
  134. maxDate = timeNull.Time
  135. }
  136. return
  137. }
  138. type BaseFromGprRiskData struct {
  139. BaseFromGprRiskDataId int `gorm:"column:base_from_gpr_risk_data_id;primaryKey;autoIncrement"`
  140. BaseFromGprRiskIndexId int `description:"指标id"`
  141. IndexCode string `description:"指标编码"`
  142. DataTime string `description:"日期"`
  143. Value string `description:"值"`
  144. CreateTime time.Time `description:"创建时间"`
  145. ModifyTime time.Time `description:"修改时间"`
  146. }
  147. // GetAllBaseFromGprRiskDataList 获取GprRisk消费者指数数据
  148. func GetAllBaseFromGprRiskDataList(startDate string) (list []*BaseFromGprRiskData, err error) {
  149. o := global.DbMap[utils.DbNameIndex]
  150. sql := `SELECT * FROM base_from_gpr_risk_data WHERE modify_time>=? ORDER BY base_from_gpr_risk_data_id ASC `
  151. err = o.Raw(sql, startDate).Find(&list).Error
  152. return
  153. }
  154. type BaseFromGprRiskDataResp struct {
  155. Ret int
  156. Msg string
  157. ErrMsg string
  158. ErrCode string
  159. Data BaseFromGprRiskDataIndexAndDataResp
  160. }
  161. // BaseFromGprRiskDataIndexAndDataResp 分页列表响应体
  162. type BaseFromGprRiskDataIndexAndDataResp struct {
  163. List []*BaseFromGprRiskData
  164. Paging *paging.PagingItem `description:"分页数据"`
  165. }
  166. // MultiAddBaseFromGprRiskDataIndex 批量添加数据
  167. func MultiAddBaseFromGprRiskDataIndex(items []*BaseFromGprRiskData) (lastId int64, err error) {
  168. num := len(items)
  169. if num <= 0 {
  170. return
  171. }
  172. o := global.DbMap[utils.DbNameIndex]
  173. err = o.CreateInBatches(items, utils.MultiAddNum).Error
  174. return
  175. }