瀏覽代碼

no message

xingzai 11 月之前
父節點
當前提交
335eb04fd5
共有 7 個文件被更改,包括 239 次插入16 次删除
  1. 188 10
      controllers/order.go
  2. 2 0
      controllers/user.go
  3. 23 2
      models/order/order.go
  4. 2 0
      models/user.go
  5. 20 2
      routers/commentsRouter.go
  6. 2 2
      services/order.go
  7. 2 0
      utils/constants.go

+ 188 - 10
controllers/order.go

@@ -2,7 +2,7 @@ package controllers
 
 import (
 	"encoding/json"
-	"fmt"
+	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hongze_mfyx/models"
 	"hongze/hongze_mfyx/models/order"
 	"hongze/hongze_mfyx/services"
@@ -15,12 +15,12 @@ type OrderController struct {
 	BaseAuthController
 }
 
-// @Title 创建订单
-// @Description 创建订单接口
+// @Title 通过文章创建订单
+// @Description 通过文章创建订单接口
 // @Param	request	body models.ActivitySingnupRep true "type json string"
 // @Success Ret=200 {object} models.SignupStatus
-// @router /addByarticle [post]
-func (this *OrderController) Add() {
+// @router /addByArticle [post]
+func (this *OrderController) AddByArticle() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -56,8 +56,7 @@ func (this *OrderController) Add() {
 		return
 	}
 	var title string
-	oldOrderCode := services.GetHaverEquallyOrderByUser10Min(user.UserId, goodsId) //获取用户十分钟之内是否有相同的订单信息
-	fmt.Println("oldOrderCode", oldOrderCode)
+	oldOrderCode := services.GetHaverEquallyOrderByUser10Min(uid, goodsId) //获取用户十分钟之内是否有相同的订单信息
 	articleDetail, err := models.GetArticleDetailById(sourceId)
 	if err != nil {
 		br.Msg = "获取信息失败"
@@ -97,11 +96,190 @@ func (this *OrderController) Add() {
 		br.ErrMsg = "创建订单信息失败,Err:" + err.Error()
 		return
 	}
-	fmt.Println(item)
-	fmt.Println(title)
-	fmt.Println(uid)
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}
+
+// @Title 通过活动创建订单
+// @Description 通过活动创建订单接口
+// @Param	request	body models.ActivitySingnupRep true "type json string"
+// @Success Ret=200 {object} models.SignupStatus
+// @router /addByActivity [post]
+func (this *OrderController) AddByActivity() {
+	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) //获取用户十分钟之内是否有相同的订单信息
+	articleDetail, err := models.GetAddActivityInfoById(sourceId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取信息失败,Err:" + err.Error()
+		return
+	}
+	title = articleDetail.ActivityName
+	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_ACTIVITY
+	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 = services.GetSellerName(user) // 销售姓名
+	item.CreateTime = time.Now()
+	item.ModifyTime = time.Now()
+	item.RegisterPlatform = utils.REGISTER_PLATFORM
+
+	//如果十分钟之内有相同的订单就修改,没有就新增
+	if oldOrderCode == "" {
+		err = order.AddCygxOrder(item)
+	} else {
+		err = order.UpdateCygxOrder(item, oldOrderCode)
+	}
 
+	if err != nil {
+		br.Msg = "创建订单信息失败"
+		br.ErrMsg = "创建订单信息失败,Err:" + err.Error()
+		return
+	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"
 }
+
+// @Title 用户订单列表
+// @Description 用户订单列表接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Param   OrderType   query   int  false       "订单类型 1:畅读卡订单,2:单场付费订单"
+// @Success 200 {object} models.SpecialListResp
+// @router /user/orderList [get]
+func (this *OrderController) UserOrderList() {
+	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
+	}
+
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	orderType, _ := this.GetInt("OrderType", 1)
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+	resp := new(order.UserOrderListResp)
+	var condition string
+	var pars []interface{}
+	userId := user.UserId
+
+	if orderType > 0 {
+		condition += `  AND order_type =   ? `
+		pars = append(pars, orderType)
+	}
+	condition += ` AND user_id  =   ? `
+	pars = append(pars, userId)
+
+	total, err := order.GetCygxOrderCount(condition, pars)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败, Err:" + err.Error()
+		return
+	}
+
+	list, err := order.GetCygxOrderList(condition, pars, startSize, pageSize)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败, Err:" + err.Error()
+		return
+	}
+	for _, v := range list {
+		item := new(order.OrderListResp)
+		item.OrderCode = v.OrderCode
+		item.OrderMoney = v.OrderMoney
+		item.SourceId = v.SourceId
+		item.Source = v.Source
+		item.SourceTitle = v.SourceTitle
+		item.OrderStatus = v.OrderStatus
+		if v.OrderStatus == 0 {
+			item.OrderStatusText = "已取消"
+		} else if v.OrderStatus == 1 {
+			item.OrderStatusText = "待支付"
+		} else if v.OrderStatus == 2 {
+			item.OrderStatusText = "已支付"
+		}
+		if orderType == 1 {
+			item.StartDate = ""
+			item.EndDate = ""
+			if v.GoodsId == 1 {
+				item.LabelKeywordImgLink = utils.LABEL_ICO_7 //日卡图标
+			} else if v.GoodsId == 2 {
+				item.LabelKeywordImgLink = utils.LABEL_ICO_8 // 月卡图标
+			}
+		} else {
+			item.LabelKeywordImgLink = utils.LABEL_ICO_3
+		}
+		item.CreateTime = v.CreateTime.Format(utils.FormatDateTime)
+		resp.List = append(resp.List, item)
+	}
+
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	resp.Paging = page
+
+	br.Data = resp
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+}

