package service import ( "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/entity" IC "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/init" "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/type/partnerlib" "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/util" "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/warn" "app.yhyue.com/moapp/jy_docs/services/model" "app.yhyue.com/moapp/jy_docs/services/partner" "app.yhyue.com/moapp/jybase/date" "encoding/json" "fmt" ) type BRes struct { Msg string Code int64 OrderNo string } func UBHandle(in *partnerlib.UserBuyVipRequest) (res *partnerlib.UBVRes, err error) { res = new(partnerlib.UBVRes) var ( b []byte docInfo = partner.DocsFindOne(in.DocId) userId = in.PositionId ) //测试账号 if IC.I.Docin.TestAccount > 0 { userId = IC.I.Docin.TestAccount } if docInfo.Id != "" { orderCode := util.GetOrderCode() h := NewHH(IC.I.Docin.Name, IC.I.Docin.Host, IC.I.Docin.BuyRecord.Name, IC.I.Docin.BuyRecord.Pathname, IC.I.Docin.BuyRecord.Method, map[string]interface{}{ "orderNo": orderCode, "productId": in.DocId, "userId": userId, "price": docInfo.Price, "priceVip": docInfo.PriceVip, "type": in.Type, "orderTime": date.NowFormat(entity.DateFullLayout), }) b, err, _ = h.HttpFunc() go h.SaveDocinLogger(b, err, "req") if err == nil { //豆丁同步数据到mongo go h.SaveDocinLogger(b, err, "res") bRes := &BRes{} if err = json.Unmarshal(b, &bRes); err == nil { if bRes.Code == 0 { //更新文档购买记录 if err = partner.InsertBuyDocOrder(&model.DocinUserOrder{ PositionId: in.PositionId, MgoUserId: in.MgoUserId, Phone: in.Phone, DocId: docInfo.Id, OrderCode: orderCode, Price: docInfo.Price, PriceVip: docInfo.PriceVip, PurchaseType: int(in.Type), //购买类型:1 币买文档,2 券买文档,3 月大会员,4 季大会员,5 年大会员 State: 1, //合作商:1:豆丁 CreateTime: date.NowFormat(date.Date_Full_Layout), }); err == nil { warn.SendMsgByWXURL(fmt.Sprintf("%s文档名称: %s,文档id:%s,购买订单编号:%s,请求信息:%v", entity.PartnerName, docInfo.DocName, docInfo.Id, orderCode, in)) } res.OrderNo = bRes.OrderNo res.Msg = bRes.Msg res.Code = bRes.Code return } err = fmt.Errorf(entity.Res[res.Msg]) } } } else { err = fmt.Errorf("参数异常") } res.Msg = err.Error() res.Code = -1 return }