新增了rpc服务定义和工具命令
This commit is contained in:
parent
061bb694bb
commit
d1256e2ae9
6
Makefile
6
Makefile
|
@ -44,17 +44,17 @@ apirun:
|
|||
cd cmd/api && go run transfer.go
|
||||
|
||||
.PHONY: apivalidate
|
||||
# 运行rpc
|
||||
# api有效测试
|
||||
apivalidate:
|
||||
cd cmd/api/desc && goctl api validate --api *.api
|
||||
|
||||
.PHONY: apiformat
|
||||
# 运行rpc
|
||||
# 格式化api文件
|
||||
apiformat:
|
||||
cd cmd/api/desc && goctl api format --dir ./
|
||||
|
||||
.PHONY: apitodoc
|
||||
# 运行rpc
|
||||
# 生成api文档
|
||||
apitodoc:
|
||||
cd cmd/api/desc && goctl api doc --dir ./
|
||||
|
||||
|
|
|
@ -21,8 +21,7 @@ type Config struct {
|
|||
DataSource string
|
||||
}
|
||||
}
|
||||
|
||||
Cache cache.CacheConf
|
||||
|
||||
ZLTX types.ZLTXConf
|
||||
Market types.MarketConf
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package logic
|
|||
|
||||
import (
|
||||
"context"
|
||||
"trasfer_middleware/pkg/common"
|
||||
|
||||
"trasfer_middleware/cmd/rpc/internal/svc"
|
||||
"trasfer_middleware/cmd/rpc/pb/transfer"
|
||||
|
@ -24,7 +25,7 @@ func NewMarketKeyDiscardLogic(ctx context.Context, svcCtx *svc.ServiceContext) *
|
|||
}
|
||||
|
||||
func (l *MarketKeyDiscardLogic) MarketKeyDiscard(in *transfer.MarketKeyDiscardReq) (*transfer.MarketKeyDiscardRes, error) {
|
||||
// todo: add your logic here and delete this line
|
||||
res, err := l.svcCtx.Market.SetData(common.StructToMap(in)).KeyDiscard()
|
||||
|
||||
return &transfer.MarketKeyDiscardRes{}, nil
|
||||
return res, err
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package logic
|
|||
|
||||
import (
|
||||
"context"
|
||||
"trasfer_middleware/pkg/common"
|
||||
|
||||
"trasfer_middleware/cmd/rpc/internal/svc"
|
||||
"trasfer_middleware/cmd/rpc/pb/transfer"
|
||||
|
@ -24,7 +25,7 @@ func NewMarketKeySendLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Mar
|
|||
}
|
||||
|
||||
func (l *MarketKeySendLogic) MarketKeySend(in *transfer.MarketKeySendReq) (*transfer.MarketKeySendRes, error) {
|
||||
// todo: add your logic here and delete this line
|
||||
res, err := l.svcCtx.Market.SetData(common.StructToMap(in)).KeySend()
|
||||
|
||||
return &transfer.MarketKeySendRes{}, nil
|
||||
return res, err
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package logic
|
|||
|
||||
import (
|
||||
"context"
|
||||
"trasfer_middleware/pkg/common"
|
||||
|
||||
"trasfer_middleware/cmd/rpc/internal/svc"
|
||||
"trasfer_middleware/cmd/rpc/pb/transfer"
|
||||
|
@ -24,7 +25,6 @@ func NewMarketQueryLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Marke
|
|||
}
|
||||
|
||||
func (l *MarketQueryLogic) MarketQuery(in *transfer.MarketQueryReq) (*transfer.MarketQueryRes, error) {
|
||||
// todo: add your logic here and delete this line
|
||||
|
||||
return &transfer.MarketQueryRes{}, nil
|
||||
res, err := l.svcCtx.Market.SetData(common.StructToMap(in)).Query()
|
||||
return res, err
|
||||
}
|
||||
|
|
|
@ -1 +1,95 @@
|
|||
package market
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
"trasfer_middleware/cmd/rpc/internal/logic/po/zltx/types"
|
||||
"trasfer_middleware/cmd/rpc/internal/logic/vo"
|
||||
"trasfer_middleware/cmd/rpc/pb/transfer"
|
||||
"trasfer_middleware/pkg/common"
|
||||
"trasfer_middleware/pkg/request"
|
||||
)
|
||||
|
||||
type Market struct {
|
||||
Conf *types.MarketConf
|
||||
RequestBody map[string]string
|
||||
}
|
||||
|
||||
type MarketRequest struct {
|
||||
*Market
|
||||
RequestBody map[string]string
|
||||
}
|
||||
|
||||
func NewMarket(conf types.MarketConf) *Market {
|
||||
|
||||
return &Market{
|
||||
Conf: &conf,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *Market) SetData(data map[string]interface{}) *MarketRequest {
|
||||
//商户ID:test001
|
||||
//AppId:test001
|
||||
//平台Id:test001
|
||||
data["timestamp"] = time.Now().Unix()
|
||||
privatekey := "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEJHRzQjOTOtyR01BYq7ZsMlzBljTHqGl9FPsVfbn1kIeMQcbtbYsJhiIKS4exbxMXDRp211Mw89SXU4D/awpv0hPa+rMiwWxQEzLseI3EhTl4/vDBhg/EuViEaM60IuPQtW5cheFbABTw8T+HiysQTzUj11YcPUUMKVjDAHracnPuEwNxpZOLcuCK3Sltx/9GkQ2Lqk2J1UJ0kBg9dtPcY9WwoQXe+f1Ft/clmiFA5hXL4gulNiiCp2r3WetGCu18/Ql/jtp8d32PQF5xE+zTorboR9KGgoRwn7kw9Ylo0O2OACeAoX8Zc0eLqX+8oZGC66zw81TtloZGKSb8ThPNAgMBAAECggEACmQkBzcqpFIp/U/Eoe327CR+5YKfqTQy4n2KD8lpYKkXhUa20z1KcGa6xvDZb30C9eWr0T/3GFDSonG6E84H74ShqKg/dUfqBRP/TqfUWuTz9oULHDWOAE4RcnJbARAYIaZ7AkvVdIy8j0c4pmWpEmQf3JY76aMVVV+bZDlSSOBPnjLLodb1lgs+5YuQ5aZWtrWw3Bg5n8trpkuPjKxiYgKRmGoRVBAStrafkrOhS+xM/vP1yZLBpOa3Y99Vv5YCxE34caJc5hr6HU+YfpPfxaHZ9Z6Ct+uWuimZvPhSKSGIxVfryFKKlt0BP6PDM6f7fvPB20AM/SfDCn0m7Ye6AQKBgQDrjvQov08HLSrITKQ9I5CEODRUmkZWoGFmWBZjZ1Q7W/VZ6/Q8Wxlalwy7+7HrWMbRl0D4Vc+ghyur/bW+zSxLtFwQMc50LDd2lnz8Yvm4ZsE1dSkbOxmaWt18fBD69rKdY2GnZnb6X6oR60BqbLo7T7rvQ8U1sdAAoM6xCjFFKQKBgQDVKdrinOl3Wq5dydaH7HwsO3TwQh8ebmOt+btXB/u8AwQK4nzhP1mluJkSXZQnyHJegmujaxV7ntk3tLizCknQNknp/xfOrzocxn+18zyJ2B2zoIEysP2oxrFu80QtmfTh8fD/fpDwkR2NLG2XtuUKL7TPcg2pd5dRknarbOcqBQKBgQCgHyOfUzQgN7a+Q0LdgIBrMF16KQipOAodbMGDPqkGVKM6RedW48IfT1BLtHMj/MvhiwSSCprBj0DDgAn8MjHrICX4qDKjy67EANXjJlCD5e1uLj8MEKd9wkiOpzNPtUSDMhwek8tKtJ7B4X1/GnuZd8AlhpbWwhEXbDg0Ji6JyQKBgDNZ/e0Rt/yUz+SwNwpPoipVuHoYs751AXZr7wGsXqyQXWzx2vu4czRFIDsYaBSdaU/zQ1L+/RHm1pVg6A3ZsKaELZI9bdLQy8Ma3rFKg48BjUY0qGs50CHUm/IKkKYbrK6xxkkGiIwrqV7VESG3Yb3ueDRxWXE16jIwgn4Roi6xAoGAPJsEDVj0meHQZFrUjG36TLE7kT83LogwEvhTW9vcCoVkJuT5iT17D2DbgJCHe1Kpg874EbbCVNUTOuAxJanI1lVD+qEUUKAB9bTVTOHUtENjbiX7rrHAM8sf6v9Up4X0PwG+cYp/0LvNkre30DWlo52cBLC6iqJF9VR1+lK+Aiw="
|
||||
data["app_id"] = "test001"
|
||||
data["mem_id"] = "test001"
|
||||
data["pos_id"] = "test001"
|
||||
|
||||
sign, err := common.MarketMakeRsaSign(privatekey, data)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
data["sign"] = sign
|
||||
//data := common.MergeMaps(common.ToMap(p), common.ToMap(r), common.ToMap(e))*/
|
||||
requestBody := make(map[string]string, len(data))
|
||||
for key, value := range data {
|
||||
requestBody[key] = fmt.Sprintf("%v", value)
|
||||
}
|
||||
return &MarketRequest{
|
||||
Market: r,
|
||||
RequestBody: requestBody,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *MarketRequest) request(url string) (*request.Response, error) {
|
||||
req := request.Request{
|
||||
Method: "POST",
|
||||
Url: fmt.Sprintf("%s%s", r.Conf.Host, url),
|
||||
Data: r.RequestBody,
|
||||
}
|
||||
resp, _ := req.Send()
|
||||
return &resp, nil
|
||||
}
|
||||
|
||||
func (r *MarketRequest) KeySend() (*transfer.MarketKeySendRes, error) {
|
||||
var res transfer.MarketKeySendRes
|
||||
req, err := r.request(vo.MARKET_KEY_SEND)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_ = json.Unmarshal([]byte(req.Text), &res)
|
||||
return &res, nil
|
||||
}
|
||||
|
||||
func (r *MarketRequest) KeyDiscard() (*transfer.MarketKeyDiscardRes, error) {
|
||||
var res transfer.MarketKeyDiscardRes
|
||||
req, err := r.request(vo.MARKET_KEY_DISCARD)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_ = json.Unmarshal([]byte(req.Text), &res)
|
||||
return &res, nil
|
||||
}
|
||||
|
||||
func (r *MarketRequest) Query() (*transfer.MarketQueryRes, error) {
|
||||
var res transfer.MarketQueryRes
|
||||
req, err := r.request(vo.MARKET_KEY_QUERY)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_ = json.Unmarshal([]byte(req.Text), &res)
|
||||
return &res, nil
|
||||
}
|
||||
|
|
|
@ -14,6 +14,10 @@ type ZLTXConf struct {
|
|||
Host string
|
||||
}
|
||||
|
||||
type MarketConf struct {
|
||||
Host string
|
||||
}
|
||||
|
||||
type BaseRes struct {
|
||||
Code string `json:"code"`
|
||||
Message string `json:"message"`
|
||||
|
|
|
@ -2,11 +2,11 @@ package vo
|
|||
|
||||
const (
|
||||
//券码生成
|
||||
KEY_SEND = "openApi/v1/market/key/send"
|
||||
MARKET_KEY_SEND = "openApi/v1/market/key/send"
|
||||
|
||||
//券码作废
|
||||
KEY_DISCARD = "openApi/v1/market/key/discard"
|
||||
MARKET_KEY_DISCARD = "openApi/v1/market/key/discard"
|
||||
|
||||
//券码详情
|
||||
KEY_QUERY = "openApi/v1/market/key/query"
|
||||
MARKET_KEY_QUERY = "openApi/v1/market/key/query"
|
||||
)
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"github.com/zeromicro/go-zero/core/stores/redis"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"trasfer_middleware/cmd/rpc/internal/config"
|
||||
"trasfer_middleware/cmd/rpc/internal/logic/po/market"
|
||||
"trasfer_middleware/cmd/rpc/internal/logic/po/zltx"
|
||||
"trasfer_middleware/genModel"
|
||||
"trasfer_middleware/genModel/marketReseller"
|
||||
|
@ -17,6 +18,7 @@ type ServiceContext struct {
|
|||
DbReseller *MarkerReseller
|
||||
|
||||
ZltxOrder *zltx.ZltxOrder
|
||||
Market *market.Market
|
||||
}
|
||||
|
||||
func NewServiceContext(c config.Config) *ServiceContext {
|
||||
|
@ -31,6 +33,7 @@ func NewServiceContext(c config.Config) *ServiceContext {
|
|||
DbWrite: DbModel(c.DB.Slave.DataSource, c),
|
||||
DbReseller: ResellerModel(c.DB.MarketReseller.DataSource, c),
|
||||
ZltxOrder: zltx.NewZltxOrder(c.ZLTX),
|
||||
Market: market.NewMarket(c.Market),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -93,6 +93,7 @@ message MarketKeySendRes {
|
|||
string codeType = 6;
|
||||
}
|
||||
}
|
||||
|
||||
message MarketKeySendReq {
|
||||
string appId = 1;
|
||||
uint64 sign = 2;
|
||||
|
|
|
@ -61,7 +61,7 @@ func VerifyRsaSign(publicKey string, data map[string]interface{}) (map[string]in
|
|||
}
|
||||
|
||||
// MakeRsaSign 生成签名
|
||||
func MakeRsaSign(privateKey string, data map[string]interface{}) (string, error) {
|
||||
func MarketMakeRsaSign(privateKey string, data map[string]interface{}) (string, error) {
|
||||
// 对 sign nonce timestamp appId 升序排序
|
||||
// 使用 xx=aa&yy=bb 的字符串拼接
|
||||
// 营销系统生成的私钥生成签名 RSA2加签
|
||||
|
|
Loading…
Reference in New Issue