package shanghu import ( "duoduo/apis/shanghu/models" "duoduo/models/shanghu" "duoduo/tools/app" "github.com/gin-gonic/gin" "time" ) const rechargeUrl = "http://lingyang.shisanmiao.com/shanghuka/WechatIMG5489.jpeg" func CreateMerchant(c *gin.Context) { var inData models.CreateMerchantRequest var sqlData shanghu.Merchant err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.OpenId = inData.OpenId merchant, err := sqlData.GetMerchant() if err != nil && err.Error() != "record not found" { app.Error(c, 500, err, err.Error()) return } if merchant.ID > 0 { app.OK(c, nil, app.Success) return } sqlData.CreatedAt = time.Now() sqlData.UpdatedAt = time.Now() sqlData.MerchantName = inData.MerchantName sqlData.Area = inData.Area sqlData.Address = inData.Address sqlData.BusinessHours = inData.BusinessHours sqlData.BusinessLicenseUrl = inData.BusinessLicenseUrl sqlData.Consumption = inData.Consumption sqlData.Contacts = inData.Contacts sqlData.DoorHeaderUrl = inData.DoorHeaderUrl sqlData.Industry = inData.Industry sqlData.IndustryCategory = inData.IndustryCategory sqlData.Iphone = inData.Iphone sqlData.NumberPlate = inData.NumberPlate sqlData.OpenId = inData.OpenId sqlData.RechargeUrl = inData.RechargeUrl _, err = sqlData.Create() if err != nil { app.Error(c, 500, err, err.Error()) return } app.OK(c, nil, app.Success) } func GetMerchant(c *gin.Context) { var inData models.GetMerchantRequest var sqlData shanghu.Merchant err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.OpenId = inData.OpenId merchant, err := sqlData.GetMerchant() if err != nil { app.Error(c, 500, err, err.Error()) return } app.OK(c, merchant, app.Success) } func MerchantList(c *gin.Context) { var inData models.MerchantListRequest var sqlData shanghu.Merchant err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } var pageSize = 10 var pageIndex = 1 if inData.PageSize != 0 { pageSize = inData.PageSize } if inData.PageIndex != 0 { pageIndex = inData.PageIndex } sqlData.NumberPlate = inData.OpenId merchant, count, err := sqlData.GetOpenIdList(pageSize, pageIndex) if err != nil { app.Error(c, 500, err, err.Error()) return } app.PageOK(c, merchant, count, pageIndex, pageSize, app.Success) } func UpdateMerchant(c *gin.Context) { var inData models.UpdateMerchantRequest var sqlData shanghu.Merchant err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.ID = inData.ID sqlData.MerchantName = inData.MerchantName sqlData.Area = inData.Area sqlData.Address = inData.Address sqlData.BusinessHours = inData.BusinessHours sqlData.BusinessLicenseUrl = inData.BusinessLicenseUrl sqlData.Consumption = inData.Consumption sqlData.Contacts = inData.Contacts sqlData.DoorHeaderUrl = inData.DoorHeaderUrl sqlData.Industry = inData.Industry sqlData.IndustryCategory = inData.IndustryCategory sqlData.Iphone = inData.Iphone sqlData.NumberPlate = inData.NumberPlate sqlData.RechargeUrl = inData.RechargeUrl err = sqlData.UpdateMerchant() if err != nil { app.Error(c, 400, err, err.Error()) return } app.OK(c, nil, app.Success) } func GetRechargeUrl(c *gin.Context) { var inData models.GetRechargeRequest var outData models.GetRechargeReply var sqlData shanghu.Merchant var paySql shanghu.ClientPayTrans var card shanghu.MerchantCard err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } //查询c端用户最近的交易记录 未查到直接展示默认url paySql.ClientOpenID = inData.OpenId payInfo, err := paySql.GetPayTransByOpenId() if err != nil { outData.RechargeUrl = rechargeUrl app.OK(c, outData, app.Success) return } //根据 card-id 查询商家id card.ID = payInfo.MerchantCardID cardInfo, err := card.GetMerchantCard() if err != nil { outData.RechargeUrl = rechargeUrl app.OK(c, outData, app.Success) return } //根据商家id查询配置 sqlData.OpenId = cardInfo.MerchantOpenID merchant, err := sqlData.GetMerchant() if err != nil { outData.RechargeUrl = rechargeUrl app.OK(c, outData, app.Success) return } if merchant.RechargeUrl == "" { outData.RechargeUrl = rechargeUrl } else { outData.RechargeUrl = merchant.RechargeUrl } app.OK(c, outData, app.Success) }