|
@@ -0,0 +1,224 @@
|
|
|
+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)
|
|
|
+
|
|
|
+}
|