package controllers import ( "encoding/json" "strconv" "vamicro/scene-service/models" "vamicro/scene-service/service" "basic.com/valib/bhomeclient.git" "basic.com/valib/logger.git" ) type CameraTimeRuleController struct { } type CameraTimeruleVo struct { Id string `json:"id"` Name string `json:"name"` TimeRule []models.DayCtl `json:"time_rule"` } // @Summary 时间规则保存 // @Description 时间规则保存 // @Accept json // @Produce json // @Tags CameraTimerule // @Param cameraTaskTimerule body controllers.CameraTimeruleVo true "摄像机任务时间规则" // @Success 200 {string} json "{"code":200, success:true, msg:"请求处理成功", data:"成功信息"}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:"错误信息内容"}" // @Router /data/api-v/cameraTimerule/save [post] func (cc CameraTimeRuleController) Save(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { var vo CameraTimeruleVo if err := c.BindJSON(&vo); err != nil { logger.Error("CameraTimeRule Save err:", err) return &bhomeclient.Reply{Success: false, Msg: "参数错误"} } logger.Debugf("CameraTimeRule Save vo=%v", vo) if vo.Name == "" || vo.TimeRule == nil { return &bhomeclient.Reply{Success: false, Msg: "规则名称或者时间规则不能为空"} } ruleBytes, err := json.Marshal(vo.TimeRule) if err != nil { return &bhomeclient.Reply{Success: false, Msg: "时间规则参数错误"} } var model = models.CameraTimerule{ Id: vo.Id, Name: vo.Name, TimeRule: string(ruleBytes), } logger.Debug("timeRuleModel: ", model) sv := service.TimeService{Bk: h.Bk} err = sv.Save(model) if err != nil { if err.Error() == "时间规则重复" { return &bhomeclient.Reply{Success: false, Msg: "系统检测到此时间段已存在,请勿重复添加 !"} } return &bhomeclient.Reply{Success: false, Msg: "更新失败"} } return &bhomeclient.Reply{Success: true, Data: model} } // @Summary 查找所有时间规则 // @Description 查找所有时间规则 // @Produce json // @Tags CameraTimerule // @Success 200 {string} json "{"code":200, success:true, msg:"请求处理成功", data:"成功信息"}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:"错误信息内容"}" // @Router /data/api-v/cameraTimerule/findAll [get] func (cc CameraTimeRuleController) FindAll(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { var model models.CameraTimerule timeRules, err := model.FindAll() if err != nil { return &bhomeclient.Reply{Success: false, Msg: "查询失败"} } return &bhomeclient.Reply{Success: true, Data: timeRules} } // @Summary 删除时间规则 // @Description 删除时间规则 // @Accept json // @Produce json // @Tags CameraTimerule // @Param id query string true "id" // @Success 200 {string} json "{"code":200, success:true, msg:"请求处理成功", data:"成功信息"}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:"错误信息内容"}" // @Router /data/api-v/cameraTimerule/delete [get] func (cc CameraTimeRuleController) Delete(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { // get timeRuleId := c.Query("id") if timeRuleId == "" { // post var vo CameraTimeruleVo if err := c.BindJSON(&vo); err != nil { logger.Errorf("cameraTimeRule delete err=%v", err) return &bhomeclient.Reply{Success: false, Msg: "参数不能为空"} } timeRuleId = vo.Id } if timeRuleId == "" { logger.Errorf("cameraTimeRule delete id is nil") return &bhomeclient.Reply{Success: false, Msg: "id参数为空错误"} } bForce, _ := strconv.ParseBool(c.Query("force")) sv := service.TimeService{Bk: h.Bk} if b, e := sv.DeleteById(timeRuleId, bForce); !b { logger.Errorf("cameraTimeRule delete timeRuleId=%v, err=%v", timeRuleId, e) return &bhomeclient.Reply{Success: false, Msg: e.Error()} } logger.Debugf("cameraTimeRule delete success timeRuleId=%v, bForce=%v", timeRuleId, bForce) return &bhomeclient.Reply{Success: true, Msg: "删除成功"} }