Compare commits

...

63 Commits

Author SHA1 Message Date
杨赟 8e7df7f8d9 更新价格
2 months ago
杨赟 8598d0e093 更新价格
2 months ago
杨赟 d5469d075e 订单详情
4 months ago
杨赟 19b57a0c60 订单详情
4 months ago
杨赟 96f75eb74f 订单详情
4 months ago
杨赟 ef961453c3 订单详情
4 months ago
杨赟 aedde55db9 添加订单接口
4 months ago
杨赟 1770af0d91 批量导入
4 months ago
杨赟 5469d43d10 Merge branch 'master' of git.oa00.com:supply-chain/service
4 months ago
杨赟 cf303af486 添加售后描述
4 months ago
杨赟 88881223a6 修改数据
5 months ago
杨赟 d41fe93473 添加任务
5 months ago
杨赟 61594c75b0 用户余额获取
5 months ago
杨赟 8fd1ecd4e8 云中鹤接口
5 months ago
杨赟 e27dfb1b3f 更新搜索
5 months ago
杨赟 5d85dc3880 订单详情
5 months ago
杨赟 8fd88cbd23 订单妥投
7 months ago
杨赟 f39069dd15 订单详情
8 months ago
杨赟 075670fe21 添加返回字段
8 months ago
杨赟 37db85bfc4 添加返回参数
9 months ago
张萌 19e8b18e7b 主订单筛选
12 months ago
张萌 972891b6bd 添加主订单号筛选
12 months ago
张萌 5bbb332db7 添加主订单号筛选
12 months ago
杨赟 0a5b02d80f 添加统计
1 year ago
杨赟 42c89a0796 添加统计
1 year ago
杨赟 7dd3088da1 修改参数
1 year ago
杨赟 591981f65b 实名认证
1 year ago
杨赟 6fed756fab 实名认证
1 year ago
杨赟 cce22f77f1 添加接口
1 year ago
杨赟 ea5db5062e 修改返回数据
1 year ago
杨赟 1028da7a36 添加统计
1 year ago
杨赟 0ad1eb39f0 添加余额记录
1 year ago
sian 0b22169906 修改
1 year ago
sian bb367dcd16 修改啊
1 year ago
黄伟 bdbbaeb32e 修改
1 year ago
黄伟 36db3cf494 修改
1 year ago
黄伟 849511e76c bug fix
1 year ago
黄伟 3d7518b2e1 bug fix
1 year ago
黄伟 1b72b89c7d 修改、
1 year ago
黄伟 cdfe0bff3e 修改
1 year ago
黄伟 d5dba6ce9f Merge branch 'master' of git.oa00.com:supply-chain/service
1 year ago
黄伟 9481d37f9e 修改
1 year ago
黄伟 a274cca992 修改
1 year ago
黄伟 ced9477531 修改
1 year ago
黄伟 1df23f89ca 修改
1 year ago
黄伟 bd04ae0f43 Merge branch 'master' of git.oa00.com:supply-chain/service
1 year ago
黄伟 ff306e5171 修改、
1 year ago
杨赟 36bedabe8c 添加消费记录
1 year ago
杨赟 f9afc8d7ef 添加mq
1 year ago
杨赟 2b69b5282c 添加mq
1 year ago
杨赟 b039533017 添加mq
1 year ago
杨赟 449923e9e9 添加mq
1 year ago
杨赟 2a889adcc8 添加模糊查询
1 year ago
黄伟 9414f49953 Merge branch 'master' of git.oa00.com:supply-chain/service
1 year ago
黄伟 d6bd8ec36b 修改供应商详情接口
1 year ago
杨赟 0eda5d72cd 刷新索引
1 year ago
杨赟 6894c1c6fc 刷新索引
1 year ago
黄伟 029173a5cf 添加rpc接口
1 year ago
杨赟 a48abf027b rpc客户端修复
1 year ago
杨赟 4ccd04056a 费用记录
1 year ago
杨赟 0fbe8fb092 Merge branch 'master' of git.oa00.com:supply-chain/service
1 year ago
杨赟 b2a28ba46f 添加通知
1 year ago
黄伟 c127a9ed17 Merge pull request 'finance' (#1) from finance into master
1 year ago

@ -2,6 +2,7 @@ package customer
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/sku"
@ -13,4 +14,5 @@ type Customer struct {
Sku sku.Sku
BatchSku batchSku.BatchSku
Finance finance.Finance
Data data.Data
}

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

@ -0,0 +1,33 @@
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
}

