package logic

// import (
// 	"errors"

// 	"github.com/fonchain/fonchain-artistinfo/cmd/internal/dao"
// 	"github.com/fonchain/fonchain-artistinfo/cmd/model"
// 	"github.com/fonchain/fonchain-artistinfo/pb/mgmtStatement"
// 	db "github.com/fonchain/fonchain-artistinfo/pkg/db"
// 	"github.com/fonchain/fonchain-artistinfo/pkg/m"
// 	uuid "github.com/satori/go.uuid"
// )

// type IMgmtStatement interface {
// 	AddBatchDetail(in *mgmtStatement.AddBatchDetailreq) (*mgmtStatement.AddBatchDetailres, error)
// 	UploadExcelOne(in *mgmtStatement.UploadExcelOnereq) (*mgmtStatement.UploadExcelOneres, error)
// 	UploadExcelTwo(in *mgmtStatement.UploadExcelTworeq) (*mgmtStatement.UploadExcelTwores, error)
// 	ArtistStatementList(in *mgmtStatement.ArtistStatementListreq) (*mgmtStatement.ArtistStatementListres, error)
// 	ArtStatementList(in *mgmtStatement.ArtStatementListreq) (*mgmtStatement.ArtStatementListres, error)
// 	ExportContract(in *mgmtStatement.ExportContractreq) (*mgmtStatement.ExportContractres, error)
// 	UpdateState(in *mgmtStatement.UpdateStatementreq) error
// 	CreateTxContract(in *mgmtStatement.CreateTxContractreq) (resp *mgmtStatement.CreateTxContractres, err error)
// }

// func NewMgmtStatement() IMgmtStatement {
// 	return &MgmtStatement{}
// }

// type MgmtStatement struct{}

// // 通过excel生成一条批次数据
// func (a *MgmtStatement) AddBatchDetail(in *mgmtStatement.AddBatchDetailreq) (resp *mgmtStatement.AddBatchDetailres, err error) {
// 	resp = &mgmtStatement.AddBatchDetailres{}
// 	var uid uuid.UUID
// 	if uid, err = uuid.NewV4(); err != nil {
// 		err = errors.New(m.ERROR_UID)
// 		return
// 	}
// 	if err != nil {
// 		return nil, err
// 	}
// 	var data model.ArtworkTx
// 	data.Uid = uid.String()
// 	data.ArtistName = in.ArtistName
// 	data.ArtistUid = in.ArtistUid
// 	data.BatchTime = in.BatchTime
// 	if err = dao.AddBatchDetail(&data); err != nil {
// 		return
// 	}
// 	respData := &mgmtStatement.AddBatchRes{BatchUid: data.Uid}
// 	resp.Data = respData
// 	return
// }

// // 生成一条对账单记录(附件一)
// func (a *MgmtStatement) UploadExcelOne(in *mgmtStatement.UploadExcelOnereq) (resp *mgmtStatement.UploadExcelOneres, err error) {
// 	resp = &mgmtStatement.UploadExcelOneres{}
// 	var uid uuid.UUID
// 	if uid, err = uuid.NewV4(); err != nil {
// 		err = errors.New(m.ERROR_UID)
// 		return
// 	}
// 	if err != nil {
// 		return nil, err
// 	}
// 	var data model.ArtworkSoldTxDetail //物权版权的对账单

// 	sqlSelect := `select uid from artwork_tx where artistid = ? and batchtime = ?`
// 	var batchid string
// 	if err := db.DB.Raw(sqlSelect, data.ArtistUid, data.BatchTime).Find(&batchid).Error; err != nil {
// 		return nil, err
// 	}

// 	data.Uid = uid.String()
// 	data.BatchUid = batchid
// 	data.ArtworkName = in.ArtworkName
// 	data.ArtistName = in.ArtistName
// 	data.ArtistUid = in.ArtistUid
// 	data.TfNum = in.TfNum
// 	data.BatchTime = in.BatchTime
// 	data.GuaranteePrice = in.GuaranteePrice
// 	data.Ruler = in.Ruler
// 	data.MinPrice = in.MinPrice
// 	data.StType = in.StType //对账单类型:1=版权 2=物权
// 	if err = dao.UploadExcelOne(&data); err != nil {
// 		return
// 	}
// 	respData := &mgmtStatement.StatementAddRes{StatementUid: data.Uid}
// 	resp.Data = respData
// 	return
// }

// // 生成一条对账单记录(附件二)
// func (a *MgmtStatement) UploadExcelTwo(in *mgmtStatement.UploadExcelTworeq) (resp *mgmtStatement.UploadExcelTwores, err error) {
// 	resp = &mgmtStatement.UploadExcelTwores{}
// 	var uid uuid.UUID
// 	if uid, err = uuid.NewV4(); err != nil {
// 		err = errors.New(m.ERROR_UID)
// 		return
// 	}
// 	if err != nil {
// 		return nil, err
// 	}
// 	var data model.ArtworkSoldTxDetail //物权版权的对账单

// 	sqlSelect := `select uid from artwork_tx_batch where artistid = ? and batchtime = ?`
// 	var batchid string
// 	if err := db.DB.Raw(sqlSelect, data.ArtistUid, data.BatchTime).Find(&batchid).Error; err != nil {
// 		return nil, err
// 	}

