123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- package my_chart
- import (
- "github.com/gin-gonic/gin"
- "hongze/hongze_yb/controller/response"
- "hongze/hongze_yb/models/request"
- responseModel "hongze/hongze_yb/models/response"
- "hongze/hongze_yb/models/tables/yb_my_chart"
- "hongze/hongze_yb/models/tables/yb_my_chart_classify"
- userService "hongze/hongze_yb/services/user"
- "hongze/hongze_yb/utils"
- "time"
- )
- // MyChartClassifyController 用户-我的图表分类
- type MyChartClassifyController struct{}
- func (this *MyChartClassifyController) List(c *gin.Context) {
- userInfo := userService.GetInfoByClaims(c)
- userId := int(userInfo.UserID)
- if userId <= 0 {
- response.Fail("请登录后查看", c)
- return
- }
- cond := `user_id = ?`
- pars := make([]interface{}, 0)
- pars = append(pars, userId)
- ob := new(yb_my_chart_classify.YbMyChartClassify)
- list, e := ob.List(cond, pars)
- if e != nil {
- response.FailMsg("获取失败", "获取用户图表分类失败, Err: "+e.Error(), c)
- return
- }
- respList := make([]*responseModel.MyChartClassifyItem, 0)
- // 新增一个默认分类
- respList = append(respList, &responseModel.MyChartClassifyItem{
- MyChartClassifyID: -1,
- MyChartClassifyName: "未分类",
- Sort: -1,
- UserID: userId,
- CreateTime: utils.TimeTransferString(utils.FormatDateTime, time.Now().Local()),
- })
- for i := range list {
- respList = append(respList, &responseModel.MyChartClassifyItem{
- MyChartClassifyID: list[i].MyChartClassifyID,
- MyChartClassifyName: list[i].MyChartClassifyName,
- Sort: list[i].Sort,
- UserID: list[i].UserID,
- CreateTime: utils.TimeTransferString(utils.FormatDateTime, list[i].CreateTime),
- })
- }
- response.OkData("获取成功", respList, c)
- }
- func (this *MyChartClassifyController) Add(c *gin.Context) {
- userInfo := userService.GetInfoByClaims(c)
- userId := int(userInfo.UserID)
- if userId <= 0 {
- response.Fail("请登录后操作", c)
- return
- }
- var req request.MyChartClassifyAddReq
- if c.ShouldBind(&req) != nil {
- response.Fail("参数有误", c)
- return
- }
- if req.ClassifyName == "" {
- response.Fail("请输入分类名称", c)
- return
- }
- if len([]rune(req.ClassifyName)) > 10 {
- response.Fail("分类名称不可超过10个字符", c)
- return
- }
- cond := `my_chart_classify_name = ? AND user_id = ?`
- pars := make([]interface{}, 0)
- pars = append(pars, req.ClassifyName, userId)
- ob := new(yb_my_chart_classify.YbMyChartClassify)
- exists, e := ob.FetchByCondition(cond, pars)
- if e != nil && e != utils.ErrNoRow {
- response.FailMsg("操作失败", "获取用户同名图表分类失败, Err: "+e.Error(), c)
- return
- }
- if exists != nil && exists.MyChartClassifyID > 0 {
- response.Fail("分类名称已存在", c)
- return
- }
- nowTime := time.Now().Local()
- ob.MyChartClassifyName = req.ClassifyName
- ob.UserID = userId
- ob.CreateTime = nowTime
- ob.ModifyTime = nowTime
- if e = ob.Create(); e != nil {
- response.FailMsg("操作失败", "新增用户图表分类失败, Err: "+e.Error(), c)
- return
- }
- response.Ok("操作成功", c)
- }
- func (this *MyChartClassifyController) Edit(c *gin.Context) {
- userInfo := userService.GetInfoByClaims(c)
- userId := int(userInfo.UserID)
- if userId <= 0 {
- response.Fail("请登录后操作", c)
- return
- }
- var req request.MyChartClassifyEditReq
- if c.ShouldBind(&req) != nil {
- response.Fail("参数有误", c)
- return
- }
- if req.ClassifyId <= 0 {
- response.Fail("请选择分类", c)
- return
- }
- if req.ClassifyName == "" {
- response.Fail("请输入分类名称", c)
- return
- }
- if len([]rune(req.ClassifyName)) > 10 {
- response.Fail("分类名称不可超过10个字符", c)
- return
- }
- cond := `my_chart_classify_name = ? AND user_id = ?`
- pars := make([]interface{}, 0)
- pars = append(pars, req.ClassifyName, userId)
- ob := new(yb_my_chart_classify.YbMyChartClassify)
- exists, e := ob.FetchByCondition(cond, pars)
- if e != nil && e != utils.ErrNoRow {
- response.FailMsg("操作失败", "获取用户同名图表分类失败, Err: "+e.Error(), c)
- return
- }
- if exists != nil && exists.MyChartClassifyID > 0 && exists.MyChartClassifyID != req.ClassifyId {
- response.Fail("分类名称已存在", c)
- return
- }
- item, e := ob.Fetch(req.ClassifyId)
- if e != nil {
- response.FailMsg("信息有误", "获取用户图表分类失败, Err: "+e.Error(), c)
- return
- }
- item.MyChartClassifyName = req.ClassifyName
- item.ModifyTime = time.Now().Local()
- if e = item.Update([]string{"MyChartClassifyName", "ModifyTime"}); e != nil {
- response.FailMsg("操作失败", "编辑用户图表分类失败, Err: "+e.Error(), c)
- return
- }
- response.Ok("操作成功", c)
- }
- func (this *MyChartClassifyController) Del(c *gin.Context) {
- userInfo := userService.GetInfoByClaims(c)
- userId := int(userInfo.UserID)
- if userId <= 0 {
- response.Fail("请登录后操作", c)
- return
- }
- var req request.MyChartClassifyDelReq
- if c.ShouldBind(&req) != nil {
- response.Fail("参数有误", c)
- return
- }
- if req.ClassifyId <= 0 {
- response.Fail("请选择分类", c)
- return
- }
- ob := new(yb_my_chart_classify.YbMyChartClassify)
- item, e := ob.Fetch(req.ClassifyId)
- if e != nil {
- response.FailMsg("分类不存在或已被删除", "获取用户图表分类失败, Err: "+e.Error(), c)
- return
- }
- if item.UserID != userId {
- response.Fail("无权操作", c)
- return
- }
- // 是否存在关联图表
- condRelate := `my_chart_classify_id = ?`
- parsRelate := make([]interface{}, 0)
- parsRelate = append(parsRelate, req.ClassifyId)
- chartOB := new(yb_my_chart.YbMyChart)
- count, e := chartOB.Count(condRelate, parsRelate)
- if e != nil {
- response.FailMsg("操作失败", "获取用户图表分类关联数失败, Err: "+e.Error(), c)
- return
- }
- if count > 0 {
- response.SpecificFail("", "删除失败, 该分类下有图表", c)
- return
- }
- if e = item.Delete(); e != nil {
- response.FailMsg("操作失败", "删除分类失败, Err: "+e.Error(), c)
- return
- }
- response.Ok("操作成功", c)
- }
- func (this *MyChartClassifyController) Sort(c *gin.Context) {
- userInfo := userService.GetInfoByClaims(c)
- userId := int(userInfo.UserID)
- if userId <= 0 {
- response.Fail("请登录后操作", c)
- return
- }
- var req []request.MyChartClassifySortReq
- if c.ShouldBind(&req) != nil {
- response.Fail("参数有误", c)
- return
- }
- if len(req) == 0 {
- response.Fail("请选择排序分类", c)
- return
- }
- sortMap := make(map[int]int)
- classifyIds := make([]int, 0)
- for i := range req {
- classifyIds = append(classifyIds, req[i].ClassifyId)
- sortMap[req[i].ClassifyId] = req[i].Sort
- }
- cond := `my_chart_classify_id IN ?`
- pars := make([]interface{}, 0)
- pars = append(pars, classifyIds)
- ob := new(yb_my_chart_classify.YbMyChartClassify)
- list, e := ob.List(cond, pars)
- if e != nil {
- response.FailMsg("操作失败", "获取用户分类列表失败, Err: "+e.Error(), c)
- return
- }
- nowTime := time.Now().Local()
- updateCols := []string{"Sort", "ModifyTime"}
- for i := range list {
- list[i].Sort = sortMap[list[i].MyChartClassifyID]
- list[i].ModifyTime = nowTime
- if e = list[i].Update(updateCols); e != nil {
- response.FailMsg("操作失败", "更新用户分类排序失败, Err: "+e.Error(), c)
- return
- }
- }
- response.Ok("操作成功", c)
- }
|