fonchain-artistinfo/cmd/internal/dao/mgmt_statement.go
2023-04-04 09:37:00 +08:00

148 lines
4.5 KiB
Go

package dao
import (
"errors"
"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"
"go.uber.org/zap"
)
//通过excel获得批次数据到数据库
func AddBatchDetail(batch *model.ArtworkTx) (err error) {
tx := db.DB.Begin()
if tx.Error != nil {
zap.L().Error("CreateBatch Begin err", zap.Error(tx.Error))
return errors.New(m.ERROR_SELECT)
}
defer tx.Rollback()
result := tx.Create(&batch)
if result.Error != nil || result.RowsAffected != 1 {
zap.L().Error("dao CreateBatch err", zap.Error(result.Error))
return errors.New(m.ERROR_CRE_ART)
}
tx.Commit()
return
}
//通过excel获得数据创建数据到数据库(附件一)
func UploadExcelOne(statement *model.ArtworkSoldTxDetail) (err error) {
tx := db.DB.Begin()
if tx.Error != nil {
zap.L().Error("CreateStatement Begin err", zap.Error(tx.Error))
return errors.New(m.ERROR_SELECT)
}
defer tx.Rollback()
result := tx.Create(&statement)
if result.Error != nil || result.RowsAffected != 1 {
zap.L().Error("dao CreateStatement err", zap.Error(result.Error))
return errors.New(m.ERROR_CRE_ART)
}
tx.Commit()
return
}
//通过excel获得数据创建数据到数据库(附件二)
func UploadExcelTwo(statement *model.ArtworkSoldTxDetail) (err error) {
tx := db.DB.Begin()
if tx.Error != nil {
zap.L().Error("CreateStatement Begin err", zap.Error(tx.Error))
return errors.New(m.ERROR_SELECT)
}
defer tx.Rollback()
result := tx.Create(&statement)
if result.Error != nil || result.RowsAffected != 1 {
zap.L().Error("dao CreateStatement err", zap.Error(result.Error))
return errors.New(m.ERROR_CRE_ART)
}
tx.Commit()
return
}
//画家对账单列表
func ArtistStatementList(in *mgmtStatement.ArtistStatementListreq) (statement []*model.ArtworkSoldTxDetail, count int64, err error) {
offset := (in.Page - 1) * in.PageSize
db := db.DB.Model(&statement).Select("artist_uid, artist_name, batch_time, view_url, download_url").Where("st_type = ?", in.StType)
if err = db.Count(&count).Error; err != nil {
zap.L().Error("ArtistList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
if count == 0 {
return
}
if err = db.Order("").Limit(int(in.PageSize)).Offset(int(offset)).Find(&statement).Error; err != nil {
zap.L().Error("ArtistList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
//画作基于批次和画家的对账单列表
func ArtStatementList(in *mgmtStatement.ArtStatementListreq) (statement []*model.ArtworkSoldTxDetail, count int64, err error) {
offset := (in.Page - 1) * in.PageSize
db := db.DB.Model(&statement).Table("").Select("artwork_name, tf_num, ruler, sale_no, min_price").Where("st_type = ?", in.StType)
if err = db.Count(&count).Error; err != nil {
zap.L().Error("ArtList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
if count == 0 {
return
}
if err = db.Order("").Limit(int(in.PageSize)).Offset(int(offset)).Find(&statement).Error; err != nil {
zap.L().Error("ArtList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
//更新对账单状态
func UpdateState(StatementUid string, columns map[string]interface{}) (err error) {
if err = db.DB.Model(&model.ArtworkSoldTxDetail{}).Where("StatementUid = ? ", StatementUid).Updates(columns).Error; err != nil {
err = errors.New(m.ERROR_UPDATE_STATEMENT)
}
return
}
//导出合同
func ExportContract(in *mgmtStatement.ExportContractreq) (data []*model.Contract, count int64, err error) {
offset := (in.Page - 1) * in.PageSize
db := db.DB.Model(&data).Select("artist_uid, view_url, download_url, batch_time").Where("st_type = ?", in.StType)
if err = db.Count(&count).Error; err != nil {
zap.L().Error("ArtList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
if count == 0 {
return
}
if err = db.Order("").Limit(int(in.PageSize)).Offset(int(offset)).Find(&data).Error; err != nil {
zap.L().Error("ArtList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
//生成合同
func CreateTxContract(contract *model.Contract) (err error) {
tx := db.DB.Begin()
if tx.Error != nil {
zap.L().Error("CreateContract Begin err", zap.Error(tx.Error))
return errors.New(m.ERROR_SELECT)
}
defer tx.Rollback()
result := tx.Create(&contract)
if result.Error != nil || result.RowsAffected != 1 {
zap.L().Error("dao CreateContract err", zap.Error(result.Error))
return errors.New(m.ERROR_CRE_ART)
}
tx.Commit()
return
}