353 lines
11 KiB
Go
353 lines
11 KiB
Go
package dao
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/fonchain/fonchain-artistinfo/cmd/model"
|
|
statement "github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement"
|
|
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
|
|
"github.com/fonchain/fonchain-artistinfo/pkg/m"
|
|
"go.uber.org/zap"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func IsExistArtworkTx(batchTime, artistUid string) (exist bool, artworkTx *model.ArtworkTx, err error) {
|
|
|
|
if err = db.DB.Where("batch_time = ? AND artist_uid = ?", batchTime, artistUid).First(&artworkTx).Error; err != nil {
|
|
if err == gorm.ErrRecordNotFound {
|
|
return true, nil, nil
|
|
} else {
|
|
zap.L().Error("get artworkTx info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func IsExistArtworkCopy(batchTime, artistUid string) (exist bool, artworkCopy *model.ArtworkCopy, err error) {
|
|
|
|
if err = db.DB.Where("batch_time = ? AND artist_uid = ?", batchTime, artistUid).First(&artworkCopy).Error; err != nil {
|
|
if err == gorm.ErrRecordNotFound {
|
|
return true, nil, nil
|
|
} else {
|
|
zap.L().Error("get artworkCopy info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func CreateArtworkTx(tx *gorm.DB, uid, batchTime, artistUid, asrtistName string) (err error) {
|
|
artworkTx := &model.ArtworkTx{
|
|
Uid: uid,
|
|
ArtistUid: artistUid,
|
|
ArtistName: asrtistName,
|
|
BatchTime: batchTime,
|
|
}
|
|
|
|
if err = tx.Create(&artworkTx).Error; err != nil {
|
|
zap.L().Error("create artworkTx err", zap.Error(err))
|
|
err = errors.New(m.CREATE_ERROR)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func CreateArtworkCopy(tx *gorm.DB, uid, batchTime, artistUid, asrtistName string) (err error) {
|
|
artworkCopy := &model.ArtworkCopy{
|
|
Uid: uid,
|
|
ArtistUid: artistUid,
|
|
ArtistName: asrtistName,
|
|
BatchTime: batchTime,
|
|
}
|
|
|
|
if err = tx.Create(&artworkCopy).Error; err != nil {
|
|
zap.L().Error("create artworkCopy err", zap.Error(err))
|
|
err = errors.New(m.CREATE_ERROR)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func CreateArtworkTxDetail(tx *gorm.DB, uid1, uid2 string, excelOneInfo *statement.ExcelOneInfo) (err error) {
|
|
artworkTxDetail := &model.ArtworkTxDetail{
|
|
Uid: uid2,
|
|
BatchUid: uid1,
|
|
TfNum: excelOneInfo.TfNum,
|
|
ArtworkName: excelOneInfo.ArtistName,
|
|
Ruler: excelOneInfo.Ruler,
|
|
MinPrice: excelOneInfo.MinPrice,
|
|
GuaranteePrice: excelOneInfo.GuaranteePrice,
|
|
}
|
|
|
|
if err = tx.Create(&artworkTxDetail).Error; err != nil {
|
|
zap.L().Error("create artworkTxDetail err", zap.Error(err))
|
|
err = errors.New(m.CREATE_ERROR)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func CreateArtworkCopyDetail(tx *gorm.DB, uid1, uid2 string, excelOneInfo *statement.ExcelOneInfo) (err error) {
|
|
artworkCopyDetail := &model.ArtworkCopyDetail{
|
|
Uid: uid2,
|
|
BatchUid: uid1,
|
|
TfNum: excelOneInfo.TfNum,
|
|
ArtworkName: excelOneInfo.ArtistName,
|
|
Ruler: excelOneInfo.Ruler,
|
|
MinPrice: excelOneInfo.MinPrice,
|
|
GuaranteePrice: excelOneInfo.GuaranteePrice,
|
|
}
|
|
|
|
if err = tx.Create(&artworkCopyDetail).Error; err != nil {
|
|
zap.L().Error("create artworkCopyDetail err", zap.Error(err))
|
|
err = errors.New(m.CREATE_ERROR)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func IsExistArtworkTxDetail(uid, tfNum string) (count int64, err error) {
|
|
if err = db.DB.Model(&model.ArtworkTxDetail{}).Where("batch_uid = ? AND tf_num = ?", uid, tfNum).Count(&count).Error; err != nil {
|
|
zap.L().Error("get artworkTxDetail num err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func IsExistArtworkCopyDetail(uid, tfNum string) (count int64, err error) {
|
|
if err = db.DB.Model(&model.ArtworkCopyDetail{}).Where("batch_uid = ? AND tf_num = ?", uid, tfNum).Count(&count).Error; err != nil {
|
|
zap.L().Error("get artworkCopyDetail num err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func IsExistArtworkSoldTxDetail(uid, tfNum string) (count int64, err error) {
|
|
if err = db.DB.Model(&model.ArtworkSoldTxDetail{}).Where("batch_uid = ? AND tf_num = ?", uid, tfNum).Count(&count).Error; err != nil {
|
|
zap.L().Error("get artworkSoldTxDetail num err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func IsExistArtworkSoldCopyDetail(uid, tfNum string) (count int64, err error) {
|
|
if err = db.DB.Model(&model.ArtworkSoldCopyDetail{}).Where("batch_uid = ? AND tf_num = ?", uid, tfNum).Count(&count).Error; err != nil {
|
|
zap.L().Error("get artworkSoldCopyDetail num err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func CreateArtworkSoldTxDetail(tx *gorm.DB, uid1, uid2 string, excelTwoInfo *statement.ExcelTwoInfo) (err error) {
|
|
artworkSoldTxDetail := &model.ArtworkSoldTxDetail{
|
|
Uid: uid2,
|
|
BatchUid: uid1, //批次uid
|
|
TfNum: excelTwoInfo.TfNum,
|
|
ArtworkName: excelTwoInfo.ArtistName,
|
|
Ruler: excelTwoInfo.Ruler,
|
|
SaleNo: excelTwoInfo.SaleNo,
|
|
CompleteDate: excelTwoInfo.CompleteDate,
|
|
SalePrice: excelTwoInfo.SalePrice,
|
|
}
|
|
|
|
if err = tx.Create(&artworkSoldTxDetail).Error; err != nil {
|
|
zap.L().Error("create artworkSoldTxDetail err", zap.Error(err))
|
|
err = errors.New(m.CREATE_ERROR)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func CreateArtworkSoldCopyDetail(tx *gorm.DB, uid1, uid2 string, excelTwoInfo *statement.ExcelTwoInfo) (err error) {
|
|
artworkSoldCopyDetail := &model.ArtworkSoldCopyDetail{
|
|
Uid: uid2,
|
|
BatchUid: uid1, //批次uid
|
|
TfNum: excelTwoInfo.TfNum,
|
|
ArtworkName: excelTwoInfo.ArtistName,
|
|
Ruler: excelTwoInfo.Ruler,
|
|
SaleNo: excelTwoInfo.SaleNo,
|
|
CompleteDate: excelTwoInfo.CompleteDate,
|
|
SalePrice: excelTwoInfo.SalePrice,
|
|
}
|
|
|
|
if err = tx.Create(&artworkSoldCopyDetail).Error; err != nil {
|
|
zap.L().Error("create artworkSoldCopyDetail err", zap.Error(err))
|
|
err = errors.New(m.CREATE_ERROR)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetAllBatchTimeTx() (batchTime []string, err error) {
|
|
if err = db.DB.Where("DISTINCT batch_time").Find(&model.ArtworkTx{}).Pluck("batch_time", &batchTime).Error; err != nil {
|
|
zap.L().Error("get artworkTxList info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func GetAllBatchTimeCopy() (batchTime []string, err error) {
|
|
if err = db.DB.Where("DISTINCT batch_time").Find(&model.ArtworkCopy{}).Pluck("batch_time", &batchTime).Error; err != nil {
|
|
zap.L().Error("get artworkTxList info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func GetArtworkTxList(query *gorm.DB, num, offset int32) (artworkTxList []model.ArtworkTx, err error) {
|
|
if err = query.Model(&artworkTxList).Order("ID asc").Limit(int(num)).Offset(int(offset)).Error; err != nil {
|
|
zap.L().Error("get artworkTxList info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func GetArtworkCopyList(query *gorm.DB, num, offset int32) (artworkCopyList []model.ArtworkCopy, err error) {
|
|
if err = query.Model(&artworkCopyList).Order("ID asc").Limit(int(num)).Offset(int(offset)).Error; err != nil {
|
|
zap.L().Error("get artworkCopyList info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func GetArtworkSoldTxDetailList(batchUid string) (artworkSoldTxDetail []model.ArtworkSoldTxDetail, err error) {
|
|
if err = db.DB.Where("batch_uid = ?", batchUid).Find(&artworkSoldTxDetail).Error; err != nil {
|
|
zap.L().Error("get artworkSoldTxDetail info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func UpdateArtworkTxStatus(tx *gorm.DB, batchUid string, state int32) (err error) {
|
|
if err = tx.Model(&model.ArtworkTx{}).Where("uid = ?", batchUid).Update("state", 2).Error; err != nil {
|
|
zap.L().Error("update artworkTx info err", zap.Error(err))
|
|
err = errors.New(m.UPDATE_FAILED)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func UpdateArtworkCopyStatus(tx *gorm.DB, batchUid string, state int32) (err error) {
|
|
if err = tx.Model(&model.ArtworkCopy{}).Where("uid = ?", batchUid).Update("state", 2).Error; err != nil {
|
|
zap.L().Error("update artworkCopy info err", zap.Error(err))
|
|
err = errors.New(m.UPDATE_FAILED)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func StatementList(artistUid string, state int32) (contractData []*statement.Contracts, err error) {
|
|
|
|
var contracts []model.Contract
|
|
if err = db.DB.Where("artist_uid = ? AND state = ? AND (type == 4 OR type == 7)", artistUid, state).Find(&contracts).Error; err != nil {
|
|
zap.L().Error("get contracts info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
|
|
for _, v := range contracts {
|
|
Contract := &statement.Contracts{
|
|
ContractUid: v.Uid,
|
|
ArtistUid: v.ArtistUid,
|
|
ArtworkUid: v.ArtworkUid,
|
|
ContractId: v.ContractId,
|
|
TransactionId: v.TransactionId,
|
|
Type: v.Type,
|
|
ViewUrl: v.ViewUrl,
|
|
DownloadUrl: v.DownloadUrl,
|
|
State: v.State,
|
|
Status: int32(v.Status),
|
|
LockTime: v.LockTime,
|
|
SignTime: v.SignTime,
|
|
BatchTime: v.BatchTime,
|
|
BatchUid: v.BatchUid,
|
|
}
|
|
|
|
contractData = append(contractData, Contract)
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetTxArtistNameByBatchUid(batchUid string) (artworkTx model.ArtworkTx, err error) {
|
|
if err = db.DB.Where("uid = ?", batchUid).Find(&artworkTx).Error; err != nil {
|
|
zap.L().Error("get artworkTx info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetArtworkTxDetailByBatchUid(batchUid string) (artworkTxDetail []model.ArtworkTxDetail, err error) {
|
|
if err = db.DB.Where("batch_uid = ?", batchUid).Find(&artworkTxDetail).Error; err != nil {
|
|
zap.L().Error("get artworkTxDetail infos err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetArtworkSoldTxDetailByBatchUid(batchUid string) (artworkSoldTxDetail []model.ArtworkSoldTxDetail, err error) {
|
|
if err = db.DB.Where("batch_uid = ?", batchUid).Find(&artworkSoldTxDetail).Error; err != nil {
|
|
zap.L().Error("get artworkSoldTxDetail infos err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetCopyArtistNameByBatchUid(batchUid string) (artworkCopy model.ArtworkCopy, err error) {
|
|
if err = db.DB.Where("uid = ?", batchUid).Find(&artworkCopy).Error; err != nil {
|
|
zap.L().Error("get artworkCopy info err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetArtworkCopyDetailByBatchUid(batchUid string) (artworkCopyDetail []model.ArtworkCopyDetail, err error) {
|
|
if err = db.DB.Where("batch_uid = ?", batchUid).Find(&artworkCopyDetail).Error; err != nil {
|
|
zap.L().Error("get artworkCopyDetail infos err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetArtworkSoldCopyDetailByBatchUid(batchUid string) (artworkSoldCopyDetail []model.ArtworkSoldCopyDetail, err error) {
|
|
if err = db.DB.Where("batch_uid = ?", batchUid).Find(&artworkSoldCopyDetail).Error; err != nil {
|
|
zap.L().Error("get artworkSoldCopyDetail infos err", zap.Error(err))
|
|
err = errors.New(m.ERROR_SELECT)
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|