Compare commits

...

No commits in common. 'master' and 'test-sian' have entirely different histories.

@ -5,7 +5,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"git.oa00.com/supply-chain/service/config" "git.oa00.com/supply-chain/service/config"
consulClient "git.oa00.com/supply-chain/service/lib/consul" consulClient "github.com/rpcxio/rpcx-consul/client"
"github.com/smallnest/rpcx/client" "github.com/smallnest/rpcx/client"
"log" "log"
"reflect" "reflect"

@ -1,67 +0,0 @@
package batchSku
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type banner struct {
}
type BannerItem struct {
Id uint `json:"id"`
Img string `json:"img"`
SkuId uint `json:"skuId"`
}
// All @Title 全部轮播图
func (b *banner) All(ctx context.Context) (reply []BannerItem, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
args := 0
err = xClient.Call(ctx, "All", args, &reply)
return
}
type ArgsSkuBannerEdit struct {
Id uint
SkuId uint
Img string
}
// Edit @Title 编辑轮播图
func (b *banner) Edit(ctx context.Context, args ArgsSkuBannerEdit) (err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
reply := 0
return xClient.Call(ctx, "Edit", args, &reply)
}
// Del @Title 删除轮播图
func (b *banner) Del(ctx context.Context, id uint) (err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
reply := 0
return xClient.Call(ctx, "Del", id, &reply)
}
type ArgsSkuBannerAdd struct {
SkuId uint
Img string
}
// Add @Title 添加轮播图
func (b *banner) Add(ctx context.Context, args ArgsSkuBannerAdd) error {
xClient, err := client.GetClient(b)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Add", args, &reply)
}

@ -1,10 +0,0 @@
package batchSku
type BatchSku struct {
Banner banner
Type skuType
Sale sale
Item item
HotType skuHotType
HotItem hotItem
}

@ -1,96 +0,0 @@
package batchSku
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type hotItem struct {
}
type ReplySkuHotItemHandle struct {
SkuId uint `json:"skuId"`
Error string `json:"error"`
}
type ArgsSkuHotItemAdd struct {
SkuTypeId uint
SkuIds []uint
}
// Add @Title 添加商品
func (i *hotItem) Add(ctx context.Context, args ArgsSkuHotItemAdd) (reply []ReplySkuHotItemHandle, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "Add", args, &reply)
return
}
type ArgsSkuHotItemDel struct {
SkuTypeId uint
SkuIds []uint
}
// Del @Title 删除商品
func (i *hotItem) Del(ctx context.Context, args ArgsSkuHotItemDel) error {
xClient, err := client.GetClient(i)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Del", args, &reply)
}
type ArgsSkuHotItemLists struct {
SkuTypeId uint
SkuId uint
Page bean.Page
}
type ReplySkuHotItemLists struct {
Total int64 `json:"total"`
Lists []SkuHotItem `json:"lists"`
}
type SkuHotItem struct {
Id uint `json:"id"`
SkuId uint `json:"skuId"`
}
// Lists @Title 商品列表
func (i *hotItem) Lists(ctx context.Context, args ArgsSkuHotItemLists) (reply ReplySkuHotItemLists, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return ReplySkuHotItemLists{}, err
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
// DelAll @Title 删除全部商品
func (i *hotItem) DelAll(ctx context.Context, skuTypeId uint) error {
xClient, err := client.GetClient(i)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "DelAll", skuTypeId, &reply)
}
type ArgsBySkuHotIds struct {
SkuIds []uint
SkuTypeId uint
}
// FindBySkuIds @Title 根据SkuId查询数据
func (i *hotItem) FindBySkuIds(ctx context.Context, args ArgsBySkuHotIds) (reply []SkuHotItem, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindBySkuIds", args, &reply)
return
}

@ -1,60 +0,0 @@
package batchSku
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type skuHotType struct {
}
type ArgsSkuHotTypeEdit struct {
Id uint
Name string
}
// Edit @Title 编辑分类
func (s *skuHotType) Edit(ctx context.Context, args ArgsSkuHotTypeEdit) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Edit", args, &reply)
}
// Add @Title 添加分类
func (s *skuHotType) Add(ctx context.Context, name string) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Add", name, &reply)
}
// Del @Title 删除分类
func (s *skuHotType) Del(ctx context.Context, id uint) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Del", id, &reply)
}
type HotTypeItem struct {
Id uint `json:"id"`
Name string `json:"name"`
}
// All @Title 全部分类
func (s *skuHotType) All(ctx context.Context) (reply []HotTypeItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
args := 0
err = xClient.Call(ctx, "All", args, &reply)
return
}

@ -1,96 +0,0 @@
package batchSku
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type item struct {
}
type ReplySkuItemHandle struct {
SkuId uint `json:"skuId"`
Error string `json:"error"`
}
type ArgsSkuItemAdd struct {
SkuTypeId uint
SkuIds []uint
}
// Add @Title 添加商品
func (i *item) Add(ctx context.Context, args ArgsSkuItemAdd) (reply []ReplySkuItemHandle, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "Add", args, &reply)
return
}
type ArgsSkuItemDel struct {
SkuTypeId uint
SkuIds []uint
}
// Del @Title 删除商品
func (i *item) Del(ctx context.Context, args ArgsSkuItemDel) error {
xClient, err := client.GetClient(i)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Del", args, &reply)
}
type ArgsSkuItemLists struct {
SkuTypeId uint
SkuId uint
Page bean.Page
}
type ReplySkuItemLists struct {
Total int64 `json:"total"`
Lists []SkuItem `json:"lists"`
}
type SkuItem struct {
Id uint `json:"id"`
SkuId uint `json:"skuId"`
}
// Lists @Title 商品列表
func (i *item) Lists(ctx context.Context, args ArgsSkuItemLists) (reply ReplySkuItemLists, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return ReplySkuItemLists{}, err
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
// DelAll @Title 删除全部商品
func (i *item) DelAll(ctx context.Context, skuTypeId uint) error {
xClient, err := client.GetClient(i)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "DelAll", skuTypeId, &reply)
}
type ArgsBySkuIds struct {
SkuIds []uint
SkuTypeId uint
}
// FindBySkuIds @Title 根据SkuId查询数据
func (i *item) FindBySkuIds(ctx context.Context, args ArgsBySkuIds) (reply []SkuItem, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindBySkuIds", args, &reply)
return
}

@ -1,102 +0,0 @@
package batchSku
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type sale struct {
}
type SaleHandleItem struct {
SkuId uint `json:"skuId"`
Error string `json:"error"`
}
// Add @Title 添加
func (s *sale) Add(ctx context.Context, skuIds []uint) (reply []SaleHandleItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "Add", skuIds, &reply)
return
}
type ArgsSaleLists struct {
SkuId uint
Page bean.Page
}
// Lists @Title 商品列表
func (s *sale) Lists(ctx context.Context, args ArgsSaleLists) (reply ReplySaleSkuItemLists, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return ReplySaleSkuItemLists{}, err
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ReplySaleSkuItemLists struct {
Total int64 `json:"total"`
Lists []SaleSkuItem `json:"lists"`
}
type SaleSkuItem struct {
Id uint `json:"id"`
SkuId uint `json:"skuId"`
}
// Del @Title 删除商品
func (s *sale) Del(ctx context.Context, ids []uint) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Del", ids, &reply)
}
// SetImg @Title 设置区域导图
func (s *sale) SetImg(ctx context.Context, path string) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "SetImg", path, &reply)
}
// GetImg @Title 获取区域导图
func (s *sale) GetImg(ctx context.Context) (reply string, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return "", err
}
args := 0
err = xClient.Call(ctx, "GetImg", args, &reply)
return
}
// DelAll @Title 删除全部商品
func (s *sale) DelAll(ctx context.Context) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
args := 0
reply := 0
return xClient.Call(ctx, "DelAll", args, &reply)
}
// FindBySkuIds @Title 根据SkuId查询数据
func (s *sale) FindBySkuIds(ctx context.Context, skuIds []uint) (reply []SaleSkuItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindBySkuIds", skuIds, &reply)
return
}

@ -1,60 +0,0 @@
package batchSku
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type skuType struct {
}
type ArgsSkuTypeEdit struct {
Id uint
Name string
}
// Edit @Title 编辑分类
func (s *skuType) Edit(ctx context.Context, args ArgsSkuTypeEdit) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Edit", args, &reply)
}
// Add @Title 添加分类
func (s *skuType) Add(ctx context.Context, name string) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Add", name, &reply)
}
// Del @Title 删除分类
func (s *skuType) Del(ctx context.Context, id uint) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Del", id, &reply)
}
type TypeItem struct {
Id uint `json:"id"`
Name string `json:"name"`
}
// All @Title 全部分类
func (s *skuType) All(ctx context.Context) (reply []TypeItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
args := 0
err = xClient.Call(ctx, "All", args, &reply)
return
}

@ -1,9 +1,6 @@
package customer package customer
import ( import (
"git.oa00.com/supply-chain/service/customer/batchSku"
"git.oa00.com/supply-chain/service/customer/data"
"git.oa00.com/supply-chain/service/customer/finance"
"git.oa00.com/supply-chain/service/customer/service" "git.oa00.com/supply-chain/service/customer/service"
"git.oa00.com/supply-chain/service/customer/sku" "git.oa00.com/supply-chain/service/customer/sku"
) )
@ -12,7 +9,4 @@ type Customer struct {
User user User user
Service service.Service Service service.Service
Sku sku.Sku Sku sku.Sku
BatchSku batchSku.BatchSku
Finance finance.Finance
Data data.Data
} }

@ -1,5 +0,0 @@
package data
type Data struct {
Wallet wallet
}

@ -1,33 +0,0 @@
package data
import (
"context"
"git.oa00.com/supply-chain/service/client"
"github.com/shopspring/decimal"
)
type wallet struct {
}
type ArgsWalletMonthCount struct {
StartAt string // 年份
EndAt string // 月份
}
type WalletMonthCountItem struct {
UserId uint `json:"userId"`
UserName string `json:"userName"`
BeforePeriod decimal.Decimal `json:"beforePeriod"` // 期初
RechargeAmount decimal.Decimal `json:"rechargeAmount"` // 充值
PlaceAmount decimal.Decimal `json:"placeAmount"` // 下单
RefundAmount decimal.Decimal `json:"refundAmount"` // 退款
AfterPeriod decimal.Decimal `json:"afterPeriod"` // 期末
}
// MonthCount @Title 月消费统计
func (w *wallet) MonthCount(ctx context.Context, args ArgsWalletMonthCount) (reply []WalletMonthCountItem, err error) {
xClient, err := client.GetClient(w)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "MonthCount", args, &reply)
return
}

@ -1,5 +0,0 @@
package finance
type Finance struct {
Wallet wallet
}

@ -1,60 +0,0 @@
package finance
import (
"context"
"git.oa00.com/supply-chain/service/client"
"github.com/shopspring/decimal"
)
type wallet struct {
}
type ArgsWalletDetail struct {
Year uint // 年份
Month uint // 月份
}
type WalletItem struct {
CustomerName string `json:"customerName"` // 客户名称
CreatedAt int64 `json:"createdAt"` // 交易时间
Type uint `json:"type"` // 交易类型
Amount decimal.Decimal `json:"amount"` // 交易金额
AfterAmount decimal.Decimal `json:"afterAmount"` // 交易后余额
TradeChannel string `json:"tradeChannel"` // 交易渠道
TradeSerialSn string `json:"tradeSerialSn"` // 交易流水号
Remark string `json:"remark"` // 交易备注
}
// WalletDetail @Title 余额统计
func (w *wallet) WalletDetail(ctx context.Context, args ArgsWalletDetail) (reply []WalletItem, err error) {
xClient, err := client.GetClient(w)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "WalletDetail", args, &reply)
return
}
type ArgsUserWallet struct {
Year uint // 年份
Month uint // 月份
}
type UserWalletItem struct {
CustomerName string `json:"customerName"`
BeforeAmount decimal.Decimal `json:"beforeAmount"` // 期初余额
AfterAmount decimal.Decimal `json:"afterAmount"` // 期末余额
ConsumeAmount decimal.Decimal `json:"consumeAmount"` // 消费金额
ReturnAmount decimal.Decimal `json:"returnAmount"` // 退款金额
RechargeAmount decimal.Decimal `json:"rechargeAmount"` // 充值金额
}
// UserWallet @Title 客户余额
func (w *wallet) UserWallet(ctx context.Context, args ArgsWalletDetail) (reply []UserWalletItem, err error) {
xClient, err := client.GetClient(w)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "UserWallet", args, &reply)
return
}

@ -4,7 +4,6 @@ type serviceId uint
const ( const (
ServiceSupply serviceId = 1 // 供应链 ServiceSupply serviceId = 1 // 供应链
ServiceWholesale serviceId = 2 // 批发
UserServiceStatusNone = 0 // 无 UserServiceStatusNone = 0 // 无
UserServiceStatusWait = 1 // 待审核 UserServiceStatusWait = 1 // 待审核

@ -3,20 +3,12 @@ package service
import ( import (
"context" "context"
"git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/client"
audit2 "git.oa00.com/supply-chain/service/customer/service/audit"
"git.oa00.com/supply-chain/service/lib/bean" "git.oa00.com/supply-chain/service/lib/bean"
"time"
)
const (
AuditHistoryAuditStatusNone = 1 // 待审核
AuditHistoryAuditStatusAdopt = 2 // 审核通过
AuditHistoryAuditStatusReject = 3 // 审核驳回
AuditHistoryAuditApplyTypeManage = 1 // 平台业务申请
AuditHistoryAuditApplyTypeCustomer = 2 // 客户自主申请
) )
type audit struct { type audit struct {
audit2.Audit
} }
type AuditSearch struct { type AuditSearch struct {
ApplyUserId uint // 申请人 ApplyUserId uint // 申请人
@ -30,11 +22,9 @@ type ArgsAuditLists struct {
type AuditItem struct { type AuditItem struct {
Id uint `json:"id"` Id uint `json:"id"`
ServiceId uint `json:"serviceId"` ServiceId uint `json:"serviceId"`
UserId uint `json:"userId"`
UserName string `json:"userName"` UserName string `json:"userName"`
ServiceName string `json:"serviceName"` ServiceName string `json:"serviceName"`
ApplyUserId uint `json:"applyUserId"` ApplyUserId uint `json:"applyUserId"`
ApplyType uint `json:"ApplyType"`
ApplyAt int64 `json:"applyAt"` ApplyAt int64 `json:"applyAt"`
AuditStatus uint `json:"auditStatus"` AuditStatus uint `json:"auditStatus"`
AuditUserId uint `json:"auditUserId"` AuditUserId uint `json:"auditUserId"`
@ -54,176 +44,3 @@ func (a *audit) Lists(ctx context.Context, args ArgsAuditLists) (reply ReplyAudi
err = xClient.Call(ctx, "Lists", args, &reply) err = xClient.Call(ctx, "Lists", args, &reply)
return return
} }
type ArgsHistory struct {
Page bean.Page
CustomerId uint
AuditStatus uint
}
type ReplyHistoryLists struct {
Lists []HistoryItem `json:"lists"`
Total int64 `json:"total"`
AuditStatus uint `json:"auditStatus"` // 审核状态
}
type HistoryItem struct {
ServiceId uint `json:"serviceId"`
Remark string `json:"remark"`
ExpirationAt int64 `json:"expirationAt"`
ApplyAt int64 `json:"applyAt"`
AuditStatus uint `json:"auditStatus"`
}
// History @Title 服务申请记录
func (a *audit) History(ctx context.Context, args ArgsHistory) (reply ReplyHistoryLists, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "History", args, &reply)
return
}
type ArgsAuditApply struct {
ServiceId uint `json:"serviceId"` // 服务id
ApplyType uint `json:"applyType"` // 申请类型
ApplyUserId uint `json:"applyUserId"` // 申请人id
CustomerId uint `json:"customerId"` // 客户id
ExpirationAt time.Time `json:"expirationAt"` // 到期时间
Enclosure string `json:"enclosure"` // 附件
Expand any `json:"expand"` // 拓展参数
}
// Apply @Title 申请
func (a *audit) Apply(ctx context.Context, args ArgsAuditApply) error {
reply := 0
xClient, err := client.GetClient(a)
if err != nil {
return err
}
return xClient.Call(ctx, "Apply", args, &reply)
}
type ArgsAuditAdopt struct {
AuditUserId uint // 审核人id
UserServiceId uint // 客户服务id
Expand any `json:"expand"` // 拓展参数
}
// Adopt @Title 审核通过
func (a *audit) Adopt(ctx context.Context, args ArgsAuditAdopt) error {
reply := 0
xClient, err := client.GetClient(a)
if err != nil {
return err
}
return xClient.Call(ctx, "Adopt", args, &reply)
}
type ArgsAuditReject struct {
AuditUserId uint // 审核人id
UserServiceId uint // 客户服务id
Reason string // 驳回原因
}
// Reject @Title 驳回
func (a *audit) Reject(ctx context.Context, args ArgsAuditReject) error {
reply := 0
xClient, err := client.GetClient(a)
if err != nil {
return err
}
return xClient.Call(ctx, "Reject", args, &reply)
}
type ReplyAuditInfo struct {
Id uint `json:"id"`
UserName string `json:"userName"`
ApplyUserId uint `json:"applyUserId"`
ApplyAt int64 `json:"applyAt"`
ServiceId uint `json:"serviceId"`
ServiceName string `json:"serviceName"`
ExpirationAt int64 `json:"expirationAt"`
AuditStatus uint `json:"auditStatus"`
AuditAt int64 `json:"auditAt"`
Reason string `json:"reason"`
AuditUserId uint `json:"auditUserId"`
Expand any `json:"expand"`
Enclosure string `json:"enclosure"`
ApplyType uint `json:"applyType"`
}
// Info @Title 详情
func (a *audit) Info(ctx context.Context, userServiceId uint) (reply ReplyAuditInfo, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", userServiceId, &reply)
return
}
type ReplyProof struct {
Name string `json:"name"`
ChannelId uint `json:"channelId"` // 用户Id
AppKey string `json:"appKey"`
AppSecret string `json:"appSecret"`
}
// GetProof @Title 获取凭证
func (a *audit) GetProof(ctx context.Context, userServiceId uint) (reply ReplyProof, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "GetProof", userServiceId, &reply)
return
}
type ArgsRateChange struct {
UserServiceId uint // 客户服务id
ChangeUserId uint // 修改人id
NewRateId uint // 新费率id
}
// Change @Title 修改费率
func (a *audit) Change(ctx context.Context, args ArgsRateChange) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Change", args, &reply)
return
}
type ArgsRateChangeHistory struct {
UserId uint
Page bean.Page
}
type ReplyRateChangeHistory struct {
Lists []RateChangeHistoryItem `json:"lists"`
Total int64 `json:"total"`
}
type RateChangeHistoryItem struct {
Id uint `json:"id"`
UserId uint `json:"userId"` // 用户id
ChangeUserId uint `json:"changeUserId"` // 修改人
ServiceId uint `json:"serviceId"` // 服务id
OldRateId uint `json:"oldRateId"` // 老费率
NewRateId uint `json:"newRateId"` // 新费率
CreatedAt int64 `json:"createdAt"` // 调整时间
}
// RateChangeHistory @Title 服务修改记录
func (a *audit) RateChangeHistory(ctx context.Context, args ArgsRateChangeHistory) (reply ReplyRateChangeHistory, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "RateChangeHistory", args, &reply)
return
}

@ -0,0 +1,5 @@
package audit
type Audit struct {
Supply supply
}

@ -0,0 +1,101 @@
package audit
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type supply struct {
}
type ArgsSupplyApply struct {
ApplyUserId uint // 申请人id
CustomerId uint // 客户id
RateId uint // 费率id
ExpirationAt int64 // 到期时间
Enclosure string // 附件
}
// Apply @Title 申请
func (s *supply) Apply(ctx context.Context, args ArgsSupplyApply) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "Apply", args, &reply)
}
type ArgsSupplyAdopt struct {
AuditUserId uint // 审核人id
UserServiceId uint // 客户服务id
}
// Adopt @Title 审核通过
func (s *supply) Adopt(ctx context.Context, args ArgsSupplyAdopt) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "Adopt", args, &reply)
}
type ArgsSupplyReject struct {
AuditUserId uint // 审核人id
UserServiceId uint // 客户服务id
Reason string // 驳回原因
}
// Reject @Title 驳回
func (s *supply) Reject(ctx context.Context, args ArgsSupplyReject) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "Reject", args, &reply)
}
type ReplySupplyInfo struct {
Id uint `json:"id"`
UserName string `json:"userName"`
ApplyUserId uint `json:"applyUserId"`
ApplyAt int64 `json:"applyAt"`
ServiceId uint `json:"serviceId"`
ServiceName string `json:"serviceName"`
ExpirationAt int64 `json:"expirationAt"`
RateId uint `json:"rateId"`
Enclosure string `json:"enclosure"`
AuditStatus uint `json:"auditStatus"`
AuditAt int64 `json:"auditAt"`
Reason string `json:"reason"`
AuditUserId uint `json:"auditUserId"`
}
// Info @Title 详情
func (s *supply) Info(ctx context.Context, userServiceId uint) (reply ReplySupplyInfo, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", userServiceId, &reply)
return
}
type ReplyProof struct {
Name string `json:"name"`
ChannelId uint `json:"channelId"` // 用户Id
AppKey string `json:"appKey"`
AppSecret string `json:"appSecret"`
}
// GetProof @Title 获取凭证
func (s *supply) GetProof(ctx context.Context, userServiceId uint) (reply ReplyProof, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "GetProof", userServiceId, &reply)
return
}

@ -3,7 +3,6 @@ package service
import ( import (
"context" "context"
"git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/client"
"github.com/shopspring/decimal"
) )
type Service struct { type Service struct {
@ -22,7 +21,6 @@ type ReplyServiceLists struct {
ServiceName string `json:"serviceName"` ServiceName string `json:"serviceName"`
EndTime int64 `json:"endTime"` EndTime int64 `json:"endTime"`
AuditStatus uint `json:"auditStatus"` AuditStatus uint `json:"auditStatus"`
Rate decimal.Decimal `json:"rate"`
} }
type service struct { type service struct {
@ -37,19 +35,3 @@ func (s *service) All(ctx context.Context, customerId uint) (reply []ReplyServic
err = xClient.Call(ctx, "All", customerId, &reply) err = xClient.Call(ctx, "All", customerId, &reply)
return return
} }
type ReplyServiceSelect struct {
Id uint `json:"id"`
Name string `json:"name"`
}
// Select @Title 服务筛选
func (s *service) Select(ctx context.Context) (reply []ReplyServiceSelect, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
args := 0
err = xClient.Call(ctx, "Select", args, &reply)
return
}

@ -51,16 +51,6 @@ func (b *banner) Del(ctx context.Context, id uint) (err error) {
return xClient.Call(ctx, "Del", id, &reply) return xClient.Call(ctx, "Del", id, &reply)
} }
// DelBySkuId @Title 根据skuId删除
func (b *banner) DelBySkuId(ctx context.Context, skuId uint) (err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
reply := 0
return xClient.Call(ctx, "DelBySkuId", skuId, &reply)
}
type ArgsSkuBannerAdd struct { type ArgsSkuBannerAdd struct {
SkuId uint SkuId uint
Img string Img string

@ -1,96 +0,0 @@
package sku
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type hotItem struct {
}
type ReplySkuHotItemHandle struct {
SkuId uint `json:"skuId"`
Error string `json:"error"`
}
type ArgsSkuHotItemAdd struct {
SkuTypeId uint
SkuIds []uint
}
// Add @Title 添加商品
func (i *hotItem) Add(ctx context.Context, args ArgsSkuHotItemAdd) (reply []ReplySkuHotItemHandle, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "Add", args, &reply)
return
}
type ArgsSkuHotItemDel struct {
SkuTypeId uint
SkuIds []uint
}
// Del @Title 删除商品
func (i *hotItem) Del(ctx context.Context, args ArgsSkuHotItemDel) error {
xClient, err := client.GetClient(i)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Del", args, &reply)
}
type ArgsSkuHotItemLists struct {
SkuTypeId uint
SkuId uint
Page bean.Page
}
type ReplySkuHotItemLists struct {
Total int64 `json:"total"`
Lists []SkuHotItem `json:"lists"`
}
type SkuHotItem struct {
Id uint `json:"id"`
SkuId uint `json:"skuId"`
}
// Lists @Title 商品列表
func (i *hotItem) Lists(ctx context.Context, args ArgsSkuHotItemLists) (reply ReplySkuHotItemLists, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return ReplySkuHotItemLists{}, err
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
// DelAll @Title 删除全部商品
func (i *hotItem) DelAll(ctx context.Context, skuTypeId uint) error {
xClient, err := client.GetClient(i)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "DelAll", skuTypeId, &reply)
}
type ArgsBySkuHotIds struct {
SkuIds []uint
SkuTypeId uint
}
// FindBySkuIds @Title 根据SkuId查询数据
func (i *hotItem) FindBySkuIds(ctx context.Context, args ArgsBySkuHotIds) (reply []SkuHotItem, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindBySkuIds", args, &reply)
return
}

@ -1,60 +0,0 @@
package sku
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type skuHotType struct {
}
type ArgsSkuHotTypeEdit struct {
Id uint
Name string
}
// Edit @Title 编辑分类
func (s *skuHotType) Edit(ctx context.Context, args ArgsSkuHotTypeEdit) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Edit", args, &reply)
}
// Add @Title 添加分类
func (s *skuHotType) Add(ctx context.Context, name string) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Add", name, &reply)
}
// Del @Title 删除分类
func (s *skuHotType) Del(ctx context.Context, id uint) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Del", id, &reply)
}
type HotTypeItem struct {
Id uint `json:"id"`
Name string `json:"name"`
}
// All @Title 全部分类
func (s *skuHotType) All(ctx context.Context) (reply []HotTypeItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
args := 0
err = xClient.Call(ctx, "All", args, &reply)
return
}

