Browse Source

重命名

xyxie 4 months ago
parent
commit
f97074e423
3 changed files with 199 additions and 65 deletions
  1. 175 2
      controllers/material/material.go
  2. 6 63
      models/material/material.go
  3. 18 0
      routers/commentsRouter.go

+ 175 - 2
controllers/material/material.go

@@ -832,6 +832,7 @@ func (this *MaterialController) List() {
 		br.Ret = 200
 		br.Success = true
 		br.Msg = "获取成功"
+		br.Data = resp
 		return
 	}
 
@@ -1380,6 +1381,10 @@ func (this *MaterialController) BatchChangeClassify() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
+	if req.NewClassifyId <= 0 {
+		br.Msg = "请选择新的分类"
+		return
+	}
 	updateMaterialIds := make([]int, 0)
 	if req.IsSelectAll {
 		classifyId := req.ClassifyId
@@ -1411,11 +1416,21 @@ func (this *MaterialController) BatchChangeClassify() {
 	}
 
 	if len(updateMaterialIds) <= 0 {
-		br.Msg = "请选择删除的素材"
+		br.Msg = "请选择变更的素材"
 		return
 	}
 
-	//删除素材库
+	// 判断新分类是否存在
+	_, err = material.GetMaterialClassifyById(req.NewClassifyId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "分类不存在"
+			return
+		}
+		br.Msg = "获取分类信息失败"
+		br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
+	}
+	//更换分类素材库
 	err = material.UpdateClassifyByMaterialIds(updateMaterialIds, req.NewClassifyId, time.Now())
 	if err != nil {
 		br.Msg = err.Error()
@@ -1427,3 +1442,161 @@ func (this *MaterialController) BatchChangeClassify() {
 	br.Success = true
 	br.Msg = msg
 }
+
+// ChangeClassify
+// @Title 更换分类
+// @Description 批量更换分类
+// @Param	request	body material.DeleteSandbox true "type json string"
+// @Success 200 标记成功
+// @router /changeClassify [post]
+func (this *MaterialController) ChangeClassify() {
+	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 material.ChangeClassifyMaterialReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	if req.MaterialId <= 0 {
+		br.Msg = "缺少素材库编号"
+		return
+	}
+	if req.NewClassifyId <= 0 {
+		br.Msg = "请选择新的分类"
+		return
+	}
+
+	// 判断素材是否存在
+	info, err := material.GetMaterialById(req.MaterialId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "素材不存在"
+			return
+		}
+		br.Msg = "获取素材库信息失败"
+		br.ErrMsg = "获取素材库信息失败,Err:" + err.Error()
+		return
+	}
+
+	if req.NewClassifyId == info.ClassifyId {
+		br.Msg = "请选择不同的分类"
+		return
+	}
+
+	// 判断新分类是否存在
+	_, err = material.GetMaterialClassifyById(req.NewClassifyId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "分类不存在"
+			return
+		}
+		br.Msg = "获取分类信息失败"
+		br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
+	}
+	info.ClassifyId = req.NewClassifyId
+	info.ModifyTime = time.Now()
+
+	//更换分类素材库
+	err = info.Update([]string{"ClassifyId", "ModifyTime"})
+	if err != nil {
+		br.Msg = err.Error()
+		return
+	}
+
+	msg := "操作成功"
+	br.Ret = 200
+	br.Success = true
+	br.Msg = msg
+}
+
+// Rename
+// @Title 素材重命名
+// @Description 素材重命名
+// @Param	request	body material.DeleteSandbox true "type json string"
+// @Success 200 标记成功
+// @router /rename [post]
+func (this *MaterialController) Rename() {
+	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 material.RenameMaterialReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	if req.MaterialId <= 0 {
+		br.Msg = "缺少素材库编号"
+		return
+	}
+	if req.MaterialName == "" {
+		br.Msg = "缺少素材库名称"
+		return
+	}
+	// 判断素材是否存在
+	info, err := material.GetMaterialById(req.MaterialId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "素材不存在"
+			return
+		}
+		br.Msg = "获取素材库信息失败"
+		br.ErrMsg = "获取素材库信息失败,Err:" + err.Error()
+		return
+	}
+	// 判断名称是否重复
+	if info.MaterialName == req.MaterialName {
+		br.Msg = "名称未修改"
+		return
+	}
+
+	// 查询名称是否已存在
+	exist, e := material.GetMaterialByNames([]string{req.MaterialName})
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	if e == nil && exist.MaterialId > 0 {
+		br.Msg = "图片名称已存在"
+		return
+	}
+	info.MaterialName = req.MaterialName
+	info.ModifyTime = time.Now()
+
+	//更换分类素材库
+	err = info.Update([]string{"MaterialName", "ModifyTime"})
+	if err != nil {
+		br.Msg = err.Error()
+		return
+	}
+
+	msg := "操作成功"
+	br.Ret = 200
+	br.Success = true
+	br.Msg = msg
+}

