修改查询条件

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