|
@@ -6,9 +6,11 @@ import (
|
|
|
"eta/eta_api/models/data_manage/excel"
|
|
|
"eta/eta_api/models/data_manage/excel/request"
|
|
|
"eta/eta_api/models/data_manage/excel/response"
|
|
|
+ "eta/eta_api/models/system"
|
|
|
"eta/eta_api/services/data/data_manage_permission"
|
|
|
excel2 "eta/eta_api/services/data/excel"
|
|
|
"eta/eta_api/utils"
|
|
|
+ "strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
@@ -106,14 +108,8 @@ func (c *ExcelInfoController) Rename() {
|
|
|
//判断表格是否存在
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
|
- condition += " AND excel_info_id != ? "
|
|
|
- pars = append(pars, req.ExcelInfoId)
|
|
|
-
|
|
|
- condition += " AND excel_classify_id=? "
|
|
|
- pars = append(pars, excelInfo.ExcelClassifyId)
|
|
|
-
|
|
|
- condition += " AND excel_name=? "
|
|
|
- pars = append(pars, req.ExcelName)
|
|
|
+ condition += " AND excel_info_id != ? AND excel_classify_id=? AND excel_name=? AND parent_id=?"
|
|
|
+ pars = append(pars, req.ExcelInfoId, excelInfo.ExcelClassifyId, req.ExcelName, excelInfo.ParentId)
|
|
|
|
|
|
// 获取分类下是否存在该表格名称
|
|
|
count, err := excel.GetExcelInfoCountByCondition(condition, pars)
|
|
@@ -174,3 +170,111 @@ func (c *ExcelInfoController) Rename() {
|
|
|
br.Data = resp
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
+
|
|
|
+// SaveExcelWorker
|
|
|
+// @Title 新增编辑表格协作人接口
|
|
|
+// @Description 新增编辑表格协作人接口
|
|
|
+// @Param request body request.EditExcelInfoReq true "type json string"
|
|
|
+// @Success 200 {object} response.AddExcelInfoResp
|
|
|
+// @router /excel_info/worker/save [post]
|
|
|
+func (c *ExcelInfoController) SaveExcelWorker() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := c.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var req request.SaveExcelInfoWorkerReq
|
|
|
+ err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.ExcelInfoId <= 0 {
|
|
|
+ br.Msg = "请传入ETA表格标识!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ excelInfo, err := excel.GetExcelInfoById(req.ExcelInfoId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取ETA表格失败"
|
|
|
+ br.ErrMsg = "获取ETA表格失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if excelInfo.SysUserId != sysUser.AdminId {
|
|
|
+ br.Msg = "您没有权限操作!"
|
|
|
+ br.ErrMsg = "您没有权限操作!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // todo 操作权限校验, 增加协作人判断
|
|
|
+ {
|
|
|
+ // 数据权限
|
|
|
+ haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, c.SysUser.AdminId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取ETA表格失败"
|
|
|
+ br.ErrMsg = "获取ETA表格权限失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ button := excel2.GetExcelInfoOpButton(sysUser, excelInfo.SysUserId, excelInfo.Source, haveOperaAuth)
|
|
|
+ if !button.OpButton {
|
|
|
+ br.Msg = "无操作权限"
|
|
|
+ br.Msg = "无操作权限"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ obj := new(excel.ExcelWorker)
|
|
|
+ notDeleteWorkerIds := make([]string, 0)
|
|
|
+ workerMap := make(map[int]struct{})
|
|
|
+ if req.SysUserIds != "" {
|
|
|
+ notDeleteWorkerIds = strings.Split(req.SysUserIds, ",")
|
|
|
+ }
|
|
|
+ existList, err := obj.GetByExcelInfoId(req.ExcelInfoId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取表格协作人失败!"
|
|
|
+ br.ErrMsg = "获取表格协作人失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range existList {
|
|
|
+ workerMap[v.SysUserId] = struct{}{}
|
|
|
+ }
|
|
|
+ addIds := make([]int, 0)
|
|
|
+ for _, v := range notDeleteWorkerIds {
|
|
|
+ id, _ := strconv.Atoi(v)
|
|
|
+ if _, ok := workerMap[id]; !ok {
|
|
|
+ addIds = append(addIds, id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 查询协作人姓名
|
|
|
+ adminList, err := system.GetAdminListByIdListWithoutEnable(addIds)
|
|
|
+ addList := make([]*excel.ExcelWorker, 0)
|
|
|
+ for _, v := range adminList {
|
|
|
+ addList = append(addList, &excel.ExcelWorker{
|
|
|
+ ExcelInfoId: req.ExcelInfoId,
|
|
|
+ SysUserId: v.AdminId,
|
|
|
+ SysUserRealName: v.RealName,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 保存协作人
|
|
|
+ err = obj.AddWorker(req.ExcelInfoId, addList, notDeleteWorkerIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ br.ErrMsg = "保存失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+}
|