148 lines
4.5 KiB
Go
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
|
|
}
|