فهرست منبع

1. fix bug #95555 #95503
2. 查询期货子账户返回保证金/手续费模板
3. 增加查询客户资料接口
4. 增加查询托管银行接口
5. 增加查询资讯接口

zou.yingbin 4 سال پیش
والد
کامیت
18ca55dba2
11فایلهای تغییر یافته به همراه1944 افزوده شده و 2040 حذف شده
  1. 63 0
      controllers/qhj/qryQhj.go
  2. 657 566
      docs/docs.go
  3. 657 566
      docs/swagger.json
  4. 130 887
      docs/swagger.yaml
  5. 1 0
      models/ermcp3Report.go
  6. 27 10
      models/ermcpAccMgr.go
  7. 8 7
      models/ermcpCommon.go
  8. 1 1
      models/ermcpExposure.go
  9. 396 2
      models/qhj.go
  10. 1 1
      mtpcache/systemmanager.go
  11. 3 0
      routers/router.go

+ 63 - 0
controllers/qhj/qryQhj.go

@@ -240,3 +240,66 @@ func QueryReckonPriceLog(c *gin.Context) {
 	a.DoBindReq(&m)
 	a.DoGetDataI(&m)
 }
+
+// QueryCustomerInfo
+// @Summary 查询客户资料
+// @Produce json
+// @Security ApiKeyAuth
+// @Param userid query int true "用户ID"
+// @Param querytype query int true "查询类型 1:未提交(网上开户表) 2:待审核(网上开户表) 3:正常 4:停用"
+// @Param userinfotype query int false "客户类型 1-个人 2-企业"
+// @Param customername query string false "客户名称(模糊匹配)"
+// @Param nickname query string false "昵称(模糊匹配)"
+// @Param includesub query int false "是否包含子级 1-包含"
+// @Success 200 {array} models.QhjCustomer
+// @Failure 500 {object} app.Response
+// @Router /Qhj/QueryCustomerInfo [get]
+// @Tags 大连千海金
+func QueryCustomerInfo(c *gin.Context) {
+	a := app.GinUtils{Gin: app.Gin{C: c}}
+	req := struct {
+		USERID       int64  `form:"userid" binding:"required"`                // 用户id
+		QUERYTYPE    int32  `form:"querytype" binding:"required,min=1,max=4"` // 查询类型
+		USERINFOTYPE int32  `form:"userinfotype"`                             // 客户类型
+		CUSTOMERNAME string `form:"customername"`                             // 客户名称
+		NICKNAME     string `form:"nickname"`                                 // 昵称
+		INCLUDESUB   int32  `form:"includesub"`                               // 是否包含子级
+	}{}
+	a.DoBindReq(&req)
+	m := models.QhjCustomer{USERID: req.USERID, USERINFOTYPE: req.USERINFOTYPE, QUERYTYPE: req.QUERYTYPE,
+		CUSTOMERNAME: req.CUSTOMERNAME, NICKNAME: req.NICKNAME, IncludeSub: req.INCLUDESUB}
+	a.DoGetDataI(&m)
+}
+
+// QueryCusBankSignBank
+// @Summary 查询托管银行
+// @Produce json
+// @Security ApiKeyAuth
+// @Success 200 {array} models.QhjCusBankSignBankEx
+// @Failure 500 {object} app.Response
+// @Router /Qhj/QueryCusBankSignBank [get]
+// @Tags 大连千海金
+func QueryCusBankSignBank(c *gin.Context) {
+	a := app.GinUtils{Gin: app.Gin{C: c}}
+	m := models.QhjCusBankSignBankEx{}
+	a.DoGetDataI(&m)
+}
+
+// QuerySiteColumnDetail
+// @Summary 查询资讯
+// @Produce json
+// @Security ApiKeyAuth
+// @Param userid query int true "用户ID"
+// @Success 200 {array} models.QhjSiteColumnDetail
+// @Failure 500 {object} app.Response
+// @Router /Qhj/QuerySiteColumnDetail [get]
+// @Tags 大连千海金
+func QuerySiteColumnDetail(c *gin.Context) {
+	a := app.GinUtils{Gin: app.Gin{C: c}}
+	req := struct {
+		USERID int64 `form:"userid"` // 用户id
+	}{}
+	a.DoBindReq(&req)
+	m := models.QhjSiteColumnDetail{USERID: req.USERID}
+	a.DoGetDataI(&m)
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 657 - 566
docs/docs.go


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 657 - 566
docs/swagger.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 130 - 887
docs/swagger.yaml


+ 1 - 0
models/ermcp3Report.go

@@ -1170,6 +1170,7 @@ func (r *Ermcp3FinanceReport) calc() {
 	f(&r.SELLPREINVOICEDAMOUNT)
 	f(&r.BUYUNINVOICEDAMOUNT)
 	f(&r.SELLPREPAIDAMOUNT)
+	f(&r.BUYPREINVOICEDAMOUNT)
 }
 
 // getSumField 获取汇总维度字段

+ 27 - 10
models/ermcpAccMgr.go

@@ -308,14 +308,20 @@ type ErmcpTaAccountM struct {
 
 // ErmcpTaAccount 期货账户
 type ErmcpTaAccount struct {
-	ACCOUNTID       int64  `json:"accountid"  xorm:"'ACCOUNTID'"`             // 账户id
-	CURRENCYID      int32  `json:"currencyid"  xorm:"'CURRENCYID'"`           // 币种id
-	TRADESTATUS     int32  `json:"tradestatus"  xorm:"'TRADESTATUS'"`         // 交易状态 - 1:正常 2:受限 3:冻结 4:禁止建仓(人工受限) 5:禁止交易(人工冻结) 6:待激活 7:已注销
-	ISMAIN          int32  `json:"ismain"  xorm:"'ISMAIN'"`                   // 是否主账户 0-否 1-是
-	USERID          int64  `json:"userid"  xorm:"'USERID'"`                   // 用户id
-	RELATEDUSERID   int64  `json:"relateduserid"  xorm:"'RELATEDUSERID'"`     // 关联userid
-	ACCOUNTNAME     string `json:"accountname"  xorm:"'ACCOUNTNAME'"`         // 账户名称
-	PARENTACCOUNTID int64  `json:"parentaccountid"  xorm:"'PARENTACCOUNTID'"` // 父账户id
+	ACCOUNTID          int64  `json:"accountid"  xorm:"'ACCOUNTID'"`                   // 账户id
+	CURRENCYID         int32  `json:"currencyid"  xorm:"'CURRENCYID'"`                 // 币种id
+	TRADESTATUS        int32  `json:"tradestatus"  xorm:"'TRADESTATUS'"`               // 交易状态 - 1:正常 2:受限 3:冻结 4:禁止建仓(人工受限) 5:禁止交易(人工冻结) 6:待激活 7:已注销
+	ISMAIN             int32  `json:"ismain"  xorm:"'ISMAIN'"`                         // 是否主账户 0-否 1-是
+	USERID             int64  `json:"userid"  xorm:"'USERID'"`                         // 用户id
+	RELATEDUSERID      int64  `json:"relateduserid"  xorm:"'RELATEDUSERID'"`           // 关联userid
+	ACCOUNTNAME        string `json:"accountname"  xorm:"'ACCOUNTNAME'"`               // 账户名称
+	PARENTACCOUNTID    int64  `json:"parentaccountid"  xorm:"'PARENTACCOUNTID'"`       // 父账户id
+	TRADEMARGINTMPID   int32  `json:"trademargintmpid"  xorm:"'TRADEMARGINTMPID'"`     // 保证金模板id
+	TRADEFEETMPID      int32  `json:"tradefeetmpid"  xorm:"'TRADEFEETMPID'"`           // 手续费模板id
+	TRADERATETMPID     int32  `json:"traderatetmpid"  xorm:"'TRADERATETMPID'"`         // 汇率模板id
+	TRADEMARGINTMPNAME string `json:"trademargintmpname"  xorm:"'TRADEMARGINTMPNAME'"` // 保证金模板名称
+	TRADEFEETMPNAME    string `json:"tradefeetmpname"  xorm:"'TRADEFEETMPNAME'"`       // 手续费模板名称
+	TRADERATETMPNAME   string `json:"traderatetmpname"  xorm:"'TRADERATETMPNAME'"`     // 汇率模板名称
 
 	HEDGEACCOUNTCODE string `json:"hedgeaccountcode"  xorm:"'HEDGEACCOUNTCODE'"` // 主账号登录代码(仅当是主账号时有值,子账号没有登录账号)
 }
@@ -333,12 +339,23 @@ func (r *ErmcpTaAccount) buildSql() string {
 		"       t.relateduserid," +
 		"       t.accountname," +
 		"       t.parentaccountid," +
-		"       l.hedgeaccountcode" +
+		"       l.hedgeaccountcode," +
+		"       c.trademargintmpid," +
+		"       c.tradefeetmpid," +
+		"       c.traderatetmpid," +
+		"       a.tradeconfigtmpname trademargintmpname," +
+		"       b.tradeconfigtmpname tradefeetmpname," +
+		"       k.tradeconfigtmpname traderatetmpname" +
 		"  from taaccount t" +
 		"  left join hedge_outmainconfig l" +
 		"    on t.accountid = l.accountid" +
 		"   and t.ismain = 1" +
-		" where 1 = 1 and t.taaccounttype = 1"
+		"  left join taaccountconfig c on t.accountid=c.accountid" +
+		"  left join tradeconfigtmp a on c.trademargintmpid = a.tradeconfigtmpid" +
+		"  left join tradeconfigtmp b on c.tradefeetmpid = b.tradeconfigtmpid" +
+		"  left join tradeconfigtmp k on c.traderatetmpid = k.tradeconfigtmpid" +
+		" where 1 = 1" +
+		"   and t.taaccounttype = 1"
 	sqlId.And("t.userid", r.USERID)
 	return sqlId.String()
 }

+ 8 - 7
models/ermcpCommon.go

@@ -14,13 +14,6 @@ import (
 
 type ReportType int
 
-const (
-	_ ReportType = iota
-
-	RTypeDay   // 日报表
-	RTypeMonth // 月报表
-)
-
 // IErmcp 通用接口
 type IErmcp interface {
 	calc()                           // 相关计算和数据处理
@@ -43,3 +36,11 @@ func DecryptField(oriStr string) string {
 
 	return oriStr
 }
+
+// DecodeStr 类似于问号表达式, true返回第1个 false返回第2个
+func DecodeStr(condition bool, strTrue, strFalse string) string {
+	if condition {
+		return strTrue
+	}
+	return strFalse
+}

+ 1 - 1
models/ermcpExposure.go

@@ -77,7 +77,7 @@ func (r *ErmcpRealExposureModel) calc() {
 	r.DiffSpotQty = r.TotalSpotQty - r.OriTotalSpotQty
 	r.DiffFutuQty = r.TotalFutureQty - r.ORITOTALFUTUREQTY
 	r.DiffHedgeQty = r.HEDGEQTY - r.ORIHEDGEQTY
-	r.DiffArbitrageQty = r.ARBITRAGEQTY - r.ORIHEDGEQTY
+	r.DiffArbitrageQty = r.ARBITRAGEQTY - r.ORIARBITRAGEQTY
 	r.DiffSpotHedgeQty = r.TotalNeedHedgeQty - r.ORITOTALNEEDHEDGEQTY
 	r.DiffExposoureQty = r.NeedHedgeExposoure - r.ORINEEDHEDGEEXPOSOURE
 	r.DiffQty = r.TotalExposure - r.ORITOTALEXPOSURE

+ 396 - 2
models/qhj.go

@@ -780,8 +780,8 @@ func (r *QhjBankInfo) buildSql() string {
 	return sqlId.String()
 }
 
-// GetDataEx 获取银行信息列表
-func (r *QhjBankInfo) GetDataEx() (interface{}, error) {
+// GetData 获取银行信息列表
+func (r *QhjBankInfo) GetData() ([]QhjBankInfo, error) {
 	sData := make([]QhjBankInfo, 0)
 	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
 	for i := range sData {
@@ -790,6 +790,11 @@ func (r *QhjBankInfo) GetDataEx() (interface{}, error) {
 	return sData, err
 }
 
+// GetDataEx 获取银行信息列表
+func (r *QhjBankInfo) GetDataEx() (interface{}, error) {
+	return r.GetData()
+}
+
 // QhjReckonPriceLog 结算价(定投价)
 type QhjReckonPriceLog struct {
 	LASTRECKONPRICE  float64 `json:"lastreckonprice"  xorm:"LASTRECKONPRICE"`      // 上日结算价
@@ -849,3 +854,392 @@ func (r *QhjReckonPriceLog) GetDataEx() (interface{}, error) {
 	}
 	return sData, err
 }
+
+// QhjCustomer 客户资料
+type QhjCustomer struct {
+	USERID            int64  `json:"userid"  xorm:"'USERID'"`                       // 用户ID
+	MEMBERUSERID      int64  `json:"memberuserid"  xorm:"'MEMBERUSERID'"`           // 所属机构ID(所属会员)
+	PARENTUSERID      int64  `json:"parentuserid"  xorm:"'PARENTUSERID'"`           // 上级机构(所属机构)
+	USERINFOTYPE      int32  `json:"userinfotype"  xorm:"'USERINFOTYPE'"`           // 客户类型 1-个人 2-企业
+	CUSTOMERNAME      string `json:"customername"  xorm:"'CUSTOMERNAME'"`           // 客户名称
+	CARDTYPE          int32  `json:"cardtype"  xorm:"'CARDTYPE'"`                   // 证件类型
+	CARDNUM           string `json:"cardnum"  xorm:"'CARDNUM'"`                     // 证件号码
+	MOBILE            string `json:"mobile"  xorm:"'MOBILE'"`                       // 手机号码
+	TELPHONE          string `json:"telphone"  xorm:"'TELPHONE'"`                   // 联系电话
+	ADDRESS           string `json:"address"  xorm:"'ADDRESS'"`                     // 通讯地址
+	REMARK            string `json:"remark"  xorm:"'REMARK'"`                       // 备注
+	STATUS            int32  `json:"status"  xorm:"'STATUS'"`                       // 账户状态 -  1:待激活 2:待审核 3:待复审 4:正常 5:审核拒绝 6:注销
+	STATUSDESC        string `json:"statusdesc"`                                    // 账户状态中文描述
+	ATTACHMENT1       string `json:"attachment1"  xorm:"'ATTACHMENT1'"`             // 附件1
+	CARDFRONTPHOTOURL string `json:"cardfrontphotourl"  xorm:"'CARDFRONTPHOTOURL'"` // 证件正面图片地址
+	CARDBACKPHOTOURL  string `json:"cardbackphotourl"  xorm:"'CARDBACKPHOTOURL'"`   // 证件反面图片地址
+	COUNTRYID         int32  `json:"countryid"  xorm:"'COUNTRYID'"`                 // 国家
+	PROVINCEID        int32  `json:"provinceid"  xorm:"'PROVINCEID'"`               // 省
+	CITYID            int32  `json:"cityid"  xorm:"'CITYID'"`                       // 市
+	DISTRICTID        int32  `json:"districtid"  xorm:"'DISTRICTID'"`               // 区域
+	CREATETIME        string `json:"createtime"  xorm:"'CREATETIME'"`               // 创建时间
+	MODIFYTIME        string `json:"modifytime"  xorm:"'MODIFYTIME'"`               // 修改时间
+	AUDITTIME         string `json:"audittime"  xorm:"'AUDITTIME'"`                 // 审核时间
+	NICKNAME          string `json:"nickname"  xorm:"'NICKNAME'"`                   // 昵称
+	TAXPAYERNUM       string `json:"taxpayernum"  xorm:"'taxpayernum'"`             // 纳税人识别号
+	LEGALPERSONNAME   string `json:"legalpersonname"  xorm:"'legalpersonname'"`     // 法人姓名(企业)
+	CONTACTNAME       string `json:"contactname"  xorm:"'contactname'"`             // 联系人
+	EMAIL             string `json:"email"  xorm:"'EMAIL'"`                         // 邮件
+
+	COUNTRYNAME    string `json:"countryname"`    // 国家名称
+	CITYNAME       string `json:"cityname"`       // 城市名称
+	PROVINCENAME   string `json:"provincename"`   // 省名称
+	DISTRICTNAME   string `json:"districtname"`   // 地区名称
+	CARDTYPENAME   string `json:"cardtypename"`   // 证件类型名称
+	MEMBERUSERNAME string `json:"memberusername"` // 所属会员名称
+	USERNAME       string `json:"username"`       // 用户名称
+	PARENTUSERNAME string `json:"parentusername"` //所属机构名称
+
+	QUERYTYPE  int32 `json:"-"` // 查询类型(1:未提交(网上开户表) 2:待审核(网上开户表) 3:正常 4:停用)
+	IncludeSub int32 `json:"-"` // 包子机构客户 1-包含
+}
+
+func (r *QhjCustomer) calc() {
+	r.MEMBERUSERNAME = mtpcache.GetUserNameByUserId(r.MEMBERUSERID)
+	r.USERNAME = mtpcache.GetUserNameByUserId(r.USERID)
+	r.PARENTUSERNAME = mtpcache.GetUserNameByUserId(r.PARENTUSERID)
+	r.COUNTRYNAME = mtpcache.GetDivisionName(r.COUNTRYID)
+	r.CITYNAME = mtpcache.GetDivisionName(r.CITYID)
+	r.PROVINCENAME = mtpcache.GetDivisionName(r.PROVINCEID)
+	r.DISTRICTNAME = mtpcache.GetDivisionName(r.DISTRICTID)
+}
+
+func (r *QhjCustomer) level() int32 {
+	if r.IncludeSub > 0 {
+		// 层级, 最多20层
+		return 20
+	}
+	return 1
+}
+
+func (r *QhjCustomer) buildSql() string {
+	if r.QUERYTYPE == 1 || r.QUERYTYPE == 2 {
+		return r.buildSqlWskh()
+	}
+	return r.buildSqlNormal()
+}
+
+func (r *QhjCustomer) buildSqlWskh() string {
+	var sqlId utils.SQLVal = "with tmp as" +
+		" (select t.userid, wm_concat(t.logincode) logincode" +
+		"    from loginaccount t" +
+		"   group by t.userid)" +
+		"select a.*, k.logincode" +
+		"  from (select t.userid," +
+		"               t.memberareaid MEMBERUSERID," +
+		"               t.USERINFOTYPE," +
+		"               t.CUSTOMERNAME," +
+		"               t.NICKNAME," +
+		"               t.CARDTYPE," +
+		"               t.CARDNUM," +
+		"               t.mobilephone MOBILE," +
+		"               t.TELPHONE," +
+		"               t.cardaddress ADDRESS," +
+		"               t.REMARK," +
+		"               t.ATTACHMENT1," +
+		"               t.CARDFRONTPHOTOURL," +
+		"               t.CARDBACKPHOTOURL," +
+		"               t.userstate status," +
+		"               t.countryid," +
+		"               t.provinceid," +
+		"               t.districtid," +
+		"               to_char(t.createtime, 'yyyy-mm-dd hh24:mi:ss') createtime," +
+		"               t.cityid," +
+		"               to_char(t.modifiedtime, 'yyyy-mm-dd hh24:mi:ss') modifytime," +
+		"               to_char(t.auditime, 'yyyy-mm-dd hh24:mi:ss') audittime," +
+		"               t.taxpayernum," +
+		"               t.legalpersonname," +
+		"               t.contactname," +
+		"               t.email," +
+		"               t.areaid parentuserid" +
+		"          from wskh_userinfo t" +
+		"         start with t.areaid = %v" +
+		"        connect by prior t.userid = t.areaid" +
+		"               and t.usertype = 6" +
+		"               and level <= %v) a" +
+		"  left join tmp k" +
+		"    on a.userid = k.userid" +
+		" where 1 = 1 and a.status in(%v)"
+	status := DecodeStr(r.QUERYTYPE == 1, "1", "2,4,5")
+	sqlId.FormatParam(r.USERID, r.level(), status)
+	sqlId.AndEx("a.USERINFOTYPE", r.USERINFOTYPE, r.USERINFOTYPE > 0)
+	sqlId.JoinEx(len(r.CUSTOMERNAME) > 0, fmt.Sprintf(` and a.customername like '%%%v%%'`, r.CUSTOMERNAME))
+	sqlId.JoinEx(len(r.NICKNAME) > 0, fmt.Sprintf(` and a.nickname like '%%%v%%'`, r.NICKNAME))
+	return sqlId.String()
+}
+
+func (r *QhjCustomer) buildSqlNormal() string {
+	var sqlId utils.SQLVal = "with tmp as" +
+		" (select t.userid, wm_concat(t.logincode) logincode" +
+		"    from loginaccount t" +
+		"   group by t.userid)" +
+		"select a.*," +
+		"       k.logincode," +
+		"       u.USERINFOTYPE," +
+		"       u.CUSTOMERNAME," +
+		"       u.NICKNAME," +
+		"       u.CARDTYPEID CARDTYPE," +
+		"       u.CARDNUM," +
+		"       u.MOBILE," +
+		"       u.TELPHONE," +
+		"       u.ADDRESS," +
+		"       u.REMARK," +
+		"       u.ATTACHMENT1," +
+		"       u.CARDFRONTPHOTOURL," +
+		"       u.CARDBACKPHOTOURL," +
+		"       u.countryid," +
+		"       u.provinceid," +
+		"       u.districtid," +
+		"       u.taxpayernum," +
+		"       u.legalpersonname," +
+		"       u.contactname," +
+		"       u.email," +
+		"       u.cityid" +
+		"  from (select t.userid," +
+		"               t.usertype," +
+		"               t.parentuserid," +
+		"               t.memberuserid," +
+		"               t.accountstatus status," +
+		"               to_char(t.createtime, 'yyyy-mm-dd hh24:mi:ss') createtime," +
+		"               to_char(t.modifytime, 'yyyy-mm-dd hh24:mi:ss') modifytime," +
+		"               to_char(t.audittime, 'yyyy-mm-dd hh24:mi:ss') audittime" +
+		"          from useraccount t" +
+		"         start with t.usertype=6 and t.parentuserid = %v" +
+		"        connect by prior t.userid = t.parentuserid" +
+		"               and t.usertype = 6" +
+		"               and level <= %v) a" +
+		"  left join tmp k" +
+		"    on a.userid = k.userid" +
+		"  left join userinfo u" +
+		"    on a.userid = u.userid" +
+		" where 1=1 and a.status in(%v)"
+	status := DecodeStr(r.QUERYTYPE == 3, "4", "6")
+	sqlId.FormatParam(r.USERID, r.level(), status)
+	sqlId.AndEx("u.USERINFOTYPE", r.USERINFOTYPE, r.USERINFOTYPE > 0)
+	sqlId.JoinEx(len(r.CUSTOMERNAME) > 0, fmt.Sprintf(` and u.customername like '%%%v%%'`, r.CUSTOMERNAME))
+	sqlId.JoinEx(len(r.NICKNAME) > 0, fmt.Sprintf(` and u.nickname like '%%%v%%'`, r.NICKNAME))
+	return sqlId.String()
+}
+
+// GetDataEx 获取客户资料
+func (r *QhjCustomer) GetDataEx() (interface{}, error) {
+	sData := make([]QhjCustomer, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
+}
+
+// QhjCusBankInfo 托管银行信息
+type QhjCusBankInfo struct {
+	CUSBANKID          string `json:"cusbankid"  xorm:"CUSBANKID"`                   // 托管银行编号(对应清算中心TRAN_NO)
+	CUSBANKNAME        string `json:"cusbankname"  xorm:"CUSBANKNAME"`               // 银行业务名称
+	CUSBANKSHORTNAME   string `json:"cusbankshortname"  xorm:"CUSBANKSHORTNAME"`     // 银行业务简称
+	EXCHBANKID         string `json:"exchbankid"  xorm:"EXCHBANKID"`                 // 交易所开户银行ID
+	EXCHPAYBANKACCNO   string `json:"exchpaybankaccno"  xorm:"EXCHPAYBANKACCNO"`     // 交易所支出结算账户
+	EXCHPAYBANKACCNAME string `json:"exchpaybankaccname"  xorm:"EXCHPAYBANKACCNAME"` // 交易所支出结算账户户名
+	CURRENCY           string `json:"currency"  xorm:"CURRENCY"`                     // 币种
+	CANSIGN            int32  `json:"cansign"  xorm:"CANSIGN"`                       // 是否可签约 - 0:不可 1:可以
+	CANRELEASE         int32  `json:"canrelease"  xorm:"CANRELEASE"`                 // 是否可解约 - 0:不可 1:可以
+	CANINAMOUNT        int32  `json:"caninamount"  xorm:"CANINAMOUNT"`               // 是否可入金 - 0:不可 1:可以
+	CANOUTAMOUNT       int32  `json:"canoutamount"  xorm:"CANOUTAMOUNT"`             // 是否可出金 - 0:不可 1:可以
+	RISKINFO           string `json:"riskinfo"  xorm:"RISKINFO"`                     // 签约风险提示书
+	CANSIGN2           int32  `json:"cansign2"  xorm:"CANSIGN2"`                     // 是否可签约(网银端) - 0:不可 1:可以
+	CANRELEASE2        int32  `json:"canrelease2"  xorm:"CANRELEASE2"`               // 是否可解约(网银端) - 0:不可 1:可以
+	CANINAMOUNT2       int32  `json:"caninamount2"  xorm:"CANINAMOUNT2"`             // 是否可入金(网银端) - 0:不可 1:可以
+	CANOUTAMOUNT2      int32  `json:"canoutamount2"  xorm:"CANOUTAMOUNT2"`           // 是否可出金(网银端) - 0:不可 1:可以
+	CANBINDCARD        int32  `json:"canbindcard"  xorm:"CANBINDCARD"`               // 是否可绑卡与解卡 - 0:不可 1:可以
+	ISNEEDCLEAR        int32  `json:"isneedclear"  xorm:"ISNEEDCLEAR"`               // 是否需要清算 - 0:不需要 1:需要
+	CANMODIFYPHONE     int32  `json:"canmodifyphone"  xorm:"CANMODIFYPHONE"`         // 是否可修改手机号 - 0:不可 1:可以
+	CANMODIFYSIGNINFO  int32  `json:"canmodifysigninfo"  xorm:"CANMODIFYSIGNINFO"`   // 是否可修改签约信息 - 0:不可 1:可以
+	ISNEEDCHECK        int32  `json:"isneedcheck"  xorm:"ISNEEDCHECK"`               // 是否需要对账 - 0:需要 1:不需要 [不需要界面配置]
+	CANMODIFYBANKCARD  int32  `json:"canmodifybankcard"  xorm:"CANMODIFYBANKCARD"`   // 是否可修改银行卡号 - 0:不可 1:可以
+	CANALLOT           int32  `json:"canallot"  xorm:"CANALLOT"`                     // 是否支持跨行调拨 - 0:不支持 1:支持
+	CANALLOTQUERY      int32  `json:"canallotquery"  xorm:"CANALLOTQUERY"`           // 是否支持跨行调拨查询 - 0:不支持 1:支持
+}
+
+func (r *QhjCusBankInfo) calc() {
+
+}
+
+func (r *QhjCusBankInfo) buildSql() string {
+	var sqlId utils.SQLVal = "SELECT t.CUSBANKID," +
+		"       t.CUSBANKNAME," +
+		"       t.CUSBANKSHORTNAME," +
+		"       t.EXCHBANKID," +
+		"       t.EXCHPAYBANKACCNO," +
+		"       t.EXCHPAYBANKACCNAME," +
+		"       t.CURRENCY," +
+		"       t.CANSIGN," +
+		"       t.CANRELEASE," +
+		"       t.CANINAMOUNT," +
+		"       t.CANOUTAMOUNT," +
+		"       to_char(t.RISKINFO) RISKINFO," +
+		"       t.CANSIGN2," +
+		"       t.CANRELEASE2," +
+		"       t.CANINAMOUNT2," +
+		"       t.CANOUTAMOUNT2," +
+		"       t.CANBINDCARD," +
+		"       t.ISNEEDCLEAR," +
+		"       t.CANMODIFYPHONE," +
+		"       t.CANMODIFYSIGNINFO," +
+		"       t.ISNEEDCHECK," +
+		"       t.CANMODIFYBANKCARD," +
+		"       t.CANALLOT," +
+		"       t.CANALLOTQUERY" +
+		"  FROM BANK_CUSBANKINFO t" +
+		" WHERE 1 = 1"
+	return sqlId.String()
+}
+
+// GetData 获取托管银行信息
+func (r *QhjCusBankInfo) GetData() ([]QhjCusBankInfo, error) {
+	sData := make([]QhjCusBankInfo, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
+}
+
+// GetDataEx 获取托管银行信息
+func (r *QhjCusBankInfo) GetDataEx() (interface{}, error) {
+	return r.GetData()
+}
+
+// QhjCusBankSignBank 托管银行签约关系
+type QhjCusBankSignBank struct {
+	CUSBANKID string `json:"cusbankid"  xorm:"CUSBANKID"` // 托管银行ID
+	BANKID    string `json:"bankid"  xorm:"BANKID"`       // 银行ID
+}
+
+func (r *QhjCusBankSignBank) calc() {
+
+}
+
+func (r *QhjCusBankSignBank) buildSql() string {
+	var sqlId utils.SQLVal = "select * from bank_cusbanksignbank"
+	return sqlId.String()
+}
+
+// GetData 获取托管银行签约关系
+func (r *QhjCusBankSignBank) GetData() ([]QhjCusBankSignBank, error) {
+	sData := make([]QhjCusBankSignBank, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
+}
+
+// GetDataEx 获取托管银行签约关系
+func (r *QhjCusBankSignBank) GetDataEx() (interface{}, error) {
+	return r.GetData()
+}
+
+// QhjCusBankSignBankEx 托管银行签约银行详细
+type QhjCusBankSignBankEx struct {
+	QhjCusBankInfo
+	Banklst []QhjBankInfo // 银行列表
+}
+
+// GetDataEx 获取托管银行签约银行详细
+func (r *QhjCusBankSignBankEx) GetDataEx() (interface{}, error) {
+	sData := make([]QhjCusBankSignBankEx, 0)
+	a := QhjCusBankSignBank{}
+	relateData, _ := a.GetData()
+	if len(relateData) == 0 {
+		return sData, nil
+	}
+	b := QhjCusBankInfo{}
+	bData, _ := b.GetData()
+	c := QhjBankInfo{}
+	cData, _ := c.GetData()
+	for _, vb := range bData {
+		// 托管银行
+		v := QhjCusBankSignBankEx{QhjCusBankInfo: vb, Banklst: make([]QhjBankInfo, 0)}
+		for _, vr := range relateData {
+			// 托管关系
+			if vb.CUSBANKID == vr.CUSBANKID {
+				for _, vc := range cData {
+					if vc.BANKID == vr.BANKID {
+						v.Banklst = append(v.Banklst, vc)
+					}
+				}
+			}
+		}
+		if len(v.Banklst) > 0 {
+			sData = append(sData, v)
+		}
+	}
+	return sData, nil
+}
+
+// QhjSiteColumnDetail 资讯
+type QhjSiteColumnDetail struct {
+	ID          int64  `json:"id"  xorm:"ID"`                   // ID(SEQ_SITE_COLUMNDETAIL)
+	COLUMNID    int64  `json:"columnid"  xorm:"COLUMNID"`       // 所属栏目
+	USERID      int64  `json:"userid"  xorm:"USERID"`           // 用户ID(默认为0, 核心为为机构用户ID)
+	TITLE       string `json:"title"  xorm:"TITLE"`             // 标题
+	COVERIMAGE  string `json:"coverimage"  xorm:"COVERIMAGE"`   // 封面图片
+	AUTHOR      string `json:"author"  xorm:"AUTHOR"`           // 作者
+	BRIEF       string `json:"brief"  xorm:"BRIEF"`             // 简介
+	CONTEXT     string `json:"context"  xorm:"CONTEXT"`         // 内容
+	STATUS      int32  `json:"status"  xorm:"STATUS"`           // 状态 - 1:暂存 10:待审核 20:审核通过 30:审核拒绝
+	ISTOP       int32  `json:"istop"  xorm:"ISTOP"`             // 是否置顶 - 0:不置 1:置顶
+	HITS        int64  `json:"hits"  xorm:"HITS"`               // 点击数
+	PUBLISHDATE string `json:"publishdate"  xorm:"PUBLISHDATE"` // 发布日期
+	CREAEDATE   string `json:"creaedate"  xorm:"CREAEDATE"`     // 创建时间
+	CREATORID   int64  `json:"creatorid"  xorm:"CREATORID"`     // 创建人
+	UPDATEDATE  string `json:"updatedate"  xorm:"UPDATEDATE"`   // 修改时间
+	MODIFIERID  int64  `json:"modifierid"  xorm:"MODIFIERID"`   // 操作人
+	ISSHOW      int32  `json:"isshow"  xorm:"ISSHOW"`           // 是否展示 - 0:不展示 1:展示
+
+	USERNAME string `json:"username"` // 用户名称
+}
+
+func (r *QhjSiteColumnDetail) calc() {
+	if r.USERID > 0 {
+		r.USERNAME = mtpcache.GetUserNameByUserId(r.USERID)
+	}
+}
+
+func (r *QhjSiteColumnDetail) buildSql() string {
+	var sqlId utils.SQLVal = "SELECT t.ID," +
+		"       t.COLUMNID," +
+		"       t.USERID," +
+		"       t.TITLE," +
+		"       t.COVERIMAGE," +
+		"       t.AUTHOR," +
+		"       t.BRIEF," +
+		"       to_char(t.CONTEXT) CONTEXT," +
+		"       t.STATUS," +
+		"       t.ISTOP," +
+		"       t.HITS," +
+		"       to_char(t.PUBLISHDATE, 'yyyy-mm-dd hh24:mi:ss') PUBLISHDATE," +
+		"       to_char(t.CREAEDATE, 'yyyy-mm-dd hh24:mi:ss') CREAEDATE," +
+		"       t.CREATORID," +
+		"       to_char(t.UPDATEDATE, 'yyyy-mm-dd hh24:mi:ss') UPDATEDATE," +
+		"       t.MODIFIERID," +
+		"       t.ISSHOW" +
+		"  FROM SITE_COLUMNDETAIL t" +
+		" WHERE 1 = 1"
+	sqlId.And("t.USERID", r.USERID)
+	return sqlId.String()
+}
+
+// GetDataEx 获取资讯
+func (r *QhjSiteColumnDetail) GetDataEx() (interface{}, error) {
+	sData := make([]QhjSiteColumnDetail, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
+}

+ 1 - 1
mtpcache/systemmanager.go

@@ -31,7 +31,7 @@ type sysMgrData struct {
 
 func init() {
 	go func() {
-		time.Sleep(time.Second * 1)
+		time.Sleep(time.Second * 5)
 		vSysMgr.load()
 	}()
 }

+ 3 - 0
routers/router.go

@@ -460,6 +460,9 @@ func InitRouter() *gin.Engine {
 		qhjR.GET("QueryPickArea", qhj.QueryPickArea)
 		qhjR.GET("QueryBankInfo", qhj.QueryBankInfo)
 		qhjR.GET("QueryReckonPriceLog", qhj.QueryReckonPriceLog)
+		qhjR.GET("QueryCustomerInfo", qhj.QueryCustomerInfo)
+		qhjR.GET("QueryCusBankSignBank", qhj.QueryCusBankSignBank)
+		qhjR.GET("QuerySiteColumnDetail", qhj.QuerySiteColumnDetail)
 	}
 
 	return r

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است