+ 2 - 0
controllers/user.go

@@ -407,6 +407,8 @@ func (this *UserController) Detail() {
 	if detail.Headimgurl == "" {
 		detail.Headimgurl = utils.DefaultHeadimgurl
 	}
+	detail.UserCardType = 1                                                           //权益卡类型
+	detail.UserCardEndDate = time.Now().AddDate(0, 0, 1).Format(utils.FormatDateTime) //  结束时间
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"

+ 23 - 2
models/order/order.go

@@ -3,6 +3,7 @@ package order
 import (
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
@@ -94,6 +95,25 @@ type CygxOrderAction struct {
 	AdminName        string    // 管理员姓名
 }
 
+type OrderListResp struct {
+	OrderCode           string  `comment:"订单编号"`
+	OrderMoney          float64 `comment:"订单总价"`
+	CreateTime          string  `comment:"创建时间"`
+	SourceId            int     `comment:"来源ID"`
+	Source              string  `comment:"来源\n报告 :article\n活动 :activity"`
+	SourceTitle         string  `comment:"来源名称,活动或者报告标题"`
+	OrderStatus         int     `comment:"订单状态码"`
+	OrderStatusText     string  `comment:"订单状态描述"`
+	LabelKeywordImgLink string  `comment:"标签关键词ico"`
+	StartDate           string  `comment:"开始日期"`
+	EndDate             string  `comment:"结束日期"`
+}
+
+type UserOrderListResp struct {
+	Paging *paging.PagingItem `description:"分页数据"`
+	List   []*OrderListResp
+}
+
 // 添加
 func AddCygxOrder(item *CygxOrder) (err error) {
 	o, err := orm.NewOrm().Begin()
@@ -158,13 +178,14 @@ func UpdateCygxOrder(item *CygxOrder, oldOrderCode string) (err error) {
 	return
 }
 
-func GetCygxOrderList(condition string, pars []interface{}) (item []*CygxOrderResp, err error) {
+func GetCygxOrderList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxOrderResp, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT *
 			FROM
 			cygx_order
 			WHERE 1 = 1 ` + condition
-	_, err = o.Raw(sql, pars).QueryRows(&item)
+	sql += ` LIMIT ?,?  `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return
 }
 

+ 2 - 0
models/user.go

@@ -30,6 +30,8 @@ type UserDetail struct {
 	StartDate           string  `description:"开始日期"`
 	EndDate             string  `description:"结束日期"`
 	CompanyPointsNum    float64 `description:"公司剩余点数"`
+	UserCardType        int     `description:"权益卡类型,0:未开通、1日卡、2月卡"`
+	UserCardEndDate     string  `description:"权益卡有效期"`
 }
 
 func GetUserDetailByUserId(userId int) (item *UserDetail, err error) {

+ 20 - 2
routers/commentsRouter.go

@@ -306,13 +306,31 @@ func init() {
 
     beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:OrderController"] = append(beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:OrderController"],
         beego.ControllerComments{
-            Method: "Add",
-            Router: `/addByarticle`,
+            Method: "AddByActivity",
+            Router: `/addByActivity`,
             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: "AddByArticle",
+            Router: `/addByArticle`,
+            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: "UserOrderList",
+            Router: `/user/orderList`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:ReportController"] = append(beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:ReportController"],
         beego.ControllerComments{
             Method: "CommentAdd",

+ 2 - 2
services/order.go

@@ -76,9 +76,9 @@ func GetHaverEquallyOrderByUser10Min(userId, goodsId int) (orderCode string) {
 	var condition string
 	var pars []interface{}
 	endTime := time.Now().Add(-15 * time.Minute)
-	condition = ` AND  user_id = ? AND  goods_id = ? AND create_time > ?  ORDER BY order_id DESC  LIMIT  1 `
+	condition = ` AND  user_id = ? AND  goods_id = ? AND create_time > ?  ORDER BY order_id DESC  `
 	pars = append(pars, userId, goodsId, endTime)
-	orderList, e := order.GetCygxOrderList(condition, pars)
+	orderList, e := order.GetCygxOrderList(condition, pars, 0, 1)
 	if e != nil && e.Error() != utils.ErrNoRow() {
 		err = errors.New("GetCygxOrderList, Err: " + e.Error())
 		return

+ 2 - 0
utils/constants.go

@@ -324,4 +324,6 @@ const (
 	LABEL_ICO_4 string = "https://hzstatic.hzinsights.com/mfyx/config/zhuanlan.png"                 // 专栏
 	LABEL_ICO_5 string = "https://hzstatic.hzinsights.com/mfyx/config/jiyao.png"                    // 纪要
 	LABEL_ICO_6 string = "https://hzstatic.hzinsights.com/mfyx/config/maifangshalong.png"           // 买方沙龙
+	LABEL_ICO_7 string = "https://hzstatic.hzinsights.com/mfyx/config/rika.png"                     // 日卡图标
+	LABEL_ICO_8 string = "https://hzstatic.hzinsights.com/mfyx/config/yueka.png"                    // 月卡图标
 )