diff --git a/rule/service_award_dividend/return.go b/rule/service_award_dividend/return.go index b2e79fd..fd35ce7 100644 --- a/rule/service_award_dividend/return.go +++ b/rule/service_award_dividend/return.go @@ -245,41 +245,42 @@ func BatchInsertMallUserCoupon(engine *xorm.Engine, mallCouponScheme model.MallC if len(tmp) == 0 { return nil } - tmpData := make(map[string]interface{}) for _, v := range tmp { if zhios_order_relate_utils.AnyToString(v["id"]) == zhios_order_relate_utils.IntToStr(user.Level) { - tmpData = v - } - } - perUserNum := zhios_order_relate_utils.StrToInt(zhios_order_relate_utils.AnyToString(tmpData["count"])) - leftNum := mallCouponScheme.LeftNum - perUserNum - if leftNum < 0 { - perUserNum = mallCouponScheme.LeftNum - } - for i := 0; i < perUserNum; i++ { - var userCoupon = &model.MallUserCoupon{ - Uid: uid, - SchemeId: mallCouponScheme.Id, - IsUse: 0, - Kind: zhios_order_relate_utils.StrToInt(zhios_order_relate_utils.AnyToString(tmpData["kind"])), - Cal: zhios_order_relate_utils.SerializeStr(tmpData["cal"]), - ValidTimeStart: startTime, - ValidTimeEnd: endTime, - UseRule: mallCouponScheme.UseRule, - UseActivityType: mallCouponScheme.UseActivityType, - CreateTime: now, - UpdateTime: now, + tmpData := v + perUserNum := zhios_order_relate_utils.StrToInt(zhios_order_relate_utils.AnyToString(tmpData["count"])) + leftNum := mallCouponScheme.LeftNum - perUserNum + if leftNum < 0 { + perUserNum = mallCouponScheme.LeftNum + leftNum = 0 + } + for i := 0; i < perUserNum; i++ { + var userCoupon = &model.MallUserCoupon{ + Uid: uid, + SchemeId: mallCouponScheme.Id, + IsUse: 0, + Kind: zhios_order_relate_utils.StrToInt(zhios_order_relate_utils.AnyToString(tmpData["kind"])), + Cal: zhios_order_relate_utils.SerializeStr(tmpData["cal"]), + ValidTimeStart: startTime, + ValidTimeEnd: endTime, + UseRule: mallCouponScheme.UseRule, + UseActivityType: mallCouponScheme.UseActivityType, + CreateTime: now, + UpdateTime: now, + } + userCoupons = append(userCoupons, userCoupon) + } + if len(userCoupons) == 0 { + continue + } + _, err := engine.Table("mall_user_coupon").Insert(&userCoupons) + if err != nil { + return err + } + mallCouponScheme.LeftNum = leftNum + engine.Where("id=?", mallCouponScheme.Id).Cols("left_num").Update(&mallCouponScheme) } - userCoupons = append(userCoupons, userCoupon) - } - if len(userCoupons) == 0 { - return nil - } - _, err := engine.Table("mall_user_coupon").Insert(&userCoupons) - if err != nil { - return err } - mallCouponScheme.LeftNum = leftNum - engine.Where("id=?", mallCouponScheme.Id).Cols("left_num").Update(&mallCouponScheme) + return nil }