作者 13655977079

新增对接测试数控业务产品

  1 +package factory
  2 +
  3 +import service_gateway "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/digitization_server"
  4 +
  5 +func CreateFontServiceGateway(options map[string]interface{}) (service_gateway.DigitizationServiceGateway, error) {
  6 + return service_gateway.NewHttpLibAlliedCreationStandardServiceGateway(), nil
  7 +}
@@ -29,6 +29,9 @@ var ALLIED_CREATION_COOPERATION_HOST = "http://localhost:8082" // "http://allied @@ -29,6 +29,9 @@ var ALLIED_CREATION_COOPERATION_HOST = "http://localhost:8082" // "http://allied
29 29
30 var MMM_BYTE_BANK_HOST = "http://220.250.41.79:8301" 30 var MMM_BYTE_BANK_HOST = "http://220.250.41.79:8301"
31 31
  32 +//数控
  33 +var ALLIED_CREATION_STANDARD = "http://digitization-server-dev.fjmaimaimai.com"
  34 +
32 var CUSTOMER_ACCOUNT = []int64{3129687560814592, 3129687690100739, 3492238958608384} 35 var CUSTOMER_ACCOUNT = []int64{3129687560814592, 3129687690100739, 3492238958608384}
33 36
34 const CUSTOMER_ACCOUNT_DELIMITER = "," 37 const CUSTOMER_ACCOUNT_DELIMITER = ","
  1 +package service_gateway
  2 +
  3 +import (
  4 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/constant"
  5 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/utils"
  6 + "strconv"
  7 + "time"
  8 +)
  9 +
  10 +type HttpLibAlliedCreationStandardServiceGateway struct {
  11 + HttpLibBaseServiceGateway
  12 + baseURL string
  13 +}
  14 +type Field struct {
  15 + Index int `json:"index"`
  16 + Name string `json:"name"`
  17 + SqlType string `json:"sqlType"`
  18 + SqlName string `json:"sqlName"`
  19 + Flag int `json:"flag"`
  20 +}
  21 +
  22 +type Conditions struct {
  23 + Field *Field `json:"field"`
  24 + In []string `json:"in"`
  25 + Ex []string `json:"ex"`
  26 +}
  27 +
  28 +type Where struct { //输入
  29 + PageNumber int `json:"pageNumber"`
  30 + PageSize int `json:"pageSize"`
  31 + Conditions []*Conditions `json:"conditions"`
  32 +}
  33 +
  34 +func NewHttpLibAlliedCreationStandardServiceGateway() *HttpLibAlliedCreationStandardServiceGateway {
  35 + return &HttpLibAlliedCreationStandardServiceGateway{
  36 + HttpLibBaseServiceGateway: HttpLibBaseServiceGateway{
  37 + ConnectTimeout: 100 * time.Second,
  38 + ReadWriteTimeout: 30 * time.Second,
  39 + },
  40 + baseURL: constant.ALLIED_CREATION_STANDARD,
  41 + }
  42 +}
  43 +
  44 +//获取下拉列表0
  45 +func (serviceGateway *HttpLibAlliedCreationStandardServiceGateway) GetBusiness() (map[string]interface{}, error) {
  46 + AppKey := "gBzrh4BBeVeGQbRngPTUTRZOAcqtSVr9" //可更改
  47 + AppSecret := "oCUsnka2RUjMKPWjiUbSOcKbqV1pYsaT" //产品不一样密钥不一样
  48 + timestamp := strconv.FormatInt(time.Now().Unix(), 10) //当前时间戳
  49 + sign := utils.GenMd5(AppKey + AppSecret + timestamp)
  50 + //serviceGateway.baseURL="http://127.1.0.1:8080"
  51 + req, err := serviceGateway.CreateRequest(serviceGateway.baseURL+"/data/business/search", "post").Header("AppKey", AppKey).Header("Timestamp", timestamp).Header("Sign", sign).JSONBody(map[string]interface{}{})
  52 + if err != nil {
  53 + return nil, err
  54 + }
  55 + //var response DataTableSearch
  56 + response := make(map[string]interface{})
  57 + err = req.ToJSON(&response)
  58 + if err != nil {
  59 + return nil, err
  60 + }
  61 + data, err := serviceGateway.responseHandle(response)
  62 + return data, err
  63 +}
  1 +package service_gateway
  2 +
  3 +import (
  4 + "encoding/json"
  5 + "fmt"
  6 + "strconv"
  7 + "strings"
  8 + "time"
  9 +
  10 + "github.com/beego/beego/v2/client/httplib"
  11 +)
  12 +
  13 +type MessageCode struct {
  14 + Code int `json:"code"`
  15 + Msg string `json:"msg"`
  16 +}
  17 +
  18 +//GatewayResponse 统一消息返回格式
  19 +type GatewayResponse struct {
  20 + MessageCode
  21 + Data json.RawMessage `json:"data"`
  22 +}
  23 +
  24 +type HttpLibBaseServiceGateway struct {
  25 + ConnectTimeout time.Duration
  26 + ReadWriteTimeout time.Duration
  27 +}
  28 +
  29 +func (serviceGateway *HttpLibBaseServiceGateway) CreateRequest(url string, method string) *httplib.BeegoHTTPRequest {
  30 + var request *httplib.BeegoHTTPRequest
  31 + switch method {
  32 + case "get":
  33 + request = httplib.Get(url)
  34 +
  35 + case "post":
  36 + request = httplib.Post(url)
  37 +
  38 + case "put":
  39 + request = httplib.Put(url)
  40 +
  41 + case "delete":
  42 + request = httplib.Delete(url)
  43 +
  44 + case "head":
  45 + request = httplib.Head(url)
  46 +
  47 + default:
  48 + request = httplib.Get(url)
  49 + }
  50 + return request.SetTimeout(serviceGateway.ConnectTimeout, serviceGateway.ReadWriteTimeout)
  51 +}
  52 +
  53 +func (serviceGateway *HttpLibBaseServiceGateway) responseHandle(response map[string]interface{}) (map[string]interface{}, error) {
  54 + data := make(map[string]interface{})
  55 + var err error
  56 + if code, ok := response["code"]; ok {
  57 + code := code.(float64)
  58 + if code == 0 {
  59 + if response["data"] == nil {
  60 + data = nil
  61 + } else {
  62 + data = response["data"].(map[string]interface{})
  63 + }
  64 + } else {
  65 + msg := response["msg"].(string)
  66 + err = fmt.Errorf(strings.Join([]string{strconv.FormatFloat(code, 'f', -1, 64), msg}, " "))
  67 + }
  68 + } else {
  69 + jsonBytes, marshalErr := json.Marshal(response)
  70 + if marshalErr != nil {
  71 + err = marshalErr
  72 + }
  73 + err = fmt.Errorf("无法解析的网关服务数据返回格式:%s", string(jsonBytes))
  74 + }
  75 + return data, err
  76 +}
  77 +
  78 +func (serviceGateway *HttpLibBaseServiceGateway) GetResponseData(result GatewayResponse, data interface{}) error {
  79 + if result.Code != 0 {
  80 + return fmt.Errorf(result.Msg)
  81 + }
  82 + if data == nil {
  83 + return nil
  84 + }
  85 + err := json.Unmarshal(result.Data, data)
  86 + if err != nil {
  87 + return err
  88 + }
  89 + return nil
  90 +}
  1 +package service_gateway
  2 +
  3 +type DigitizationServiceGateway interface {
  4 + GetBusiness() (map[string]interface{}, error) // 获取导入下拉列表
  5 +}