@ -29,24 +29,18 @@ func (i *item) Add(ctx context.Context, args ArgsSkuItemAdd) (reply []ReplySkuIt
return return
} }
type ArgsSkuItemDel struct {
SkuTypeId uint
SkuIds []uint
}
// Del @Title 删除商品 // Del @Title 删除商品
func (i *item) Del(ctx context.Context, args ArgsSkuItemDel) error { func (i *item) Del(ctx context.Context, ids []uint) error {
xClient, err := client.GetClient(i) xClient, err := client.GetClient(i)
if err != nil { if err != nil {
return err return err
} }
reply := 0 reply := 0
return xClient.Call(ctx, "Del", args, &reply) return xClient.Call(ctx, "Del", ids, &reply)
} }
type ArgsSkuItemLists struct { type ArgsSkuItemLists struct {
SkuTypeId uint SkuTypeId uint
SkuId uint
Page bean.Page Page bean.Page
} }
@ -69,28 +63,3 @@ func (i *item) Lists(ctx context.Context, args ArgsSkuItemLists) (reply ReplySku
err = xClient.Call(ctx, "Lists", args, &reply) err = xClient.Call(ctx, "Lists", args, &reply)
return return
} }
// DelAll @Title 删除全部商品
func (i *item) DelAll(ctx context.Context, skuTypeId uint) error {
xClient, err := client.GetClient(i)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "DelAll", skuTypeId, &reply)
}
type ArgsBySkuIds struct {
SkuIds []uint
SkuTypeId uint
}
// FindBySkuIds @Title 根据SkuId查询数据
func (i *item) FindBySkuIds(ctx context.Context, args ArgsBySkuIds) (reply []SkuItem, err error) {
xClient, err := client.GetClient(i)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindBySkuIds", args, &reply)
return
}

@ -15,7 +15,7 @@ type SaleHandleItem struct {
} }
// Add @Title 添加 // Add @Title 添加
func (s *sale) Add(ctx context.Context, skuIds []uint) (reply []SaleHandleItem, err error) { func (s *sale) Add(ctx context.Context, skuIds []uint) (reply []SaleSkuItem, err error) {
xClient, err := client.GetClient(s) xClient, err := client.GetClient(s)
if err != nil { if err != nil {
return nil, err return nil, err
@ -24,18 +24,13 @@ func (s *sale) Add(ctx context.Context, skuIds []uint) (reply []SaleHandleItem,
return return
} }
type ArgsSaleLists struct {
SkuId uint
Page bean.Page
}
// Lists @Title 商品列表 // Lists @Title 商品列表
func (s *sale) Lists(ctx context.Context, args ArgsSaleLists) (reply ReplySaleSkuItemLists, err error) { func (s *sale) Lists(ctx context.Context, page bean.Page) (reply ReplySaleSkuItemLists, err error) {
xClient, err := client.GetClient(s) xClient, err := client.GetClient(s)
if err != nil { if err != nil {
return ReplySaleSkuItemLists{}, err return ReplySaleSkuItemLists{}, err
} }
err = xClient.Call(ctx, "Lists", args, &reply) err = xClient.Call(ctx, "Lists", page, &reply)
return return
} }
@ -79,24 +74,3 @@ func (s *sale) GetImg(ctx context.Context) (reply string, err error) {
err = xClient.Call(ctx, "GetImg", args, &reply) err = xClient.Call(ctx, "GetImg", args, &reply)
return return
} }
// DelAll @Title 删除全部商品
func (s *sale) DelAll(ctx context.Context) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
args := 0
reply := 0
return xClient.Call(ctx, "DelAll", args, &reply)
}
// FindBySkuIds @Title 根据SkuId查询数据
func (s *sale) FindBySkuIds(ctx context.Context, skuIds []uint) (reply []SaleSkuItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindBySkuIds", skuIds, &reply)
return
}

@ -5,6 +5,4 @@ type Sku struct {
Type skuType Type skuType
Sale sale Sale sale
Item item Item item
HotType skuHotType
HotItem hotItem
} }

@ -40,7 +40,7 @@ func (s *skuType) Del(ctx context.Context, id uint) error {
return err return err
} }
reply := 0 reply := 0
return xClient.Call(ctx, "Del", id, &reply) return xClient.Call(ctx, "Add", id, &reply)
} }
type TypeItem struct { type TypeItem struct {

@ -35,7 +35,6 @@ type UserItem struct {
Phone string `json:"phone"` Phone string `json:"phone"`
Amount decimal.Decimal `json:"amount"` Amount decimal.Decimal `json:"amount"`
Status uint `json:"status"` Status uint `json:"status"`
ServiceNames []string `json:"serviceNames"`
CreatedType uint `json:"createdType"` CreatedType uint `json:"createdType"`
CreatedUserId uint `json:"createdUserId"` CreatedUserId uint `json:"createdUserId"`
CreatedAt int64 `json:"createdAt"` CreatedAt int64 `json:"createdAt"`
@ -62,7 +61,6 @@ type ArgsUserAdd struct {
Phone string // 手机号 Phone string // 手机号
Password string // 密码 Password string // 密码
CreatedType uint // 创建账号类型 1=后台创建 2=自主创建 CreatedType uint // 创建账号类型 1=后台创建 2=自主创建
UserType uint // 用户类型 1=企业 2=个人
CreatedUserId uint // 创建人Id CreatedUserId uint // 创建人Id
} }
@ -152,36 +150,3 @@ func (u *user) ServiceInfo(ctx context.Context, args ArgsUserServiceInfo) (reply
err = xClient.Call(ctx, "ServiceInfo", args, &reply) err = xClient.Call(ctx, "ServiceInfo", args, &reply)
return return
} }
type UserInfoItem struct {
Id uint `json:"id"`
Name string `json:"name"`
Phone string `json:"phone"`
Liaison string `json:"liaison"`
}
// FindByIds @Title 根据用户Ids查询用户信息
func (u *user) FindByIds(ctx context.Context, userIds []uint) (reply []UserInfoItem, err error) {
xClient, err := client.GetClient(u)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByIds", userIds, &reply)
return
}
type UserSelectItem struct {
Id uint `json:"id"`
Name string `json:"name"`
}
// Select @Title 用户筛选
func (u *user) Select(ctx context.Context) (reply []UserSelectItem, err error) {
xClient, err := client.GetClient(u)
if err != nil {
return
}
args := 0
err = xClient.Call(ctx, "Select", args, &reply)
return
}

@ -1,77 +0,0 @@
package user
import (
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"golang.org/x/net/context"
)
type cash struct {
}
type ArgsCashLists struct {
Search CashSearch
Page bean.Page
}
type CashSearch struct {
Status uint // 状态 1=待审核 2=通过 3=驳回
UserName string // 客户名称
}
type CashItem struct {
Id uint
UserId uint // 客户id
UserName string // 客户名称
BkName string // 银行名称
BankCode string // 银行卡号
BankName string // 银行账户名
AuditUserId uint // 审核人
Status uint // 审核状态 1=待审核 2=通过 3=驳回
Reason string // 驳回原因
CreatedAt int64
}
type ReplyCashLists struct {
Lists []CashItem
Total int64
}
// Lists @Title 列表
func (cash *cash) Lists(ctx context.Context, args ArgsCashLists) (reply ReplyCashLists, err error) {
xClient, err := client.GetClient(cash)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ArgsCashAdopt struct {
CashId uint // 提款id
}
// Adopt @Title 审核通过
func (cash *cash) Adopt(ctx context.Context, args ArgsCashAdopt) error {
xClient, err := client.GetClient(cash)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Adopt", args, &reply)
}
type ArgsCashReject struct {
CashId uint // 提款id
Reason string
}
// Reject @Title 审核驳回
func (cash *cash) Reject(ctx context.Context, args ArgsCashReject) error {
xClient, err := client.GetClient(cash)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Reject", args, &reply)
}

@ -10,8 +10,8 @@ type deposit struct {
} }
type applyType uint // 申请人类型 type applyType uint // 申请人类型
const ( const (
ApplyTypePlatform = 1 // 平台 ApplyTypeCustomer = 1 // 客户
ApplyTypeCustomer = 2 // 客户 ApplyTypePlatform = 2 // 平台
DepositAuditStatusWait = 1 // 待审核 DepositAuditStatusWait = 1 // 待审核
DepositAuditStatusAdopt = 2 // 审核通过 DepositAuditStatusAdopt = 2 // 审核通过

@ -1,41 +0,0 @@
package user
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type message struct {
}
var (
MessageTypeOrder = messageType{
Type: 1,
TypeName: "零售订单",
}
MessageTypeAfterOrder = messageType{
Type: 2,
TypeName: "售后订单",
}
)
type messageType struct {
Type uint
TypeName string
}
type ArgsMessagePublish struct {
CustomerId uint // 客户id
Message string // 消息内容
Type messageType // 消息类型
TypeId uint // 消息来源id
}
// Publish @Title 推送消息
func (m *message) Publish(ctx context.Context, args ArgsMessagePublish) error {
reply := 0
xClient, err := client.GetClient(m)
if err != nil {
return err
}
return xClient.Call(ctx, "Publish", args, &reply)
}

@ -1,102 +0,0 @@
package user
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type real struct {
}
type ArgsUserRealLists struct {
Search UserRealSearch
Page bean.Page
}
type UserRealSearch struct {
UserName string
AuditStatus uint // 状态 1=待审核 2=审核通过 3=审核驳回
}
type ReplyUserRealLists struct {
Lists []UserRealItem
Total int64
}
type UserRealItem struct {
Id uint `json:"id"`
UserName string `json:"userName"`
Name string `json:"name"`
Code string `json:"code"`
CardImg string `json:"cardImg"`
AuditStatus uint `json:"auditStatus"`
AuditUserId uint `json:"auditUserId"`
AuditAt int64 `json:"auditAt"`
Reason string `json:"reason"`
CreatedAt int64 `json:"createdAt"`
}
// List @Title 实名认证列表
func (r *real) List(ctx context.Context, args ArgsUserRealLists) (reply ReplyUserRealLists, err error) {
xClient, err := client.GetClient(r)
if err != nil {
return ReplyUserRealLists{}, err
}
err = xClient.Call(ctx, "List", args, &reply)
return
}
type ReplyUserRealInfo struct {
Id uint `json:"id"`
UserName string `json:"userName"`
Name string `json:"name"`
Code string `json:"code"`
CardImg string `json:"cardImg"`
AuditStatus uint `json:"auditStatus"`
AuditUserId uint `json:"auditUserId"`
AuditAt int64 `json:"auditAt"`
Reason string `json:"reason"`
CreatedAt int64 `json:"createdAt"`
}
// Info @Title 审核详情
func (r *real) Info(ctx context.Context, RealId uint) (reply ReplyUserRealInfo, err error) {
xClient, err := client.GetClient(r)
if err != nil {
return ReplyUserRealInfo{}, err
}
err = xClient.Call(ctx, "Info", RealId, &reply)
return
}
type ArgsUserRealAdopt struct {
RealId uint
AuditUserId uint // 审核人Id
}
// Adopt @Title 审核通过
func (r *real) Adopt(ctx context.Context, args ArgsUserRealAdopt) error {
xClient, err := client.GetClient(r)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Adopt", args, &reply)
}
type ArgsUserRealReject struct {
RealId uint
AuditUserId uint // 审核人Id
Reason string // 驳回原因
}
// Reject @Title 审核驳回
func (r *real) Reject(ctx context.Context, args ArgsUserRealReject) error {
xClient, err := client.GetClient(r)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Reject", args, &reply)
}

@ -4,8 +4,4 @@ type User struct {
Deposit deposit // 充值 Deposit deposit // 充值
DepositAudit depositAudit // 充值审核 DepositAudit depositAudit // 充值审核
Wallet wallet // 钱包 Wallet wallet // 钱包
Cash cash // 余额提现
Message message // 消息
WalletHistory walletHistory // 消费记录
Real real // 实名认证
} }

@ -11,8 +11,8 @@ type wallet struct {
type walletType uint // 费用类型 type walletType uint // 费用类型
const ( const (
WalletTypeIncome walletType = 1 // 收入 + WalletTypeIncome walletType = 1 // 收入
WalletTypeExpend walletType = 2 // 支出 - WalletTypeExpend walletType = 2 // 支出
WalletStatusHandle = 1 // 处理中 WalletStatusHandle = 1 // 处理中
WalletStatusSuccess = 2 // 成功 WalletStatusSuccess = 2 // 成功
@ -24,9 +24,6 @@ type ArgsWalletDirect struct {
WalletType walletType // 收支类型 WalletType walletType // 收支类型
Amount decimal.Decimal // 金额 正数 Amount decimal.Decimal // 金额 正数
ServiceId uint // 服务id ServiceId uint // 服务id
TradeChannel string // 交易渠道
TradeSerialSn string // 交易渠道流水号
Title string // 收支标题
Remark string // 备注信息 Remark string // 备注信息
} }
@ -45,9 +42,6 @@ type ArgsWalletCreate struct {
WalletType walletType // 收支类型 WalletType walletType // 收支类型
Amount decimal.Decimal // 金额 正数 Amount decimal.Decimal // 金额 正数
ServiceId uint // 服务id ServiceId uint // 服务id
TradeChannel string // 交易渠道
TradeSerialSn string // 交易渠道流水号
Title string // 收支标题
Remark string // 备注信息 Remark string // 备注信息
CancelSecond int64 // 自动取消秒 CancelSecond int64 // 自动取消秒
} }
@ -91,13 +85,3 @@ func (w *wallet) Fail(ctx context.Context, args ArgsWalletFail) error {
} }
return xClient.Call(ctx, "Fail", args, &reply) return xClient.Call(ctx, "Fail", args, &reply)
} }
// Amount @Title 钱包余额
func (w *wallet) Amount(ctx context.Context, userId int64) (amount decimal.Decimal, err error) {
xClient, err := client.GetClient(w)
if err != nil {
return
}
err = xClient.Call(ctx, "Amount", userId, &amount)
return
}

@ -1,58 +0,0 @@
package user
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
)
type walletHistory struct {
}
const (
WalletHistoryOrderIdAsc = 1 // 排序 id正序
WalletHistoryOrderIdDesc = 2 // 排序 id 倒序
)
type ArgsWalletHistoryLists struct {
Search WalletHistorySearch
Page bean.Page
Orders []uint
}
type WalletHistorySearch struct {
StartTime string // 格式 2006-01-02 15:04:05 开始时间
EndTime string // 格式 2006-01-02 15:04:05 截止时间
}
type ReplyWalletHistoryList struct {
Lists []WalletHistoryItem `json:"lists"`
Total int64 `json:"total"`
}
type WalletHistoryItem struct {
Id uint `json:"id"`
UserId uint `json:"userId"`
UserName string `json:"userName"`
Type uint `json:"type"`
Title string `json:"title"`
BeforeAmount decimal.Decimal `json:"beforeAmount"`
Amount decimal.Decimal `json:"amount"`
AfterAmount decimal.Decimal `json:"afterAmount"`
TradeChannel string `json:"tradeChannel"`
TradeSerialSn string `json:"tradeSerialSn"`
Remark string `json:"remark"`
ServiceId uint `json:"serviceId"`
CreatedAt int64 `json:"createdAt"`
ServiceName string `json:"serviceName"`
}
// Lists @Title 消费记录
func (w *walletHistory) Lists(ctx context.Context, args ArgsWalletHistoryLists) (reply ReplyWalletHistoryList, err error) {
xClient, err := client.GetClient(w)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}

@ -3,11 +3,9 @@ module git.oa00.com/supply-chain/service
go 1.18 go 1.18
require ( require (
git.oa00.com/go/jdsdk v1.0.0
github.com/rpcxio/rpcx-consul v0.0.0-20220730062257-1ff0472e730f github.com/rpcxio/rpcx-consul v0.0.0-20220730062257-1ff0472e730f
github.com/shopspring/decimal v1.3.1 github.com/shopspring/decimal v1.3.1
github.com/smallnest/rpcx v1.7.8 github.com/smallnest/rpcx v1.7.8
golang.org/x/net v0.0.0-20220708220712-1185a9018129
) )
require ( require (
@ -68,6 +66,7 @@ require (
github.com/xtaci/kcp-go v5.4.20+incompatible // indirect github.com/xtaci/kcp-go v5.4.20+incompatible // indirect
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
golang.org/x/net v0.0.0-20220708220712-1185a9018129 // indirect
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect
golang.org/x/sys v0.0.0-20220708085239-5a0f0661e09d // indirect golang.org/x/sys v0.0.0-20220708085239-5a0f0661e09d // indirect
golang.org/x/tools v0.1.11 // indirect golang.org/x/tools v0.1.11 // indirect

@ -7,8 +7,6 @@ dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBr
dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=
dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
git.oa00.com/go/jdsdk v1.0.0 h1:xsxZlcPrRoJ47PNU49Xtb+m8K/XaHu3pDljSSd9lYAo=
git.oa00.com/go/jdsdk v1.0.0/go.mod h1:ZLdq5OMaXWHO9wtXJflhysp3cSVLRJHbxHLE1DpKYdY=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
github.com/akutz/memconn v0.1.0 h1:NawI0TORU4hcOMsMr11g7vwlCdkYeLKXBcxWu2W/P8A= github.com/akutz/memconn v0.1.0 h1:NawI0TORU4hcOMsMr11g7vwlCdkYeLKXBcxWu2W/P8A=

@ -10,7 +10,6 @@ type category struct {
} }
type ArgsCategoryList struct { type ArgsCategoryList struct {
ThirdCategoryId uint ThirdCategoryId uint
IsMatch uint // 是否匹配 0=全部 1=匹配 2=没匹配
Page bean.Page Page bean.Page
} }

@ -1,5 +0,0 @@
package data
type Data struct {
Order order
}

@ -1,46 +0,0 @@
package data
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
)
type order struct {
}
type ArgsOrderLists struct {
StartCreatedAt string
EndCreatedAt string
Page bean.Page
}
type ReplyOrderLists struct {
Lists []OrderItem `json:"lists"`
Total int64 `json:"total"`
}
type OrderItem struct {
OrderSubSn string `json:"orderSubSn"` // 订单号
SourceOrderSn string `json:"sourceOrderSn"` // 供应商订单号(云交易外部订单号)
Status uint `json:"status"` // 订单状态
CreatedAt int64 `json:"createdAt"` // 创建时间
LadingBillAt int64 `json:"ladingBillAt"` // 支付时间
StockOutAt int64 `json:"stockOutAt"` // 发货时间
FinishAt int64 `json:"finishAt"` // 确认收获时间
ProcureTotalPrice decimal.Decimal `json:"procureTotalPrice"` // 采购商品金额
ProcureFreightPrice decimal.Decimal `json:"procureFreightPrice"` // 应付运费
ProcurePrice decimal.Decimal `json:"procurePrice"` // 采购合计金额
ServiceFee decimal.Decimal `json:"serviceFee"` // 技术服务费 采购合金金额*1%
}
// Lists @Title 订单列表
func (o *order) Lists(ctx context.Context, args ArgsOrderLists) (reply ReplyOrderLists, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "PayOrderList", args, &reply)
return
}

@ -1,15 +1,8 @@
package jd package jd
import (
"git.oa00.com/supply-chain/service/jd/data"
"git.oa00.com/supply-chain/service/jd/jdsdk"
)
type Jd struct { type Jd struct {
Task task Task task
Brand brand Brand brand
Category category Category category
Sku sku Sku sku
Jdsdk jdsdk.Jdsdk
Data data.Data
} }

@ -1,20 +0,0 @@
package jdsdk
import (
"context"
order2 "git.oa00.com/go/jdsdk/order"
"git.oa00.com/supply-chain/service/client"
)
type afterSale struct {
}
// Info @Title 售后详情
func (a *afterSale) Info(ctx context.Context, afsServiceId uint64) (reply order2.AfterSaleInfo, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", afsServiceId, &reply)
return
}

@ -1,7 +0,0 @@
package jdsdk
type Jdsdk struct {
Order order
Sku sku
AfterSale afterSale
}

@ -1,20 +0,0 @@
package jdsdk
import (
"context"
order2 "git.oa00.com/go/jdsdk/order"
"git.oa00.com/supply-chain/service/client"
)
type order struct {
}
// Cancel @Title 订单取消 京东订单id
func (o *order) Cancel(ctx context.Context, orderId string) (reply order2.OrderInfo, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "Cancel", orderId, &reply)
return
}

@ -1,30 +0,0 @@
package jdsdk
import (
"context"
sku2 "git.oa00.com/go/jdsdk/sku"
"git.oa00.com/supply-chain/service/client"
)
type sku struct {
}
// GetDetail @Title 获取商品详情 sku最大20
func (s *sku) GetDetail(ctx context.Context, jdSkuIds []uint64) (reply []sku2.Detail, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "GetDetail", jdSkuIds, &reply)
return
}
// GetPriceList @Title 获取商品价格列表 最大100
func (s *sku) GetPriceList(ctx context.Context, jdSkuIds []uint64) (reply []sku2.PriceItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "GetPriceList", jdSkuIds, &reply)
return
}

@ -248,19 +248,3 @@ func (s *sku) ReHandle(ctx context.Context, skuId uint) error {
} }
return xClient.Call(ctx, "ReHandle", skuId, &reply) return xClient.Call(ctx, "ReHandle", skuId, &reply)
} }
type PriceItem struct {
SkuId uint64
Price decimal.Decimal
JdPrice decimal.Decimal
}
// Prices @TITLE 批量更新价格
func (s *sku) Prices(ctx context.Context, prices []PriceItem) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "Prices", prices, &reply)
}

@ -37,19 +37,3 @@ func (t *task) RefreshToken(ctx context.Context) error {
} }
return xClient.Call(ctx, "RefreshToken", 0, &a) return xClient.Call(ctx, "RefreshToken", 0, &a)
} }
type ReplySkuAddStatus struct {
Total uint
Count uint
StartTime int64
}
// GetSkuAddStatus @Title 获取同步状态
func (t *task) GetSkuAddStatus(ctx context.Context) (reply ReplySkuAddStatus, err error) {
xClient, err := client.GetClient(t)
if err != nil {
return
}
err = xClient.Call(ctx, "GetSkuAddStatus", 0, &reply)
return
}

