You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
4.9 KiB
183 lines
4.9 KiB
package service
|
|
|
|
import (
|
|
"context"
|
|
"git.oa00.com/supply-chain/service/client"
|
|
"git.oa00.com/supply-chain/service/lib/bean"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
AuditHistoryAuditStatusNone = 1 // 待审核
|
|
AuditHistoryAuditStatusAdopt = 2 // 审核通过
|
|
AuditHistoryAuditStatusReject = 3 // 审核驳回
|
|
|
|
AuditHistoryAuditApplyTypeManage = 1 // 平台业务申请
|
|
AuditHistoryAuditApplyTypeCustomer = 2 // 客户自主申请
|
|
)
|
|
|
|
type audit struct {
|
|
}
|
|
type AuditSearch struct {
|
|
ApplyUserId uint // 申请人
|
|
Status uint // 审核状态 1=未审核 2=通过 3=驳回
|
|
Name string // 用户名称
|
|
}
|
|
type ArgsAuditLists struct {
|
|
Search AuditSearch // 筛选
|
|
Page bean.Page // 分页
|
|
}
|
|
type AuditItem struct {
|
|
Id uint `json:"id"`
|
|
ServiceId uint `json:"serviceId"`
|
|
UserId uint `json:"userId"`
|
|
UserName string `json:"userName"`
|
|
ServiceName string `json:"serviceName"`
|
|
ApplyUserId uint `json:"applyUserId"`
|
|
ApplyType uint `json:"ApplyType"`
|
|
ApplyAt int64 `json:"applyAt"`
|
|
AuditStatus uint `json:"auditStatus"`
|
|
AuditUserId uint `json:"auditUserId"`
|
|
AuditAt int64 `json:"auditAt"`
|
|
}
|
|
type ReplyAuditLists struct {
|
|
Lists []AuditItem `json:"lists"`
|
|
Total int64 `json:"total"`
|
|
}
|
|
|
|
// Lists @Title 服务审核列表
|
|
func (a *audit) Lists(ctx context.Context, args ArgsAuditLists) (reply ReplyAuditLists, err error) {
|
|
xClient, err := client.GetClient(a)
|
|
if err != nil {
|
|
return
|
|
}
|
|
err = xClient.Call(ctx, "Lists", args, &reply)
|
|
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
|
|
}
|