|
@@ -0,0 +1,1100 @@
|
|
|
+package controllers
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "fmt"
|
|
|
+ "github.com/tealeg/xlsx"
|
|
|
+ "hongze/hongze_admin/models"
|
|
|
+ "hongze/hongze_admin/utils"
|
|
|
+ "os"
|
|
|
+ "strconv"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+//指标
|
|
|
+type TargetController struct {
|
|
|
+ BaseAuthController
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 获取ppt列表
|
|
|
+// @Description 获取ppt列表接口
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Param StartDate query string true "开始日期"
|
|
|
+// @Param EndDate query string true "结束日期"
|
|
|
+// @Param Frequency query string true "频度"
|
|
|
+// @Param ClassifyId query int true "分类"
|
|
|
+// @Param KeyWord query string true "名称关键词"
|
|
|
+// @Param TradeCode query string true "指标唯一编码"
|
|
|
+// @Success 200 {object} models.DataListResp
|
|
|
+// @router /data/list [get]
|
|
|
+func (this *TargetController) DataList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ keyWord := this.GetString("KeyWord")
|
|
|
+ startDate := this.GetString("StartDate")
|
|
|
+ endDate := this.GetString("EndDate")
|
|
|
+ frequency := this.GetString("Frequency")
|
|
|
+ tradeCode := this.GetString("TradeCode")
|
|
|
+ classifyId, _ := this.GetInt("ClassifyId") //分类
|
|
|
+
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ if keyWord != "" {
|
|
|
+ condition += ` AND a.SEC_NAME LIKE '%` + keyWord + `%' `
|
|
|
+ }
|
|
|
+ if startDate != "" {
|
|
|
+ condition += ` AND c.DT >= ? `
|
|
|
+ pars = append(pars, startDate)
|
|
|
+ }
|
|
|
+ if endDate != "" {
|
|
|
+ condition += ` AND c.DT <= ? `
|
|
|
+ pars = append(pars, endDate)
|
|
|
+ }
|
|
|
+
|
|
|
+ if frequency != "" {
|
|
|
+ condition += ` AND a.frequency = ? `
|
|
|
+ pars = append(pars, frequency)
|
|
|
+ }
|
|
|
+
|
|
|
+ if classifyId > 0 {
|
|
|
+ condition += ` AND a.classify_id = ? `
|
|
|
+
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ if tradeCode != "" {
|
|
|
+ condition += ` AND c.TRADE_CODE= = ? `
|
|
|
+ pars = append(pars, tradeCode)
|
|
|
+ }
|
|
|
+
|
|
|
+ total, err := models.GetDataListCount(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, err := models.GetDataList(condition, pars, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ page := models.GetPaging(currentIndex, pageSize, total)
|
|
|
+ resp := new(models.DataListResp)
|
|
|
+ resp.Paging = page
|
|
|
+ resp.List = list
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 录入数据
|
|
|
+// @Description 录入数据接口
|
|
|
+// @Param request body models.DataAddReq true "type json string"
|
|
|
+// @Success 200 Ret=200 录入成功
|
|
|
+// @router /data/add [post]
|
|
|
+func (this *TargetController) DataAdd() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req models.DataAddReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.TradeCode == "" {
|
|
|
+ br.Msg = "指标编码不可为空!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.CreateDate == "" {
|
|
|
+ br.Msg = "请选择日期"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := models.GetDataInfo(req.TradeCode, req.CreateDate)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item != nil {
|
|
|
+ br.Msg = "该指标当前日期下,数据已录入"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbdata := new(models.Edbdata)
|
|
|
+ edbdata.TradeCode = req.TradeCode
|
|
|
+ edbdata.Dt = req.CreateDate
|
|
|
+ edbdata.Close = req.Close
|
|
|
+ edbdata.ModifyTime = time.Now()
|
|
|
+ _, err = models.AddEdbdata(edbdata)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "新增失败"
|
|
|
+ br.ErrMsg = "新增失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "新增成功"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 编辑数据
|
|
|
+// @Description 编辑数据接口
|
|
|
+// @Param request body models.DataEditReq true "type json string"
|
|
|
+// @Success 200 Ret=200 编辑数据成功
|
|
|
+// @router /data/edit [post]
|
|
|
+func (this *TargetController) DataEdit() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req models.DataEditReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.TradeCode == "" {
|
|
|
+ br.Msg = "指标编码不可为空!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.CreateDate == "" {
|
|
|
+ br.Msg = "请选择日期"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbdata := new(models.Edbdata)
|
|
|
+ edbdata.TradeCode = req.TradeCode
|
|
|
+ edbdata.Dt = req.CreateDate
|
|
|
+ edbdata.Close = req.Close
|
|
|
+ edbdata.ModifyTime = time.Now()
|
|
|
+
|
|
|
+ if req.OldCreateDate == "" {
|
|
|
+ item, err := models.GetDataInfo(req.TradeCode, req.CreateDate)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item == nil { //新增
|
|
|
+ _, err = models.AddEdbdata(edbdata)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "新增失败"
|
|
|
+ br.ErrMsg = "新增失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else { //修改
|
|
|
+ err = models.EditEdbdata(edbdata)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "编辑失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if req.CreateDate == req.OldCreateDate { //修改
|
|
|
+ err = models.EditEdbdata(edbdata)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "编辑失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ item, err := models.GetDataInfo(req.TradeCode, req.CreateDate)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item == nil {
|
|
|
+ _, err = models.AddEdbdata(edbdata)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "新增失败"
|
|
|
+ br.ErrMsg = "新增失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = models.EditEdbdata(edbdata)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "编辑失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ oldItem, err := models.GetDataInfo(req.TradeCode, req.OldCreateDate)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if oldItem != nil {
|
|
|
+ record := new(models.EdbdataDeleteRecord)
|
|
|
+ record.TradeCode = oldItem.TradeCode
|
|
|
+ record.Dt = oldItem.Dt
|
|
|
+ record.Close = oldItem.Close
|
|
|
+ record.ModifyTime = oldItem.ModifyTime
|
|
|
+ record.CreateTime = time.Now()
|
|
|
+ record.SysUserId = this.SysUser.AdminId
|
|
|
+ _, err = models.AddEdbdataDeleteRecord(record)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "新增删除记录失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //删除数据
|
|
|
+ models.DeleteEdbData(req.TradeCode, req.OldCreateDate)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "编辑成功"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 指标列表
|
|
|
+// @Description 指标列表接口
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Param StartDate query string true "开始日期"
|
|
|
+// @Param EndDate query string true "结束日期"
|
|
|
+// @Param Frequency query string true "频度"
|
|
|
+// @Param ClassifyId query int true "分类"
|
|
|
+// @Param KeyWord query string true "名称关键词"
|
|
|
+// @Success 200 {object} models.TargetListResp
|
|
|
+// @router /target/list [get]
|
|
|
+func (this *TargetController) TargetList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ keyWord := this.GetString("KeyWord")
|
|
|
+ startDate := this.GetString("StartDate")
|
|
|
+ endDate := this.GetString("EndDate")
|
|
|
+ frequency := this.GetString("Frequency")
|
|
|
+ classifyId, _ := this.GetInt("ClassifyId") //分类
|
|
|
+
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ if keyWord != "" {
|
|
|
+ condition += ` AND a.SEC_NAME LIKE '%` + keyWord + `%' `
|
|
|
+ }
|
|
|
+ if startDate != "" {
|
|
|
+ condition += ` AND c.DT >= ? `
|
|
|
+ pars = append(pars, startDate)
|
|
|
+ }
|
|
|
+ if endDate != "" {
|
|
|
+ condition += ` AND c.DT <= ? `
|
|
|
+ pars = append(pars, endDate)
|
|
|
+ }
|
|
|
+
|
|
|
+ if frequency != "" {
|
|
|
+ condition += ` AND a.frequency = ? `
|
|
|
+ pars = append(pars, frequency)
|
|
|
+ }
|
|
|
+
|
|
|
+ if classifyId > 0 {
|
|
|
+ condition += ` AND a.classify_id = ? `
|
|
|
+
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ }
|
|
|
+ mobile := sysUser.Mobile
|
|
|
+ total, err := models.GetEdbinfoListCount(condition, pars, mobile)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, err := models.GetEdbinfoList(condition, pars, startSize, pageSize, mobile)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ page := models.GetPaging(currentIndex, pageSize, total)
|
|
|
+ resp := new(models.TargetListResp)
|
|
|
+ resp.Paging = page
|
|
|
+ resp.List = list
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 录入指标
|
|
|
+// @Description 录入指标接口
|
|
|
+// @Param request body models.EdbinfoAddReq true "type json string"
|
|
|
+// @Success 200 Ret=200 录入成功
|
|
|
+// @router /target/add [post]
|
|
|
+func (this *TargetController) TargetAdd() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req models.EdbinfoAddReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ tradeCode, err := models.GetMaxTradeCode()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取最大交易编码失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if tradeCode == "" {
|
|
|
+ br.Msg = "数据异常"
|
|
|
+ br.ErrMsg = "最大编码为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ maxTradeCode, err := utils.GetMaxTradeCode(tradeCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "数据异常"
|
|
|
+ br.ErrMsg = "获取编码信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if maxTradeCode == "" {
|
|
|
+ br.Msg = "编码为空,请联系技术"
|
|
|
+ br.ErrMsg = "编码为空,请联系技术"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.SecName == "" {
|
|
|
+ br.Msg = "指标名称不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := models.GetEdbinfoBySecName(req.SecName)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item != nil {
|
|
|
+ br.Msg = "指标名称已存在"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.AddEdbinfo(maxTradeCode, req.SecName, req.Unit, "手动", req.Frequency, req.NoticeTime, req.ClassifyId, sysUser.AdminId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "新增失败"
|
|
|
+ br.ErrMsg = "新增失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.AddEdbinfoUser(maxTradeCode, sysUser.Mobile)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "新增失败"
|
|
|
+ br.ErrMsg = "新增失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "新增成功"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 编辑指标
|
|
|
+// @Description 编辑指标
|
|
|
+// @Param request body models.EdbinfoEditReq true "type json string"
|
|
|
+// @Success 200 Ret=200 录入成功
|
|
|
+// @router /target/edit [post]
|
|
|
+func (this *TargetController) TargetEdit() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req models.EdbinfoEditReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.TradeCode == "" {
|
|
|
+ br.Msg = "数据异常"
|
|
|
+ br.ErrMsg = "最大编码为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.SecName == "" {
|
|
|
+ br.Msg = "指标名称不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := models.GetEdbinfoBySecName(req.SecName)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item != nil {
|
|
|
+ if req.TradeCode != item.TradeCode {
|
|
|
+ br.Msg = "指标名称已存在"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ err = models.EditEdbinfo(req.TradeCode, req.SecName, req.Unit, req.Frequency, req.NoticeTime, req.ClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "编辑失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "编辑成功"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 搜索指标
|
|
|
+// @Description 搜索指标
|
|
|
+// @Param ClassifyId query int true "分类"
|
|
|
+// @Param KeyWord query string true "名称关键词"
|
|
|
+// @Success 200 {object} models.SearchTargetListResp
|
|
|
+// @router /target/search [get]
|
|
|
+func (this *TargetController) TargetSearch() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyId, _ := this.GetInt("ClassifyId")
|
|
|
+ keyWord := this.GetString("KeyWord")
|
|
|
+ list, err := models.SearchTargetEntry(classifyId, keyWord)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := new(models.SearchTargetListResp)
|
|
|
+ resp.List = list
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 获取分类
|
|
|
+// @Description 获取分类
|
|
|
+// @Success 200 {object} models.EdbdataClassifyResp
|
|
|
+// @router /classify [get]
|
|
|
+func (this *TargetController) ClassifyList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mobile := sysUser.Mobile
|
|
|
+ var wxUserId int64
|
|
|
+ if mobile != "" {
|
|
|
+ wxUser, err := models.GetUserByMobile(mobile)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取用户信息失败"
|
|
|
+ br.ErrMsg = "获取用户信息失败,err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if wxUser != nil {
|
|
|
+ wxUserId = wxUser.UserId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list, err := models.GetEdbdataClassify(wxUserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := new(models.EdbdataClassifyResp)
|
|
|
+ resp.List = list
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 下载模板
|
|
|
+// @Description 下载模板
|
|
|
+// @Success 200 {object} models.EdbdataClassifyResp
|
|
|
+// @router /template [get]
|
|
|
+func (this *TargetController) TemplateDownload() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ this.Ctx.Output.Download("./static./数据导入模板.xlsx", "数据导入模板.xlsx")
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 导入数据
|
|
|
+// @Description 导入数据
|
|
|
+// @Param EntryFile query file true "文件"
|
|
|
+// @Success 200 Ret=200 录入成功
|
|
|
+// @router /import/data [post]
|
|
|
+func (this *TargetController) ImportData() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ file, h, err := this.GetFile("EntryFile")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取文件失败"
|
|
|
+ br.ErrMsg = "获取文件失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ path := "./static/" + h.Filename
|
|
|
+ defer file.Close()
|
|
|
+ err = this.SaveToFile("EntryFile", path)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "文件保存失败"
|
|
|
+ br.ErrMsg = "文件保存失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ xlFile, err := xlsx.OpenFile(path)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ failDatas := make([]*models.EdbdataImportFail, 0)
|
|
|
+ // 遍历sheet页读取
|
|
|
+ for _, sheet := range xlFile.Sheets {
|
|
|
+ fmt.Println("sheet name: ", sheet.Name)
|
|
|
+ //遍历行读取
|
|
|
+ maxRow := sheet.MaxRow
|
|
|
+ fmt.Println("maxRow:", maxRow)
|
|
|
+ fmt.Println("maxRow")
|
|
|
+ for i := 0; i < maxRow; i++ {
|
|
|
+ if i >= 2 {
|
|
|
+ row, err := sheet.Row(i)
|
|
|
+ fmt.Println(err)
|
|
|
+ classifyName := row.GetCell(0).Value //分类
|
|
|
+
|
|
|
+ cell1 := row.GetCell(1).Value
|
|
|
+ createDate := utils.ConvertToFormatDay(cell1) //录入日期
|
|
|
+
|
|
|
+ cell2 := row.GetCell(2).Value //指标名称
|
|
|
+ secName := strings.Trim(cell2, " ")
|
|
|
+
|
|
|
+ close := row.GetCell(3).Value //值
|
|
|
+ //判断指标,类型,等数据是否正常
|
|
|
+ classifyName = strings.Trim(classifyName, " ")
|
|
|
+
|
|
|
+ fmt.Println(classifyName, createDate, secName, close)
|
|
|
+
|
|
|
+ classify, err := models.GetEdbdataClassifyByClassifyName(classifyName)
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 获取分类:Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if classify == nil {
|
|
|
+ failItem := new(models.EdbdataImportFail)
|
|
|
+ failItem.SysUserId = strconv.Itoa(sysUser.AdminId)
|
|
|
+ failItem.ClassifyName = classifyName
|
|
|
+ failItem.CreateDate = createDate
|
|
|
+ failItem.SecName = secName
|
|
|
+ failItem.Close = close
|
|
|
+ failItem.Remark = "指标分类不存在"
|
|
|
+ failDatas = append(failDatas, failItem)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ //判断指标是否存在
|
|
|
+ target, err := models.GetTargetBySecName(secName)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("导入数据 获取指标:Err:" + err.Error())
|
|
|
+ //utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 获取指标:Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ if target == nil {
|
|
|
+ fmt.Println("line 158")
|
|
|
+ failItem := new(models.EdbdataImportFail)
|
|
|
+ failItem.SysUserId = strconv.Itoa(sysUser.AdminId)
|
|
|
+ failItem.ClassifyName = classifyName
|
|
|
+ failItem.CreateDate = createDate
|
|
|
+ failItem.SecName = secName
|
|
|
+ failItem.Close = close
|
|
|
+ failItem.Remark = "指标不存在"
|
|
|
+ failDatas = append(failDatas, failItem)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ //更新指标分类
|
|
|
+ if target.ClassifyId <= 0 && classify.ClassifyId > 0 {
|
|
|
+ models.ModifyTargetClassifyId(target.TradeCode, classify.ClassifyId)
|
|
|
+ }
|
|
|
+ //判断数据是否已经存在
|
|
|
+ count, err := models.GetTargetsDataCount(target.TradeCode, createDate)
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 判断数据是否存在失败:Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ //数据已存在,进行更新操作
|
|
|
+ if count > 0 {
|
|
|
+ edbData, err := models.GetTargetsData(target.TradeCode, createDate)
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 获取指标数据失败:Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ if edbData != nil {
|
|
|
+ if edbData.Close <= 0 {
|
|
|
+ err = models.ModifyTargetsDataByImport(target.TradeCode, createDate, close)
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 修改数据失败:Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else { //数据不存在,进行新增操作
|
|
|
+ models.AddTargetsDataByImport(target.TradeCode, createDate, close)
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 新增数据失败:Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp := new(models.EdbdataImportResp)
|
|
|
+ fmt.Println("failDatas:", len(failDatas))
|
|
|
+ if len(failDatas) > 0 {
|
|
|
+ for _, v := range failDatas {
|
|
|
+ err = models.AddEdbdataImportFail(v)
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 新增失败记录失败:Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.Status = 1
|
|
|
+ resp.Msg = "存在部分导入失败"
|
|
|
+ } else {
|
|
|
+ resp.Status = 0
|
|
|
+ }
|
|
|
+ br.Msg = "导入成功"
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 下载失败列表
|
|
|
+// @Description 下载失败列表
|
|
|
+// @Success 200 {object} models.EdbdataClassifyResp
|
|
|
+// @router /import/failList [get]
|
|
|
+func (this *TargetController) ImportFailListDownload() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := models.GetFailList(sysUser.AdminId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.Msg = "获取数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ xlsxFile := xlsx.NewFile()
|
|
|
+ sheet, err := xlsxFile.AddSheet("导入失败数据")
|
|
|
+ headRow := sheet.AddRow()
|
|
|
+ headRow.AddCell().SetValue("品种分类")
|
|
|
+ headRow.AddCell().SetValue("录入日期")
|
|
|
+ headRow.AddCell().SetValue("指标名称")
|
|
|
+ headRow.AddCell().SetValue("值")
|
|
|
+ headRow.AddCell().SetValue("备注")
|
|
|
+ for _, v := range item {
|
|
|
+ row := sheet.AddRow()
|
|
|
+ row.AddCell().SetValue(v.ClassifyName)
|
|
|
+ row.AddCell().SetValue(v.CreateDate)
|
|
|
+ row.AddCell().SetValue(v.SecName)
|
|
|
+ row.AddCell().SetValue(v.Close)
|
|
|
+ row.AddCell().SetValue(v.Remark)
|
|
|
+ }
|
|
|
+ fileName := time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
|
|
|
+ savePath := "./static/" + fileName
|
|
|
+ err = xlsxFile.Save(savePath)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "文件保存失败"
|
|
|
+ br.ErrMsg = "文件保存失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ os.Remove(savePath)
|
|
|
+ }()
|
|
|
+ this.Ctx.Output.Download(savePath, "失败列表.xlsx")
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 导出数据
|
|
|
+// @Description 导出数据列表
|
|
|
+// @Param StartDate query string true "开始日期"
|
|
|
+// @Param EndDate query string true "结束日期"
|
|
|
+// @Param Frequency query string true "频度"
|
|
|
+// @Param ClassifyId query int true "分类"
|
|
|
+// @Param KeyWord query string true "名称关键词"
|
|
|
+// @Success 200 导出成功
|
|
|
+// @router /export/dataList [get]
|
|
|
+func (this *TargetController) ExportDataList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ keyWord := this.GetString("KeyWord")
|
|
|
+ startDate := this.GetString("StartDate")
|
|
|
+ endDate := this.GetString("EndDate")
|
|
|
+ frequency := this.GetString("Frequency")
|
|
|
+ classifyId, _ := this.GetInt("ClassifyId") //分类
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := models.GetDataListForExport(startDate, endDate, frequency, keyWord, classifyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.Msg = "获取数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ xlsxFile := xlsx.NewFile()
|
|
|
+ sheet, err := xlsxFile.AddSheet("导入失败数据")
|
|
|
+ headRow := sheet.AddRow()
|
|
|
+ headRow.AddCell().SetValue("录入日期")
|
|
|
+ headRow.AddCell().SetValue("指标名称")
|
|
|
+ headRow.AddCell().SetValue("频度")
|
|
|
+ headRow.AddCell().SetValue("分类")
|
|
|
+ headRow.AddCell().SetValue("单位")
|
|
|
+ headRow.AddCell().SetValue("值")
|
|
|
+ for _, v := range item {
|
|
|
+ row := sheet.AddRow()
|
|
|
+ row.AddCell().SetValue(v.Dt)
|
|
|
+ row.AddCell().SetValue(v.SecName)
|
|
|
+ row.AddCell().SetValue(v.Frequency)
|
|
|
+ row.AddCell().SetValue(v.ClassifyName)
|
|
|
+ row.AddCell().SetValue(v.Unit)
|
|
|
+ row.AddCell().SetValue(v.Close)
|
|
|
+ }
|
|
|
+ fileName := time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
|
|
|
+ savePath := "./static/" + fileName
|
|
|
+ err = xlsxFile.Save(savePath)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "文件保存失败"
|
|
|
+ br.ErrMsg = "文件保存失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ os.Remove(savePath)
|
|
|
+ }()
|
|
|
+ this.Ctx.Output.Download(savePath, "数据列表.xlsx")
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 数据删除
|
|
|
+// @Description 数据删除
|
|
|
+// @Param request body models.DataDeleteReq true "type json string"
|
|
|
+// @Success 200 Ret=200 录入成功
|
|
|
+// @router /data/delete [post]
|
|
|
+func (this *TargetController) DataDelete() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req models.DataDeleteReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.TradeCode == "" {
|
|
|
+ br.Msg = "指标编码不可为空"
|
|
|
+ br.ErrMsg = "指标编码不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.CreateDate == "" {
|
|
|
+ br.Msg = "数据录入日期不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := models.GetDataInfo(req.TradeCode, req.CreateDate)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item == nil {
|
|
|
+ br.Msg = "数据不存在"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = models.DataDelete(req.TradeCode, req.CreateDate, item.Close, item.ModifyTime, sysUser.AdminId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "删除失败"
|
|
|
+ br.ErrMsg = "删除失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "删除成功"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 数据删除校验
|
|
|
+// @Description 数据删除校验
|
|
|
+// @Param TradeCode query string true "指标唯一编码"
|
|
|
+// @Param CreateDate query string true "数据录入日期"
|
|
|
+// @Success Ret=200 可删除
|
|
|
+// @router /data/check [get]
|
|
|
+func (this *TargetController) DataCheck() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ tradeCode := this.GetString("TradeCode")
|
|
|
+ createDate := this.GetString("CreateDate")
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if tradeCode == "" {
|
|
|
+ br.Msg = "指标编码不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if createDate == "" {
|
|
|
+ br.Msg = "请选择日期"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := models.GetDataInfo(tradeCode, createDate)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.Msg = "获取数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item != nil {
|
|
|
+ br.Msg = "改日期已存在数据,是否确认修改?"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "检测成功"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 指标删除校验
|
|
|
+// @Description 指标删除校验
|
|
|
+// @Param TradeCode query string true "指标唯一编码"
|
|
|
+// @Success Ret=200 可删除
|
|
|
+// @router /target/check [get]
|
|
|
+func (this *TargetController) TargetCheck() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ tradeCode := this.GetString("TradeCode")
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if tradeCode == "" {
|
|
|
+ br.Msg = "指标编码不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ count, err := models.GetTargetInfoCount(tradeCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.Msg = "获取数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ br.Msg = "该指标有关联数据,请先删除数据"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "指标不存在关联数据,可直接删除"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 指标删除
|
|
|
+// @Description 指标删除
|
|
|
+// @Param request body models.TargetDeleteReq true "type json string"
|
|
|
+// @Success Ret=200 删除成功
|
|
|
+// @router /target/delete [post]
|
|
|
+func (this *TargetController) TargetDelete() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ var req models.TargetDeleteReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.TradeCode == "" {
|
|
|
+ br.Msg = "指标编码不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = models.TargetDelete(req.TradeCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "删除失败"
|
|
|
+ br.Msg = "删除失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "删除成功"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 获取研究员
|
|
|
+// @Description 获取研究员
|
|
|
+// @Success 200 {object} models.ResearcherListResp
|
|
|
+// @router /getResearcher [get]
|
|
|
+func (this *TargetController) GetResearcher() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var err error
|
|
|
+ list := make([]*models.Researcher, 0)
|
|
|
+ if sysUser.Role == "admin" {
|
|
|
+ list, err = models.GetResearcherEntry()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.Msg = "获取数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp := new(models.ResearcherListResp)
|
|
|
+ resp.List = list
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 获取研究员指标
|
|
|
+// @Description 获取研究员指标
|
|
|
+// @Param Mobile query string true "手机号"
|
|
|
+// @Success 200 {object} models.ResearcherListResp
|
|
|
+// @router /getTargetItems [get]
|
|
|
+func (this *TargetController) GetTargetItems() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mobile := this.GetString("Mobile")
|
|
|
+
|
|
|
+ if mobile == "" {
|
|
|
+ mobile = sysUser.Mobile
|
|
|
+ }
|
|
|
+ items, err := models.GetTargetItems(mobile)
|
|
|
+ if err != nil {
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := new(models.TargetItemsResp)
|
|
|
+ resp.List = items
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|