fonchain-artistinfo/cmd/internal/logic/artistInfo.go

152 lines
5.1 KiB
Go
Raw Normal View History

2022-12-09 08:24:12 +00:00
package logic
import (
"encoding/base64"
"fmt"
"strings"
"github.com/fonchain-artistserver/cmd/internal/dao"
"github.com/fonchain-artistserver/cmd/model"
artistInfo "github.com/fonchain-artistserver/pb/artistinfo"
"github.com/fonchain-artistserver/pkg/m"
"github.com/fonchain-artistserver/pkg/util"
fdd "github.com/fonchain/electronic-contract/server"
"go.uber.org/zap"
)
type IArtistInfo interface {
GetUserInfo(req *artistInfo.GetUserInfoRequest) (rep *artistInfo.GetUserInfoRespond, err error)
CreateUserInfo(req *artistInfo.UserInfoCommonRequest) (rep *artistInfo.CreateUserInfoRespond, err error)
UpdateUserInfo(req *artistInfo.UserInfoCommonRequest) (rep *artistInfo.UpdateUserInfoRespond, err error)
UserUpdateTel(req *artistInfo.UserUpdateTelRequest) (rep *artistInfo.UserUpdateTelRespond, err error)
UserUpdateMsg(req *artistInfo.UserInfoCommonRequest) (rep *artistInfo.UserUpdateMsgRespond, err error)
Verifyfdd(req *artistInfo.VerifyfddRequest) (rep *artistInfo.VerifyfddRespond, err error)
FinishVerify(req *artistInfo.FinishVerifyRequest) (rep *artistInfo.FinishVerifyRespond, err error)
}
func NewArtistInfo() IArtistInfo {
return &ArtistInfo{}
}
type ArtistInfo struct{}
func (a *ArtistInfo) GetUserInfo(req *artistInfo.GetUserInfoRequest) (rep *artistInfo.GetUserInfoRespond, err error) {
rep, err = dao.User(req)
return
}
func (a *ArtistInfo) CreateUserInfo(req *artistInfo.UserInfoCommonRequest) (rep *artistInfo.CreateUserInfoRespond, err error) {
// rep = &artistInfo.CreateUserInfoRespond{}
util.CreateArtistInfo(req.Id)
rep, err = dao.Create(req)
if err != nil {
return
}
fddClient, err := fdd.NewFddClient()
if err != nil {
zap.L().Error("newFddClient err", zap.Error(err))
return
}
userInfos, err := dao.GetUserInfoSelf(req.Id)
if err != nil {
zap.L().Error("getUserInfoSelf err", zap.Error(err))
return rep, nil
}
err = util.CreateQrCode(userInfos.InvitedCode, userInfos.RealName)
if err != nil {
zap.L().Error("createQrCode err", zap.Error(err))
return
}
_, b, err := fddClient.PersonVerify(userInfos.CustomerId, "1", req.UserUpdateInfoService.RealName, req.UserUpdateInfoService.IdCard, req.UserUpdateInfoService.TelNum, fmt.Sprintf("%v/contractreturn?id=%d&htmltype=%s&envtype=%s", m.ReturnUrl, req.Id, req.UserUpdateInfoService.HtmlType, req.UserUpdateInfoService.EnvType))
if err != nil {
zap.L().Error("fddClient personVerify err", zap.Error(err))
return
}
url, err := base64.StdEncoding.DecodeString(b)
if err != nil {
return
}
rep.Url = string(url)
return
}
func (a *ArtistInfo) UpdateUserInfo(req *artistInfo.UserInfoCommonRequest) (rep *artistInfo.UpdateUserInfoRespond, err error) {
util.CreateArtistInfo(req.Id)
req.UserUpdateInfoService.Photo = strings.Split(req.UserUpdateInfoService.Photo, "?v=")[0]
//转移画家视频
req.UserUpdateInfoService.CertificateImg = strings.Split(req.UserUpdateInfoService.CertificateImg, "?v=")[0]
//转移画家视频
req.UserUpdateInfoService.Video = strings.Split(req.UserUpdateInfoService.Video, "?v=")[0]
//转移身份证正面
req.UserUpdateInfoService.IdCardFront = strings.Split(req.UserUpdateInfoService.IdCardFront, "?v=")[0]
req.UserUpdateInfoService.IdCardBack = strings.Split(req.UserUpdateInfoService.IdCardBack, "?v=")[0]
rep, err = dao.Update(req)
return
}
func (a *ArtistInfo) UserUpdateTel(req *artistInfo.UserUpdateTelRequest) (rep *artistInfo.UserUpdateTelRespond, err error) {
rep, err = dao.UpdateTel(req)
return
}
func (a *ArtistInfo) UserUpdateMsg(req *artistInfo.UserInfoCommonRequest) (rep *artistInfo.UserUpdateMsgRespond, err error) {
rep, err = dao.UpdateMsg(req)
return
}
func (a *ArtistInfo) Verifyfdd(req *artistInfo.VerifyfddRequest) (rep *artistInfo.VerifyfddRespond, err error) {
rep, err = dao.VerifyFdd(req)
if err != nil {
if !rep.Ready {
fddClient, err := fdd.NewFddClient()
if err != nil {
zap.L().Error("newFddClient err", zap.Error(err))
return rep, err
}
userInfo, err := dao.GetUserInfoSelf(req.Id)
if err != nil {
zap.L().Error("getUserInfoSelf err", zap.Error(err))
return rep, nil
}
err = util.CreateQrCode(userInfo.InvitedCode, userInfo.RealName)
if err != nil {
zap.L().Error("createQrCode err", zap.Error(err))
return rep, err
}
//注意userUpdateInfoService没有值
var userUpdateInfoService model.UserUpdateInfoService
_, b, err := fddClient.PersonVerify(userInfo.CustomerId, "1", userUpdateInfoService.RealName, userUpdateInfoService.IdCard, userUpdateInfoService.TelNum, fmt.Sprintf("%v/contractreturn?id=%d&htmltype=%s&envtype=%s", m.ReturnUrl, req.Id, userUpdateInfoService.HtmlType, userUpdateInfoService.EnvType))
if err != nil {
zap.L().Error("fddClient personVerify err", zap.Error(err))
return nil, err
}
url, err := base64.StdEncoding.DecodeString(b)
if err != nil {
zap.L().Error("base64 decodeString err", zap.Error(err))
}
rep.Url = string(url)
} else {
rep.Url = ""
}
}
return
}
func (a *ArtistInfo) FinishVerify(req *artistInfo.FinishVerifyRequest) (rep *artistInfo.FinishVerifyRespond, err error) {
rep, err = dao.FinishVerify(req)
return
}