|
|
@@ -131,10 +131,11 @@ func QueryHsbyListingGoodsDetail(c *gin.Context) {
|
|
|
|
|
|
// QueryHsbyGoodsOrderDetailsReq 查询二级市场(挂牌点选)商品对应的挂牌委托单信息请求参数
|
|
|
type QueryHsbyGoodsOrderDetailsReq struct {
|
|
|
- GoodsID int `form:"goodsID" binding:"required"`
|
|
|
- BuyOrSell int `form:"buyOrSell"`
|
|
|
- Price float64 `form:"price"`
|
|
|
- Speed int `form:"speed"`
|
|
|
+ GoodsID int `form:"goodsID" binding:"required"`
|
|
|
+ AccountIDs string `form:"accountIDs" binding:"required"`
|
|
|
+ BuyOrSell int `form:"buyOrSell"`
|
|
|
+ Price float64 `form:"price"`
|
|
|
+ Speed int `form:"speed"`
|
|
|
}
|
|
|
|
|
|
// QueryHsbyGoodsOrderDetails 查询二级市场(挂牌点选)商品对应的挂牌委托单信息
|
|
|
@@ -143,6 +144,7 @@ type QueryHsbyGoodsOrderDetailsReq struct {
|
|
|
// @Produce json
|
|
|
// @Security ApiKeyAuth
|
|
|
// @Param goodsID query int true "商品ID"
|
|
|
+// @Param accountIDs query string true "摘牌方资金账户列表,格式:1,2,3。主要用于过滤自己的挂牌单"
|
|
|
// @Param buyOrSell query int false "委托单方向。0:买 1:卖。不传则默认为买"
|
|
|
// @Param price query number false " 参考价格。买方向委托单则价格小于等于(站在摘牌人的角度);卖方向委托单则价格大于等于"
|
|
|
// @Param speed query int false "档位,不传则默认为3档"
|
|
|
@@ -162,7 +164,7 @@ func QueryHsbyGoodsOrderDetails(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
// 获取数据
|
|
|
- orderDetails, err := models.GetHsbyGoodsOrderDetails(req.GoodsID, req.BuyOrSell, req.Price)
|
|
|
+ orderDetails, err := models.GetHsbyGoodsOrderDetails(req.GoodsID, req.BuyOrSell, req.Price, req.AccountIDs)
|
|
|
if err != nil {
|
|
|
// 查询失败
|
|
|
logger.GetLogger().Errorf("QueryHsbyGoodsOrderDetails failed: %s", err.Error())
|
|
|
@@ -597,3 +599,72 @@ func SetHsbyMyPackagesStatus(c *gin.Context) {
|
|
|
logger.GetLogger().Debugln("SetHsbyMyPackagesStatus successed: %v", "ok")
|
|
|
appG.Response(http.StatusOK, e.SUCCESS, "")
|
|
|
}
|
|
|
+
|
|
|
+// QueryProvincesAndCitiesReq 查询省市信息请求参数
|
|
|
+type QueryProvincesAndCitiesReq struct {
|
|
|
+ ProvinceID int `form:"provinceID"` // 省ID
|
|
|
+}
|
|
|
+
|
|
|
+// QueryProvincesAndCitiesRsp 查询省市信息返回模型
|
|
|
+type QueryProvincesAndCitiesRsp struct {
|
|
|
+ Province models.Division // 省
|
|
|
+ Cities []models.Division // 市
|
|
|
+}
|
|
|
+
|
|
|
+// QueryProvincesAndCities 查询省市信息(不包括区)
|
|
|
+// @Summary 查询省市信息(不包括区)
|
|
|
+// @Description 查询结果只包括二级市场商品已关连的省市信息。
|
|
|
+// @Produce json
|
|
|
+// @Security ApiKeyAuth
|
|
|
+// @Param provinceID query int false "省ID"
|
|
|
+// @Success 200 {object} QueryProvincesAndCitiesRsp
|
|
|
+// @Failure 500 {object} app.Response
|
|
|
+// @Router /HSBY/QueryProvincesAndCities [get]
|
|
|
+// @Tags 定制【海商报业】
|
|
|
+func QueryProvincesAndCities(c *gin.Context) {
|
|
|
+ appG := app.Gin{C: c}
|
|
|
+
|
|
|
+ // 获取请求参数
|
|
|
+ var req QueryProvincesAndCitiesReq
|
|
|
+ if err := appG.C.ShouldBindQuery(&req); err != nil {
|
|
|
+ logger.GetLogger().Errorf("QueryProvincesAndCities failed: %s", err.Error())
|
|
|
+ appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取省市信息
|
|
|
+ provinces, err := models.GetHsbyProvincesAndCities(req.ProvinceID)
|
|
|
+ if err != nil {
|
|
|
+ // 查询失败
|
|
|
+ logger.GetLogger().Errorf("QueryProvincesAndCities failed: %s", err.Error())
|
|
|
+ appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分解省市数据
|
|
|
+ // Golang Map元素取址问题: cannot assign to struct field XXXX in map
|
|
|
+ // https://blog.csdn.net/makenothing/article/details/105037977
|
|
|
+ pMap := make(map[string]*QueryProvincesAndCitiesRsp)
|
|
|
+ // 构建省节点
|
|
|
+ for _, v := range provinces {
|
|
|
+ if v.Divisionlevel == "province" {
|
|
|
+ pMap[v.Divisioncode] = &QueryProvincesAndCitiesRsp{Province: v, Cities: make([]models.Division, 0)}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 为省节点增加市信息
|
|
|
+ for _, v := range provinces {
|
|
|
+ if v.Divisionlevel == "city" {
|
|
|
+ pMap[v.Parentcode].Cities = append(pMap[v.Parentcode].Cities, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // map to slice
|
|
|
+ rst := make([]QueryProvincesAndCitiesRsp, 0)
|
|
|
+ for _, v := range pMap {
|
|
|
+ rst = append(rst, *v)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询成功
|
|
|
+ logger.GetLogger().Debugln("QueryProvincesAndCities successed: %v", rst)
|
|
|
+ appG.Response(http.StatusOK, e.SUCCESS, rst)
|
|
|
+}
|