Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
load(
"@io_bazel_rules_go//proto:def.bzl",
"go_proto_library",
)
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
proto_library(
name = "model_proto",
srcs = ["coupon.proto"],
tags = ["automanaged"],
deps = ["@gogo_special_proto//github.com/gogo/protobuf/gogoproto"],
)
go_proto_library(
name = "model_go_proto",
compilers = ["@io_bazel_rules_go//proto:gogofast_proto"],
importpath = "go-common/app/service/main/coupon/model",
proto = ":model_proto",
tags = ["automanaged"],
deps = [
"//library/time:go_default_library",
"@com_github_gogo_protobuf//gogoproto:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = [
"code.go",
"coupon.go",
"model.go",
"order.go",
"param.go",
"rpc.go",
],
embed = [":model_go_proto"],
importpath = "go-common/app/service/main/coupon/model",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//library/time:go_default_library",
"@com_github_gogo_protobuf//gogoproto:go_default_library",
"@com_github_golang_protobuf//proto:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,45 @@
package model
// CouponCode coupon code.
type CouponCode struct {
ID int64
BatchToken string
State int32
Code string
Mid int64
CouponType int32
CouponToken string
Ver int64
}
//Token get token .
type Token struct {
Token string `json:"token"`
URL string `json:"url"`
}
// ArgUseCouponCode arg use coupon code.
type ArgUseCouponCode struct {
Token string `form:"token" validate:"required"`
Code string `form:"code" validate:"required"`
Verify string `form:"verify" validate:"required"`
IP string
Mid int64
}
// UseCouponCodeResp use coupon code resp.
type UseCouponCodeResp struct {
CouponToken string `json:"coupon_token"`
CouponAmount float64 `json:"coupon_amount"`
FullAmount float64 `json:"full_amount"`
PlatfromLimitExplain string `json:"platfrom_limit_explain"`
ProductLimitMonth int32 `json:"product_limit_month"`
ProductLimitRenewal int32 `json:"product_limit_renewal"`
}
// coupon code state.
const (
CodeStateNotUse = iota + 1
CodeStateUsed
CodeStateBlock
)

View File

@@ -0,0 +1,277 @@
package model
import (
"fmt"
"strings"
"go-common/library/time"
)
// coupon_batch_info表 product_limit_renewal字段.
const (
ProdLimRenewalAll int8 = iota
ProdLimRenewalAuto
ProdLimRenewalNotAuto
)
// coupon_batch_info表 product_limit_renewal字段.
const (
None int8 = 0
ProdLimMonth1 = 1
ProdLimMonth3 = 3
ProdLimMonth12 = 12
)
const (
// CardSalt .
CardSalt = "7RbjA6mpSz9DYQ0n"
)
// CardType table:coupon_user_card field:card_type
const (
CardType1 int8 = iota
CardType3
CardType12
)
// CardState table:coupon_user_card field:state
const (
CardStateNotOpen int8 = iota
CardStateOpened
CardStateUsed
)
// product limit map .
var (
ProdLimMonthMap = map[int8]string{None: "", ProdLimMonth1: "月度", ProdLimMonth3: "季度", ProdLimMonth12: "年度"}
ProdLimRenewalMap = map[int8]string{ProdLimRenewalAll: "", ProdLimRenewalAuto: "自动续期", ProdLimRenewalNotAuto: "非自动续期"}
)
// MapFullAmount .
var MapFullAmount = map[int8]float64{
CardType1: 25,
CardType3: 68,
CardType12: 233,
}
// CouponChangeLog coupon change log.
type CouponChangeLog struct {
ID int64 `json:"-"`
CouponToken string `json:"coupon_token"`
Mid int64 `json:"mid"`
State int8 `json:"state"`
Ctime time.Time `json:"ctime"`
Mtime time.Time `json:"mtime"`
}
// CouponPageResp coupon page.
type CouponPageResp struct {
ID int64 `json:"id"`
Title string `json:"title"`
Time int64 `json:"time"`
RefID int64 `json:"ref_id"`
Tips string `json:"tips"`
Count int64 `json:"count"`
}
// CouponOrder coupon order info.
type CouponOrder struct {
ID int64 `json:"id"`
OrderNo string `json:"order_no"`
Mid int64 `json:"mid"`
Count int64 `json:"count"`
State int8 `json:"state"`
CouponType int8 `json:"coupon_type"`
ThirdTradeNo string `json:"third_trade_no"`
Remark string `json:"remark"`
Tips string `json:"tips"`
UseVer int64 `json:"use_ver"`
Ver int64 `json:"ver"`
Ctime time.Time `json:"ctime"`
Mtime time.Time `json:"mtime"`
}
// CouponOrderLog coupon order log.
type CouponOrderLog struct {
ID int64 `json:"id"`
OrderNo string `json:"order_no"`
Mid int64 `json:"mid"`
State int8 `json:"state"`
Ctime time.Time `json:"ctime"`
Mtime time.Time `json:"mtime"`
}
// CouponBalanceChangeLog coupon balance change log.
type CouponBalanceChangeLog struct {
ID int64 `json:"id"`
OrderNo string `json:"order_no"`
Mid int64 `json:"mid"`
BatchToken string `json:"batch_token"`
Balance int64 `json:"balance"`
ChangeBalance int64 `json:"change_balance"`
ChangeType int8 `json:"change_type"`
Ctime time.Time `json:"ctime"`
Mtime time.Time `json:"mtime"`
}
// CouponCartoonPageResp coupon cartoon page.
type CouponCartoonPageResp struct {
Count int64 `json:"count"`
CouponCount int64 `json:"coupon_count"`
List []*CouponPageResp `json:"list"`
}
// CouponBatchInfo coupon batch info.
type CouponBatchInfo struct {
ID int64 `json:"id"`
AppID int64 `json:"app_id"`
Name string `json:"name"`
BatchToken string `json:"batch_token"`
MaxCount int64 `json:"max_count"`
CurrentCount int64 `json:"current_count"`
LimitCount int64 `json:"limit_count"`
StartTime int64 `json:"start_time"`
ExpireTime int64 `json:"expire_time"`
ExpireDay int64 `json:"expire_day"`
Ver int64 `json:"ver"`
Ctime time.Time `json:"ctime"`
Mtime time.Time `json:"mtime"`
FullAmount float64 `json:"full_amount"`
Amount float64 `json:"amount"`
State int8 `json:"state"`
CouponType int8 `json:"coupon_type"`
PlatformLimit string `json:"platform_limit"`
ProdLimMonth int8 `json:"product_limit_month"`
ProdLimRenewal int8 `json:"product_limit_Renewal"`
}
// CouponAllowancePanelInfo allowance coupon panel info.
type CouponAllowancePanelInfo struct {
CouponToken string `json:"coupon_token"`
Amount float64 `json:"coupon_amount"`
State int32 `json:"state"`
FullLimitExplain string `json:"full_limit_explain"`
ScopeExplain string `json:"scope_explain"`
FullAmount float64 `json:"full_amount"`
CouponDiscountPrice float64 `json:"coupon_discount_price"`
StartTime int64 `json:"start_time"`
ExpireTime int64 `json:"expire_time"`
Selected int8 `json:"selected"`
DisablesExplains string `json:"disables_explains"`
OrderNO string `json:"order_no"`
Name string `json:"name"`
Usable int8 `json:"usable"`
}
// CouponTipInfo coupon tip info.
type CouponTipInfo struct {
CouponTip string `json:"coupon_tip"`
CouponInfo *CouponAllowancePanelInfo `json:"coupon_info"`
}
// CouponAllowanceChangeLog coupon allowance change log.
type CouponAllowanceChangeLog struct {
ID int64 `json:"-"`
CouponToken string `json:"coupon_token"`
OrderNO string `json:"order_no"`
Mid int64 `json:"mid"`
State int8 `json:"state"`
ChangeType int8 `json:"change_type"`
Ctime time.Time `json:"ctime"`
Mtime time.Time `json:"mtime"`
}
//CouponReceiveLog receive log.
type CouponReceiveLog struct {
ID int64 `json:"id"`
Appkey string `json:"appkey"`
OrderNo string `json:"order_no"`
Mid int64 `json:"mid"`
CouponToken string `json:"coupon_token"`
CouponType int8 `json:"coupon_type"`
}
//CouponAllowancePanelResp def.
type CouponAllowancePanelResp struct {
Usables []*CouponAllowancePanelInfo `json:"usables"`
Disables []*CouponAllowancePanelInfo `json:"disables"`
Using []*CouponAllowancePanelInfo `json:"using"`
}
// SalaryCouponForThirdResp resp.
type SalaryCouponForThirdResp struct {
Amount float64 `json:"amount"`
FullAmount float64 `json:"full_amount"`
Description string `json:"description"`
}
// ScopeExplainFmt get scope explain fmt.
func (c *CouponAllowancePanelInfo) ScopeExplainFmt(pstr string, prodLimMonth, prodLimRenewal int8, platMap map[string]string) {
var (
ps []string
plats, scope, scopePlat, limr, limm string
)
if len(pstr) == 0 && prodLimMonth == 0 && prodLimRenewal == 0 {
c.ScopeExplain = ScopeNoLimit
return
}
if len(pstr) > 0 {
ps = strings.Split(pstr, ",")
for _, v := range ps {
plats += platMap[v] + ","
}
}
if len(plats) > 0 {
plats = plats[:len(plats)-1]
scopePlat = fmt.Sprintf(ScopePlatFmt, plats)
}
limr = ProdLimRenewalMap[prodLimRenewal]
limm = ProdLimMonthMap[prodLimMonth]
scope = scopePlat + fmt.Sprintf(ScopeProductFmt, limr, limm)
c.ScopeExplain = scope
}
// PlatfromLimitExplain platform limit explain.
func PlatfromLimitExplain(pstr string, platMap map[string]string) string {
var (
ps []string
plats string
)
if len(pstr) == 0 {
return ""
}
if len(pstr) > 0 {
ps = strings.Split(pstr, ",")
for _, v := range ps {
plats += platMap[v] + ","
}
}
if len(plats) > 0 {
plats = plats[:len(plats)-1]
}
return plats
}
// PrizeCards struct .
type PrizeCards struct {
List []*PrizeCardRep `json:"list"`
}
// PrizeCardRep struct .
type PrizeCardRep struct {
CardType int8 `json:"card_type"`
State int8 `json:"state"`
OriginalPrice int64 `json:"original_price,omitempty"`
CouponAmount int64 `json:"coupon_amount,omitempty"`
DiscountRate string `json:"discount_rate,omitempty"`
}
// CouponUserCard struct .
type CouponUserCard struct {
MID int64 `json:"mid"`
CardType int8 `json:"card_type"`
State int8 `json:"state"`
BatchToken string `json:"batch_token"`
CouponToken string `json:"coupon_token"`
ActID int64 `json:"act_id"`
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,73 @@
syntax = "proto3";
package model;
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
option (gogoproto.goproto_enum_prefix_all) = false;
option (gogoproto.goproto_getters_all) = false;
option (gogoproto.unmarshaler_all) = true;
option (gogoproto.marshaler_all) = true;
option (gogoproto.sizer_all) = true;
message CouponInfo {
int64 ID = 1 [(gogoproto.jsontag) = "_"];
string CouponToken = 2 [(gogoproto.jsontag) = "coupon_token"];
int64 Mid = 3 [(gogoproto.jsontag) = "mid"];
int64 State = 4 [(gogoproto.jsontag) = "state"];
int64 StartTime = 5 [(gogoproto.jsontag) = "start_time"];
int64 ExpireTime = 6 [(gogoproto.jsontag) = "expire_time"];
int64 Origin = 7 [(gogoproto.jsontag) = "origin"];
int64 CouponType = 8 [(gogoproto.jsontag) = "coupon_type"];
string OrderNO = 9 [(gogoproto.jsontag) = "order_no"];
int64 Ver = 10 [(gogoproto.jsontag) = "ver"];
int64 Oid = 11 [(gogoproto.jsontag) = "oid"];
string Remark = 12 [(gogoproto.jsontag) = "remark"];
int64 UseVer = 13 [(gogoproto.jsontag) = "use_ver"];
int64 CTime = 14 [(gogoproto.jsontag) = "-", (gogoproto.casttype) = "go-common/library/time.Time"];
int64 MTime = 15 [(gogoproto.jsontag) = "-", (gogoproto.casttype) = "go-common/library/time.Time"];
string BatchToken = 16 [(gogoproto.jsontag) = "batch_token"];
}
message PointInfoList {
repeated CouponInfo pointInfoList = 1;
}
message CouponBalanceInfo {
int64 ID = 1 [(gogoproto.jsontag) = "_"];
string BatchToken = 2 [(gogoproto.jsontag) = "batch_token"];
int64 Mid = 3 [(gogoproto.jsontag) = "mid"];
int64 Balance = 4 [(gogoproto.jsontag) = "balance"];
int64 StartTime = 5 [(gogoproto.jsontag) = "start_time"];
int64 ExpireTime = 6 [(gogoproto.jsontag) = "expire_time"];
int64 Origin = 7 [(gogoproto.jsontag) = "origin"];
int64 CouponType = 8 [(gogoproto.jsontag) = "coupon_type"];
int64 Ver = 9 [(gogoproto.jsontag) = "ver"];
int64 CTime = 10 [(gogoproto.jsontag) = "-", (gogoproto.casttype) = "go-common/library/time.Time"];
int64 MTime = 11 [(gogoproto.jsontag) = "-", (gogoproto.casttype) = "go-common/library/time.Time"];
}
message CouponBalanceList {
repeated CouponBalanceInfo couponBalanceList = 1;
}
message CouponAllowanceInfo {
int64 ID = 1 [(gogoproto.jsontag) = "_"];
string CouponToken = 2 [(gogoproto.jsontag) = "coupon_token"];
int64 Mid = 3 [(gogoproto.jsontag) = "mid"];
int32 State = 4 [(gogoproto.jsontag) = "state"];
int64 StartTime = 5 [(gogoproto.jsontag) = "start_time"];
int64 ExpireTime = 6 [(gogoproto.jsontag) = "expire_time"];
int64 Origin = 7 [(gogoproto.jsontag) = "origin"];
string OrderNO = 8 [(gogoproto.jsontag) = "order_no"];
int64 Ver = 9 [(gogoproto.jsontag) = "ver"];
string Remark = 10 [(gogoproto.jsontag) = "remark"];
int64 CTime = 11 [(gogoproto.jsontag) = "-", (gogoproto.casttype) = "go-common/library/time.Time"];
int64 MTime = 12 [(gogoproto.jsontag) = "-", (gogoproto.casttype) = "go-common/library/time.Time"];
string BatchToken = 13 [(gogoproto.jsontag) = "batch_token"];
double Amount = 14 [(gogoproto.jsontag) = "amount"];
double FullAmount = 15 [(gogoproto.jsontag) = "full_amount"];
int64 AppID = 16 [(gogoproto.jsontag) = "app_id"];
}
message CouponAllowanceList {
repeated CouponAllowanceInfo couponAllowanceList = 1;
}

View File

@@ -0,0 +1,163 @@
package model
// coupon use state.
const (
UseFaild int8 = iota
UseSuccess
)
// coupon state.
const (
NotUsed = iota
InUse
Used
Expire
Block
)
// coupon state.
const (
WaitPay = iota
InPay
PaySuccess
PayFaild
)
// max salary count.
const (
MaxSalaryCount = 100
)
// blance change type
const (
VipSalary int8 = iota + 1
SystemAdminSalary
Consume
ConsumeFaildBack
)
// coupon type
const (
CouponVideo = iota + 1
CouponCartoon
CouponAllowance
)
//allowance origin
const (
AllowanceNone = iota
AllowanceSystemAdmin
AllowanceBusinessReceive
AllowanceBusinessNewYear
AllowanceCodeOpen
)
// batch state
const (
BatchStateNormal = iota
BatchStateBlock
)
// coupon disables explains
const (
CouponHadBlock = "代金券已被冻结"
CouponFullAmountDissatisfy = "未达到满额条件"
CouponNotInUsableTime = "当前不在有效期内"
CouponInUse = "已绑定在其他未支付订单,点击解锁"
CouponPlatformExplain = "当前平台不可使用"
CouponProductExplain = "当前商品不可使用"
)
// coupon scope explains
const (
ScopeNoLimit = "不限使用平台"
ScopePlatFmt = "仅限%s端"
ScopeProductFmt = "购买%s%s大会员时使用"
)
// coupon send message
const (
ReceiveMessageTitle = "大会员代金券到账通知"
ReceiveMessage = "大会员代金券已到账快到“我的代金券”看看吧IOS端需要在网页使用。#{传送门}{\"https://account.bilibili.com/account/big/voucher\"}"
)
// device code
const (
DeviceIOS int = iota + 1
DeviceIPAD
DevicePC
DeviceANDROID
DeviceIPADHD
DeviceIOSBLUE
DeviceANDROIDBLUE
DevicePUBLIC
)
// PlatformByCode device name map.
var PlatformByCode = map[int]string{
DeviceIOS: "ios",
DeviceIPAD: "ipad",
DevicePC: "网页",
DeviceANDROID: "Android",
}
// coupon format
const (
CouponFullAmountLimit = "满%s元可用"
CouponAllowanceName = "大会员代金券"
)
// coupon seleted
const (
Seleted = 1
)
// allowance change type
const (
AllowanceSalary int8 = iota + 1
AllowanceConsume
AllowanceCancel
AllowanceConsumeSuccess
AllowanceConsumeFaild
AllowanceReceive
)
// allowance notify pay status
const (
AllowanceUseFaild int8 = iota
AllowanceUseSuccess
)
// allowance able state
const (
AllowanceDisables int8 = iota
AllowanceUsable
)
//PlatformByName .
var PlatformByName = map[string]int{
"ios": DeviceIOS,
"ios_b": DeviceIOS,
"ipad": DeviceIPAD,
"ipadhd": DeviceIPAD,
"pc": DevicePC,
"public": DevicePC,
"android": DeviceANDROID,
"android_b": DeviceANDROID,
}
//PlatfromMapping .
var PlatfromMapping = map[int]int{
DeviceIPADHD: DeviceIPAD,
DeviceIOSBLUE: DeviceIOS,
DeviceANDROIDBLUE: DeviceANDROID,
DevicePUBLIC: DevicePC,
}
// coupon tip.
const (
CouponTipNotUse = "不使用代金券"
CouponTipChooseOther = "选中其他商品有惊喜"
CouponTipUse = "抵扣%.2f元"
CouponTipInUse = "有代金券被锁定"
)

View File

@@ -0,0 +1,30 @@
package model
// 临时逻辑 --- start ----
import "go-common/library/time"
// OrderInfo order info.
type OrderInfo struct {
ID int64
OrderNo string
AppID int64
OrderType int8
Platform int8
Mid int64
ToMid int64
BuyMonths int16
Money float64
RefundAmount float64
Status int8
PayType string
RechargeBP float64
ThirdTradeNo string
PaymentTime time.Time
Ver int64
Ctime time.Time
Mtime time.Time
AppSubID string
}
// 临时逻辑 --- end ----

View File

@@ -0,0 +1,114 @@
package model
// ArgMid .
type ArgMid struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
Type int8 `form:"type" validate:"required,min=1,gte=1"`
}
// ArgUseCoupon .
type ArgUseCoupon struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
Type int8 `form:"type" validate:"required,min=1,gte=1"`
Remark string `form:"remark" validate:"required"`
OrderNO string `form:"order_id" validate:"required"`
Oid int64 `form:"oid" validate:"required,min=1,gte=1"`
Ver int64 `form:"ver" validate:"required,min=1,gte=1"`
}
// ArgUseCartoonCoupon def .
type ArgUseCartoonCoupon struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
Type int8 `form:"type" validate:"required,min=1,gte=1"`
Tips string `form:"tips" validate:"required"`
Remark string `form:"remark" validate:"required"`
OrderNO string `form:"order_id" validate:"required"`
Count int64 `form:"count" validate:"required,min=1,gte=1"`
Ver int64 `form:"ver" validate:"required,min=1,gte=1"`
}
// ArgCoupon .
type ArgCoupon struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
CouponToken string `form:"coupon_token" validate:"required"`
}
// ChangeCoupon .
type ChangeCoupon struct {
Mid int64 `form:"mid"`
CouponToken string `form:"coupon_token"`
Ver int64 `form:"ver"`
UseVer int64 `form:"use_ver"`
}
// ArgAdd .
type ArgAdd struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
StartTime int64 `form:"start_time"`
ExpireTime int64 `form:"expire_time" validate:"required,min=1,gte=1"`
Type int64 `form:"type" validate:"required,min=1,gte=1"`
Origin int64 `form:"origin" validate:"required,min=1,gte=1"`
}
// ArgPage .
type ArgPage struct {
State int8 `form:"state"`
Pn int `form:"pn"`
Ps int `form:"ps"`
}
// ArgSalary salary coupon.
type ArgSalary struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
CouponType int64 `form:"type" validate:"required,min=1,gte=1"`
Count int `form:"count" validate:"required,min=1,gte=1"`
BatchToken string `form:"batch_no" validate:"required"`
AppID int64 `form:"app_id"`
}
// ArgUseAllowance allowance coupon use.
type ArgUseAllowance struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
CouponToken string `form:"coupon_token" validate:"required"`
Remark string `form:"remark" validate:"required"`
OrderNO string `form:"order_id" validate:"required"`
Price float64 `form:"price" validate:"required"`
Platform string `form:"platform" default:"pc"`
MobiApp string `form:"mobi_app"`
PanelType string `form:"panel_type" default:"normal"`
Device string `form:"device"`
Build int64 `form:"build"`
ProdLimMonth int8 `form:"product_limit_month"`
ProdLimRenewal int8 `form:"product_limit_renewal"`
}
// ArgCount allowance count.
type ArgCount struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
}
//ArgReceiveAllowance .
type ArgReceiveAllowance struct {
Mid int64 `form:"mid" validate:"required" json:"mid"`
BatchToken string `form:"batch_token" validate:"required" json:"batch_token"`
OrderNo string `form:"order_no" validate:"required" json:"order_no"`
Appkey string `form:"appkey" validate:"required" json:"appkey"`
}
//ArgAllowanceCheck .
type ArgAllowanceCheck struct {
Mid int64 `form:"mid" validate:"required" json:"mid"`
OrderNo string `form:"order_no" validate:"required" json:"order_no"`
}
// ArgPrizeDraw struct .
type ArgPrizeDraw struct {
Mid int64 `form:"mid" validate:"required,gte=1"`
CardType int8 `form:"card_type" validate:"gte=0,lte=2" json:"card_type"`
}
// ArgAllowanceCoupons arg allowance coupon.
type ArgAllowanceCoupons struct {
Mid int64
State int8
}

