ermcpGGConvertconfig.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * @Author: zou.yingbin
  3. * @Create : 2021/1/27 9:50
  4. * @Modify : 2021/1/27 9:50
  5. */
  6. package models
  7. import (
  8. "fmt"
  9. "mtp2_if/db"
  10. "mtp2_if/mtpcache"
  11. )
  12. // 期货品种系数表
  13. type ErmcpGGConvertCfg struct {
  14. Srcgoodsgroupid int32 `json:"srcgoodsgroupid" xorm:"'Srcgoodsgroupid'"` // 源品种ID
  15. Destgoodsgroupid int32 `json:"destgoodsgroupid" xorm:"'Destgoodsgroupid'"` // 目标品种ID
  16. Convertratio float64 `json:"convertratio" xorm:"'Convertratio'"` // 折算系数
  17. SrcName string `json:"srcname" xorm:"'SrcName'"` // 源品种名称
  18. SrcCode string `json:"srccode" xorm:"'SrcCode'"` // 源品种代码
  19. SrcUnitid uint32 `json:"srcunitid" xorm:"'SrcUnitid'"` // 源品种单位ID
  20. SrcUnitidName string `json:"srcunitidname" xorm:"'-'"` // 源品种单位名称
  21. DstName string `json:"dstname" xorm:"'DstName'"` // 目标品种名称
  22. DstCode string `json:"dstcode" xorm:"'DstCode'"` // 目录品种代码
  23. DstUnitid uint32 `json:"dstunitid" xorm:"'DstUnitid'"` // 目标品种单位ID
  24. DstUnitidName string `json:"dstunitidname" xorm:"'-'"` // 目标品种单位名称
  25. }
  26. func (r *ErmcpGGConvertCfg) Calc() {
  27. r.SrcUnitidName = mtpcache.GetEnumDicitemName(int32(r.SrcUnitid))
  28. r.DstUnitidName = mtpcache.GetEnumDicitemName(int32(r.DstUnitid))
  29. }
  30. // 获取数据
  31. func (r *ErmcpGGConvertCfg) GetData() ([]interface{}, error) {
  32. sData := make([]ErmcpGGConvertCfg, 0)
  33. if err := db.GetEngine().SQL(r.buildSql()).Find(&sData); err != nil {
  34. return nil, err
  35. }
  36. iData := make([]interface{}, 0)
  37. for i := range sData {
  38. iData = append(iData, &sData[i])
  39. }
  40. return iData, nil
  41. }
  42. func (r *ErmcpGGConvertCfg) buildSql() string {
  43. sqlId := "select t.srcgoodsgroupid," +
  44. " t.destgoodsgroupid," +
  45. " t.convertratio," +
  46. " g1.goodsgroupname srcName," +
  47. " g1.outergroupcode srcCode," +
  48. " g1.goodunitid srcUnitid," +
  49. " g2.goodsgroupname dstName," +
  50. " g2.outergroupcode dstCode," +
  51. " g2.goodunitid dstUnitid" +
  52. " from ERMCP_GGConvertconfig t" +
  53. " left join goodsgroup g1" +
  54. " on t.srcgoodsgroupid = g1.goodsgroupid" +
  55. " left join goodsgroup g2" +
  56. " on t.destgoodsgroupid = g2.goodsgroupid" +
  57. " where 1 = 1 "
  58. if r.Destgoodsgroupid > 0 {
  59. sqlId = sqlId + fmt.Sprintf("and t.Destgoodsgroupid=%v", r.Destgoodsgroupid)
  60. }
  61. return sqlId
  62. }