package dao import ( "errors" "github.com/fonchain/fonchain-artistinfo/cmd/model" db "github.com/fonchain/fonchain-artistinfo/pkg/db" "github.com/fonchain/fonchain-artistinfo/pkg/m" uuid "github.com/satori/go.uuid" "go.uber.org/zap" "gorm.io/gorm" ) func GetMgmtContractByArtistUid(artistUid string, contractType int32) (err error) { var contract model.Contract if err = db.DB.Where("artist_uid = ? AND type = ?", artistUid, contractType).First(&contract).Error; err != nil && err != gorm.ErrRecordNotFound { zap.L().Error("get contract info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) return } return } func CreateArtistContract(tx *gorm.DB, contract *model.Contract) (err error) { if err = tx.Create(contract).Error; err != nil { zap.L().Error("create contract err", zap.Error(err)) err = errors.New(m.CREATE_ERROR) return } return } func GetMgmtContractByArtworkUid(artworkUid string, artworkType int32) (err error) { //画作有合同类型是2,6的都是 点击过"著作权代理转让服务合同"的 var contract model.Contract if err = db.DB.Where("artwork_uid = ? AND type = ?", artworkUid, 2).First(&contract).Error; err != nil && err != gorm.ErrRecordNotFound { zap.L().Error("get contract info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) return } return } func CreateArtworkContract(tx *gorm.DB, artworkUid string, artistUid string, contractType int32) (err error) { var uid uuid.UUID if uid, err = uuid.NewV4(); err != nil { err = errors.New(m.ERROR_UID) return } contract := &model.Contract{ Uid: uid.String(), ArtistUid: artistUid, ArtworkUid: artworkUid, Type: contractType, State: 1, } if err = tx.Create(contract).Error; err != nil { zap.L().Error("create contract err", zap.Error(err)) err = errors.New(m.CREATE_ERROR) return } return } // func FinishContract(tx *gorm.DB, id string) (contract model.Contract, err error) { // if err = tx.Where("transaction_id = ?", id).First(&contract).Error; err != nil { // zap.L().Error("get contract info err", zap.Error(err)) // err = errors.New(m.ERROR_SELECT) // return // } // if err = db.DB.Model(&contract).Update("state", 3).Error; err != nil { // zap.L().Error("user contract failed", zap.Error(err)) // err = errors.New(m.UPDATE_FAILED) // return // } // return // } // func UpdateArtworkState(tx *gorm.DB, id int32) (err error) { //无用 // var artworkState model.ArtworkState // if err = tx.Where("artwork_id = ? and state = ? ", id, 7).First(&artworkState).Error; err != nil { // if err == gorm.ErrRecordNotFound { // artworkState.ArtworkId = id // artworkState.State = 7 // if err = tx.Create(&artworkState).Error; err != nil { // zap.L().Error("create artworkState err", zap.Error(err)) // err = errors.New(m.CREATE_ERROR) // return // } // } else { // zap.L().Error("find artworkState info err", zap.Error(err)) // err = errors.New(m.ERROR_DATA_NOT_EXISTS) // return // } // } // if err = tx.Model(&model.Artwork{}).Where("id = ? ", id).Update("flow_state", 7).Error; err != nil { // zap.L().Error("Artwork Update Err", zap.Error(err)) // err = errors.New(m.ERROR_DATA_NOT_EXISTS) // return // } // return // } // func ContractList(req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) { // rep = &contract.ContractListRespond{} // var Data []*contract.ContractData // var user model.User // if err = db.DB.Where("id = ? ", req.ID).First(&user).Error; err != nil { // zap.L().Error("get user info err", zap.Error(err)) // err = errors.New(m.ERROR_SELECT) // return // } // var realName model.RealName // if err = db.DB.Where("id = ? ", user.RealNameId).First(&realName).Error; err != nil { // zap.L().Error("get realName info err", zap.Error(err)) // err = errors.New(m.ERROR_SELECT) // return // } // var args []interface{} // var sqlWhere = "user_id = ? and type !=4 " // args = append(args, req.ID) // if req.State != 0 { // sqlWhere += " and state = ? " // if req.State == 2 { // req.State = 3 // } // args = append(args, req.State) // } // var contractModel []model.Contract // if err = db.DB.Where(sqlWhere, args...).Find(&contractModel).Error; err != nil { // zap.L().Error("get contractModels info err", zap.Error(err)) // err = errors.New(m.ERROR_SELECT) // return // } // for _, v := range contractModel { // contract := &contract.ContractData{} // contract.ID = uint64(v.ID) // contract.ContractId = v.ContractId // contract.DownloadUrl = v.DownloadUrl // contract.MgmtUserId = v.MgmtUserId // contract.State = int64(v.State) // contract.TransactionId = v.TransactionId // contract.Type = int64(v.Type) // contract.UserId = int64(v.UserId) // contract.ViewUrl = v.ViewUrl // contract.ExpirationTime = v.CreatedAt.Add(86400 * time.Second).Format("2006-01-02 15:04:05") // contract.SignTime = v.UpdatedAt.Format("2006-01-02") // Data = append(Data, contract) // } // rep.Data = Data // return // } // func ContractTxList(req *contract.ContractTxListRequest) (rep *contract.ContractTxListRespond, err error) { // rep = &contract.ContractTxListRespond{} // var Data []*contract.ContractData // var user model.User // if err = db.DB.Where("id = ? ", int32(req.ID)).First(&user).Error; err != nil { // zap.L().Error("get user info err", zap.Error(err)) // err = errors.New(m.ERROR_SELECT) // return // } // // todo // //var realName model.RealName // //if err = db.DB.Where("id = ? ", user.RealNameID).First(&realName).Error; err != nil { // // zap.L().Error("get realName info err", zap.Error(err)) // // err = errors.New(m.ERROR_SELECT) // // return // //} // // // //var args []interface{} // //var sqlWhere = " card_id = ? and (type = 4 or type = 7) " // //args = append(args, realName.IDNum) // //if req.State != 0 { // // sqlWhere += " and state = ? " // // args = append(args, req.State) // //} // // // //var contractModel []model.Contract // //if err = db.DB.Where(sqlWhere, args...).Find(&contractModel).Error; err != nil { // // zap.L().Error("get contractModels info err", zap.Error(err)) // // err = errors.New(m.ERROR_SELECT) // // return // //} // // // //for _, v := range contractModel { // // contractTmp := &contract.ContractData{} // // contractTmp.ID = uint64(v.ID) // // contractTmp.ContractId = v.ContractId // // contractTmp.DownloadUrl = v.DownloadUrl // // contractTmp.MgmtUserId = v.MgmtUserId // // contractTmp.State = int64(v.State) // // contractTmp.TransactionId = v.TransactionId // // contractTmp.Type = int64(v.Type) // // var b string // // if v.Type == 4 { // // b = "物权" // // } // // if v.Type == 7 { // // b = "版权" // // } // // contractTmp.BatchName = b + v.BatchName[0:4] + "年" + v.BatchName[4:6] + "月" + v.BatchName[6:11] + "年" + v.BatchName[11:13] + "月" // // contractTmp.UserId = int64(v.UserId) // // contractTmp.ViewUrl = v.ViewUrl // // contractTmp.ExpirationTime = v.CreatedAt.Add(86400 * time.Second).Format("2006-01-02 15:04:05") // // contractTmp.SignTime = v.UpdatedAt.Format("2006-01-02") // // Data = append(Data, contractTmp) // //} // rep.Data = Data // return // } // func GetContract(id int32) (rep *contract.ContractData, err error) { // var con model.Contract // if err = db.DB.Where("id = ? ", id).First(&con).Error; err != nil { // zap.L().Error("get contract info err", zap.Error(err)) // err = errors.New(m.ERROR_SELECT) // return // } // rep.ID = uint64(con.ID) // rep.UserId = int64(con.UserId) // rep.CardId = con.CardId // rep.MgmtUserId = con.MgmtUserId // rep.ArtworkId = con.ArtworkId // rep.ContractId = con.ContractId // rep.TransactionId = con.TransactionId // rep.Type = int64(con.Type) // rep.BatchName = con.BatchName // rep.ViewUrl = con.ViewUrl // rep.DownloadUrl = con.DownloadUrl // rep.State = int64(con.State) // return // } // // 更新交易id // func UpdateContract(req *contract.UpdateContractRequest) error { // //数据库操作异常 // var con model.Contract // if err := db.DB.Model(&con).Updates(&model.Contract{ContractId: req.ContractId, ViewUrl: req.ViewUrl, DownloadUrl: req.DownloadUrl}).Error; err != nil { // //在线和下载的链接 // return err // } // return nil // } // // 更新交易id // func UpdateContractTx(txId string, contractId int32) (err error) { // var con model.Contract // con.ID = contractId // if err = db.DB.Model(&con).Update("transaction_id", txId).Error; err != nil { //改变交易id // return // } // if err = db.DB.Model(&con).Update("state", 1).Error; err != nil { //更新合约状态 // 1:待生成 2 待签署 3 签署完成 // return // } // return // }