فهرست منبع

批量保存 先删除在新增

liuyang 5 سال پیش
والد
کامیت
c5d718a0d2

+ 44 - 3
backend/src/dashoo.cn/modi_webapi/app/api/duty/detail.go

@@ -182,8 +182,49 @@ func (c *DetailController) BatchAdd(r *ghttp.Request) {
 	if err != nil {
 		response.Json(r, -1, err.Error())
 	}
- 	detail  := new(detail.ListEntity)
- 	if err := r.Parse(detail); err != nil {
+
+	detail := new(detail.ListEntity)
+	if err := r.Parse(detail); err != nil {
+		// 数据验证错误
+		if v, ok := err.(*gvalid.Error); ok {
+			response.Json(r, 1, v.FirstString())
+			r.ExitAll()
+		}
+		// 其他错误
+		response.Json(r, 1, err.Error())
+		r.ExitAll()
+	}
+	if id, err := service.Adds(detail); err != nil {
+		response.Json(r, -1, err.Error())
+	} else {
+		response.Json(r, 0, "ok", id)
+	}
+}
+
+// 批量保存 先删除再新增
+func (c *DetailController) Saves(r *ghttp.Request) {
+	// tenant 租户模式
+	tenant := r.Header.Get("Tenant")
+	// 初始化service
+	service, err := detailService.NewDetailService(tenant)
+	if err != nil {
+		response.Json(r, -1, err.Error())
+	}
+	delUpdReq := new(common.DeleteUpdReq)
+	// 获取操作人
+	realName := r.GetParamVar("realname").String()
+	delUpdReq.UpdatedBy = realName
+	DutyId := r.GetInt("DutyId")
+	if DutyId == 0 {
+		response.Json(r, 1, "父级id不能为空")
+	}
+	// 先删除
+	if err := service.DeleteByDutyId(DutyId, delUpdReq); err != nil {
+		response.Json(r, 1, err.Error())
+	}
+	// 新增
+	detail := new(detail.ListEntity)
+	if err := r.Parse(detail); err != nil {
 		// 数据验证错误
 		if v, ok := err.(*gvalid.Error); ok {
 			response.Json(r, 1, v.FirstString())
@@ -193,7 +234,7 @@ func (c *DetailController) BatchAdd(r *ghttp.Request) {
 		response.Json(r, 1, err.Error())
 		r.ExitAll()
 	}
- 	if id, err := service.Adds(detail); err != nil {
+	if id, err := service.Adds(detail); err != nil {
 		response.Json(r, -1, err.Error())
 	} else {
 		response.Json(r, 0, "ok", id)

+ 12 - 0
backend/src/dashoo.cn/modi_webapi/app/service/duty/detail.go

@@ -109,3 +109,15 @@ func (s DetailService) GetDetailByDutyId(dutyId int) (list []*detail.Entity, err
 	}
 	return result, err
 }
+
+// 根据父级id删除
+func (s DetailService) DeleteByDutyId(DutyId int, param *common.DeleteUpdReq) error {
+	//设置更新时间
+	param.UpdatedTime = gtime.Now()
+	// 修改删除状态
+	param.IsDel = 1
+	if _, err := s.SafeModel.Where("DutyId", DutyId).Update(param); err != nil {
+		return err
+	}
+	return nil
+}