|
@@ -12,14 +12,14 @@ var ERR_NO_USER_RECORD = errors.New("用户关系没有入库")
|
|
|
var ERR_USER_NOT_BIND = errors.New("用户没有绑定")
|
|
|
|
|
|
//通过openid获取用户信息
|
|
|
-func GetWxUserItemByOpenId(openid string) (item *models.WxUserItem,err error){
|
|
|
+func GetWxUserItemByOpenId(openid string) (item *models.WxUserItem, err error) {
|
|
|
//通过openid获取用户关联信息
|
|
|
- userRecord,userRecordErr := models.GetUserRecordByOpenId(openid)
|
|
|
- if userRecordErr != nil{
|
|
|
- if userRecordErr.Error() == utils.ErrNoRow(){
|
|
|
+ userRecord, userRecordErr := models.GetUserRecordByOpenId(openid)
|
|
|
+ if userRecordErr != nil {
|
|
|
+ if userRecordErr.Error() == utils.ErrNoRow() {
|
|
|
err = ERR_NO_USER_RECORD
|
|
|
return
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
err = userRecordErr
|
|
|
return
|
|
|
}
|
|
@@ -32,85 +32,85 @@ func GetWxUserItemByOpenId(openid string) (item *models.WxUserItem,err error){
|
|
|
}
|
|
|
|
|
|
//该openid没有绑定用户
|
|
|
- if userRecord.UserId <= 0{
|
|
|
+ if userRecord.UserId <= 0 {
|
|
|
err = ERR_USER_NOT_BIND
|
|
|
item = new(models.WxUserItem)
|
|
|
//格式化返回用户数据
|
|
|
- formatWxUserAndUserRecord(item,userRecord)
|
|
|
+ formatWxUserAndUserRecord(item, userRecord)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//获取用户信息
|
|
|
- item,wxUserErr := models.GetWxUserItemByUserId(userRecord.UserId)
|
|
|
- if wxUserErr != nil{
|
|
|
+ item, wxUserErr := models.GetWxUserItemByUserId(userRecord.UserId)
|
|
|
+ if wxUserErr != nil {
|
|
|
err = wxUserErr
|
|
|
|
|
|
//如果是下面这个错误,那么这个可能是用户信息被删除,然后user_record表没有移除该条记录所绑定的user_id信息
|
|
|
- if wxUserErr.Error() == utils.ErrNoRow(){
|
|
|
+ if wxUserErr.Error() == utils.ErrNoRow() {
|
|
|
err = errors.New("用户信息不存在")
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
//格式化返回用户数据
|
|
|
- formatWxUserAndUserRecord(item,userRecord)
|
|
|
+ formatWxUserAndUserRecord(item, userRecord)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//根据用户id和平台id获取用户信息
|
|
|
-func GetWxUserItemByUserId(userId,platform int) (wxUserItem *models.WxUserItem,err error){
|
|
|
+func GetWxUserItemByUserId(userId, platform int) (wxUserItem *models.WxUserItem, err error) {
|
|
|
//获取用户信息
|
|
|
- wxUserItem,wxUserErr := models.GetWxUserItemByUserId(userId)
|
|
|
- if wxUserErr != nil{
|
|
|
+ wxUserItem, wxUserErr := models.GetWxUserItemByUserId(userId)
|
|
|
+ if wxUserErr != nil {
|
|
|
err = wxUserErr
|
|
|
return
|
|
|
}
|
|
|
//格式化返回用户数据
|
|
|
- formatWxUser(wxUserItem,platform)
|
|
|
+ formatWxUser(wxUserItem, platform)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//根据用户邮箱和平台id获取用户信息
|
|
|
-func GetWxUserItemByEmail(email string,platform int) (wxUserItem *models.WxUserItem,err error) {
|
|
|
+func GetWxUserItemByEmail(email string, platform int) (wxUserItem *models.WxUserItem, err error) {
|
|
|
//获取用户信息
|
|
|
- wxUserItem,wxUserErr := models.GetWxUserItemByEmail(email)
|
|
|
- if wxUserErr != nil{
|
|
|
+ wxUserItem, wxUserErr := models.GetWxUserItemByEmail(email)
|
|
|
+ if wxUserErr != nil {
|
|
|
err = wxUserErr
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//格式化返回用户数据
|
|
|
- formatWxUser(wxUserItem,platform)
|
|
|
+ formatWxUser(wxUserItem, platform)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//根据用户手机号和平台id获取用户信息
|
|
|
-func GetWxUserItemByMobile(mobile string,platform int) (wxUserItem *models.WxUserItem,err error) {
|
|
|
+func GetWxUserItemByMobile(mobile string, platform int) (wxUserItem *models.WxUserItem, err error) {
|
|
|
//获取用户信息
|
|
|
- wxUserItem,wxUserErr := models.GetWxUserItemByMobile(mobile)
|
|
|
- if wxUserErr != nil{
|
|
|
+ wxUserItem, wxUserErr := models.GetWxUserItemByMobile(mobile)
|
|
|
+ if wxUserErr != nil {
|
|
|
err = wxUserErr
|
|
|
return
|
|
|
}
|
|
|
//格式化返回用户数据
|
|
|
- formatWxUser(wxUserItem,platform)
|
|
|
+ formatWxUser(wxUserItem, platform)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//根据用户unionid和平台id获取用户信息
|
|
|
-func GetWxUserItemByUnionId(unionId string,platform int) (wxUserItem *models.WxUserItem,err error) {
|
|
|
+func GetWxUserItemByUnionId(unionId string, platform int) (wxUserItem *models.WxUserItem, err error) {
|
|
|
//获取用户信息
|
|
|
- wxUserItem,wxUserErr := models.GetWxUserItemByUnionid(unionId)
|
|
|
- if wxUserErr != nil{
|
|
|
+ wxUserItem, wxUserErr := models.GetWxUserItemByUnionid(unionId)
|
|
|
+ if wxUserErr != nil {
|
|
|
err = wxUserErr
|
|
|
return
|
|
|
}
|
|
|
//格式化返回用户数据
|
|
|
- formatWxUser(wxUserItem,platform)
|
|
|
+ formatWxUser(wxUserItem, platform)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//通过用户 关系表记录 和 用户记录 格式化返回 用户数据
|
|
|
-func formatWxUserAndUserRecord(wxUser *models.WxUserItem,userRecord *models.UserRecord) {
|
|
|
+func formatWxUserAndUserRecord(wxUser *models.WxUserItem, userRecord *models.UserRecord) {
|
|
|
wxUser.OpenId = userRecord.OpenId
|
|
|
wxUser.UnionId = userRecord.UnionId
|
|
|
wxUser.NickName = userRecord.NickName
|
|
@@ -120,14 +120,14 @@ func formatWxUserAndUserRecord(wxUser *models.WxUserItem,userRecord *models.User
|
|
|
}
|
|
|
|
|
|
//通过用户 用户记录 和 来源平台 格式化返回 用户数据
|
|
|
-func formatWxUser(wxUser *models.WxUserItem,platform int) {
|
|
|
+func formatWxUser(wxUser *models.WxUserItem, platform int) {
|
|
|
//根据用户id和平台id获取用户关系
|
|
|
- userRecord,userRecordErr := models.GetUserRecordByUserId(wxUser.UserId,platform)
|
|
|
- if userRecordErr != nil{
|
|
|
- if userRecordErr.Error() != utils.ErrNoRow(){
|
|
|
+ userRecord, userRecordErr := models.GetUserRecordByUserId(wxUser.UserId, platform)
|
|
|
+ if userRecordErr != nil {
|
|
|
+ if userRecordErr.Error() != utils.ErrNoRow() {
|
|
|
return
|
|
|
}
|
|
|
- if userRecordErr.Error() == utils.ErrNoRow(){
|
|
|
+ if userRecordErr.Error() == utils.ErrNoRow() {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -147,16 +147,17 @@ func formatWxUser(wxUser *models.WxUserItem,platform int) {
|
|
|
}
|
|
|
|
|
|
//用户绑定
|
|
|
-func BindWxUser(openid,mobile,email string) (wxUser *models.WxUserItem,err error) {
|
|
|
- if mobile == "" && email == ""{
|
|
|
+func BindWxUser(openid, mobile, email string, registerPlatform int) (wxUser *models.WxUserItem, err error) {
|
|
|
+ source := 1 //绑定来源,1:微信端,2:pc网页端,3:查研观向小程序,4:每日咨询
|
|
|
+ if mobile == "" && email == "" {
|
|
|
err = errors.New("手机号或邮箱必填一个")
|
|
|
return
|
|
|
}
|
|
|
var bindAccount string
|
|
|
//根据手机号获取用户信息
|
|
|
- if mobile != ""{
|
|
|
- tmpWxUser,wxUserErr := models.GetWxUserItemByMobile(mobile)
|
|
|
- if wxUserErr != nil && wxUserErr.Error() != utils.ErrNoRow(){
|
|
|
+ if mobile != "" {
|
|
|
+ tmpWxUser, wxUserErr := models.GetWxUserItemByMobile(mobile)
|
|
|
+ if wxUserErr != nil && wxUserErr.Error() != utils.ErrNoRow() {
|
|
|
err = wxUserErr
|
|
|
return
|
|
|
}
|
|
@@ -164,9 +165,9 @@ func BindWxUser(openid,mobile,email string) (wxUser *models.WxUserItem,err error
|
|
|
bindAccount = mobile
|
|
|
}
|
|
|
//根据邮箱获取用户信息
|
|
|
- if wxUser == nil && email != ""{
|
|
|
- tmpWxUser,wxUserErr := models.GetWxUserItemByEmail(email)
|
|
|
- if wxUserErr != nil && wxUserErr.Error() != utils.ErrNoRow(){
|
|
|
+ if wxUser == nil && email != "" {
|
|
|
+ tmpWxUser, wxUserErr := models.GetWxUserItemByEmail(email)
|
|
|
+ if wxUserErr != nil && wxUserErr.Error() != utils.ErrNoRow() {
|
|
|
err = wxUserErr
|
|
|
return
|
|
|
}
|
|
@@ -175,69 +176,79 @@ func BindWxUser(openid,mobile,email string) (wxUser *models.WxUserItem,err error
|
|
|
}
|
|
|
|
|
|
//查询openid的第三方(微信)信息
|
|
|
- userRecord,err := models.GetUserRecordByOpenId(openid)
|
|
|
- if err != nil{
|
|
|
+ userRecord, err := models.GetUserRecordByOpenId(openid)
|
|
|
+ if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-
|
|
|
var userId int
|
|
|
//如果查询出来的用户是nil,那么需要新增用户
|
|
|
- if wxUser == nil{
|
|
|
+ if wxUser == nil {
|
|
|
user := &models.WxUser{
|
|
|
- CompanyId:1,
|
|
|
- CreatedTime:time.Now(),
|
|
|
- FirstLogin:1,
|
|
|
- Enabled:1,
|
|
|
- RegisterPlatform:1,
|
|
|
- RegisterTime:time.Now(),
|
|
|
- Mobile: mobile,
|
|
|
- Email: email,
|
|
|
+ CompanyId: 1,
|
|
|
+ CreatedTime: time.Now(),
|
|
|
+ FirstLogin: 1,
|
|
|
+ Enabled: 1,
|
|
|
+ RegisterPlatform: registerPlatform, //账号注册来源,注册平台,1:微信端,2:PC网页端
|
|
|
+ RegisterTime: time.Now(),
|
|
|
+ Mobile: mobile,
|
|
|
+ Email: email,
|
|
|
+ IsRegister: 1,
|
|
|
+ Source: source,
|
|
|
}
|
|
|
tmpUserId, addUserErr := models.AddWxUser(user)
|
|
|
- if err != nil{
|
|
|
+ if err != nil {
|
|
|
err = addUserErr
|
|
|
return
|
|
|
}
|
|
|
user.UserId = int(tmpUserId)
|
|
|
userId = int(tmpUserId)
|
|
|
- wxUser,err = models.GetWxUserItemByUserId(userId)
|
|
|
- }else{
|
|
|
+ wxUser, err = models.GetWxUserItemByUserId(userId)
|
|
|
+ } else {
|
|
|
userId = wxUser.UserId
|
|
|
}
|
|
|
//如果存在该手机号/邮箱,那么需要校验
|
|
|
- if userRecord.UserId > 0 && userRecord.UserId != userId{
|
|
|
+ if userRecord.UserId > 0 && userRecord.UserId != userId {
|
|
|
err = errors.New("用户已绑定,不允许重复绑定")
|
|
|
return
|
|
|
}
|
|
|
- if userRecord.UserId == 0{
|
|
|
- err = models.BindUserRecordByOpenid(userId,openid,bindAccount)
|
|
|
- if err != nil{
|
|
|
+ if userRecord.UserId == 0 {
|
|
|
+ err = models.BindUserRecordByOpenid(userId, openid, bindAccount)
|
|
|
+ if err != nil {
|
|
|
return
|
|
|
}
|
|
|
userRecord.UserId = userId
|
|
|
}
|
|
|
|
|
|
//如果当前该第三方用户信息的昵称为空串的话,那么需要去查询该用户的第一个绑定信息的数据作为来源做数据修复
|
|
|
- if userRecord.NickName == ""{
|
|
|
+ if userRecord.NickName == "" {
|
|
|
oldUserRecord, err := models.GetUserThirdRecordByUserId(userId)
|
|
|
- if err == nil && oldUserRecord != nil{
|
|
|
+ if err == nil && oldUserRecord != nil {
|
|
|
//如果该用户绑定的第一条数据的头像信息不为空串,那么就去做新数据的修复
|
|
|
- if oldUserRecord.NickName != ""{
|
|
|
- _ = models.ModifyUserRecordInfo(userRecord.OpenId,oldUserRecord.NickName, oldUserRecord.Headimgurl, oldUserRecord.City, oldUserRecord.Province, oldUserRecord.Country, oldUserRecord.Sex, userId)
|
|
|
+ if oldUserRecord.NickName != "" {
|
|
|
+ _ = models.ModifyUserRecordInfo(userRecord.OpenId, oldUserRecord.NickName, oldUserRecord.Headimgurl, oldUserRecord.City, oldUserRecord.Province, oldUserRecord.Country, oldUserRecord.Sex, userId)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //如果该用户 绑定注册状态 字段处于 未注册 的情况下,那么去修改该数据
|
|
|
+ if wxUser.IsRegister == 0 {
|
|
|
+ err = models.ModifyWxUserRegisterStatus(userId, 1, source, time.Now())
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//格式化用户数据
|
|
|
- formatWxUserAndUserRecord(wxUser,userRecord)
|
|
|
+ formatWxUserAndUserRecord(wxUser, userRecord)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//微信登录
|
|
|
-func WxLogin(wxPlatform int,code string,wxAccessToken *WxAccessToken,wxUserInfo *WxUserInfo)(token string,userId,firstLogin,permission int,err error){
|
|
|
+func WxLogin(wxPlatform int, code string, wxAccessToken *WxAccessToken, wxUserInfo *WxUserInfo) (token string, userId, firstLogin, permission int, err error) {
|
|
|
openId := wxAccessToken.Openid
|
|
|
unionId := wxAccessToken.Unionid
|
|
|
- if unionId == ""{
|
|
|
+ if unionId == "" {
|
|
|
unionId = wxUserInfo.Unionid
|
|
|
}
|
|
|
|
|
@@ -246,25 +257,25 @@ func WxLogin(wxPlatform int,code string,wxAccessToken *WxAccessToken,wxUserInfo
|
|
|
|
|
|
QUERY_WX_USER:
|
|
|
wxUser, wxUserErr := GetWxUserItemByOpenId(openId)
|
|
|
- if wxUserErr == ERR_NO_USER_RECORD{ //没有用户openid记录
|
|
|
- _,recordErr := AddUserRecord(openId,unionId,wxUserInfo.Nickname,"",wxUserInfo.Province,wxUserInfo.City,wxUserInfo.Country,wxUserInfo.Headimgurl,"",wxPlatform,wxUserInfo.Sex,0)
|
|
|
+ if wxUserErr == ERR_NO_USER_RECORD { //没有用户openid记录
|
|
|
+ _, recordErr := AddUserRecord(openId, unionId, wxUserInfo.Nickname, "", wxUserInfo.Province, wxUserInfo.City, wxUserInfo.Country, wxUserInfo.Headimgurl, "", wxPlatform, wxUserInfo.Sex, 0)
|
|
|
//如果插入失败,那么直接将错误信息返回
|
|
|
- if recordErr != nil{
|
|
|
+ if recordErr != nil {
|
|
|
err = recordErr
|
|
|
return
|
|
|
}
|
|
|
//插入成功后,需要重新查询该用户,并进入下面的逻辑
|
|
|
goto QUERY_WX_USER
|
|
|
- }else if wxUserErr == ERR_USER_NOT_BIND{
|
|
|
+ } else if wxUserErr == ERR_USER_NOT_BIND {
|
|
|
//没有用户信息
|
|
|
//wxUser.FirstLogin = 1
|
|
|
- }else if wxUserErr != nil{
|
|
|
+ } else if wxUserErr != nil {
|
|
|
err = wxUserErr
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//如果已经登录注册绑定的情况下
|
|
|
- if wxUser != nil && wxUserErr == nil{
|
|
|
+ if wxUser != nil && wxUserErr == nil {
|
|
|
//获取用户权限
|
|
|
firstLogin = wxUser.FirstLogin
|
|
|
userId = wxUser.UserId
|
|
@@ -276,7 +287,7 @@ QUERY_WX_USER:
|
|
|
}
|
|
|
|
|
|
if wxUserInfo != nil {
|
|
|
- go models.ModifyUserRecordInfo(openId,wxUserInfo.Nickname, wxUserInfo.Headimgurl, wxUserInfo.City, wxUserInfo.Province, wxUserInfo.Country, wxUserInfo.Sex, userId)
|
|
|
+ go models.ModifyUserRecordInfo(openId, wxUserInfo.Nickname, wxUserInfo.Headimgurl, wxUserInfo.City, wxUserInfo.Province, wxUserInfo.Country, wxUserInfo.Sex, userId)
|
|
|
}
|
|
|
|
|
|
{
|
|
@@ -287,21 +298,20 @@ QUERY_WX_USER:
|
|
|
codeLog.FirstLogin = firstLogin
|
|
|
codeLog.Authorization = token
|
|
|
codeLog.UserPermission = permission
|
|
|
- codeLog.CreateTime=time.Now()
|
|
|
+ codeLog.CreateTime = time.Now()
|
|
|
models.AddWxUserCode(codeLog)
|
|
|
}
|
|
|
if wxUser.Mobile == "" && wxUser.Email == "" {
|
|
|
firstLogin = 1
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
firstLogin = 0
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//获取登录token
|
|
|
tokenItem, tokenErr := models.GetTokenByOpenId(openId)
|
|
|
if tokenErr != nil && tokenErr.Error() != utils.ErrNoRow() {
|
|
|
- err = errors.New("登录失败,获取token失败:" + tokenErr.Error())
|
|
|
+ err = errors.New("登录失败,获取token失败:" + tokenErr.Error())
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -320,15 +330,15 @@ QUERY_WX_USER:
|
|
|
session.AccessToken = token
|
|
|
sessionErr := models.AddSession(session)
|
|
|
if err != nil {
|
|
|
- err = errors.New("登录失败,新增用户session信息失败:" + sessionErr.Error())
|
|
|
+ err = errors.New("登录失败,新增用户session信息失败:" + sessionErr.Error())
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
token = tokenItem.AccessToken
|
|
|
//如果联系人编号不为空,且联系人编号与session里面的联系人编号不一致的时候,需要做session变更
|
|
|
- if userId > 0 && tokenItem.UserId != userId{
|
|
|
- _ = models.UpdateSession(tokenItem.SessionId,userId,time.Now().AddDate(0, 1, 0))
|
|
|
+ if userId > 0 && tokenItem.UserId != userId {
|
|
|
+ _ = models.UpdateSession(tokenItem.SessionId, userId, time.Now().AddDate(0, 1, 0))
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -346,36 +356,35 @@ QUERY_WX_USER:
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//添加第三方用户(微信)记录
|
|
|
-func AddUserRecord(openId,unionId,nickName,realName,province,city,country,headimgurl,sessionKey string,platform,sex,subscribe int) (userRecord *models.UserRecord,err error) {
|
|
|
- find,err := models.GetUserRecordByOpenId(openId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow(){
|
|
|
+func AddUserRecord(openId, unionId, nickName, realName, province, city, country, headimgurl, sessionKey string, platform, sex, subscribe int) (userRecord *models.UserRecord, err error) {
|
|
|
+ find, err := models.GetUserRecordByOpenId(openId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
return
|
|
|
}
|
|
|
- if find != nil{
|
|
|
+ if find != nil {
|
|
|
userRecord = find
|
|
|
return
|
|
|
}
|
|
|
userRecord = &models.UserRecord{
|
|
|
- OpenId :openId, //用户open_id
|
|
|
- UnionId :unionId,//用户union_id
|
|
|
- Subscribe :subscribe,
|
|
|
- NickName :nickName, //用户昵称,最大长度:32
|
|
|
- RealName :realName, //用户实际名称,最大长度:32
|
|
|
- Sex :sex, //普通用户性别,1为男性,2为女性
|
|
|
- Province :province,//普通用户个人资料填写的省份,最大长度:30
|
|
|
- City :city, //普通用户个人资料填写的城市,最大长度:30
|
|
|
- Country :country, //国家,如中国为CN,最大长度:30
|
|
|
- Headimgurl :headimgurl, //用户第三方(微信)头像,最大长度:512
|
|
|
- CreateTime :time.Now(), //创建时间,关系添加时间、用户授权时间
|
|
|
- CreatePlatform :platform, //注册平台,1:日度点评公众号,2:管理后台,3:pc端网站,4:查研观向小程序;默认:1
|
|
|
- SessionKey :sessionKey, //微信小程序会话密钥,最大长度:255
|
|
|
+ OpenId: openId, //用户open_id
|
|
|
+ UnionId: unionId, //用户union_id
|
|
|
+ Subscribe: subscribe,
|
|
|
+ NickName: nickName, //用户昵称,最大长度:32
|
|
|
+ RealName: realName, //用户实际名称,最大长度:32
|
|
|
+ Sex: sex, //普通用户性别,1为男性,2为女性
|
|
|
+ Province: province, //普通用户个人资料填写的省份,最大长度:30
|
|
|
+ City: city, //普通用户个人资料填写的城市,最大长度:30
|
|
|
+ Country: country, //国家,如中国为CN,最大长度:30
|
|
|
+ Headimgurl: headimgurl, //用户第三方(微信)头像,最大长度:512
|
|
|
+ CreateTime: time.Now(), //创建时间,关系添加时间、用户授权时间
|
|
|
+ CreatePlatform: platform, //注册平台,1:日度点评公众号,2:管理后台,3:pc端网站,4:查研观向小程序;默认:1
|
|
|
+ SessionKey: sessionKey, //微信小程序会话密钥,最大长度:255
|
|
|
}
|
|
|
recordId, err := models.AddUserRecord(userRecord)
|
|
|
- if err !=nil{
|
|
|
+ if err != nil {
|
|
|
return
|
|
|
}
|
|
|
userRecord.UserRecordId = int(recordId)
|
|
|
return
|
|
|
-}
|
|
|
+}
|