@ -0,0 +1,41 @@
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)
}

@ -0,0 +1,102 @@
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)
}

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

@ -13,8 +13,6 @@ type walletType uint // 费用类型
const (
WalletTypeIncome walletType = 1 // 收入 +
WalletTypeExpend walletType = 2 // 支出 -
WalletTypeBack walletType = 3 // 退款 +
WalletTypeCash walletType = 4 // 提现 -
WalletStatusHandle = 1 // 处理中
WalletStatusSuccess = 2 // 成功
@ -28,6 +26,7 @@ type ArgsWalletDirect struct {
ServiceId uint // 服务id
TradeChannel string // 交易渠道
TradeSerialSn string // 交易渠道流水号
Title string // 收支标题
Remark string // 备注信息
}
@ -48,6 +47,7 @@ type ArgsWalletCreate struct {
ServiceId uint // 服务id
TradeChannel string // 交易渠道
TradeSerialSn string // 交易渠道流水号
Title string // 收支标题
Remark string // 备注信息
CancelSecond int64 // 自动取消秒
}
@ -91,3 +91,13 @@ func (w *wallet) Fail(ctx context.Context, args ArgsWalletFail) error {
}
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
}

@ -0,0 +1,58 @@
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
}

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

@ -0,0 +1,46 @@
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,6 +1,9 @@
package jd
import "git.oa00.com/supply-chain/service/jd/jdsdk"
import (
"git.oa00.com/supply-chain/service/jd/data"
"git.oa00.com/supply-chain/service/jd/jdsdk"
)
type Jd struct {
Task task
@ -8,4 +11,5 @@ type Jd struct {
Category category
Sku sku
Jdsdk jdsdk.Jdsdk
Data data.Data
}

@ -248,3 +248,19 @@ func (s *sku) ReHandle(ctx context.Context, skuId uint) error {
}
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)
}

@ -203,7 +203,7 @@ func (d *ConsulDiscovery) watch() {
continue
}
for _, p := range ps {
if !strings.HasPrefix(p.Key, prefix) { // avoid prefix issue of consul List
if path.Dir(p.Key) != d.basePath {
continue
}
k := strings.TrimPrefix(p.Key, prefix)

@ -4,6 +4,7 @@ import (
"git.oa00.com/supply-chain/service/customer"
"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/supply"
"git.oa00.com/supply-chain/service/wholesale"
@ -18,4 +19,5 @@ type rpc struct {
Supplier supplier.Supplier
Wholesale wholesale.Wholesale
OtoSaas otosaas.OtoSaas
Skycrane skycrane.Skycrane
}

@ -0,0 +1,85 @@
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
}

@ -0,0 +1,62 @@
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
}

@ -0,0 +1,74 @@
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)
}

@ -0,0 +1,65 @@
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
}

@ -0,0 +1,191 @@
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)
}

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

@ -0,0 +1,65 @@
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
}

