22 Commits

11 changed files with 834 additions and 636 deletions
Split View
  1. +564
    -558
      account.client.go
  2. +3
    -3
      account.client_test.go
  3. +52
    -45
      common.go
  4. +75
    -0
      fans.client.go
  5. +16
    -0
      fans.client_test.go
  6. +1
    -1
      go.mod
  7. +4
    -2
      go.sum
  8. +66
    -16
      user.client.go
  9. +28
    -0
      user.client_test.go
  10. +20
    -8
      user.pb.go
  11. +5
    -3
      user.proto

+ 564
- 558
account.client.go
File diff suppressed because it is too large
View File


+ 3
- 3
account.client_test.go View File

@ -31,7 +31,7 @@ func Test_AddUserScore(t *testing.T) {
userid := "2"
score := "20"
ret, err := AddUserScore(dbname, userid, score)
ret, err := AddUserScore(dbname, userid, score,"")
t.Log(ret)
t.Log(err)
}
@ -71,7 +71,7 @@ func Test_AddUserUpgrade(t *testing.T) {
userid := "5"
upgrade := "100"
ret, err := AddUserUpgrade(dbname, userid, upgrade)
ret, err := AddUserUpgrade(dbname, userid, upgrade,"")
t.Log(ret)
t.Log(err)
}
@ -105,7 +105,7 @@ func Test_AddUserRedEnvelope(t *testing.T) {
userid := "5"
money := "20"
ret, err := AddUserRedEnvelope(dbname, userid, money)
ret, err := AddUserRedEnvelope(dbname, userid, money,"")
t.Log(ret)
t.Log(err)
}


+ 52
- 45
common.go View File

@ -1,83 +1,90 @@
package userrpc
import (
"git.tetele.net/tgo/conf"
"git.tetele.net/tgo/conf"
)
const DES_KEY = "usersrpc"
type Req struct {
SiteId string
Dbname string
SiteId string
Dbname string
}
type Third struct {
Userid string
Platform string
Openid string
Openname string
Unionid string
Avatar string
Mobile string
Userid string
Platform string
Openid string
Openname string
Unionid string
Avatar string
Mobile string
}
type BindThirdReq struct {
Req
Third
Req
Third
}
type GetThirdReq struct {
Req
Userid string
Platform string
Req
Userid string
Platform string
}
type GetBusinessReq struct {
Req
BusinessId string
Req
BusinessId string
}
type GetUserReq struct {
Req
UserId string
Req
UserId string
}
type GetAddressReq struct {
Req
AddressId string
Req
AddressId string
}
type Res struct {
Errcode int
Errmsg string
Errcode int
Errmsg string
}
type Business struct {
Type string
BusinessId string
CustomerId string
Name string
CompanyId string
Contact string
Mobile string
HandingFee string
IsOpen string
Type string
BusinessId string
CustomerId string
Name string
CompanyId string
Contact string
Mobile string
HandingFee string
IsOpen string
}
type FansReq struct {
Req
UserId string
BusinessId string
Lock bool
}
func rpc_server_conn(url ...string) (*UserServiceClient, error) {
var rpc_url string
if len(url) > 0 && url[0] != "" {
rpc_url = url[0]
} else if conf.USER_RPC_URL != "" {
rpc_url = conf.USER_RPC_URL
} else {
rpc_url = "127.0.0.1:" + conf.USER_RPC_PORT
}
var rpc_url string
if len(url) > 0 && url[0] != "" {
rpc_url = url[0]
} else if conf.USER_RPC_URL != "" {
rpc_url = conf.USER_RPC_URL
} else {
rpc_url = "127.0.0.1:" + conf.USER_RPC_PORT
}
conn, _, err := DialUserService("tcp", rpc_url)
if err != nil {
return nil, err
}
conn, _, err := DialUserService("tcp", rpc_url)
if err != nil {
return nil, err
}
return conn, nil
return conn, nil
}

+ 75
- 0
fans.client.go View File

