package svc import ( "applet/app/db" "applet/app/db/model" "applet/app/e" "applet/app/utils" "fmt" "github.com/gin-gonic/gin" "github.com/jinzhu/copier" "time" ) func CouponReceive(c *gin.Context) { var arg map[string]string if err := c.ShouldBindJSON(&arg); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS, err) return } coupon := db.GetCouponById(MasterDb(c), arg["id"]) if coupon == nil { e.OutErr(c, 400, e.NewErr(400, "优惠券不存在")) return } user := GetUser(c) count, _ := MasterDb(c).Where("uid=? and merchant_scheme_id=?", user.Info.Uid, arg["id"]).Count(&model.CommunityTeamCouponUser{}) if count > 0 { e.OutErr(c, 400, e.NewErr(400, "您已领取过")) return } var data model.CommunityTeamCouponUser err := copier.Copy(&data, coupon) fmt.Println(err) data.MerchantSchemeId = int(data.Id) data.Id = 0 data.IsUse = 1 data.Uid = user.Info.Uid now := time.Now() data.CreateTime = time.Now() data.UpdateTime = time.Now() if coupon.ValidTimeType == 2 { data.ValidTimeStart = now data.ValidTimeEnd = time.Unix(now.Unix()+int64(coupon.ValidDayNum)*86400, 0) } MasterDb(c).Insert(&data) e.OutSuc(c, "success", nil) return } func Coupon(c *gin.Context) { var arg map[string]string if err := c.ShouldBindJSON(&arg); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS, err) return } cate := db.GetCoupon(MasterDb(c), arg) list := make([]map[string]string, 0) if cate != nil { stateMap := []string{"", "立减", "满减", "折扣"} scheme, host := ImageBucket(c) for _, v := range *cate { tmp := map[string]string{ "id": utils.IntToStr(v.Id), "name": v.Name, "info": v.Info, "type": stateMap[v.Kind], "num": utils.IntToStr(v.Num), "valid_time": "", "img_url": ImageFormatWithBucket(scheme, host, v.Img), "create_at": v.CreatedTime.Format("2006-01-02 15:04:05"), } if v.ValidTimeType == 1 { tmp["valid_time"] = v.ValidTimeStart.Format("2006.01.02") + "-" + v.ValidTimeEnd.Format("2006.01.02") } else { tmp["valid_time"] = "领取后" + utils.IntToStr(v.ValidDayNum) + "天有效" } list = append(list, tmp) } } e.OutSuc(c, list, nil) return }