Browse Source

no message

xingzai 11 months ago
parent
commit
ef5de98096
4 changed files with 134 additions and 1 deletions
  1. 99 0
      controllers/order.go
  2. 4 1
      models/order/order.go
  3. 9 0
      routers/commentsRouter.go
  4. 22 0
      services/user_admin_share.go

+ 99 - 0
controllers/order.go

@@ -231,6 +231,105 @@ func (this *OrderController) AddByActivity() {
 	br.Msg = "操作成功"
 }
 
+// @Title 通过研选专栏创建订单
+// @Description 通过文章创建订单接口
+// @Param	request	body models.ActivitySingnupRep true "type json string"
+// @Success Ret=200 {object} models.SignupStatus
+// @router /addByYanxuanspecial [post]
+func (this *OrderController) AddByYanxuanspecial() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	if user == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	var req order.CygxOrderAddReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	uid := user.UserId
+	goodsId := req.GoodsId
+	sourceId := req.SourceId
+	if goodsId == 0 {
+		br.Msg = "支付失败"
+		br.ErrMsg = "支付失败,goodsId 信息错误Err:" + err.Error()
+		return
+	}
+
+	goodsDetail, err := order.GetCygxGoodsDetailByGoodsId(goodsId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取信息失败,Err:" + err.Error()
+		return
+	}
+	var title string
+	oldOrderCode := services.GetHaverEquallyOrderByUser10Min(uid, goodsId) //获取用户十分钟之内是否有相同的订单信息
+	// 研选专栏
+	yanxuanSpecialBySpeciaDetail, err := models.GetYanxuanSpecialBySpecialId(sourceId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取信息失败,Err:" + err.Error()
+		return
+	}
+	title = yanxuanSpecialBySpeciaDetail.Title
+	item := new(order.CygxOrder)
+	item.OrderCode = utils.GetOrdernum()
+	item.GoodsName = goodsDetail.GoodsName
+	item.GoodsId = goodsId
+	item.GoodsMoney = goodsDetail.Price
+	item.OrderMoney = goodsDetail.CurrentPrice
+	item.SourceId = sourceId
+	item.Source = utils.CYGX_OBJ_YANXUANSPECIAL
+	item.SourceTitle = title
+	item.UserId = user.UserId
+	item.Mobile = user.Mobile
+	item.Email = user.Email
+	item.CompanyId = user.CompanyId
+	item.CompanyName = user.CompanyName
+	item.RealName = user.RealName
+	item.SellerName, item.SellerId = services.GetSellerName(user)                          // 销售姓名
+	item.ShareName, item.ShareId = services.GetAdminByInviteShareCode(req.InviteShareCode) // 分享人信息
+	item.CreateTime = time.Now()
+	item.ModifyTime = time.Now()
+	item.RegisterPlatform = utils.REGISTER_PLATFORM
+	item.OrderType = 1
+	//如果十分钟之内有相同的订单就修改,没有就新增
+	if oldOrderCode == "" {
+		err = order.AddCygxOrder(item)
+	} else {
+		item.OrderCode = oldOrderCode
+		err = order.UpdateCygxOrder(item, oldOrderCode)
+	}
+	if err != nil {
+		br.Msg = "创建订单信息失败"
+		br.ErrMsg = "创建订单信息失败,Err:" + err.Error()
+		return
+	}
+	JsapiApiResp, err := services.ExampleJsapiApiServicePrepay(item, user.UnionId)
+	if err != nil {
+		br.Msg = "创建订单信息失败"
+		br.ErrMsg = "创建订单信息失败,ExampleJsapiApiServicePrepayErr:" + err.Error()
+		return
+	}
+	resp := new(order.WxJsapiApiResp)
+	resp.Detail = JsapiApiResp
+	resp.OrderCode = item.OrderCode
+	br.Data = resp
+	br.Data = resp
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}
+
 // @Title 用户订单列表
 // @Description 用户订单列表接口
 // @Param   PageSize   query   int  true       "每页数据条数"

+ 4 - 1
models/order/order.go

@@ -26,7 +26,8 @@ type PrepayWithRequestPaymentResponse struct {
 type CygxOrderAddReq struct {
 	GoodsId int `description:"商品ID"`
 	//Source   string `description:"资源(文章、活动)"`
-	SourceId int `description:"资源ID"`
+	SourceId        int    `description:"资源ID"`
+	InviteShareCode string `description:"销售账号邀请码"`
 }
 
 type CygxOrderCancelReq struct {
@@ -66,6 +67,8 @@ type CygxOrder struct {
 	ModifyTime       time.Time `comment:"修改时间"`
 	RegisterPlatform int       `comment:"来源 1小程序,2:网页"`
 	OrderType        int       `comment:"订单类型,1:畅读卡订单,2:单场付费订单"`
+	ShareId          int       `comment:"分享人ID"`
+	ShareName        string    `comment:"分享人姓名"`
 	StartDate        time.Time `comment:"开始时间"`
 	EndDate          time.Time `comment:"结束时间"`
 }

+ 9 - 0
routers/commentsRouter.go

@@ -322,6 +322,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:OrderController"] = append(beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:OrderController"],
+        beego.ControllerComments{
+            Method: "AddByYanxuanspecial",
+            Router: `/addByYanxuanspecial`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:OrderController"] = append(beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:OrderController"],
         beego.ControllerComments{
             Method: "Cancel",

+ 22 - 0
services/user_admin_share.go

@@ -116,3 +116,25 @@ func AddCygxUserAdminShareHistory(user *models.WxUserItem, source, sourceTitle,
 	}
 	return
 }
+
+// 根据分享码获取对应销售的ID以及姓名
+func GetAdminByInviteShareCode(inviteShareCode string) (shareName string, shareId int) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("记录分享来源失败 GetAdminByInviteShareCode, err:", err.Error()), 2)
+		}
+	}()
+	adminDetail, e := models.GetUserAdminShareCodeByShareCode(inviteShareCode)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetUserAdminShareCodeByShareCode, Err: " + e.Error())
+		return
+	}
+	if adminDetail == nil {
+		return
+	}
+	shareId = adminDetail.SellerId
+	shareName = adminDetail.SellerName
+	return
+}