500 lines
16 KiB
Go
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
|
|
|
|
// }
|