proto文件:
syntax = "proto3";
package coupon;
//
//message UnsetUseC2URequest {
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 transId = 4;
// repeated int64 c2uIds = 5;
//}
//
//message UnsetUseC2UReply {
// int64 errCode = 1;
// string errMsg = 2;
// bool result = 3;
//}
//
////检查发送的券是否可撤销
//message CheckCancelSendC2UByTradeRequest{
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 transId = 4;
//}
//
//message CheckCancelSendC2UByTradeReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3; //true表示可以撤销。false表示不可以撤销。
//
//}
//
//// 检查交易发送的券是否可撤销
//message CheckCancelSendC2UByConsumeTradeRequest{
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 transId = 4;
//}
//
//message CheckCancelSendC2UByConsumeTradeReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //true表示可以撤销。false表示不可以撤销
//}
//
//message UidAndTransId{
// int64 uid = 1;
// int64 transId = 2;
//}
//message CheckCancelSendC2UByTradeMultiRequest{
// int64 bid = 1;
// int64 sid = 2;
// repeated UidAndTransId params = 3; //json(array(array('uid'=>, 'transId'=>), ..))
//}
//
//message CheckCancelSendC2UByTradeMultiReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; // json
//}
//message RecoverCouponsByC2uIdsRequest{
// int64 bid = 1;
// int64 uid = 2;
// repeated int64 c2uids = 3;
// string type = 4;
//}
//
//message RecoverCouponsByC2uIdsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3; //true表示注销成功,false表示注销失败
//}
//
//message UpdateC2URequest{
// int64 bid = 1;
// int64 uid = 2;
// string data = 3; //json
// string conditions = 4; //json
//}
//message UpdateC2UReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3; //true表示操作成功
//}
//
//// 添加券账户信息
//message AddC2URequest{
// int64 bid = 1;
// int64 uid = 2;
// string data = 3; //json
// string shardKey = 4; //json 可能是无用的 bhy
//}
//
//message AddC2UReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3; //true表示操作成功
//}
//
////删除券账户信息
//message DeleteC2URequest{
// int64 bid = 1;
// int64 uid = 2;
// string conditions = 3; //json
//}
//
//message DeleteC2UReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3; //true表示操作成功
//}
//
////根据条件获取券账户
//message ListC2UByConditionsRequest{
// int64 bid = 1;
// int64 uid = 2;
// string conditions = 3; //json
//}
//
//message ListC2UByConditionsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //json
//}
//
////从mysql 获取券账户
//message ListC2UByMySQLRequest{
// string conditions = 1; //json
// string pageOptions = 2; //json
// string order = 3; //json
// repeated string fields = 4; //fields
//}
//
//message ListC2UByMySQLReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //json
//}
//
//message ListC2UFutureCanUseRequest{
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 cType = 4;
// string pageOptions = 5; //json
// bool isMerge = 6;
//}
//
//message ListC2UFutureCanUseReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //json
//}
//
//message ListC2UFutureCanUseForPosRequest{
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 cType = 4;
// string pageOptions = 5; //json
// bool isMerge = 6;
//}
//
//message ListC2UFutureCanUseForPosReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //json
//}
//
//message GetC2uForPosConsumeRequest{
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// string pageOptions = 4; //json
//}
//
//message GetC2uForPosConsumeReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //json
//}
//
//message UserGetCouponRequest {
// int64 bid = 1;
// int64 uid = 2;
// string data = 3; //json
//}
//
//message UserGetCouponReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //json
//}
//
//message IsCouponSendComplateRequest {
// int64 bid = 1;
// int64 uid = 2;
// string aids = 3; //json
//}
//
//message IsCouponSendComplateReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message UserCanUseConditionsRequest{
// int64 bid = 1;
// int64 uid = 2;
// string conditions = 3; //json
// string order = 4; //json
// string pageOptions = 5; //json
// bool isMerge = 6;
//}
//
//message UserCanUseConditionsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //json
//}
//
//message UserOverCouponRequest{
// int64 bid = 1;
// int64 uid = 2;
// string conditions = 3; //json
// string pageOptions = 4; //json
//}
//
//message UserOverCouponReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3; //json
//}
//
//message UpdateCouponRequest{
// int64 bid = 1;
// int64 couponId = 2;
// string couponData = 3; //json
//}
//
//message UpdateCouponReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message DeleteCouponRequest{
// int64 bid = 1;
// int64 couponId = 2;
//}
//
//message DeleteCouponReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message ListAllCouponByConditionsRequest{
// int64 bid = 1;
// string conditions = 2; //json
// string pageOptions = 3; //json
// string order = 4; //json
// string fields = 5; //fields
// int64 sid = 6;
//}
//
//message ListAllCouponByConditionsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message CountCouponNumsRequest{
// int64 bid = 1;
// int64 cType = 2;
// string cName = 3;
// int64 sid = 4;
//}
//
//message CountCouponNumsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// int64 result = 3;
//}
//
//message CouponQuoteByActivityRequest{
// int64 bid = 1;
// int64 aid = 2;
// repeated int64 couponids = 3;
//}
//
//message CouponQuoteByActivityReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message CouponUnquoteByActivityRequest{
// int64 bid = 1;
// int64 aid = 2;
// repeated int64 couponids = 3;
//}
//
//message CouponUnquoteByActivityReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message ListCouponsByCouponIdsRequest{
// int64 bid = 1;
// repeated int64 couponIds = 2;
//}
//message ListCouponsByCouponIdsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3;
//}
//
//message UseMassCouponRequest{
// int64 bid = 1;
// string data = 2; //json
// string condition = 3; //json
//}
//
//message UseMassCouponReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message AddPackRequest{
// string coupon = 1; //json
// string subCoupons = 2; //json
//}
//
//message AddPackReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message UpdatePackRequest{
// int64 bid = 1;
// int64 packId = 2;
// string couponData = 3; //json
//}
//
//message UpdatePackReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message checkSubCouponsRequest{
// int64 bid = 1;
// int64 packId = 2;
// string couponIdArray = 3; //json
//}
//
//message checkSubCouponsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3;
//}
//
//message DeletePackRequest{
// int64 bid = 1;
// int64 packId = 2;
//}
//
//message DeletePackReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message PackRefreshSubCouponsRequest{
// int64 bid = 1;
// int64 packId = 2;
//}
//
//message PackRefreshSubCouponsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3;
//}
//
//message ListCouponByConditionsRequest{
// string conditions = 1;
// string pageOptions = 2;
// string order = 3;
// string fields = 4;
//}
//
//message ListCouponByConditionsReply{
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3;
//}
//
//// 查询当前用户所有的优惠券列表(相同券需要合并)
//message ListC2URequest {
// int64 bid = 1;
// int64 uid = 2;
// string conditions = 3; //查询条件json字符串,php调用传json
//
//}
//
//message ListC2UReply {
// int64 errCode = 1;
// string errMsg = 2;
// string result = 3; //券账户字段json字符串,php调用的时候解析json
//}
//
//// 查询当前用户所有可用的优惠券列表
//message ListC2UCanUseRequest {
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 cType = 4;
// string pageOptions = 5; //php 传递 json
// bool isMerge = 6;
// int64 aid = 7;
// string from = 8;
// bool allNotUse = 9;
//}
//
//message ListC2UCanUseReply {
// int64 errCode = 1;
// string errMsg = 2;
// string result = 3; //券账户字段json字符串,php调用的时候解析json
//}
//
//// 根据状态参数查询当前用户优惠券列表
//message ListC2UCurrentCouponsRequest {
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 cType = 4;
// string pageOptions = 5; //php 传递 json
// bool isMerge = 6;
// int64 aid = 7;
// string from = 8;
// bool allNotUse = 9;
// int32 useStatus = 10;
//}
//
//message ListC2UCurrentCouponsReply {
// int64 errCode = 1;
// string errMsg = 2;
// string result = 3; //券账户字段json字符串,php调用的时候解析json
//}
//
//// 通过c2uIds 拉取用户账户信息
//message ListC2UByC2UIdsRequest {
// int64 bid = 1;
// int64 uid = 2;
// repeated int64 c2uIds = 3;
//}
//
//message ListC2UByC2UIdsReply {
// int64 errCode = 1;
// string errMsg = 2;
// string result = 3;
//}
message CouponInfo{
int64 CouponId = 1;
int64 CouponNum = 2;
string Code = 3;
}
message SendCouponRequest {
int64 bid = 1;
int64 aid = 2;
int64 sid = 3;
int64 transId = 4;
bool fromJob =5;
repeated int64 uids = 6;
repeated CouponInfo couponids = 7;
int64 obid = 8; // 默认0
bool isBag = 9; // 是否券包
}
message BoolReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
//
////消费使用券
//message UseC2URequest {
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 transId = 4;
// repeated int64 c2uIds = 5;
// string tradeType = 6;
//
//}
//
//message UseC2UReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3;
//}
//
////撤销发送券
//message CancelSendC2UByTradeRequest {
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 transId = 4;
// string delType = 5;
// int64 couponsNum = 6;
// int64 sourceType = 7;
// int64 repealTcId = 8;
//
//}
//
//message CancelSendC2UByTradeReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3;
//}
//
////合并用户的券帐户
//message MergeCouponAccountRequest {
// int64 bid = 1;
// int64 fromUid = 2;
// int64 toUid = 3;
// int64 mid = 4;
//}
//
//message MergeCouponAccountReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// int32 result = 3;
//}
//
//message RedisC2USelectRequest {
// int64 bid = 1;
// string c2uKey = 2;
// string fields = 3;
// string conditions = 4;
//}
//
//message RedisC2USelectReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3;
//}
//
//message RedisC2UUpdateRequest {
// int64 bid = 1;
// string c2uKey = 2;
// string data = 3;
// string conditions = 4;
//}
//
//message RedisC2UUpdateReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message RedisC2URemoveRequest {
// int64 bid = 1;
// string c2uKey = 2;
// string conditions = 3;
//}
//
//message RedisC2URemoveReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
////添加数据
//message RedisC2UAddRequest {
// int64 bid = 1;
// string c2uKey = 2;
// string data = 3;
// string conditions = 4;
//}
//
//message RedisC2UAddReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
////券模板redis获取
//message RedisSelectCouponRequest {
// int64 bid = 1;
// string fields = 2;
// string conditions = 3;
//}
//
//message RedisSelectCouponReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// string result = 3;
//}
//
//message RedisUpdateCouponRequest {
// int64 bid = 1;
// string data = 2;
// string conditions = 3;
//}
//
//message RedisUpdateCouponReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
//message RedisRemoveCouponRequest {
// int64 bid = 1;
// string conditions = 2;
//}
//
//message RedisRemoveCouponReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
////添加数据
//message RedisAddCouponRequest {
// int64 bid = 1;
// string data = 2;
// string conditions = 3;
//}
//
//message RedisAddCouponReply {
// int64 errCode = 1; //0值表示调用接口成功
// string errMsg = 2;
// bool result = 3;
//}
//
service coupon {
//
// // 撤销消费使用券
// rpc UnsetUseC2U (UnsetUseC2URequest) returns (UnsetUseC2UReply) {}
//
// // 检查发送的券是否可撤销
// rpc CheckCancelSendC2UByTrade(CheckCancelSendC2UByTradeRequest) returns (CheckCancelSendC2UByTradeReply) {}
//
// // 查询当前用户所有的优惠券列表(相同券需要合并)
// rpc ListC2U (ListC2URequest) returns (ListC2UReply) {}
//
// // 查询当前用户所有可用的优惠券列表
// rpc ListC2UCanUse (ListC2UCanUseRequest) returns (ListC2UCanUseReply) {}
//
// // 通过c2uIds 拉取用户账户信息
// rpc ListC2UByC2UIds(ListC2UByC2UIdsRequest) returns (ListC2UByC2UIdsReply) {}
//
// // 检查交易发送的券是否可撤销
// rpc CheckCancelSendC2UByConsumeTrade (CheckCancelSendC2UByConsumeTradeRequest) returns (CheckCancelSendC2UByConsumeTradeReply) {}
//
// // 检查发送的券是否可撤销
// rpc CheckCancelSendC2UByTradeMulti (CheckCancelSendC2UByTradeMultiRequest) returns (CheckCancelSendC2UByTradeMultiReply) {}
//
// // 从指定用户账户中收回指定券 - 已使用的券无法被收回,将自动跳过
// rpc RecoverCouponsByC2uIds (RecoverCouponsByC2uIdsRequest) returns (RecoverCouponsByC2uIdsReply) {}
//
// // 更新券账户信息
// rpc UpdateC2U (UpdateC2URequest) returns (UpdateC2UReply) {}
//
// // 添加券账户信息
// rpc AddC2U (AddC2URequest) returns (AddC2UReply) {}
//
// // 删除券账户
// rpc DeleteC2U (DeleteC2URequest) returns (DeleteC2UReply) {}
//
// // 根据条件获取券账户
// rpc ListC2UByConditions (ListC2UByConditionsRequest) returns (ListC2UByConditionsReply) {}
//
// // 根据条件获取券账户 从mysql 直接获取
// rpc ListC2UByMySQL (ListC2UByMySQLRequest) returns (ListC2UByMySQLReply) {}
//
// // 查询当前用户所有未来可用的优惠券列表
// rpc ListC2UFutureCanUse (ListC2UFutureCanUseRequest) returns (ListC2UFutureCanUseReply) {}
//
// // 查询当前用户所有未来可用的优惠券列表
// rpc ListC2UFutureCanUseForPos (ListC2UFutureCanUseForPosRequest) returns (ListC2UFutureCanUseForPosReply) {}
//
// // 软pos消费页面Pos_ConsumeController的indexAction调用的方法
// rpc GetC2uForPosConsume (GetC2uForPosConsumeRequest) returns (GetC2uForPosConsumeReply) {}
//
// // 用户领取卡券
// rpc UserGetCoupon (UserGetCouponRequest) returns (UserGetCouponReply) {}
//
// // 查看券包有没有发完
// rpc IsCouponSendComplate(IsCouponSendComplateRequest) returns (IsCouponSendComplateReply) {}
// // 查询当前用户所有可用的优惠券搜索
// rpc UserCanUseConditions (UserCanUseConditionsRequest) returns (UserCanUseConditionsReply) {}
// //userOverCoupon
// rpc UserOverCoupon (UserOverCouponRequest) returns (UserOverCouponReply) {}
//
// //coupon:更新券模板
// rpc UpdateCoupon (UpdateCouponRequest) returns (UpdateCouponReply) {}
//
// //coupon:删除券模板
// rpc DeleteCoupon (DeleteCouponRequest) returns (DeleteCouponReply) {}
//
// //coupon:根据条件获取
// rpc ListAllCouponByConditions(ListAllCouponByConditionsRequest) returns (ListAllCouponByConditionsReply) {}
//
// //coupon: 统计优惠券数量
// rpc CountCouponNums (CountCouponNumsRequest) returns (CountCouponNumsReply) {}
//
// //coupon:券被活动引用(优惠券cAids字段增加该活动aid) 支持券包,如果是券包,将券包下的子券也标记为引用
// rpc CouponQuoteByActivity(CouponQuoteByActivityRequest) returns(CouponQuoteByActivityReply) {}
// //coupon:券被活动取消引用 支持券包,如果是券包,将券包下的子券也取消引用
// rpc CouponUnquoteByActivity(CouponUnquoteByActivityRequest) returns(CouponUnquoteByActivityReply) {}
//
// //coupon: 根据couponIds获取券
// rpc ListCouponsByCouponIds (ListCouponsByCouponIdsRequest) returns (ListCouponsByCouponIdsReply) {}
//
// //coupon:useMassCoupon
// rpc UseMassCoupon (UseMassCouponRequest) returns (UseMassCouponReply) {}
//
// //coupon: 创建卡包
// rpc AddPack(AddPackRequest) returns (AddPackReply) {}
//
// //coupon: 更新卡包
// rpc UpdatePack (UpdatePackRequest) returns (UpdatePackReply) {}
//
// //coupon:检查子券
// rpc CheckSubCoupons (checkSubCouponsRequest) returns (checkSubCouponsReply) {}
//
// //coupon:删除卡包
// rpc DeletePack (DeletePackRequest) returns (DeletePackReply) {}
//
// //coupon:刷新券包下的券
// rpc PackRefreshSubCoupons (PackRefreshSubCouponsRequest) returns (PackRefreshSubCouponsReply) {}
//
// //coupon:根据条件获取
// rpc ListCouponByConditions (ListCouponByConditionsRequest) returns (ListCouponByConditionsReply) {}
//
// SendCoupon : 发券
rpc SendCoupon (SendCouponRequest) returns (BoolReply);
//
// //UseC2U 消费使用券
// rpc UseC2U (UseC2URequest) returns (UseC2UReply) {}
//
// //CancelSendC2UByTrade 撤销发送券
// rpc CancelSendC2UByTrade (CancelSendC2UByTradeRequest) returns (CancelSendC2UByTradeReply) {}
//
// //合并用户的券帐户
// rpc MergeCouponAccount (MergeCouponAccountRequest) returns (MergeCouponAccountReply) {}
//
// //redis添加券账户
// rpc RedisC2UAdd(RedisC2UAddRequest) returns (RedisC2UAddReply) {}
//
// //redis查询券账户
// rpc RedisC2USelect(RedisC2USelectRequest) returns (RedisC2USelectReply) {}
//
// //redis更新券账户
// rpc RedisC2UUpdate(RedisC2UUpdateRequest) returns (RedisC2UUpdateReply) {}
//
// //redis删除券账户
// rpc RedisC2URemove(RedisC2URemoveRequest) returns (RedisC2URemoveReply) {}
//
// // 根据状态查询当前用户的优惠券列表
// rpc ListC2UCurrentCoupons(ListC2UCurrentCouponsRequest) returns (ListC2UCurrentCouponsReply) {}
//
// //券模板获取
// rpc RedisSelectCoupon(RedisSelectCouponRequest) returns (RedisSelectCouponReply) {}
//
// //券模板更新
// rpc RedisUpdateCoupon(RedisUpdateCouponRequest) returns (RedisUpdateCouponReply) {}
//
// //券模板删除
// rpc RedisRemoveCoupon(RedisRemoveCouponRequest) returns (RedisRemoveCouponReply) {}
//
// //券模板添加
// rpc RedisAddCoupon(RedisAddCouponRequest) returns (RedisAddCouponReply) {}
//
//
}
命令行,生成python rpc架构文件:
python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. coupon.proto
生成后的两个文件:
coupon_pb2.py
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: coupon.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='coupon.proto',
package='coupon',
syntax='proto3',
serialized_pb=_b('
x0cx63oupon.protox12x06x63oupon"?
CouponInfox12x10
x08x43ouponIdx18x01 x01(x03x12x11
CouponNumx18x02 x01(x03x12x0c
x04x43odex18x03 x01( "xaex01
x11SendCouponRequestx12x0b
x03x62idx18x01 x01(x03x12x0b
x03x61idx18x02 x01(x03x12x0b
x03sidx18x03 x01(x03x12x0f
x07transIdx18x04 x01(x03x12x0f
x07x66romJobx18x05 x01(x08x12x0c
x04uidsx18x06 x03(x03x12%
couponidsx18x07 x03(x0bx32x12.coupon.CouponInfox12x0c
x04obidx18x08 x01(x03x12
x05isBagx18 x01(x08"<
BoolReplyx12x0f
x07x65rrCodex18x01 x01(x03x12x0e
x06x65rrMsgx18x02 x01( x12x0e
x06resultx18x03 x01(x08x32x44
x06x63ouponx12:
SendCouponx12x19.coupon.SendCouponRequestx1ax11.coupon.BoolReplybx06proto3')
)
_COUPONINFO = _descriptor.Descriptor(
name='CouponInfo',
full_name='coupon.CouponInfo',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='CouponId', full_name='coupon.CouponInfo.CouponId', index=0,
number=1, type=3, cpp_type=2, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='CouponNum', full_name='coupon.CouponInfo.CouponNum', index=1,
number=2, type=3, cpp_type=2, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='Code', full_name='coupon.CouponInfo.Code', index=2,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=24,
serialized_end=87,
)
_SENDCOUPONREQUEST = _descriptor.Descriptor(
name='SendCouponRequest',
full_name='coupon.SendCouponRequest',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='bid', full_name='coupon.SendCouponRequest.bid', index=0,
number=1, type=3, cpp_type=2, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='aid', full_name='coupon.SendCouponRequest.aid', index=1,
number=2, type=3, cpp_type=2, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='sid', full_name='coupon.SendCouponRequest.sid', index=2,
number=3, type=3, cpp_type=2, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='transId', full_name='coupon.SendCouponRequest.transId', index=3,
number=4, type=3, cpp_type=2, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='fromJob', full_name='coupon.SendCouponRequest.fromJob', index=4,
number=5, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='uids', full_name='coupon.SendCouponRequest.uids', index=5,
number=6, type=3, cpp_type=2, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='couponids', full_name='coupon.SendCouponRequest.couponids', index=6,
number=7, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='obid', full_name='coupon.SendCouponRequest.obid', index=7,
number=8, type=3, cpp_type=2, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='isBag', full_name='coupon.SendCouponRequest.isBag', index=8,
number=9, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=90,
serialized_end=264,
)
_BOOLREPLY = _descriptor.Descriptor(
name='BoolReply',
full_name='coupon.BoolReply',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='errCode', full_name='coupon.BoolReply.errCode', index=0,
number=1, type=3, cpp_type=2, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='errMsg', full_name='coupon.BoolReply.errMsg', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='result', full_name='coupon.BoolReply.result', index=2,
number=3, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=266,
serialized_end=326,
)
_SENDCOUPONREQUEST.fields_by_name['couponids'].message_type = _COUPONINFO
DESCRIPTOR.message_types_by_name['CouponInfo'] = _COUPONINFO
DESCRIPTOR.message_types_by_name['SendCouponRequest'] = _SENDCOUPONREQUEST
DESCRIPTOR.message_types_by_name['BoolReply'] = _BOOLREPLY
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
CouponInfo = _reflection.GeneratedProtocolMessageType('CouponInfo', (_message.Message,), dict(
DESCRIPTOR = _COUPONINFO,
__module__ = 'coupon_pb2'
# @@protoc_insertion_point(class_scope:coupon.CouponInfo)
))
_sym_db.RegisterMessage(CouponInfo)
SendCouponRequest = _reflection.GeneratedProtocolMessageType('SendCouponRequest', (_message.Message,), dict(
DESCRIPTOR = _SENDCOUPONREQUEST,
__module__ = 'coupon_pb2'
# @@protoc_insertion_point(class_scope:coupon.SendCouponRequest)
))
_sym_db.RegisterMessage(SendCouponRequest)
BoolReply = _reflection.GeneratedProtocolMessageType('BoolReply', (_message.Message,), dict(
DESCRIPTOR = _BOOLREPLY,
__module__ = 'coupon_pb2'
# @@protoc_insertion_point(class_scope:coupon.BoolReply)
))
_sym_db.RegisterMessage(BoolReply)
_COUPON = _descriptor.ServiceDescriptor(
name='coupon',
full_name='coupon.coupon',
file=DESCRIPTOR,
index=0,
options=None,
serialized_start=328,
serialized_end=396,
methods=[
_descriptor.MethodDescriptor(
name='SendCoupon',
full_name='coupon.coupon.SendCoupon',
index=0,
containing_service=None,
input_type=_SENDCOUPONREQUEST,
output_type=_BOOLREPLY,
options=None,
),
])
_sym_db.RegisterServiceDescriptor(_COUPON)
DESCRIPTOR.services_by_name['coupon'] = _COUPON
# @@protoc_insertion_point(module_scope)
coupon_pb2_grpc.py
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
import grpc
import coupon_pb2 as coupon__pb2
class couponStub(object):
"""
//消费使用券
message UseC2URequest {
int64 bid = 1;
int64 uid = 2;
int64 sid = 3;
int64 transId = 4;
repeated int64 c2uIds = 5;
string tradeType = 6;
}
message UseC2UReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
string result = 3;
}
//撤销发送券
message CancelSendC2UByTradeRequest {
int64 bid = 1;
int64 uid = 2;
int64 sid = 3;
int64 transId = 4;
string delType = 5;
int64 couponsNum = 6;
int64 sourceType = 7;
int64 repealTcId = 8;
}
message CancelSendC2UByTradeReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
string result = 3;
}
//合并用户的券帐户
message MergeCouponAccountRequest {
int64 bid = 1;
int64 fromUid = 2;
int64 toUid = 3;
int64 mid = 4;
}
message MergeCouponAccountReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
int32 result = 3;
}
message RedisC2USelectRequest {
int64 bid = 1;
string c2uKey = 2;
string fields = 3;
string conditions = 4;
}
message RedisC2USelectReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
string result = 3;
}
message RedisC2UUpdateRequest {
int64 bid = 1;
string c2uKey = 2;
string data = 3;
string conditions = 4;
}
message RedisC2UUpdateReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
message RedisC2URemoveRequest {
int64 bid = 1;
string c2uKey = 2;
string conditions = 3;
}
message RedisC2URemoveReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
//添加数据
message RedisC2UAddRequest {
int64 bid = 1;
string c2uKey = 2;
string data = 3;
string conditions = 4;
}
message RedisC2UAddReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
//券模板redis获取
message RedisSelectCouponRequest {
int64 bid = 1;
string fields = 2;
string conditions = 3;
}
message RedisSelectCouponReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
string result = 3;
}
message RedisUpdateCouponRequest {
int64 bid = 1;
string data = 2;
string conditions = 3;
}
message RedisUpdateCouponReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
message RedisRemoveCouponRequest {
int64 bid = 1;
string conditions = 2;
}
message RedisRemoveCouponReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
//添加数据
message RedisAddCouponRequest {
int64 bid = 1;
string data = 2;
string conditions = 3;
}
message RedisAddCouponReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
"""
def __init__(self, channel):
"""Constructor.
Args:
channel: A grpc.Channel.
"""
self.SendCoupon = channel.unary_unary(
'/coupon.coupon/SendCoupon',
request_serializer=coupon__pb2.SendCouponRequest.SerializeToString,
response_deserializer=coupon__pb2.BoolReply.FromString,
)
class couponServicer(object):
"""
//消费使用券
message UseC2URequest {
int64 bid = 1;
int64 uid = 2;
int64 sid = 3;
int64 transId = 4;
repeated int64 c2uIds = 5;
string tradeType = 6;
}
message UseC2UReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
string result = 3;
}
//撤销发送券
message CancelSendC2UByTradeRequest {
int64 bid = 1;
int64 uid = 2;
int64 sid = 3;
int64 transId = 4;
string delType = 5;
int64 couponsNum = 6;
int64 sourceType = 7;
int64 repealTcId = 8;
}
message CancelSendC2UByTradeReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
string result = 3;
}
//合并用户的券帐户
message MergeCouponAccountRequest {
int64 bid = 1;
int64 fromUid = 2;
int64 toUid = 3;
int64 mid = 4;
}
message MergeCouponAccountReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
int32 result = 3;
}
message RedisC2USelectRequest {
int64 bid = 1;
string c2uKey = 2;
string fields = 3;
string conditions = 4;
}
message RedisC2USelectReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
string result = 3;
}
message RedisC2UUpdateRequest {
int64 bid = 1;
string c2uKey = 2;
string data = 3;
string conditions = 4;
}
message RedisC2UUpdateReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
message RedisC2URemoveRequest {
int64 bid = 1;
string c2uKey = 2;
string conditions = 3;
}
message RedisC2URemoveReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
//添加数据
message RedisC2UAddRequest {
int64 bid = 1;
string c2uKey = 2;
string data = 3;
string conditions = 4;
}
message RedisC2UAddReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
//券模板redis获取
message RedisSelectCouponRequest {
int64 bid = 1;
string fields = 2;
string conditions = 3;
}
message RedisSelectCouponReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
string result = 3;
}
message RedisUpdateCouponRequest {
int64 bid = 1;
string data = 2;
string conditions = 3;
}
message RedisUpdateCouponReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
message RedisRemoveCouponRequest {
int64 bid = 1;
string conditions = 2;
}
message RedisRemoveCouponReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
//添加数据
message RedisAddCouponRequest {
int64 bid = 1;
string data = 2;
string conditions = 3;
}
message RedisAddCouponReply {
int64 errCode = 1; //0值表示调用接口成功
string errMsg = 2;
bool result = 3;
}
"""
def SendCoupon(self, request, context):
"""
// 撤销消费使用券
rpc UnsetUseC2U (UnsetUseC2URequest) returns (UnsetUseC2UReply) {}
// 检查发送的券是否可撤销
rpc CheckCancelSendC2UByTrade(CheckCancelSendC2UByTradeRequest) returns (CheckCancelSendC2UByTradeReply) {}
// 查询当前用户所有的优惠券列表(相同券需要合并)
rpc ListC2U (ListC2URequest) returns (ListC2UReply) {}
// 查询当前用户所有可用的优惠券列表
rpc ListC2UCanUse (ListC2UCanUseRequest) returns (ListC2UCanUseReply) {}
// 通过c2uIds 拉取用户账户信息
rpc ListC2UByC2UIds(ListC2UByC2UIdsRequest) returns (ListC2UByC2UIdsReply) {}
// 检查交易发送的券是否可撤销
rpc CheckCancelSendC2UByConsumeTrade (CheckCancelSendC2UByConsumeTradeRequest) returns (CheckCancelSendC2UByConsumeTradeReply) {}
// 检查发送的券是否可撤销
rpc CheckCancelSendC2UByTradeMulti (CheckCancelSendC2UByTradeMultiRequest) returns (CheckCancelSendC2UByTradeMultiReply) {}
// 从指定用户账户中收回指定券 - 已使用的券无法被收回,将自动跳过
rpc RecoverCouponsByC2uIds (RecoverCouponsByC2uIdsRequest) returns (RecoverCouponsByC2uIdsReply) {}
// 更新券账户信息
rpc UpdateC2U (UpdateC2URequest) returns (UpdateC2UReply) {}
// 添加券账户信息
rpc AddC2U (AddC2URequest) returns (AddC2UReply) {}
// 删除券账户
rpc DeleteC2U (DeleteC2URequest) returns (DeleteC2UReply) {}
// 根据条件获取券账户
rpc ListC2UByConditions (ListC2UByConditionsRequest) returns (ListC2UByConditionsReply) {}
// 根据条件获取券账户 从mysql 直接获取
rpc ListC2UByMySQL (ListC2UByMySQLRequest) returns (ListC2UByMySQLReply) {}
// 查询当前用户所有未来可用的优惠券列表
rpc ListC2UFutureCanUse (ListC2UFutureCanUseRequest) returns (ListC2UFutureCanUseReply) {}
// 查询当前用户所有未来可用的优惠券列表
rpc ListC2UFutureCanUseForPos (ListC2UFutureCanUseForPosRequest) returns (ListC2UFutureCanUseForPosReply) {}
// 软pos消费页面Pos_ConsumeController的indexAction调用的方法
rpc GetC2uForPosConsume (GetC2uForPosConsumeRequest) returns (GetC2uForPosConsumeReply) {}
// 用户领取卡券
rpc UserGetCoupon (UserGetCouponRequest) returns (UserGetCouponReply) {}
// 查看券包有没有发完
rpc IsCouponSendComplate(IsCouponSendComplateRequest) returns (IsCouponSendComplateReply) {}
// 查询当前用户所有可用的优惠券搜索
rpc UserCanUseConditions (UserCanUseConditionsRequest) returns (UserCanUseConditionsReply) {}
//userOverCoupon
rpc UserOverCoupon (UserOverCouponRequest) returns (UserOverCouponReply) {}
//coupon:更新券模板
rpc UpdateCoupon (UpdateCouponRequest) returns (UpdateCouponReply) {}
//coupon:删除券模板
rpc DeleteCoupon (DeleteCouponRequest) returns (DeleteCouponReply) {}
//coupon:根据条件获取
rpc ListAllCouponByConditions(ListAllCouponByConditionsRequest) returns (ListAllCouponByConditionsReply) {}
//coupon: 统计优惠券数量
rpc CountCouponNums (CountCouponNumsRequest) returns (CountCouponNumsReply) {}
//coupon:券被活动引用(优惠券cAids字段增加该活动aid) 支持券包,如果是券包,将券包下的子券也标记为引用
rpc CouponQuoteByActivity(CouponQuoteByActivityRequest) returns(CouponQuoteByActivityReply) {}
//coupon:券被活动取消引用 支持券包,如果是券包,将券包下的子券也取消引用
rpc CouponUnquoteByActivity(CouponUnquoteByActivityRequest) returns(CouponUnquoteByActivityReply) {}
//coupon: 根据couponIds获取券
rpc ListCouponsByCouponIds (ListCouponsByCouponIdsRequest) returns (ListCouponsByCouponIdsReply) {}
//coupon:useMassCoupon
rpc UseMassCoupon (UseMassCouponRequest) returns (UseMassCouponReply) {}
//coupon: 创建卡包
rpc AddPack(AddPackRequest) returns (AddPackReply) {}
//coupon: 更新卡包
rpc UpdatePack (UpdatePackRequest) returns (UpdatePackReply) {}
//coupon:检查子券
rpc CheckSubCoupons (checkSubCouponsRequest) returns (checkSubCouponsReply) {}
//coupon:删除卡包
rpc DeletePack (DeletePackRequest) returns (DeletePackReply) {}
//coupon:刷新券包下的券
rpc PackRefreshSubCoupons (PackRefreshSubCouponsRequest) returns (PackRefreshSubCouponsReply) {}
//coupon:根据条件获取
rpc ListCouponByConditions (ListCouponByConditionsRequest) returns (ListCouponByConditionsReply) {}
SendCoupon : 发券
//UseC2U 消费使用券
rpc UseC2U (UseC2URequest) returns (UseC2UReply) {}
//CancelSendC2UByTrade 撤销发送券
rpc CancelSendC2UByTrade (CancelSendC2UByTradeRequest) returns (CancelSendC2UByTradeReply) {}
//合并用户的券帐户
rpc MergeCouponAccount (MergeCouponAccountRequest) returns (MergeCouponAccountReply) {}
//redis添加券账户
rpc RedisC2UAdd(RedisC2UAddRequest) returns (RedisC2UAddReply) {}
//redis查询券账户
rpc RedisC2USelect(RedisC2USelectRequest) returns (RedisC2USelectReply) {}
//redis更新券账户
rpc RedisC2UUpdate(RedisC2UUpdateRequest) returns (RedisC2UUpdateReply) {}
//redis删除券账户
rpc RedisC2URemove(RedisC2URemoveRequest) returns (RedisC2URemoveReply) {}
// 根据状态查询当前用户的优惠券列表
rpc ListC2UCurrentCoupons(ListC2UCurrentCouponsRequest) returns (ListC2UCurrentCouponsReply) {}
//券模板获取
rpc RedisSelectCoupon(RedisSelectCouponRequest) returns (RedisSelectCouponReply) {}
//券模板更新
rpc RedisUpdateCoupon(RedisUpdateCouponRequest) returns (RedisUpdateCouponReply) {}
//券模板删除
rpc RedisRemoveCoupon(RedisRemoveCouponRequest) returns (RedisRemoveCouponReply) {}
//券模板添加
rpc RedisAddCoupon(RedisAddCouponRequest) returns (RedisAddCouponReply) {}
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')
def add_couponServicer_to_server(servicer, server):
rpc_method_handlers = {
'SendCoupon': grpc.unary_unary_rpc_method_handler(
servicer.SendCoupon,
request_deserializer=coupon__pb2.SendCouponRequest.FromString,
response_serializer=coupon__pb2.BoolReply.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
'coupon.coupon', rpc_method_handlers)
server.add_generic_rpc_handlers((generic_handler,))
自己新建一个文件,来调用接口:
# -*- coding: utf-8 -*-
import grpc
import coupon_pb2,coupon_pb2_grpc
_HOST = '60.205.x.x'
_PORT = '28083'
def run():
conn = grpc.insecure_channel(_HOST + ':' + _PORT,)
client = coupon_pb2_grpc.couponStub(channel=conn)
#couponInfo是个数组结构体
info = coupon_pb2.CouponInfo()
info.CouponId = 12345692#1 券模版id
info.CouponNum = 1 #发券数量
#1061693987532739
args = coupon_pb2.SendCouponRequest()
args.bid = 1991243684#2589123516
args.aid = 11111111
args.sid = 3691394527#222
args.uids.append(31609394374409511) #因uids是数组,所以这里单个要用append增加值,多个用extend([111,3333])
args.couponids.extend([info]) #info是个结构体
print(args)
response = client.SendCoupon(args)
print(response.errCode) #正确,返回0
print(response.errMsg)
if __name__ == '__main__':
run()
输出结果:
D:python36python3.exe D:/untitled4/sendCoupon-grpc.py
bid: 1991243684
aid: 11111111
sid: 3691394527
uids: 31609394374409511
couponids {
CouponId: 12345692
CouponNum: 1
}
0
Process finished with exit code 0