zwxi 1 year ago
parent
commit
8c385b5ee2

+ 312 - 0
controllers/commodity_coal.go

@@ -0,0 +1,312 @@
+package controllers
+
+import (
+	"encoding/json"
+	"eta/eta_index_lib/models"
+	"eta/eta_index_lib/utils"
+	"fmt"
+	"github.com/mozillazg/go-pinyin"
+	"os"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// 煤炭网
+type CoalMineDataController struct {
+	BaseAuthController
+}
+
+// @Title 刷新数据
+// @Description 刷新数据接口
+// @Param	request	body models.CoalMineDataReq true "type json string"
+// @Success 200 {object} models.EdbClassify
+// @router /jsm/history [post]
+func (this *CoalMineDataController) JsmHistory() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.CoalMineDataReq
+
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	defer func() {
+		if err != nil {
+			fmt.Println("RefreshDataFromCoalCoastal  Err:" + err.Error())
+			utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalCoastal, Err: %s", err))
+		}
+	}()
+	//path := "/home/code/python/coal_mail/emailFile/沿海八省动力煤终端用户供耗存数据更新.xlsx"
+
+	var mappingItems []*models.BaseFromCoalmineMapping
+	var indexItems []*models.BaseFromCoalmineJsmIndex
+	var codeMap = make(map[string]string)
+	var indexMap = make(map[string]string)
+	var nameMap = make(map[int]string)
+	var dataTime string
+	var sheetName, unit string
+	var province string
+	var exchange string
+
+	codeList, err := models.GetBaseFromCoalmineMapping()
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		utils.FileLog.Info("获取煤炭指标失败:", err)
+		return
+	}
+	if len(codeList) > 0 {
+		for _, v := range codeList {
+			codeMap[v.IndexName] = v.IndexCode
+		}
+	}
+	indexCompanyList, err := models.GetBaseFromCoalmineIndex()
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		utils.FileLog.Info("获取煤炭公司指标失败:", err)
+		return
+	}
+	if len(indexCompanyList) > 0 {
+		for _, v := range indexCompanyList {
+			indexMap[v.IndexName+v.DataTime] = v.DealValue
+		}
+	}
+
+	sheet := req.SheetData
+
+	sheetName = sheet.Name
+	//遍历行读取
+	maxCol := sheet.MaxCol
+	for i := 0; i < maxCol; i++ {
+		if i == 0 {
+			row := sheet.Rows[i]
+			cells := row.Cells
+
+			for k, cell := range cells {
+				text := cell.Value
+				if k > 0 {
+					switch k {
+					case 1:
+						province = "山西"
+						text = strings.TrimLeft(text, "山西")
+					case 4:
+						province = "内蒙古"
+						text = strings.TrimLeft(text, "内蒙古")
+					case 7:
+						province = "陕西"
+						text = strings.TrimLeft(text, "陕西")
+					}
+
+					exchange = text
+					text = province + text
+
+					var item models.BaseFromCoalmineMapping
+					item.IndexName = text
+					nameMap[k] = item.IndexName
+					//code
+					exists := ContainsSpecialName(text)
+					var code string
+					if exists {
+						abbr := trimProvinceName(text)
+						//取处理后公司名首字母缩写
+						a := pinyin.NewArgs()
+						rows := pinyin.Pinyin(sheetName, a)
+						for i := 0; i < len(rows); i++ {
+							if len(rows[i]) != 0 {
+								str := rows[i][0]
+								pi := str[0:1]
+								code += pi
+							}
+						}
+						item.IndexCode = abbr + code + "jsm"
+					} else {
+						a := pinyin.NewArgs()
+						rows := pinyin.Pinyin(text+sheetName, a)
+						for i := 0; i < len(rows); i++ {
+							if len(rows[i]) != 0 {
+								str := rows[i][0]
+								pi := str[0:1]
+								code += pi
+							}
+						}
+						item.IndexCode = code + "jsm"
+					}
+					item.CreateTime = time.Now()
+					mappingItems = append(mappingItems, &item)
+				}
+			}
+		}
+		if i > 0 {
+			row := sheet.Rows[i]
+			cells := row.Cells
+			for k, cell := range cells {
+				if k < 9 {
+					var item models.BaseFromCoalmineJsmIndex
+					if k == 0 {
+						text := cell.Value
+						dataTime = ExcelDateToDate(text).Format(utils.FormatDate)
+					}
+					if k > 0 {
+						text := cell.Value
+						item.IndexName = nameMap[k]
+						item.IndexCode = codeMap[nameMap[k]]
+						item.DealValue = text
+						item.Source = "三省周度"
+						item.DataTime = dataTime
+						item.Frequency = "周度"
+						item.ModifyTime = time.Now()
+						item.CreateTime = time.Now()
+						item.Exchange = exchange
+					}
+					item.Unit = unit
+					indexItems = append(indexItems, &item)
+				}
+			}
+		}
+	}
+
+	////添加数据到数据库
+	for _, v := range mappingItems {
+		if codeMap[v.IndexName] == "" {
+			codeMap[v.IndexName] = v.IndexCode
+			newId, err := models.AddBaseFromCoalmineMapping(v)
+			if err != nil {
+				for i := 0; i < 10; i++ {
+					v.IndexCode = v.IndexCode + strconv.Itoa(i)
+					codeMap[v.IndexName] = v.IndexCode
+					//newId, err := models.AddBaseFromCoalmineMapping(v)
+					//if err != nil {
+					//	fmt.Println("再次添加公司指标名称错误", err)
+					//	continue
+					//} else {
+					//	fmt.Println("新增公司成功", newId)
+					//	break
+					//}
+				}
+			} else {
+				fmt.Println("新增公司成功", newId)
+			}
+		}
+	}
+	//fmt.Println("指标操作完成")
+
+	//给indexItem中的code赋值并插入index表
+	for _, v := range indexItems {
+		v.IndexCode = codeMap[v.IndexName]
+		if indexMap[v.IndexName+v.DataTime] == "" && v.DealValue != "" {
+			newId, err := models.AddBaseFromCoalmineIndex(v)
+			if err != nil {
+				fmt.Println("添加数据错误", err)
+			} else {
+				fmt.Println("新增成功", newId)
+			}
+		} else {
+			if indexMap[v.IndexName+v.DataTime] != v.DealValue && v.DealValue != "" {
+				err = models.UpdateBaseFromCoalmineIndex(v)
+				if err != nil {
+					fmt.Println("修改数据错误错误", err)
+					return
+				}
+			}
+		}
+	}
+
+	return
+}
+
+func ttrimProvinceName(name string) string {
+	name = strings.Replace(name, "陕西省", "sn", -1)
+	name = strings.Replace(name, "陕西", "sn", -1)
+	name = strings.Replace(name, "海南市", "hi", -1)
+	name = strings.Replace(name, "海南", "hi", -1)
+	name = strings.Replace(name, "河南省", "ha", -1)
+	name = strings.Replace(name, "河南", "ha", -1)
+	name = strings.Replace(name, "河北省", "he", -1)
+	name = strings.Replace(name, "河北", "he", -1)
+	name = strings.Replace(name, "澳门", "mo", -1)
+	name = strings.Replace(name, "内蒙古自治区", "nm", -1)
+	name = strings.Replace(name, "内蒙古", "nm", -1)
+	name = strings.Replace(name, "黑龙江", "hl", -1)
+	name = strings.Replace(name, "(", "", -1)
+	name = strings.Replace(name, ")", "", -1)
+	name = strings.Replace(name, "+", "", -1)
+	return name
+}
+
+func ExcelDateToDate(excelDate string) time.Time {
+	excelTime := time.Date(1899, time.December, 30, 0, 0, 0, 0, time.UTC)
+	var days, _ = strconv.Atoi(excelDate)
+	return excelTime.Add(time.Second * time.Duration(days*86400))
+}
+
+func PathExists(path string) (bool, error) {
+	_, err := os.Stat(path)
+	if err == nil { //文件或者目录存在
+		return true, nil
+	}
+	if os.IsNotExist(err) {
+		return false, nil
+	}
+	return false, err
+}
+
+func TrimCompanyName(name string) string {
+	name = strings.Replace(name, "有限", "", -1)
+	name = strings.Replace(name, "股份", "", -1)
+	name = strings.Replace(name, "责任", "", -1)
+	name = strings.Replace(name, "公司", "", -1)
+	name = strings.Replace(name, "(", "", -1)
+	name = strings.Replace(name, ")", "", -1)
+	return name
+}
+
+func ContainsSpecialName(name string) bool {
+	return strings.Contains(name, "陕西") ||
+		strings.Contains(name, "海南") ||
+		strings.Contains(name, "河南") ||
+		strings.Contains(name, "河北") ||
+		strings.Contains(name, "澳门") ||
+		strings.Contains(name, "内蒙古") ||
+		strings.Contains(name, "黑龙江")
+}
+
+func TrimProvinceName(name string) string {
+	name = strings.Replace(name, "陕西省", "sns", -1)
+	name = strings.Replace(name, "陕西", "sn", -1)
+	name = strings.Replace(name, "海南市", "hi", -1)
+	name = strings.Replace(name, "海南", "hi", -1)
+	name = strings.Replace(name, "河南省", "has", -1)
+	name = strings.Replace(name, "河南", "ha", -1)
+	name = strings.Replace(name, "河北省", "hes", -1)
+	name = strings.Replace(name, "河北", "he", -1)
+	name = strings.Replace(name, "澳门", "mo", -1)
+	name = strings.Replace(name, "内蒙古自治区", "nm", -1)
+	name = strings.Replace(name, "内蒙古", "nm", -1)
+	name = strings.Replace(name, "黑龙江", "hl", -1)
+	name = strings.Replace(name, "(", "", -1)
+	name = strings.Replace(name, ")", "", -1)
+	name = strings.Replace(name, "+", "", -1)
+	return name
+}
+
+func trimProvinceName(name string) string {
+	name = strings.Replace(name, "陕西省", "sn", -1)
+	name = strings.Replace(name, "陕西", "sn", -1)
+	name = strings.Replace(name, "海南市", "hi", -1)
+	name = strings.Replace(name, "海南", "hi", -1)
+	name = strings.Replace(name, "河南省", "ha", -1)
+	name = strings.Replace(name, "河南", "ha", -1)
+	name = strings.Replace(name, "河北省", "he", -1)
+	name = strings.Replace(name, "河北", "he", -1)
+	name = strings.Replace(name, "澳门", "mo", -1)
+	name = strings.Replace(name, "内蒙古自治区", "nm", -1)
+	name = strings.Replace(name, "内蒙古", "nm", -1)
+	name = strings.Replace(name, "黑龙江", "hl", -1)
+	name = strings.Replace(name, "(", "", -1)
+	name = strings.Replace(name, ")", "", -1)
+	name = strings.Replace(name, "+", "", -1)
+	return name
+}

