service/erp/custom.go

187 lines
7.5 KiB
Go
Raw Normal View History

2024-07-16 17:18:31 +08:00
package erp
import (
"context"
client2 "git.kumo.work/shama/service/client"
custom2 "git.kumo.work/shama/service/erp/custom"
"git.kumo.work/shama/service/lib/bean"
"github.com/shopspring/decimal"
"time"
)
type custom struct {
custom2.Custom
}
type ArgsCustomList struct {
Page bean.Page
Search CustomSearch
}
type CustomSearch struct {
2024-10-23 11:56:33 +08:00
Name string // 公司名称
ShortName string // 公司简称
Rank string // 客户等级
TradeCountry string // 贸易国别
Origin string // 客户来源
DepartmentIds []int64 // 所属部门
BanFlag int64 // 禁用标记 1=禁用 2=启用
StaffIds []int64 // 业务员
CreatedStaffIds []int64 // 业务员
2024-07-16 17:18:31 +08:00
}
type ReplyCustomList struct {
List []CustomItem `json:"list"`
Total int64 `json:"total"`
}
type CustomItem struct {
Id int64 `json:"id"`
Serial string `json:"serial"`
BanFlag int64 `json:"banFlag"`
Name string `json:"name"`
ShortName string `json:"shortName"`
Type string `json:"type"`
Rank string `json:"rank"`
Origin string `json:"origin"`
TradeCountry string `json:"tradeCountry"`
Country string `json:"country"`
City string `json:"city"`
TradeScope string `json:"tradeScope"`
Intent string `json:"intent"`
CompanyPhone string `json:"companyPhone"`
CompanyFax string `json:"companyFax"`
CompanyWebsite string `json:"companyWebsite"`
CompanyZipCode string `json:"companyZipCode"`
CompanyAddress string `json:"companyAddress"`
CompanyCnAddress string `json:"companyCnAddress"`
SalesCurrency string `json:"salesCurrency"`
PayWay string `json:"payWay"`
PayDown decimal.Decimal `json:"payDown"`
PayCycle int64 `json:"payCycle"`
PayTerms string `json:"payTerms"`
CargoCompany string `json:"cargoCompany"`
Info string `json:"info"`
MarkText string `json:"markText"`
MarkImg string `json:"markImg"`
ImgFilePaths []string `json:"imgFilePaths"`
Status int64 `json:"status"`
CreatedStaffId int64 `json:"createdStaffId"`
CreatedAt *time.Time `json:"createdAt"`
UpdatedAt *time.Time `json:"updatedAt"`
}
// List @TITLE 客户列表
func (c *custom) List(ctx context.Context, args ArgsCustomList) (reply ReplyCustomList, err error) {
xClient, err := client2.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "List", args, &reply)
return
}
type ArgsCustomAdd struct {
StaffId int64
CustomAdd
}
type CustomAdd struct {
Serial string // 客户编号
BanFlag int64 // 禁用标记 1=禁用 2=启用
Name string // 公司名称
ShortName string // 公司简称
Type string // 客户类型
Rank string // 客户等级
Origin string // 客户来源
TradeCountry string // 贸易国别
Country string // 国家区域
City string // 所在城市
TradeScope string // 业务范围
Intent string // 意向产品
CompanyPhone string // 公司电话
CompanyFax string // 公司传真
CompanyWebsite string // 公司网址
CompanyZipCode string // 公司邮编
CompanyAddress string // 公司英文详细地址
CompanyCnAddress string // 公司详细中文地址
SalesCurrency string // 销售币种
PayWay string // 付款方式
PayDown decimal.Decimal // 定金比例
PayCycle int64 // 付款周期
PayTerms string // 价格条款
CargoCompany string // 货运公司
Info string // 备注
MarkText string // 唛头文字
MarkImg string // 唛头图片
ImgFilePaths []string // 图片地址集合
}
// Add @TITLE 添加客户
func (c *custom) Add(ctx context.Context, args ArgsCustomAdd) (customId int64, err error) {
xClient, err := client2.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Add", args, &customId)
return
}
type ReplyCustomInfo struct {
Id int64 `json:"id"`
Serial string `json:"serial"` // 客户编号
BanFlag int64 `json:"banFlag"` // 禁用标记 1=禁用 2=启用
Name string `json:"name"` // 公司名称
ShortName string `json:"shortName"` // 公司简称
Type string `json:"type"` // 客户类型
Rank string `json:"rank"` // 客户等级
Origin string `json:"origin"` // 客户来源
TradeCountry string `json:"tradeCountry"` // 贸易国别
Country string `json:"country"` // 国家区域
City string `json:"city"` // 所在城市
TradeScope string `json:"tradeScope"` // 业务范围
Intent string `json:"intent"` // 意向产品
CompanyPhone string `json:"companyPhone"` // 公司电话
CompanyFax string `json:"companyFax"` // 公司传真
CompanyWebsite string `json:"companyWebsite"` // 公司网址
CompanyZipCode string `json:"companyZipCode"` // 公司邮编
CompanyAddress string `json:"companyAddress"` // 公司英文详细地址
CompanyCnAddress string `json:"companyCnAddress"` // 公司详细中文地址
SalesCurrency string `json:"salesCurrency"` // 销售币种
PayWay string `json:"payWay"` // 付款方式
PayDown decimal.Decimal `json:"payDown"` // 定金比例
PayCycle int64 `json:"payCycle"` // 付款周期
PayTerms string `json:"payTerms"` // 价格条款
CargoCompany string `json:"cargoCompany"` // 货运公司
Info string `json:"info"` // 备注
MarkText string `json:"markText"` // 唛头文字
MarkImg string `json:"markImg"` // 唛头图片
ImgFilePaths []string `json:"imgFilePaths"` // 图片地址集合
Status int64 `json:"status"`
CreatedStaffId int64 `json:"createdStaffId"`
CreatedAt *time.Time `json:"createdAt"`
UpdatedAt *time.Time `json:"updatedAt"`
}
// Info @TITLE 客户详情
func (c *custom) Info(ctx context.Context, customId int64) (reply ReplyCustomInfo, err error) {
xClient, err := client2.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "Info", customId, &reply)
return
}
type ArgsCustomEdit struct {
CustomId int64
CustomAdd
}
// Edit @TITLE 编辑客户
func (c *custom) Edit(ctx context.Context, args ArgsCustomEdit) (err error) {
xClient, err := client2.GetClient(c)
if err != nil {
return
}
reply := 0
return xClient.Call(ctx, "Edit", args, &reply)
}