| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- package common
- import (
- "mtp2_if/global/app"
- "mtp2_if/global/e"
- "mtp2_if/logger"
- "mtp2_if/models"
- "net/http"
- "strconv"
- "time"
- "github.com/gin-gonic/gin"
- )
- // QueryProvincesAndCitiesReq 查询省市信息请求参数
- type QueryProvincesAndCitiesReq struct {
- ProvinceID int `form:"provinceID"` // 省ID
- }
- // QueryProvincesAndCitiesRsp 查询省市信息返回模型
- type QueryProvincesAndCitiesRsp struct {
- Province models.Division // 省
- Cities []models.Division // 市
- }
- // QueryProvincesAndCities 查询省市信息(不包括区)
- // @Summary 查询省市信息(不包括区)
- // @Produce json
- // @Param provinceID query int false "省ID"
- // @Success 200 {object} QueryProvincesAndCitiesRsp
- // @Failure 500 {object} app.Response
- // @Router /Common/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.GetProvincesAndCities(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)
- }
- // GetDivisions 查询区域信息
- // @Summary 查询区域信息
- // @Produce json
- // @Success 200 {object} models.Division
- // @Failure 500 {object} app.Response
- // @Router /Common/GetDivisions [get]
- // @Tags 通用服务
- func GetDivisions(c *gin.Context) {
- appG := app.Gin{C: c}
- divisions, err := models.GetDivisions()
- if err != nil {
- // 查询失败
- logger.GetLogger().Errorf("GetDivisions failed: %s", err.Error())
- appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
- return
- }
- // 查询成功
- logger.GetLogger().Debugln("GetDivisions successed: %v", divisions)
- appG.Response(http.StatusOK, e.SUCCESS, divisions)
- }
- // QueryImageConfigsReq 查询轮播图配置信息请求参数
- type QueryImageConfigsReq struct {
- ImageType int `form:"imageType"`
- UserId int64 `form:"userId"`
- }
- // QueryImageConfigsRsp 查询轮播图配置信息返回模型
- type QueryImageConfigsRsp struct {
- Configid int64 `json:"configid" xorm:"'CONFIGID'" binding:"required"` // 配置ID(SEQ_SZDZ2_IMAGECONFIG)
- Imagetype int32 `json:"imagetype" xorm:"'IMAGETYPE'"` // 类型 - 1:首页轮播(移动) 2:我的(移动)
- Title string `json:"title" xorm:"'TITLE'"` // 标题
- Imagepath string `json:"imagepath" xorm:"'IMAGEPATH'"` // 图片
- URL string `json:"url" xorm:"'URL'"` // 链接(地址或商品ID)
- Sort int64 `json:"sort" xorm:"'SORT'"` // 排序
- Isshow int32 `json:"isshow" xorm:"'ISSHOW'"` // 是否展示 - 0:不展示 1:展示
- Createdate time.Time `json:"createdate" xorm:"'CREATEDATE'"` // 创建时间
- Creatorid int64 `json:"creatorid" xorm:"'CREATORID'"` // 创建人
- Updatedate time.Time `json:"updatedate" xorm:"'UPDATEDATE'"` // 修改时间
- Modifierid int64 `json:"modifierid" xorm:"'MODIFIERID'"` // 操作人
- Areauserid int64 `json:"areauserid" xorm:"'AREAUSERID'"` // 所属机构ID
- Urltype int32 `json:"urltype" xorm:"'URLTYPE'"` // 链接类型 - 1:直接地址 2:商品ID
- MarketID int `json:"marketid"` // 市场ID
- TradeMode int `json:"trademode"` // 交易模式
- }
- // QueryImageConfigs 查询轮播图配置信息
- // @Summary 查询轮播图配置信息
- // @Produce json
- // @Param userId query int false "用户id"
- // @Param imageType query int false "类型 - 1:App首页轮播 2:我的"
- // @Success 200 {object} QueryImageConfigsRsp
- // @Failure 500 {object} app.Response
- // @Router /Common/QueryImageConfigs [get]
- // @Tags 通用服务
- func QueryImageConfigs(c *gin.Context) {
- appG := app.Gin{C: c}
- // 获取请求参数
- var req QueryImageConfigsReq
- if err := appG.C.ShouldBindQuery(&req); err != nil {
- logger.GetLogger().Errorf("QueryImageConfigs failed: %s", err.Error())
- appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
- return
- }
- imageConfigs, err := models.GetImageConfigs(req.UserId, req.ImageType)
- if err != nil {
- // 查询失败
- logger.GetLogger().Errorf("QueryImageConfigs failed: %s", err.Error())
- appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
- return
- }
- rst := make([]QueryImageConfigsRsp, 0)
- for _, v := range imageConfigs {
- item := QueryImageConfigsRsp{
- Configid: v.Configid,
- Imagetype: v.Imagetype,
- Title: v.Title,
- Imagepath: v.Imagepath,
- URL: v.URL,
- Sort: v.Sort,
- Isshow: v.Isshow,
- Createdate: v.Createdate,
- Creatorid: v.Creatorid,
- Updatedate: v.Updatedate,
- Modifierid: v.Modifierid,
- Areauserid: v.Areauserid,
- Urltype: v.Urltype,
- }
- if item.Urltype == 2 {
- if i, err := strconv.Atoi(v.URL); err == nil {
- if market, _ := models.GetMarketByGoodsID(i); market != nil {
- item.MarketID = int(market.Marketid)
- item.TradeMode = int(market.Trademode)
- }
- }
- }
- rst = append(rst, item)
- }
- // 查询成功
- logger.GetLogger().Debugln("QueryImageConfigs successed: %v", rst)
- appG.Response(http.StatusOK, e.SUCCESS, rst)
- }
- // GetAllEnumsReq 获取所有枚举信息请求参数
- type GetAllEnumsReq struct {
- Autoid int `form:"autoid"`
- }
- // GetAllEnums 获取所有枚举信息
- // @Summary 获取所有枚举信息
- // @Description autoid传入后则返回这个ID之后的数据;如不传则返回所有
- // @Produce json
- // @Param autoid query int false "起始自增ID"
- // @Success 200 {object} models.Enumdicitem
- // @Failure 500 {object} app.Response
- // @Router /Common/GetAllEnums [get]
- // @Tags 通用服务
- func GetAllEnums(c *gin.Context) {
- appG := app.Gin{C: c}
- // 获取请求参数
- var req GetAllEnumsReq
- if err := appG.C.ShouldBindQuery(&req); err != nil {
- logger.GetLogger().Errorf("GetAllEnums failed: %s", err.Error())
- appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
- return
- }
- enums, err := models.GetEnums(req.Autoid)
- if err != nil {
- // 查询失败
- logger.GetLogger().Errorf("GetAllEnums failed: %s", err.Error())
- appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
- return
- }
- // 查询成功
- // logger.GetLogger().Debugln("GetAllEnums successed: %v", imageConfigs)
- appG.Response(http.StatusOK, e.SUCCESS, enums)
- }
- // GetServerTime 获取服务器时间
- // @Summary 获取服务器时间
- // @Produce json
- // @Success 200 {object} app.Response
- // @Failure 500 {object} app.Response
- // @Router /Common/GetServerTime [get]
- // @Tags 通用服务
- func GetServerTime(c *gin.Context) {
- appG := app.Gin{C: c}
- rst, err := models.GetServerTime()
- if err != nil {
- // 查询失败
- logger.GetLogger().Errorf("GetServerTime failed: %s", err.Error())
- appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
- return
- }
- // 查询成功
- logger.GetLogger().Debugln("GetServerTime successed: %v", rst)
- appG.Response(http.StatusOK, e.SUCCESS, rst)
- }
|