+ 1 - 0
go.mod

@@ -13,6 +13,7 @@ require (
 	github.com/olivere/elastic/v7 v7.0.32
 	github.com/rdlucklib/rdluck_tools v1.0.3
 	github.com/shopspring/decimal v1.3.1
+	github.com/tealeg/xlsx v1.0.5
 	github.com/yidane/formula v0.0.0-20210902154546-0782e1736717
 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
 )

+ 2 - 0
go.sum

@@ -466,6 +466,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
 github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
 github.com/syndtr/goleveldb v0.0.0-20160425020131-cfa635847112/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
 github.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
+github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
+github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=

+ 43 - 0
models/base_from_coal_coastal.go

@@ -0,0 +1,43 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// BaseFromCoalmineCoastalIndex 沿海八省动力煤用户供耗存数据指标表
+type BaseFromCoalmineCoastalIndex struct {
+	BaseFromCoalmineCoastalIndexID int       `orm:"column(base_from_coalmine_coastal_index_id);pk"`
+	IndexName                      string    // 省份/企业名称
+	IndexCode                      string    // 持买单量指标编码
+	DataTime                       string    // 指标时间
+	DealValue                      string    // 数据量
+	GroupName                      string    // 地区
+	Source                         string    // 来源
+	Unit                           string    //单位
+	Frequency                      string    `description:"频率"`
+	CreateTime                     time.Time `description:"插入时间"`
+	ModifyTime                     time.Time `description:"修改时间"`
+}
+
+//查询指标
+func GetBaseFromCoalmineCoastalIndex() (items []*BaseFromCoalmineCoastalIndex, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT * FROM base_from_coalmine_coastal_index`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+//添加数据
+func AddBaseFromCoalCoastalIndex(item *BaseFromCoalmineCoastalIndex) (lastId int64, err error) {
+	o := orm.NewOrmUsingDB("data")
+	lastId, err = o.Insert(item)
+	return
+}
+
+func UpdateBaseFromCoalCoastalIndex(item *BaseFromCoalmineCoastalIndex) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `UPDATE base_from_coalmine_coastal_index SET deal_value=?  WHERE index_name=?  AND  data_time = ?`
+	_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
+	return
+}

+ 43 - 0
models/base_from_coal_firm.go

@@ -0,0 +1,43 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// BaseFromCoalmineFirmIndex 煤矿产量周度公司数据表
+type BaseFromCoalmineFirmIndex struct {
+	BaseFromCoalmineFirmIndexID int       `orm:"column(base_from_coalmine_firm_index_id);pk"`
+	IndexName                   string    // 省份/企业名称
+	IndexCode                   string    // 持买单量指标编码
+	DataTime                    string    // 指标时间
+	DealValue                   string    // 数据量
+	GroupName                   string    // 集团名
+	Source                      string    // 来源
+	Unit                        string    // 来源
+	Frequency                   string    `description:"频率"`
+	CreateTime                  time.Time `description:"插入时间"`
+	ModifyTime                  time.Time `description:"修改时间"`
+}
+
+//查询指标
+func GetBaseFromCoalmineFirmIndex() (items []*BaseFromCoalmineFirmIndex, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT * FROM base_from_coalmine_firm_index`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+//添加数据
+func AddBaseFromCoalFirmIndex(item *BaseFromCoalmineFirmIndex) (lastId int64, err error) {
+	o := orm.NewOrmUsingDB("data")
+	lastId, err = o.Insert(item)
+	return
+}
+
+func UpdateBaseFromCoalFirmIndex(item *BaseFromCoalmineFirmIndex) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `UPDATE base_from_coalmine_firm_index SET deal_value=?  WHERE index_name=?  AND  data_time = ?`
+	_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
+	return
+}