+ 6 - 63
models/material/material.go

@@ -31,7 +31,7 @@ func (material *Material) Update(cols []string) (err error) {
 // GetMaterialById 根据素材id获取素材详情
 func GetMaterialById(MaterialId int) (materialInfo *Material, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := `select * FROM material where material_id = ? and is_delete = 0`
+	sql := `select * FROM material where material_id = ?`
 	err = o.Raw(sql, MaterialId).QueryRow(&materialInfo)
 	return
 }
@@ -92,23 +92,6 @@ type MaterialListItem struct {
 	SysUserRealName string `description:"作者名称"`
 }
 
-// GetList 获取素材列表页
-func GetList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*Material, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := "select a.material_id,a.material_name,a.code,a.pic_url,a.sys_user_id,a.sys_user_name,a.modify_time,a.create_time FROM material as a where 1=1 AND a.is_delete = 0 "
-	sql += condition
-	sql += ` order by a.modify_time desc,a.material_id desc`
-
-	totalSql := `select count(1) total from (` + sql + `) z `
-	err = o.Raw(totalSql, pars).QueryRow(&total)
-	if err != nil {
-		return
-	}
-	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
-	return
-}
-
 // MaterialSaveResp 保存素材响应体
 type MaterialSaveResp struct {
 	*Material
@@ -217,51 +200,6 @@ func AddMaterial(item *Material) (lastId int64, err error) {
 	return
 }
 
-func GetMaterialItemsByClassifyId(classifyId int) (list []*MaterialClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT material_id,classify_id,material_name AS classify_name, sort
-		FROM material  WHERE classify_id = ? AND is_delete = 0  ORDER BY sort `
-	_, err = o.Raw(sql, classifyId).QueryRows(&list)
-	return
-}
-
-func GetMaterialAllParentByClassifyId(classifyId int) (ids string, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT
-	GROUP_CONCAT(DISTINCT m.classify_id  ORDER BY m.level) AS ids 
-FROM
-	(
-	SELECT
-		@id AS _id,(
-		SELECT
-			@id := parent_id 
-		FROM
-			material_classify 
-		WHERE
-			classify_id = _id 
-		) 
-	FROM
-		(
-		SELECT
-			@id :=(
-			SELECT
-				parent_id 
-			FROM
-				material_classify 
-			WHERE
-				classify_id = ? 
-			)) vm,
-		material_classify m 
-	WHERE
-		@id IS NOT NULL 
-	) vm
-	INNER JOIN material_classify m 
-WHERE
-	classify_id = vm._id `
-	err = o.Raw(sql, classifyId).QueryRow(&ids)
-	return
-}
-
 type MoveMaterialReq struct {
 	MaterialId     int `description:"素材ID"`
 	PrevMaterialId int `description:"上一个素材ID"`
@@ -365,6 +303,11 @@ type BatchChangeClassifyMaterialReq struct {
 	NewClassifyId int `description:"新分类ID"`
 }
 
+type ChangeClassifyMaterialReq struct {
+	MaterialId    int `description:"素材id"`
+	NewClassifyId int `description:"新分类ID"`
+}
+
 // RenameMaterialReq 添加/编辑素材的请求数据
 type RenameMaterialReq struct {
 	MaterialId   int    `description:"素材id"`

+ 18 - 0
routers/commentsRouter.go

@@ -7387,6 +7387,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/material:MaterialController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/material:MaterialController"],
+        beego.ControllerComments{
+            Method: "ChangeClassify",
+            Router: `/changeClassify`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/material:MaterialController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/material:MaterialController"],
         beego.ControllerComments{
             Method: "AddMaterialClassify",
@@ -7477,6 +7486,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/material:MaterialController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/material:MaterialController"],
+        beego.ControllerComments{
+            Method: "Rename",
+            Router: `/rename`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/material:MaterialController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/material:MaterialController"],
         beego.ControllerComments{
             Method: "Save",