黄梓健 5 years ago
parent
commit
d2cb8506f3
  1. 9
      controllers/client/good.go
  2. 3
      models/order_gift.go
  3. 35
      services/pay/handle.go
  4. 1
      utils/code/code.go

9
controllers/client/good.go

@ -17,6 +17,15 @@ type GoodCtl struct {
controllers.AuthorCtl
}
func (t *GoodCtl) GoodDetail() {
goodsId := t.MustGetInt64("customer_goods_id")
good := new(models.CustomerGoods)
exist, err := models.Get(good, goodsId)
t.CheckErr(err)
t.Assert(exist, code.MSG_CUSTOMER_GOOD_NOT_EXIST, "商品详情不存在")
t.JSON(good)
}
func (t *GoodCtl) GoodOption() {
activityId := t.MustGetInt64("activity_id")
//areaId := t.MustGetInt64("area_id")

3
models/order_gift.go

@ -25,5 +25,6 @@ func (t *OrderGift) TableName() string {
}
func (t *OrderGift) GetByActivityId(aid int64) (bool, error) {
return core.GetXormAuto().Where("is_delete=0 and order_gift_switch=? and activity_id=?", define.StatusOpen, aid).Get(t)
return core.GetXormAuto().Where("is_delete=0 and order_gift_switch=? "+
"and activity_id=?", define.StatusOpen, aid).Get(t)
}

35
services/pay/handle.go

@ -7,15 +7,13 @@ import (
"hudongzhuanjia/logger"
"hudongzhuanjia/models"
im_service "hudongzhuanjia/services/im"
"hudongzhuanjia/utils/define"
"time"
)
//处理支付成功之后的回调问题
// 直播红包
func HandleSuccess(param *OrderDelayQueueParam) (err error) {
var exist bool
func HandleSuccess(param *OrderDelayQueueParam) error {
if param.Order.GoodType == 4 { // 直播商品
customerOrder := new(models.CustomerOrder)
_, err := customerOrder.UpdateStatusBy(param.Order.OutTradeNo, 0, 1)
@ -48,7 +46,7 @@ func HandleSuccess(param *OrderDelayQueueParam) (err error) {
}
activity := new(models.Activity)
exist, err = models.Get(activity, param.Order.ActivityId)
exist, err := models.Get(activity, param.Order.ActivityId)
if err != nil || !exist {
return errors.New("互动信息异常")
}
@ -56,10 +54,13 @@ func HandleSuccess(param *OrderDelayQueueParam) (err error) {
gift := new(models.OrderGift)
exist, err = gift.GetByActivityId(param.Order.ActivityId)
if err != nil {
err = fmt.Errorf("获取订单送礼错误: err-> %v, activity_id-> %v", err, activity.Id)
logger.Error(err)
return err
}
if !exist || gift.OrderGiftSwitch == define.StatusClose {
return
if !exist {
return nil
}
prize := new(models.UserPrize)
@ -84,7 +85,7 @@ func HandleSuccess(param *OrderDelayQueueParam) (err error) {
}
if gift.Num <= int(count) { // 人数足够
return
return nil
}
}
_, err = prize.Add()
@ -103,18 +104,18 @@ func HandleSuccess(param *OrderDelayQueueParam) (err error) {
}
} else if param.Order.GoodType == 3 { // 直播红包
info := new(models.LiveRedEnvelopeRule)
_, err = info.UpdateStatusByOutTradeNo(param.Order.OutTradeNo, 1)
_, err := info.UpdateStatusByOutTradeNo(param.Order.OutTradeNo, 1)
if err != nil {
err = fmt.Errorf("状态改变出现错误: err->%v, out_trade_no->%v", err, param.Order.OutTradeNo)
logger.Error(err.Error())
return
return err
}
exist, err = info.GetByOutTradeNo(param.Order.OutTradeNo)
exist, err := info.GetByOutTradeNo(param.Order.OutTradeNo)
if err != nil || !exist || info.Status != 1 {
err = fmt.Errorf("直播红包信息异常: err-> %v, exist->%v, status->%v, out_trade_no->%v",
err, exist, info.Status, param.Order.OutTradeNo)
logger.Error(err.Error())
return
return err
}
err = im_service.SendGroupCustomMessage(info.UserId, param.Order.ActivityId, im_service.NoticeLiveRedPackStart,
@ -127,27 +128,29 @@ func HandleSuccess(param *OrderDelayQueueParam) (err error) {
err = fmt.Errorf("发送腾讯im信息出现错误: err->%v, info_id->%v, out_trade_no->%v",
err, info.Id, param.Order.OutTradeNo)
logger.Error(err.Error())
return err
}
} else if param.Order.GoodType == 2 { // 打赏
history := new(models.RewardHistory)
exist, err = history.GetByOutTradeNo(param.Order.OutTradeNo)
exist, err := history.GetByOutTradeNo(param.Order.OutTradeNo)
if err != nil || !exist || history.Status != -1 {
err = fmt.Errorf("打赏历史异常: err->%v, out_trade_no %v", err, param.Order.OutTradeNo)
logger.Error(err.Error())
return
return err
}
_, err = history.UpdateStatus(history.Id, 0)
if err != nil {
err = fmt.Errorf("打赏状态发送变化: err->%v, out_trade_no %v", err, param.Order.OutTradeNo)
logger.Error(err.Error())
return err
}
} else if param.Order.GoodType == 1 { // 霸屏
history := new(models.BullyScreenHistory)
exist, err = history.GetByOutTradeNo(param.Order.OutTradeNo)
exist, err := history.GetByOutTradeNo(param.Order.OutTradeNo)
if err != nil || !exist || history.Status != -1 {
err = fmt.Errorf("打赏历史异常: err->%v, out_trade_no %v", err, param.Order.OutTradeNo)
logger.Error(err.Error())
return
return err
}
_, err = history.UpdateStatus(history.Id, 0)
@ -156,7 +159,7 @@ func HandleSuccess(param *OrderDelayQueueParam) (err error) {
logger.Error(err.Error())
}
}
return
return nil
}
func HandleFailed(param *OrderDelayQueueParam) (err error) {

1
utils/code/code.go

@ -36,6 +36,7 @@ const (
MSG_LOTTERY_DRAW_NOT_HIT = 4010 // 没有抽中奖
MSG_LOTTERY_DRAW_LADDER_NOT_EXIST = 4011 // 中奖阶梯规则不存在
MSG_LOTTERY_DRAW_RECORD_NOT_EXIST = 4012 // 中奖记录不存在
MSG_CUSTOMER_GOOD_NOT_EXIST = 4013 // 商品不存在
MSG_ORDER_NOT_EXIST = 5000 // 订单活动不存在
MSG_CUSTOMER_ORDER_ERROR = 5001 // 订单已完成
MSG_SIGN_UP_NOT_EXIST = 5000 // 签到规则不存在

Loading…
Cancel
Save