package shanghu import ( "duoduo/apis/shanghu/models" "duoduo/models/shanghu" "duoduo/tools" "duoduo/tools/app" "errors" "github.com/gin-gonic/gin" "time" ) // 一个活动对应一个抽奖,一个抽奖对应多个奖品 // 一个活动对应多个拼团,一个拼团对应一个张主图,一个拼团对应多个商品(多个商品是为了核销) func ActiveConfigCreate(c *gin.Context) { var inData models.CreateActiveConfigRequest var sqlData shanghu.MerchantActiveConfig err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } if inData.GroupBuyMode == 0 && inData.DrawMode == 0 { app.Error(c, 500, errors.New("请选择抽奖与开团"), "请选择抽奖与开团") return } sqlData.ActivityEndTime, err = tools.TimeToInt64(inData.ActivityEndTime, "2006-01-02") if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.ActivityStartTime, err = tools.TimeToInt64(inData.ActivityStartTime, "2006-01-02") if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.ActiveName = inData.ActiveName sqlData.MerchantOpenID = inData.MerchantOpenID sqlData.CreatedAt = time.Now() sqlData.UpdatedAt = time.Now() sqlData.ConfigMode = 1 sqlData.DrawOneBiZhong = inData.DrawOneBiZhong sqlData.DrawMode = inData.DrawMode sqlData.GroupBuyMode = inData.GroupBuyMode sqlData.GroupBuyUrl = inData.GroupBuyUrl sqlData.GroupBuy = `{}` sqlData.DrawProduct = `{}` configData, err := sqlData.Create() if err != nil { app.Error(c, 500, err, err.Error()) return } for _, v := range inData.DrawId { var drawData shanghu.MerchantActiveDrawProduct drawData.ActiveConfigID = configData.ID err = drawData.UpdateConfigId(v) if err != nil { app.Error(c, 500, err, err.Error()) return } } for _, v := range inData.GroupBuyId { var groupBuy shanghu.MerchantActiveGroupBuy groupBuy.ActiveConfigID = configData.ID err = groupBuy.UpdateConfigId(v) if err != nil { app.Error(c, 500, err, err.Error()) return } } app.OK(c, nil, app.Success) } // 活动配置信息 func ActiveConfigInfo(c *gin.Context) { var inData models.ActiveConfigRequest var sqlData shanghu.MerchantActiveConfig var outData models.ActiveConfigReply var drawInfoSql shanghu.MerchantActiveDrawProduct var groupBuy shanghu.MerchantActiveGroupBuy err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.MerchantOpenID = inData.MerchantOpenID sqlData.ID = inData.ActiveConfigId configInfo, err := sqlData.GetConfigInfoById() if err != nil { app.Error(c, 500, err, err.Error()) return } outData.GroupBuyMode = configInfo.GroupBuyMode outData.DrawMode = configInfo.DrawMode outData.GroupBuyUrl = configInfo.GroupBuyUrl outData.DrawOneBiZhong = configInfo.DrawOneBiZhong outData.ActivityEndTime = tools.TimeToStr(configInfo.ActivityEndTime) outData.ActivityStartTime = tools.TimeToStr(configInfo.ActivityStartTime) outData.ActiveName = configInfo.ActiveName //中奖商品 drawInfoSql.ActiveConfigID = configInfo.ID drawInfo, _, err := drawInfoSql.GetDrawProductList() if err != nil { app.Error(c, 500, err, err.Error()) return } for _, v := range drawInfo { var drawProduct models.DrawProduct drawProduct.DrawProductName = v.DrawProductName drawProduct.DrawUrl = v.DrawUrl drawProduct.DrawOdds = v.DrawOdds drawProduct.IsPrize = v.IsPrize drawProduct.TotalStock = v.TotalStock drawProduct.Stock = v.Stock outData.DrawProduct = append(outData.DrawProduct, drawProduct) } // 查询拼团列表 groupBuy.ActiveConfigID = configInfo.ID groupBuyInfoList, _, err := groupBuy.GetGroupBuyList() if err != nil { app.Error(c, 500, err, err.Error()) return } for _, v := range groupBuyInfoList { var groupBuyInfo models.DrawGroupBuy var groupBuyProject shanghu.MerchantActiveGroupByProject groupBuyInfo.GroupBuyName = v.GroupBuyName groupBuyInfo.GroupBuyMode = v.GroupBuyMode groupBuyInfo.GroupBuyUrl = v.GroupBuyUrl groupBuyInfo.GroupBuyThreeNum = v.GroupBuyThreeNum groupBuyInfo.GroupBuyThreePrice = v.GroupBuyThreePrice groupBuyInfo.GroupBuyFourNum = v.GroupBuyFourNum groupBuyInfo.GroupBuyFourPrice = v.GroupBuyFourPrice groupBuyInfo.GroupBuyTwoNum = v.GroupBuyTwoNum groupBuyInfo.GroupBuyTwoPrice = v.GroupBuyTwoPrice groupBuyInfo.GroupBuyOneNum = v.GroupBuyOneNum groupBuyInfo.GroupBuyOnePrice = v.GroupBuyOnePrice groupBuyInfo.MerchantOpenID = v.MerchantOpenID groupBuyInfo.OriginalPrice = v.OriginalPrice groupBuyInfo.RebateRate = v.RebateRate groupBuyProject.GroupBuyID = v.ID projectList, _, err := groupBuyProject.GetGroupBuyProjectList() if err != nil { app.Error(c, 500, err, err.Error()) return } for _, v := range projectList { var groupBuyProjectInfo models.GroupBuyProject groupBuyProjectInfo.ProjectName = v.ProjectName groupBuyProjectInfo.CancelNum = v.CancelNum groupBuyInfo.GroupBuyProject = append(groupBuyInfo.GroupBuyProject, groupBuyProjectInfo) } outData.DrawGroupBuy = append(outData.DrawGroupBuy, groupBuyInfo) } app.OK(c, outData, app.Success) } // 活动列表 func ActiveConfigList(c *gin.Context) { var inData models.ActiveConfigListRequest var sqlData shanghu.MerchantActiveConfig var outData []models.ActiveConfigListReply err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.MerchantOpenID = inData.OpenId var pageSize = 10 var pageIndex = 1 if inData.PageSize != 0 { pageSize = inData.PageSize } if inData.PageIndex != 0 { pageIndex = inData.PageIndex } activeConfigList, count, err := sqlData.GetActiveConfigList(pageSize, pageIndex) if err != nil { app.Error(c, 500, err, err.Error()) return } for _, v := range activeConfigList { var activeConfig models.ActiveConfigListReply activeConfig.ActivityStart = tools.TimeToStr(v.ActivityStartTime) activeConfig.ActivityEnd = tools.TimeToStr(v.ActivityEndTime) activeConfig.ActiveName = v.ActiveName activeConfig.CreatedAt = v.CreatedAt.Format(time.DateTime) outData = append(outData, activeConfig) } app.PageOK(c, outData, count, pageIndex, pageSize, app.Success) }