This commit is contained in:
苏尹岚
2021-01-11 16:44:31 +08:00
parent 56caf8380f
commit 0c6ff86deb
4 changed files with 74 additions and 2 deletions

View File

@@ -41,6 +41,7 @@ const (
CouponStatusRe = -2 //优惠券状态还没生效
CouponStatusOverdue = -1 //已过期
CouponStatusNormal = 0 //正常
CouponStatusDeleted = -4 //被删了
)
const (
@@ -67,6 +68,7 @@ var (
CouponStatusOverdue: "已过期",
CouponStatusNormal: "正常",
UserCouponStatusOverdue: "已被使用",
CouponStatusDeleted: "已删除",
}
)

View File

@@ -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
}

View File

@@ -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

View File

@@ -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",