123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815 |
- package sandbox
- import (
- "encoding/json"
- "eta/eta_api/controllers"
- "eta/eta_api/models"
- "eta/eta_api/models/sandbox"
- "eta/eta_api/models/sandbox/request"
- "eta/eta_api/models/sandbox/response"
- "eta/eta_api/models/system"
- sandboxService "eta/eta_api/services/sandbox"
- "eta/eta_api/utils"
- "fmt"
- "github.com/rdlucklib/rdluck_tools/paging"
- )
- // versionSize 版本列表第一页数据约定是:3条
- var versionSize = 3
- // SandboxController 逻辑导图
- type SandboxController struct {
- controllers.BaseAuthController
- }
- // List
- // @Title 逻辑导图列表
- // @Description 逻辑导图列表接口
- // @Param PageSize query int true "每页数据条数"
- // @Param CurrentIndex query int true "当前页页码,从1开始"
- // @Param ChartPermissionId query int true "权限编号id"
- // @Param Keyword query string false "搜索关键词:沙盘名称/编辑人名称"
- // @Success 200 {object} response.SandboxListResp
- // @router /list [get]
- func (this *SandboxController) List() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- chartPermissionId, _ := this.GetInt("ChartPermissionId")
- keyword := this.GetString("Keyword")
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- var condition string
- var pars []interface{}
- if chartPermissionId > 0 {
- condition += " AND a.chart_permission_id=? "
- pars = append(pars, chartPermissionId)
- }
- if keyword != "" {
- condition += ` AND ( a.name LIKE '%` + keyword + `%' OR b.name LIKE '%` + keyword + `%' )`
- }
- //获取指标信息
- total, list, err := sandbox.GetList(condition, pars, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Success = true
- br.Msg = "获取沙盘列表失败"
- br.ErrMsg = "获取沙盘列表失败,Err:" + err.Error()
- return
- }
- if list == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
- list = make([]*sandbox.SandboxListItem, 0)
- }
- if len(list) > 0 {
- sandboxIdList := make([]int, 0)
- for _, v := range list {
- sandboxIdList = append(sandboxIdList, v.SandboxId)
- }
- sandboxVersionTotalList, err := sandbox.GetTotalSandboxVersionBySandboxIdList(sandboxIdList)
- if err != nil {
- br.Success = true
- br.Msg = "获取沙盘版本数量失败"
- br.ErrMsg = "获取沙盘版本数量失败,Err:" + err.Error()
- return
- }
- sandboxVersionTotalMap := make(map[int]int)
- for _, v := range sandboxVersionTotalList {
- sandboxVersionTotalMap[v.SandboxId] = v.Total
- }
- for _, item := range list {
- /*key := fmt.Sprint(`crm:sandbox:edit:`, item.SandboxId)
- opUserId, _ := utils.Rc.RedisInt(key)
- //如果当前没有人操作,获取当前操作人是本人,那么编辑按钮可用
- if opUserId <= 0 || (opUserId == this.SysUser.AdminId) {
- item.CanEdit = true
- } else {
- adminInfo, errAdmin := system.GetSysUserById(opUserId)
- if errAdmin != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,Err:" + errAdmin.Error()
- return
- }
- item.Editor = adminInfo.RealName
- }*/
- markStatus, err := sandboxService.UpdateSandboxEditMark(item.SandboxId, this.SysUser.AdminId, 2, this.SysUser.RealName)
- if err != nil {
- br.Msg = "查询标记状态失败"
- br.ErrMsg = "查询标记状态失败,Err:" + err.Error()
- return
- }
- if markStatus.Status == 0 {
- item.CanEdit = true
- } else {
- item.Editor = markStatus.Editor
- }
- // 沙盘版本数量
- versionTotal := sandboxVersionTotalMap[item.SandboxId]
- item.VersionTotal = versionTotal
- }
- }
- page := paging.GetPaging(currentIndex, pageSize, total)
- resp := response.SandboxListResp{
- Paging: page,
- List: list,
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // FirstVersionList
- // @Title 逻辑导图版本列表(列表页第一页)
- // @Description 逻辑导图版本列表接口(列表页第一页)
- // @Param SandboxId query int true "沙盘id"
- // @Success 200 {object} response.SandboxVersionListResp
- // @router /version/first_list [get]
- func (this *SandboxController) FirstVersionList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sandboxId, _ := this.GetInt("SandboxId")
- keyword := this.GetString("Keyword")
- currentIndex := 1
- pageSize := versionSize
- startSize := 0
- var condition string
- var pars []interface{}
- if sandboxId <= 0 {
- br.Msg = "参数错误,沙盘编号id必传!"
- br.ErrMsg = "参数错误,沙盘编号id必传"
- return
- }
- condition += " AND a.sandbox_id=? "
- pars = append(pars, sandboxId)
- //不能筛选出当前版本
- condition += " AND b.curr_version < a.curr_version "
- if keyword != "" {
- condition += ` AND ( a.name LIKE '%` + keyword + `%' OR b.name LIKE '%` + keyword + `%' )`
- }
- //获取指标信息
- total, list, err := sandbox.GetVersionList(condition, pars, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Success = true
- br.Msg = "获取沙盘列表失败"
- br.ErrMsg = "获取沙盘列表失败,Err:" + err.Error()
- return
- }
- if list == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
- list = make([]*sandbox.SandboxVersionListItem, 0)
- }
- for _, v := range list {
- v.ModifyTime = v.CreateTime
- }
- page := paging.GetPaging(currentIndex, pageSize, total)
- resp := response.SandboxVersionListResp{
- Paging: page,
- List: list,
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // VersionList
- // @Title 逻辑导图版本列表
- // @Description 逻辑导图版本列表接口
- // @Param PageSize query int true "每页数据条数"
- // @Param CurrentIndex query int true "当前页页码,从1开始"
- // @Param SandboxId query int true "沙盘id"
- // @Success 200 {object} response.SandboxVersionListResp
- // @router /version/list [get]
- func (this *SandboxController) VersionList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sandboxId, _ := this.GetInt("SandboxId")
- keyWord := this.GetString("Keyword")
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- //第一页需要返回的几条数据(目前是3条)
- startSize = paging.StartIndex(currentIndex, pageSize) + versionSize
- var condition string
- var pars []interface{}
- if sandboxId <= 0 {
- br.Msg = "参数错误,沙盘编号id必传!"
- br.ErrMsg = "参数错误,沙盘编号id必传"
- return
- }
- condition += " AND a.sandbox_id=? "
- pars = append(pars, sandboxId)
- //不能筛选出当前版本
- condition += " AND b.curr_version < a.curr_version "
- if keyWord != "" {
- condition += ` AND ( a.op_user_name LIKE '%` + keyWord + `%' OR a.name LIKE '%` + keyWord + `%' or a.op_user_name LIKE '%` + keyWord + `%' OR a.name LIKE '%` + keyWord + `%' )`
- }
- //获取指标信息
- total, list, err := sandbox.GetVersionList(condition, pars, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Success = true
- br.Msg = "获取沙盘列表失败"
- br.ErrMsg = "获取沙盘列表失败,Err:" + err.Error()
- return
- }
- if list == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
- list = make([]*sandbox.SandboxVersionListItem, 0)
- }
- for _, v := range list {
- v.ModifyTime = v.CreateTime
- /*key := fmt.Sprint(`crm:sandbox:edit:`, v.SandboxId)
- opUserId, _ := utils.Rc.RedisInt(key)
- //如果当前没有人操作,获取当前操作人是本人,那么编辑按钮可用
- if opUserId <= 0 || (opUserId == this.SysUser.AdminId) {
- v.CanEdit = true
- }*/
- markStatus, err := sandboxService.UpdateSandboxEditMark(v.SandboxId, this.SysUser.AdminId, 2, this.SysUser.RealName)
- if err != nil {
- br.Msg = "查询标记状态失败"
- br.ErrMsg = "查询标记状态失败,Err:" + err.Error()
- return
- }
- if markStatus.Status == 0 {
- v.CanEdit = true
- }
- }
- //过滤第一页的几条数据(目前是3条)
- total = total - versionSize
- if total <= 0 {
- total = 0
- }
- page := paging.GetPaging(currentIndex, pageSize, total)
- resp := response.SandboxVersionListResp{
- Paging: page,
- List: list,
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // Save
- // @Title 新增/编辑保存沙盘
- // @Description 新增/编辑保存沙盘接口
- // @Param request body request.AddAndEditSandbox true "type json string"
- // @Success 200 {object} sandbox.Sandbox
- // @router /save [post]
- func (this *SandboxController) Save() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req request.AddAndEditSandbox
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- var sandboxResp *sandbox.SandboxSaveResp
- // 获取系统菜单, 如果没有对应的字段的特殊处理项, 则忽略必填
- menus, e := system.GetSysMenuItemsByCondition(` AND hidden = 0`, make([]interface{}, 0), []string{}, ``)
- if e != nil {
- br.Msg = "保存失败"
- br.ErrMsg = "获取菜单列表失败, Err: " + e.Error()
- return
- }
- menuMap := make(map[string]bool)
- for _, m := range menus {
- if m.ButtonCode != "" {
- menuMap[m.ButtonCode] = true
- }
- }
- ignoreVariety := false
- if !menuMap[system.MenuSpecialHandleSandboxVariety] {
- ignoreVariety = true
- return
- }
- var errMsg string
- if req.SandboxVersionCode == `` {
- //新增沙盘
- sandboxResp, err = sandboxService.AddSandbox(req, sysUser.AdminId, sysUser.RealName, ignoreVariety)
- } else {
- ////更新当前编辑中的状态缓存
- //err = sandboxService.UpdateSandboxEditMark(req.SandboxId, sysUser.AdminId, 1)
- //if err != nil {
- // br.Msg = err.Error()
- // return
- //}
- //编辑沙盘
- sandboxResp, err, errMsg = sandboxService.UpdateSandbox(req, sysUser.AdminId, sysUser.RealName, ignoreVariety)
- }
- if err != nil {
- br.Msg = "保存失败!"
- if errMsg != `` {
- br.Msg = errMsg
- }
- br.ErrMsg = "保存失败,Err:" + err.Error()
- return
- }
- msg := "保存成功"
- br.Ret = 200
- br.Success = true
- br.Msg = msg
- br.Data = sandboxResp
- }
- // AddSandboxDraft
- // @Title 添加沙盘草稿
- // @Description 添加沙盘草稿接口
- // @Param request body request.AddAndEditSandbox true "type json string"
- // @Success 200 {object} sandbox.SandboxDraft
- // @Fail 202 另外的人在操作,不要重复添加草稿;204 错误了,当时不是必要性的错误,不用将错误信息暴露给用户
- // @router /draft/add [post]
- func (this *SandboxController) AddSandboxDraft() {
- br := new(models.BaseResponse).Init()
- br.IsSendEmail = false
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req request.AddAndEditSandbox
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.SandboxVersionCode == `` {
- br.Msg = "请传入沙盘版本!"
- return
- }
- // 获取沙盘版本信息
- sandboxVersion, err := sandbox.GetSandboxVersionBySandboxVersionCode(req.SandboxVersionCode)
- if err != nil {
- if err.Error() == utils.ErrNoRow() {
- br.Msg = "找不到该版本!"
- br.ErrMsg = "找不到该版本"
- return
- }
- br.Msg = "找不到该版本!"
- br.ErrMsg = "找不到该版本,Err:" + err.Error()
- br.IsSendEmail = false
- return
- }
- //更新标记key
- markStatus, err := sandboxService.UpdateSandboxEditMark(sandboxVersion.SandboxId, sysUser.AdminId, 1, sysUser.RealName)
- if err != nil {
- br.Msg = err.Error()
- return
- }
- if markStatus.Status == 1 {
- br.Msg = markStatus.Msg
- return
- }
- //新增沙盘草稿
- sandboxDraftInfo, err := sandboxService.AddSandboxDraft(sandboxVersion.SandboxId, req, sysUser.AdminId, sysUser.RealName)
- if err != nil {
- br.Msg = "保存失败!"
- br.ErrMsg = "保存失败,Err:" + err.Error()
- br.Ret = 204 //204 (无内容) :服务器成功处理了请求,但没有返回任何内容。
- return
- }
- msg := "保存成功"
- br.Ret = 200
- br.Success = true
- br.Msg = msg
- br.Data = sandboxDraftInfo
- }
- // MarkEditStatus
- // @Title 标记沙盘编辑状态
- // @Description 标记沙盘编辑状态接口
- // @Param request body request.MarkEditSandbox true "type json string"
- // @Success 200 标记成功 ;202 标记成功
- // @router /mark [post]
- func (this *SandboxController) MarkEditStatus() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req request.MarkEditSandbox
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.SandboxId <= 0 {
- br.Msg = "缺少沙盘编号"
- return
- }
- if req.Status <= 0 {
- br.Msg = "标记状态异常"
- return
- }
- //更新标记key
- data, err := sandboxService.UpdateSandboxEditMark(req.SandboxId, sysUser.AdminId, req.Status, sysUser.RealName)
- if err != nil {
- br.Msg = err.Error()
- return
- }
- msg := "标记成功"
- br.Ret = 200
- br.Success = true
- br.Msg = msg
- br.Data = data
- }
- // GetSandboxVersionDetail
- // @Title 获取沙盘版本数据详情(已保存的)
- // @Description 获取沙盘版本数据详情接口(已保存的)
- // @Param SandboxVersionCode query string true "沙盘版本code"
- // @Success 200 {object} sandbox.SandboxVersion
- // @router /version/detail [get]
- func (this *SandboxController) GetSandboxVersionDetail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- sandboxVersionCode := this.GetString("SandboxVersionCode")
- if sandboxVersionCode == "" {
- br.Msg = "缺少沙盘版本编号"
- return
- }
- //获取沙盘数据详情(已保存的)
- sandboxVersionInfo, err := sandboxService.GetSandboxVersionDetailByCode(sandboxVersionCode)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,Err:" + err.Error()
- return
- }
- msg := "获取成功"
- br.Ret = 200
- br.Success = true
- br.Msg = msg
- br.Data = sandboxVersionInfo
- }
- // GetLastSandboxInfo
- // @Title 获取最后一次编辑的沙盘数据详情
- // @Description 获取最后一次编辑的沙盘数据详情接口
- // @Param SandboxId query int true "沙盘编号id"
- // @Success 200 {object} sandbox.Sandbox
- // @router /last_info [get]
- func (this *SandboxController) GetLastSandboxInfo() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- sandboxId, _ := this.GetInt("SandboxId", 0)
- if sandboxId <= 0 {
- br.Msg = "缺少沙盘编号"
- return
- }
- //获取最后一次操作的沙盘数据
- sandboxInfo, err := sandboxService.GetLastSandboxInfo(sandboxId)
- if err != nil {
- br.Msg = err.Error()
- return
- }
- msg := "获取成功"
- br.Ret = 200
- br.Success = true
- br.Msg = msg
- br.Data = sandboxInfo
- }
- // Delete
- // @Title 删除沙盘
- // @Description 删除沙盘接口
- // @Param request body request.DeleteSandbox true "type json string"
- // @Success 200 标记成功
- // @router /delete [post]
- func (this *SandboxController) Delete() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req request.DeleteSandbox
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.SandboxId <= 0 {
- br.Msg = "缺少沙盘编号"
- return
- }
- /*key := fmt.Sprint(`crm:sandbox:edit:`, req.SandboxId)
- opUserId, _ := utils.Rc.RedisInt(key)
- //如果当前有人操作,且获取当前操作人不是本人,那么不允许删除
- if opUserId > 0 && opUserId != this.SysUser.AdminId {
- br.Msg = "当前有其他人正在编辑,不允许删除该沙盘"
- return
- }*/
- markStatus, err := sandboxService.UpdateSandboxEditMark(req.SandboxId, this.SysUser.AdminId, 2, this.SysUser.RealName)
- if err != nil {
- br.Msg = "查询标记状态失败"
- br.ErrMsg = "查询标记状态失败,Err:" + err.Error()
- return
- }
- if markStatus.Status == 1 {
- br.Msg = fmt.Sprintf("当前%s正在编辑,不允许删除该沙盘", markStatus.Editor)
- return
- }
- //删除沙盘
- err = sandboxService.DeleteSandbox(req.SandboxId)
- if err != nil {
- br.Msg = err.Error()
- return
- }
- msg := "删除成功"
- br.Ret = 200
- br.Success = true
- br.Msg = msg
- }
- // DeleteVersion
- // @Title 删除沙盘版本
- // @Description 删除沙盘版本接口
- // @Param request body request.DeleteSandbox true "type json string"
- // @Success 200 标记成功
- // @router /version/delete [post]
- func (this *SandboxController) DeleteVersion() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req request.DeleteSandboxVersion
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.SandboxVersionCode == `` {
- br.Msg = "缺少沙盘版本号"
- return
- }
- //删除沙盘
- err, errMsg := sandboxService.DeleteSandboxVersion(req.SandboxVersionCode, this.SysUser.AdminId)
- if err != nil {
- br.Msg = "删除版本失败"
- if errMsg != `` {
- br.Msg = errMsg
- }
- br.ErrMsg = err.Error()
- return
- }
- msg := "删除成功"
- br.Ret = 200
- br.Success = true
- br.Msg = msg
- }
- // ResetDraftToLastVersion
- // @Title 重置沙盘草稿至最新版本
- // @Description 重置沙盘草稿至最新版本接口
- // @Param request body request.DeleteSandbox true "type json string"
- // @Success 200 {object} sandbox.SandboxDraft
- // @Fail 202 另外的人在操作,不要重复添加草稿;204 错误了,当时不是必要性的错误,不用将错误信息暴露给用户
- // @router /draft/reset [post]
- func (this *SandboxController) ResetDraftToLastVersion() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req request.DeleteSandbox
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.SandboxId <= 0 {
- br.Msg = "缺少沙盘编号"
- return
- }
- //更新标记key
- markStatus, err := sandboxService.UpdateSandboxEditMark(req.SandboxId, sysUser.AdminId, 0, sysUser.RealName)
- if err != nil {
- br.Msg = err.Error()
- return
- }
- if markStatus.Status == 1 {
- br.Msg = markStatus.Msg
- return
- }
- //重置沙盘草稿至最新版本
- sandboxDraftInfo, err := sandboxService.ResetDraftToLastVersion(req.SandboxId, sysUser.AdminId, sysUser.RealName)
- if err != nil {
- br.Msg = "保存失败!"
- br.ErrMsg = "保存失败,Err:" + err.Error()
- return
- }
- msg := "保存成功"
- br.Ret = 200
- br.Success = true
- br.Msg = msg
- br.Data = sandboxDraftInfo
- }
- // ListByQuote
- // @Title 逻辑导图列表(其他地方引用到的,莫名其妙要根据输入的关键字匹配品种)
- // @Description 逻辑导图列表接口(其他地方引用到的,莫名其妙要根据输入的关键字匹配品种)
- // @Param PageSize query int true "每页数据条数"
- // @Param CurrentIndex query int true "当前页页码,从1开始"
- // @Param ChartPermissionId query int true "权限编号id"
- // @Param Keyword query string false "搜索关键词:沙盘名称/编辑人名称"
- // @Success 200 {object} response.SandboxListResp
- // @router /list_by_quote [get]
- func (this *SandboxController) ListByQuote() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- chartPermissionId, _ := this.GetInt("ChartPermissionId")
- keyword := this.GetString("Keyword")
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- var condition string
- var pars []interface{}
- if chartPermissionId > 0 {
- condition += " AND a.chart_permission_id=? "
- pars = append(pars, chartPermissionId)
- }
- if keyword != "" {
- condition += ` AND ( a.name LIKE '%` + keyword + `%' OR b.name LIKE '%` + keyword + `%' OR a.chart_permission_name LIKE '%` + keyword + `%' )`
- }
- //获取指标信息
- total, list, err := sandbox.GetList(condition, pars, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Success = true
- br.Msg = "获取沙盘列表失败"
- br.ErrMsg = "获取沙盘列表失败,Err:" + err.Error()
- return
- }
- if list == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
- list = make([]*sandbox.SandboxListItem, 0)
- }
- page := paging.GetPaging(currentIndex, pageSize, total)
- resp := response.SandboxListResp{
- Paging: page,
- List: list,
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
|