@ -1,244 +0,0 @@
package consul
import (
"path"
"strings"
"sync"
"time"
"github.com/rpcxio/libkv"
"github.com/rpcxio/libkv/store"
"github.com/rpcxio/libkv/store/consul"
"github.com/smallnest/rpcx/client"
"github.com/smallnest/rpcx/log"
)
func init() {
consul.Register()
}
// ConsulDiscovery is a consul service discovery.
// It always returns the registered servers in consul.
type ConsulDiscovery struct {
basePath string
kv store.Store
pairsMu sync.RWMutex
pairs []*client.KVPair
chans []chan []*client.KVPair
mu sync.Mutex
// -1 means it always retry to watch until zookeeper is ok, 0 means no retry.
RetriesAfterWatchFailed int
filter client.ServiceDiscoveryFilter
stopCh chan struct{}
}
// NewConsulDiscovery returns a new ConsulDiscovery.
func NewConsulDiscovery(basePath, servicePath string, consulAddr []string, options *store.Config) (*ConsulDiscovery, error) {
kv, err := libkv.NewStore(store.CONSUL, consulAddr, options)
if err != nil {
log.Infof("cannot create store: %v", err)
return nil, err
}
return NewConsulDiscoveryStore(basePath+"/"+servicePath, kv)
}
// NewConsulDiscoveryStore returns a new ConsulDiscovery with specified store.
func NewConsulDiscoveryStore(basePath string, kv store.Store) (*ConsulDiscovery, error) {
if basePath[0] == '/' {
basePath = basePath[1:]
}
if len(basePath) > 1 && strings.HasSuffix(basePath, "/") {
basePath = basePath[:len(basePath)-1]
}
d := &ConsulDiscovery{basePath: basePath, kv: kv}
d.stopCh = make(chan struct{})
ps, err := kv.List(basePath)
if err != nil && err != store.ErrKeyNotFound {
log.Infof("cannot get services of from registry: %v, err: %v", basePath, err)
return nil, err
}
pairs := make([]*client.KVPair, 0, len(ps))
prefix := d.basePath + "/"
for _, p := range ps {
if path.Dir(p.Key) != d.basePath {
continue
}
k := strings.TrimPrefix(p.Key, prefix)
pair := &client.KVPair{Key: k, Value: string(p.Value)}
if d.filter != nil && !d.filter(pair) {
continue
}
pairs = append(pairs, pair)
}
d.pairsMu.Lock()
d.pairs = pairs
d.pairsMu.Unlock()
d.RetriesAfterWatchFailed = -1
go d.watch()
return d, nil
}
// NewConsulDiscoveryTemplate returns a new ConsulDiscovery template.
func NewConsulDiscoveryTemplate(basePath string, consulAddr []string, options *store.Config) (*ConsulDiscovery, error) {
if basePath[0] == '/' {
basePath = basePath[1:]
}
if len(basePath) > 1 && strings.HasSuffix(basePath, "/") {
basePath = basePath[:len(basePath)-1]
}
kv, err := libkv.NewStore(store.CONSUL, consulAddr, options)
if err != nil {
log.Infof("cannot create store: %v", err)
return nil, err
}
return NewConsulDiscoveryStore(basePath, kv)
}
// Clone clones this ServiceDiscovery with new servicePath.
func (d *ConsulDiscovery) Clone(servicePath string) (client.ServiceDiscovery, error) {
return NewConsulDiscoveryStore(d.basePath+"/"+servicePath, d.kv)
}
// SetFilter sets the filer.
func (d *ConsulDiscovery) SetFilter(filter client.ServiceDiscoveryFilter) {
d.filter = filter
}
// GetServices returns the servers
func (d *ConsulDiscovery) GetServices() []*client.KVPair {
d.pairsMu.RLock()
defer d.pairsMu.RUnlock()
return d.pairs
}
// WatchService returns a nil chan.
func (d *ConsulDiscovery) WatchService() chan []*client.KVPair {
d.mu.Lock()
defer d.mu.Unlock()
ch := make(chan []*client.KVPair, 10)
d.chans = append(d.chans, ch)
return ch
}
func (d *ConsulDiscovery) RemoveWatcher(ch chan []*client.KVPair) {
d.mu.Lock()
defer d.mu.Unlock()
var chans []chan []*client.KVPair
for _, c := range d.chans {
if c == ch {
continue
}
chans = append(chans, c)
}
d.chans = chans
}
func (d *ConsulDiscovery) watch() {
defer func() {
d.kv.Close()
}()
for {
var err error
var c <-chan []*store.KVPair
var tempDelay time.Duration
retry := d.RetriesAfterWatchFailed
for d.RetriesAfterWatchFailed < 0 || retry >= 0 {
c, err = d.kv.WatchTree(d.basePath, d.stopCh)
if err != nil {
if d.RetriesAfterWatchFailed > 0 {
retry--
}
if tempDelay == 0 {
tempDelay = 1 * time.Second
} else {
tempDelay *= 2
}
if max := 30 * time.Second; tempDelay > max {
tempDelay = max
}
log.Warnf("can not watchtree (with retry %d, sleep %v): %s: %v", retry, tempDelay, d.basePath, err)
time.Sleep(tempDelay)
continue
}
break
}
if err != nil {
log.Errorf("can't watch %s: %v", d.basePath, err)
return
}
prefix := d.basePath + "/"
readChanges:
for {
select {
case <-d.stopCh:
log.Info("discovery has been closed")
return
case ps, ok := <-c:
if !ok {
break readChanges
}
var pairs []*client.KVPair // latest servers
if ps == nil {
d.pairsMu.Lock()
d.pairs = pairs
d.pairsMu.Unlock()
continue
}
for _, p := range ps {
if path.Dir(p.Key) != d.basePath {
continue
}
k := strings.TrimPrefix(p.Key, prefix)
pair := &client.KVPair{Key: k, Value: string(p.Value)}
if d.filter != nil && !d.filter(pair) {
continue
}
pairs = append(pairs, pair)
}
d.pairsMu.Lock()
d.pairs = pairs
d.pairsMu.Unlock()
d.mu.Lock()
for _, ch := range d.chans {
ch := ch
go func() {
defer func() {
recover()
}()
select {
case ch <- pairs:
case <-time.After(time.Minute):
log.Warn("chan is full and new change has been dropped")
}
}()
}
d.mu.Unlock()
}
}
log.Warn("chan is closed and will rewatch")
}
}
func (d *ConsulDiscovery) Close() {
close(d.stopCh)
}

@ -1,29 +0,0 @@
package otosaas
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type callback struct {
}
// OtoSaas @Title 海旅回调
func (c *callback) OtoSaas(ctx context.Context, args string) (reply string, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "OtoSaas", args, &reply)
return
}
// Kuaidi100 @Title 快递100回调
func (c *callback) Kuaidi100(ctx context.Context, args string) (reply string, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Kuaidi100", args, &reply)
return
}

@ -1,63 +0,0 @@
package otosaas
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type category struct {
}
type ArgsCategoryList struct {
ThirdCategoryId uint
IsMatch uint // 是否匹配 0=全部 1=匹配 2=没匹配
Page bean.Page
}
type CategoryItem struct {
Id uint `json:"id"`
FirstCategoryName string `json:"firstCategoryName"`
SecondCategoryName string `json:"secondCategoryName"`
ThirdCategoryName string `json:"thirdCategoryName"`
SupplyCategoryId uint `json:"supplyCategoryId"`
}
type ReplyCategoryList struct {
Lists []CategoryItem `json:"lists"`
Total int64 `json:"total"`
}
// Lists @Title 获取品牌匹配列表
func (c *category) Lists(ctx context.Context, args ArgsCategoryList) (reply ReplyCategoryList, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ArgsCategoryEdit struct {
CategoryId uint // 分类id
SupplyCategoryId uint // 匹配分类id
}
// Edit @Title 编辑品牌匹配
func (c *category) Edit(ctx context.Context, args ArgsCategoryEdit) error {
reply := 0
xClient, err := client.GetClient(c)
if err != nil {
return err
}
return xClient.Call(ctx, "Edit", args, &reply)
}
// Select @Title 类目筛选
func (c *category) Select(ctx context.Context) (reply []CategoryItem, err error) {
args := 0
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Select", args, &reply)
return
}

@ -1,184 +0,0 @@
package otosaas
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
)
const (
CommodityStatusNone = 1 // 待处理
CommodityStatusAdopt = 2 // 同步入库
CommodityStatusReject = 3 // 废弃商品
CommodityHandleNone = 1 // 未处理
CommodityHandleStart = 2 // 开始处理
CommoditySaasSkuStatusUp = 1 // 商品上架
CommoditySaasSkuStatusDown = 2 // 商品下架
)
type commodity struct {
}
type CommoditySearch struct {
Name string // 商品名称
CategoryIds []uint // 类目id
SkuCode string // 商品条码
Handle uint // 处理状态 1=待处理 2=入库 3=废弃
CommodityCode string // 商品编码
MinSupplyPrice decimal.Decimal // 最小采购价
MaxSupplyPrice decimal.Decimal // 最大采购价
}
type ArgsCommodityList struct {
Search CommoditySearch
Page bean.Page
}
type CommodityItem struct {
Id uint `json:"id"`
Name string `json:"name"`
CommodityCode string `json:"commodityCode"`
Img string `json:"img"`
CategoryId uint `json:"categoryId"`
CategoryNames string `json:"categoryNames"`
Skus []CommoditySkuItem `json:"skus"`
GuidePrices []decimal.Decimal `json:"guidePrices"`
SupplyPrices []decimal.Decimal `json:"supplyPrices"`
Status uint `json:"status"`
CreatedAt int64 `json:"createdAt"`
}
type CommoditySkuItem struct {
Id uint `json:"id"`
Img string `json:"img"`
SupplyPrice decimal.Decimal `json:"supplyPrice"`
SpecValue string `json:"specValue"`
SkuCode string `json:"skuCode"`
}
type ReplyCommodityLists struct {
List []CommodityItem `json:"list"`
Total int64 `json:"total"`
}
// Lists @Title 获取商品列表
func (c *commodity) Lists(ctx context.Context, args ArgsCommodityList) (reply ReplyCommodityLists, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ReplyCommodityInfo struct {
Id uint `json:"id"`
CommodityCode string `json:"commodityCode"`
Name string `json:"name"`
ImgUrl string `json:"imgUrl"`
FirstCategoryName string `json:"firstCategoryName"`
SecondCategoryName string `json:"secondCategoryName"`
ThirdCategoryName string `json:"thirdCategoryName"`
SupplyCategoryId uint `json:"supplyCategoryId"`
Handle uint `json:"handle"`
Status uint `json:"status"`
Skus []SkuItem `json:"skus"`
Imgs []CommodityImgItem `json:"imgs"`
Content string `json:"content"`
}
type CommodityImgItem struct {
Id uint `json:"id"`
Path string `json:"path"`
ReplacePath string `json:"replacePath"`
}
type SkuItem struct {
Id uint `json:"id"`
SkuCode string `json:"skuCode"`
SpecName string `json:"specName"`
SpecValue string `json:"specValue"`
SupplyPrice decimal.Decimal `json:"supplyPrice"`
GuidePrice decimal.Decimal `json:"guidePrice"`
ImgUrl string `json:"imgUrl"`
}
// Info @Title 商品详情
func (c *commodity) Info(ctx context.Context, goodsId uint) (reply ReplyCommodityInfo, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", goodsId, &reply)
return
}
type ReplyImgs struct {
GoodsId uint `json:"goodsId"`
Imgs []string `json:"imgs"`
}
// GetImgs @Title 获取商品主图
func (c *commodity) GetImgs(ctx context.Context, goodsIds []uint) (reply []ReplyImgs, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "GetImgs", goodsIds, &reply)
return
}
type AdoptItem struct {
Id uint `json:"id"`
Name string `json:"name"`
Error string `json:"error"`
}
// Adopt @Title 批量入库
func (c *commodity) Adopt(ctx context.Context, goodsIds []uint) (reply []AdoptItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Adopt", goodsIds, &reply)
return
}
// Discard @Title 批量废弃
func (c *commodity) Discard(ctx context.Context, goodsIds []uint) (err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Discard", goodsIds, &reply)
return
}
type ArgsCommodityReplaceImg struct {
CommodityId uint // 商品id
ImgId uint // 图片id
ImgPath string // 图片路径
}
// ReplaceImg @Title 替换图片
func (c *commodity) ReplaceImg(ctx context.Context, args ArgsCommodityReplaceImg) error {
reply := 0
xClient, err := client.GetClient(c)
if err != nil {
return err
}
return xClient.Call(ctx, "ReplaceImg", args, &reply)
}
//
//// ReHandle @Title 重新处理商品
//func (c *commodity) ReHandle(ctx context.Context, goodsIds []uint) (reply []AdoptItem, err error) {
// xClient, err := client.GetClient(c)
// if err != nil {
// return nil, err
// }
// err = xClient.Call(ctx, "ReHandle", goodsIds, &reply)
// return
//}

@ -1,7 +0,0 @@
package otosaas
type OtoSaas struct {
Callback callback
Category category
Commodity commodity
}

@ -3,11 +3,8 @@ package service
import ( import (
"git.oa00.com/supply-chain/service/customer" "git.oa00.com/supply-chain/service/customer"
"git.oa00.com/supply-chain/service/jd" "git.oa00.com/supply-chain/service/jd"
"git.oa00.com/supply-chain/service/otosaas"
"git.oa00.com/supply-chain/service/skycrane"
"git.oa00.com/supply-chain/service/supplier" "git.oa00.com/supply-chain/service/supplier"
"git.oa00.com/supply-chain/service/supply" "git.oa00.com/supply-chain/service/supply"
"git.oa00.com/supply-chain/service/wholesale"
) )
var Rpc = &rpc{} var Rpc = &rpc{}
@ -17,7 +14,4 @@ type rpc struct {
Jd jd.Jd Jd jd.Jd
Customer customer.Customer Customer customer.Customer
Supplier supplier.Supplier Supplier supplier.Supplier
Wholesale wholesale.Wholesale
OtoSaas otosaas.OtoSaas
Skycrane skycrane.Skycrane
} }

@ -18,15 +18,6 @@ const (
ErrorOrderUnPay Error = 11012 // 订单未支付 ErrorOrderUnPay Error = 11012 // 订单未支付
ErrorOrderInvalid Error = 11013 // 订单失效 ErrorOrderInvalid Error = 11013 // 订单失效
ErrorOrderSkuInvalid Error = 11014 // 订单商品错误 ErrorOrderSkuInvalid Error = 11014 // 订单商品错误
ErrorAfterServiceTypeError Error = 11015 // 售后类型错误
ErrorAfterServiceReasonError Error = 11016 // 售后原因错误
ErrorAfterServiceError Error = 11017 // 售后单错误
ErrorAfterServiceCloseError Error = 11018 // 售后已关闭
ErrorAfterServiceFinishError Error = 11019 // 售后已完成
ErrorOrderCancelError Error = 11020 // 订单取消失败
ErrorAfterServiceLogisticsAddressError Error = 11021 // 售后寄回地址获取失败
ErrorAfterServiceLogisticsAddressReturnError Error = 11022 // 售后寄回地址已回传
ErrorWholesaleBatchOrderStartNumErr Error = 13101 // 商品未达到最小起批量
) )
var ErrorCodes = map[Error]string{ var ErrorCodes = map[Error]string{
@ -44,15 +35,6 @@ var ErrorCodes = map[Error]string{
ErrorOrderUnPay: "订单未支付", ErrorOrderUnPay: "订单未支付",
ErrorOrderInvalid: "订单失效", ErrorOrderInvalid: "订单失效",
ErrorOrderSkuInvalid: "订单商品错误", ErrorOrderSkuInvalid: "订单商品错误",
ErrorAfterServiceTypeError: "售后类型错误",
ErrorAfterServiceReasonError: "售后原因错误",
ErrorAfterServiceError: "售后单错误",
ErrorAfterServiceCloseError: "售后已关闭",
ErrorAfterServiceFinishError: "售后已完成",
ErrorOrderCancelError: "订单取消失败",
ErrorAfterServiceLogisticsAddressError: "售后寄回地址获取失败",
ErrorAfterServiceLogisticsAddressReturnError: "售后寄回地址已回传",
ErrorWholesaleBatchOrderStartNumErr: "商品未达到最小起批量",
} }
func (e Error) Error() string { func (e Error) Error() string {

@ -1,85 +0,0 @@
package skycrane
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type address struct {
}
type AddressSearch struct {
AddressId int64
Mate int // 1=已匹配 2=未匹配
}
type ArgsAddressList struct {
Search AddressSearch
Page bean.Page
}
type AddressItem struct {
Id int64 `json:"id"`
ProvinceName string `json:"provinceName"`
CityName string `json:"cityName"`
CountyName string `json:"countyName"`
MateAddressId int64 `json:"mateAddressId"`
MateProvinceName string `json:"mateProvinceName"`
MateCityName string `json:"mateCityName"`
MateCountyName string `json:"mateCountyName"`
}
type ReplyAddressList struct {
Lists []AddressItem `json:"lists"`
Total int64 `json:"total"`
}
// List @Title 地址列表
func (c *address) List(ctx context.Context, args ArgsAddressList) (reply ReplyAddressList, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
xClient.Call(ctx, "List", args, &reply)
return
}
type ArgsAddressMate struct {
AddressId int64 // 地址id
MateAddressID int64 // 修改匹配地址id
}
// Mate @Title 地址匹配
func (c *address) Mate(ctx context.Context, args ArgsAddressMate) error {
reply := 0
xClient, err := client.GetClient(c)
if err != nil {
return err
}
return xClient.Call(ctx, "Mate", args, &reply)
}
// All @Title 地址
func (c *address) All(ctx context.Context, args AddressSearch) (reply []AddressItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
xClient.Call(ctx, "All", args, &reply)
return
}
type MateAddressItem struct {
Id int64 `json:"id"`
ProvinceName string `json:"provinceName"`
CityName string `json:"cityName"`
CountyName string `json:"countyName"`
}
// MateAll @Title 匹配地址
func (c *address) MateAll(ctx context.Context) (reply []MateAddressItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
xClient.Call(ctx, "MateAll", 0, &reply)
return
}

@ -1,62 +0,0 @@
package skycrane
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type brand struct {
}
type BrandSearch struct {
Name string // 商品名称
}
type ArgsBrandList struct {
Search BrandSearch
Page bean.Page
}
type BrandItem struct {
Id int64 `json:"id"`
Name string `json:"name"`
MateBrandID int64 `json:"mateBrandID"`
}
type ReplyBrandList struct {
Lists []BrandItem `json:"lists"`
Total int64 `json:"total"`
}
// List @Title 品牌列表
func (b *brand) List(ctx context.Context, args ArgsBrandList) (reply ReplyBrandList, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
xClient.Call(ctx, "List", args, &reply)
return
}
type ArgsBrandMate struct {
BrandId int64 // 品牌id
SupplyBrandId int64 // 修改匹配品牌id
}
// Mate @Title 品牌匹配
func (b *brand) Mate(ctx context.Context, args ArgsBrandMate) error {
reply := 0
xClient, err := client.GetClient(b)
if err != nil {
return err
}
return xClient.Call(ctx, "Mate", args, &reply)
}
// All @Title 品牌
func (b *brand) All(ctx context.Context, args BrandSearch) (reply []BrandItem, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
xClient.Call(ctx, "All", args, &reply)
return
}

@ -1,74 +0,0 @@
package skycrane
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type callback struct {
}
// Cancel @TITLE 取消订单
func (c *callback) Cancel(ctx context.Context, sourceOrderSn string) error {
xClient, err := client.GetClient(c)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Cancel", sourceOrderSn, &reply)
}
// StockOut @Title 出库
func (c *callback) StockOut(ctx context.Context, sourceOrderSn string) error {
xClient, err := client.GetClient(c)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "StockOut", sourceOrderSn, &reply)
}
// Delivered @Title 订单妥投
func (c *callback) Delivered(ctx context.Context, sourceOrderSn string) error {
xClient, err := client.GetClient(c)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Delivered", sourceOrderSn, &reply)
}
// Finish @Title 订单完成
func (c *callback) Finish(ctx context.Context, sourceOrderSn string) error {
xClient, err := client.GetClient(c)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Finish", sourceOrderSn, &reply)
}
// Logistics @Title 更新包裹信息
func (c *callback) Logistics(ctx context.Context, sourceOrderSn string) error {
xClient, err := client.GetClient(c)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Logistics", sourceOrderSn, &reply)
}
type ArgsCallbackAfsStepResult struct {
ReturnOrderCode string
ReturnOrderStatus int64
}
// AfsStepResult @Title 售后处理
func (c *callback) AfsStepResult(ctx context.Context, args ArgsCallbackAfsStepResult) error {
xClient, err := client.GetClient(c)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "AfsStepResult", args, &reply)
}

@ -1,65 +0,0 @@
package skycrane
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type category struct {
}
type CategorySearch struct {
CategoryId int64
Mate int // 1=已匹配 2=未匹配
}
type ArgsCategoryList struct {
Search CategorySearch
Page bean.Page
}
type CategoryItem struct {
Id int64 `json:"id"`
FirstCategoryName string `json:"firstCategoryName"`
SecondCategoryName string `json:"secondCategoryName"`
ThirdCategoryName string `json:"thirdCategoryName"`
MateCategoryID int64 `json:"mateCategoryID"`
}
type ReplyCategoryList struct {
Lists []CategoryItem `json:"lists"`
Total int64 `json:"total"`
}
// List @Title 类目列表
func (c *category) List(ctx context.Context, args ArgsCategoryList) (reply ReplyCategoryList, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
xClient.Call(ctx, "List", args, &reply)
return
}
type ArgsCategoryMate struct {
CategoryId int64 // 类目id
SupplyCategoryId int64 // 修改匹配类目id
}
// Mate @Title 类目匹配
func (c *category) Mate(ctx context.Context, args ArgsCategoryMate) error {
reply := 0
xClient, err := client.GetClient(c)
if err != nil {
return err
}
return xClient.Call(ctx, "Mate", args, &reply)
}
// All @Title 类目
func (c *category) All(ctx context.Context, args CategorySearch) (reply []CategoryItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
xClient.Call(ctx, "All", args, &reply)
return
}

@ -1,191 +0,0 @@
package skycrane
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
)
const (
SkuStatusNone = 1 // 待处理
SkuStatusAdopt = 2 // 同步入库
SkuStatusReject = 3 // 废弃商品
)
type sku struct {
}
type SkuSearch struct {
Status int // 状态
Name string // 商品名称
Code string // sku编码
CategoryId int64 // 类目id
BrandName string // 品牌
MinSupplyPrice decimal.Decimal // 采购价最小
MaxSupplyPrice decimal.Decimal // 采购价最大
}
type ArgsSkuList struct {
Search SkuSearch
Page bean.Page
}
type SkuItem struct {
Id int64 `json:"id"`
Name string `json:"name"`
Code string `json:"code"`
MainPhoto string `json:"mainPhoto"`
BrandName string `json:"brandName"`
FirstCategoryName string `json:"firstCategoryName"`
SecondCategoryName string `json:"secondCategoryName"`
ThirdCategoryName string `json:"thirdCategoryName"`
SupplyPrice decimal.Decimal `json:"supplyPrice"`
GuidePrice decimal.Decimal `json:"guidePrice"`
ShelvesStatus int64 `json:"shelvesStatus"`
Status int64 `json:"status"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
MateBrandId int64 `json:"mateBrandId"`
MateCategoryId int64 `json:"mateCategoryId"`
}
type ReplySkuList struct {
Lists []SkuItem `json:"lists"`
Total int64 `json:"total"`
}
// List @Title 商品列表
func (s *sku) List(ctx context.Context, args ArgsSkuList) (reply ReplySkuList, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
xClient.Call(ctx, "List", args, &reply)
return
}
type SkuImg struct {
Id int64 `json:"id"`
Path string `json:"path"`
ReplacePath string `json:"replacePath"`
}
// Imgs @Title 获取预览图
func (s *sku) Imgs(ctx context.Context, skuId int64) (reply []SkuImg, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "Imgs", skuId, &reply)
return
}
type ReplySkuInfo struct {
Id int64 `json:"id"`
GoodsCode string `json:"goodsCode"`
GoodsName string `json:"goodsName"`
Code string `json:"code"`
Name string `json:"name"`
Title string `json:"title"`
SellPrice decimal.Decimal `json:"sellPrice"`
MarketPrice decimal.Decimal `json:"marketPrice"`
StartQty int64 `json:"startQty"`
ShelvesStatus int64 `json:"shelvesStatus"`
TaxCode string `json:"taxCode"`
TaxRate decimal.Decimal `json:"taxRate"`
BarCode string `json:"barCode"`
IsDeleted int64 `json:"isDeleted"`
BrandId int64 `json:"brandId"`
BrandCode string `json:"brandCode"`
BrandName string `json:"brandName"`
CategoryId int64 `json:"categoryId"`
FirstCategoryCode string `json:"firstCategoryCode"`
FirstCategoryName string `json:"firstCategoryName"`
SecondCategoryCode string `json:"secondCategoryCode"`
SecondCategoryName string `json:"secondCategoryName"`
ThirdCategoryCode string `json:"thirdCategoryCode"`
ThirdCategoryName string `json:"thirdCategoryName"`
ReturnGoodsRules int64 `json:"returnGoodsRules"`
GoodsCharacteristic string `json:"goodsCharacteristic"`
GoodsUnit string `json:"goodsUnit"`
ModelNumber string `json:"modelNumber"`
ProductPlace string `json:"productPlace"`
HaveShelfLife int64 `json:"haveShelfLife"`
ShelfLife string `json:"shelfLife"`
FragileGoods int64 `json:"fragileGoods"`
GrossWeight decimal.Decimal `json:"grossWeight"`
GrossWeightUnit string `json:"grossWeightUnit"`
Density decimal.Decimal `json:"density"`
Extent decimal.Decimal `json:"extent"`
Width decimal.Decimal `json:"width"`
Height decimal.Decimal `json:"height"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
MateBrandId int64 `json:"mateBrandId"`
MateCategoryId int64 `json:"mateCategoryId"`
Content string `json:"content"`
Imgs []SkuImg `json:"imgs"`
Attributes []SkuAttribute `json:"attributes"`
Specs []SkuSpec `json:"specs"`
}
type SkuAttribute struct {
Id int64 `json:"id"`
Name string `json:"name"`
Value string `json:"value"`
}
type SkuSpec struct {
Id int64 `json:"id"`
Name string `json:"name"`
Value string `json:"value"`
}
// Info @Title 获取详情
func (s *sku) Info(ctx context.Context, skuId int64) (reply ReplySkuInfo, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", skuId, &reply)
return
}
type ArgsSkuReplaceImg struct {
SkuId int64 // 商品id
ImgId int64 // 图片id
ImgPath string // 图片路径
}
// ReplaceImg @Title 替换图片
func (s *sku) ReplaceImg(ctx context.Context, args ArgsSkuReplaceImg) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "ReplaceImg", args, &reply)
}
type AdoptItem struct {
Id int64 `json:"id"`
Code string `json:"code"`
Name string `json:"name"`
Error string `json:"error"`
}
// Adopt @Title 入库
func (s *sku) Adopt(ctx context.Context, skuIds []int64) (reply []AdoptItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "Adopt", skuIds, &reply)
return
}
// Discard @Title 废弃
func (s *sku) Discard(ctx context.Context, skuIds []int64) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "Discard", skuIds, &reply)
}

@ -1,10 +0,0 @@
package skycrane
type Skycrane struct {
Task task
Sku sku
Brand brand
Category category
Address address
Callback callback
}

