|
|
@@ -0,0 +1,106 @@
|
|
|
+package railsadmin_controller
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "fohow.com/apps/models/balance_model"
|
|
|
+ "fohow.com/apps/models/cent_model"
|
|
|
+ "fohow.com/apps/models/live_model"
|
|
|
+ "fohow.com/apps/models/order_model"
|
|
|
+ "fohow.com/apps/models/product_model"
|
|
|
+ "fohow.com/apps/models/user_model"
|
|
|
+ "github.com/astaxie/beego"
|
|
|
+ "strconv"
|
|
|
+)
|
|
|
+
|
|
|
+//
|
|
|
+func (self *RailsadminController) LiveAward() {
|
|
|
+
|
|
|
+ _id := self.Ctx.Input.Param(":id")
|
|
|
+ id, _ := strconv.ParseInt(_id, 10, 64)
|
|
|
+
|
|
|
+ beego.BeeLogger.Warn("LiveAward id:(%d)", id)
|
|
|
+
|
|
|
+ go PatchLiveAward(id)
|
|
|
+
|
|
|
+ self.ServeJSON()
|
|
|
+}
|
|
|
+
|
|
|
+func PatchLiveAward(id int64) {
|
|
|
+ LiveAward := live_model.GetLiveAwardById(id, true)
|
|
|
+ if LiveAward == nil {
|
|
|
+ beego.BeeLogger.Warn("----------------LiveAward not exist ")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if LiveAward.Status {
|
|
|
+ beego.BeeLogger.Warn("----------------LiveAward has patched ")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ wxUserId := LiveAward.WxUserId
|
|
|
+ wxUser := user_model.GetWxUserById(wxUserId, true)
|
|
|
+ if wxUser == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (LiveAward.Prod1 > 0 && LiveAward.Nums1 > 0) || (LiveAward.Prod2 > 0 && LiveAward.Nums2 > 0) || (LiveAward.Prod3 > 0 && LiveAward.Nums3 > 0) {
|
|
|
+ //创建赠品订单
|
|
|
+ order := new(order_model.Order).CreateNew(wxUser.Id, wxUser.UserId,
|
|
|
+ int64(0), int64(0), order_model.ORDER_TYPE_LIVE, wxUser.Depart, order_model.SOURCE_XCX)
|
|
|
+ if order == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ totalPrice := int64(0)
|
|
|
+ if LiveAward.Prod1 > 0 && LiveAward.Nums1 > 0 {
|
|
|
+ sendNums1 := LiveAward.Nums1
|
|
|
+ //赠送赠品1
|
|
|
+ product := product_model.GetProductById(LiveAward.Prod1, true)
|
|
|
+ if product != nil {
|
|
|
+ totalPrice += LiveAward.Nums1 * product.Price
|
|
|
+ go order_model.SendCreate(order.OrderId, order.Id, product.Id, product.Price, product.Price, product.Name, sendNums1)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if LiveAward.Prod2 > 0 && LiveAward.Nums2 > 0 {
|
|
|
+ sendNums2 := LiveAward.Nums2
|
|
|
+ //赠送赠品1
|
|
|
+ product := product_model.GetProductById(LiveAward.Prod2, true)
|
|
|
+ if product != nil {
|
|
|
+ totalPrice += LiveAward.Nums2 * product.Price
|
|
|
+ go order_model.SendCreate(order.OrderId, order.Id, product.Id, product.Price, product.Price, product.Name, sendNums2)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if LiveAward.Prod3 > 0 && LiveAward.Nums3 > 0 {
|
|
|
+ sendNums3 := LiveAward.Nums3
|
|
|
+ product := product_model.GetProductById(LiveAward.Prod3, true)
|
|
|
+
|
|
|
+ //赠送赠品1
|
|
|
+ if product != nil {
|
|
|
+ totalPrice += LiveAward.Nums3 * product.Price
|
|
|
+ go order_model.SendCreate(order.OrderId, order.Id, product.Id, product.Price, product.Price, product.Name, sendNums3)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ order.TotalPrice = totalPrice
|
|
|
+ order.Save()
|
|
|
+ }
|
|
|
+
|
|
|
+ orderId := fmt.Sprintf("live_award--%d", LiveAward.Id)
|
|
|
+
|
|
|
+ //赠送积分 or 代办费
|
|
|
+ if LiveAward.Cash > 0 {
|
|
|
+ totalCash := LiveAward.Cash
|
|
|
+ source := balance_model.BALANCE_SOURCE_PROMOTION
|
|
|
+ remark := LiveAward.Remark
|
|
|
+ new(balance_model.Balance).Create(wxUser.Id, wxUser.UserId, totalCash, source, orderId, remark)
|
|
|
+ }
|
|
|
+ if LiveAward.Cent > 0 {
|
|
|
+ totalCent := LiveAward.Cent
|
|
|
+ source := cent_model.PROMOTION_SEND
|
|
|
+ remark := LiveAward.Remark
|
|
|
+ new(cent_model.CentBalance).Create(wxUser.Id, totalCent, source, orderId, remark)
|
|
|
+ }
|
|
|
+
|
|
|
+ //发放成功标记
|
|
|
+ LiveAward.Status = true
|
|
|
+ LiveAward.Save()
|
|
|
+ beego.BeeLogger.Warn("----------------end patch live awards ---%d ", id)
|
|
|
+ return
|
|
|
+}
|