修改查询条件

This commit is contained in:
徐俊杰 2023-02-25 12:02:07 +08:00
parent 1fd2f10336
commit 1534356077

View File

@ -8,12 +8,12 @@ package dao
import (
"errors"
"fmt"
"github.com/fonchain/fonchain-artistinfo/cmd/model"
"github.com/fonchain/fonchain-artistinfo/pb/artistInfoArtwork"
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"github.com/fonchain/fonchain-artistinfo/pkg/util/stime"
"gorm.io/gorm"
"time"
)
func CreateArtworkLockRecord(in *model.ArtworkLockRecord) error {
@ -56,28 +56,37 @@ func DeletedArtworkLockRecord(artworkUid ...string) error {
func BatchLockArtworks(artistUid string) error {
var artworkUids []string
db.DB.Model(model.ArtworkLockRecord{}).
Where("is_lock = false AND lock_time=''").Where(" artist_uid = ?", artistUid).
Where("status = 1 AND lock_time=''").Where(" artist_uid = ?", artistUid).
Pluck("artwork_uid", &artworkUids)
if artworkUids == nil {
return nil
}
var updateMap = map[string]any{
"is_lock": true,
"lock_time": stime.StrNowDate(),
"status": 2,
"lock_time": stime.TimeToString(time.Now(), stime.Format_Normal_YMDhms),
}
return db.DB.Model(model.ArtworkLockRecord{}).Where("artwork_uid in ?", artworkUids).Updates(&updateMap).Error
}
func BatchUnlockArtworks(artistUid string) error {
var artworkUids []string
db.DB.Model(model.ArtworkLockRecord{}).
Where(fmt.Sprintf("lock_time = (select max(lock_time) form artwork_lock_record WHERE artist_uid = %s)", artistUid)).
Where("is_lock = true").
Pluck("artwork_uid", &artworkUids)
if artworkUids == nil {
return nil
}
return db.DB.Model(model.ArtworkLockRecord{}).Where("artwork_uid in ?", artworkUids).Update("is_lock", false).Error
//var artworkUids []string
// 查询用户当前锁定的时间点
//var nowLockTime string
//err := db.DB.Model(model.ArtworkLockRecord{}).Select("MAX(lock_time)").Where("artist_uid = %s AND lock_time !='' AND STATUS =2", artistUid).Scan(&nowLockTime).Error
//if err != nil {
// return err
//}
////查询此时间节点内的所有画作
//db.DB.Model(model.ArtworkLockRecord{}).
// //Where("lock_time = (SELECT MAX(lock_time) FROM artwork_lock_record where artist_uid = %s AND lock_time !='' AND STATUS =2)", artistUid).
// //Joins("LEFT JOIN (lock_time = (select max(lock_time) form artwork_lock_record WHERE artist_uid = ?) lt", artistUid).
// //Where(fmt.Sprintf("lock_time = (select max(lock_time) form artwork_lock_record WHERE artist_uid = %s)", artistUid)).
// Where("status = 2").
// Pluck("artwork_uid", &artworkUids)
//if artworkUids == nil {
// return nil
//}
return db.DB.Model(model.ArtworkLockRecord{}).Where("artist_uid = ? AND status =2 AND lock_time !=''", artistUid).Update("status", 3).Error
}
func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) (resp *artistInfoArtwork.ArtworkLockList, err error) {
@ -93,10 +102,10 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest)
tx = tx.Where("status = 1")
case artistInfoArtwork.ArtworkQueryMode_NowLockedArtwork: //当前已锁定的画作
tx = tx.Where("status = 2", req.ArtistUid)
case artistInfoArtwork.ArtworkQueryMode_ArtistCanSee: //画家能看到的画作(暂存和锁定)
case artistInfoArtwork.ArtworkQueryMode_ArtistCanSee: //画家能看到的画作(暂存和锁定) //弃用,画家看到的是暂存的画作
tx = tx.Where("status < 3")
case artistInfoArtwork.ArtworkQueryMode_AllUnlockArtwork: //所有已解锁的画作(历史画作)
tx = tx.Where("status = 3")
tx = tx.Where("status = 3 OR status = 2")
//case artistInfoArtwork.ArtworkQueryMode_AllHistoryArtwork: //所有历史画作
// tx = tx.Where("status > 1")
}