@ -20,6 +20,7 @@ type Supplier struct {
AfsAudit afsAudit
BatchGoods batch.Goods
Enterprise enterprise
Real supplierReal
}
type supplier struct {
@ -102,12 +103,32 @@ func (s *supplier) Disabled(ctx context.Context, supplierId uint) error {
}
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
SupplierName string // 供应商名称
Account string // 账户名
PayType uint // 结算方式
Liaison string // 联系人
Phone string // 手机号
Annex string // 附件
WarnStatus uint // 预警状态
WarnValue decimal.Decimal // 预警值
@ -143,6 +164,22 @@ func (s *supplier) InfoByRetailOrderSn(ctx context.Context, retailOrderSn string
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 {
SupplierId uint
SupplierName string // 供应商名称

@ -0,0 +1,105 @@
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,3 +119,39 @@ func (s *supplierWalletApply) Apply(ctx context.Context, args ArgsSupplierWallet
reply := 0
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
}

@ -74,6 +74,7 @@ type ArgsAfterServiceApply struct {
TypeName string // 售后名称
ReasonCode string // 售后原因编码
ReasonName string // 售后原因描述
Describe string // 售后描述
ChannelAfterServiceSn string // 渠道售后单号
OrderSn string // 订单编号
SkuId uint // skuId

@ -11,6 +11,7 @@ const (
MqSubscribeNameSkuChange = "sku_change" // sku信息变动
MqSubscribeNameOrderSplit = "order_split" // 订单拆单
MqSubscribeNameOrderStockOut = "order_stock_out" // 订单出库
MqSubscribeNameOrderDelivered = "order_delivered" // 订单签收
MqSubscribeNameOrderFinish = "order_finish" // 订单完成
MqSubscribeNameOrderCancel = "order_cancel" // 订单取消
MqSubscribeNameAfsDeliver = "afs_deliver" // 需要客户发货

@ -196,14 +196,16 @@ type ArgsOrderLists struct {
}
type OrderItem struct {
OrderId uint `json:"orderId"`
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"`
@ -212,10 +214,10 @@ type OrderItem struct {
Skus []OrderSku `json:"skus"`
Packages []OrderPackage `json:"packages"`
StockOutAt int64 `json:"stockOutAt"`
IsSplit uint `json:"isSplit"`
}
type OrderSku struct {
Id uint `json:"id"`
SkuId uint `json:"skuId"`
Name string `json:"name"`
Price decimal.Decimal `json:"price"`
@ -250,42 +252,59 @@ type ArgsOrderDetail struct {
ChannelOrderSn string
}
type ReplyOrderDetail struct {
ChannelOrderSn string
OrderSn string
OrderFee decimal.Decimal
FreightFee decimal.Decimal
Receiver OrderReceiver
CreatedAt int64
LadingBillAt int64
CloseAt int64
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
ReceiverMobile string
ReceiverEmail string
ReceiverZipCode string
Address string
UserIp string
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, orderSn string) (reply ReplyOrderDetail, err error) {
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", orderSn, &reply)
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, orderSn string) (reply OrderItem, err error) {
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", orderSn, &reply)
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "SubDetail", orderSubSn, &reply)
return
}

@ -6,6 +6,7 @@ import (
"git.oa00.com/supply-chain/service/lib/bean"
"github.com/shopspring/decimal"
"github.com/smallnest/rpcx/share"
"time"
)
type sku struct {
@ -58,11 +59,13 @@ type SkuItem struct {
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
Highlight SkuItemHighlight `json:"highlight"`
Tag []string `json:"tag"`
}
type ReplySkuList struct {
Lists []SkuItem `json:"lists"`
Total int64 `json:"total"`
Lists []SkuItem `json:"lists"`
Total int64 `json:"total"`
ScrollId string `json:"scrollId"`
}
// Lists @Title 商品列表
@ -98,12 +101,14 @@ type SkuEsSearch struct {
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
@ -121,6 +126,21 @@ func (s *sku) ListsEs(ctx context.Context, channelId string, args ArgsSkuListsEs
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 {
SkuIds []uint // sku数组
}
@ -154,6 +174,7 @@ type SkuDetailItem struct {
Imgs []SkuImg `json:"imgs"`
Specifications []SkuSpecification `json:"specifications"`
GroupSkuIds []uint `json:"groupSkuIds"`
Tag []string `json:"tag"`
}
type SkuImg struct {
Path string `json:"path"`

@ -0,0 +1,52 @@
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
}

@ -0,0 +1,37 @@
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
}

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

@ -0,0 +1,201 @@
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
}

@ -60,6 +60,7 @@ type ArgsAfterServiceApply struct {
TypeName string // 售后名称
ReasonCode string // 售后原因编码
ReasonName string // 售后原因描述
Describe string // 售后描述
AfsSn string // 渠道售后单号
OrderSn string // 订单编号
SkuId string // skuId

@ -20,6 +20,8 @@ type OrderInterface interface {
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 // 订单编号
@ -47,6 +49,7 @@ type ArgsOrderSubmit struct {
FreightFee decimal.Decimal // 运费
Receiver OrderReceiver // 收件信息
UserIp string // 用户ip
BuyerMsg string // 用户备注
}
type OrderReceiver struct {
@ -66,3 +69,20 @@ type PackageStep struct {
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"`
}

@ -104,6 +104,22 @@ func (o *order) StockOut(ctx context.Context, args ArgsOrderStockOut) (err error
// 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 {
Source source // 商品来源
SourceOrderSn string // 供应商订单号
@ -140,18 +156,18 @@ type RetailOrderSearch struct {
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"`
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 {
@ -216,3 +232,75 @@ func (o *order) Info(ctx context.Context, orderSn string) (reply OrderInfo, err
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
}

@ -38,3 +38,33 @@ func (o *opensearch) IndicesRefresh(ctx context.Context) error {
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
}

@ -16,6 +16,7 @@ const (
SkuSourceJd source = 1 // 京东开普勒渠道
SkuSourceSupplier source = 2 // 供应链供应商渠道
SkuSourceOtoSaas source = 3 // 海旅供应商渠道
SkuSourceSkycrane source = 4 // 云中鹤渠道
)
const (
@ -61,6 +62,7 @@ type ArgsSkuAdd struct {
Content string // 商品详情
Imgs []SkuImg // 商品图片 第一张主图
Specifications []SkuSpecification // 商品参数信息
Tag []string // 标签
}
type SkuImg struct {
@ -198,6 +200,7 @@ type SkuEsSearch struct {
SkuId uint // Sku编码
SupplySkuId uint // 供应商Sku编码
SkuName string // 商品名称
SkuNameVague string // 商品名称-模糊查询
UpcCode string // 商品条码
BrandId uint // 品牌id
BrandName string // 品牌名称 全词匹配
@ -366,6 +369,7 @@ type ArgsSkuChangeData struct {
Source source // 商品来源
Imgs []string // 商品图片 第一张主图
Specifications []SkuSpecification // 商品参数信息
Tag []string // 标签
}
// ChangeData @Title 更新商品信息

@ -28,3 +28,22 @@ func (s *sourceRpc) Select(ctx context.Context) (reply []SourceItem, err error)
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,6 +2,7 @@ package supply
import (
"git.oa00.com/supply-chain/service/supply/channel"
"git.oa00.com/supply-chain/service/supply/data"
"git.oa00.com/supply-chain/service/supply/setting"
)
@ -16,4 +17,5 @@ type Supply struct {
Source sourceRpc
AfterService afterService
SkuTag skuTag
Data data.Data
}

@ -7,8 +7,13 @@ import (
)
const (
MqSubscribeNameSkuPriceChange = "sku_price_change" // sku价格变动
MqSubscribeNameSkuChange = "sku_change" // sku信息变动
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 {

@ -121,6 +121,7 @@ type OrderSearch struct {
Status []uint // 订单状态
CancelStatus uint // 取消状态
OrderSubSn string // 订单号
OrderSn string // 主订单号
CreatedStartDate string // 创建开始日期
CreatedEndDate string // 创建结束日期
PayStartDate string // 支付开始日期

@ -128,6 +128,7 @@ type ArgsOrderLists struct {
type OrderSearch struct {
OrderSubSn string
OrderSn string
Status []uint
CancelStatus uint
CreatedStartDate string
@ -145,6 +146,7 @@ type OrderItem struct {
Id uint
ChannelId uint
OrderSubSn string
OrderSn string
SourceOrderSn string
Status uint
CancelStatus uint

Loading…
Cancel
Save