@@ -2,6 +2,8 @@ package utils @@ -2,6 +2,8 @@ package utils
2 2
3 import ( 3 import (
4 "bytes" 4 "bytes"
  5 + "crypto/md5"
  6 + "encoding/hex"
5 "encoding/json" 7 "encoding/json"
6 "fmt" 8 "fmt"
7 "github.com/beego/beego/v2/core/validation" 9 "github.com/beego/beego/v2/core/validation"
@@ -443,3 +445,15 @@ func GbkToUtf8(s []byte) ([]byte, error) { @@ -443,3 +445,15 @@ func GbkToUtf8(s []byte) ([]byte, error) {
443 } 445 }
444 return d, nil 446 return d, nil
445 } 447 }
  448 +
  449 +// GenMd5 Generate a 32-bit md5 string
  450 +func GenMd5(src interface{}) string {
  451 + h := md5.New()
  452 + if s, ok := src.(string); ok {
  453 + h.Write([]byte(s))
  454 + } else {
  455 + h.Write([]byte(fmt.Sprint(src)))
  456 + }
  457 +
  458 + return hex.EncodeToString(h.Sum(nil))
  459 +}
  1 +package controllers
  2 +
  3 +import (
  4 + "github.com/linmadan/egglib-go/web/beego"
  5 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/factory"
  6 + service_gateway "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/digitization_server"
  7 +)
  8 +
  9 +type DigitizationController struct {
  10 + beego.BaseController
  11 +}
  12 +
  13 +func (controller *DigitizationController) GetDigitization() {
  14 + var byteBankServiceGateway service_gateway.DigitizationServiceGateway
  15 + value, err := factory.CreateFontServiceGateway(map[string]interface{}{})
  16 + if err == nil {
  17 + byteBankServiceGateway = value
  18 + }
  19 + data, err := byteBankServiceGateway.GetBusiness()
  20 + controller.Response(data, err)
  21 +}
  1 +package routers
  2 +
  3 +import (
  4 + "github.com/beego/beego/v2/server/web"
  5 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/port/beego/controllers"
  6 +)
  7 +
  8 +func init() {
  9 + web.Router("/data/digitization", &controllers.DigitizationController{}, "Post:GetDigitization")
  10 +}