fonchain-artistinfo/cmd/internal/dao/artistInfo.go
2023-02-06 09:33:09 +08:00

500 lines
16 KiB
Go

package dao
import (
"errors"
"github.com/fonchain/fonchain-artistinfo/cmd/model"
"github.com/fonchain/fonchain-artistinfo/pb/artistinfo"
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"github.com/fonchain/fonchain-artistinfo/pkg/m"
"go.uber.org/zap"
)
func RegisterUser(req *artistinfo.RegisterUserRequest) (rep *artistinfo.RegisterUserRespond, err error) {
var user model.User
user.TelNum = req.TelNum
user.MgmtArtistId = req.MgmtArtistId
if err := db.DB.Create(&user).Error; err != nil {
zap.L().Error("register user err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
return
}
func GetUser(req *artistinfo.GetUserRequest) (rep *artistinfo.GetUserRespond, err error) {
rep = &artistinfo.GetUserRespond{}
// service := &artist.UserUpdateInfoService{}
var user model.User
if err = db.DB.First(&user, "telnum = ?", req.TelNum).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
// rep.
rep.Id = user.ID
rep.MgmtUserId = user.MgmtUserId
rep.MgmtArtistId = user.MgmtArtistId
rep.TelNum = user.TelNum
rep.IsFdd = user.IsFdd
rep.IsRealName = user.IsRealName
rep.Ruler = user.Ruler
// service.QrCodeImg = fmt.Sprintf("https://cdn.fontree.cn/artistmgmt/static/qrcode/%v.png", user.InvitedCode)
// service.QrCodeImgDownload = fmt.Sprintf("https://cdn.fontree.cn/artistmgmt/static/qrcode/%v-2.png", user.InvitedCode)
// rep.Data = service
return rep, nil
}
func GetUserById(req *artistinfo.GetUserByIdRequest) (rep *artistinfo.GetUserByIdRespond, err error) {
rep = &artistinfo.GetUserByIdRespond{}
// service := &artist.UserUpdateInfoService{}
var user model.User
if err = db.DB.First(&user, "id = ?", req.Id).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
// rep.
rep.Id = user.ID
rep.MgmtUserId = user.MgmtUserId
rep.MgmtArtistId = user.MgmtArtistId
rep.TelNum = user.TelNum
rep.IsFdd = user.IsFdd
rep.IsRealName = user.IsRealName
rep.Ruler = user.Ruler
return rep, nil
}
func UpdateRealName(req *artistinfo.UpdateRealNameRequest) (rep *artistinfo.UpdateRealNameRespond, err error) {
var user model.User
user.ID = req.Id
if err = db.DB.Model(&user).Update("isrealname", 1).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
return rep, nil
}
func FinishVerify(req *artistinfo.FinishVerifyRequest) (rep *artistinfo.FinishVerifyRespond, err error) {
var user model.User
user.ID = req.Id
if err = db.DB.Model(&user).Update("isfdd", 2).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
return rep, nil
}
func ArtistSupplyList(req *artistinfo.ArtistSupplyListRequest) (rep *artistinfo.ArtistSupplyListRespond, err error) {
var artistList = make([]artistinfo.ArtistArtworkSupplyListResponseData, 0)
var args []interface{}
sql := `select cc.* from (SELECT a.id,a.name,a.pen_name,a.is_import,a.tel_num,a.sex,a.age,b.id_num,a.invited_code,a.certificate_num,a.con_address,b.idcard_front,b.idcard_back,a.photo,a.video,a.created_at,a.updated_at,a.is_lock,a.certificate_img,min(d.created_at) as dd from user a inner join real_name b on a.real_name_id = b.id left join bank c on a.id = c.user_id left join supply_info d on a.id = d.user_id where (d.types = 1 or d.types = 4 or d.types = 2 or d.types = 3 or d.types =6) and a.is_real_name = true `
sqlWhere := ` `
sqlGroup := ` group by a.id order by min(d.created_at) desc ) cc inner join supply_info f where dd >0 and dd = f.created_at and cc.id = f.user_id group by cc.id,dd `
var count uint64
tx := db.DB.Raw("select count(*) from (" + sql + sqlWhere + sqlGroup + ") cc").Scan(&count)
if tx.Error != nil {
zap.L().Error("get user info err", zap.Error(tx.Error))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
rep.Count = count
var sqlLimit = " limit ?,? "
args = append(args, (req.Page-1)*req.PageSize)
args = append(args, req.PageSize)
err = db.DB.Raw(sql + sqlWhere + sqlGroup + sqlLimit).Scan(&artistList).Error
if err != nil {
zap.L().Error("get user info err", zap.Error(tx.Error))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
for _, v := range artistList {
rep.Data = append(rep.Data, &v)
}
return rep, nil
}
func UserLock(req *artistinfo.UserLockRequest) (rep *artistinfo.UserLockRespond, err error) {
var user model.User
user.ID = uint64(req.Id)
if err = db.DB.Model(&user).Update("is_lock", req.IsLock).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
if !req.IsLock {
var vas model.ExhVideo
vas.UserId = uint(req.Id)
if err = db.DB.Model(&vas).Update("state", 5).Where("state = 1 or state = 2 or state = 3").Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
var ee model.ExhExam
ee.UserId = uint(req.Id)
if err = db.DB.Model(&ee).Update("state", 5).Where("state = 1 or state = 2 or state = 3 or state = 4").Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
var si model.SupplyInfo
si.UserId = uint(req.Id)
if err = db.DB.Model(&si).Update("state", 5).Where("state = 1 or state = 2 or state = 3 or state = 4").Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
var ai model.ArtistInfo
ai.UserId = uint(req.Id)
if err = db.DB.Model(&ai).Update("state", 5).Where("state = 1 or state = 2 or state = 3 or state = 4").Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
}
return rep, nil
}
// // Update 用户修改信息
// func Create(reqs *artist.CreateUserInfoRequest) (rep *artist.CreateUserInfoRespond, err error) {
// req := reqs.Data
// rep = &artist.CreateUserInfoRespond{}
// data := &artist.User{}
// // user := rep.User
// var user model.User
// // user := rep.User
// if err = db.DB.First(&user, "id = ?", int32(reqs.Id)).Error; err != nil {
// //数据库操作异常
// zap.L().Error("get user info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return nil, err
// }
// var realNameFind model.RealName
// if err = db.DB.First(&realNameFind, "id_num = ?", req.IdCard).Error; err != nil {
// zap.L().Error("get realName info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return nil, err
// } else {
// if realNameFind.ID != 0 {
// return nil, errors.New(m.ERROR_ALREADY_AUTH)
// }
// }
// var realname = model.RealName{
// Name: req.RealName,
// IDNum: req.IdCard,
// TelNum: req.TelNum,
// IdcardFront: req.IdCardFront,
// IdcardBack: req.IdCardBack,
// }
// if err = db.DB.Save(&realname).Error; err != nil {
// zap.L().Error("save realName info err", zap.Error(err))
// err = errors.New(m.SAVE_ERROR)
// return nil, err
// }
// if err = db.DB.First(&realname, "id_num=?", realname.IDNum).Error; err != nil {
// zap.L().Error("get realName info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return nil, err
// }
// // user.ID = int32(reqs.Id)
// user.Name = req.RealName
// user.PenName = req.PenName
// user.RealNameID = int32(realname.ID)
// user.StageName = req.StageName
// user.Age = int32(util.IdCardTurnAge(realname.IDNum))
// user.Sex = int32(req.Sex)
// user.JoinAssoTime = req.JoinAssoTime
// user.CertificateNum = req.CertificateNum
// conAddessByte, err := json.Marshal(req.ConAddress)
// if err != nil {
// zap.L().Error("conAddress marshal err", zap.Error(err))
// err = errors.New(m.ERROR_MARSHAL)
// return nil, err
// }
// user.ConAddress = string(conAddessByte)
// user.CreateAt = time.Now().Unix()
// user.Photo = req.Photo
// user.WxAccount = req.WxAccount
// user.CertificateImg = req.CertificateImg
// user.Video = req.Video
// // user.IsRealName = true
// var invite model.Invite
// if err = db.DB.Where("user_id = ?", user.ID).First(&invite).Error; err != nil {
// zap.L().Error("get invite info err", zap.Error(err))
// if err.Error() == "record not found" {
// } else {
// err = errors.New(m.SAVE_ERROR)
// return nil, err
// }
// }
// if invite.ID == 0 {
// res, err := CheckInvitedCode(req.InvitedCode)
// if err != nil {
// Createinvite(user.ID, res.ID)
// }
// }
// user.ID = int32(reqs.Id)
// if err = db.DB.Save(user).Error; err != nil {
// zap.L().Error("save user info err", zap.Error(err))
// err = errors.New(m.SAVE_ERROR)
// return nil, err
// }
// copyOpt := util.CopyOption{
// Src: &user,
// Dst: data,
// }
// util.CopyStructSuper(copyOpt)
// rep.User = data
// return rep, nil
// }
// // Get 用户修改信息
// func GetUserInfoSelf(id int64) (rep *model.UserUpdateInfoService, err error) {
// rep = &model.UserUpdateInfoService{}
// var user model.User
// if err = db.DB.First(&user, "id = ?", int32(id)).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.First(&realName, "id = ?", user.RealNameID).Error; err != nil {
// zap.L().Error("get realName info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
// }
// var artworkList []model.Artwork
// if err = db.DB.Where("artist_id = ? ", uint(id)).Find(&artworkList).Error; err != nil {
// zap.L().Error("get artworkList info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
// }
// for _, v := range artworkList {
// if v.State == 3 {
// rep.Ruler = rep.Ruler + int32(v.Ruler)
// }
// }
// rep.TelNum = user.TelNum
// rep.CertificateNum = user.CertificateNum
// if user.CertificateImg != "" {
// rep.CertificateImg = fmt.Sprintf("%v?v=%d", user.CertificateImg, user.UpdatedAt.Unix())
// }
// rep.RealName = realName.Name
// rep.PenName = user.PenName
// rep.Age = int32(util.IdCardTurnAge(realName.IDNum))
// rep.IdCard = realName.IDNum
// rep.StageName = user.StageName
// rep.WxAccount = user.WxAccount
// rep.JoinAssoTime = user.JoinAssoTime
// rep.IdCardFront = fmt.Sprintf("%v?v=%d", realName.IdcardFront, realName.UpdatedAt.Unix())
// rep.IdCardBack = fmt.Sprintf("%v?v=%d", realName.IdcardBack, realName.UpdatedAt.Unix())
// var conAddressArr []string
// err = json.Unmarshal([]byte(user.ConAddress), &conAddressArr)
// if err != nil {
// zap.L().Error("conAddressArr unmarshal err", zap.Error(err))
// err = errors.New(m.ERROR_UNMARSHAL)
// return nil, err
// }
// rep.ConAddress = conAddressArr
// rep.InvitedCode = user.InvitedCode
// var invited model.Invite
// if err = db.DB.Where("user_id=?", user.ID).First(&invited).Error; err != nil {
// zap.L().Error("get invited info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
// }
// var invitedUser model.User
// if err = db.DB.Where("id=?", invited.InvitedId).First(&invitedUser).Error; err != nil {
// zap.L().Error("get invitedUser info err", zap.Error(err))
// err = errors.New(m.ERROR_UNMARSHAL)
// return
// }
// rep.InvitedName = invitedUser.Name
// rep.Sex = user.Sex
// rep.FddState = user.FddState
// rep.CustomerId = user.CustomerId
// rep.Photo = fmt.Sprintf("%v?v=%d", user.Photo, user.UpdatedAt.Unix())
// if user.Video != "" {
// rep.Video = fmt.Sprintf("%v?v=%d", user.Video, user.UpdatedAt.Unix())
// }
// rep.QrCodeImg = fmt.Sprintf("https://cdn.fontree.cn/artistmgmt/static/qrcode/%v.png", user.InvitedCode)
// rep.QrCodeImgDownload = fmt.Sprintf("https://cdn.fontree.cn/artistmgmt/static/qrcode/%v-2.png", user.InvitedCode)
// return rep, nil
// }
// func Update(req *artist.UpdateUserInfoRequest) (rep *artist.UpdateUserInfoRespond, err error) {
// rep = &artist.UpdateUserInfoRespond{}
// data := &artist.User{}
// var user model.User
// if err = db.DB.First(&user, "id = ?", int32(req.Id)).Error; err != nil {
// zap.L().Error("get user info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
// }
// user.PenName = req.Data.PenName
// user.Photo = req.Data.Photo
// user.Video = req.Data.Video
// user.CertificateImg = req.Data.CertificateImg
// conAddessByte, err := json.Marshal(req.Data.ConAddress)
// if err != nil {
// zap.L().Error("conAddress marshal err", zap.Error(err))
// err = errors.New(m.ERROR_MARSHAL)
// return nil, err
// }
// user.ConAddress = string(conAddessByte)
// user.WxAccount = req.Data.WxAccount
// user.CertificateNum = req.Data.CertificateNum
// if err = db.DB.Save(&user).Error; err != nil {
// zap.L().Error("save user info err", zap.Error(err))
// err = errors.New(m.SAVE_ERROR)
// return
// }
// var realName model.RealName
// if err = db.DB.First(&realName, "id = ?", user.RealNameID).Error; err != nil {
// zap.L().Error("get RealName info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
// }
// realName.IdcardBack = req.Data.IdCardBack
// realName.IdcardFront = req.Data.IdCardFront
// if err = db.DB.Save(&realName).Error; err != nil {
// zap.L().Error("save realName info err", zap.Error(err))
// err = errors.New(m.SAVE_ERROR)
// return
// }
// copyOpt := util.CopyOption{
// Src: &user,
// Dst: data,
// }
// util.CopyStructSuper(copyOpt)
// rep.User = data
// return
// }
// func UpdateTel(req *artist.UserUpdateTelRequest) (rep *artist.UserUpdateTelRespond, err error) {
// rep = &artist.UserUpdateTelRespond{}
// var user model.User
// if err = db.DB.First(&user, int32(req.Id)).Error; err != nil {
// zap.L().Error("get user info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
// }
// str := cache.RedisClient.Get(req.TelNum)
// verCode := str.Val()
// if verCode != req.VerCode {
// zap.L().Error("verCode err", zap.Error(err))
// err = errors.New(m.ERRORCODE)
// return
// }
// if user.TelNum == req.TelNum {
// zap.L().Error("TelNum err", zap.Error(err))
// err = errors.New(m.ERROT_SAME_TEL)
// return
// }
// user.TelNum = req.TelNum
// if err = db.DB.Save(&user).Error; err != nil {
// zap.L().Error("save user info err", zap.Error(err))
// err = errors.New(m.SAVE_ERROR)
// return
// }
// rep.TelNum = user.TelNum
// return
// }
// func UpdateMsg(req *artist.UserUpdateMsgRequest) (rep *artist.UserUpdateMsgRespond, err error) {
// var user model.User
// user.IsRealName = true
// user.ID = int32(req.Id)
// if err = db.DB.Model(&user).Update("is_read", 1).Error; err != nil {
// zap.L().Error("user update failed", zap.Error(err))
// err = errors.New(m.UPDATE_FAILED)
// return
// }
// return
// }
// func VerifyFdd(req *artist.VerifyfddRequest) (rep *artist.VerifyfddRespond, err error) {
// rep = &artist.VerifyfddRespond{}
// 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
// }
// if user.FddState != 2 {
// return
// }
// rep.Ready = true
// return
// }
// func FinishVerify(req *artist.FinishVerifyRequest) (rep *artist.FinishVerifyRespond, err error) {
// rep = &artist.FinishVerifyRespond{}
// data := &artist.User{}
// var user model.User
// user.ID = int32(req.Id)
// if err = db.DB.Model(&user).Update("fdd_state", 2).Error; err != nil {
// zap.L().Error("user update failed", zap.Error(err))
// err = errors.New(m.UPDATE_FAILED)
// return
// }
// copyOpt := util.CopyOption{
// Src: &user,
// Dst: data,
// }
// util.CopyStructSuper(copyOpt)
// rep.User = data
// return
// }
// func CheckInvitedCode(invitedCode string) (user *model.User, err error) {
// user = &model.User{}
// //找到用户
// if err := db.DB.Where("invited_code =?", invitedCode).Find(user).Error; err != nil {
// zap.L().Error("get user info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return nil, err
// }
// if user.ID == 0 {
// err = errors.New(m.INVITE_CODE_INVALID)
// return nil, err
// }
// return user, nil
// }
// func Createinvite(userId, invitedId int32) (invite *model.Invite, err error) {
// invite = &model.Invite{}
// invite.UserId = userId
// invite.InvitedId = invitedId
// if err := db.DB.Create(&invite).Error; err != nil {
// zap.L().Error("create invite info err", zap.Error(err))
// err = errors.New(m.CREATE_ERROR)
// return nil, err
// }
// return invite, nil
// }