1、新增零售退货后清理主机优惠券的逻辑;

This commit is contained in:
chenlin 2025-05-26 14:11:28 +08:00
parent 505f7548a5
commit e1a7d9cc91
2 changed files with 18 additions and 5 deletions

View File

@ -287,9 +287,9 @@ func ErpOrderAudit(c *gin.Context) {
return
}
if req.State == 1 && nPayStatus == model.HavePaid { // 已完成支付的零售订单判断是否发优惠券
if req.State == 1 && (nPayStatus == model.HavePaid || erpOrder.RetailType == model.RetailTypeRejected) { // 已完成支付的零售订单判断是否发优惠券
// 发放尊享会员优惠券
model.UpdateSwitchUserCoupon(erpOrder.ID, erpOrder.Uid)
model.UpdateSwitchUserCoupon(erpOrder.ID, erpOrder.Uid, erpOrder.RetailType)
}
app.OK(c, nil, "")

View File

@ -2603,7 +2603,7 @@ func ErpOrderPay(req *ErpOrderPayReq, c *gin.Context) (*ErpOrderPayResp, error)
if payStatus == PayOk { // 已完成支付的订单判断是否发优惠券
// 发放尊享会员优惠券
UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid)
UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType)
}
return resp, nil
@ -2713,7 +2713,7 @@ func QueryErpOrderPayStatus(billSn string) (*ErpOrderPayResp, error) {
if payStatus == PayOk { // 已完成支付的订单判断是否发优惠券
// 发放尊享会员优惠券
UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid)
UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType)
}
resp.Status = payStatus
@ -8210,7 +8210,7 @@ func saleDetailExport(list []ErpOrder, sumData RetailDetailTotalData, c *gin.Con
// UpdateSwitchUserCoupon
// 针对购买switch1老主机的用户如果有录入手机号且开通了会员则自动发放"500元尊享会员开通优惠券"
// 针对购买switch2新主机的用户如果有录入手机号且开通了会员则自动发放"300元尊享会员开通优惠券"
func UpdateSwitchUserCoupon(orderId uint32, uid int) error {
func UpdateSwitchUserCoupon(orderId uint32, uid int, retailType string) error {
if uid == 0 || orderId == 0 {
return errors.New("参数不能为空")
}
@ -8250,6 +8250,19 @@ func UpdateSwitchUserCoupon(orderId uint32, uid int) error {
return nil
}
if retailType == RetailTypeRejected { // 退货订单
// 查询并删除已发放的活动优惠券state = 1
err = orm.Eloquent.Table("user_coupon").
Where("uid = ? AND activity_type = ? AND state = 1", userInfo.Uid, SwitchActivityType).
Delete(nil).Error
if err != nil {
logger.Error("删除用户已发放的活动优惠券失败", logger.Field("err", err), logger.Field("uid", userInfo.Uid))
return err
}
return nil
}
// 已是尊享会员不发券
if IsValidPrivilegeMember(userInfo.Uid) {
logger.Info("用户已是尊享会员", logger.Field("uid", userInfo.Uid))