소스 검색

api修改

WH01243 2 년 전
부모
커밋
c92d0e3642

+ 2 - 1
api/etc/publicservice-api.yaml

@@ -11,6 +11,7 @@ PublicService:
     Hosts:
     Hosts:
       - 127.0.0.1:2379
       - 127.0.0.1:2379
     Key: publicservice.rpc
     Key: publicservice.rpc
-  Timeout: 12000
+  Timeout: 20000
+Timeout: 20000
 MgoLogsName: jyPublicServie_logs
 MgoLogsName: jyPublicServie_logs
 MgoLogsCount: 500
 MgoLogsCount: 500

+ 1 - 1
api/internal/handler/routes.go

@@ -19,7 +19,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 			},
 			},
 			{
 			{
 				Method:  http.MethodPost,
 				Method:  http.MethodPost,
-				Path:    "/public/publicService/Detail",
+				Path:    "/publicService/Detail",
 				Handler: DatasmtDetailHandler(serverCtx),
 				Handler: DatasmtDetailHandler(serverCtx),
 			},
 			},
 		},
 		},

+ 14 - 2
api/internal/logic/datasmtdetaillogic.go

@@ -2,6 +2,7 @@ package logic
 
 
 import (
 import (
 	"context"
 	"context"
+	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/datasmt"
 
 
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/api/internal/svc"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/api/internal/svc"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/api/internal/types"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/api/internal/types"
@@ -25,6 +26,17 @@ func NewDatasmtDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Dat
 
 
 func (l *DatasmtDetailLogic) DatasmtDetail(req *types.DatasmtReqDetail) (resp *types.CommonResp, err error) {
 func (l *DatasmtDetailLogic) DatasmtDetail(req *types.DatasmtReqDetail) (resp *types.CommonResp, err error) {
 	// todo: add your logic here and delete this line
 	// todo: add your logic here and delete this line
-
-	return
+	res, err := l.svcCtx.PublicService.Detail(l.ctx, &datasmt.DatasmtReqDetail{
+		Id: req.Id,
+	})
+	if err != nil {
+		return &types.CommonResp{
+			Err_code: -1,
+			Err_msg:  "错误",
+			Data:     nil,
+		}, nil
+	}
+	return &types.CommonResp{
+		Data: res,
+	}, nil
 }
 }

+ 0 - 1
api/internal/logic/datasmtlistlogic.go

@@ -32,7 +32,6 @@ func (l *DatasmtListLogic) DatasmtList(req *types.DatasmtReqList) (resp *types.C
 		PageSize:    req.PageSize,
 		PageSize:    req.PageSize,
 		PageNum:     req.PageNum,
 		PageNum:     req.PageNum,
 	})
 	})
