diff --git a/business/model/order.go b/business/model/order.go index be40c0b66..33a496b16 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -41,6 +41,7 @@ const ( CouponStatusRe = -2 //优惠券状态还没生效 CouponStatusOverdue = -1 //已过期 CouponStatusNormal = 0 //正常 + CouponStatusDeleted = -4 //被删了 ) const ( @@ -67,6 +68,7 @@ var ( CouponStatusOverdue: "已过期", CouponStatusNormal: "正常", UserCouponStatusOverdue: "已被使用", + CouponStatusDeleted: "已删除", } ) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index f1d70c60a..4c6171296 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -2211,6 +2211,57 @@ func AddCoupons(ctx *jxcontext.Context, coupons *model.Coupons, count int, store return err } -func UpdateCoupons(ctx *jxcontext.Context, payload map[string]interface{}, storeIDs []int) (err error) { +func UpdateCoupons(ctx *jxcontext.Context, payload map[string]interface{}, storeIDs []int, isDel bool) (err error) { + var ( + db = dao.GetDB() + coupons = &model.Coupons{} + ) + coupons.ID = utils.MustInterface2Int64(payload["id"]) + dao.GetEntity(db, coupons) + if isDel { + coupons.CouponStatus = model.CouponStatusDeleted + coupons.UpdatedAt = time.Now() + coupons.LastOperator = ctx.GetUserName() + dao.UpdateEntity(db, coupons, "CouponStatus", "UpdatedAt", "LastOperator") + } else { + valid := dao.StrictMakeMapByStructObject(payload, coupons, ctx.GetUserName()) + if len(valid) > 0 { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + if valid["isAll"] != nil { + if utils.MustInterface2Int64(valid["isAll"]) == model.NO && len(storeIDs) == 0 { + return fmt.Errorf("改成全国不生效要选门店!") + } + } + if _, err = dao.UpdateEntityByKV(db, coupons, valid, nil); err != nil { + dao.Rollback(db) + return err + } + if valid["isAll"] != nil { + storeCouponss, _ := dao.GetStoreCoupons(db, []int{int(coupons.ID)}, nil) + for _, v := range storeCouponss { + v.DeletedAt = time.Now() + v.LastOperator = ctx.GetUserName() + dao.UpdateEntity(db, v, "DeletoedAt", "LastOperator") + } + if utils.MustInterface2Int64(valid["isAll"]) == model.NO { + for _, v := range storeIDs { + storeCoupons := &model.StoreCoupons{ + StoreID: v, + CouponID: int(coupons.ID), + } + dao.WrapAddIDCULEntity(storeCoupons, ctx.GetUserName()) + dao.CreateEntity(db, storeCoupons) + } + } + } + dao.Commit(db) + } + } return err } diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 65c2a0287..acaf89d98 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -333,6 +333,7 @@ func (c *JxOrderController) AddCoupons() { // @Param token header string true "认证token" // @Param payload formData string true "优惠券类型 payload" // @Param storeIDs formData string false "门店IDs" +// @Param isDel formData bool false "是否是删除" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /UpdateCoupons [post] @@ -342,7 +343,7 @@ func (c *JxOrderController) UpdateCoupons() { var storeIDs []int if err = utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil { if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs); err == nil { - err = localjx.UpdateCoupons(params.Ctx, payload, storeIDs) + err = localjx.UpdateCoupons(params.Ctx, payload, storeIDs, params.IsDel) } } return retVal, "", err diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index c3766e90d..666cba3a5 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -664,6 +664,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], + beego.ControllerComments{ + Method: "AddCoupons", + Router: `/AddCoupons`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], beego.ControllerComments{ Method: "AutoPayForPopluarMan", @@ -826,6 +835,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], + beego.ControllerComments{ + Method: "UpdateCoupons", + Router: `/UpdateCoupons`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxShopController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxShopController"], beego.ControllerComments{ Method: "JxMsg",