package cross_variety import ( "encoding/json" "eta/eta_api/controllers" "eta/eta_api/models" "eta/eta_api/models/data_manage/cross_variety" "eta/eta_api/models/data_manage/cross_variety/request" "eta/eta_api/models/data_manage/response" "eta/eta_api/utils" "time" ) // VarietyController // @Description: 品种列表 type VarietyController struct { controllers.BaseAuthController } // Add // @Title 新增品种 // @Description 新增品种接口 // @Param request body request.AddVarietyReq true "type json string" // @Success 200 Ret=200 添加成功 // @router /variety/add [post] func (c *VarietyController) Add() { br := new(models.BaseResponse).Init() defer func() { c.Data["json"] = br c.ServeJSON() }() var req request.AddVarietyReq err := json.Unmarshal(c.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.VarietyName == "" { br.Msg = "请输入品种名称" br.IsSendEmail = false return } varietyName := utils.TrimStr(req.VarietyName) item, err := cross_variety.GetVarietyByName(varietyName) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "添加失败" br.ErrMsg = "添加失败,Err:" + err.Error() return } if item != nil { br.Msg = "添加失败,品种名称不能重复" br.IsSendEmail = false return } variety := &cross_variety.ChartVariety{ ChartVarietyId: 0, ChartVarietyName: varietyName, SysUserId: c.SysUser.AdminId, SysUserRealName: c.SysUser.RealName, ModifyTime: time.Now(), CreateTime: time.Now(), } err = cross_variety.AddVariety(variety) if err != nil { br.Msg = "添加品种失败" br.ErrMsg = "添加品种失败,Err:" + err.Error() return } br.Ret = 200 br.Msg = "添加成功" br.IsAddLog = true br.Success = true } // Edit // @Title 编辑品种接口 // @Description 编辑品种接口 // @Param request body request.EditVarietyReq true "type json string" // @Success 200 Ret=200 修改成功 // @router /variety/edit [post] func (c *VarietyController) Edit() { br := new(models.BaseResponse).Init() defer func() { c.Data["json"] = br c.ServeJSON() }() var req request.EditVarietyReq err := json.Unmarshal(c.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.ChartVarietyId <= 0 { br.Msg = "请选择品种" br.IsSendEmail = false return } if req.VarietyName == "" { br.Msg = "请输入品种名称" br.IsSendEmail = false return } varietyName := utils.TrimStr(req.VarietyName) item, err := cross_variety.GetVarietyByName(varietyName) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "添加失败" br.ErrMsg = "添加失败,Err:" + err.Error() return } if item != nil && item.ChartVarietyId != req.ChartVarietyId { br.Msg = "添加失败,品种名称不能重复" br.IsSendEmail = false return } // 获取品种详情 varietyInfo, err := cross_variety.GetVarietyById(req.ChartVarietyId) if err != nil { br.Msg = "查询品种失败" br.ErrMsg = "查询品种失败;ERR:" + err.Error() return } // 编辑 varietyInfo.ChartVarietyName = varietyName varietyInfo.ModifyTime = time.Now() err = varietyInfo.Update([]string{"ChartVarietyName", "ModifyTime"}) if err != nil { br.Msg = "修改品种失败" br.ErrMsg = "修改品种失败,Err:" + err.Error() return } br.Ret = 200 br.Msg = "修改成功" br.IsAddLog = true br.Success = true } // DeleteCheck // @Title 删除品种检测接口 // @Description 删除品种检测接口 // @Param request body request.DelVarietyReq true "type json string" // @Success 200 Ret=200 检测成功 // @router /variety/delete/check [post] func (c *VarietyController) DeleteCheck() { br := new(models.BaseResponse).Init() defer func() { c.Data["json"] = br c.ServeJSON() }() var req request.DelVarietyReq err := json.Unmarshal(c.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.ChartVarietyId <= 0 { br.Msg = "请选择品种" br.IsSendEmail = false return } var deleteStatus int var tipsMsg string // todo 校验品种与图表的关系 //deleteStatus = 1 //tipsMsg = "已关联图表的品种,不允许删除!" resp := response.VarietyDeleteCheckResp{ DeleteStatus: deleteStatus, TipsMsg: tipsMsg, } br.Ret = 200 br.Msg = "检测成功" br.Success = true br.Data = resp } // Delete // @Title 删除存量装置图表分类/图表 // @Description 删除存量装置图表分类/图表接口 // @Param request body data_manage.DeleteChartClassifyReq true "type json string" // @Success 200 Ret=200 删除成功 // @router /variety/delete [post] func (c *VarietyController) Delete() { br := new(models.BaseResponse).Init() defer func() { c.Data["json"] = br c.ServeJSON() }() var req request.DelVarietyReq err := json.Unmarshal(c.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.ChartVarietyId <= 0 { br.Msg = "请选择品种" br.IsSendEmail = false return } // todo 校验品种与图表的关系 //deleteStatus = 1 //tipsMsg = "已关联图表的品种,不允许删除!" varietyInfo, err := cross_variety.GetVarietyById(req.ChartVarietyId) if err != nil { if err.Error() == utils.ErrNoRow() { br.Msg = "该品种不存在或已删除" br.IsSendEmail = false } else { br.Msg = "删除失败" br.ErrMsg = "查找品种失败,ERR:" + err.Error() } return } err = varietyInfo.Delete() if err != nil { br.Msg = "删除失败" br.ErrMsg = "删除品种失败,ERR:" + err.Error() return } br.Ret = 200 br.Msg = "删除成功" br.Success = true br.IsAddLog = true }