ziwen 1 year ago
parent
commit
3c778ca3f8
5 changed files with 196 additions and 7 deletions
  1. 83 7
      controller/help_doc.go
  2. 47 0
      models/crm/eta_business.go
  3. 61 0
      models/crm/help_doc.go
  4. 4 0
      models/request/help_doc.go
  5. 1 0
      routers/help_doc.go

+ 83 - 7
controller/help_doc.go

@@ -1,7 +1,7 @@
 package controller
 
 import (
-	"fmt"
+	"encoding/json"
 	"github.com/gin-gonic/gin"
 	"github.com/go-playground/validator/v10"
 	"hongze/hz_eta_docs_api/controller/resp"
@@ -9,13 +9,14 @@ import (
 	"hongze/hz_eta_docs_api/models/crm"
 	"hongze/hz_eta_docs_api/models/request"
 	"hongze/hz_eta_docs_api/services"
+	"html"
 )
 
 // HelpDocController 帮助文档
 type HelpDocController struct{}
 
-// Menu
-// @Description 菜单
+// ClassifyList
+// @Description 帮助文档分类列表
 // @Success 200 {string} string "获取成功"
 // @Router /help_doc/classify/list [get]
 func (a *HelpDocController) ClassifyList(c *gin.Context) {
@@ -30,16 +31,25 @@ func (a *HelpDocController) ClassifyList(c *gin.Context) {
 		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
 		return
 	}
-fmt.Println("code:",req.BusCode)
+	//etaOb := new(crm.EtaBusiness)
+	//var pars []interface{}
+	//pars = append(pars, req.BusCode)
+	//etaBusiness, e := etaOb.GetItemByCondition("code_encrypt=?", pars, "sort asc,classify_id asc")
+	//if e != nil {
+	//	resp.FailMsg("获取失败", "获取帮助文档列表失败, Err: "+e.Error(), c)
+	//	return
+	//}
+
+
 	// 获取列表数据
-	logOb := new(crm.HelpDocClassify)
-	rootList, e := logOb.GetItemsByCondition("parent_id=0", make([]interface{}, 0), "sort asc,classify_id asc")
+	docOb := new(crm.HelpDocClassify)
+	rootList, e := docOb.GetItemsByCondition("parent_id=0", make([]interface{}, 0), "sort asc,classify_id asc")
 	if e != nil {
 		resp.FailMsg("获取失败", "获取帮助文档列表失败, Err: "+e.Error(), c)
 		return
 	}
 
-	classifyAll, e := logOb.GetItemsByCondition("", make([]interface{}, 0), "sort asc,classify_id asc")
+	classifyAll, e := docOb.GetItemsByCondition("", make([]interface{}, 0), "sort asc,classify_id asc")
 	if e != nil {
 		resp.FailMsg("获取失败", "获取帮助文档列表失败, Err: "+e.Error(), c)
 		return
@@ -88,3 +98,69 @@ fmt.Println("code:",req.BusCode)
 
 	resp.OkData("获取成功", nodeAll, c)
 }
+
+// Detail
+// @Description 文章详情
+// @Success 200 {string} string "获取成功"
+// @Router /help_doc/detail [get]
+func (a *HelpDocController) Detail(c *gin.Context) {
+	var req request.HelpDocClassifyDetailReq
+	err := c.Bind(&req)
+	if err != nil {
+		errs, ok := err.(validator.ValidationErrors)
+		if !ok {
+			resp.FailData("参数解析失败", "Err:"+err.Error(), c)
+			return
+		}
+		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
+		return
+	}
+
+	// 获取列表数据
+	docOb := new(crm.HelpDoc)
+	var pars []interface{}
+	pars = append(pars, req.ClassifyId)
+	item, e := docOb.GetItemByCondition("classify_id=?", pars, "")
+	if e != nil {
+		resp.FailMsg("获取失败", "获取帮助文档列表失败, Err: "+e.Error(), c)
+		return
+	}
+
+	item.Content = html.UnescapeString(item.Content)
+
+	var anchor []crm.AnchorList
+	if item.Anchor != "" {
+		err = json.Unmarshal([]byte(item.Anchor), &anchor)
+		if err != nil {
+			resp.FailMsg("解析失败", "解析锚点失败, Err: "+e.Error(), c)
+			return
+		}
+	}
+
+	var recommend []crm.RecommendList
+	if item.Recommend != "" {
+		err = json.Unmarshal([]byte(item.Recommend), &recommend)
+		if err != nil {
+			resp.FailMsg("解析失败", "解析推荐链接失败, Err: "+e.Error(), c)
+			return
+		}
+	}
+
+	respItem := crm.HelpDocResp{
+		Id:            item.Id,
+		ClassifyId:    item.ClassifyId,
+		Title:         item.Title,
+		Author:        item.Author,
+		CreateTime:    item.CreateTime,
+		ModifyTime:    item.ModifyTime,
+		Status:        item.Status,
+		PublishTime:   item.PublishTime,
+		Content:       item.Content,
+		AdminId:       item.AdminId,
+		AdminRealName: item.AdminRealName,
+		Anchor:        anchor,
+		Recommend:     recommend,
+	}
+
+	resp.OkData("获取成功", respItem, c)
+}

+ 47 - 0
models/crm/eta_business.go

@@ -0,0 +1,47 @@
+package crm
+
+import (
+	"hongze/hz_eta_docs_api/global"
+	"time"
+)
+
+type EtaBusiness struct {
+	EtaBusinessId    int       `gorm:"column:eta_business_id;primary_key;AUTO_INCREMENT" json:"eta_business_id"`
+	BusinessName     string    `gorm:"column:business_name;NOT NULL" json:"business_name"`             // 商家名称
+	BusinessCode     string    `gorm:"column:business_code;NOT NULL" json:"business_code"`             // 商家编码
+	CodeEncrypt      string    `gorm:"column:code_encrypt;NOT NULL" json:"code_encrypt"`               // 商家编码encrypt
+	CreditCode       string    `gorm:"column:credit_code;NOT NULL" json:"credit_code"`                 // 社会统一信用码
+	RegionType       string    `gorm:"column:region_type;NOT NULL" json:"region_type"`                 // 所属区域:国内;海外
+	Province         string    `gorm:"column:province;NOT NULL" json:"province"`                       // 省份
+	City             string    `gorm:"column:city;NOT NULL" json:"city"`                               // 城市
+	Address          string    `gorm:"column:address;NOT NULL" json:"address"`                         // 商家地址
+	SellerId         int       `gorm:"column:seller_id;default:0;NOT NULL" json:"seller_id"`           // 销售ID
+	SellerName       string    `gorm:"column:seller_name;NOT NULL" json:"seller_name"`                 // 销售名称
+	Leader           string    `gorm:"column:leader;NOT NULL" json:"leader"`                           // 决策人
+	IndustryId       int       `gorm:"column:industry_id;default:0;NOT NULL" json:"industry_id"`       // 行业ID
+	IndustryName     string    `gorm:"column:industry_name;NOT NULL" json:"industry_name"`             // 行业名称
+	CapitalScale     string    `gorm:"column:capital_scale;NOT NULL" json:"capital_scale"`             // 资金规模
+	ResearchTeamSize string    `gorm:"column:research_team_size;NOT NULL" json:"research_team_size"`   // 研究团队规模
+	UserMax          int       `gorm:"column:user_max;default:0;NOT NULL" json:"user_max"`             // 用户上限
+	SigningStatus    int       `gorm:"column:signing_status;default:0;NOT NULL" json:"signing_status"` // 签约状态:0-未签约;1-首次签约;2-续约中;3-已终止
+	Enable           int       `gorm:"column:enable;default:0;NOT NULL" json:"enable"`                 // 状态:0-禁用;1-启用
+	ContractId       int       `gorm:"column:contract_id;default:0;NOT NULL" json:"contract_id"`       // 当前签约ID
+	SigningTime      time.Time `gorm:"column:signing_time" json:"signing_time"`                        // 当前合约的签约时间
+	ExpiredTime      time.Time `gorm:"column:expired_time" json:"expired_time"`                        // 当前合约的到期时间
+	CreateTime       time.Time `gorm:"column:create_time" json:"create_time"`                          // 创建时间
+	ModifyTime       time.Time `gorm:"column:modify_time" json:"modify_time"`                          // 更新时间
+}
+
+
+func (m *EtaBusiness) TableName() string {
+	return "`eta_business`"
+}
+
+// GetItemByCondition 获取
+func (m *EtaBusiness) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *EtaBusiness, err error) {
+	if orderRule == "" {
+		orderRule = "create_time DESC"
+	}
+	err = global.MYSQL["hz_crm"].Where(condition, pars...).Order(orderRule).Limit(1).Find(&item).Error
+	return
+}

+ 61 - 0
models/crm/help_doc.go

@@ -0,0 +1,61 @@
+package crm
+
+import (
+	"hongze/hz_eta_docs_api/global"
+)
+
+type HelpDoc struct {
+	Id            int    `gorm:"column:id;primary_key;AUTO_INCREMENT" json:"id"`
+	ClassifyId    int    `gorm:"column:classify_id;default:0" json:"classify_id"`                 // 分类id
+	ClassifyName  string `gorm:"column:classify_name" json:"classify_name"`                       // 分类名称
+	Title         string `gorm:"column:title" json:"title"`                                       // 标题
+	Author        string `gorm:"column:author" json:"author"`                                     // 作者
+	CreateTime    string `gorm:"column:create_time;default:CURRENT_TIMESTAMP" json:"create_time"` // 创建时间
+	ModifyTime    string `gorm:"column:modify_time;default:CURRENT_TIMESTAMP" json:"modify_time"` // 修改时间
+	Status        int    `gorm:"column:status;default:1" json:"status"`                           // 1:未发布,2:已发布
+	PublishTime   string `gorm:"column:publish_time" json:"publish_time"`                         // 发布时间
+	Content       string `gorm:"column:content" json:"content"`                                   // 内容
+	AdminId       int  `gorm:"column:admin_id;default:0;NOT NULL" json:"admin_id"`              // 创建人
+	AdminRealName string `gorm:"column:admin_real_name" json:"admin_real_name"`                   // 创建人姓名
+	Anchor        string `gorm:"column:anchor" json:"anchor"`                                     // 锚点
+	Recommend     string `gorm:"column:recommend" json:"recommend"`                               // 推荐
+}
+
+func (m *HelpDoc) TableName() string {
+	return "`help_doc`"
+}
+
+// GetItemByCondition 获取
+func (m *HelpDoc) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *HelpDoc, err error) {
+	if orderRule == "" {
+		orderRule = "create_time DESC"
+	}
+	err = global.MYSQL["hz_crm"].Where(condition, pars...).Order(orderRule).Limit(1).Find(&item).Error
+	return
+}
+
+type HelpDocResp struct {
+	Id            int             `orm:"column(id);pk"`
+	ClassifyId    int             // 分类id
+	Title         string          // 标题
+	Author        string          // 作者
+	CreateTime    string          // 创建时间
+	ModifyTime    string          // 修改时间
+	Status        int             // 1:未发布,2:已发布
+	PublishTime   string          // 发布时间
+	Content       string          // 内容
+	AdminId       int             // 创建人
+	AdminRealName string          // 创建人姓名
+	Anchor        []AnchorList    // 锚点
+	Recommend     []RecommendList // 推荐
+}
+type AnchorList struct {
+	AnchorId string
+	Anchor   string
+	Child    []AnchorList
+}
+
+type RecommendList struct {
+	Name string
+	Url  string
+}

+ 4 - 0
models/request/help_doc.go

@@ -5,3 +5,7 @@ type HelpDocClassifyListReq struct {
 	BusCode string `json:"bus_code" form:"bus_code"`
 }
 
+type HelpDocClassifyDetailReq struct {
+	BusCode string `json:"bus_code" form:"bus_code"`
+	ClassifyId string `json:"classify_id" form:"classify_id"`
+}

+ 1 - 0
routers/help_doc.go

@@ -9,5 +9,6 @@ func InitHelpDoc(r *gin.RouterGroup) {
 	c := new(controller.HelpDocController)
 	authGroup := r.Group("help_doc/")
 	authGroup.GET("classify/list", c.ClassifyList)
+	authGroup.GET("detail", c.Detail)
 }