Browse Source

fix: i2bill-erp.yaml

double.huang 4 years ago
parent
commit
f7bddc3762

+ 1 - 1
Dockerfile

@@ -4,4 +4,4 @@ ADD i2-bill-erp.tar.gz /app/
 VOLUME [ "/app/etc" ]
 EXPOSE 8888
 WORKDIR /app
-CMD ["/app/i2-bill-erp", "-f", "/app/etc/transform.yaml"]
+CMD ["/app/i2-bill-erp", "-f", "/app/etc/i2bill-erp.yaml"]

+ 11 - 0
etc/i2bill-erp.yaml

@@ -0,0 +1,11 @@
+Name: transform.rpc
+ListenOn: 0.0.0.0:8080
+Etcd:
+  Hosts:
+  - 47.103.219.158:30019
+  Key: transform.rpc
+DataSource: root:gSRGZqb121TlYIbJy0@tcp(47.103.202.94:3306)/i2erp_erp1?charset=utf8&loc=Local&parseTime=true
+Table:
+Cache:
+  - Host: 47.103.219.158:7001
+    Pass: i2#333

+ 2 - 6
etc/transform.yaml

@@ -1,10 +1,6 @@
 Name: transform.rpc
-ListenOn: 0.0.0.0:8080
+ListenOn: 127.0.0.1:8080
 Etcd:
   Hosts:
-  - 47.103.219.158:30019
+  - 127.0.0.1:2379
   Key: transform.rpc
-DataSource: root:gSRGZqb121TlYIbJy0@tcp(47.103.202.94:3306)/i2erp_erp1?charset=utf8&loc=Local&parseTime=true
-Cache:
-  - Host: 47.103.219.158:7001
-    Pass: i2#333

+ 35 - 0
internal/logic/getuserlogic.go

@@ -0,0 +1,35 @@
+package logic
+
+import (
+	"context"
+
+	"git.i2edu.net/i2/i2-bill-erp/internal/svc"
+	"git.i2edu.net/i2/i2-bill-erp/transform"
+
+	"git.i2edu.net/i2/go-zero/core/logx"
+)
+
+type GetUserLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewGetUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserLogic {
+	return &GetUserLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+func (l *GetUserLogic) GetUser(in *transform.Request) (*transform.Response, error) {
+	// todo: add your logic here and delete this line
+	tfr := transform.Response{}
+	user, err := l.svcCtx.SysUserModel.FindOne(in.Id)
+	if err != nil {
+		return nil, err
+	}
+	tfr.Id = user.Id
+	return &tfr, nil
+}

+ 0 - 32
internal/logic/pinglogic.go

@@ -1,32 +0,0 @@
-package logic
-
-import (
-	"context"
-
-	"git.i2edu.net/i2/i2-bill-erp/internal/svc"
-	"git.i2edu.net/i2/i2-bill-erp/transform"
-
-	"git.i2edu.net/i2/go-zero/core/logx"
-)
-
-type PingLogic struct {
-	ctx    context.Context
-	svcCtx *svc.ServiceContext
-	logx.Logger
-}
-
-func NewPingLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PingLogic {
-	return &PingLogic{
-		ctx:    ctx,
-		svcCtx: svcCtx,
-		Logger: logx.WithContext(ctx),
-	}
-}
-
-func (l *PingLogic) Ping(in *transform.Request) (*transform.Response, error) {
-	res, err := l.svcCtx.Model.FindOne(in.Id)
-	if err != nil {
-		return nil, err
-	}
-	return &transform.Response{Id: res.Id}, nil
-}

+ 3 - 3
internal/server/transformserver.go

@@ -21,7 +21,7 @@ func NewTransformServer(svcCtx *svc.ServiceContext) *TransformServer {
 	}
 }
 
