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 }