@ -1,65 +0,0 @@
package skycrane
import (
"context"
"git.oa00.com/supply-chain/service/client"
"time"
)
const (
TaskStatusIng = 1 // 进行中
TaskStatusFinish = 2 // 结束
)
type task struct {
}
// Pull @Title 拉取商品
func (t *task) Pull(ctx context.Context) error {
a := 0
xClient, err := client.GetClient(t)
if err != nil {
return err
}
return xClient.Call(ctx, "Pull", 0, &a)
}
type TaskStatus struct {
ScrollId string `json:"scrollId"`
Total int64 `json:"total"`
Count int64 `json:"count"`
Status int `json:"status"` // 1=运行中 2=已完成
Msg string `json:"msg"`
StartTime time.Time `json:"startTime"`
LastTime time.Time `json:"lastTime"`
}
// GetPullStatus @Title 获取拉取状态
func (t *task) GetPullStatus(ctx context.Context) (reply TaskStatus, err error) {
xClient, err := client.GetClient(t)
if err != nil {
return
}
err = xClient.Call(ctx, "GetPullStatus", 0, &reply)
return
}
// Prices @Title 商品更新
func (t *task) Prices(ctx context.Context) error {
a := 0
xClient, err := client.GetClient(t)
if err != nil {
return err
}
return xClient.Call(ctx, "Prices", 0, &a)
}
// GetPricesStatus @Title 获取拉取状态
func (t *task) GetPricesStatus(ctx context.Context) (reply TaskStatus, err error) {
xClient, err := client.GetClient(t)
if err != nil {
return
}
err = xClient.Call(ctx, "GetPricesStatus", 0, &reply)
return
}

