package controllers import ( "github.com/kataras/iris/v12/mvc" "xps/cache" "xps/constant" "xps/service" "xps/viewmodels" ) type ApiGatewayController struct { Base Service service.ApiGatewayService } func (c *ApiGatewayController) BeforeActivation(b mvc.BeforeActivation) { b.Handle("GET", "/{objectCode:string}/{oamCode:string}", "Get" ) b.Handle("GET", "/GenerateParams/{objectCode:string}/{oamCode:string}", "GetParams" ) b.Handle("POST", "/{objectCode:string}/{oamCode:string}", "Post" ) b.Handle("PUT", "/{objectCode:string}/{oamCode:string}", "Put" ) b.Handle("PATCH", "/{objectCode:string}/{oamCode:string}", "Patch" ) b.Handle("DELETE", "/{objectCode:string}/{oamCode:string}", "Delete" ) } func (c *ApiGatewayController) GetParams(objectCode, oamCode string)*JsonResult { data, err := c.Service.GetParams(objectCode, oamCode) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("获取成功", data) } } func (c *ApiGatewayController) Get(objectCode, oamCode string)*JsonResult { oamInfo, err := cache.GetApiData(objectCode, oamCode) if err != nil { return ResultErr(err.Error(), nil) } m := c.buildParams() oamType := oamInfo.OamType if oamType == constant.OAM_GET_ONE { data, err := c.Service.Get(objectCode, oamCode, m) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("获取成功", data) } } if oamType == constant.OAM_GET_LIST{ data, err := c.Service.GetList(objectCode, oamCode, m) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("获取成功", data) } } if oamType == constant.OAM_GET_PAGE { data, err := c.Service.GetPage(objectCode, oamCode, m) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("获取成功", data) } } return ResultErr("方法不存在", nil) } func (c *ApiGatewayController) Post(objectCode, oamCode string)*JsonResult { m, err := c.GetJsonData() if err != nil { return ResultErr(err.Error(), nil) } userInfo := &viewmodels.CurUserInfo{ UserId: c.GetCurUserId(), UserName: c.GetCurUserName(), PositionId: c.GetCurUserPositionId(), PositionName: c.GetCurUserPositionName(), GroupId: c.GetCurUserGroupId(), GroupName: c.GetCurUserGroupName(), } err = c.Service.Create(objectCode, oamCode, m, userInfo) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("创建成功", nil) } } func (c *ApiGatewayController) Put(objectCode, oamCode string)*JsonResult { m, err := c.GetJsonData() if err != nil { return ResultErr(err.Error(), nil) } userInfo := &viewmodels.CurUserInfo{ UserId: c.GetCurUserId(), UserName: c.GetCurUserName(), PositionId: c.GetCurUserPositionId(), PositionName: c.GetCurUserPositionName(), GroupId: c.GetCurUserGroupId(), GroupName: c.GetCurUserGroupName(), } err = c.Service.Update(objectCode, oamCode, m, userInfo) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("更新成功", nil) } } func (c *ApiGatewayController) Patch(objectCode, oamCode string)*JsonResult { m, err := c.GetJsonData() if err != nil { return ResultErr(err.Error(), nil) } userInfo := &viewmodels.CurUserInfo{ UserId: c.GetCurUserId(), UserName: c.GetCurUserName(), PositionId: c.GetCurUserPositionId(), PositionName: c.GetCurUserPositionName(), GroupId: c.GetCurUserGroupId(), GroupName: c.GetCurUserGroupName(), } err = c.Service.Patch(objectCode, oamCode, m, userInfo) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("更新成功", nil) } } func (c *ApiGatewayController) Delete(objectCode, oamCode string)*JsonResult { m, err := c.GetJsonData() if err != nil { return ResultErr(err.Error(), nil) } userInfo := &viewmodels.CurUserInfo{ UserId: c.GetCurUserId(), UserName: c.GetCurUserName(), PositionId: c.GetCurUserPositionId(), PositionName: c.GetCurUserPositionName(), GroupId: c.GetCurUserGroupId(), GroupName: c.GetCurUserGroupName(), } err = c.Service.Delete(objectCode, oamCode, m, userInfo) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("删除成功", nil) } }