-func (s *TransformServer) Ping(ctx context.Context, in *transform.Request) (*transform.Response, error) {
-	l := logic.NewPingLogic(ctx, s.svcCtx)
-	return l.Ping(in)
+func (s *TransformServer) GetUser(ctx context.Context, in *transform.Request) (*transform.Response, error) {
+	l := logic.NewGetUserLogic(ctx, s.svcCtx)
+	return l.GetUser(in)
 }

+ 6 - 7
internal/svc/servicecontext.go

@@ -1,8 +1,6 @@
 package svc
 
 import (
-	"fmt"
-
 	"git.i2edu.net/i2/i2-bill-erp/internal/config"
 	"git.i2edu.net/i2/i2-bill-erp/model"
 
@@ -10,14 +8,15 @@ import (
 )
 
 type ServiceContext struct {
-	Config config.Config
-	Model  model.StudentModel
+	Config       config.Config
+	StudentModel model.StudentModel
+	SysUserModel model.SysUserModel
 }
 
 func NewServiceContext(c config.Config) *ServiceContext {
-	fmt.Println(c.Cache)
 	return &ServiceContext{
-		Config: c,
-		Model:  model.NewStudentModel(sqlx.NewMysql(c.DataSource), c.Cache),
+		Config:       c,
+		StudentModel: model.NewStudentModel(sqlx.NewMysql(c.DataSource), c.Cache),
+		SysUserModel: model.NewSysUserModel(sqlx.NewMysql(c.DataSource), c.Cache),
 	}
 }

+ 24 - 0
model/sys_user.sql

@@ -0,0 +1,24 @@
+CREATE TABLE `sys_user` (
+  `id` varchar(36) NOT NULL,
+  `login_id` varchar(36) NOT NULL,
+  `password` varchar(36) NOT NULL,
+  `name` varchar(100) NOT NULL,
+  `full_name` varchar(100) NOT NULL,
+  `mobile` varchar(50) NOT NULL,
+  `email` varchar(50) NOT NULL,
+  `org_id` varchar(36) DEFAULT NULL,
+  `gender` int(11) NOT NULL,
+  `type` int(11) DEFAULT NULL,
+  `status` int(11) DEFAULT NULL,
+  `avatar` varchar(255) DEFAULT NULL,
+  `domain` varchar(50) NOT NULL,
+  `create_by` varchar(36) NOT NULL,
+  `create_time` datetime NOT NULL,
+  `last_update_by` varchar(36) NOT NULL,
+  `last_update_time` bigint(20) NOT NULL,
+  `del_flag` tinyint(2) NOT NULL DEFAULT '0',
+  `temp_id` varchar(36) DEFAULT NULL,
+  `temp_value` text,
+  `address` varchar(500) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 120 - 0
model/sysusermodel.go

@@ -0,0 +1,120 @@
+package model
+
+import (
+	"database/sql"
+	"fmt"
+	"strings"
+	"time"
+
+	"git.i2edu.net/i2/go-zero/core/stores/cache"
+	"git.i2edu.net/i2/go-zero/core/stores/sqlc"
+	"git.i2edu.net/i2/go-zero/core/stores/sqlx"
+	"git.i2edu.net/i2/go-zero/core/stringx"
+	"git.i2edu.net/i2/go-zero/tools/goctl/model/sql/builderx"
+)
+
+var (
+	sysUserFieldNames          = builderx.RawFieldNames(&SysUser{})
+	sysUserRows                = strings.Join(sysUserFieldNames, ",")
+	sysUserRowsExpectAutoSet   = strings.Join(stringx.Remove(sysUserFieldNames, "`create_time`", "`update_time`"), ",")
+	sysUserRowsWithPlaceHolder = strings.Join(stringx.Remove(sysUserFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheSysUserIdPrefix = "cache:sysUser:id:"
+)
+
+type (
+	SysUserModel interface {
+		Insert(data SysUser) (sql.Result, error)
+		FindOne(id string) (*SysUser, error)
+		Update(data SysUser) error
+		Delete(id string) error
+	}
+
+	defaultSysUserModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	SysUser struct {
+		Status         sql.NullInt64  `db:"status"`
+		Avatar         sql.NullString `db:"avatar"`
+		LastUpdateTime int64          `db:"last_update_time"`
+		Address        sql.NullString `db:"address"`
+		Password       string         `db:"password"`
+		OrgId          sql.NullString `db:"org_id"`
+		CreateBy       string         `db:"create_by"`
+		LastUpdateBy   string         `db:"last_update_by"`
+		LoginId        string         `db:"login_id"`
+		Name           string         `db:"name"`
+		CreateTime     time.Time      `db:"create_time"`
+		DelFlag        int64          `db:"del_flag"`
+		TempId         sql.NullString `db:"temp_id"`
+		Id             string         `db:"id"`
+		FullName       string         `db:"full_name"`
+		Mobile         string         `db:"mobile"`
+		Email          string         `db:"email"`
+		Gender         int64          `db:"gender"`
+		Type           sql.NullInt64  `db:"type"`
+		Domain         string         `db:"domain"`
+		TempValue      string         `db:"temp_value"`
+	}
+)
+
+func NewSysUserModel(conn sqlx.SqlConn, c cache.CacheConf) SysUserModel {
+	return &defaultSysUserModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`sys_user`",
+	}
+}
+
+func (m *defaultSysUserModel) Insert(data SysUser) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, sysUserRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.Status, data.Avatar, data.LastUpdateTime, data.Address, data.Password, data.OrgId, data.CreateBy, data.LastUpdateBy, data.LoginId, data.Name, data.DelFlag, data.TempId, data.Id, data.FullName, data.Mobile, data.Email, data.Gender, data.Type, data.Domain, data.TempValue)
+
+	return ret, err
+}
+
+func (m *defaultSysUserModel) FindOne(id string) (*SysUser, error) {
+	sysUserIdKey := fmt.Sprintf("%s%v", cacheSysUserIdPrefix, id)
+	var resp SysUser
+	err := m.QueryRow(&resp, sysUserIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", sysUserRows, m.table)
+		return conn.QueryRow(v, query, id)
+	})
+	switch err {
+	case nil:
+		return &resp, nil
+	case sqlc.ErrNotFound:
+		return nil, ErrNotFound
+	default:
+		return nil, err
+	}
+}
+
+func (m *defaultSysUserModel) Update(data SysUser) error {
+	sysUserIdKey := fmt.Sprintf("%s%v", cacheSysUserIdPrefix, data.Id)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, sysUserRowsWithPlaceHolder)
+		return conn.Exec(query, data.Status, data.Avatar, data.LastUpdateTime, data.Address, data.Password, data.OrgId, data.CreateBy, data.LastUpdateBy, data.LoginId, data.Name, data.DelFlag, data.TempId, data.FullName, data.Mobile, data.Email, data.Gender, data.Type, data.Domain, data.TempValue, data.Id)
+	}, sysUserIdKey)
+	return err
+}
+
+func (m *defaultSysUserModel) Delete(id string) error {
+
+	sysUserIdKey := fmt.Sprintf("%s%v", cacheSysUserIdPrefix, id)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
+		return conn.Exec(query, id)
+	}, sysUserIdKey)
+	return err
+}
+
+func (m *defaultSysUserModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheSysUserIdPrefix, primary)
+}
+
+func (m *defaultSysUserModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", sysUserRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 2 - 1
start.sh

@@ -6,6 +6,7 @@ goctl rpc proto -src transform.proto -dir .
 
 ### GEN MODEL
 goctl model mysql ddl -c -src model/student.sql -dir model
+goctl model mysql ddl -c -src model/sys_user.sql -dir model
 
 ### RUN RPC SRV 
-go run transform.go -f etc/transform.yaml 
+go run transform.go -f etc/i2bill-erp.yaml 

+ 7 - 3
transform.proto

@@ -3,13 +3,17 @@ syntax = "proto3";
 package transform;
 
 message Request {
-  int64 id = 1;
+  string id = 1;
+  string phone = 2;
 }
 
 message Response {
-  int64 id = 1;
+  string id = 1;
+  string phone = 2;
+  string roles = 3;
+  int64 status = 4;
 }
 
 service Transform {
-  rpc Ping(Request) returns(Response);
+  rpc GetUser(Request) returns(Response);
 }

+ 59 - 24
transform/transform.pb.go

@@ -25,7 +25,8 @@ var _ = math.Inf
 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 
 type Request struct {
-	Id                   int64    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Phone                string   `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -56,15 +57,25 @@ func (m *Request) XXX_DiscardUnknown() {
 
 var xxx_messageInfo_Request proto.InternalMessageInfo
 
-func (m *Request) GetId() int64 {
+func (m *Request) GetId() string {
 	if m != nil {
 		return m.Id
 	}
-	return 0
+	return ""
+}
+
+func (m *Request) GetPhone() string {
+	if m != nil {
+		return m.Phone
+	}
+	return ""
 }
 
 type Response struct {
-	Id                   int64    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Phone                string   `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"`
+	Roles                string   `protobuf:"bytes,3,opt,name=roles,proto3" json:"roles,omitempty"`
+	Status               int64    `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -95,10 +106,31 @@ func (m *Response) XXX_DiscardUnknown() {
 
 var xxx_messageInfo_Response proto.InternalMessageInfo
 
-func (m *Response) GetId() int64 {
+func (m *Response) GetId() string {
 	if m != nil {
 		return m.Id
 	}
+	return ""
+}
+
+func (m *Response) GetPhone() string {
+	if m != nil {
+		return m.Phone
+	}
+	return ""
+}
+
+func (m *Response) GetRoles() string {
+	if m != nil {
+		return m.Roles
+	}
+	return ""
+}
+
+func (m *Response) GetStatus() int64 {
+	if m != nil {
+		return m.Status
+	}
 	return 0
 }
 
@@ -110,15 +142,18 @@ func init() {
 func init() { proto.RegisterFile("transform.proto", fileDescriptor_cb4a498eeb2ba07d) }
 
 var fileDescriptor_cb4a498eeb2ba07d = []byte{
-	// 120 bytes of a gzipped FileDescriptorProto
+	// 169 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x29, 0x4a, 0xcc,
 	0x2b, 0x4e, 0xcb, 0x2f, 0xca, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x0b, 0x28,
-	0x49, 0x72, 0xb1, 0x07, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0xf1, 0x71, 0x31, 0x65, 0xa6,
-	0x48, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x31, 0x65, 0xa6, 0x28, 0x49, 0x71, 0x71, 0x04, 0xa5,
-	0x16, 0x17, 0xe4, 0xe7, 0x15, 0xa7, 0xa2, 0xcb, 0x19, 0xd9, 0x70, 0x71, 0x86, 0xc0, 0xcc, 0x10,
-	0xd2, 0xe7, 0x62, 0x09, 0xc8, 0xcc, 0x4b, 0x17, 0x12, 0xd2, 0x43, 0x58, 0x04, 0x35, 0x54, 0x4a,
-	0x18, 0x45, 0x0c, 0x62, 0x5a, 0x12, 0x1b, 0xd8, 0x19, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff,
-	0x41, 0xdb, 0x9d, 0xf9, 0x99, 0x00, 0x00, 0x00,
+	0xe9, 0x73, 0xb1, 0x07, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0xf1, 0x71, 0x31, 0x65, 0xa6,
+	0x48, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x06, 0x31, 0x65, 0xa6, 0x08, 0x89, 0x70, 0xb1, 0x16, 0x64,
+	0xe4, 0xe7, 0xa5, 0x4a, 0x30, 0x81, 0x85, 0x20, 0x1c, 0xa5, 0x38, 0x2e, 0x8e, 0xa0, 0xd4, 0xe2,
+	0x82, 0xfc, 0xbc, 0xe2, 0x54, 0xe2, 0x74, 0x80, 0x44, 0x8b, 0xf2, 0x73, 0x52, 0x8b, 0x25, 0x98,
+	0x21, 0xa2, 0x60, 0x8e, 0x90, 0x18, 0x17, 0x5b, 0x71, 0x49, 0x62, 0x49, 0x69, 0xb1, 0x04, 0x8b,
+	0x02, 0xa3, 0x06, 0x73, 0x10, 0x94, 0x67, 0x64, 0xcf, 0xc5, 0x19, 0x02, 0x73, 0x9d, 0x90, 0x11,
+	0x17, 0xbb, 0x7b, 0x6a, 0x49, 0x68, 0x71, 0x6a, 0x91, 0x90, 0x90, 0x1e, 0xc2, 0x17, 0x50, 0x17,
+	0x4b, 0x09, 0xa3, 0x88, 0x41, 0x1c, 0x95, 0xc4, 0x06, 0xf6, 0xa3, 0x31, 0x20, 0x00, 0x00, 0xff,
+	0xff, 0x1e, 0x2a, 0x08, 0x8a, 0xf6, 0x00, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -133,7 +168,7 @@ const _ = grpc.SupportPackageIsVersion4
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 type TransformClient interface {
-	Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+	GetUser(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
 }
 
 type transformClient struct {
@@ -144,9 +179,9 @@ func NewTransformClient(cc *grpc.ClientConn) TransformClient {
 	return &transformClient{cc}
 }
 
-func (c *transformClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+func (c *transformClient) GetUser(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
 	out := new(Response)
-	err := c.cc.Invoke(ctx, "/transform.Transform/Ping", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/transform.Transform/GetUser", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -155,35 +190,35 @@ func (c *transformClient) Ping(ctx context.Context, in *Request, opts ...grpc.Ca
 
 // TransformServer is the server API for Transform service.
 type TransformServer interface {
-	Ping(context.Context, *Request) (*Response, error)
+	GetUser(context.Context, *Request) (*Response, error)
 }
 
 // UnimplementedTransformServer can be embedded to have forward compatible implementations.
 type UnimplementedTransformServer struct {
 }
 
-func (*UnimplementedTransformServer) Ping(ctx context.Context, req *Request) (*Response, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
+func (*UnimplementedTransformServer) GetUser(ctx context.Context, req *Request) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented")
 }
 
 func RegisterTransformServer(s *grpc.Server, srv TransformServer) {
 	s.RegisterService(&_Transform_serviceDesc, srv)
 }
 
-func _Transform_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _Transform_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(Request)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(TransformServer).Ping(ctx, in)
+		return srv.(TransformServer).GetUser(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/transform.Transform/Ping",
+		FullMethod: "/transform.Transform/GetUser",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(TransformServer).Ping(ctx, req.(*Request))
+		return srv.(TransformServer).GetUser(ctx, req.(*Request))
 	}
 	return interceptor(ctx, in, info, handler)
 }
@@ -193,8 +228,8 @@ var _Transform_serviceDesc = grpc.ServiceDesc{
 	HandlerType: (*TransformServer)(nil),
 	Methods: []grpc.MethodDesc{
 		{
-			MethodName: "Ping",
-			Handler:    _Transform_Ping_Handler,
+			MethodName: "GetUser",
+			Handler:    _Transform_GetUser_Handler,
 		},
 	},
 	Streams:  []grpc.StreamDesc{},

+ 4 - 4
transformclient/transform.go

@@ -14,11 +14,11 @@ import (
 )
 
 type (
-	Request  = transform.Request
 	Response = transform.Response
+	Request  = transform.Request
 
 	Transform interface {
-		Ping(ctx context.Context, in *Request) (*Response, error)
+		GetUser(ctx context.Context, in *Request) (*Response, error)
 	}
 
 	defaultTransform struct {
@@ -32,7 +32,7 @@ func NewTransform(cli zrpc.Client) Transform {
 	}
 }
 
-func (m *defaultTransform) Ping(ctx context.Context, in *Request) (*Response, error) {
+func (m *defaultTransform) GetUser(ctx context.Context, in *Request) (*Response, error) {
 	client := transform.NewTransformClient(m.cli.Conn())
-	return client.Ping(ctx, in)
+	return client.GetUser(ctx, in)
 }