@ -1,276 +0,0 @@
package supplier
import (
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
"golang.org/x/net/context"
)
type afs struct {
}
type ArgsAfsLists struct {
Search AfsSearch
Page bean.Page
}
type AfsSearch struct {
Status uint
AfsSn string
OrderSubSn string
CreatedStartDate string
CreatedEndDate string
}
type ReplyAfsLists struct {
Lists []AfsItem
Total int64
}
type AfsItem struct {
Id uint `json:"id"`
AfsSn string `json:"afsSn"`
OrderSubSn string `json:"orderSubSn"`
SkuName string `json:"skuName"`
Quantity uint `json:"quantity"`
Status uint `json:"status"`
AuditStatus uint `json:"manageStatus"`
Result string `json:"result"`
OrderFee decimal.Decimal `json:"orderFee"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
ReturnAddress []ReturnAddressItem `json:"returnAddress"`
Notes string `json:"notes"`
}
// Lists @Title 售后列表
func (a *afs) Lists(ctx context.Context, args ArgsAfsLists) (reply ReplyAfsLists, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ReplyAfsDetail struct {
Id uint `json:"id"`
AuditId uint `json:"auditId"` // 审核Id
AfsSn string `json:"afsSn"` // 售后单号
Status uint `json:"status"` // 售后状态
AuditStatus uint `json:"auditStatus"` // 主管审核状态
ApproveNotes string `json:"approveNotes"` // 备注
Result string `json:"result"` // 处理结果
CreatedAt int64 `json:"createdAt"` // 创建时间
UpdatedAt int64 `json:"updatedAt"` // 更新时间
SkuName string `json:"skuName"` // 商品名称
ImgUrl string `json:"imgUrl"` // 商品图片
SkuId uint `json:"skuId"` // 商品Id
Price decimal.Decimal `json:"price"` // 商品单价
Quantity uint `json:"quantity"` // 数量
HopeTypeName string `json:"hopeTypeName"` // 期望售后类型
TypeReasonName string `json:"typeReasonName"` // 售后原因
Imgs []string `json:"imgs"` // 售后图片
RefundFee decimal.Decimal `json:"refundFee"` // 退款金额
PackageSend uint `json:"packageSend"` // 发货状态
AfsPackageSend AfsPackageSend `json:"afsPackageSend"` // 售后物流信息
SourceName string `json:"sourceName"` // 所属供应商
OrderSubSn string `json:"orderSubSn"` // 沙马订单号
NewOrderSubSn string `json:"newOrderSubSn"` // 新订单号
SupplyOrderSubSn string `json:"supplyOrderSubSn"` // 供应链订单号
NewSupplyOrderSn string `json:"newSupplyOrderSn"` // 供应链新订单号
Address string `json:"address"` // 售后退货地址
ReturnAddress []ReturnAddressItem `json:"returnAddress"` // 退货地址列表
}
type AfsPackageSend struct {
Name string `json:"name"`
Mobile string `json:"mobile"`
LogisticsCompany string `json:"logisticsCompany"`
WaybillCode string `json:"waybillCode"`
SendGoodsDate int64 `json:"sendGoodsDate"`
Address string `json:"address"`
}
// Detail @Title 售后详情
func (a *afs) Detail(ctx context.Context, afsSn uint64) (reply ReplyAfsDetail, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Detail", afsSn, &reply)
return
}
type ReplyFindByAfsOrderInfo struct {
Id uint `json:"id"`
CreatedAt int64 `json:"createdAt"` // 申请时间
UpdatedAt int64 `json:"updatedAt"` // 更新时间
AfsSn string `json:"afsSn"` // 售后单号
OrderSubSn string `json:"orderSubSn"` // 订单号
HandleStatus uint `json:"handleStatus"` // 处理结果
Status uint `json:"status"` // 售后状态
ApproveNotes string `json:"approveNotes"` // 处理描述
Result string `json:"result"` // 处理结果
SkuName string `json:"skuName"` // 商品名称
SkuId uint `json:"skuId"` // 供应商编码
SupplyPrice decimal.Decimal `json:"price"` // 商品单价
Quantity uint `json:"quantity"` // 售后数量
UpcCode string `json:"upcCode"` // 商品条码
}
// FindByAfsOrderInfos @Title 根据售后单号批量查询信息
func (a *afs) FindByAfsOrderInfos(ctx context.Context, afsSns []uint64) (reply []ReplyFindByAfsOrderInfo, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByAfsOrderInfos", afsSns, &reply)
return
}
type ArgsAfsReject struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// Reject @Title 审核驳回
func (a *afs) Reject(ctx context.Context, args ArgsAfsReject) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Reject", args, &reply)
return
}
// ForcedClose @Title 强制关单
func (a *afs) ForcedClose(ctx context.Context, args ArgsAfsReject) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "ForcedClose", args, &reply)
return
}
type ArgsAfsDeliver struct {
AfsSn string `json:"afsSn"`
ReturnAddressId uint `json:"returnAddressId"`
Notes string `json:"notes"`
}
// Deliver @Title 待客户发货
func (a *afs) Deliver(ctx context.Context, args ArgsAfsDeliver) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Deliver", args, &reply)
return
}
type ArgsAfterDeliverRefund struct {
AfsSn string
Notes string
RefundFee decimal.Decimal
ApplyUserId uint
}
// AfterDeliverRefund @Title 待客户发货后的赔偿
func (a *afs) AfterDeliverRefund(ctx context.Context, args ArgsAfterDeliverRefund) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "AfterDeliverRefund", args, &reply)
return
}
type ArgsAfsOriginReturn struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// OriginReturn @Title 原返
func (a *afs) OriginReturn(ctx context.Context, args ArgsAfsOriginReturn) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "OriginReturn", args, &reply)
return
}
type ArgsAfsRefund struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// Refund @Title 退款
func (a *afs) Refund(ctx context.Context, args ArgsAfsRefund) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Refund", args, &reply)
return
}
type ArgsAfsCompensate struct {
ApplyUserId uint `json:"applyUserId"`
AfsSn string `json:"afsSn"`
RefundFee decimal.Decimal `json:"refundFee"`
Notes string `json:"notes"`
RefundId uint `json:"refundId"`
}
// Compensate @Title 订单赔偿
func (a *afs) Compensate(ctx context.Context, args ArgsAfsCompensate) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Compensate", args, &reply)
return
}
type ArgsAfsCompensateSku struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// CompensateSku @Title 直赔商品
func (a *afs) CompensateSku(ctx context.Context, args ArgsAfsCompensateSku) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "CompensateSku", args, &reply)
return
}
type ArgsAfsReissue struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// Reissue @Title 补发商品
func (a *afs) Reissue(ctx context.Context, args ArgsAfsReissue) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Reissue", args, &reply)
return
}

@ -1,129 +0,0 @@
package supplier
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
)
const (
AfsAuditSwitchOn = 1 // 开
AfsAuditSwitchOff = 2 // 关
)
type afsAudit struct {
}
type ArgsAfsAuditLists struct {
Search AfsAuditSearch
Page bean.Page
}
type AfsAuditSearch struct {
Status uint // 0=全部 1=待审核 2=审核通过 3=审核驳回
AfsSn string
OrderSubSn string
CreatedStartDate string
CreatedEndDate string
}
type ReplyAfsAuditLists struct {
Lists []AfsAuditItem
Total int64
}
type AfsAuditItem struct {
Id uint `json:"id"`
AfsSn uint64 `json:"afsSn"`
OrderSubSn uint64 `json:"orderSubSn"`
SkuName string `json:"skuName"`
Status uint `json:"status"`
Quantity uint `json:"quantity"`
OrderSubAfsId uint `json:"orderSubAfsId"`
RefundFee decimal.Decimal `json:"refundFee"`
Remark string `json:"remark"`
Result string `json:"result"`
Notes string `json:"notes"`
AuditAt int64 `json:"auditAt"`
CreatedAt int64 `json:"createdAt"`
}
// Lists @Title 售后审核列表
func (a *afsAudit) Lists(ctx context.Context, args ArgsAfsAuditLists) (reply ReplyAfsAuditLists, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ArgsAfsAuditAdopt struct {
AuditUserId uint
AfsAuditId uint
}
// Adopt @Title 审核通过
func (a *afsAudit) Adopt(ctx context.Context, args ArgsAfsAuditAdopt) error {
xClient, err := client.GetClient(a)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Adopt", args, &reply)
}
type ArgsAfsAuditReject struct {
AuditUserId uint
Remark string
AfsAuditId uint
}
// Reject @Title 审核驳回
func (a *afsAudit) Reject(ctx context.Context, args ArgsAfsAuditReject) error {
xClient, err := client.GetClient(a)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Reject", args, &reply)
}
type ArgsSetAfsAuditPrice struct {
Price decimal.Decimal
Switch uint
}
// SetAfsAuditConfig @Title 设置售后审核配置
func (a *afsAudit) SetAfsAuditConfig(ctx context.Context, args ArgsSetAfsAuditPrice) error {
xClient, err := client.GetClient(a)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "SetAfsAuditConfig", args, &reply)
}
type ReplyAfsAuditConfig struct {
Price decimal.Decimal
Switch uint
}
// GetAfsAuditConfig @Title 获取售后审核配置
func (a *afsAudit) GetAfsAuditConfig(ctx context.Context) (reply ReplyAfsAuditConfig, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
args := 0
err = xClient.Call(ctx, "GetAfsAuditConfig", args, &reply)
return
}
// Info @Title 审核详情
func (a *afsAudit) Info(ctx context.Context, afsAuditId uint) (reply ReplyAfsDetail, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", afsAuditId, &reply)
return
}

@ -1,216 +0,0 @@
package batch
import (
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"git.oa00.com/supply-chain/service/supplier/batch/order"
"github.com/shopspring/decimal"
"golang.org/x/net/context"
)
type Goods struct {
goods
Order order.Order
}
type goods struct {
}
type GoodsSearch struct {
Name string // 商品名称
CategoryIds []uint // 类目id
BrandName string // 品牌名
UpcCode string // 商品条码
Handle uint // 处理状态 1=待处理 2=入库 3=废弃
SkuId uint // 供应商skuId
MinSupplyPrice decimal.Decimal // 最小采购价
MaxSupplyPrice decimal.Decimal // 最大采购价
}
type ArgsGoodsList struct {
Search GoodsSearch
Page bean.Page
}
type GoodsItem struct {
Id uint `json:"id"`
Name string `json:"name"`
Img string `json:"img"`
GoodsNum string `json:"goodsNum"`
CategoryId uint `json:"categoryId"`
BrandId uint `json:"brandId"`
BrandName string `json:"brandName"`
SkuItems []GoodsItemLists `json:"skuItems"`
UpcCodes []string `json:"upcCodes"`
StockCount uint `json:"stockCount"`
GuidePrices []decimal.Decimal `json:"guidePrices"`
SupplyPrices []decimal.Decimal `json:"supplyPrices"`
Status uint `json:"status"`
CreatedAt int64 `json:"createdAt"`
}
type GoodsItemLists struct {
Id uint `json:"id"`
Specifications []SkuSpecificationItem `json:"specifications"`
Stock uint `json:"stock"`
SupplyPrice decimal.Decimal `json:"supplyPrice"`
GoodsId uint `json:"goodsId"`
Img string `json:"img"`
UpcCode string `json:"upcCode"`
}
type GoodsSpecificationItem struct {
Name string `json:"name"`
Values []string `json:"values"`
}
type SkuSpecificationItem struct {
Name string `json:"name"`
Value string `json:"value"`
}
type ReplyGoodsLists struct {
List []GoodsItem `json:"list"`
Total int64 `json:"total"`
}
// Lists @Title 获取商品列表
func (g *goods) Lists(ctx context.Context, args ArgsGoodsList) (reply ReplyGoodsLists, err error) {
xClient, err := client.GetClient(g)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ArgsGoodsInfo struct {
SkuId uint
}
type ReplyGoodsInfo struct {
Id uint `json:"id"`
Name string `json:"name"`
SupplierId uint `json:"supplierId"`
SupplierName string `json:"supplierName"`
CategoryId uint `json:"categoryId"`
BrandId uint `json:"brandId"`
Imgs []string `json:"imgs"`
Content string `json:"content"`
Attributes []GoodsAttributeItem `json:"attributes"`
Skus []SkuItem `json:"skus"`
Status uint `json:"status"`
}
type GoodsAttributeItem struct {
Name string `json:"name"`
Value string `json:"value"`
GroupName string `json:"groupName"`
}
type SkuSpecItem struct {
Name string `json:"name"`
Value string `json:"value"`
}
type SkuItem struct {
SkuId uint `json:"skuId"`
Color string `json:"color"`
Size string `json:"size"`
SupplyPrice decimal.Decimal `json:"supplyPrice"`
MarketPrice decimal.Decimal `json:"marketPrice"`
UpcCode string `json:"upcCode"`
UnitId uint `json:"uintId"`
TaxCategoryId uint `json:"taxCategoryId"`
TaxName string `json:"taxName"`
TaxCode string `json:"taxCode"`
Unit string `json:"uint"`
Tax decimal.Decimal `json:"tax"`
Img string `json:"img"`
}
// Info @Title 商品详情
func (g *goods) Info(ctx context.Context, goodsId uint) (reply ReplyGoodsInfo, err error) {
xClient, err := client.GetClient(g)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", goodsId, &reply)
return
}
// GetImgs @Title 获取商品主图
func (g *goods) GetImgs(ctx context.Context, goodsId uint) (reply []string, err error) {
xClient, err := client.GetClient(g)
if err != nil {
return
}
err = xClient.Call(ctx, "GetImgs", goodsId, &reply)
return
}
type AdoptItem struct {
Id uint `json:"id"`
Name string `json:"name"`
Error string `json:"error"`
}
// Adopt @Title 批量入库
func (g *goods) Adopt(ctx context.Context, goodsIds []uint) (reply []AdoptItem, err error) {
xClient, err := client.GetClient(g)
if err != nil {
return
}
err = xClient.Call(ctx, "Adopt", goodsIds, &reply)
return
}
// Discard @Title 批量废弃
func (g *goods) Discard(ctx context.Context, goodsIds []uint) (err error) {
xClient, err := client.GetClient(g)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Discard", goodsIds, &reply)
return
}
// ReHandle @Title 重新处理商品
func (g *goods) ReHandle(ctx context.Context, goodsIds []uint) (reply []AdoptItem, err error) {
xClient, err := client.GetClient(g)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "ReHandle", goodsIds, &reply)
return
}
type ReplyByIdItem struct {
SkuId uint `json:"skuId"`
SupplierId uint `json:"supplierIds"`
SupplierName string `json:"supplierName"`
}
// FindBySkuIds @Title 根据商品Ids获取商品信息
func (g *goods) FindBySkuIds(ctx context.Context, skuIds []uint) (reply []ReplyByIdItem, err error) {
xClient, err := client.GetClient(g)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindBySkuIds", skuIds, &reply)
return
}
type ArgsBatchGoodsChange struct {
GoodsIds []uint // 商品id
}
// Change @Title 商品信息变动
func (g *goods) Change(ctx context.Context, args ArgsBatchGoodsChange) (err error) {
xClient, err := client.GetClient(g)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Change", args, &reply)
}

@ -1,31 +0,0 @@
package order
import (
"git.oa00.com/supply-chain/service/client"
"github.com/shopspring/decimal"
"golang.org/x/net/context"
)
type Order struct {
order
}
type order struct {
}
type ArgsOrderFreightFee struct {
OrderSn string
FreightFee decimal.Decimal
FreightFile string
}
// FreightFee @Title 运费处理
func (o *order) FreightFee(ctx context.Context, args ArgsOrderFreightFee) (err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "FreightFee", args, &reply)
return
}

@ -1,118 +0,0 @@
package supplier
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
const (
EnterpriseAuditStatusNone = 1 // 未审核
EnterpriseAuditStatusAdopt = 2 // 通过
EnterpriseAuditStatusReject = 3 // 驳回
)
type enterprise struct {
}
type ArgsEnterpriseLists struct {
Search EnterpriseSearch
Page bean.Page
}
type EnterpriseSearch struct {
Name string // 企业名称
AuditStatus uint // 审核状态 1=待审核 2=通过 3=驳回
}
type ReplyEnterpriseLists struct {
Lists []EnterpriseItem `json:"lists"`
Total int64 `json:"total"`
}
type EnterpriseItem struct {
Id uint `json:"id"`
Name string `json:"name"`
CreatedAt int64 `json:"createdAt"`
AuditStatus uint `json:"auditStatus"`
AuditUserId uint `json:"auditUserId"`
AuditAt int64 `json:"auditAt"`
}
// Lists @Title 审核列表
func (e *enterprise) Lists(ctx context.Context, args ArgsEnterpriseLists) (reply ReplyEnterpriseLists, err error) {
xClient, err := client.GetClient(e)
if err != nil {
return ReplyEnterpriseLists{}, err
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ReplyEnterpriseInfo struct {
Id uint `json:"id"`
AuditStatus uint `json:"auditStatus"`
AuditUserId uint `json:"auditUserId"`
AuditAt int64 `json:"auditAt"`
Reason string `json:"reason"`
Name string `json:"name"`
CreditCode string `json:"creditCode"`
BusinessAddress string `json:"businessAddress"`
LegalPersonName string `json:"legalPersonName"`
PayTaxes uint `json:"payTaxes"`
TaxNumber string `json:"taxNumber"`
BankName string `json:"bankName"`
BankCode string `json:"bankCode"`
BankAddress string `json:"bankAddress"`
Phone string `json:"phone"`
CreatedAt int64 `json:"createdAt"`
BusinessLicense string `json:"businessLicense"`
IdPhotoFront string `json:"idPhotoFront"`
IdPhotoBack string `json:"idPhotoBack"`
AccountPhoto string `json:"accountPhoto"`
ContactName string `json:"contactName"`
ContactEmail string `json:"contactEmail"`
ContactPhone string `json:"contactPhone"`
Position string `json:"position"`
PaytaxesPhoto string `json:"paytaxesPhoto"`
}
// Info @Title 审核详情
func (e *enterprise) Info(ctx context.Context, enterpriseId uint) (reply ReplyEnterpriseInfo, err error) {
xClient, err := client.GetClient(e)
if err != nil {
return ReplyEnterpriseInfo{}, err
}
err = xClient.Call(ctx, "Info", enterpriseId, &reply)
return
}
type ArgsEnterpriseAdopt struct {
AuditUserId uint // 审核人id
EnterpriseId uint // 企业id
Account string // 账号
Password string // 密码
PayType uint // 结算类型 1=预付款 2=月结
}
// Adopt @Title 审核通过
func (e *enterprise) Adopt(ctx context.Context, args ArgsEnterpriseAdopt) error {
xClient, err := client.GetClient(e)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Adopt", args, &reply)
}
type ArgsEnterpriseReject struct {
AuditUserId uint // 审核人id
EnterpriseId uint // 企业id
Reason string // 驳回原因
}
// Reject @Title 审核驳回
func (e *enterprise) Reject(ctx context.Context, args ArgsEnterpriseReject) error {
xClient, err := client.GetClient(e)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Reject", args, &reply)
}

@ -11,13 +11,9 @@ type goods struct {
} }
type GoodsSearch struct { type GoodsSearch struct {
Name string // 商品名称 Name string // 商品名称
CategoryIds []uint // 类目id CategoryId uint64 // 类目id
BrandName string // 品牌名 BrandName string // 品牌名
UpcCode string // 商品条码
Handle uint // 处理状态 1=待处理 2=入库 3=废弃 Handle uint // 处理状态 1=待处理 2=入库 3=废弃
SkuId uint // 供应商skuId
MinSupplyPrice decimal.Decimal // 最小采购价
MaxSupplyPrice decimal.Decimal // 最大采购价
} }
type ArgsGoodsList struct { type ArgsGoodsList struct {
Search GoodsSearch Search GoodsSearch
@ -33,11 +29,8 @@ type GoodsItem struct {
BrandId uint `json:"brandId"` BrandId uint `json:"brandId"`
BrandName string `json:"brandName"` BrandName string `json:"brandName"`
SkuItems []GoodsItemLists `json:"skuItems"` SkuItems []GoodsItemLists `json:"skuItems"`
UpcCodes []string `json:"upcCodes"`
StockCount uint `json:"stockCount"` StockCount uint `json:"stockCount"`
GuidePrices []decimal.Decimal `json:"guidePrices"` MinPrice decimal.Decimal `json:"minPrice"`
SupplyPrices []decimal.Decimal `json:"supplyPrices"`
Status uint `json:"status"`
CreatedAt int64 `json:"createdAt"` CreatedAt int64 `json:"createdAt"`
} }
@ -48,7 +41,6 @@ type GoodsItemLists struct {
SupplyPrice decimal.Decimal `json:"supplyPrice"` SupplyPrice decimal.Decimal `json:"supplyPrice"`
GoodsId uint `json:"goodsId"` GoodsId uint `json:"goodsId"`
Img string `json:"img"` Img string `json:"img"`
UpcCode string `json:"upcCode"`
} }
type GoodsSpecificationItem struct { type GoodsSpecificationItem struct {
@ -106,7 +98,6 @@ type SkuSpecItem struct {
} }
type SkuItem struct { type SkuItem struct {
SkuId uint `json:"skuId"`
Color string `json:"color"` Color string `json:"color"`
Size string `json:"size"` Size string `json:"size"`
SupplyPrice decimal.Decimal `json:"supplyPrice"` SupplyPrice decimal.Decimal `json:"supplyPrice"`
@ -118,7 +109,6 @@ type SkuItem struct {
TaxCode string `json:"taxCode"` TaxCode string `json:"taxCode"`
Unit string `json:"uint"` Unit string `json:"uint"`
Tax decimal.Decimal `json:"tax"` Tax decimal.Decimal `json:"tax"`
Img string `json:"img"`
} }
// Info @Title 商品详情 // Info @Title 商品详情
@ -177,33 +167,3 @@ func (g *goods) ReHandle(ctx context.Context, goodsIds []uint) (reply []AdoptIte
err = xClient.Call(ctx, "ReHandle", goodsIds, &reply) err = xClient.Call(ctx, "ReHandle", goodsIds, &reply)
return return
} }
type ReplyByIdItem struct {
SkuId uint `json:"skuId"`
SupplierId uint `json:"supplierId"`
SupplierName string `json:"supplierName"`
}
// FindBySkuIds @Title 根据商品Ids获取商品信息
func (g *goods) FindBySkuIds(ctx context.Context, skuIds []uint) (reply []ReplyByIdItem, err error) {
xClient, err := client.GetClient(g)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindBySkuIds", skuIds, &reply)
return
}
type ArgsGoodsChange struct {
GoodsIds []uint // 商品id
}
// Change @Title 商品信息变动
func (g *goods) Change(ctx context.Context, args ArgsGoodsChange) (err error) {
xClient, err := client.GetClient(g)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Change", args, &reply)
}

@ -1,25 +0,0 @@
package supplier
import (
"git.oa00.com/supply-chain/service/client"
"golang.org/x/net/context"
)
type logisticsCompany struct {
}
type CompanyItem struct {
Id uint `json:"id"`
Name string `json:"name"`
}
// Select @Title 物流公司筛选
func (l *logisticsCompany) Select(ctx context.Context) (reply []CompanyItem, err error) {
xClient, err := client.GetClient(l)
if err != nil {
return nil, err
}
args := 0
err = xClient.Call(ctx, "Select", args, &reply)
return
}

@ -1,30 +0,0 @@
package supplier
import (
"git.oa00.com/supply-chain/service/client"
"golang.org/x/net/context"
)
type returnAddress struct {
}
type ReplyReturnAddressAll struct {
SupplierId uint `json:"supplierId"`
Item []ReturnAddressItem `json:"item"`
}
type ReturnAddressItem struct {
Id uint `json:"id"`
Address string `json:"name"`
}
// All @Title 全部退货地址
func (r *returnAddress) All(ctx context.Context) (reply []ReplyReturnAddressAll, err error) {
xClient, err := client.GetClient(r)
if err != nil {
return nil, err
}
args := 0
err = xClient.Call(ctx, "All", args, &reply)
return
}

@ -4,7 +4,6 @@ import (
"context" "context"
"git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean" "git.oa00.com/supply-chain/service/lib/bean"
"git.oa00.com/supply-chain/service/supplier/batch"
"github.com/shopspring/decimal" "github.com/shopspring/decimal"
) )
@ -14,13 +13,6 @@ type Supplier struct {
supplier supplier
WarnLiaison warnLiaison WarnLiaison warnLiaison
WalletApply supplierWalletApply WalletApply supplierWalletApply
LogisticsCompany logisticsCompany
ReturnAddress returnAddress
Afs afs
AfsAudit afsAudit
BatchGoods batch.Goods
Enterprise enterprise
Real supplierReal
} }
type supplier struct { type supplier struct {
@ -103,32 +95,12 @@ func (s *supplier) Disabled(ctx context.Context, supplierId uint) error {
} }
type ReplySupplierInfo struct { type ReplySupplierInfo struct {
Name string `json:"name"`
CreditCode string `json:"creditCode"`
BusinessAddress string `json:"businessAddress"`
LegalPersonName string `json:"legalPersonName"`
PayTaxes uint `json:"payTaxes"`
TaxNumber string `json:"taxNumber"`
BankName string `json:"bankName"`
BankCode string `json:"bankCode"`
BankAddress string `json:"bankAddress"`
Phone string `json:"phone"`
CreatedAt int64 `json:"createdAt"`
BusinessLicense string `json:"businessLicense"`
IdPhotoFront string `json:"idPhotoFront"`
IdPhotoBack string `json:"idPhotoBack"`
AccountPhoto string `json:"accountPhoto"`
ContactName string `json:"contactName"`
ContactEmail string `json:"contactEmail"`
ContactPhone string `json:"contactPhone"`
Position string `json:"position"`
PaytaxesPhoto string `json:"paytaxesPhoto"`
SupplierId uint SupplierId uint
SupplierName string // 供应商名称 SupplierName string // 供应商名称
Account string // 账户名 Account string // 账户名
PayType uint // 结算方式 PayType uint // 结算方式
Liaison string // 联系人 Liaison string // 联系人
Phone string // 手机号
Annex string // 附件 Annex string // 附件
WarnStatus uint // 预警状态 WarnStatus uint // 预警状态
WarnValue decimal.Decimal // 预警值 WarnValue decimal.Decimal // 预警值
@ -144,42 +116,6 @@ func (s *supplier) Info(ctx context.Context, supplierId uint) (reply ReplySuppli
return return
} }
// InfoByBatchOrderSn @Title 通过订单获取供应商信息
func (s *supplier) InfoByBatchOrderSn(ctx context.Context, batchOrderSn string) (reply ReplySupplierInfo, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return ReplySupplierInfo{}, err
}
err = xClient.Call(ctx, "InfoByBatchOrderSn", batchOrderSn, &reply)
return
}
// InfoByRetailOrderSn @Title 通过零售订单获取供应商信息
func (s *supplier) InfoByRetailOrderSn(ctx context.Context, retailOrderSn string) (reply ReplySupplierInfo, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return ReplySupplierInfo{}, err
}
err = xClient.Call(ctx, "InfoByRetailOrderSn", retailOrderSn, &reply)
return
}
type ReplyFindInfoByRetailOrderSn struct {
SupplierId uint
SupplierName string // 供应商名称
OrderSn string // 订单号
}
// FindInfoByRetailOrderSn @Title 根据零售订单查询供应商信息
func (s *supplier) FindInfoByRetailOrderSn(ctx context.Context, retailOrderSns []string) (reply []ReplyFindInfoByRetailOrderSn, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindInfoByRetailOrderSn", retailOrderSns, &reply)
return
}
type ArgsSupplierEdit struct { type ArgsSupplierEdit struct {
SupplierId uint SupplierId uint
SupplierName string // 供应商名称 SupplierName string // 供应商名称
@ -215,18 +151,3 @@ func (s *supplier) UpdateWarn(ctx context.Context, args ArgsSupplierUpdateWarn)
reply := 0 reply := 0
return xClient.Call(ctx, "UpdateWarn", args, &reply) return xClient.Call(ctx, "UpdateWarn", args, &reply)
} }
type ReplySupplierItem struct {
Id uint `json:"id"`
Name string `json:"name"`
}
// Select @Title 筛选非禁用的供应商
func (s *supplier) Select(ctx context.Context, status uint) (reply []ReplySupplierItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "Select", status, &reply)
return
}

@ -105,7 +105,6 @@ type ArgsSupplierApplyReAudit struct {
Password string // 密码 Password string // 密码
Liaison string // 联系人 Liaison string // 联系人
Phone string // 手机号 Phone string // 手机号
PayType uint // 结算类型
Annex string // 附件 Annex string // 附件
} }

@ -1,105 +0,0 @@
package supplier
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type supplierReal struct {
}
type ArgsSupplierRealLists struct {
Search SupplierRealSearch
Page bean.Page
}
type SupplierRealSearch struct {
SupplierName string
ApplyUserName string
AuditStatus uint // 状态 1=待审核 2=审核通过 3=审核驳回
}
type ReplySupplierRealLists struct {
Lists []SupplierRealItem
Total int64
}
type SupplierRealItem struct {
Id uint `json:"id"`
SupplierName string `json:"supplierName"`
ApplyUserName string `json:"applyUserName"`
Name string `json:"name"`
Code string `json:"code"`
CardImg string `json:"cardImg"`
AuditStatus uint `json:"auditStatus"`
AuditUserId uint `json:"auditUserId"`
AuditAt int64 `json:"auditAt"`
Reason string `json:"reason"`
CreatedAt int64 `json:"createdAt"`
}
// List @Title 实名认证列表
func (s *supplierReal) List(ctx context.Context, args ArgsSupplierRealLists) (reply ReplySupplierRealLists, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return ReplySupplierRealLists{}, err
}
err = xClient.Call(ctx, "List", args, &reply)
return
}
type ReplySupplierRealInfo struct {
Id uint `json:"id"`
SupplierName string `json:"supplierName"`
ApplyUserName string `json:"applyUserName"`
Name string `json:"name"`
Code string `json:"code"`
CardImg string `json:"cardImg"`
AuditStatus uint `json:"auditStatus"`
AuditUserId uint `json:"auditUserId"`
AuditAt int64 `json:"auditAt"`
Reason string `json:"reason"`
CreatedAt int64 `json:"createdAt"`
}
// Info @Title 审核详情
func (s *supplierReal) Info(ctx context.Context, RealId uint) (reply ReplySupplierRealInfo, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return ReplySupplierRealInfo{}, err
}
err = xClient.Call(ctx, "Info", RealId, &reply)
return
}
type ArgsSupplierRealAdopt struct {
RealId uint
AuditUserId uint // 审核人Id
}
// Adopt @Title 审核通过
func (s *supplierReal) Adopt(ctx context.Context, args ArgsSupplierRealAdopt) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Adopt", args, &reply)
}
type ArgsSupplierRealReject struct {
RealId uint
AuditUserId uint // 审核人Id
Reason string // 驳回原因
}
// Reject @Title 审核驳回
func (s *supplierReal) Reject(ctx context.Context, args ArgsSupplierRealReject) error {
xClient, err := client.GetClient(s)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Reject", args, &reply)
}

@ -119,39 +119,3 @@ func (s *supplierWalletApply) Apply(ctx context.Context, args ArgsSupplierWallet
reply := 0 reply := 0
return xClient.Call(ctx, "Apply", args, &reply) return xClient.Call(ctx, "Apply", args, &reply)
} }
type ArgsSupplierWalletHistory struct {
Search SupplierWalletHistorySearch
Page bean.Page
}
type SupplierWalletHistorySearch struct {
SupplierName string // 供应商名称
Type int // 类型
Date string // 日期
}
type SupplierWalletHistoryItem struct {
Id uint `json:"id"`
SupplierName string `json:"supplierName"`
Type uint `json:"type"`
Amount decimal.Decimal `json:"amount"`
AfterAmount decimal.Decimal `json:"afterAmount"`
ApplyUserId uint `json:"applyUserId"`
CreatedAt int64 `json:"createdAt"`
}
type ReplySupplierWalletHistoryLists struct {
Lists []SupplierWalletHistoryItem
Total int64
}
// History @Title 余额变更记录
func (s *supplierWalletApply) History(ctx context.Context, args ArgsSupplierWalletHistory) (reply ReplySupplierWalletHistoryLists, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "History", args, &reply)
return
}

@ -1,323 +0,0 @@
package supply
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
)
const (
//售后状态 1=售后申请中 2=客户发货 3=收货处理中 4=售后完成 5=售后关闭
)
type afterService struct {
}
type ArgsRetailHistory struct {
Search RetailHistorySearch
Page bean.Page
}
type RetailHistorySearch struct {
AfterServiceSn string `label:"售后单号"`
OrderSn string `label:"订单号"`
Status uint `label:"售后状态"`
SourceId uint `label:"所属供应商"`
CustomerId uint `label:"所属客户"`
CreateStartDate string `label:"创建开始日期"`
CreateEndDate string `label:"创建结束日期"`
}
type RetailHistoryItem struct {
Id uint `json:"id"`
AfterServiceSn uint64 `json:"afterServiceSn"`
OrderSn uint64 `json:"orderSn"`
Name string `json:"name"`
Quantity uint `json:"quantity"`
Status uint `json:"status"`
Reason string `json:"reason"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
Source string `json:"source"`
CustomerId uint `json:"customerId"`
}
type ReplyRetailHistory struct {
Lists []RetailHistoryItem `json:"lists"`
Total int64 `json:"total"`
}
// RetailAfsHistory @Title 零售订单售后记录
func (a *afterService) RetailAfsHistory(ctx context.Context, args ArgsRetailHistory) (reply ReplyRetailHistory, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return ReplyRetailHistory{}, err
}
err = xClient.Call(ctx, "RetailAfsHistory", args, &reply)
return
}
type ArgsAfsLists struct {
Search AfsListSearch `json:"search"`
Page bean.Page `json:"page"`
}
type AfsListSearch struct {
Status uint `json:"status"`
AfsSn string `json:"afsSn"`
OrderSubSn string `json:"orderSubSn"`
CreatedStartDate string `json:"createdStartAt"`
CreatedEndDate string `json:"createdEndAt"`
}
type ReplyAfsLists struct {
Lists []AfsItem `json:"lists"`
Total int64 `json:"total"`
}
type AfsItem struct {
Id uint `json:"id"`
AfsSn string `json:"afsSn"`
OrderSubSn string `json:"orderSubSn"`
SourceId uint `json:"sourceId"`
SourceSkuId string `json:"sourceSkuId"`
SkuName string `json:"skuName"`
Quantity uint `json:"quantity"`
Status uint `json:"status"`
Result string `json:"result"`
Price decimal.Decimal `json:"price"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
}
// Lists @Title 售后列表
func (a *afterService) Lists(ctx context.Context, args ArgsAfsLists) (reply ReplyAfsLists, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return ReplyAfsLists{}, err
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type ArgsAfterServiceDeliver struct {
SourceAfsSn string `json:"sourceAfsSn"`
SourceSkuId string `json:"sourceSkuId"`
SourceOrderSn string `json:"sourceOrderSn"`
ApproveNotes string `json:"approveNotes"`
}
// Deliver @Title 需要发货
func (a *afterService) Deliver(ctx context.Context, args ArgsAfterServiceDeliver) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return err
}
reply := 0
err = xClient.Call(ctx, "Deliver", args, &reply)
return
}
type ArgsAfterServiceReceipt struct {
SourceAfsSn string `json:"sourceAfsSn"`
SourceSkuId string `json:"sourceSkuId"`
SourceOrderSN string `json:"sourceOrderSN"`
}
// Receipt @Title 收货处理
func (a *afterService) Receipt(ctx context.Context, args ArgsAfterServiceReceipt) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return err
}
reply := 0
err = xClient.Call(ctx, "Receipt", args, &reply)
return
}
type ArgsAfterServiceClose struct {
Source source `json:"source"`
SourceAfsSn string `json:"sourceAfsSn"`
SourceSkuId string `json:"sourceSkuId"`
SourceOrderSn string `json:"sourceOrderSn"`
Result string `json:"result"`
ApproveNotes string `json:"approveNotes"`
}
// Close @Title 关闭售后单
func (a *afterService) Close(ctx context.Context, args ArgsAfterServiceClose) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return err
}
reply := 0
err = xClient.Call(ctx, "Close", args, &reply)
return
}
type ArgsAfterServiceRefund struct {
Source source `json:"source"`
SourceAfsSn string `json:"sourceAfsSn"`
SourceSkuId string `json:"sourceSkuId"`
SourceOrderSn string `json:"sourceOrderSn"`
Result string `json:"result"`
RefundFee decimal.Decimal `json:"refundFee"`
RefundOrderFee decimal.Decimal `json:"refundOrderFee"`
RefundFreightFee decimal.Decimal `json:"refundFreightFee"`
ApproveNotes string `json:"approveNotes"`
}
// Refund @Title 退款
func (a *afterService) Refund(ctx context.Context, args ArgsAfterServiceRefund) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return err
}
reply := 0
err = xClient.Call(ctx, "Refund", args, &reply)
return
}
type ArgsAfterServiceNewOrder struct {
Source source `json:"source"`
SourceAfsSn string `json:"sourceAfsSn"`
SourceSkuId string `json:"sourceSkuId"`
SourceOrderSn string `json:"sourceOrderSn"`
Result string `json:"result"`
NewSourceOrderSn string `json:"newSourceOrderSn"`
ApproveNotes string
Skus []NewOrderSku `json:"skus"`
}
type NewOrderSku struct {
SourceSkuId string `json:"sourceSkuId"`
Quantity uint `json:"quantity"`
Name string `json:"name"`
}
// NewOrder @Title 新订单
func (a *afterService) NewOrder(ctx context.Context, args ArgsAfterServiceNewOrder) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return err
}
reply := 0
err = xClient.Call(ctx, "NewOrder", args, &reply)
return
}
type ReplyAfterServiceDetail struct {
Id uint `json:"id"`
AfsSn string `json:"afsSn"` // 售后单号
Status uint `json:"status"` // 状态
ApproveNotes string `json:"approveNotes"` // 备注
Result string `json:"result"` // 处理结果
CreatedAt int64 `json:"createdAt"` // 创建时间
UpdatedAt int64 `json:"updatedAt"` // 更新时间
SkuName string `json:"skuName"` // 商品名称
ImgUrl string `json:"imgUrl"` // 商品图片
SkuId uint `json:"skuId"` // skuId
SupplySkuId uint `json:"supplySkuId"` // 供应商skuId
Price decimal.Decimal `json:"price"` // 采购单价
SupplyPrice decimal.Decimal `json:"supplyPrice"` // 供货价
Quantity uint `json:"quantity"` // 数量
HopeTypeName string `json:"hopeTypeName"` // 期望售后类型
TypeReasonName string `json:"typeReasonName"` // 售后原因
Imgs []string `json:"imgs"` // 售后图片
PackageSend uint `json:"packageSend"` // 发货状态
AfsPackageSend AfsPackageSend `json:"afsPackageSend"` // 售后信息
OrderSubSn uint64 `json:"orderSubSn"` // 订单号
SourceOrderSubSn string `json:"sourceOrderSubSn"` // 供应商的订单号
SourceId uint `json:"sourceId"` // 供应商id
ChannelId uint `json:"channelId"` // 客户id
NewOrderSubSn string `json:"newOrderSubSn"` // 新订单信息
NewSourceOrderSubSn string `json:"newSourceOrderSubSn"` // 新供应商订单信息
ReceiverName string `json:"receiverName"` // 收件人名称
ReceiverPhone string `json:"receiverPhone"` // 收件手机号
ReceiverAddress string `json:"receiverAddress"` // 收件人地址
StockOutAt int64 `json:"stockOutAt"` // 订单发货时间
RefundFee decimal.Decimal `json:"refundFee"` // 沙马退款金额
SourceRefundFee decimal.Decimal `json:"sourceRefundFee"` // 供应商退款金额
}
type AfsPackageSend struct {
Name string `json:"name"` // 售后收件人
Mobile string `json:"mobile"` /// 售后手机号
ZipCode string `json:"zipCode"`
Address string `json:"address"` // 售后地址
LogisticsCompany string `json:"logisticsCompany"` // 快递公司
WaybillCode string `json:"waybillCode"` // 运单号
SendGoodsDate int64 `json:"sendGoodsDate"` // 发货时间
}
// Detail @Title 售后详情
func (a *afterService) Detail(ctx context.Context, afsSn string) (reply ReplyAfterServiceDetail, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Detail", afsSn, &reply)
return
}
type ReplyAfterServiceLogisticsAddress struct {
Name string `json:"name"` // 姓名
Mobile string `json:"mobile"` // 手机号
ZipCode string `json:"zipCode"` // 邮编
Address string `json:"address"` // 地址
}
// LogisticsAddress @Title 寄回地址
func (a *afterService) LogisticsAddress(ctx context.Context, afsSn string) (reply ReplyAfterServiceLogisticsAddress, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "LogisticsAddress", afsSn, &reply)
return
}
type ReplyAfsInfoById struct {
Id uint `json:"id"`
AfsSn string `json:"afsSn"`
SourceAfsSn string `json:"sourceAfsSn"`
SkuId uint `json:"skuId"`
SourceSkuId string `json:"sourceSkuId"`
SourceId uint `json:"sourceId"`
OrderSubSn string `json:"orderSn"`
SourceOrderSn string `json:"SourceOrderSn"`
OrderFee decimal.Decimal `json:"orderFee"`
SourceOrderFee decimal.Decimal `json:"sourceOrderFee"`
FreightFee decimal.Decimal `json:"freightFee"`
ApproveNotes string `json:"approveNotes"`
}
// FindByAfsId @Title 获取售后信息
func (a *afterService) FindByAfsId(ctx context.Context, afsId uint) (reply ReplyAfsInfoById, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByAfsId", afsId, &reply)
return
}
type ReplySourceSkuIdsAfsInfos struct {
SourceId uint // 供应商Id
SourceName string // 供应商名称
ChannelId uint // 客户Id
SkuId uint // 沙马skuId
SourceSkuId string // 供应商skuId
HopeTypeName string // 期望售后类型
TypeReasonName string // 售后原因
CustomerPrice decimal.Decimal // 销售价格
}
// FindBySourceSkuIdsAfsInfos @Title 根据sourceSkuId查询售后信息
func (a *afterService) FindBySourceSkuIdsAfsInfos(ctx context.Context, sourceSkuIds []uint) (reply []ReplySourceSkuIdsAfsInfos, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "FindBySourceSkuIdsAfsInfos", sourceSkuIds, &reply)
return
}

@ -73,16 +73,6 @@ func (b *brand) Add(ctx context.Context, args ArgsBrandAdd) (err error) {
return xClient.Call(ctx, "Add", args, &reply) return xClient.Call(ctx, "Add", args, &reply)
} }
// Adds @Title 添加品牌
func (b *brand) Adds(ctx context.Context, brandNames []string) (err error) {
reply := 0
xClient, err := client.GetClient(b)
if err != nil {
return err
}
return xClient.Call(ctx, "Adds", brandNames, &reply)
}
type ArgsBrandEdit struct { type ArgsBrandEdit struct {
BrandId uint // 品牌id BrandId uint // 品牌id
Name string // 品牌名称 Name string // 品牌名称

@ -12,7 +12,6 @@ type CategoryItem struct {
Id uint `json:"id"` Id uint `json:"id"`
Name string `json:"name"` Name string `json:"name"`
ParentId uint `json:"parentId"` ParentId uint `json:"parentId"`
Hidden uint `json:"hidden"` // 隐藏状态 1=隐藏 2=显示
Children []CategoryItem `json:"children"` Children []CategoryItem `json:"children"`
} }
@ -26,16 +25,6 @@ func (c *category) All(ctx context.Context) (result []CategoryItem, err error) {
return return
} }
// AllNoHidden @Title 获取显示的分类
func (c *category) AllNoHidden(ctx context.Context) (result []CategoryItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "AllNoHidden", 0, &result)
return
}
type ArgsCategoryAdd struct { type ArgsCategoryAdd struct {
Name string // 分类名称 Name string // 分类名称
ParentId uint // 上级id ParentId uint // 上级id
@ -51,21 +40,6 @@ func (c *category) Add(ctx context.Context, args ArgsCategoryAdd) (err error) {
return xClient.Call(ctx, "Add", args, &reply) return xClient.Call(ctx, "Add", args, &reply)
} }
type ReplyCategoryAddError struct {
CategoryName string `json:"categoryName"`
ErrMsg string `json:"errMsg"`
}
// Adds @Title 添加分类
func (c *category) Adds(ctx context.Context, args []ArgsCategoryAdd) (reply []ReplyCategoryAddError, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Adds", args, &reply)
return
}
type ArgsCategoryEdit struct { type ArgsCategoryEdit struct {
CategoryId uint // 分类id CategoryId uint // 分类id
Name string // 分类名称 Name string // 分类名称
@ -101,18 +75,3 @@ func (c *category) FindByIds(ctx context.Context, args ArgsCategoryFindByIds) (r
err = xClient.Call(ctx, "FindByIds", args, &result) err = xClient.Call(ctx, "FindByIds", args, &result)
return return
} }
type ArgsChangeHidden struct {
CategoryId uint
Hidden uint // 1=隐藏 2=显示
}
// ChangeHidden @Title 切换隐藏状态
func (c *category) ChangeHidden(ctx context.Context, args ArgsChangeHidden) error {
xClient, err := client.GetClient(c)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "ChangeHidden", args, &reply)
}

@ -3,48 +3,27 @@ package channel
import ( import (
"context" "context"
"git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
"github.com/smallnest/rpcx/share" "github.com/smallnest/rpcx/share"
) )
const (
AfterServiceStatusApply = 1 // 售后申请中
AfterServiceStatusDeliver = 2 // 客户发货
AfterServiceStatusHandle = 3 // 收货处理中
AfterServiceStatusFinal = 4 // 售后完成
AfterServiceStatusClose = 5 // 售后关闭
AfterServicePackageSendNone = 1 // 无
AfterServicePackageSendWait = 2 // 待客户发货
AfterServicePackageSendAlready = 3 // 客户已发货
)
type afterService struct { type afterService struct {
} }
type ArgsAfterServiceCan struct { type ArgsAfterServiceType struct {
OrderSn string // 订单编号 OrderSn string // 订单编号
SkuId uint // skuId SkuId uint // skuId
} }
type ReplyAfterServiceCan struct { type ReplyAfterServiceType struct {
CanApply uint `json:"canApply"` // 是否可申请售后 1=可申请 2=不可申请 Type string `json:"type"` // 类型
SkuId uint `json:"skuId"` // skuId
AppliedNum uint `json:"appliedNum"` // 已申请售后商品数量
CannotApplyTip string `json:"cannotApplyTip"` // 不可申请原因
Types []AfterServiceType `json:"types"`
}
type AfterServiceType struct {
TypeId string `json:"typeId"` // 类型
TypeName string `json:"typeName"` // 类型名称 TypeName string `json:"typeName"` // 类型名称
} }
// Can @Title 获取是否可发起售后 // Type @Title 获取可发起的售后类型
func (a *afterService) Can(ctx context.Context, channelId string, args ArgsAfterServiceCan) (reply ReplyAfterServiceCan, err error) { func (a *afterService) Type(ctx context.Context, channelId string, args ArgsAfterServiceType) (reply []ReplyAfterServiceType, err error) {
xClient, err := client.GetClient(a) xClient, err := client.GetClient(a)
if err != nil { if err != nil {
return return
} }
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Can", args, &reply) err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Type", args, &reply)
return return
} }
@ -70,11 +49,10 @@ func (a *afterService) Reason(ctx context.Context, channelId string, args ArgsAf
} }
type ArgsAfterServiceApply struct { type ArgsAfterServiceApply struct {
TypeId string // 售后类型 Type string // 售后类型
TypeName string // 售后名称 TypeName string // 售后名称
ReasonCode string // 售后原因编码 ReasonCode string // 售后原因编码
ReasonName string // 售后原因描述 ReasonName string // 售后原因描述
Describe string // 售后描述
ChannelAfterServiceSn string // 渠道售后单号 ChannelAfterServiceSn string // 渠道售后单号
OrderSn string // 订单编号 OrderSn string // 订单编号
SkuId uint // skuId SkuId uint // skuId
@ -141,90 +119,3 @@ func (a *afterService) Cancel(ctx context.Context, channelId string, afterServic
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Cancel", afterServiceSn, &reply) err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Cancel", afterServiceSn, &reply)
return return
} }
type AfterServiceSearch struct {
Name string // 商品名称
OrderSn string // 订单单号
AfsSn string // 售后单号
CreatedDateStart string // 售后日期开始
CreatedDateEnd string // 售后日期结束
}
type ArgsAfterServiceLists struct {
Search AfterServiceSearch
Page bean.Page
}
type ReplyAfterServiceLists struct {
Lists []AfterServiceItem `json:"lists"`
Total int64 `json:"total"`
}
type AfterServiceItem struct {
Id uint `json:"id"`
AfsSn string `json:"afsSn"`
OrderSubSn string `json:"orderSubSn"`
Name string `json:"name"`
ImgUrl string `json:"imgUrl"`
Quantity uint `json:"quantity"`
TypeReasonName string `json:"typeReasonName"`
OrderSubId uint `json:"orderSubId"`
Result string `json:"result"`
Status uint `json:"status"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
}
// Lists @Title 售后列表
func (a *afterService) Lists(ctx context.Context, channelId string, args ArgsAfterServiceLists) (reply ReplyAfterServiceLists, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Lists", args, &reply)
return
}
type ReplyAfterServiceDetail struct {
Id uint `json:"id"`
AfsSn string `json:"afsSn"`
OrderSubSn string `json:"orderSubSn"`
Status uint `json:"status"`
ApproveNotes string `json:"approveNotes"`
Result string `json:"result"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
SkuName string `json:"skuName"`
ImgUrl string `json:"imgUrl"`
SkuId uint `json:"skuId"`
Price decimal.Decimal `json:"price"`
Quantity uint `json:"quantity"`
HopeTypeName string `json:"hopeTypeName"`
TypeReasonName string `json:"typeReasonName"`
Imgs []string `json:"imgs"`
LogisticsCompany string `json:"logisticsCompany"`
WaybillCode string `json:"waybillCode"`
SendAt int64 `json:"sendAt"`
ReturnAddress string `json:"returnAddress"`
PackageSend uint `json:"packageSend"`
AfsPackageSend AfsPackageSend `json:"afsPackageSend"`
RefundFee decimal.Decimal `json:"refundFee"`
NewOrderSubSn string `json:"NewOrderSubSn"`
}
type AfsPackageSend struct {
Name string `json:"name"`
Mobile string `json:"mobile"`
ZipCode string `json:"zipCode"`
Address string `json:"address"`
LogisticsCompany string `json:"logisticsCompany"`
WaybillCode string `json:"waybillCode"`
SendGoodsDate int64 `json:"sendGoodsDate"`
}
// Detail @Title 售后详情
func (a *afterService) Detail(ctx context.Context, channelId string, afsSn string) (reply ReplyAfterServiceDetail, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Detail", afsSn, &reply)
return
}

@ -4,5 +4,4 @@ type Channel struct {
Sku sku Sku sku
Order order Order order
AfterService afterService AfterService afterService
Mq mq
} }

@ -1,65 +0,0 @@
package channel
import (
"context"
"git.oa00.com/supply-chain/service/client"
"github.com/smallnest/rpcx/share"
)
const (
MqSubscribeNameSkuPriceChange = "sku_price_change" // sku价格变动
MqSubscribeNameSkuChange = "sku_change" // sku信息变动
MqSubscribeNameOrderSplit = "order_split" // 订单拆单
MqSubscribeNameOrderStockOut = "order_stock_out" // 订单出库
MqSubscribeNameOrderDelivered = "order_delivered" // 订单签收
MqSubscribeNameOrderFinish = "order_finish" // 订单完成
MqSubscribeNameOrderCancel = "order_cancel" // 订单取消
MqSubscribeNameAfsDeliver = "afs_deliver" // 需要客户发货
MqSubscribeNameAfsWait = "afs_wait" // 等待收货处理
MqSubscribeNameAfsClose = "afs_close" // 售后关闭
MqSubscribeNameAfsFinish = "afs_finish" // 售后完成
)
type mq struct {
}
type ArgsMqSubscribe struct {
Name string // 队列名称
AppKey string // 队列名称
}
// Subscribe @Title 订阅mq
func (m *mq) Subscribe(ctx context.Context, channelId string, args ArgsMqSubscribe) (key string, err error) {
xClient, err := client.GetClient(m)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Subscribe", args, &key)
return
}
// SubscribeCancel @Title 订阅取消
func (m *mq) SubscribeCancel(ctx context.Context, channelId string, args ArgsMqSubscribe) (err error) {
reply := 0
xClient, err := client.GetClient(m)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "SubscribeCancel", args, &reply)
return
}
type ArgsMqUser struct {
AppKey string
AppSecret string
}
// User @Title Mq用户
func (m *mq) User(ctx context.Context, channelId string, args ArgsMqUser) (err error) {
reply := 0
xClient, err := client.GetClient(m)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "User", args, &reply)
return
}

@ -3,8 +3,6 @@ package channel
import ( import (
"context" "context"
"git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
_interface "git.oa00.com/supply-chain/service/supply/interface"
"github.com/shopspring/decimal" "github.com/shopspring/decimal"
"github.com/smallnest/rpcx/share" "github.com/smallnest/rpcx/share"
) )
@ -12,7 +10,6 @@ import (
const ( const (
ReplyOrderFreightFeeErrCodeNone = 0 // 无错误 ReplyOrderFreightFeeErrCodeNone = 0 // 无错误
ReplyOrderFreightFeeErrCodeErr = 1 // 有错误 ReplyOrderFreightFeeErrCodeErr = 1 // 有错误
ReplyOrderFreightFeeErrCodeDone = 2 // 已下架
OrderStatusLock = 1 // 锁单待确认 OrderStatusLock = 1 // 锁单待确认
OrderStatusLadingBill = 2 // 提单 OrderStatusLadingBill = 2 // 提单
@ -23,16 +20,10 @@ const (
OrderSubStatusSendOutGoods = 3 // 出库/发货 OrderSubStatusSendOutGoods = 3 // 出库/发货
OrderSubStatusDelivered = 4 // 妥投 OrderSubStatusDelivered = 4 // 妥投
OrderSubStatusFinal = 5 // 完成 OrderSubStatusFinal = 5 // 完成
OrderSubStatusCancel = 6 // 取消
OrderCancelSubStatusFalse = 1 // 未取消
OrderCancelSubStatusTrue = 2 // 已取消
OrderSubIsSplitFalse = 1 // 无 OrderSubIsSplitFalse = 1 // 无
OrderSubIsSplitTrue = 2 // 被拆单 OrderSubIsSplitTrue = 2 // 被拆单
OrderSubTypeApi = 1 // api接口下单
OrderSubTypeCustomerWeb = 2 // 客户商城下单
) )
type order struct { type order struct {
@ -77,7 +68,6 @@ type ArgsOrderSubmit struct {
OrderFee decimal.Decimal // 订单金额-不含运费 OrderFee decimal.Decimal // 订单金额-不含运费
FreightFees []OrderFreightFee // 运费 FreightFees []OrderFreightFee // 运费
UserIp string // 下单用户ip UserIp string // 下单用户ip
Type uint // 下单方式
} }
type OrderFreightFee struct { type OrderFreightFee struct {
@ -93,8 +83,8 @@ type Receiver struct {
} }
type ReplyOrderSubmit struct { type ReplyOrderSubmit struct {
OrderSn string `json:"orderSn"` OrderSn string
ChannelOrderSn string `json:"channelOrderSn"` ChannelOrderSn string
} }
// Submit @Title 下单 // Submit @Title 下单
@ -127,203 +117,12 @@ func (o *order) Close(ctx context.Context, channelId string, orderSn string) (er
return xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Close", orderSn, &reply) return xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Close", orderSn, &reply)
} }
type ArgsOrderChannel struct {
OrderSn string // 订单编号
Reason string // 取消原因
}
// Cancel @Title 订单取消 // Cancel @Title 订单取消
func (o *order) Cancel(ctx context.Context, channelId string, args ArgsOrderChannel) (err error) { func (o *order) Cancel(ctx context.Context, channelId string, orderSn string) (err error) {
reply := 0
xClient, err := client.GetClient(o)
if err != nil {
return
}
return xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Cancel", args, &reply)
}
type ArgsOrderSplit struct {
RootOrderSn string
ChannelOrderSn string
}
type ReplyOrderSplit struct {
OrderSn string `json:"orderSn"`
ChannelOrderSn string `json:"channelOrderSn"`
FreightFee decimal.Decimal `json:"freightFee"`
OrderFee decimal.Decimal `json:"orderFee"`
Skus []OrderSplitSkuItem `json:"skus"`
SubOrders []*OrderSubSplit `json:"subOrders"`
Type uint `json:"type"`
}
type OrderSubSplit struct {
OrderSn string `json:"orderSn"`
FreightFee decimal.Decimal `json:"freightFee"`
OrderFee decimal.Decimal `json:"orderFee"`
Skus []OrderSplitSkuItem `json:"skus"`
SubOrders []*OrderSubSplit `json:"subOrders"`
}
type OrderSplitSkuItem struct {
SkuId uint `json:"skuId"`
Quantity uint `json:"quantity"`
}
// Split @Title 获取拆单信息
func (o *order) Split(ctx context.Context, channelId string, args ArgsOrderSplit) (reply ReplyOrderSplit, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Split", args, &reply)
return
}
type OrderListsSearch struct {
SkuIds []uint // 商品Ids
SkuName string // 商品名称
Status []uint // 订单状态
CancelStatus uint // 订单取消状态
OrderSn string // 订单编号
ReceiverName string // 收件人
ReceiverMobile string // 手机号
LadingBillDateStart string // 提单日期
LadingBillDateEnd string // 提单日期
FinishDateStart string // 完成日期
FinishDateEnd string // 完成日期
}
type ArgsOrderLists struct {
Search OrderListsSearch
Page bean.Page
}
type OrderItem struct {
OrderSn string `json:"orderSn"`
RootOrderSn string `json:"rootOrderSn"`
ChannelOrderSn string `json:"channelOrderSn"`
ReceiverName string `json:"receiverName"`
ReceiverMobile string `json:"receiverMobile"`
Address string `json:"address"`
FreightFee decimal.Decimal `json:"freightFee"`
OrderFee decimal.Decimal `json:"orderFee"`
LadingBillAt int64 `json:"ladingBillAt"`
DeliveredAt int64 `json:"deliveredAt"`
FinishAt int64 `json:"finishAt"`
Status uint `json:"status"`
CancelStatus uint `json:"cancelStatus"`
CreatedAt int64 `json:"createdAt"`
CloseAt int64 `json:"closeAt"`
Skus []OrderSku `json:"skus"`
Packages []OrderPackage `json:"packages"`
StockOutAt int64 `json:"stockOutAt"`
IsSplit uint `json:"isSplit"`
}
type OrderSku struct {
SkuId uint `json:"skuId"`
Name string `json:"name"`
Price decimal.Decimal `json:"price"`
ImgUrl string `json:"imgUrl"`
Size string `json:"size"`
Color string `json:"color"`
Quantity uint `json:"quantity"`
}
type OrderPackage struct {
LogisticsName string `json:"logisticsName"`
WaybillCode string `json:"waybillCode"`
}
type ReplyOrderList struct {
Lists []OrderItem `json:"lists"`
Total int64 `json:"total"`
}
// Lists @Title 订单列表
func (o *order) Lists(ctx context.Context, channelId string, args ArgsOrderLists) (reply ReplyOrderList, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Lists", args, &reply)
return
}
type ArgsOrderDetail struct {
RootOrderSn string
ChannelOrderSn string
}
type ReplyOrderDetail struct {
ChannelOrderSn string `json:"channelOrderSn"`
OrderSn string `json:"orderSn"`
Status uint `json:"status"`
OrderFee decimal.Decimal `json:"orderFee"`
FreightFee decimal.Decimal `json:"freightFee"`
Receiver OrderReceiver `json:"receiver"`
CreatedAt int64 `json:"createdAt"`
LadingBillAt int64 `json:"ladingBillAt"`
CloseAt int64 `json:"closeAt"`
Skus []OrderDetailSku `json:"skus"`
OrderSubs []OrderDetailOrderSub `json:"orderSubs"`
}
type OrderReceiver struct {
ReceiverName string `json:"receiverName"`
ReceiverMobile string `json:"receiverMobile"`
ReceiverEmail string `json:"receiverEmail"`
ReceiverZipCode string `json:"receiverZipCode"`
Address string `json:"address"`
UserIp string `json:"userIp"`
}
type OrderDetailSku struct {
Quantity uint `json:"quantity"`
SkuId uint `json:"skuId"`
Price decimal.Decimal `json:"price"`
Name string `json:"name"`
ImgUrl string `json:"imgUrl"`
Size string `json:"size"`
Color string `json:"color"`
}
type OrderDetailOrderSub struct {
OrderSn string `json:"orderSn"`
Children []OrderDetailOrderSub `json:"children"`
}
// Detail @Title 订单详情
func (o *order) Detail(ctx context.Context, channelId string, args ArgsOrderDetail) (reply ReplyOrderDetail, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Detail", args, &reply)
return
}
// SubDetail @Title 子订单详情
func (o *order) SubDetail(ctx context.Context, channelId, orderSubSn string) (reply OrderItem, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "SubDetail", orderSubSn, &reply)
return
}
// Trajectory @Title 获取订单物流信息
func (o *order) Trajectory(ctx context.Context, channelId string, orderSn string) (reply []_interface.ReplyTrajectory, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Trajectory", orderSn, &reply)
return
}
// Finish @Title 确认收货
func (o *order) Finish(ctx context.Context, channelId string, orderSn string) (err error) {
reply := 0 reply := 0
xClient, err := client.GetClient(o) xClient, err := client.GetClient(o)
if err != nil { if err != nil {
return return
} }
return xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Finish", orderSn, &reply) return xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Cancel", orderSn, &reply)
} }

@ -6,20 +6,11 @@ import (
"git.oa00.com/supply-chain/service/lib/bean" "git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal" "github.com/shopspring/decimal"
"github.com/smallnest/rpcx/share" "github.com/smallnest/rpcx/share"
"time"
) )
type sku struct { type sku struct {
} }
const (
SkuOrderTypePrice = 1 // 价格排序
SkuOrderTypeDiscount = 2 // 价格折扣
SkuOrderSortUp = 1 // 升序
SkuOrderSortDown = 2 // 降序
)
type SkuSearch struct { type SkuSearch struct {
Status uint // 1=上架 2=下架 Status uint // 1=上架 2=下架
SkuName string // 商品名称 SkuName string // 商品名称
@ -29,9 +20,6 @@ type ArgsSkuList struct {
Page bean.Page Page bean.Page
} }
type SkuItemHighlight struct {
Name string `json:"name"`
}
type SkuItem struct { type SkuItem struct {
Id uint `json:"id"` Id uint `json:"id"`
Name string `json:"name"` Name string `json:"name"`
@ -44,7 +32,6 @@ type SkuItem struct {
ThirdCategoryId uint `json:"thirdCategoryId"` ThirdCategoryId uint `json:"thirdCategoryId"`
ThirdCategoryName string `json:"thirdCategoryName"` ThirdCategoryName string `json:"thirdCategoryName"`
Price decimal.Decimal `json:"price"` Price decimal.Decimal `json:"price"`
Discount decimal.Decimal `json:"discount"`
GuidePrice decimal.Decimal `json:"guidePrice"` GuidePrice decimal.Decimal `json:"guidePrice"`
ImgUrl string `json:"imgUrl"` ImgUrl string `json:"imgUrl"`
Profit decimal.Decimal `json:"profit"` Profit decimal.Decimal `json:"profit"`
@ -58,14 +45,10 @@ type SkuItem struct {
Status uint `json:"status"` Status uint `json:"status"`
CreatedAt int64 `json:"createdAt"` CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"` UpdatedAt int64 `json:"updatedAt"`
Highlight SkuItemHighlight `json:"highlight"`
Tag []string `json:"tag"`
} }
type ReplySkuList struct { type ReplySkuList struct {
Lists []SkuItem `json:"lists"` Lists []SkuItem `json:"lists"`
Total int64 `json:"total"` Total int64 `json:"total"`
ScrollId string `json:"scrollId"`
} }
// Lists @Title 商品列表 // Lists @Title 商品列表
@ -78,69 +61,6 @@ func (s *sku) Lists(ctx context.Context, channelId string, args ArgsSkuList) (re
return return
} }
type SkuEsSearch struct {
SkuIds []uint // 商品SkuIds
Status uint // 1=上架 2=下架
SkuName string // 商品名称
BrandId uint // 品牌id
BrandName string // 品牌名称 全词匹配
FirstCategoryId uint // 一级分类id
FirstCategoryName string // 一级分类名称 全词匹配
SecondCategoryId uint // 二级分类id
SecondCategoryName string // 二级分类名称 全词匹配
ThirdCategoryId uint // 三级分类id
ThirdCategoryName string // 三级分类名称 全词匹配
MaxPrice decimal.Decimal // 最高金额
MinPrice decimal.Decimal // 最低金额
MinDiscount decimal.Decimal // 最低折扣
MaxDiscount decimal.Decimal // 最高折扣
Expand []map[string]interface{} // 拓展查询
CustomerSearch string // 客户系统搜索参数
MinGuidePrice decimal.Decimal // 市场参考价
MaxGuidePrice decimal.Decimal // 市场参考价
Source uint // 所属供应商
ThirdCategoryIds []uint // 三级分类Ids
TagIds []uint // 标签Ids
Tag []string // 标签
OrderType uint // 排序类型
OrderSort uint // 排序顺序
}
type SkuEsConfig struct {
Highlight bool
Scroll time.Duration
}
type ArgsSkuListsEs struct {
Search SkuEsSearch
Config SkuEsConfig
Page bean.Page
}
// ListsEs @Title es商品列表 目前最大10000条数据超出不显示
func (s *sku) ListsEs(ctx context.Context, channelId string, args ArgsSkuListsEs) (reply ReplySkuList, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "ListsEs", args, &reply)
return
}
type ArgsSkuListsEsScroll struct {
Scroll time.Duration // 缓存时间
ScrollId string // 滚动标记id
}
// ListsEsScroll @Title es商品列表 目前最大10000条数据超出不显示
func (s *sku) ListsEsScroll(ctx context.Context, channelId string, args ArgsSkuListsEsScroll) (reply ReplySkuList, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "ListsEsScroll", args, &reply)
return
}
type ArgsSkuDetails struct { type ArgsSkuDetails struct {
SkuIds []uint // sku数组 SkuIds []uint // sku数组
} }
@ -174,7 +94,6 @@ type SkuDetailItem struct {
Imgs []SkuImg `json:"imgs"` Imgs []SkuImg `json:"imgs"`
Specifications []SkuSpecification `json:"specifications"` Specifications []SkuSpecification `json:"specifications"`
GroupSkuIds []uint `json:"groupSkuIds"` GroupSkuIds []uint `json:"groupSkuIds"`
Tag []string `json:"tag"`
} }
type SkuImg struct { type SkuImg struct {
Path string `json:"path"` Path string `json:"path"`

@ -1,52 +0,0 @@
package data
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
)
type afs struct {
}
type ArgsAfsLists struct {
StartFinishAt string
EndFinishAt string
Page bean.Page
}
type ReplyAfsLists struct {
Lists []AfsItem `json:"lists"`
Total int64 `json:"total"`
}
type AfsItem struct {
SourceName string `json:"sourceName"` // 供应渠道
SourceSonName string `json:"sourceSonName"` // 供应商
CustomerName string `json:"customerName"` // 客户名
AfsSn string `json:"afsSn"` // 售后单号
AfsResult string `json:"afsResult"` // 售后处理结果
AfsFinishAt int64 `json:"afsFinishAt"` // 售后完成时间
OrderSn string `json:"orderSn"` // 原始订单号
OrderSunSn string `json:"orderSunSn"` // 订单号
LadingBillAt int64 `json:"ladingBillAt"` // 订单支付时间
FinishAt int64 `json:"finishAt"` // 确认收货时间
SkuName string `json:"skuName"` // 商品名称
SkuUpcCode string `json:"skuUpcCode"` // 商品条码
Unit string `json:"unit"` // 单位
AfsQuality uint `json:"afsQuality"` // 售后数量
NewOrderSn string `json:"newOrderSn"` // 新订单号
PlatformRefund decimal.Decimal `json:"platformRefund"` // 平台退款金额
SupplierRefund decimal.Decimal `json:"supplierRefund"` // 供应商退款金额
}
// AfsLists @Title 售后明细列表
func (a *afs) AfsLists(ctx context.Context, args ArgsAfsLists) (reply ReplyAfsLists, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "AfsLists", args, &reply)
return
}

