| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- package service
- import (
- "xps/cache"
- "xps/datasource"
- "xps/repositories"
- "xps/viewmodels"
- )
- type ApiGatewayService interface {
- Get(objectCode, oamCode string, m map[string]interface{})(map[string]interface{}, error)
- GetPage(objectCode, oamCode string, m map[string]interface{})(*viewmodels.PageResult, error)
- GetList(objectCode, oamCode string, m map[string]interface{})([]map[string]interface{}, error)
-
- Create(objectCode, oamCode string, m map[string]interface{})error
- Update(objectCode, oamCode string, m map[string]interface{})error
- Patch(objectCode, oamCode string, m map[string]interface{})error
- Delete(objectCode, oamCode string, m map[string]interface{})error
- }
- type apiGatewayService struct {
- dataBus *repositories.DataBusRepo
- }
- func NewApiGatewayService() ApiGatewayService {
- return &apiGatewayService{
- dataBus: repositories.NewDataBusRepo(datasource.InstanceSlave()),
- }
- }
- func (a *apiGatewayService) Get(objectCode, oamCode string, m map[string]interface{})(map[string]interface{}, error) {
- params, err1 := a.Mapping2ModelObjectAttr(objectCode, m)
- if err1 != nil {
- return nil, err1
- }
-
- oam , err2:= cache.GetBizObjectOAMData(objectCode, oamCode)
- if err2 != nil {
- return nil, err2
- }
-
- sqlStatement := oam.SqlStatement
- return a.dataBus.GetById(sqlStatement, params)
- }
- func (a *apiGatewayService) GetList(objectCode, oamCode string, m map[string]interface{})([]map[string]interface{}, error) {
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
- if err2 != nil {
- return nil, err2
- }
-
- oam , err2:= cache.GetBizObjectOAMData(objectCode, oamCode)
- if err2 != nil {
- return nil, err2
- }
- sqlStatement := oam.SqlStatement
- return a.dataBus.GetList(sqlStatement, params)
- }
- func (a *apiGatewayService) GetPage(objectCode, oamCode string, m map[string]interface{}) (*viewmodels.PageResult, error) {
- params, err1 := a.Mapping2ModelObjectAttr(objectCode, m)
- if err1 != nil {
- return nil, err1
- }
-
- oam , err2:= cache.GetBizObjectOAMData(objectCode, oamCode)
- if err2 != nil {
- return nil, err2
- }
-
- sqlStatement := oam.SqlStatement
- sqlCount := oam.SqlCount
- return a.dataBus.GetPage(sqlStatement, sqlCount, params)
- }
- func (a *apiGatewayService) Create(objectCode, oamCode string, m map[string]interface{}) error {
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
- if err2 != nil {
- return err2
- }
-
- return a.dataBus.Create(objectCode, params)
- }
- func (a *apiGatewayService) Update(objectCode, oamCode string, m map[string]interface{}) error {
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
- if err2 != nil {
- return err2
- }
-
- return a.dataBus.Update(objectCode, params)
- }
- func (a *apiGatewayService) Patch(objectCode, oamCode string, m map[string]interface{}) error {
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
- if err2 != nil {
- return err2
- }
-
- return a.dataBus.Patch(objectCode, params)
- }
- func (a *apiGatewayService) Delete(objectCode, oamCode string, m map[string]interface{}) error {
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
- if err2 != nil {
- return err2
- }
-
- return a.dataBus.Delete(objectCode, params)
- }
- func (a *apiGatewayService) Mapping2ModelObjectAttr(objectCode string, m map[string]interface{})(map[string]interface{}, error) {
- bzObject, err := cache.GetBizObjectData(objectCode)
- if err != nil {
- return nil, err
- }
-
- bizObjectAttrs := bzObject.Attrs
- params := make(map[string]interface{}, 0)
- for _, bzAttr := range bizObjectAttrs {
- bzAttrCode := bzAttr.AttrCode
- bzMappingCode := bzAttr.MappingCode
- if bzAttrValue, ok := m[bzAttrCode]; ok {
- params[bzMappingCode] = bzAttrValue
- }
- }
- return params, nil
- }
|