Browse Source

价格驱动阅读记录

hsun 2 years ago
parent
commit
a715cbbb76

+ 28 - 0
controller/price_driven/price_driven.go

@@ -5,6 +5,7 @@ import (
 	"hongze/hongze_yb/controller/response"
 	"hongze/hongze_yb/models/request"
 	"hongze/hongze_yb/services/price_driven"
+	"hongze/hongze_yb/services/user"
 )
 
 // PriceDrivenDetail 价格驱动详情
@@ -31,3 +32,30 @@ func PriceDrivenDetail(c *gin.Context) {
 	}
 	response.OkData("获取成功", item, c)
 }
+
+// PriceDrivenVisitLog 价格驱动访问记录
+// @Tags 价格驱动模块
+// @Description 价格驱动访问记录
+// @Param price_driven_id	query  int  true  "价格驱动ID"
+// @Param source_agent  	query  int  true  "来源"
+// @Success 200 {string} string "操作成功"
+// @failure 400 {string} string "操作失败"
+// @Router /price_driven/visit_log [post]
+func PriceDrivenVisitLog(c *gin.Context) {
+	var req request.PriceDrivenVisitReq
+	if err := c.Bind(&req); err != nil {
+		response.Fail("参数有误", c)
+		return
+	}
+	if req.PriceDrivenId <= 0 {
+		response.Fail("参数有误", c)
+		return
+	}
+	userInfo := user.GetInfoByClaims(c)
+	errMsg, err := price_driven.SavePriceDrivenVisitLog(req.PriceDrivenId, req.SourceAgent, int(userInfo.UserID))
+	if err != nil {
+		response.FailMsg(errMsg, "PriceDrivenVisitLog ErrMsg:"+err.Error(), c)
+		return
+	}
+	response.Ok("操作成功", c)
+}

+ 5 - 0
models/request/price_driven.go

@@ -3,3 +3,8 @@ package request
 type PriceDrivenDetailReq struct {
 	ChartPermissionId int `json:"chart_permission_id" form:"chart_permission_id"`
 }
+
+type PriceDrivenVisitReq struct {
+	PriceDrivenId int `json:"price_driven_id" description:"价格驱动ID"`
+	SourceAgent   int `json:"source_agent" description:"来源:1-小程序 2-小程序PC 3-公众号 4-Web官网"`
+}

+ 8 - 0
models/tables/yb_price_driven/model.go

@@ -9,4 +9,12 @@ func GetPriceDrivenByChartPermissionId(chartPermissionId int) (item *YbPriceDriv
 		Order("create_time DESC").
 		First(&item).Error
 	return
+}
+
+// GetPriceDrivenById 主键获取价格驱动
+func GetPriceDrivenById(priceDrivenId int) (item *YbPriceDriven, err error) {
+	err = global.DEFAULT_MYSQL.
+		Where("price_driven_id = ? AND publish_state = 1", priceDrivenId).
+		First(&item).Error
+	return
 }

+ 32 - 0
models/tables/yb_price_driven_visit_log/entity.go

@@ -0,0 +1,32 @@
+package yb_price_driven_visit_log
+
+import "time"
+
+// YbPriceDrivenVisitLog 研报-价格驱动访问记录表
+type YbPriceDrivenVisitLog struct {
+	ID            int       `gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null" json:"-"`
+	PriceDrivenID int       `gorm:"index:idx_price_driven_id;column:price_driven_id;type:int(10) unsigned;not null" json:"priceDrivenId"` // 价格驱动ID
+	UserID        int       `gorm:"index:idx_user_id;column:user_id;type:int(10) unsigned;not null;default:0" json:"userId"`              // 用户ID
+	SourceAgent   int       `gorm:"column:source_agent;type:tinyint(4) unsigned;not null;default:1" json:"sourceAgent"`                   // 操作来源,1:小程序,2:小程序 pc 3:弘则研究公众号,4:web pc
+	CreateTime    time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                         // 创建时间
+}
+
+// TableName get sql table name.获取数据库表名
+func (m *YbPriceDrivenVisitLog) TableName() string {
+	return "yb_price_driven_visit_log"
+}
+
+// YbPriceDrivenVisitLogColumns get sql column name.获取数据库列名
+var YbPriceDrivenVisitLogColumns = struct {
+	ID            string
+	PriceDrivenID string
+	UserID        string
+	SourceAgent   string
+	CreateTime    string
+}{
+	ID:            "id",
+	PriceDrivenID: "price_driven_id",
+	UserID:        "user_id",
+	SourceAgent:   "source_agent",
+	CreateTime:    "create_time",
+}

+ 8 - 0
models/tables/yb_price_driven_visit_log/model.go

@@ -0,0 +1,8 @@
+package yb_price_driven_visit_log
+
+import "hongze/hongze_yb/global"
+
+func (item *YbPriceDrivenVisitLog) Create() (err error) {
+	err = global.DEFAULT_MYSQL.Create(item).Error
+	return
+}

+ 1 - 0
routers/price_driven.go

@@ -11,4 +11,5 @@ func InitPriceDriven(r *gin.Engine) {
 	rGroup := r.Group("api/price_driven").Use(middleware.Token(), middleware.CheckBaseAuth())
 	rGroup.GET("/tab", company.GetHomeFiccPermissions)
 	rGroup.GET("/detail", price_driven.PriceDrivenDetail)
+	rGroup.POST("/visit_log", price_driven.PriceDrivenVisitLog)
 }

+ 15 - 0
services/price_driven/price_driven.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"hongze/hongze_yb/models/response"
 	"hongze/hongze_yb/models/tables/yb_price_driven"
+	"hongze/hongze_yb/models/tables/yb_price_driven_visit_log"
 	"hongze/hongze_yb/utils"
 )
 
@@ -29,3 +30,17 @@ func GetPriceDrivenDetail(chartPermissionId int) (resp *response.PriceDrivenItem
 	}
 	return
 }
+
+// SavePriceDrivenVisitLog 保存价格驱动访问记录
+func SavePriceDrivenVisitLog(priceDrivenId, sourceAgent, userId int) (errMsg string, err error) {
+	logItem := &yb_price_driven_visit_log.YbPriceDrivenVisitLog{
+		PriceDrivenID: priceDrivenId,
+		UserID:        userId,
+		SourceAgent:   sourceAgent,
+	}
+	if e := logItem.Create(); e != nil {
+		err = errors.New("保存失败")
+		return
+	}
+	return
+}