Browse Source

no message

xingzai 11 months ago
parent
commit
1de636e3d0
1 changed files with 132 additions and 2 deletions
  1. 132 2
      services/order.go

+ 132 - 2
services/order.go

@@ -5,6 +5,7 @@ import (
 	"encoding/json"
 	"errors"
 	"fmt"
+	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/models/order"
 	"hongze/hongze_cygx/utils"
 	"time"
@@ -169,6 +170,9 @@ func HandleOrderHandle(itemCallback *Transaction) {
 			return
 		}
 	}
+	if orderDetail.Source == utils.CYGX_OBJ_ACTIVITY {
+		go AddActivitySignupByWechatPay(orderDetail.SourceId, orderDetail.UserId) //微信付款成功自动添加报名
+	}
 	return
 }
 
@@ -228,7 +232,6 @@ func HandleOrderRefundHandleask(cont context.Context) (err error) {
 		if tradeState == "REFUND" && statusCode == 200 {
 			go HandleOrderRefundHandle(itemResp)
 		}
-
 	}
 	return
 }
@@ -308,6 +311,133 @@ func HandleOrderRefundHandle(itemCallback *Transaction) {
 			return
 		}
 	}
-	fmt.Println(orderDetail.Source)
+	if orderDetail.Source == utils.CYGX_OBJ_ACTIVITY {
+		go CancelActivitySignupByWechatPay(orderDetail.SourceId, orderDetail.UserId) //微信退款成功自动取消报名
+	}
+	return
+}
+
+// 微信付款成功自动添加报名
+func AddActivitySignupByWechatPay(activityId, userId int) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("微信付款成功自动添加报名失败 AddActivitySignupByWechatPay, err:", err.Error(), "activityId:", activityId, "userId:", userId), 2)
+		}
+	}()
+	activityInfo, e := models.GetAddActivityInfoById(activityId)
+	if e != nil {
+		err = errors.New("GetAddActivityInfoById, Err: " + e.Error())
+		return
+	}
+
+	//专家线下沙龙与买方线下交流自动报名
+	if activityInfo.ActivityTypeId != 5 && activityInfo.ActivityTypeId != 8 {
+		return
+	}
+	user, e := models.GetWxUserItemByUserId(userId)
+	if e != nil {
+		err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
+		return
+	}
+	var sellerName string
+	sellerName, e = models.GetCompanySellerName(user.CompanyId)
+	if e != nil {
+		err = errors.New("GetCompanySellerName, Err: " + e.Error())
+		return
+	}
+
+	item := new(models.CygxActivitySignup)
+	totalMySuccess, e := models.GetActivitySignupCount(userId, activityId)
+	if e != nil {
+		err = errors.New("AddActivitySignup, Err: " + e.Error())
+		return
+	}
+	if totalMySuccess > 0 { //已报名这个活动
+		return
+	}
+	item.UserId = userId
+	item.RealName = user.RealName
+	item.SellerName = sellerName
+	item.ActivityId = activityId
+	item.CreateTime = time.Now()
+	item.Mobile = user.Mobile
+	item.Email = user.Email
+	item.CompanyId = user.CompanyId
+	item.CompanyName = user.CompanyName
+	item.SignupType = 3
+	item.FailType = 0
+	item.DoFailType = 0
+	item.OutboundMobile = user.Mobile
+	if user.OutboundMobile != "" {
+		item.OutboundMobile = user.OutboundMobile
+		if user.OutboundCountryCode == "" {
+			item.CountryCode = "86"
+		} else {
+			item.CountryCode = user.OutboundCountryCode
+		}
+	} else {
+		item.OutboundMobile = user.Mobile
+		if user.CountryCode == "" {
+			item.CountryCode = "86"
+		} else {
+			item.CountryCode = user.CountryCode
+		}
+	}
+	_, e = models.AddActivitySignup(item)
+	if e != nil {
+		err = errors.New("AddActivitySignup, Err: " + e.Error())
+		return
+	}
+	fmt.Println("报名成功")
+	go ActivityUserRemind(user, activityInfo, 4)
+
+	return
+}
+
+// 微信退款成功自动取消报名
+func CancelActivitySignupByWechatPay(activityId, userId int) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("微信退款成功自动取消报名失败 CancelActivitySignupByWechatPay, err:", err.Error(), "activityId:", activityId, "userId:", userId), 2)
+		}
+	}()
+	activityInfo, e := models.GetAddActivityInfoById(activityId)
+	if e != nil {
+		err = errors.New("GetAddActivityInfoById, Err: " + e.Error())
+		return
+	}
+
+	user, e := models.GetWxUserItemByUserId(userId)
+	if e != nil {
+		err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
+		return
+	}
+
+	item := new(models.CygxActivitySignup)
+	item.UserId = userId
+	item.ActivityId = activityId
+	item.CreateTime = time.Now()
+	item.Mobile = user.Mobile
+	item.Email = user.Email
+	item.CompanyId = user.CompanyId
+	item.CompanyName = user.CompanyName
+	resp := new(models.SignupStatus)
+	resp.ActivityId = activityId
+	_, e = models.CancelActivitySignup(item)
+	if e != nil {
+		err = errors.New("CancelActivitySignup, Err: " + e.Error())
+		return
+	}
+
+	// 如果是买方研选下的专家沙龙,同时推给内容组四人
+	if activityInfo.ActivityTypeId == 5 {
+		go SendActivitieCancelSignTemplateMsg(user, activityInfo)
+	}
+	go SendResearchActivitiesTemplateMsg(user, activityInfo, "取消报名") //公司线下调研活动客户报名后给建会人,所属销售推送模板信息
+
 	return
 }