-
 	if err != nil {
 	if err != nil {
 		return &types.CommonResp{
 		return &types.CommonResp{
 			Err_code: -1,
 			Err_code: -1,

+ 5 - 5
api/publicservice.api

@@ -2,10 +2,10 @@ syntax = "v1"
 
 
 type (
 type (
 	DatasmtReqList {
 	DatasmtReqList {
-		SearchValue string `json:"searchValue,optional"` //并发量
-		DataType    string `json:"dataType,optional"`    //并发量
-		PageNum     int64  `json:"pageNum,optional"`     //并发量
-		PageSize    int64  `json:"pageSize,optional"`    //并发
+		SearchValue string `json:"searchValue,optional"` //搜索词
+		DataType    string `json:"dataType,optional"`    //类型
+		PageNum     int64  `json:"pageNum,optional"`     //页码
+		PageSize    int64  `json:"pageSize,optional"`    //每页数
 	}
 	}
 	DatasmtReqDetail {
 	DatasmtReqDetail {
 		Id string `json:"id,optional"` //并发量
 		Id string `json:"id,optional"` //并发量
@@ -20,5 +20,5 @@ service publicService-api {
 	@handler DatasmtList
 	@handler DatasmtList
 	post /publicService/List(DatasmtReqList) returns (commonResp)
 	post /publicService/List(DatasmtReqList) returns (commonResp)
 	@handler DatasmtDetail
 	@handler DatasmtDetail
-	post /public/publicService/Detail(DatasmtReqDetail) returns (commonResp)
+	post /publicService/Detail(DatasmtReqDetail) returns (commonResp)
 }
 }

+ 3 - 4
api/publicservice.go

@@ -3,10 +3,10 @@ package main
 import (
 import (
 	MC "app.yhyue.com/moapp/jybase/common"
 	MC "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/endless"
 	"app.yhyue.com/moapp/jybase/endless"
-	logrusx "app.yhyue.com/moapp/jylogx/logx"
+	//logrusx "app.yhyue.com/moapp/jylogx/logx"
 	"bp.jydev.jianyu360.cn/BaseService/gateway/core/node"
 	"bp.jydev.jianyu360.cn/BaseService/gateway/core/node"
 	"fmt"
 	"fmt"
-	"github.com/zeromicro/go-zero/core/logx"
+	//"github.com/zeromicro/go-zero/core/logx"
 	"github.com/zeromicro/go-zero/rest"
 	"github.com/zeromicro/go-zero/rest"
 	IC "jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/api/init"
 	IC "jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/api/init"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/api/internal/handler"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/api/internal/handler"
@@ -45,9 +45,8 @@ func main() {
 			next.ServeHTTP(w, r)
 			next.ServeHTTP(w, r)
 		}
 		}
 	})
 	})
-	handler.RegisterHandlers(server, ctx)
 	//日志记录
 	//日志记录
-	logx.SetWriter(logrusx.NewLogrusWriter())
+	//logx.SetWriter(logrusx.NewLogrusWriter())
 	fmt.Printf("Starting server at %s:%d...\n", IC.C.Host, IC.C.Port)
 	fmt.Printf("Starting server at %s:%d...\n", IC.C.Host, IC.C.Port)
 	server.Start()
 	server.Start()
 	quit := make(chan os.Signal, 1)
 	quit := make(chan os.Signal, 1)

+ 1 - 0
rpc/datasmt/datasmt.go

@@ -18,6 +18,7 @@ type (
 	DatasmtReqList    = pb.DatasmtReqList
 	DatasmtReqList    = pb.DatasmtReqList
 	DatasmtRespDetail = pb.DatasmtRespDetail
 	DatasmtRespDetail = pb.DatasmtRespDetail
 	DatasmtRespList   = pb.DatasmtRespList
 	DatasmtRespList   = pb.DatasmtRespList
+	Field             = pb.Field
 
 
 	Datasmt interface {
 	Datasmt interface {
 		// 列表
 		// 列表

+ 1 - 0
rpc/db/db.go

@@ -14,4 +14,5 @@ func Init(c config.Config) {
 	Mysql_BaseService = c.Mysql.BaseService
 	Mysql_BaseService = c.Mysql.BaseService
 	Mysql_BaseService.Init()
 	Mysql_BaseService.Init()
 	logx.Info("初始化 mysql baseService")
 	logx.Info("初始化 mysql baseService")
+
 }
 }

+ 40 - 10
rpc/etc/publicservice.yaml

@@ -2,7 +2,7 @@ Name: publicservice.rpc
 ListenOn: 0.0.0.0:1109
 ListenOn: 0.0.0.0:1109
 Etcd:
 Etcd:
   Hosts:
   Hosts:
-  - 127.0.0.1:2379
+  - 192.168.3.206:2379
   Key: publicservice.rpc
   Key: publicservice.rpc
 Mysql:
 Mysql:
   BaseService:
   BaseService:
@@ -19,12 +19,42 @@ Logx:
   KeepDays: 15
   KeepDays: 15
 #---数据超市 开始---
 #---数据超市 开始---
 DataSmt:
 DataSmt:
-  FieldIllustrate:
-    Cgyx: "匹配关键词、省份、城市、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、项目范围、预算金额、采购单位名称" #采购意向
-    Njxm: "匹配关键词、省份、城市、区县、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、总投资、业主单位、建设规模(内容)、建设地点、竣工时间、开工时间、项目类型(申报方式)、审批结果" #拟建项目
-    Zobsj: "匹配关键词、省份、城市、区县、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、项目编号、项目范围、预算金额、报名截止日期、开标日期、投标截止日期、采购单位信息(采购单位名称、采购单位联系人、采购单位联系电话、采购单位地址)、招标代理机构" #招标数据
-    Zgbsj: "匹配关键词、省份、城市、区县、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、项目编号、项目范围、预算金额、中标金额、报名截止日期、开标日期、投标截止日期、采购单位信息(采购单位名称、采购单位联系人、采购单位联系电话、采购单位地址)、招标代理机构、中标单位信息(中标单位名称、中标单位联系人、中标单位联系电话)(来源:招标公告网站)、中标单位信息(中标单位联系人、中标单位联系电话、电子邮箱)(来源:国家企业公示网站)" #中标数据
-    Qygssj: "企业名称、曾用名、登记状态、企业类型、经营范围、法定代表人、注册资本、统一社会信用代码、纳税人识别号、注册号、组织机构代码、成立日期、登记机关、核准日期、所属省份、所属城市、所属区县、企业电话、企业地址、企业邮箱、人员规模" #企业工商数据
-    Zbdwsj: "中标单位、统一信用代码、省份、城市、区县、经营范围、招标信息通讯录(联系人、联系方式、地址)、近3年中标项目规模、近3年中标项目数量、业务覆盖区域、客户群体、TOP5客户信息(客户名称、客户所在省份、客户所在城市、客户分类、中标金额)" #中标单位数据
-    Cgdwsj: "采购单位、统一信用代码、单位类别、省份、城市、区县、经营范围、招标信息通讯录(联系人、联系方式、地址)、近3年招标项目规模、近3年招标项目数量、TOP5中标单位信息(中标单位名称、中标单位所在省份、中标单位所在城市、合作金额)" #采购单位数据
-#---数据超市 结束---
+  FieldIllustrate: [
+    {
+      "code":"Cgyx",
+      "name":"采购意向",
+      "describe":"匹配关键词、省份、城市、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、项目范围、预算金额、采购单位名称"
+    },
+    {
+      "code": "Njxm",
+      "name": "拟建项目",
+      "describe": "匹配关键词、省份、城市、区县、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、总投资、业主单位、建设规模(内容)、建设地点、竣工时间、开工时间、项目类型(申报方式)、审批结果"
+    },
+    {
+      "code": "Zobsj",
+      "name": "招标数据",
+      "describe": "匹配关键词、省份、城市、区县、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、项目编号、项目范围、预算金额、报名截止日期、开标日期、投标截止日期、采购单位信息(采购单位名称、采购单位联系人、采购单位联系电话、采购单位地址)、招标代理机构"
+    },
+    {
+      "code": "Zgbsj",
+      "name": "中标数据",
+      "describe": "匹配关键词、省份、城市、区县、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、项目编号、项目范围、预算金额、中标金额、报名截止日期、开标日期、投标截止日期、采购单位信息(采购单位名称、采购单位联系人、采购单位联系电话、采购单位地址)、招标代理机构、中标单位信息(中标单位名称、中标单位联系人、中标单位联系电话)(来源:招标公告网站)、中标单位信息(中标单位联系人、中标单位联系电话、电子邮箱)(来源:国家企业公示网站)"
+    },
+    {
+      "code": "Qygssj",
+      "name": "企业工商数据",
+      "describe": "企业名称、曾用名、登记状态、企业类型、经营范围、法定代表人、注册资本、统一社会信用代码、纳税人识别号、注册号、组织机构代码、成立日期、登记机关、核准日期、所属省份、所属城市、所属区县、企业电话、企业地址、企业邮箱、人员规模"
+    },
+    {
+      "code": "Zbdwsj",
+      "name": "中标单位数据",
+      "describe": "中标单位、统一信用代码、省份、城市、区县、经营范围、招标信息通讯录(联系人、联系方式、地址)、近3年中标项目规模、近3年中标项目数量、业务覆盖区域、客户群体、TOP5客户信息(客户名称、客户所在省份、客户所在城市、客户分类、中标金额)"
+    },
+    {
+      "code": "Cgdwsj",
+      "name": "采购单位数据",
+      "describe": "采购单位、统一信用代码、单位类别、省份、城市、区县、经营范围、招标信息通讯录(联系人、联系方式、地址)、近3年招标项目规模、近3年招标项目数量、TOP5中标单位信息(中标单位名称、中标单位所在省份、中标单位所在城市、合作金额)"
+    },
+  ]
+#---数据超市 结束---
+Timeout: 20000

+ 2 - 0
rpc/etc/routes.yaml

@@ -0,0 +1,2 @@
+ExcludeRoute:
+      -

+ 5 - 8
rpc/internal/config/config.go

@@ -15,14 +15,11 @@ type Config struct {
 		BaseService *Mysql
 		BaseService *Mysql
 	}
 	}
 	DataSmt struct {
 	DataSmt struct {
-		FieldIllustrate struct { //字段说明
-			Cgyx   string //采购意向
-			Njxm   string //拟建项目
-			Zobsj  string //招标数据
-			Zgbsj  string //中标数据
-			Qygssj string //企业工商数据
-			Zbdwsj string //中标单位数据
-			Cgdwsj string //采购单位数据
+		FieldIllustrate []struct {
+			//字段说明
+			Code     string //采购意向
+			Name     string //拟建项目
+			Describe string //招标数据
 		}
 		}
 	}
 	}
 }
 }

+ 5 - 1
rpc/internal/logic/detaillogic.go

@@ -1,9 +1,11 @@
 package logic
 package logic
 
 
 import (
 import (
+	"app.yhyue.com/moapp/jybase/encrypt"
 	"context"
 	"context"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/internal/svc"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/internal/svc"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/pb"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/pb"
+	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/service"
 
 
 	"github.com/zeromicro/go-zero/core/logx"
 	"github.com/zeromicro/go-zero/core/logx"
 )
 )
@@ -25,5 +27,7 @@ func NewDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DetailLogi
 // 详情
 // 详情
 func (l *DetailLogic) Detail(in *pb.DatasmtReqDetail) (*pb.DatasmtRespDetail, error) {
 func (l *DetailLogic) Detail(in *pb.DatasmtReqDetail) (*pb.DatasmtRespDetail, error) {
 	// todo: add your logic here and delete this line
 	// todo: add your logic here and delete this line
-	return &pb.DatasmtRespDetail{}, nil
+	var dataSmtService service.DataSmt
+	data := dataSmtService.Detail(encrypt.SE.Decode4Hex(in.Id))
+	return data, nil
 }
 }

+ 148 - 73
rpc/pb/publicservice.pb.go

@@ -98,10 +98,10 @@ type DatasmtRespList struct {
 	sizeCache     protoimpl.SizeCache
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 	unknownFields protoimpl.UnknownFields
 
 
-	List            []*DatasmtList    `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`                                                                                                                                      //检索结果
-	PageCount       int64             `protobuf:"varint,2,opt,name=page_count,json=pageCount,proto3" json:"page_count,omitempty"`                                                                                                          //总条数
-	HotKeys         []string          `protobuf:"bytes,3,rep,name=hot_keys,json=hotKeys,proto3" json:"hot_keys,omitempty"`                                                                                                                 //热搜词
-	FieldIllustrate map[string]string `protobuf:"bytes,4,rep,name=field_illustrate,json=fieldIllustrate,proto3" json:"field_illustrate,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //包含字段说明
+	List            []*DatasmtList `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`                                              //检索结果
+	PageCount       int64          `protobuf:"varint,2,opt,name=page_count,json=pageCount,proto3" json:"page_count,omitempty"`                  //总条数
+	HotKeys         []string       `protobuf:"bytes,3,rep,name=hot_keys,json=hotKeys,proto3" json:"hot_keys,omitempty"`                         //热搜词
+	FieldIllustrate []*Field       `protobuf:"bytes,4,rep,name=field_illustrate,json=fieldIllustrate,proto3" json:"field_illustrate,omitempty"` //包含字段说明
 }
 }
 
 
 func (x *DatasmtRespList) Reset() {
 func (x *DatasmtRespList) Reset() {
@@ -157,13 +157,76 @@ func (x *DatasmtRespList) GetHotKeys() []string {
 	return nil
 	return nil
 }
 }
 
 
-func (x *DatasmtRespList) GetFieldIllustrate() map[string]string {
+func (x *DatasmtRespList) GetFieldIllustrate() []*Field {
 	if x != nil {
 	if x != nil {
 		return x.FieldIllustrate
 		return x.FieldIllustrate
 	}
 	}
 	return nil
 	return nil
 }
 }
 
 
+type Field struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Code     string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
+	Name     string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	Describe string `protobuf:"bytes,3,opt,name=describe,proto3" json:"describe,omitempty"`
+}
+
+func (x *Field) Reset() {
+	*x = Field{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_publicservice_proto_msgTypes[2]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *Field) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Field) ProtoMessage() {}
+
+func (x *Field) ProtoReflect() protoreflect.Message {
+	mi := &file_publicservice_proto_msgTypes[2]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Field.ProtoReflect.Descriptor instead.
+func (*Field) Descriptor() ([]byte, []int) {
+	return file_publicservice_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *Field) GetCode() string {
+	if x != nil {
+		return x.Code
+	}
+	return ""
+}
+
+func (x *Field) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *Field) GetDescribe() string {
+	if x != nil {
+		return x.Describe
+	}
+	return ""
+}
+
 type DatasmtList struct {
 type DatasmtList struct {
 	state         protoimpl.MessageState
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	sizeCache     protoimpl.SizeCache
@@ -179,7 +242,7 @@ type DatasmtList struct {
 func (x *DatasmtList) Reset() {
 func (x *DatasmtList) Reset() {
 	*x = DatasmtList{}
 	*x = DatasmtList{}
 	if protoimpl.UnsafeEnabled {
 	if protoimpl.UnsafeEnabled {
-		mi := &file_publicservice_proto_msgTypes[2]
+		mi := &file_publicservice_proto_msgTypes[3]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 		ms.StoreMessageInfo(mi)
 	}
 	}
@@ -192,7 +255,7 @@ func (x *DatasmtList) String() string {
 func (*DatasmtList) ProtoMessage() {}
 func (*DatasmtList) ProtoMessage() {}
 
 
 func (x *DatasmtList) ProtoReflect() protoreflect.Message {
 func (x *DatasmtList) ProtoReflect() protoreflect.Message {
-	mi := &file_publicservice_proto_msgTypes[2]
+	mi := &file_publicservice_proto_msgTypes[3]
 	if protoimpl.UnsafeEnabled && x != nil {
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 		if ms.LoadMessageInfo() == nil {
@@ -205,7 +268,7 @@ func (x *DatasmtList) ProtoReflect() protoreflect.Message {
 
 
 // Deprecated: Use DatasmtList.ProtoReflect.Descriptor instead.
 // Deprecated: Use DatasmtList.ProtoReflect.Descriptor instead.
 func (*DatasmtList) Descriptor() ([]byte, []int) {
 func (*DatasmtList) Descriptor() ([]byte, []int) {
-	return file_publicservice_proto_rawDescGZIP(), []int{2}
+	return file_publicservice_proto_rawDescGZIP(), []int{3}
 }
 }
 
 
 func (x *DatasmtList) GetId() string {
 func (x *DatasmtList) GetId() string {
@@ -254,7 +317,7 @@ type DatasmtReqDetail struct {
 func (x *DatasmtReqDetail) Reset() {
 func (x *DatasmtReqDetail) Reset() {
 	*x = DatasmtReqDetail{}
 	*x = DatasmtReqDetail{}
 	if protoimpl.UnsafeEnabled {
 	if protoimpl.UnsafeEnabled {
-		mi := &file_publicservice_proto_msgTypes[3]
+		mi := &file_publicservice_proto_msgTypes[4]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 		ms.StoreMessageInfo(mi)
 	}
 	}
@@ -267,7 +330,7 @@ func (x *DatasmtReqDetail) String() string {
 func (*DatasmtReqDetail) ProtoMessage() {}
 func (*DatasmtReqDetail) ProtoMessage() {}
 
 
 func (x *DatasmtReqDetail) ProtoReflect() protoreflect.Message {
 func (x *DatasmtReqDetail) ProtoReflect() protoreflect.Message {
-	mi := &file_publicservice_proto_msgTypes[3]
+	mi := &file_publicservice_proto_msgTypes[4]
 	if protoimpl.UnsafeEnabled && x != nil {
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 		if ms.LoadMessageInfo() == nil {
@@ -280,7 +343,7 @@ func (x *DatasmtReqDetail) ProtoReflect() protoreflect.Message {
 
 
 // Deprecated: Use DatasmtReqDetail.ProtoReflect.Descriptor instead.
 // Deprecated: Use DatasmtReqDetail.ProtoReflect.Descriptor instead.
 func (*DatasmtReqDetail) Descriptor() ([]byte, []int) {
 func (*DatasmtReqDetail) Descriptor() ([]byte, []int) {
-	return file_publicservice_proto_rawDescGZIP(), []int{3}
+	return file_publicservice_proto_rawDescGZIP(), []int{4}
 }
 }
 
 
 func (x *DatasmtReqDetail) GetId() string {
 func (x *DatasmtReqDetail) GetId() string {
@@ -299,14 +362,14 @@ type DatasmtRespDetail struct {
 	DataType        string `protobuf:"bytes,2,opt,name=data_type,json=dataType,proto3" json:"data_type,omitempty"`                      //数据类型
 	DataType        string `protobuf:"bytes,2,opt,name=data_type,json=dataType,proto3" json:"data_type,omitempty"`                      //数据类型
 	Format          string `protobuf:"bytes,3,opt,name=format,proto3" json:"format,omitempty"`                                          //数据格式
 	Format          string `protobuf:"bytes,3,opt,name=format,proto3" json:"format,omitempty"`                                          //数据格式
 	ClearStatus     string `protobuf:"bytes,4,opt,name=clear_status,json=clearStatus,proto3" json:"clear_status,omitempty"`             //清洗状态
 	ClearStatus     string `protobuf:"bytes,4,opt,name=clear_status,json=clearStatus,proto3" json:"clear_status,omitempty"`             //清洗状态
-	FieldIllustrate string `protobuf:"bytes,5,opt,name=field_illustrate,json=fieldIllustrate,proto3" json:"field_illustrate,omitempty"` //包含字段说明
+	FieldIllustrate *Field `protobuf:"bytes,5,opt,name=field_illustrate,json=fieldIllustrate,proto3" json:"field_illustrate,omitempty"` //包含字段说明
 	DataExample     string `protobuf:"bytes,6,opt,name=data_example,json=dataExample,proto3" json:"data_example,omitempty"`             //数据示例图片路径
 	DataExample     string `protobuf:"bytes,6,opt,name=data_example,json=dataExample,proto3" json:"data_example,omitempty"`             //数据示例图片路径
 }
 }
 
 
 func (x *DatasmtRespDetail) Reset() {
 func (x *DatasmtRespDetail) Reset() {
 	*x = DatasmtRespDetail{}
 	*x = DatasmtRespDetail{}
 	if protoimpl.UnsafeEnabled {
 	if protoimpl.UnsafeEnabled {
-		mi := &file_publicservice_proto_msgTypes[4]
+		mi := &file_publicservice_proto_msgTypes[5]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 		ms.StoreMessageInfo(mi)
 	}
 	}
@@ -319,7 +382,7 @@ func (x *DatasmtRespDetail) String() string {
 func (*DatasmtRespDetail) ProtoMessage() {}
 func (*DatasmtRespDetail) ProtoMessage() {}
 
 
 func (x *DatasmtRespDetail) ProtoReflect() protoreflect.Message {
 func (x *DatasmtRespDetail) ProtoReflect() protoreflect.Message {
-	mi := &file_publicservice_proto_msgTypes[4]
+	mi := &file_publicservice_proto_msgTypes[5]
 	if protoimpl.UnsafeEnabled && x != nil {
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 		if ms.LoadMessageInfo() == nil {
@@ -332,7 +395,7 @@ func (x *DatasmtRespDetail) ProtoReflect() protoreflect.Message {
 
 
 // Deprecated: Use DatasmtRespDetail.ProtoReflect.Descriptor instead.
 // Deprecated: Use DatasmtRespDetail.ProtoReflect.Descriptor instead.
 func (*DatasmtRespDetail) Descriptor() ([]byte, []int) {
 func (*DatasmtRespDetail) Descriptor() ([]byte, []int) {
-	return file_publicservice_proto_rawDescGZIP(), []int{4}
+	return file_publicservice_proto_rawDescGZIP(), []int{5}
 }
 }
 
 
 func (x *DatasmtRespDetail) GetName() string {
 func (x *DatasmtRespDetail) GetName() string {
@@ -363,11 +426,11 @@ func (x *DatasmtRespDetail) GetClearStatus() string {
 	return ""
 	return ""
 }
 }
 
 
-func (x *DatasmtRespDetail) GetFieldIllustrate() string {
+func (x *DatasmtRespDetail) GetFieldIllustrate() *Field {
 	if x != nil {
 	if x != nil {
 		return x.FieldIllustrate
 		return x.FieldIllustrate
 	}
 	}
-	return ""
+	return nil
 }
 }
 
 
 func (x *DatasmtRespDetail) GetDataExample() string {
 func (x *DatasmtRespDetail) GetDataExample() string {
@@ -390,54 +453,53 @@ var file_publicservice_proto_rawDesc = []byte{
 	0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x67, 0x65,
 	0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x67, 0x65,
 	0x4e, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65,
 	0x4e, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65,
 	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65,
 	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65,
-	0x22, 0x83, 0x02, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70,
+	0x22, 0xa0, 0x01, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70,
 	0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03,
 	0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03,
 	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x4c, 0x69, 0x73, 0x74,
 	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x4c, 0x69, 0x73, 0x74,
 	0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x63,
 	0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x63,
 	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65,
 	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65,
 	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79,
 	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79,
 	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73,
 	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73,
-	0x12, 0x50, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6c, 0x6c, 0x75, 0x73, 0x74,
-	0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x44, 0x61, 0x74,
-	0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x65,
-	0x6c, 0x64, 0x49, 0x6c, 0x6c, 0x75, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72,
-	0x79, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6c, 0x6c, 0x75, 0x73, 0x74, 0x72, 0x61,
-	0x74, 0x65, 0x1a, 0x42, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6c, 0x6c, 0x75, 0x73,
-	0x74, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
-	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
-	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
-	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x89, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x73,
-	0x6d, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
+	0x12, 0x31, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6c, 0x6c, 0x75, 0x73, 0x74,
+	0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46, 0x69, 0x65,
+	0x6c, 0x64, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6c, 0x6c, 0x75, 0x73, 0x74, 0x72,
+	0x61, 0x74, 0x65, 0x22, 0x4b, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04,
+	0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
+	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
+	0x22, 0x89, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x4c, 0x69, 0x73, 0x74,
+	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
+	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70,
+	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x65,
+	0x61, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x22, 0x0a, 0x10,
+	0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
+	0x22, 0xd5, 0x01, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70,
+	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
 	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61,
 	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61,
-	0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64,
+	0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64,
 	0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61,
 	0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61,
-	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,
+	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,
 	0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
 	0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
-	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x22, 0x22, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x71,
-	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x73,
-	0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04,
-	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
-	0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
-	0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66,
-	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x65,
-	0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c,
-	0x64, 0x5f, 0x69, 0x6c, 0x6c, 0x75, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6c, 0x6c, 0x75, 0x73, 0x74, 0x72,
-	0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x61, 0x6d,
-	0x70, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x45,
-	0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x32, 0x65, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6d,
-	0x74, 0x12, 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f, 0x2e, 0x44, 0x61, 0x74, 0x61,
-	0x73, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x44, 0x61, 0x74,
-	0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06,
-	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x11, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6d, 0x74,
-	0x52, 0x65, 0x71, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0x12, 0x2e, 0x44, 0x61, 0x74, 0x61,
-	0x73, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x06, 0x5a,
-	0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x12, 0x31, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6c, 0x6c, 0x75,
+	0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46,
+	0x69, 0x65, 0x6c, 0x64, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6c, 0x6c, 0x75, 0x73,
+	0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78,
+	0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74,
+	0x61, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x32, 0x65, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61,
+	0x73, 0x6d, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f, 0x2e, 0x44, 0x61,
+	0x74, 0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x44,
+	0x61, 0x74, 0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f,
+	0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x11, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73,
+	0x6d, 0x74, 0x52, 0x65, 0x71, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0x12, 0x2e, 0x44, 0x61,
+	0x74, 0x61, 0x73, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42,
+	0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 }
 
 
 var (
 var (
@@ -456,23 +518,24 @@ var file_publicservice_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
 var file_publicservice_proto_goTypes = []interface{}{
 var file_publicservice_proto_goTypes = []interface{}{
 	(*DatasmtReqList)(nil),    // 0: DatasmtReqList
 	(*DatasmtReqList)(nil),    // 0: DatasmtReqList
 	(*DatasmtRespList)(nil),   // 1: DatasmtRespList
 	(*DatasmtRespList)(nil),   // 1: DatasmtRespList
-	(*DatasmtList)(nil),       // 2: DatasmtList
-	(*DatasmtReqDetail)(nil),  // 3: DatasmtReqDetail
-	(*DatasmtRespDetail)(nil), // 4: DatasmtRespDetail
-	nil,                       // 5: DatasmtRespList.FieldIllustrateEntry
+	(*Field)(nil),             // 2: Field
+	(*DatasmtList)(nil),       // 3: DatasmtList
+	(*DatasmtReqDetail)(nil),  // 4: DatasmtReqDetail
+	(*DatasmtRespDetail)(nil), // 5: DatasmtRespDetail
 }
 }
 var file_publicservice_proto_depIdxs = []int32{
 var file_publicservice_proto_depIdxs = []int32{
-	2, // 0: DatasmtRespList.list:type_name -> DatasmtList
-	5, // 1: DatasmtRespList.field_illustrate:type_name -> DatasmtRespList.FieldIllustrateEntry
-	0, // 2: datasmt.List:input_type -> DatasmtReqList
-	3, // 3: datasmt.Detail:input_type -> DatasmtReqDetail
-	1, // 4: datasmt.List:output_type -> DatasmtRespList
-	4, // 5: datasmt.Detail:output_type -> DatasmtRespDetail
-	4, // [4:6] is the sub-list for method output_type
-	2, // [2:4] is the sub-list for method input_type
-	2, // [2:2] is the sub-list for extension type_name
-	2, // [2:2] is the sub-list for extension extendee
-	0, // [0:2] is the sub-list for field type_name
+	3, // 0: DatasmtRespList.list:type_name -> DatasmtList
+	2, // 1: DatasmtRespList.field_illustrate:type_name -> Field
+	2, // 2: DatasmtRespDetail.field_illustrate:type_name -> Field
+	0, // 3: datasmt.List:input_type -> DatasmtReqList
+	4, // 4: datasmt.Detail:input_type -> DatasmtReqDetail
+	1, // 5: datasmt.List:output_type -> DatasmtRespList
+	5, // 6: datasmt.Detail:output_type -> DatasmtRespDetail
+	5, // [5:7] is the sub-list for method output_type
+	3, // [3:5] is the sub-list for method input_type
+	3, // [3:3] is the sub-list for extension type_name
+	3, // [3:3] is the sub-list for extension extendee
+	0, // [0:3] is the sub-list for field type_name
 }
 }
 
 
 func init() { file_publicservice_proto_init() }
 func init() { file_publicservice_proto_init() }
@@ -506,7 +569,7 @@ func file_publicservice_proto_init() {
 			}
 			}
 		}
 		}
 		file_publicservice_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
 		file_publicservice_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DatasmtList); i {
+			switch v := v.(*Field); i {
 			case 0:
 			case 0:
 				return &v.state
 				return &v.state
 			case 1:
 			case 1:
@@ -518,7 +581,7 @@ func file_publicservice_proto_init() {
 			}
 			}
 		}
 		}
 		file_publicservice_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
 		file_publicservice_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DatasmtReqDetail); i {
+			switch v := v.(*DatasmtList); i {
 			case 0:
 			case 0:
 				return &v.state
 				return &v.state
 			case 1:
 			case 1:
@@ -530,6 +593,18 @@ func file_publicservice_proto_init() {
 			}
 			}
 		}
 		}
 		file_publicservice_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 		file_publicservice_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*DatasmtReqDetail); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_publicservice_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*DatasmtRespDetail); i {
 			switch v := v.(*DatasmtRespDetail); i {
 			case 0:
 			case 0:
 				return &v.state
 				return &v.state

+ 10 - 9
rpc/publicservice.go

@@ -1,10 +1,11 @@
 package main
 package main
 
 
 import (
 import (
+	logrusx "app.yhyue.com/moapp/jylogx/logx"
 	"flag"
 	"flag"
 	"fmt"
 	"fmt"
-
 	"github.com/zeromicro/go-zero/core/conf"
 	"github.com/zeromicro/go-zero/core/conf"
+	"github.com/zeromicro/go-zero/core/logx"
 	"github.com/zeromicro/go-zero/core/service"
 	"github.com/zeromicro/go-zero/core/service"
 	"github.com/zeromicro/go-zero/zrpc"
 	"github.com/zeromicro/go-zero/zrpc"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc"
@@ -17,26 +18,26 @@ import (
 )
 )
 
 
 var configFile = flag.String("f", "etc/publicservice.yaml", "the config file")
 var configFile = flag.String("f", "etc/publicservice.yaml", "the config file")
-var C config.Config
 
 
 func main() {
 func main() {
 	flag.Parse()
 	flag.Parse()
 
 
-	conf.MustLoad(*configFile, &C)
+	conf.MustLoad(*configFile, &config.C)
+
 	//初始化数据库
 	//初始化数据库
-	db.Init(C)
-	ctx := svc.NewServiceContext(C)
+	db.Init(config.C)
+	ctx := svc.NewServiceContext(config.C)
 	svr := server.NewDatasmtServer(ctx)
 	svr := server.NewDatasmtServer(ctx)
-
-	s := zrpc.MustNewServer(C.RpcServerConf, func(grpcServer *grpc.Server) {
+	s := zrpc.MustNewServer(config.C.RpcServerConf, func(grpcServer *grpc.Server) {
 		pb.RegisterDatasmtServer(grpcServer, svr)
 		pb.RegisterDatasmtServer(grpcServer, svr)
 
 
-		if C.Mode == service.DevMode || C.Mode == service.TestMode {
+		if config.C.Mode == service.DevMode || config.C.Mode == service.TestMode {
 			reflection.Register(grpcServer)
 			reflection.Register(grpcServer)
 		}
 		}
 	})
 	})
 	defer s.Stop()
 	defer s.Stop()
 
 
-	fmt.Printf("Starting rpc server at %s...\n", C.ListenOn)
+	logx.SetWriter(logrusx.NewLogrusWriter())
+	fmt.Printf("Starting rpc server at %s...\n", config.C.ListenOn)
 	s.Start()
 	s.Start()
 }
 }

+ 7 - 2
rpc/publicservice.proto

@@ -14,7 +14,12 @@ message DatasmtRespList {
   repeated DatasmtList list = 1; //检索结果
   repeated DatasmtList list = 1; //检索结果
   int64 page_count = 2;       //总条数
   int64 page_count = 2;       //总条数
   repeated string hot_keys = 3;  //热搜词
   repeated string hot_keys = 3;  //热搜词
-  map<string, string> field_illustrate = 4;  //包含字段说明
+  repeated Field field_illustrate = 4;  //包含字段说明
+}
+message Field{
+  string code = 1;
+  string name = 2;
+  string describe = 3;
 }
 }
 
 
 message DatasmtList {
 message DatasmtList {
@@ -34,7 +39,7 @@ message DatasmtRespDetail {
   string data_type = 2;         //数据类型
   string data_type = 2;         //数据类型
   string format = 3;            //数据格式
   string format = 3;            //数据格式
   string clear_status = 4;      //清洗状态
   string clear_status = 4;      //清洗状态
-  string field_illustrate = 5;  //包含字段说明
+  Field field_illustrate = 5;  //包含字段说明
   string data_example = 6;      //数据示例图片路径
   string data_example = 6;      //数据示例图片路径
 }
 }
 
 

+ 52 - 12
rpc/service/datasmt.go

@@ -3,6 +3,7 @@ package service
 import "C"
 import "C"
 import (
 import (
 	"app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/encrypt"
 	"fmt"
 	"fmt"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/db"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/db"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/internal/config"
 	"jygit.jydev.jianyu360.cn/ApplicationCenter/publicService/rpc/internal/config"
@@ -19,21 +20,37 @@ type DataSmt struct {
 
 
 // 列表数据
 // 列表数据
 func (d *DataSmt) List(searchValue, dataType string, pageNum, pageSize int64) *pb.DatasmtRespList {
 func (d *DataSmt) List(searchValue, dataType string, pageNum, pageSize int64) *pb.DatasmtRespList {
+	if pageSize == 0 {
+		pageSize = 8
+	}
 	result := pb.DatasmtRespList{}
 	result := pb.DatasmtRespList{}
 	//数据查询
 	//数据查询
 	data := &[]map[string]interface{}{}
 	data := &[]map[string]interface{}{}
 	querySql := "select  id,name,data_type,format,clear_status from  %s where %s ORDER BY serial_number  limit %d ,%d "
 	querySql := "select  id,name,data_type,format,clear_status from  %s where %s ORDER BY serial_number  limit %d ,%d "
-	queryStrArr := []string{}
+	queryStrArr := []string{
+		" 1=1 ",
+	}
 	if searchValue != "" {
 	if searchValue != "" {
 		queryStrArr = append(queryStrArr, " name  LIKE '%"+searchValue+"%' ")
 		queryStrArr = append(queryStrArr, " name  LIKE '%"+searchValue+"%' ")
 	}
 	}
 	if dataType != "" {
 	if dataType != "" {
 		queryStrArr = append(queryStrArr, fmt.Sprintf(" data_type  = '%s' ", dataType))
 		queryStrArr = append(queryStrArr, fmt.Sprintf(" data_type  = '%s' ", dataType))
 	}
 	}
-	querySql = fmt.Sprintf(querySql, DATA_SUPERMARKET, strings.Join(queryStrArr, " and "), (pageNum-1)*pageSize, pageNum*pageSize)
+	querySql = fmt.Sprintf(querySql, DATA_SUPERMARKET, strings.Join(queryStrArr, " and "), (pageNum)*pageSize, pageNum+1*pageSize)
 	data = db.Mysql_BaseService.SelectBySql(querySql)
 	data = db.Mysql_BaseService.SelectBySql(querySql)
 	if data != nil && len(*data) > 0 {
 	if data != nil && len(*data) > 0 {
-		//数据出出力
+		//数据处理
+		dataList := []*pb.DatasmtList{}
+		for _, v := range *data {
+			dataList = append(dataList, &pb.DatasmtList{
+				Id:          encrypt.SE.Encode2Hex(common.InterfaceToStr(v["id"])),
+				Name:        common.InterfaceToStr(v["name"]),
+				DataType:    common.InterfaceToStr(v["data_type"]),
+				Format:      common.InterfaceToStr(v["format"]),
+				ClearStatus: common.InterfaceToStr(v["clear_status"]),
+			})
+		}
+		result.List = dataList
 	}
 	}
 	//总数查询
 	//总数查询
 	countQuerySql := "select  count(id) from  %s where %s "
 	countQuerySql := "select  count(id) from  %s where %s "
@@ -47,14 +64,13 @@ func (d *DataSmt) List(searchValue, dataType string, pageNum, pageSize int64) *p
 		result.HotKeys = strings.Split(common.InterfaceToStr((*hotData)[0]["keyword"]), ",")
 		result.HotKeys = strings.Split(common.InterfaceToStr((*hotData)[0]["keyword"]), ",")
 	}
 	}
 	//包含字段说明
 	//包含字段说明
-	fieldIllustrate := map[string]string{
-		"Cgyx":   config.C.DataSmt.FieldIllustrate.Cgyx,
-		"Njxm":   config.C.DataSmt.FieldIllustrate.Njxm,
-		"Zobsj":  config.C.DataSmt.FieldIllustrate.Zobsj,
-		"Zgbsj":  config.C.DataSmt.FieldIllustrate.Zgbsj,
-		"Qygssj": config.C.DataSmt.FieldIllustrate.Qygssj,
-		"Zbdwsj": config.C.DataSmt.FieldIllustrate.Zbdwsj,
-		"Cgdwsj": config.C.DataSmt.FieldIllustrate.Cgdwsj,
+	fieldIllustrate := []*pb.Field{}
+	for _, v := range config.C.DataSmt.FieldIllustrate {
+		fieldIllustrate = append(fieldIllustrate, &pb.Field{
+			Code:     v.Code,
+			Name:     v.Name,
+			Describe: v.Describe,
+		})
 	}
 	}
 	result.FieldIllustrate = fieldIllustrate
 	result.FieldIllustrate = fieldIllustrate
 	return &result
 	return &result
@@ -62,5 +78,29 @@ func (d *DataSmt) List(searchValue, dataType string, pageNum, pageSize int64) *p
 
 
 // 详情
 // 详情
 func (d *DataSmt) Detail(id string) *pb.DatasmtRespDetail {
 func (d *DataSmt) Detail(id string) *pb.DatasmtRespDetail {
-	return &pb.DatasmtRespDetail{}
+	result := &pb.DatasmtRespDetail{}
+	querySql := fmt.Sprintf("select  id,name,data_type,format,clear_status,data_example from   %s where id =%s", DATA_SUPERMARKET, id)
+	data := db.Mysql_BaseService.SelectBySql(querySql)
+	if data != nil && len(*data) > 0 {
+		//数据处理
+		v := (*data)[0]
+		dataType := common.InterfaceToStr(v["data_type"])
+		result = &pb.DatasmtRespDetail{
+			Name:        common.InterfaceToStr(v["name"]),
+			DataType:    common.InterfaceToStr(v["data_type"]),
+			Format:      common.InterfaceToStr(v["format"]),
+			ClearStatus: common.InterfaceToStr(v["clear_status"]),
+			DataExample: common.InterfaceToStr(v["data_example"]),
+		}
+		for _, v := range config.C.DataSmt.FieldIllustrate {
+			if dataType == v.Code {
+				result.FieldIllustrate = &pb.Field{
+					Code:     v.Code,
+					Name:     v.Name,
+					Describe: v.Describe,
+				}
+			}
+		}
+	}
+	return result
 }
 }