View File

@@ -0,0 +1,7 @@
#! /bin/sh
# proto.sh
gopath=$GOPATH/src
gogopath=$GOPATH/src/go-common/vendor/github.com/gogo/protobuf
protoc --gofast_out=. --proto_path=$gopath:$gogopath:. *.proto

View File

@@ -0,0 +1,78 @@
package model
// ArgSalaryCoupon salary coupon.
type ArgSalaryCoupon struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
CouponType int64 `form:"type" validate:"required,min=1,gte=1"`
Origin int64
Count int `form:"count" validate:"required,min=1,gte=1"`
BatchToken string `form:"batch_no" validate:"required"`
AppID int64 `form:"app_id"`
UniqueNo string
}
// ArgRPCPage def .
type ArgRPCPage struct {
Mid int64
State int8
Pn int
Ps int
}
// CouponPageRPCResp def.
type CouponPageRPCResp struct {
Count int64 `json:"count"`
Res []*CouponPageResp `json:"list"`
}
// ArgAllowanceCoupon def .
type ArgAllowanceCoupon struct {
Mid int64
Pirce float64
Platform int
ProdLimMonth int8
ProdLimRenewal int8
}
// ArgUsablePirces def .
type ArgUsablePirces struct {
Mid int64
Pirce []float64
Platform int
ProdLimMonth int8
ProdLimRenewal int8
}
// ArgJuageUsable def .
type ArgJuageUsable struct {
Mid int64
Pirce float64
CouponToken string
Platform int
ProdLimMonth int8
ProdLimRenewal int8
}
// ArgAllowance def .
type ArgAllowance struct {
Mid int64
CouponToken string
}
// ArgNotify .
type ArgNotify struct {
Mid int64
OrderNo string
State int8
}
// ArgAllowanceList .
type ArgAllowanceList struct {
Mid int64
State int8
}
// ArgAllowanceMid .
type ArgAllowanceMid struct {
Mid int64
}