// 	data.Uid = uid.String()
// 	data.BatchUid = batchid
// 	data.ArtworkName = in.ArtworkName
// 	data.ArtistName = in.ArtistName
// 	data.ArtistUid = in.ArtistUid
// 	data.TfNum = in.TfNum
// 	data.BatchTime = in.BatchTime
// 	data.Ruler = in.Ruler
// 	data.MinPrice = in.MinPrice
// 	data.StType = in.StType //对账单类型:1=版权 2=物权
// 	if err = dao.UploadExcelTwo(&data); err != nil {
// 		return
// 	}
// 	respData := &mgmtStatement.StatementAddRes{StatementUid: data.Uid}
// 	resp.Data = respData
// 	return
// }

// // 画家对账单列表
// func (a *MgmtStatement) ArtistStatementList(in *mgmtStatement.ArtistStatementListreq) (resp *mgmtStatement.ArtistStatementListres, err error) {
// 	resp = &mgmtStatement.ArtistStatementListres{}
// 	if in.Page < model.InitPage {
// 		in.Page = model.InitPage
// 	}
// 	if in.PageSize < 1 {
// 		in.PageSize = model.PageSize
// 	}
// 	var list []*model.ArtworkSoldTxDetail
// 	var count int64
// 	if list, count, err = dao.ArtistStatementList(in); err != nil {
// 		return
// 	}
// 	resp.Count = int32(count)
// 	resp.Page = in.Page
// 	resp.PageSize = in.PageSize
// 	for _, v := range list {
// 		temp := mgmtStatement.ArtistStatementListres_Info{}
// 		temp.ArtistName = v.ArtistName
// 		temp.ArtistUid = v.ArtistUid
// 		temp.BatchTime = v.BatchTime
// 		resp.Data = append(resp.Data, &temp)
// 	}
// 	return
// }

// // 画作列表,根据画家和批次
// func (a *MgmtStatement) ArtStatementList(in *mgmtStatement.ArtStatementListreq) (resp *mgmtStatement.ArtStatementListres, err error) {
// 	resp = &mgmtStatement.ArtStatementListres{}
// 	if in.Page < model.InitPage {
// 		in.Page = model.InitPage
// 	}
// 	if in.PageSize < 1 {
// 		in.PageSize = model.PageSize
// 	}
// 	var list []*model.ArtworkSoldTxDetail
// 	var count int64
// 	if list, count, err = dao.ArtStatementList(in); err != nil {
// 		return
// 	}
// 	resp.Count = int32(count)
// 	resp.Page = in.Page
// 	resp.PageSize = in.PageSize
// 	for _, v := range list {
// 		temp := mgmtStatement.ArtStatementListres_Info{}
// 		temp.ArtistName = v.ArtworkName
// 		temp.ArtistUid = v.ArtistUid
// 		temp.ArtworkName = v.ArtworkName
// 		temp.Ruler = v.Ruler
// 		temp.SaleNo = v.SaleNo
// 		temp.TfNum = v.TfNum
// 		temp.CompleteDate = v.CompleteDate
// 		temp.MinPrice = v.MinPrice
// 	}
// 	return
// }

// // 更新对账单状态
// func (a *MgmtStatement) UpdateState(in *mgmtStatement.UpdateStatementreq) (err error) {
// 	columns := map[string]interface{}{
// 		"status": in.Status, //状态
// 	}
// 	if err = dao.UpdateState(in.StatementUid, columns); err != nil {
// 		return
// 	}
// 	return
// }

// // 导出合同
// func (a *MgmtStatement) ExportContract(in *mgmtStatement.ExportContractreq) (resp *mgmtStatement.ExportContractres, err error) {
// 	resp = &mgmtStatement.ExportContractres{}
// 	if in.Page < model.InitPage {
// 		in.Page = model.InitPage
// 	}
// 	if in.PageSize < 1 {
// 		in.PageSize = model.PageSize
// 	}

// 	var list []*model.Contract
// 	var count int64
// 	if list, count, err = dao.ExportContract(in); err != nil {
// 		return
// 	}
// 	resp.Count = int32(count)
// 	for _, v := range list {
// 		temp := mgmtStatement.ExportContractres_Info{}
// 		temp.DownloadUrl = v.DownloadUrl
// 		temp.BatchTime = v.BatchTime
// 		temp.StType = v.StType
// 		temp.ViewUrl = v.ViewUrl
// 		temp.BatchUid = v.BatchUid
// 		temp.ArtistUid = v.ArtistUid
// 		resp.Data = append(resp.Data, &temp)
// 	}
// 	return
// }

// // 生成合同
// func (a *MgmtStatement) CreateTxContract(in *mgmtStatement.CreateTxContractreq) (resp *mgmtStatement.CreateTxContractres, err error) {
// 	resp = &mgmtStatement.CreateTxContractres{}

// 	var uid uuid.UUID
// 	if uid, err = uuid.NewV4(); err != nil {
// 		err = errors.New(m.ERROR_UID)
// 		return
// 	}
// 	if err != nil {
// 		return nil, err
// 	}

// 	var data model.Contract
// 	data.Uid = uid.String()
// 	data.ArtistUid = in.ArtistUid
// 	data.BatchTime = in.BatchTime
// 	data.BatchUid = in.BatchUid
// 	data.ContractId = in.ContractId
// 	data.StType = in.StType
// 	data.Status = 1
// 	data.DownloadUrl = in.DownloadUrl
// 	data.ViewUrl = in.ViewUrl
// 	data.CardId = in.CardId
// 	if err = dao.CreateTxContract(&data); err != nil {
// 		return
// 	}
// 	respData := &mgmtStatement.AddContractRes{BatchUid: data.Uid}
// 	resp.Data = respData
// 	return
// }