@ -1,37 +0,0 @@
package data
import (
"context"
"git.oa00.com/supply-chain/service/client"
"github.com/shopspring/decimal"
)
type count struct {
}
type ArgsCountSource struct {
StartAt string
EndAt string
}
type ReplySourceItem struct {
SourceName string `json:"sourceName"` // 供应渠道
ProduceTotalPrice decimal.Decimal `json:"produceTotalPrice"` // 采购总金额
ProduceFreightFee decimal.Decimal `json:"produceFreightFee"` // 采购应付运费
ProducePrice decimal.Decimal `json:"producePrice"` // 采购合计金额
SaleTotalPrice decimal.Decimal `json:"saleTotalPrice"` // 销售总金额
SaleFreightFee decimal.Decimal `json:"saleFreightFee"` // 销售应收运费
SalePrice decimal.Decimal `json:"salePrice"` // 销售合计金额
PlatformRefund decimal.Decimal `json:"platformRefund"` // 平台退款金额
SupplierRefund decimal.Decimal `json:"supplierRefund"` // 供应商退款金额
}
// Source @Title 供应商对账表
func (c *count) Source(ctx context.Context, args ArgsCountSource) (reply []ReplySourceItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Source", args, &reply)
return
}

@ -1,7 +0,0 @@
package data
type Data struct {
Order order
Afs afs
Count count
}

@ -1,201 +0,0 @@
package data
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
)
type order struct {
}
type ArgsPayOrderLists struct {
StartLadingBillAt string
EndLadingBillAt string
Page bean.Page
}
type ReplyPayOrderLists struct {
Lists []PayOrderItem `json:"lists"`
Total int64 `json:"total"`
}
type PayOrderItem struct {
SourceName string `json:"sourceName"` // 供应渠道
SourceSonName string `json:"sourceSonName"` // 供应商
CustomerName string `json:"customerName"` // 客户名
OrderSn string `json:"orderSn"` // 原始订单号
OrderSubSn string `json:"orderSubSn"` // 订单号
SupplierOrderSn string `json:"supplierOrderSn"` // 供应商订单号
OrderStatus uint `json:"orderStatus"` // 订单状态
LadingBillAt int64 `json:"ladingBillAt"` // 支付时间
StockOutAt int64 `json:"stockOutAt"` // 发货时间
FinishAt int64 `json:"finishAt"` // 确认收货时间
SkuName string `json:"skuName"` // 商品名称
SkuUpcCode string `json:"skuUpcCode"` // 商品条码
Specification string `json:"specification"` // 规格
Quality uint `json:"quality"` // 数量
ProduceSupplyPrice decimal.Decimal `json:"produceSupplyPrice"` // 采购单价
ProduceTotalPrice decimal.Decimal `json:"produceTotalPrice"` // 采购总金额
ProduceFreightFee decimal.Decimal `json:"ProduceFreightFee"` // 采购应付运费
ProducePrice decimal.Decimal `json:"producePrice"` // 采购合计金额
SaleSupplyPrice decimal.Decimal `json:"saleSupplyPrice"` // 销售单价
SaleTotalPrice decimal.Decimal `json:"saleTotalPrice"` // 销售总金额
SaleFreightFee decimal.Decimal `json:"saleFreightFee"` // 销售应收运费
SalePrice decimal.Decimal `json:"salePrice"` // 销售合计金额
Unit string `json:"unit"` // 单位
Tax string `json:"tax"` // 税率
ReceiverName string `json:"receiverName"` // 收件人
ReceiverPhone string `json:"receiverPhone"` // 收件人手机号
ReceiverAddress string `json:"receiverAddress"` // 收件人地址
}
// PayOrderList @Title 支付订单统计
func (o *order) PayOrderList(ctx context.Context, args ArgsPayOrderLists) (result ReplyPayOrderLists, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "PayOrderList", args, &result)
return
}
type ArgsCancelOrderLists struct {
StartCancelAt string
EndCancelAt string
Page bean.Page
}
type ReplyCancelOrderLists struct {
Lists []CancelOrderItem `json:"lists"`
Total int64 `json:"total"`
}
type CancelOrderItem struct {
SourceName string `json:"sourceName"` // 供应渠道
SourceSonName string `json:"sourceSonName"` // 供应商
CustomerName string `json:"customerName"` // 客户名
OrderSn string `json:"orderSn"` // 原始订单号
OrderSubSn string `json:"orderSubSn"` // 订单号
SupplierOrderSn string `json:"supplierOrderSn"` // 供应商订单号
OrderStatus uint `json:"orderStatus"` // 订单状态
LadingBillAt int64 `json:"ladingBillAt"` // 支付时间
StockOutAt int64 `json:"stockOutAt"` // 发货时间
CancelAt int64 `json:"cancelAt"` // 取消时间
TotalPrice decimal.Decimal `json:"totalPrice"` // 商品金额
FreightFee decimal.Decimal `json:"freightFee"` // 运费
Price decimal.Decimal `json:"price"` // 销售合计金额
RefundPrice decimal.Decimal `json:"refundPrice"` // 退款金额
}
// CancelOrderLists @Title 取消订单统计
func (o *order) CancelOrderLists(ctx context.Context, args ArgsCancelOrderLists) (result ReplyCancelOrderLists, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "CancelOrderLists", args, &result)
return
}
type ArgsStockOutOrderList struct {
StartStockOutAt string
EndStockOutAt string
Page bean.Page
}
type ReplyStockOutOrderList struct {
Lists []StockOutOrderItem `json:"lists"`
Total int64 `json:"total"`
}
type StockOutOrderItem struct {
SourceName string `json:"sourceName"` // 供应渠道
SourceSonName string `json:"sourceSonName"` // 供应商
CustomerName string `json:"customerName"` // 客户名
OrderSn string `json:"orderSn"` // 原始订单号
OrderSubSn string `json:"orderSubSn"` // 订单号
SupplierOrderSn string `json:"supplierOrderSn"` // 供应商订单号
OrderStatus uint `json:"orderStatus"` // 订单状态
LadingBillAt int64 `json:"ladingBillAt"` // 支付时间
StockOutAt int64 `json:"stockOutAt"` // 发货时间
FinishAt int64 `json:"finishAt"` // 确认收货时间
SkuName string `json:"skuName"` // 商品名称
SkuUpcCode string `json:"skuUpcCode"` // 商品条码
Specification string `json:"specification"` // 规格
Quality uint `json:"quality"` // 数量
ProduceSupplyPrice decimal.Decimal `json:"produceSupplyPrice"` // 采购单价
ProduceTotalPrice decimal.Decimal `json:"produceTotalPrice"` // 采购总金额
ProduceFreightFee decimal.Decimal `json:"ProduceFreightFee"` // 采购应付运费
ProducePrice decimal.Decimal `json:"producePrice"` // 采购合计金额
SaleSupplyPrice decimal.Decimal `json:"saleSupplyPrice"` // 销售单价
SaleTotalPrice decimal.Decimal `json:"saleTotalPrice"` // 销售总金额
SaleFreightFee decimal.Decimal `json:"saleFreightFee"` // 销售应收运费
SalePrice decimal.Decimal `json:"salePrice"` // 销售合计金额
Unit string `json:"unit"` // 单位
Tax string `json:"tax"` // 税率
ReceiverName string `json:"receiverName"` // 收件人
ReceiverPhone string `json:"receiverPhone"` // 收件人手机号
ReceiverAddress string `json:"receiverAddress"` // 收件人地址
}
// StockOutOrderList @Title 发货订单统计
func (o *order) StockOutOrderList(ctx context.Context, args ArgsStockOutOrderList) (result ReplyStockOutOrderList, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "StockOutOrderList", args, &result)
return
}
type JdOrderItem struct {
CustomerName string `json:"customerName"`
OrderSn string `json:"orderSn"`
OrderSubSn string `json:"orderSubSn"`
SupplierOrderSn string `json:"supplierOrderSn"`
OrderStatus uint `json:"orderStatus"`
CreatedAt int64 `json:"createdAt"`
LadingBillAt int64 `json:"ladingBillAt"`
StockOutAt int64 `json:"stockOutAt"`
FinishAt int64 `json:"finishAt"`
SkuName string `json:"skuName"`
SkuUpcCode string `json:"skuUpcCode"`
Specification string `json:"specification"`
Quality uint `json:"quality"`
ProduceSupplyPrice decimal.Decimal `json:"produceSupplyPrice"`
ProduceTotalPrice decimal.Decimal `json:"produceTotalPrice"`
ProduceFreightFee decimal.Decimal `json:"produceFreightFee"`
ProducePrice decimal.Decimal `json:"producePrice"`
SaleSupplyPrice decimal.Decimal `json:"saleSupplyPrice"`
SaleTotalPrice decimal.Decimal `json:"saleTotalPrice"`
SaleFreightFee decimal.Decimal `json:"saleFreightFee"`
SalePrice decimal.Decimal `json:"salePrice"`
Unit string `json:"unit"`
Tax string `json:"tax"`
ReceiverName string `json:"receiverName"`
ReceiverPhone string `json:"receiverPhone"`
ReceiverAddress string `json:"receiverAddress"`
}
type ArgsJdOrderList struct {
StartAt string
EndAt string
Page bean.Page
}
type ReplyJdOrderList struct {
Lists []JdOrderItem `json:"lists"`
Total int64 `json:"total"`
}
// JdList @Title 京东订单
func (o *order) JdList(ctx context.Context, args ArgsJdOrderList) (result ReplyJdOrderList, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "JdList", args, &result)
return
}