+ 43 - 0
models/base_from_coal_inland.go

@@ -0,0 +1,43 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// BaseFromCoalmineInlandIndex 沿海八省动力煤用户供耗存数据指标表
+type BaseFromCoalmineInlandIndex struct {
+	BaseFromCoalmineInlandIndexID int       `orm:"column(base_from_coalmine_inland_index_id);pk"`
+	IndexName                     string    // 省份/企业名称
+	IndexCode                     string    // 持买单量指标编码
+	DataTime                      string    // 指标时间
+	DealValue                     string    // 数据量
+	GroupName                     string    // 地区
+	Source                        string    // 来源
+	Unit                          string    // 来源
+	Frequency                     string    `description:"频率"`
+	CreateTime                    time.Time `description:"插入时间"`
+	ModifyTime                    time.Time `description:"修改时间"`
+}
+
+//查询指标
+func GetBaseFromCoalmineInlandIndex() (items []*BaseFromCoalmineInlandIndex, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT * FROM base_from_coalmine_inland_index`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+//添加数据
+func AddBaseFromCoalInlandIndex(item *BaseFromCoalmineInlandIndex) (lastId int64, err error) {
+	o := orm.NewOrmUsingDB("data")
+	lastId, err = o.Insert(item)
+	return
+}
+
+func UpdateBaseFromCoalInlandIndex(item *BaseFromCoalmineInlandIndex) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `UPDATE base_from_coalmine_inland_index SET deal_value=?  WHERE index_name=?  AND  data_time = ?`
+	_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
+	return
+}

+ 144 - 0
models/base_from_coalmine.go

@@ -0,0 +1,144 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type BaseFromCoalmineMapping struct {
+	BaseFromCoalmineMappingId int       `orm:"column(base_from_coalmine_mapping_id);pk"`
+	IndexName                 string    `description:"持买单量指标名称"`
+	IndexCode                 string    `description:"持买单量指标编码"`
+	CreateTime                time.Time `description:"时间"`
+}
+
+type BaseFromCoalmineJsmIndex struct {
+	BaseFromCoalmineJsmIndexId int       `orm:"column(base_from_coalmine_jsm_index_id);pk"`
+	IndexName                  string    `description:"持买单量指标名称"`
+	IndexCode                  string    `description:"持买单量指标编码"`
+	Exchange                   string    `description:"样本统计类别"`
+	DealValue                  string    `description:"成交量"`
+	DataTime                   string    `description:"数据日期"`
+	Source                     string    `description:"来源"`
+	Province                   string    `description:"省份"`
+	Description                string    `description:"描述"`
+	Unit                       string    `description:"单位"`
+	Frequency                  string    `description:"频率"`
+	CreateTime                 time.Time `description:"插入时间"`
+	ModifyTime                 time.Time `description:"修改时间"`
+}
+
+type BaseFromCoalmineCompanyIndex struct {
+	BaseFromCoalmineCompanyIndexId int       `orm:"column(base_from_coalmine_company_index_id);pk"`
+	IndexName                      string    `description:"持买单量指标名称"`
+	IndexCode                      string    `description:"持买单量指标编码"`
+	DealValue                      string    `description:"成交量"`
+	DataTime                       string    `description:"数据日期"`
+	Source                         string    `description:"来源"`
+	Province                       string    `description:"省份"`
+	City                           string    `description:"城市"`
+	GroupName                      string    `description:"集团名称"`
+	Unit                           string    `description:"单位"`
+	Frequency                      string    `description:"频率"`
+	CreateTime                     time.Time `description:"插入时间"`
+	ModifyTime                     time.Time `description:"修改时间"`
+}
+
+
+//添加指标
+func AddBaseFromCoalmineMapping(item *BaseFromCoalmineMapping) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+//查询指标
+func GetBaseFromCoalmineMapping() (items []*BaseFromCoalmineMapping, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_coalmine_mapping`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+//查询数据
+func GetBaseFromCoalmineIndex() (items []*BaseFromCoalmineJsmIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_coalmine_jsm_index`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+func UpdateBaseFromCoalmineIndex(item *BaseFromCoalmineJsmIndex) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE base_from_coalmine_jsm_index SET deal_value=?  WHERE index_name=?  AND  data_time = ?`
+	_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
+	return
+}
+
+//添加数据
+func AddBaseFromCoalmineIndex(item *BaseFromCoalmineJsmIndex) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+//添加公司指标
+func AddBaseFromCoalmineCompanyIndex(item *BaseFromCoalmineCompanyIndex) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+//查询公司指标
+func GetBaseFromCoalmineCompanyIndex() (items []*BaseFromCoalmineCompanyIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_coalmine_company_index`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+func UpdateBaseFromCoalmineCompanyIndex(item *BaseFromCoalmineCompanyIndex) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE base_from_coalmine_company_index SET deal_value=?  WHERE index_name=?  AND  data_time = ?`
+	_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
+	return
+}
+
+type CoalMineDataReq struct {
+	SheetData SheetData
+}
+
+
+type SheetData struct {
+	Name        string
+	Rows        []Row
+	Cols        []*Col
+	MaxRow      int
+	MaxCol      int
+	Hidden      bool
+	Selected    bool
+}
+
+
+type Row struct {
+	Cells        []Cell
+	Hidden       bool
+	Height       float64
+	OutlineLevel uint8
+	isCustom     bool
+}
+
+type Col struct {
+	Min             int
+	Max             int
+	Hidden          bool
+	Width           float64
+	Collapsed       bool
+	OutlineLevel    uint8
+	numFmt          string
+}
+
+
+type Cell struct {
+	Value          string
+}

+ 9 - 0
routers/commentsRouter.go

@@ -196,6 +196,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_index_lib/controllers:CoalMineDataController"] = append(beego.GlobalControllerRouter["eta/eta_index_lib/controllers:CoalMineDataController"],
+        beego.ControllerComments{
+            Method: "JsmHistory",
+            Router: `/jsm/history`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_index_lib/controllers:ComTradeController"] = append(beego.GlobalControllerRouter["eta/eta_index_lib/controllers:ComTradeController"],
         beego.ControllerComments{
             Method: "Add",

+ 5 - 0
routers/router.go

@@ -214,6 +214,11 @@ func init() {
 				&controllers.EdbInfoStatController{},
 			),
 		),
+		beego.NSNamespace("/coal_mine",
+			beego.NSInclude(
+				&controllers.CoalMineDataController{},
+			),
+		),
 	)
 	beego.AddNamespace(ns)
 }