@ -0,0 +1,75 @@
package userrpc
/**
* 绑定粉丝
* 2021/10/23
* gz
*/
func Fans(site_id, dbname, user_id, business_id string, url ...string) error {
conn, err := rpc_server_conn(url...)
if err != nil {
return err
}
defer conn.Close()
data := FansReq{}
data.SiteId = site_id
data.Dbname = dbname
data.UserId = user_id
data.BusinessId = business_id
data.Lock = false
req, err := SetReqData(data)
if err != nil {
return err
}
res := &Response{}
err = conn.Fans(req, res)
if err != nil {
return err
}
_, err = GetResData(res)
return nil
}
/**
* 绑定粉丝
* 2021/10/23
* gz
*/
func LockFans(site_id, dbname, user_id, business_id string, url ...string) error {
conn, err := rpc_server_conn(url...)
if err != nil {
return err
}
defer conn.Close()
data := FansReq{}
data.SiteId = site_id
data.Dbname = dbname
data.UserId = user_id
data.BusinessId = business_id
data.Lock = true
req, err := SetReqData(data)
if err != nil {
return err
}
res := &Response{}
err = conn.Fans(req, res)
if err != nil {
return err
}
_, err = GetResData(res)
return nil
}

+ 16
- 0
fans.client_test.go View File

@ -0,0 +1,16 @@
package userrpc
import (
"testing"
)
func Test_Fans(t *testing.T) {
dbname := "shop_v2"
user_id := "6"
business_id := "5"
err := LockFans("", dbname, user_id, business_id)
t.Log(err)
}

+ 1
- 1
go.mod View File