@ -4,23 +4,13 @@ import (
"context" "context"
) )
const (
AfterServiceCanApplyTrue = 1 // 可申请
AfterServiceCanApplyFalse = 2 // 不可申请
AfterServiceNeedPictureTrue = 1 // 需要上传
AfterServiceNeedPictureFalse = 2 // 不需要上传
AfterServiceZipCodeNone = "000000"
)
type AfterServiceInterface interface { type AfterServiceInterface interface {
// Can 获取是否可发起售后 // Type 获取可发起的售后类型
Can(ctx context.Context, args ArgsAfterServiceCan, reply *ReplyAfterServiceCan) error Type(ctx context.Context, args ArgsAfterServiceType, reply *[]ReplyAfterServiceType) error
// Reason 获取售后原因 // Reason 获取售后原因
Reason(ctx context.Context, args ArgsAfterServiceReason, reply *[]ReplyAfterServiceReason) error Reason(ctx context.Context, args ArgsAfterServiceReason, reply *ReplyAfterServiceReason) error
// Apply @Title 发起售后 // Apply @Title 发起售后
Apply(ctx context.Context, args ArgsAfterServiceApply, sourceAfsSn *string) error Apply(ctx context.Context, args ArgsAfterServiceApply, reply *ReplyAfterServiceApply) error
// LogisticsAddress @Title 寄回地址 // LogisticsAddress @Title 寄回地址
LogisticsAddress(ctx context.Context, afterServiceSn string, reply *ReplyAfterServiceLogisticsAddress) error LogisticsAddress(ctx context.Context, afterServiceSn string, reply *ReplyAfterServiceLogisticsAddress) error
// BackLogisticsBill @Title 回传物流信息 // BackLogisticsBill @Title 回传物流信息
@ -28,26 +18,19 @@ type AfterServiceInterface interface {
// Cancel @Title 取消售后 // Cancel @Title 取消售后
Cancel(ctx context.Context, afterServiceSn string, reply *int) error Cancel(ctx context.Context, afterServiceSn string, reply *int) error
} }
type ArgsAfterServiceCan struct { type ArgsAfterServiceType struct {
OrderSn string // 订单编号 OrderSn string // 订单编号
SkuId string // skuId SkuId string // skuId
} }
type ReplyAfterServiceCan struct { type ReplyAfterServiceType struct {
CanApply uint `json:"canApply"` // 是否可申请售后 1=可申请 2=不可申请 Type string `json:"type"` // 类型
SkuId string `json:"skuId"` // skuId
AppliedNum uint `json:"appliedNum"` // 已申请售后商品数量
CannotApplyTip string `json:"cannotApplyTip"` // 不可申请原因
Types []AfterServiceType `json:"types"`
}
type AfterServiceType struct {
TypeId string `json:"type"` // 类型
TypeName string `json:"typeName"` // 类型名称 TypeName string `json:"typeName"` // 类型名称
} }
type ArgsAfterServiceReason struct { type ArgsAfterServiceReason struct {
OrderSn string // 订单编号 OrderSn string // 订单编号
SkuId string // skuId SkuId string // skuId
TypeId string // 售后类型 Type string // 售后类型
} }
type ReplyAfterServiceReason struct { type ReplyAfterServiceReason struct {
ReasonCode string `json:"reasonCode"` // 售后原因编码 ReasonCode string `json:"reasonCode"` // 售后原因编码
@ -56,17 +39,21 @@ type ReplyAfterServiceReason struct {
} }
type ArgsAfterServiceApply struct { type ArgsAfterServiceApply struct {
TypeId string // 售后类型 Type string // 售后类型
TypeName string // 售后名称 TypeName string // 售后名称
ReasonCode string // 售后原因编码 ReasonCode string // 售后原因编码
ReasonName string // 售后原因描述 ReasonName string // 售后原因描述
Describe string // 售后描述 ChannelAfterServiceSn string // 渠道售后单号
AfsSn string // 渠道售后单号
OrderSn string // 订单编号 OrderSn string // 订单编号
SkuId string // skuId SkuId string // skuId
Pictures []string // 图片地址数组 Pictures []string // 图片地址数组
Quantity uint // 售后申请数量 Quantity uint // 售后申请数量
} }
type ReplyAfterServiceApply struct {
AfterServiceSn string `json:"afterServiceSn"` // 渠道售后单号
ChannelAfterServiceSn string `json:"channelAfterServiceSn"` // 渠道售后单号
}
type ReplyAfterServiceLogisticsAddress struct { type ReplyAfterServiceLogisticsAddress struct {
Name string `json:"name"` // 姓名 Name string `json:"name"` // 姓名
Mobile string `json:"mobile"` // 手机号 Mobile string `json:"mobile"` // 手机号

@ -15,17 +15,7 @@ type OrderInterface interface {
// Close @Title 关闭订单 // Close @Title 关闭订单
Close(ctx context.Context, orderSn string, reply *int) error Close(ctx context.Context, orderSn string, reply *int) error
// Cancel @Title 取消订单 // Cancel @Title 取消订单
Cancel(ctx context.Context, args ArgsOrderCancel, reply *int) error Cancel(ctx context.Context, orderSn string, reply *int) error
// Trajectory @Title 物流轨迹
Trajectory(ctx context.Context, orderSn string, reply *[]ReplyTrajectory) error
// Finish @Title 确认收货
Finish(ctx context.Context, orderSn string, reply *int) error
// SubmitData @Title 订单下单数据
SubmitData(ctx context.Context, supplyOrderSn string, reply *ReplySubmitData) error
}
type ArgsOrderCancel struct {
OrderSn string // 订单编号
Reason string // 取消原因
} }
type ArgsOrderFreightFee struct { type ArgsOrderFreightFee struct {
Skus []OrderFreightFeeSkuItem // 商品信息 Skus []OrderFreightFeeSkuItem // 商品信息
@ -49,7 +39,6 @@ type ArgsOrderSubmit struct {
FreightFee decimal.Decimal // 运费 FreightFee decimal.Decimal // 运费
Receiver OrderReceiver // 收件信息 Receiver OrderReceiver // 收件信息
UserIp string // 用户ip UserIp string // 用户ip
BuyerMsg string // 用户备注
} }
type OrderReceiver struct { type OrderReceiver struct {
@ -58,31 +47,3 @@ type OrderReceiver struct {
Email string // 邮件 Email string // 邮件
ZipCode string // 邮编 ZipCode string // 邮编
} }
type ReplyTrajectory struct {
LogisticsName string `json:"logisticsName"`
WaybillCode string `json:"waybillCode"`
Steps []PackageStep `json:"steps"`
}
type PackageStep struct {
State string `json:"state"`
Content string `json:"content"`
OperatorAt int64 `json:"operatorAt"`
}
type ReplySubmitData struct {
OrderSn string `json:"orderSn"`
Status int64 `json:"status"`
OrderFee decimal.Decimal `json:"orderFee"`
FreightFee decimal.Decimal `json:"freightFee"`
LadingBillAt int64 `json:"ladingBillAt"`
Skus []ReplySubmitDataSku `json:"skus"`
}
type ReplySubmitDataSku struct {
SkuId string `json:"skuId"`
Name string `json:"name"`
Quantity int64 `json:"quantity"`
SupplyPrice decimal.Decimal `json:"supplyPrice"`
GuidePrice decimal.Decimal `json:"guidePrice"`
Amount decimal.Decimal `json:"amount"`
}

@ -9,7 +9,6 @@ type skuState uint
const ( const (
SkuStateIn = 1 // 有货 SkuStateIn = 1 // 有货
SkuStateOut = 2 // 无货 SkuStateOut = 2 // 无货
SkuStateDone = 3 // 下架商品
) )
type Sku interface { type Sku interface {

@ -3,7 +3,6 @@ package supply
import ( import (
"context" "context"
"git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal" "github.com/shopspring/decimal"
) )
@ -39,7 +38,7 @@ func (o *order) Split(ctx context.Context, args ArgsOrderSplit) (err error) {
return return
} }
reply := 0 reply := 0
err = xClient.Call(ctx, "Split", args, &reply) err = xClient.Call(ctx, "Lists", args, &reply)
return return
} }
@ -83,43 +82,6 @@ func (o *order) StockOut(ctx context.Context, args ArgsOrderStockOut) (err error
return return
} }
//
//type ArgsChangeWaybill struct {
// Id uint
// Source source // 商品来源
// SourceOrderSn string
// WaybillCode string
// LogisticsName string
// LogisticsCode string
//}
//
//// ChangeWaybill @Title 修改运单信息
//func (o *order) ChangeWaybill(ctx context.Context, args ArgsChangeWaybill) (err error) {
// xClient, err := client.GetClient(o)
// if err != nil {
// return
// }
// reply := 0
// err = xClient.Call(ctx, "ChangeWaybill", args, &reply)
// return
//}
type ArgsOrderDelivered struct {
Source source // 商品来源
SourceOrderSn string // 供应商订单号
}
// Delivered @Title 订单签收/妥投
func (o *order) Delivered(ctx context.Context, args ArgsOrderDelivered) (err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Delivered", args, &reply)
return
}
type ArgsOrderFinish struct { type ArgsOrderFinish struct {
Source source // 商品来源 Source source // 商品来源
SourceOrderSn string // 供应商订单号 SourceOrderSn string // 供应商订单号
@ -135,172 +97,3 @@ func (o *order) Finish(ctx context.Context, args ArgsOrderFinish) (err error) {
err = xClient.Call(ctx, "Finish", args, &reply) err = xClient.Call(ctx, "Finish", args, &reply)
return return
} }
type ArgsRetailOrderLists struct {
Search RetailOrderSearch
Page bean.Page
}
type RetailOrderSearch struct {
OrderSubSn uint64 `label:"订单号"`
SourceSubSn uint64 `label:"供应商订单号"`
SupplierId uint `label:"供应商"`
CustomerId uint `label:"客户"`
WaybillCode string `label:"运单号"`
Status uint `label:"订单状态"`
PayStartDate string `label:"支付开始日期"`
PayEndDate string `label:"支付结束日期"`
FinishStartDate string `label:"完成开始日期"`
FinishEndDate string `label:"完成结束日期"`
}
type RetailOrderItem struct {
Id uint `json:"id"`
OrderSubSn string `json:"orderSubSn"` // 订单号
SourceOrderSn string `json:"sourceOrderSn"` // 供应商订单号
SourceName string `json:"sourceName"` // 供应商名称
CustomerName string `json:"customerName"` // 客户名称
OrderStatus uint `json:"orderStatus"` // 订单状态
OrderFee decimal.Decimal `json:"orderFee"` // 订单金额
FreightFee decimal.Decimal `json:"freightFee"` // 运费
SupplyOrderFee decimal.Decimal `json:"supplyOrderFee"` // 供应商订单金额
PayTime int64 `json:"payTime"` // 支付时间
FinishAt int64 `json:"finishAt"` // 完成时间
CloseAt int64 `json:"closeAt"` // 关闭时间
StockOutAt int64 `json:"stockOutAt"` // 发货时间
}
type ReplyRetailOrderLists struct {
Lists []RetailOrderItem `json:"lists"`
Total int64 `json:"total"`
}
// Lists @Title 订单列表
func (o *order) Lists(ctx context.Context, args ArgsRetailOrderLists) (reply ReplyRetailOrderLists, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
type OrderInfo struct {
OrderId uint `json:"orderId"`
CustomerId uint `json:"customerId"`
OrderSn uint64 `json:"orderSn"`
SourceOrderSn uint64 `json:"sourceOrderSn"`
SourceId uint `json:"sourceId"`
SourceName string `json:"sourceName"`
ReceiverName string `json:"receiverName"`
ReceiverMobile string `json:"receiverMobile"`
Address string `json:"address"`
FreightFee decimal.Decimal `json:"freightFee"`
OrderFee decimal.Decimal `json:"orderFee"`
PayTime int64 `json:"payTime"`
FinishAt int64 `json:"finishAt"`
Status uint `json:"status"`
Skus []OrderSku `json:"skus"`
Packages []OrderPackage `json:"packages"`
StockOutAt int64 `json:"stockOutAt"`
}
type OrderSku struct {
Id uint `json:"id"`
SkuId uint `json:"skuId"`
Name string `json:"name"`
SupplyPrice decimal.Decimal `json:"supplyPrice"`
Rate decimal.Decimal `json:"rate"`
Price decimal.Decimal `json:"price"`
AdjustPrice decimal.Decimal `json:"adjustPrice"`
Amount decimal.Decimal `json:"amount"`
ImgUrl string `json:"imgUrl"`
Quantity uint `json:"quantity"`
}
type OrderPackage struct {
LogisticsName string `json:"logisticsName"`
WaybillCode string `json:"waybillCode"`
}
// Info @Title 订单详情
func (o *order) Info(ctx context.Context, orderSn string) (reply OrderInfo, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", orderSn, &reply)
return
}
type InfoByOrderId struct {
Id uint
ChannelOrderSn string // 渠道订单编号
OrderSn uint64 // 订单编号
ChannelId uint // 渠道id
Type uint // 下单方式 1=api接口下单 2=客户商城下单
Status uint // 状态
OrderFee decimal.Decimal // 订单总金额-不含运费
SupplyOrderFee decimal.Decimal // 供应商订单总金额-不含运费
PayTime int64 // 确认时间
Rate decimal.Decimal // 商品费率
FreightFee decimal.Decimal // 运费
ReceiverName string // 收件人
ReceiverMobile string // 手机号
ReceiverEmail string // 邮箱
ReceiverZipCode string // 邮编
Address string // 配送地址
UserIp string // 用户ip
ExpireAt int64 // 订单提单超时时效时间
LadingBillAt int64 // 提单时间
CloseAt int64 // 订单关闭时间
}
// InfoByOrderId @Title 根据订单id查询详情
func (o *order) InfoByOrderId(ctx context.Context, orderId uint) (reply InfoByOrderId, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "InfoByOrderId", orderId, &reply)
return
}
type ReplySubmitData struct {
OrderSn string `json:"orderSn"`
Status int64 `json:"status"`
OrderFee decimal.Decimal `json:"orderFee"`
SupplyOrderFee decimal.Decimal `json:"supplyOrderFee"`
FreightFee decimal.Decimal `json:"freightFee"`
LadingBillAt int64 `json:"ladingBillAt"`
Skus []ReplySubmitDataSku `json:"skus"`
OrderSubs []ReplySubmitDataOrderSub `json:"orderSubs"`
}
type ReplySubmitDataOrderSub struct {
OrderSubSn uint64 `json:"orderSubSn"`
SourceId uint `json:"sourceId"`
OrderFee decimal.Decimal `json:"orderFee"`
SupplyOrderFee decimal.Decimal `json:"supplyOrderFee"`
SourceName string `json:"sourceName"`
SourceBase string `json:"sourceBase"`
SourceOrderName string `json:"sourceOrderName"`
}
type ReplySubmitDataSku struct {
SkuId string `json:"skuId"`
Name string `json:"name"`
Quantity int64 `json:"quantity"`
SupplyPrice decimal.Decimal `json:"supplyPrice"`
GuidePrice decimal.Decimal `json:"guidePrice"`
Amount decimal.Decimal `json:"amount"`
SourceSkuId string `json:"sourceSkuId"`
}
// SubmitData @Title 订单下单数据
func (o *order) SubmitData(ctx context.Context, orderId int64) (reply ReplySubmitData, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "SubmitData", orderId, &reply)
return
}

@ -1,70 +0,0 @@
package setting
import (
"context"
"git.oa00.com/supply-chain/service/client"
)
type opensearch struct {
}
type ArgsOpensearchToken struct {
Analyzer string
Text string
}
type TokenOpensearchItem struct {
Token string `json:"token"`
StartOffset int `json:"startOffset"`
EndOffset int `json:"endOffset"`
Type string `json:"type"`
Position int `json:"position"`
}
// Analyzer @Title 分词测试
func (o *opensearch) Analyzer(ctx context.Context, args ArgsOpensearchToken) (result []TokenOpensearchItem, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
err = xClient.Call(ctx, "Analyzer", args, &result)
return
}
// IndicesRefresh @Title 刷新索引
func (o *opensearch) IndicesRefresh(ctx context.Context) error {
xClient, err := client.GetClient(o)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "IndicesRefresh", 0, &reply)
}
// Refresh @Title 刷新
func (o *opensearch) Refresh(ctx context.Context) error {
xClient, err := client.GetClient(o)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Refresh", 0, &reply)
}
type ReplyOpensearchRefreshProgress struct {
Completed bool `json:"completed"`
Total int `json:"total"`
Updated int `json:"updated"`
StartTimeInMillis int64 `json:"startTimeInMillis"`
RunningTimeInNanos int64 `json:"runningTimeInNanos"`
}
// RefreshProgress @Title 刷新进度
func (o *opensearch) RefreshProgress(ctx context.Context) (reply ReplyOpensearchRefreshProgress, err error) {
xClient, err := client.GetClient(o)
if err != nil {
return
}
if err = xClient.Call(ctx, "RefreshProgress", 0, &reply); err != nil {
return
}
return
}

@ -25,16 +25,6 @@ func (r *rate) All(ctx context.Context) (result []RateItem, err error) {
return return
} }
// Get @Title 获取利率信息
func (r *rate) Get(ctx context.Context, rateId uint) (result RateItem, err error) {
xClient, err := client.GetClient(r)
if err != nil {
return
}
err = xClient.Call(ctx, "Get", rateId, &result)
return
}
type ArgsRateChannel struct { type ArgsRateChannel struct {
ChannelId uint // 渠道id ChannelId uint // 渠道id
RateId uint // 费率id RateId uint // 费率id

@ -2,6 +2,4 @@ package setting
type Setting struct { type Setting struct {
Rate rate Rate rate
Tag tag
Opensearch opensearch
} }

@ -1,113 +0,0 @@
package setting
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type tag struct {
}
type ArgsTagList struct {
Search TagSearch
Page bean.Page
}
type TagItem struct {
Id uint `json:"id"`
Name string `json:"name"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
}
type ReplyTagList struct {
Lists []TagItem `json:"lists"`
Total int64 `json:"total"`
}
type TagSearch struct {
Name string // 标签名称
}
// Lists @Title 标签列表
func (b *tag) Lists(ctx context.Context, args ArgsTagList) (result ReplyTagList, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &result)
return
}
// All @Title 全部标签
func (b *tag) All(ctx context.Context) (result []TagItem, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
err = xClient.Call(ctx, "All", 0, &result)
return
}
// FindByNameAll @Title 标签名称筛选标签
func (b *tag) FindByNameAll(ctx context.Context, name string) (result []TagItem, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByNameAll", name, &result)
return
}
type ArgsTagAdd struct {
Name string // 标签名称
}
// Add @Title 添加标签
func (b *tag) Add(ctx context.Context, args ArgsTagAdd) (err error) {
reply := 0
xClient, err := client.GetClient(b)
if err != nil {
return err
}
return xClient.Call(ctx, "Add", args, &reply)
}
// Adds @Title 添加标签
func (b *tag) Adds(ctx context.Context, tagNames []string) (err error) {
reply := 0
xClient, err := client.GetClient(b)
if err != nil {
return err
}
return xClient.Call(ctx, "Adds", tagNames, &reply)
}
type ArgsTagEdit struct {
TagId uint // 标签id
Name string // 标签名称
}
// Edit @Title 编辑标签
func (b *tag) Edit(ctx context.Context, args ArgsTagEdit) (err error) {
reply := 0
xClient, err := client.GetClient(b)
if err != nil {
return err
}
return xClient.Call(ctx, "Edit", args, &reply)
}
type ArgsTagFindByIds struct {
TagIds []uint // 标签id数组
}
// FindByIds @Title 标签获取
func (b *tag) FindByIds(ctx context.Context, args ArgsTagFindByIds) (result []TagItem, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByIds", args, &result)
return
}

@ -15,8 +15,6 @@ type source uint
const ( const (
SkuSourceJd source = 1 // 京东开普勒渠道 SkuSourceJd source = 1 // 京东开普勒渠道
SkuSourceSupplier source = 2 // 供应链供应商渠道 SkuSourceSupplier source = 2 // 供应链供应商渠道
SkuSourceOtoSaas source = 3 // 海旅供应商渠道
SkuSourceSkycrane source = 4 // 云中鹤渠道
) )
const ( const (
@ -62,7 +60,6 @@ type ArgsSkuAdd struct {
Content string // 商品详情 Content string // 商品详情
Imgs []SkuImg // 商品图片 第一张主图 Imgs []SkuImg // 商品图片 第一张主图
Specifications []SkuSpecification // 商品参数信息 Specifications []SkuSpecification // 商品参数信息
Tag []string // 标签
} }
type SkuImg struct { type SkuImg struct {
@ -112,19 +109,12 @@ type ArgsSkuLists struct {
} }
type SkuListsSearch struct { type SkuListsSearch struct {
Id uint // 瑞库客id
Name string // 商品名称 Name string // 商品名称
SourceId uint // 所属供应商 1=京东 SourceId uint // 所属供应商 1=京东
Id uint // 瑞库客id
SourceSkuId uint // 供应商skuId SourceSkuId uint // 供应商skuId
BrandId uint // 品牌Id BrandId uint // 品牌Id
BrandIds []uint // 品牌Ids ThridCategoryId uint // 三级分类Id
TagIds []uint // 商品标签Ids
FirstCategoryId uint // 一级分类Id
FirstCategoryIds []uint // 一级分类ids
SecondCategoryId uint // 二级分类Id
SecondCategoryIds []uint // 二级分类Ids
ThirdCategoryId uint // 三级分类Id
ThirdCategoryIds []uint // 三级分类Ids
AdjustType uint // 加价规则 AdjustType uint // 加价规则
MaxSupplyPrice decimal.Decimal // 最大采购价格 MaxSupplyPrice decimal.Decimal // 最大采购价格
MinSupplyPrice decimal.Decimal // 最小采购价格 MinSupplyPrice decimal.Decimal // 最小采购价格
@ -133,7 +123,6 @@ type SkuListsSearch struct {
AuditStatus uint // 审核状态 AuditStatus uint // 审核状态
SourceStatus uint // 供应商下架状态 SourceStatus uint // 供应商下架状态
PlatformStatus uint // 平台下架状态 PlatformStatus uint // 平台下架状态
UpcCode string // 商品条码
} }
type ReplySkuList struct { type ReplySkuList struct {
@ -152,32 +141,17 @@ type SkuItem struct {
GuidePrice decimal.Decimal `json:"guidePrice"` // 指导价 GuidePrice decimal.Decimal `json:"guidePrice"` // 指导价
ImgUrl string `json:"imgUrl"` // 商品主图 ImgUrl string `json:"imgUrl"` // 商品主图
PlatformStatus uint `json:"platformStatus"` // 平台状态 1=上架 2=下架 PlatformStatus uint `json:"platformStatus"` // 平台状态 1=上架 2=下架
SourceId uint `json:"sourceId"` // 所属供应商
SourceName string `json:"sourceName"` // 供应商名称 SourceName string `json:"sourceName"` // 供应商名称
SourceSkuId string `json:"sourceSkuId"` // 源skuId SourceSkuId string `json:"sourceSkuId"` // 源skuId
SourceStatus uint `json:"sourceStatus"` // 供应商状态 1=上架 2=下架 SourceStatus uint `json:"sourceStatus"` // 供应商状态 1=上架 2=下架
CustomerPrice decimal.Decimal `json:"customerPrice"` // 供货最高价 CustomerPrice decimal.Decimal `json:"customerPrice"` // 供货最高价
CustomerProfitRate decimal.Decimal `json:"customerProfitRate"` // 供货利润率 供货利润/供货最高价% CustomerProfitRate decimal.Decimal `json:"customerProfitRate"` // 供货利润率 供货利润/供货最高价%
CustomerDiscount decimal.Decimal `json:"customerDiscount"` // 折扣
AdjustType uint `json:"adjustType"` // 加价类型 AdjustType uint `json:"adjustType"` // 加价类型
AdjustPrice decimal.Decimal `json:"adjustPrice"` // 加价金额 AdjustPrice decimal.Decimal `json:"adjustPrice"` // 加价金额
AfterAdjustType uint `json:"afterAdjustType"` // 改价后加价类型 AfterAdjustType uint `json:"afterAdjustType"` // 改价后加价类型
AfterAdjustPrice decimal.Decimal `json:"afterAdjustPrice"` // 改价后加价金额 AfterAdjustPrice decimal.Decimal `json:"afterAdjustPrice"` // 改价后加价金额
AfterPrice decimal.Decimal `json:"afterPrice"` // 改价后金额 Handle uint `json:"handle"` // 1=未处理 2=已处理
AfterDiscount decimal.Decimal `json:"afterDiscount"` // 改价后折扣 Reason string `json:"reason"` // 驳回原因
AdjustAuditStatus uint `json:"adjustAuditStatus"` // 改价审核状态
Reason string `json:"reason"` // 改价驳回原因
UpcCode string `json:"upcCode"` // 商品条码
Color string `json:"color"` // 颜色
Size string `json:"size"` // 尺寸
Attributes []AttributeItem `json:"attributes"` // 商品属性
TagIds []uint `json:"tagIds"` // 商品标签ids
}
type AttributeItem struct {
GroupName string `json:"groupName"`
Name string `json:"name"`
Value string `json:"value"`
} }
// Lists @Title 商品列表 // Lists @Title 商品列表
@ -190,59 +164,13 @@ func (s *sku) Lists(ctx context.Context, args ArgsSkuLists) (reply ReplySkuList,
return return
} }
type SkuEsSearch struct {
SourceId uint // 所属供应商
SourceSonId uint // 沙马供应商的供应商Id
SourceSkuId uint // 供应商SkuId
SourceStatus uint // 供应商上下架状态 1=上架 2=下架
PlatformStatus uint // 平台上下架状态 1=上架 2=下架
AuditStatus uint // 改价审核状态 1=待审核 2=通过 3=驳回
SkuId uint // Sku编码
SupplySkuId uint // 供应商Sku编码
SkuName string // 商品名称
SkuNameVague string // 商品名称-模糊查询
UpcCode string // 商品条码
BrandId uint // 品牌id
BrandName string // 品牌名称 全词匹配
FirstCategoryId uint // 一级分类id
FirstCategoryName string // 一级分类名称 全词匹配
SecondCategoryId uint // 二级分类id
SecondCategoryName string // 二级分类名称 全词匹配
ThirdCategoryId uint // 三级分类id
ThirdCategoryName string // 三级分类名称 全词匹配
AdjustType uint // 加价规则 1=比例 2=金额
Handel uint // 处理状态
MaxSupplyPrice decimal.Decimal // 最高金额
MinSupplyPrice decimal.Decimal // 最低金额
MinDiscount decimal.Decimal // 最低折扣
MaxDiscount decimal.Decimal // 最高折扣
AdjustMinDiscount decimal.Decimal // 改价后最小折扣
AdjustMaxDiscount decimal.Decimal // 改价后最大折扣
}
type ArgsSkuListsEs struct {
Search SkuEsSearch
Page bean.Page
}
// ListsEs @Title es商品列表 目前最大10000条数据超出不显示
func (s *sku) ListsEs(ctx context.Context, args ArgsSkuListsEs) (reply ReplySkuList, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "ListsEs", args, &reply)
return
}
type SkuInfo struct { type SkuInfo struct {
Id uint `json:"id"` Id uint `json:"id"`
Name string `json:"name"` Name string `json:"name"`
SourceSkuId string `json:"jdSkuId"` SourceSkuId string `json:"jdSkuId"`
SupplyPrice decimal.Decimal `json:"supplyPrice"` SupplyPrice decimal.Decimal `json:"supplyPrice"`
CustomerPrice decimal.Decimal `json:"customerPrice"`
GuidePrice decimal.Decimal `json:"guidePrice"` GuidePrice decimal.Decimal `json:"guidePrice"`
Profit decimal.Decimal `json:"profit"` Profit decimal.Decimal `json:"profit"`
CustomerProfitRate decimal.Decimal `json:"customerProfitRate"`
UpcCode string `json:"upcCode"` UpcCode string `json:"upcCode"`
Color string `json:"color"` Color string `json:"color"`
Size string `json:"size"` Size string `json:"size"`
@ -367,9 +295,7 @@ type ArgsSkuChangeData struct {
Unit string // 销售单位 Unit string // 销售单位
UpcCode string // 商品条码 UpcCode string // 商品条码
Source source // 商品来源 Source source // 商品来源
Imgs []string // 商品图片 第一张主图
Specifications []SkuSpecification // 商品参数信息 Specifications []SkuSpecification // 商品参数信息
Tag []string // 标签
} }
// ChangeData @Title 更新商品信息 // ChangeData @Title 更新商品信息
@ -382,58 +308,3 @@ func (s *sku) ChangeData(ctx context.Context, args ArgsSkuChangeData) (err error
err = xClient.Call(ctx, "ChangeData", args, &reply) err = xClient.Call(ctx, "ChangeData", args, &reply)
return return
} }
type ByIdsSkuItem struct {
Id uint `json:"id"`
Name string `json:"name"` // 名称
BrandName string `json:"brandName"` // 品牌名称
FirstCategoryId uint `json:"firstCategoryId"` // 一级分类id
SecondCategoryId uint `json:"secondCategoryId"` // 二级分类id
ThirdCategoryId uint `json:"thirdCategoryId"` // 三级分类id
SupplyPrice decimal.Decimal `json:"supplyPrice"` // 采购价
GuidePrice decimal.Decimal `json:"guidePrice"` // 指导价
ImgUrl string `json:"imgUrl"` // 商品主图
PlatformStatus uint `json:"platformStatus"` // 平台状态 1=上架 2=下架
SourceName string `json:"sourceName"` // 供应商名称
SourceSkuId string `json:"sourceSkuId"` // 源skuId
SourceStatus uint `json:"sourceStatus"` // 供应商状态 1=上架 2=下架
CustomerPrice decimal.Decimal `json:"customerPrice"` // 供货最高价
CustomerProfitRate decimal.Decimal `json:"customerProfitRate"` // 供货利润率 供货利润/供货最高价%
AdjustType uint `json:"adjustType"` // 加价类型
AdjustPrice decimal.Decimal `json:"adjustPrice"` // 加价金额
AfterAdjustType uint `json:"afterAdjustType"` // 改价后加价类型
AfterAdjustPrice decimal.Decimal `json:"afterAdjustPrice"` // 改价后加价金额
Handle uint `json:"handle"` // 1=未处理 2=已处理
Reason string `json:"reason"` // 驳回原因
Size string `json:"size"`
Color string `json:"color"`
Specifications []SpecItem `json:"specifications"`
}
type SpecItem struct {
Id uint `json:"id"`
SkuId uint `json:"skuId"`
Name string `json:"name"`
Value string `json:"value"`
GroupName string `json:"groupName"`
}
// FindByIds @Title 根据Ids查询sku信息
func (s *sku) FindByIds(ctx context.Context, ids []uint) (reply []ByIdsSkuItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "FindByIds", ids, &reply)
return
}
// AuthPut @Title 根据sourceSkuId查询供应链是否入库 true=入库 false=没有入库
func (s *sku) AuthPut(ctx context.Context, sourceSkuIds []uint) (reply bool) {
xClient, err := client.GetClient(s)
if err != nil {
return false
}
err = xClient.Call(ctx, "AuthPut", sourceSkuIds, &reply)
return
}

@ -2,9 +2,11 @@ package supply
import ( import (
"context" "context"
"database/sql"
"git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean" "git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal" "github.com/shopspring/decimal"
"time"
) )
type skuAudit struct { type skuAudit struct {
@ -20,42 +22,28 @@ type SkuAuditSearch struct {
AdjustType uint // 加价类型 AdjustType uint // 加价类型
Status uint // 状态 1=未审核 2=通过 3=驳回 Status uint // 状态 1=未审核 2=通过 3=驳回
} }
type ArgsSkuAuditEsLists struct {
Search SkuAuditEsSearch
Page bean.Page
}
type SkuAuditEsSearch struct {
SourceId uint // 供应商id
SourceSonId uint // 沙马供应商的供应商
AdjustType uint // 加价类型
Status uint // 状态 1=未审核 2=通过 3=驳回
BrandName string // 品牌名称
AfterMinDiscount decimal.Decimal // 加价后最低折扣
AfterMaxDiscount decimal.Decimal // 加价后最高折扣
}
type SkuAndAuditItem struct { type SkuAndAuditItem struct {
Id uint `json:"id"` AuditId uint `json:"auditId"`
SkuId uint `json:"skuId"` SkuId uint `json:"skuId"`
AfterAdjustType uint `json:"afterAdjustType"`
AfterAdjustPrice decimal.Decimal `json:"afterAdjustPrice"`
Name string `json:"name"` Name string `json:"name"`
SupplyPrice decimal.Decimal `json:"supplyPrice"` SupplyPrice decimal.Decimal `json:"supplyPrice"`
GuidePrice decimal.Decimal `json:"guidePrice"` GuidePrice decimal.Decimal `json:"guidePrice"`
AdjustType uint `json:"adjustType"` AdjustType uint `json:"adjustType"`
AdjustPrice decimal.Decimal `json:"adjustPrice"` AdjustPrice decimal.Decimal `json:"adjustPrice"`
AfterPrice decimal.Decimal `json:"afterPrice"` CustomerPrice decimal.Decimal `json:"customerPrice"`
AfterDiscount decimal.Decimal `json:"afterDiscount"` Category string `json:"category"`
BrandName string `json:"brandName"` BrandName string `json:"brandName"`
SourceName string `json:"sourceName"` SourceName string `json:"sourceName"`
AuditUserId uint `json:"auditUserId"` AuditUserId uint `json:"auditUserId"`
AuditAt int64 `json:"auditAt"` AuditAt sql.NullTime `json:"auditAt"`
ImgUrl string `json:"imgUrl"` ImgUrl string `json:"imgUrl"`
Reason string `json:"reason"` Reason string `json:"reason"`
FirstCategoryName string `json:"firstCategoryName"` FirstCategoryName string `json:"firstCategoryName"`
SecondCategoryName string `json:"secondCategoryName"` SecondCategoryName string `json:"secondCategoryName"`
ThirdCategoryName string `json:"thirdCategoryName"` ThirdCategoryName string `json:"thirdCategoryName"`
CreatedAt int64 `json:"createdAt"` CreatedAt time.Time `json:"createdAt"`
} }
type ReplySkuAuditLists struct { type ReplySkuAuditLists struct {
@ -73,26 +61,6 @@ func (s *skuAudit) Lists(ctx context.Context, args ArgsSkuAuditLists) (reply Rep
return return
} }
// InfoEs @Title 审核详情
func (s *skuAudit) InfoEs(ctx context.Context, skuId uint) (reply SkuAndAuditItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "InfoEs", skuId, &reply)
return
}
// ListsEs @Title 审核列表
func (s *skuAudit) ListsEs(ctx context.Context, args ArgsSkuAuditEsLists) (reply ReplySkuAuditLists, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "ListsEs", args, &reply)
return
}
type ArgsSkuAuditAdopt struct { type ArgsSkuAuditAdopt struct {
AuditUserId uint // 审核人 AuditUserId uint // 审核人
AuditIds []uint // 审核单id AuditIds []uint // 审核单id
@ -108,16 +76,6 @@ func (s *skuAudit) Adopt(ctx context.Context, args ArgsSkuAuditAdopt) error {
return xClient.Call(ctx, "Adopt", args, &reply) return xClient.Call(ctx, "Adopt", args, &reply)
} }
// AdoptAll @Title 全部审核通过
func (s *skuAudit) AdoptAll(ctx context.Context, auditUserId uint) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "AdoptAll", auditUserId, &reply)
}
type ArgsSkuAuditReject struct { type ArgsSkuAuditReject struct {
AuditUserId uint // 审核人 AuditUserId uint // 审核人
AuditIds []uint // 审核单id AuditIds []uint // 审核单id
@ -138,66 +96,3 @@ func (s *skuAudit) Reject(ctx context.Context, args ArgsSkuAuditReject) error {
func (s *skuAudit) Stock() { func (s *skuAudit) Stock() {
} }
type ArgsApplyHistory struct {
Search ApplyHistorySearch
Page bean.Page
}
type ApplyHistorySearch struct {
Id uint // 瑞库客id
Name string // 商品名称
SourceId uint // 所属供应商 1=京东
SourceSonId uint // 沙马供应商的供应商
SourceSkuId uint // 供应商skuId
BrandId uint // 品牌Id
ThirdCategoryId uint // 三级分类Id
AdjustType uint // 加价规则
MaxSupplyPrice decimal.Decimal // 最大采购价格
MinSupplyPrice decimal.Decimal // 最小采购价格
CustomerProfitRate uint // 折扣 0=全部 1=5折以下 2=6 3=7 4=8 5=9折以下
Handle uint // 处理状态
AuditStatus uint // 审核状态
SourceStatus uint // 供应商下架状态
PlatformStatus uint // 平台下架状态
}
type ApplyHistoryItem struct {
Id uint `json:"id"`
Name string `json:"name"` // 名称
BrandName string `json:"brandName"` // 品牌名称
FirstCategoryId uint `json:"firstCategoryId"` // 一级分类id
SecondCategoryId uint `json:"secondCategoryId"` // 二级分类id
ThirdCategoryId uint `json:"thirdCategoryId"` // 三级分类id
SupplyPrice decimal.Decimal `json:"supplyPrice"` // 采购价
GuidePrice decimal.Decimal `json:"guidePrice"` // 指导价
ImgUrl string `json:"imgUrl"` // 商品主图
PlatformStatus uint `json:"platformStatus"` // 平台状态 1=上架 2=下架
SourceName string `json:"sourceName"` // 供应商名称
SourceSkuId string `json:"sourceSkuId"` // 源skuId
SourceStatus uint `json:"sourceStatus"` // 供应商状态 1=上架 2=下架
CustomerPrice decimal.Decimal `json:"customerPrice"` // 供货最高价
CustomerProfitRate decimal.Decimal `json:"customerProfitRate"` // 供货利润率 供货利润/供货最高价%
CustomerDiscount decimal.Decimal `json:"customerDiscount"` // 折扣
AdjustType uint `json:"adjustType"` // 加价类型
AdjustPrice decimal.Decimal `json:"adjustPrice"` // 加价金额
AfterAdjustType uint `json:"afterAdjustType"` // 改价后加价类型
AfterAdjustPrice decimal.Decimal `json:"afterAdjustPrice"` // 改价后加价金额
AfterPrice decimal.Decimal `json:"afterPrice"` // 改价记录
Reason string // 改价驳回原因
}
type ReplyApplyHistoryLists struct {
Lists []ApplyHistoryItem `json:"lists"`
Total int64 `json:"total"`
}
// ApplyHistory @Title 改价申请记录
func (s *skuAudit) ApplyHistory(ctx context.Context, args ArgsApplyHistory) (reply []ReplyApplyHistoryLists, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return nil, err
}
err = xClient.Call(ctx, "ApplyHistory", args, &reply)
return
}

@ -1,66 +0,0 @@
package supply
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/lib/bean"
)
type skuTag struct {
}
type ArgsSkuTagAdds struct {
SkuIds []uint // skuIds
TagId uint // tagId
}
// Adds @Title 添加商品
func (s *skuTag) Adds(ctx context.Context, args ArgsSkuTagAdds) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "Adds", args, &reply)
}
type ArgsSkuTagDels struct {
SkuIds []uint // skuIds
TagId uint // tagId
}
// Dels @Title 删除商品
func (s *skuTag) Dels(ctx context.Context, args ArgsSkuTagDels) error {
reply := 0
xClient, err := client.GetClient(s)
if err != nil {
return err
}
return xClient.Call(ctx, "Dels", args, &reply)
}
type ArgsTagSkuLists struct {
TagId uint
Page bean.Page
}
type TagSkuItem struct {
Id uint `json:"id"`
SkuId uint `json:"skuId"`
Status uint `json:"status"` // 上下架状态 1=上架 2=下架
SkuName string `json:"skuName"`
}
type ReplyTagSkuLists struct {
Total int64 `json:"total"`
Lists []TagSkuItem `json:"lists"`
}
// SkuLists @Title 标签商品列表
func (s *skuTag) SkuLists(ctx context.Context, args ArgsTagSkuLists) (reply ReplyTagSkuLists, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "SkuLists", args, &reply)
return
}

@ -1,49 +1,9 @@
package supply package supply
import ( type Source struct {
"context"
"git.oa00.com/supply-chain/service/client"
)
type sourceRpc struct {
Id uint `gorm:"primaryKey"` Id uint `gorm:"primaryKey"`
Name string // 供货商名称 Name string // 供货商名称
Base string // rpc服务基础名称 Base string // rpc服务基础名称
SkuName string // sku名称 SkuName string // sku名称
OrderName string // order名称 OrderName string // order名称
} }
type SourceItem struct {
Id uint `json:"id"`
Name string `json:"name"`
}
// Select @Title 订单列表
func (s *sourceRpc) Select(ctx context.Context) (reply []SourceItem, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
args := 0
err = xClient.Call(ctx, "Select", args, &reply)
return
}
type SourceInfo struct {
Id uint `json:"id"`
Name string `json:"name"`
Base string `json:"base"`
SkuName string `json:"skuName"`
OrderName string `json:"orderName"`
AfterService string `json:"afterService"`
}
// Info @Title 获取供货商
func (s *sourceRpc) Info(ctx context.Context, sourceId uint) (reply SourceInfo, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", sourceId, &reply)
return
}

@ -2,7 +2,6 @@ package supply
import ( import (
"git.oa00.com/supply-chain/service/supply/channel" "git.oa00.com/supply-chain/service/supply/channel"
"git.oa00.com/supply-chain/service/supply/data"
"git.oa00.com/supply-chain/service/supply/setting" "git.oa00.com/supply-chain/service/supply/setting"
) )
@ -14,8 +13,4 @@ type Supply struct {
Channel channel.Channel Channel channel.Channel
Setting setting.Setting Setting setting.Setting
Order order Order order
Source sourceRpc
AfterService afterService
SkuTag skuTag
Data data.Data
} }

@ -1,70 +0,0 @@
package wholesale
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/supply"
)
type brand struct {
}
// Lists @Title 品牌列表
func (b *brand) Lists(ctx context.Context, args supply.ArgsBrandList) (result supply.ReplyBrandList, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &result)
return
}
// All @Title 全部品牌
func (b *brand) All(ctx context.Context) (result []supply.BrandItem, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
err = xClient.Call(ctx, "All", 0, &result)
return
}
// FindByNameAll @Title 品牌名称筛选品牌
func (b *brand) FindByNameAll(ctx context.Context, name string) (result []supply.BrandItem, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByNameAll", name, &result)
return
}
// Add @Title 添加品牌
func (b *brand) Add(ctx context.Context, args supply.ArgsBrandAdd) (err error) {
reply := 0
xClient, err := client.GetClient(b)
if err != nil {
return err
}
return xClient.Call(ctx, "Add", args, &reply)
}
// Edit @Title 编辑品牌
func (b *brand) Edit(ctx context.Context, args supply.ArgsBrandEdit) (err error) {
reply := 0
xClient, err := client.GetClient(b)
if err != nil {
return err
}
return xClient.Call(ctx, "Edit", args, &reply)
}
// FindByIds @Title 品牌获取
func (b *brand) FindByIds(ctx context.Context, args supply.ArgsBrandFindByIds) (result []supply.BrandItem, err error) {
xClient, err := client.GetClient(b)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByIds", args, &result)
return
}

@ -1,70 +0,0 @@
package wholesale
import (
"context"
"git.oa00.com/supply-chain/service/client"
"git.oa00.com/supply-chain/service/supply"
)
type category struct {
}
// All @Title 获取分类
func (c *category) All(ctx context.Context) (result []supply.CategoryItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "All", 0, &result)
return
}
// AllNoHidden @Title 获取显示的分类
func (c *category) AllNoHidden(ctx context.Context) (result []supply.CategoryItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "AllNoHidden", 0, &result)
return
}
// Add @Title 添加分类
func (c *category) Add(ctx context.Context, args supply.ArgsCategoryAdd) (err error) {
reply := 0
xClient, err := client.GetClient(c)
if err != nil {
return
}
return xClient.Call(ctx, "Add", args, &reply)
}
// Edit @Title 编辑分类
func (c *category) Edit(ctx context.Context, args supply.ArgsCategoryEdit) (err error) {
reply := 0
xClient, err := client.GetClient(c)
if err != nil {
return
}
return xClient.Call(ctx, "Edit", args, &reply)
}
// FindByIds @Title 三级分类获取
func (c *category) FindByIds(ctx context.Context, args supply.ArgsCategoryFindByIds) (result []supply.ThirdCategoryItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByIds", args, &result)
return
}
// ChangeHidden @Title 切换隐藏状态
func (c *category) ChangeHidden(ctx context.Context, args supply.ArgsChangeHidden) error {
xClient, err := client.GetClient(c)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "ChangeHidden", args, &reply)
}

@ -1,7 +0,0 @@
package channel
type Channel struct {
Sku sku
Order order
Mq mq
}

@ -1,61 +0,0 @@
package channel
import (
"context"
"git.oa00.com/supply-chain/service/client"
"github.com/smallnest/rpcx/share"
)
const (
MqSubscribeNameSkuPriceChange = "sku_price_change" // sku价格变动
MqSubscribeNameSkuChange = "sku_change" // sku信息变动
MqSubscribeNameOrderFreightFee = "order_freight_fee" // 运费处理完成
MqSubscribeNameOrderSplit = "order_split" // 拆单
MqSubscribeNameOrderStockOut = "order_stock_out" // 订单出库
MqSubscribeNameOrderFinish = "order_finish" // 订单完成
MqSubscribeNameOrderCancel = "order_cancel" // 订单取消
)
type mq struct {
}
type ArgsMqSubscribe struct {
Name string // 队列名称
AppKey string // 队列名称
}
// Subscribe @Title 订阅mq
func (m *mq) Subscribe(ctx context.Context, channelId string, args ArgsMqSubscribe) (key string, err error) {
xClient, err := client.GetClient(m)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Subscribe", args, &key)
return
}
// SubscribeCancel @Title 订阅取消
func (m *mq) SubscribeCancel(ctx context.Context, channelId string, args ArgsMqSubscribe) (err error) {
reply := 0
xClient, err := client.GetClient(m)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "SubscribeCancel", args, &reply)
return
}
type ArgsMqUser struct {
AppKey string
AppSecret string
}
// User @Title Mq用户
func (m *mq) User(ctx context.Context, channelId string, args ArgsMqUser) (err error) {
reply := 0
xClient, err := client.GetClient(m)
if err != nil {
return
}
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "User", args, &reply)
return
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save