|
|
@@ -38,7 +38,7 @@ func (r *ErmcpMiddleGoodsModel) Calc() {
|
|
|
// 获取套保品种数据
|
|
|
func (r *ErmcpMiddleGoodsModel) GetData() ([]interface{}, error) {
|
|
|
sData := make([]ErmcpMiddleGoodsModel, 0)
|
|
|
- if err := db.GetEngine().SQL(r.buildSql()).Find(&sData); err != nil{
|
|
|
+ if err := db.GetEngine().SQL(r.buildSql()).Find(&sData); err != nil {
|
|
|
logger.GetLogger().Error(err)
|
|
|
return nil, err
|
|
|
}
|
|
|
@@ -49,6 +49,19 @@ func (r *ErmcpMiddleGoodsModel) GetData() ([]interface{}, error) {
|
|
|
return iData, nil
|
|
|
}
|
|
|
|
|
|
+// 获取套保品种数据2
|
|
|
+func (r *ErmcpMiddleGoodsModel) GetData2() ([]ErmcpMiddleGoodsModel, error) {
|
|
|
+ sData := make([]ErmcpMiddleGoodsModel, 0)
|
|
|
+ if err := db.GetEngine().SQL(r.buildSql()).Find(&sData); err != nil {
|
|
|
+ logger.GetLogger().Error(err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].Calc()
|
|
|
+ }
|
|
|
+ return sData, nil
|
|
|
+}
|
|
|
+
|
|
|
func (r *ErmcpMiddleGoodsModel) buildSql() string {
|
|
|
sqlId := "select MIDDLEGOODSID," +
|
|
|
" MIDDLEGOODSNAME," +
|
|
|
@@ -65,9 +78,68 @@ func (r *ErmcpMiddleGoodsModel) buildSql() string {
|
|
|
" ISVALID" +
|
|
|
" from erms_middlegoods t" +
|
|
|
" where 1=1 "
|
|
|
- if r.AREAUSERID > 0{
|
|
|
+ if r.AREAUSERID > 0 {
|
|
|
sqlId = sqlId + fmt.Sprintf(" and AREAUSERID = %v", r.AREAUSERID)
|
|
|
}
|
|
|
- sqlId = sqlId + fmt.Sprintf(" and ISVALID=%v", r.ISVALID)
|
|
|
+ if r.ISVALID >= 0{
|
|
|
+ sqlId = sqlId + fmt.Sprintf(" and ISVALID=%v", r.ISVALID)
|
|
|
+ }
|
|
|
return sqlId
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+///////////////////////////////
|
|
|
+
|
|
|
+// 期货品种折算配置表
|
|
|
+type GoodsGroupConvert struct {
|
|
|
+ Middlegoodsid uint32 `json:"middlegoodsid" xorm:"'Middlegoodsid'"` // 套保品种ID
|
|
|
+ Convertratio float64 `json:"convertratio" xorm:"'Convertratio'"` // 折算系数
|
|
|
+ Goodsgroupid int32 `json:"goodsgroupid" xorm:"'Goodsgroupid'"` // 期货品种ID
|
|
|
+ Goodsgroupname string `json:"goodsgroupname" xorm:"'Goodsgroupname'"` // 期货品种名称
|
|
|
+ Outergroupcode string `json:"outergroupcode" xorm:"'Outergroupcode'"` // 期货品种代码
|
|
|
+}
|
|
|
+
|
|
|
+func (r *GoodsGroupConvert) buildSql() string {
|
|
|
+ sqlId := "select t.middlegoodsid," +
|
|
|
+ " t.convertratio," +
|
|
|
+ " t.goodsgroupid," +
|
|
|
+ " g.goodsgroupname," +
|
|
|
+ " g.outergroupcode" +
|
|
|
+ " from erms_goodsgroupconvert t" +
|
|
|
+ " left join goodsgroup g" +
|
|
|
+ " on t.goodsgroupid = g.goodsgroupid" +
|
|
|
+ " where 1=1"
|
|
|
+ if r.Middlegoodsid > 0 {
|
|
|
+ sqlId = sqlId + fmt.Sprintf(" and Middlegoodsid=%v", r.Middlegoodsid)
|
|
|
+ }
|
|
|
+ return sqlId
|
|
|
+}
|
|
|
+
|
|
|
+// 获取期货品种配置详情
|
|
|
+func (r *GoodsGroupConvert) GetData() ([]GoodsGroupConvert, error) {
|
|
|
+ sData := make([]GoodsGroupConvert, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ return sData, err
|
|
|
+}
|
|
|
+
|
|
|
+// 套保品种详情
|
|
|
+type ErmcpMiddleGoodsDetail struct {
|
|
|
+ Mg ErmcpMiddleGoodsModel // 套保品种基本信息
|
|
|
+ CvList []GoodsGroupConvert // 期货品种折算列表
|
|
|
+}
|
|
|
+
|
|
|
+// 获取套保品种详情
|
|
|
+func (r *ErmcpMiddleGoodsDetail) GetData() (ErmcpMiddleGoodsDetail, error) {
|
|
|
+ // 查基本信息
|
|
|
+ m := ErmcpMiddleGoodsModel{AREAUSERID: r.Mg.AREAUSERID, MIDDLEGOODSID: r.Mg.MIDDLEGOODSID, ISVALID: -1}
|
|
|
+ d, err := m.GetData2()
|
|
|
+ if err != nil || len(d) == 0 {
|
|
|
+ return ErmcpMiddleGoodsDetail{}, fmt.Errorf("no record")
|
|
|
+ }
|
|
|
+ rsp := ErmcpMiddleGoodsDetail{Mg: d[0]}
|
|
|
+ // 查折算表
|
|
|
+ md := GoodsGroupConvert{Middlegoodsid: r.Mg.MIDDLEGOODSID}
|
|
|
+ if val, err := md.GetData(); err == nil {
|
|
|
+ rsp.CvList = val
|
|
|
+ }
|
|
|
+ return rsp, nil
|
|
|
+}
|