@ -3,7 +3,7 @@ module git.tetele.net/tgo/userrpc
go 1.14
require (
git.tetele.net/tgo/conf v0.33.1
git.tetele.net/tgo/conf v0.46.0
git.tetele.net/tgo/crypter v0.2.2
github.com/chai2010/protorpc v1.1.3
github.com/golang/protobuf v1.0.0


+ 4
- 2
go.sum View File

@ -1,7 +1,9 @@
git.tetele.net/tgo/conf v0.33.1 h1:ZEIv3Vq35RCv5f3T3Uz97s2mkZLl7W5OlmXvzI3/sS8=
git.tetele.net/tgo/conf v0.33.1/go.mod h1:AWVIBEDE5dtotthUgR0SWaR2Qa6/f+O5WQ3s7Tj8q7A=
git.tetele.net/tgo/conf v0.46.0/go.mod h1:AWVIBEDE5dtotthUgR0SWaR2Qa6/f+O5WQ3s7Tj8q7A=
git.tetele.net/tgo/crypter v0.2.2 h1:YMQJh2Gj5Po4ZfelJUmXBKi01UbmtiSy3bmqRfnYQMo=
git.tetele.net/tgo/crypter v0.2.2/go.mod h1:vfvRLZA8+lHNgNXneOcgvVhDyuv25ZRb+C6xHOmXNx0=
git.tetele.net/yueheng/conf v0.33.1 h1:ZEIv3Vq35RCv5f3T3Uz97s2mkZLl7W5OlmXvzI3/sS8=
git.tetele.net/yueheng/conf v0.33.1/go.mod h1:AWVIBEDE5dtotthUgR0SWaR2Qa6/f+O5WQ3s7Tj8q7A=
git.tetele.net/yueheng/conf v1.2.6/go.mod h1:qRujMTqjMByvdC05qdfscZMFRKM5XA1qbtz4rnFyStY=
github.com/chai2010/protorpc v1.1.3 h1:VJK5hIoZn0XCGol0GmbxZkUG6FbTI5LP2Lam6RVd15w=
github.com/chai2010/protorpc v1.1.3/go.mod h1:/wO0kiyVdu7ug8dCMrA2yDr2vLfyhsLEuzLa9J2HJ+I=
github.com/golang/protobuf v1.0.0 h1:lsek0oXi8iFE9L+EXARyHIjU5rlWIhhTkjDz3vHhWWQ=


+ 66
- 16
user.client.go View File

@ -31,22 +31,24 @@ func GetUserByToken(dbname, token string, url ...string) (map[string]string, err
if res.GetUserId() != "" {
return map[string]string{
"UserId": res.GetUserId(),
"Username": res.GetUsername(),
"Nickname": res.GetNickname(),
"Mobile": res.GetMobile(),
"Email": res.GetEmail(),
"Status": res.GetStatus(),
"BusinessId": res.GetBusinessId(),
"StoreId": res.GetStoreId(),
"FansTo": res.GetFansTo(),
"IsVip": res.GetIsVip(),
"Usercode": res.GetUsercode(),
"GroupId": res.GetGroupId(),
"Type": res.GetType(),
"ThirdId": res.GetThirdId(),
"Platform": res.GetPlatform(),
"LockFans": res.GetLockFans(),
"UserId": res.GetUserId(),
"Username": res.GetUsername(),
"Nickname": res.GetNickname(),
"Mobile": res.GetMobile(),
"Email": res.GetEmail(),
"Status": res.GetStatus(),
"BusinessId": res.GetBusinessId(),
"StoreId": res.GetStoreId(),
"FansTo": res.GetFansTo(),
"IsVip": res.GetIsVip(),
"Usercode": res.GetUsercode(),
"GroupId": res.GetGroupId(),
"Type": res.GetType(),
"ThirdId": res.GetThirdId(),
"Platform": res.GetPlatform(),
"LockFans": res.GetLockFans(),
"CompanyId": res.GetCompanyId(),
"DepartmentId": res.GetDepartmentId(),
}, nil
}
@ -193,3 +195,51 @@ func GetById(site_id, dbname, user_id string, url ...string) (map[string]string,
return HandleUserRes(res)
}
/**
* 更新用户缓存
* 2021/11/23
* linsen
*/
func UpdateUserCache(site_id, dbname, user_id string, url ...string) (map[string]string, error) {
conn, err := rpc_server_conn(url...)
if err != nil {
return nil, err
}
defer conn.Close()
data := GetUserReq{}
data.SiteId = site_id
data.Dbname = dbname
data.UserId = user_id
data_json, err := json.Marshal(data)
if err != nil {
return nil, err
}
encryData := crypter.DesEn(string(data_json), DES_KEY)
now_int64 := time.Now().Unix()
now := strconv.FormatInt(now_int64, 10)
sign := Sign(encryData, now)
req := &Request{
proto.String(encryData),
proto.String(now),
proto.String(sign),
nil}
res := &Response{}
err = conn.UpdateUserCache(req, res)
if err != nil {
return nil, err
}
return HandleUserRes(res)
}

+ 28
- 0
user.client_test.go View File

@ -33,3 +33,31 @@ func Test_GetUserByToken(t *testing.T) {
// t.Log(err)
// }
func Test_UpdateUserCache(t *testing.T){
dbname := "shop"
siteId := "1198881"
res,err := UpdateUserCache(siteId,dbname,"6")
if err != nil {
t.Error(err.Error())
}
t.Log(res)
}
func Test_GetById(t *testing.T){
dbname := "shop"
siteId := "1198881"
res,err := GetById(siteId,dbname,"6")
if err != nil {
t.Error(err.Error())
}
t.Log(res)
}

+ 20
- 8
user.pb.go View File

@ -153,6 +153,8 @@ type UserResponse struct {
ThirdId *string `protobuf:"bytes,14,opt,name=third_id" json:"third_id,omitempty"`
Platform *string `protobuf:"bytes,15,opt,name=platform" json:"platform,omitempty"`
LockFans *string `protobuf:"bytes,16,opt,name=lock_fans" json:"lock_fans,omitempty"`
CompanyId *string `protobuf:"bytes,17,opt,name=company_id" json:"company_id,omitempty"`
DepartmentId *string `protobuf:"bytes,18,opt,name=department_id" json:"department_id,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
@ -272,6 +274,20 @@ func (m *UserResponse) GetLockFans() string {
return ""
}
func (m *UserResponse) GetCompanyId() string {
if m != nil && m.CompanyId != nil {
return *m.CompanyId
}
return ""
}
func (m *UserResponse) GetDepartmentId() string {
if m != nil && m.DepartmentId != nil {
return *m.DepartmentId
}
return ""
}
// 用户登录请求结构
type LoginRequest struct {
Dbname *string `protobuf:"bytes,1,opt,name=dbname" json:"dbname,omitempty"`
@ -521,6 +537,7 @@ type UserService interface {
GetUserThird(in *Request, out *Response) error
GetBusiness(in *Request, out *Response) error
GetById(in *Request, out *Response) error
UpdateUserCache(in *Request, out *Response) error
GetBusinessInfo(in *Request, out *Response) error
GetAddressInfo(in *Request, out *Response) error
GetUserScore(in *Request, out *Response) error
@ -536,9 +553,7 @@ type UserService interface {
AddUserRedEnvelopeLog(in *Request, out *Response) error
AddUserCoupon(in *Request, out *Response) error
UpdateUserCoupon(in *Request, out *Response) error
FavoriteProduct(in *Request, out *Response) error
Fans(in *Request, out *Response) error
LockFans(in *Request, out *Response) error
}
// AcceptUserServiceClient accepts connections on the listener and serves requests
@ -637,6 +652,9 @@ func (c *UserServiceClient) GetBusiness(in *Request, out *Response) error {
func (c *UserServiceClient) GetById(in *Request, out *Response) error {
return c.Call("UserService.GetById", in, out)
}
func (c *UserServiceClient) UpdateUserCache(in *Request, out *Response) error {
return c.Call("UserService.UpdateUserCache", in, out)
}
func (c *UserServiceClient) GetBusinessInfo(in *Request, out *Response) error {
return c.Call("UserService.GetBusinessInfo", in, out)
}
@ -682,15 +700,9 @@ func (c *UserServiceClient) AddUserCoupon(in *Request, out *Response) error {
func (c *UserServiceClient) UpdateUserCoupon(in *Request, out *Response) error {
return c.Call("UserService.UpdateUserCoupon", in, out)
}
func (c *UserServiceClient) FavoriteProduct(in *Request, out *Response) error {
return c.Call("UserService.FavoriteProduct", in, out)
}
func (c *UserServiceClient) Fans(in *Request, out *Response) error {
return c.Call("UserService.Fans", in, out)
}
func (c *UserServiceClient) LockFans(in *Request, out *Response) error {
return c.Call("UserService.LockFans", in, out)
}
// DialUserService connects to an UserService at the specified network address.
func DialUserService(network, addr string) (*UserServiceClient, *rpc.Client, error) {


+ 5
- 3
user.proto View File

@ -40,6 +40,8 @@ message UserResponse {
string third_id = 14; //token对应的third_id
string platform = 15; //
string lock_fans = 16; //
string company_id = 17;
string department_id =18;
}
//
@ -96,6 +98,7 @@ service UserService {
rpc getUserThird(Request) returns (Response); // v2
rpc getBusiness(Request) returns (Response); //
rpc getById(Request) returns (Response); //
rpc updateUserCache(Request) returns (Response); //
rpc getBusinessInfo(Request) returns (Response); //
rpc getAddressInfo(Request) returns (Response); //
rpc getUserScore(Request) returns (Response); //
@ -111,7 +114,6 @@ service UserService {
rpc addUserRedEnvelopeLog(Request) returns (Response); //
rpc addUserCoupon(Request) returns (Response); //
rpc updateUserCoupon(Request) returns (Response); //
rpc favoriteProduct(Request) returns (Response); //
rpc Fans(Request) returns (Response); //
rpc LockFans(Request) returns (Response); //
//rpc favoriteProduct(Request) returns (Response); //
rpc Fans(Request) returns (Response); //
}

Loading…
Cancel
Save