作者 yangfu

Merge remote-tracking branch 'origin/dev' into test

@@ -45,5 +45,5 @@ suplus_approve_host ="http://suplus-approve-dev.fjmaimaimai.com" @@ -45,5 +45,5 @@ suplus_approve_host ="http://suplus-approve-dev.fjmaimaimai.com"
45 #阿里云 45 #阿里云
46 cname ="https://media.fjmaimaimai.com/" 46 cname ="https://media.fjmaimaimai.com/"
47 47
48 -#服务地址  
49 -VOD_SVR_ADDRESS ="http://mmm-open-api-dev.fjmaimaimai.com"  
  48 +#企业平台
  49 +BUSINESS_ADMIN_SERVICE_HOST ="${BUSINESS_ADMIN_SERVICE_HOST||http://suplus-business-admin-dev.fjmaimaimai.com}"
@@ -43,11 +43,8 @@ h5_host = "http://mmm-web-open-test.fjmaimaimai.com" @@ -43,11 +43,8 @@ h5_host = "http://mmm-web-open-test.fjmaimaimai.com"
43 #审核中心 43 #审核中心
44 suplus_approve_host ="http://suplus-approve-dev.fjmaimaimai.com" 44 suplus_approve_host ="http://suplus-approve-dev.fjmaimaimai.com"
45 45
46 -#阿里云 https://media.goexample.live/  
47 -cname ="https://media.fjmaimaimai.com/" 46 +#阿里云 https://media.fjmaimaimai.com/
  47 +cname ="https://media.goexample.live/"
48 48
49 #企业平台 49 #企业平台
50 -BUSINESS_ADMIN_SERVICE_HOST ="${BUSINESS_ADMIN_SERVICE_HOST||http://suplus-business-admin-test.fjmaimaimai.com}"  
51 -  
52 -#服务地址  
53 -VOD_SVR_ADDRESS ="http://mmm-open-api-dev.fjmaimaimai.com"  
  50 +BUSINESS_ADMIN_SERVICE_HOST ="${BUSINESS_ADMIN_SERVICE_HOST||http://suplus-business-admin-dev.fjmaimaimai.com}"
@@ -47,6 +47,3 @@ BUSINESS_ADMIN_SERVICE_HOST ="${BUSINESS_ADMIN_SERVICE_HOST||http://suplus-busin @@ -47,6 +47,3 @@ BUSINESS_ADMIN_SERVICE_HOST ="${BUSINESS_ADMIN_SERVICE_HOST||http://suplus-busin
47 47
48 #阿里云 48 #阿里云
49 cname ="https://media.fjmaimaimai.com/" 49 cname ="https://media.fjmaimaimai.com/"
50 -  
51 -#服务地址  
52 -VOD_SVR_ADDRESS ="http://mmm-open-api-prd.fjmaimaimai.com"  
  1 +[prod]
  2 +#数据库相关
  3 +mysql_user = "${MYSQL_USER||suplus_user}"
  4 +mysql_password = "${MYSQL_PASSWORD||suplus2019!}"
  5 +mysql_host = "${MYSQL_HOST||rm-bp17e26y39qravmwxmo.mysql.rds.aliyuncs.com}"
  6 +mysql_port = "${MYSQL_PORT||3306}"
  7 +mysql_db_name = "${MYSQL_DB_NAME||opportunity}"
  8 +
  9 +#日志
  10 +log_level = "${LOG_LEVEL||debug}"
  11 +aliyun_logs_access ="${aliyun_logs_access||app.log}"
  12 +
  13 +
  14 +#redis相关配置
  15 +redis_add = "${REDIS_HOST||127.0.0.1}"
  16 +redis_add_port = "${REDIS_PORT||6379}"
  17 +redis_auth = "123456"
  18 +
  19 +#sms相关配置
  20 +yunpian_sms_sdk_url ="https://sms.yunpian.com/v2/sms/single_send.json"
  21 +yunpian_app_key ="0bf6fb10a11a68a95dee80901eb545b5"
  22 +
  23 +#存储 http:https://public-interface.fjmaimaimai.com/opportunity/ http://mmm-opp-prd.fjmaimaimai.com/
  24 +source_host ="https://mmm-opp-prd.fjmaimaimai.com/"
  25 +source_virtual_path=file/opp
  26 +source_path ="${aliyun_file_access||/var/www/opp/file/opportunity}"
  27 +
  28 +#网易云信 IM
  29 +net_im_base_url ="https://api.netease.im/nimserver"
  30 +net_im_app_secret ="a8d231f5c13a"
  31 +net_im_app_key ="9c5410602597a7fe367aeeebd8210262"
  32 +
  33 +#统一用户中心 39aefef9e22744a3b2d2d3791824ae7b
  34 +user_center_url ="https://public-interface.fjmaimaimai.com/ucenter"
  35 +user_center_salt ="rsF0pL!6DwjBO735"
  36 +user_center_app_key ="39aefef9e22744a3b2d2d3791824ae7b"
  37 +user_center_app_secret ="cykbjnfqgctn"
  38 +
  39 +#Html5
  40 +h5_host = "https://web-open.fjmaimaimai.com"
  41 +
  42 +#审核中心
  43 +suplus_approve_host ="https://public-interface.fjmaimaimai.com/approve"
  44 +
  45 +#企业平台
  46 +BUSINESS_ADMIN_SERVICE_HOST ="${BUSINESS_ADMIN_SERVICE_HOST||http://suplus-business-admin-prd.fjmaimaimai.com}"
  47 +
  48 +#阿里云
  49 +cname ="https://media.fjmaimaimai.com/"
@@ -202,6 +202,7 @@ func CheckToken(ctx *context.Context) (result bool) { @@ -202,6 +202,7 @@ func CheckToken(ctx *context.Context) (result bool) {
202 if strings.HasSuffix(ctx.Request.RequestURI, "loginModule") || 202 if strings.HasSuffix(ctx.Request.RequestURI, "loginModule") ||
203 strings.HasSuffix(ctx.Request.RequestURI, "accessToken") || 203 strings.HasSuffix(ctx.Request.RequestURI, "accessToken") ||
204 strings.HasSuffix(ctx.Request.RequestURI, "refreshToken") || 204 strings.HasSuffix(ctx.Request.RequestURI, "refreshToken") ||
  205 + strings.HasSuffix(ctx.Request.RequestURI, "authorize") ||
205 strings.HasSuffix(ctx.Request.RequestURI, "smsCode") { 206 strings.HasSuffix(ctx.Request.RequestURI, "smsCode") {
206 return true 207 return true
207 } 208 }
@@ -43,6 +43,27 @@ func (this *AuthController) Login() { @@ -43,6 +43,27 @@ func (this *AuthController) Login() {
43 msg = protocol.NewReturnResponse(auth.Login(header, request)) 43 msg = protocol.NewReturnResponse(auth.Login(header, request))
44 } 44 }
45 45
  46 +//Authorize 模块认证 (登录V2版本)
  47 +// @router /authorize [post]
  48 +func (this *AuthController) Authorize() {
  49 + var msg *protocol.ResponseMessage
  50 + defer func() {
  51 + this.Resp(msg)
  52 + }()
  53 + var request *protocol.AuthorizeRequest
  54 + if err := json.Unmarshal(this.ByteBody, &request); err != nil {
  55 + log.Error(err)
  56 + msg = protocol.BadRequestParam(1)
  57 + return
  58 + }
  59 + if b, m := this.Valid(request); !b {
  60 + msg = m
  61 + return
  62 + }
  63 + header := controllers.GetRequestHeader(this.Ctx)
  64 + msg = protocol.NewReturnResponse(auth.Authorize(header, request))
  65 +}
  66 +
46 //SmsCode 67 //SmsCode
47 // @router /smsCode [post] 68 // @router /smsCode [post]
48 func (this *AuthController) SmsCode() { 69 func (this *AuthController) SmsCode() {
@@ -34,24 +34,3 @@ func (this *ConfigController) GetConfigScore() { @@ -34,24 +34,3 @@ func (this *ConfigController) GetConfigScore() {
34 header := controllers.GetRequestHeader(this.Ctx) 34 header := controllers.GetRequestHeader(this.Ctx)
35 msg = protocol.NewReturnResponse(config.GetConfigScore(header, request)) 35 msg = protocol.NewReturnResponse(config.GetConfigScore(header, request))
36 } 36 }
37 -  
38 -//ServiceConfig 服务配置  
39 -//@router /service [post]  
40 -func (this *ConfigController) ServiceConfig() {  
41 - var msg *protocol.ResponseMessage  
42 - defer func() {  
43 - this.Resp(msg)  
44 - }()  
45 - var request *protocol.ServiceConfigRequest  
46 - if err := json.Unmarshal(this.ByteBody, &request); err != nil {  
47 - log.Error(err)  
48 - msg = protocol.BadRequestParam(1)  
49 - return  
50 - }  
51 - if b, m := this.Valid(request); !b {  
52 - msg = m  
53 - return  
54 - }  
55 - header := controllers.GetRequestHeader(this.Ctx)  
56 - msg = protocol.NewReturnResponse(config.ServiceConfig(header, request))  
57 -}  
@@ -59,6 +59,18 @@ type LoginResponse struct { @@ -59,6 +59,18 @@ type LoginResponse struct {
59 AuthCode string `json:"authCode"` 59 AuthCode string `json:"authCode"`
60 } 60 }
61 61
  62 +/*Authorize 模块认证 (登录V2版本)*/
  63 +type AuthorizeRequest struct {
  64 + Token string `json:"credentials" valid:"Required;"` //登录凭证
  65 + ClientId string `json:"clientId"` //客户端密钥
  66 + Uid int64 `json:"cuid" valid:"Required;"` //统一用户中心用户 UID
  67 + Cid int64 `json:"cid" valid:"Required;"` //统一用户中心公司 ID
  68 + Muid int64 `json:"muid" valid:"Required;"` //企业平台中的用户 UID
  69 +}
  70 +type AuthorizeResponse struct {
  71 + AuthCode string `json:"authCode"`
  72 +}
  73 +
62 /*统一用户中心登录*/ 74 /*统一用户中心登录*/
63 type UserCenterLoginRequest struct { 75 type UserCenterLoginRequest struct {
64 Phone string `json:"phone"` 76 Phone string `json:"phone"`
@@ -548,6 +548,10 @@ type Picture struct { @@ -548,6 +548,10 @@ type Picture struct {
548 //JobId string `json:"job_id"` 548 //JobId string `json:"job_id"`
549 } 549 }
550 550
  551 +type Avatar struct {
  552 + Path string `json:"path"`
  553 +}
  554 +
551 //视频 555 //视频
552 type Video struct { 556 type Video struct {
553 Path string `json:"path"` 557 Path string `json:"path"`
@@ -32,19 +32,3 @@ type ScoreRange struct { @@ -32,19 +32,3 @@ type ScoreRange struct {
32 Max float64 `json:"max"` //最大分 32 Max float64 `json:"max"` //最大分
33 Step float64 `json:"step"` //步长 33 Step float64 `json:"step"` //步长
34 } 34 }
35 -  
36 -/*ServiceConfig 服务配置*/  
37 -type ServiceConfigRequest struct {  
38 -}  
39 -type ServiceConfigResponse struct {  
40 - ServeConfig *ServeConfig `json:"serveConfig"` //服务配置  
41 -}  
42 -  
43 -type ServeConfig struct {  
44 - VodAddress string `json:"vodSvrAddress"` //视频服务地址  
45 -}  
46 -  
47 -func (s *ServeConfig) SetVodAddress(addr string) *ServeConfig {  
48 - s.VodAddress = addr  
49 - return s  
50 -}  
@@ -13,6 +13,10 @@ var errmessge ErrorMap = map[int]string{ @@ -13,6 +13,10 @@ var errmessge ErrorMap = map[int]string{
13 5: "繁忙,请稍后再试", 13 5: "繁忙,请稍后再试",
14 101: "clientId或clientSecret无效", 14 101: "clientId或clientSecret无效",
15 113: "签名验证失败", 15 113: "签名验证失败",
  16 + 502: "用户不存在",
  17 + 503: "用户被禁用",
  18 + 601: "公司被禁用",
  19 + 602: "用户无模块权限",
16 1009: "验证码已失效", 20 1009: "验证码已失效",
17 1011: "获取验证码次数超出限制,请联系管理员", 21 1011: "获取验证码次数超出限制,请联系管理员",
18 1012: "请输入正确的验证码", 22 1012: "请输入正确的验证码",
@@ -63,6 +67,16 @@ var errmessge ErrorMap = map[int]string{ @@ -63,6 +67,16 @@ var errmessge ErrorMap = map[int]string{
63 67
64 //评论相关 68 //评论相关
65 5601: "评论不存在", 69 5601: "评论不存在",
  70 +
  71 + //企业平台
  72 + 10001: "用户不存在",
  73 + 10002: "登录凭证已过期,请重新登录",
  74 + 10003: "验证码不能为空",
  75 + 10004: "登录凭证不能为空",
  76 + 10005: "密码不能为空",
  77 + 10006: "用户不存在",
  78 + 10007: "用户已被禁用",
  79 + 10008: "用户无模块权限",
66 } 80 }
67 81
68 const ( 82 const (
@@ -65,9 +65,10 @@ type UserStatisticsResponse struct { @@ -65,9 +65,10 @@ type UserStatisticsResponse struct {
65 65
66 type User struct { 66 type User struct {
67 UserId int64 `json:"uid"` 67 UserId int64 `json:"uid"`
  68 + MUserId int64 `json:"muid"` //中台用户ID
68 Name string `json:"uname"` 69 Name string `json:"uname"`
69 Phone string `json:"phone"` 70 Phone string `json:"phone"`
70 - Image Picture `json:"image"` 71 + Image Avatar `json:"image"`
71 Department Dep `json:"dep"` 72 Department Dep `json:"dep"`
72 Position Job `json:"job"` 73 Position Job `json:"job"`
73 ImToken string `json:"imToken"` 74 ImToken string `json:"imToken"`
@@ -49,6 +49,14 @@ func init() { @@ -49,6 +49,14 @@ func init() {
49 49
50 beego.GlobalControllerRouter["opp/controllers/v1:AuthController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:AuthController"], 50 beego.GlobalControllerRouter["opp/controllers/v1:AuthController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:AuthController"],
51 beego.ControllerComments{ 51 beego.ControllerComments{
  52 + Method: "Authorize",
  53 + Router: `/authorize`,
  54 + AllowHTTPMethods: []string{"post"},
  55 + MethodParams: param.Make(),
  56 + Params: nil})
  57 +
  58 + beego.GlobalControllerRouter["opp/controllers/v1:AuthController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:AuthController"],
  59 + beego.ControllerComments{
52 Method: "Login", 60 Method: "Login",
53 Router: `/loginModule`, 61 Router: `/loginModule`,
54 AllowHTTPMethods: []string{"post"}, 62 AllowHTTPMethods: []string{"post"},
@@ -407,14 +415,6 @@ func init() { @@ -407,14 +415,6 @@ func init() {
407 MethodParams: param.Make(), 415 MethodParams: param.Make(),
408 Params: nil}) 416 Params: nil})
409 417
410 - beego.GlobalControllerRouter["opp/controllers/v1:ConfigController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:ConfigController"],  
411 - beego.ControllerComments{  
412 - Method: "ServiceConfig",  
413 - Router: `/service`,  
414 - AllowHTTPMethods: []string{"post"},  
415 - MethodParams: param.Make(),  
416 - Params: nil})  
417 -  
418 beego.GlobalControllerRouter["opp/controllers/v1:DepartmentController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:DepartmentController"], 418 beego.GlobalControllerRouter["opp/controllers/v1:DepartmentController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:DepartmentController"],
419 beego.ControllerComments{ 419 beego.ControllerComments{
420 Method: "Departments", 420 Method: "Departments",
@@ -161,6 +161,35 @@ func CheckUserModuleAuth(uid int64) (auth bool) { @@ -161,6 +161,35 @@ func CheckUserModuleAuth(uid int64) (auth bool) {
161 return response.UserAuth 161 return response.UserAuth
162 } 162 }
163 163
  164 +func GetUserModuleAuth(uid int64) (message *protocol.Message, auth bool) {
  165 + var req = NewRequest(fmt.Sprintf("%v%v", beego.AppConfig.String("BUSINESS_ADMIN_SERVICE_HOST"), MethodUserAuth), http.MethodPost)
  166 + message = &protocol.Message{}
  167 + auth = false
  168 + var request = struct {
  169 + UserId string `json:"userId"`
  170 + PlatformId string `json:"platformId"`
  171 + }{UserId: fmt.Sprintf("%v", uid), PlatformId: "3"} //平台id:1素+;2问题;3机会;18价值
  172 + var response = struct {
  173 + UserAuth bool `json:"userAuth"`
  174 + }{}
  175 + if data, err := req.ActionDefault(request, &message); err != nil {
  176 + log.Error(err)
  177 + return
  178 + } else {
  179 + log.Debug(req.Url, uid, string(data))
  180 + }
  181 + if message.Errno != 0 {
  182 + log.Debug("CheckUserModuleAuth :", message.Errno, message.Errmsg)
  183 + return
  184 + }
  185 + if err := json.Unmarshal(message.Data, &response); err != nil {
  186 + log.Error(err, message, string(message.Data))
  187 + return
  188 + }
  189 + auth = response.UserAuth
  190 + return
  191 +}
  192 +
164 type Request struct { 193 type Request struct {
165 HttpReq *httplib.BeegoHTTPRequest 194 HttpReq *httplib.BeegoHTTPRequest
166 Url string 195 Url string
@@ -281,6 +281,177 @@ Success: @@ -281,6 +281,177 @@ Success:
281 return 281 return
282 } 282 }
283 283
  284 +//模块认证 (登录V2版本)
  285 +func Authorize(header *protocol.RequestHeader, request *protocol.AuthorizeRequest) (rsp *protocol.AuthorizeResponse, err error) {
  286 + var ()
  287 + rsp = &protocol.AuthorizeResponse{}
  288 + var (
  289 + user *models.User
  290 + userAuth *models.UserAuth
  291 + id = request.Uid
  292 + getUserRequest *protocol.UCenterServerLoginRequest = &protocol.UCenterServerLoginRequest{
  293 + Uid: id,
  294 + Token: request.Token,
  295 + Type: 2,
  296 + CompanyId: request.Cid, //当前登录的公司编号
  297 + }
  298 + getUserResponse *protocol.UCenterGetUserResponse
  299 + message *protocol.Message
  300 + //currentCompany *models.Company
  301 + //companys []*models.Company
  302 + userCompany *models.UserCompany
  303 + company *models.Company
  304 + )
  305 + //验证 当前登录的公司是否有模块权限
  306 + if err = CheckBusinessAuth(header, request.Muid); err != nil {
  307 + log.Error(request.Muid, err)
  308 + return
  309 + }
  310 + //判断用户是否添加
  311 + user, err = models.GetUserByUcenterId(id)
  312 + if err != nil {
  313 + log.Error(err)
  314 + err = protocol.NewErrWithMessage(2002, err) //账号不存在
  315 + return
  316 + }
  317 + //判断用户所属公司是否有权限
  318 + //if companys, err = models.GetCompanyByPermission(user.Id); err != nil {
  319 + // log.Error(err)
  320 + // err = protocol.NewErrWithMessage(2002, err) //账号不存在
  321 + // return
  322 + //}
  323 + //if len(companys) == 0 {
  324 + // err = protocol.NewErrWithMessage(2002, err) //账号不存在
  325 + // return
  326 + //}
  327 +
  328 + //权限验证 判断用户公司是否存在
  329 + if userCompany, err = models.GetUserCompanyById(request.Muid); err != nil {
  330 + log.Error(err, request.Muid)
  331 + err = protocol.NewErrWithMessage(10008, err) //用户无模块权限
  332 + return
  333 + }
  334 + if userCompany.Enable != 1 {
  335 + err = protocol.NewErrWithMessage(10006, err) //用户已禁用
  336 + log.Error(err)
  337 + return
  338 + }
  339 + if company, err = models.GetCompanyById(request.Cid); err != nil {
  340 + log.Error(err, request.Cid)
  341 + err = protocol.NewErrWithMessage(10007, err) //企业已禁用
  342 + return
  343 + }
  344 + if company.Enable != 1 {
  345 + err = protocol.NewErrWithMessage(10007, err) ///企业已禁用
  346 + log.Error(err)
  347 + return
  348 + }
  349 +
  350 + if !utils.ValidVersion(header.Version, protocol.RequireVersion) {
  351 + log.Warn(fmt.Sprintf("版本不足 当前手机版本:%v 需要版本大于:%v", header.Version, protocol.RequireVersion))
  352 + err = protocol.NewCustomMessage(2002, "版本不足,请升级app") //账号不存在
  353 + return
  354 + }
  355 + //获取最后一次公司编号给统一用户中心
  356 + //if u, e := models.GetUserAuthByUserId(user.Id, protocol.DeviceType); e == nil && user.UserCenterId == id {
  357 + // if currentCompany, e = models.GetCompanyById(u.CurrentCompanyId); e == nil {
  358 + // getUserRequest.CompanyId = currentCompany.UserCenterId
  359 + // }
  360 + //}
  361 +
  362 + //从用户中心获取用户信息
  363 + if _, err = agg.RequestUserCenter(protocol.MethodServerLogin, http.MethodPost, getUserRequest, &message); err != nil {
  364 + log.Error(err)
  365 + return
  366 + }
  367 + log.Debug(fmt.Sprintf("ucenter_id:%v user_id:%v getuser response:", request.Uid, request.Muid), message.Errno, message.Errmsg)
  368 + if message.Errno == 0 && message.Errmsg == "ok" {
  369 + if err = message.Unmarshal(&getUserResponse); err != nil {
  370 + log.Error(err)
  371 + return
  372 + }
  373 + }
  374 + switch message.Errno {
  375 + case -1:
  376 + err = protocol.NewErrWithMessage(2002, err) //账号不存在
  377 + return
  378 + case 0:
  379 + goto Success
  380 + case 2002:
  381 + err = protocol.NewErrWithMessage(2002, err) //账号不存在
  382 + return
  383 + case 10001:
  384 + err = protocol.NewErrWithMessage(2002, err) //账号不存在
  385 + return
  386 + case 10003:
  387 + err = protocol.NewErrWithMessage(4140, err) //账号不存在
  388 + return
  389 + default:
  390 + log.Error(fmt.Sprintf("error_no:%v msg:%v", message.Errno, message.Errmsg))
  391 + err = protocol.NewErrWithMessage(4140, err)
  392 + return
  393 + }
  394 +
  395 +Success:
  396 + {
  397 + userAuth, err = models.GetUserAuthByUserId(user.Id, 1)
  398 + if err != nil {
  399 + if err == orm.ErrNoRows {
  400 + err = nil
  401 + userAuth = &models.UserAuth{
  402 + UserId: user.Id,
  403 + DeviceType: 1, //int8(header.DeviceType),
  404 + CurrentCompanyId: request.Muid,
  405 + CurrentUserCompanyId: request.Cid,
  406 + }
  407 + models.AddUserAuth(userAuth)
  408 + } else {
  409 + log.Error(err)
  410 + return
  411 + }
  412 + }
  413 + userAuth.AuthCode = uid.NewV1().StringNoDash()
  414 + userAuth.CurrentCompanyId = request.Cid
  415 + userAuth.CurrentUserCompanyId = request.Muid
  416 +
  417 + /*更新用户信息*/
  418 + user.CsAccount = getUserResponse.CustomerAccount
  419 + user.ImToken = getUserResponse.ImToken
  420 + user.Icon = getUserResponse.Avatar
  421 + user.NickName = getUserResponse.NickName
  422 + user.Accid = getUserResponse.Accid
  423 + user.UserCenterId = getUserResponse.Id
  424 + if err = models.UpdateUsersById(user); err != nil {
  425 + log.Error(err)
  426 + return
  427 + }
  428 + userAuth.AuthCodeExp = time.Now().Add(time.Second * protocol.TokenExpire)
  429 + if err = models.UpdateUserAuthById(userAuth); err != nil {
  430 + return
  431 + }
  432 + rsp = &protocol.AuthorizeResponse{AuthCode: userAuth.AuthCode}
  433 + }
  434 + err = protocol.NewSuccessWithMessage("登录成功")
  435 + return
  436 +}
  437 +
  438 +//检查企业平台权限
  439 +func CheckBusinessAuth(header *protocol.RequestHeader, muid int64) (err error) {
  440 + var (
  441 + hasAuth bool
  442 + authMessage *protocol.Message
  443 + )
  444 + if authMessage, hasAuth = agg.GetUserModuleAuth(muid); !hasAuth {
  445 + err = protocol.NewCustomMessage(authMessage.Errno, authMessage.Errmsg) //账号不存在
  446 + return
  447 + }
  448 + if authMessage.Errno != 0 {
  449 + err = protocol.NewCustomMessage(authMessage.Errno, authMessage.Errmsg) //账号不存在
  450 + return
  451 + }
  452 + return
  453 +}
  454 +
284 //统一用户中心登录 455 //统一用户中心登录
285 func UCenterLogin(header *protocol.RequestHeader, request *protocol.UCenterLoginRequest) (rsp *protocol.UCenterLoginResponse, err error) { 456 func UCenterLogin(header *protocol.RequestHeader, request *protocol.UCenterLoginRequest) (rsp *protocol.UCenterLoginResponse, err error) {
286 var ( 457 var (
@@ -2,7 +2,6 @@ package config @@ -2,7 +2,6 @@ package config
2 2
3 import ( 3 import (
4 "encoding/json" 4 "encoding/json"
5 - "github.com/astaxie/beego"  
6 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" 5 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
7 "opp/models" 6 "opp/models"
8 "opp/protocol" 7 "opp/protocol"
@@ -23,13 +22,3 @@ func GetConfigScore(header *protocol.RequestHeader, request *protocol.GetConfigS @@ -23,13 +22,3 @@ func GetConfigScore(header *protocol.RequestHeader, request *protocol.GetConfigS
23 } 22 }
24 return 23 return
25 } 24 }
26 -  
27 -//ServiceConfig 服务配置  
28 -func ServiceConfig(header *protocol.RequestHeader, request *protocol.ServiceConfigRequest) (rsp *protocol.ServiceConfigResponse, err error) {  
29 - var ()  
30 - rsp = &protocol.ServiceConfigResponse{  
31 - ServeConfig: new(protocol.ServeConfig),  
32 - }  
33 - rsp.ServeConfig.SetVodAddress(beego.AppConfig.String("VOD_SVR_ADDRESS"))  
34 - return  
35 -}  
@@ -69,3 +69,25 @@ func Test_FixPath(t *testing.T) { @@ -69,3 +69,25 @@ func Test_FixPath(t *testing.T) {
69 } 69 }
70 } 70 }
71 } 71 }
  72 +
  73 +func Test_UploadImage(t *testing.T) {
  74 + input := "https://upfile.asqql.com/2009pasdfasdfic2009s305985-ts/2019-12/2019123019514565723.gif"
  75 + var (
  76 + err error
  77 + auth *aliyun.CreateUploadImageResponse
  78 + vodc *vod.Client
  79 + )
  80 + vodc, err = aliyun.DefaultVodClient()
  81 + if err != nil {
  82 + t.Fatal(err)
  83 + }
  84 + auth, err = aliyun.CreateUploadImage(vodc, &aliyun.CreateUploadImageRequest{FileName: fixPath("https://mmm-opp-prd.fjmaimaimai.com/file/opp/image/20200325/1585134451_FrdwfRHEMc33JwX7FtJAY4baMyD7J6pP.jpg")})
  85 + if err != nil {
  86 + t.Fatal(err)
  87 + }
  88 + err = upload(fixPath(input), auth.UploadAddress, auth.UploadAuth)
  89 + if err != nil {
  90 + t.Fatal(err)
  91 + }
  92 + t.Log(fmt.Sprintf("%v -> %v", input, auth.ImageURL), UploadSuccess)
  93 +}
@@ -358,12 +358,11 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) @@ -358,12 +358,11 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest)
358 rsp = &protocol.UserInfoResponse{ 358 rsp = &protocol.UserInfoResponse{
359 User: protocol.User{ 359 User: protocol.User{
360 UserId: header.UserId, 360 UserId: header.UserId,
  361 + MUserId: header.UserId,
361 Name: userBaseAgg.User.NickName, 362 Name: userBaseAgg.User.NickName,
362 Phone: userBaseAgg.User.Phone, 363 Phone: userBaseAgg.User.Phone,
363 - Image: protocol.Picture{ 364 + Image: protocol.Avatar{
364 Path: userBaseAgg.User.Icon, 365 Path: userBaseAgg.User.Icon,
365 - H: 0,  
366 - W: 0,  
367 }, 366 },
368 ImToken: userBaseAgg.User.ImToken, 367 ImToken: userBaseAgg.User.ImToken,
369 CompanyId: int(companyId), 368 CompanyId: int(companyId),
@@ -475,12 +474,11 @@ func UserInfoV3(header *protocol.RequestHeader, request *protocol.UserInfoReques @@ -475,12 +474,11 @@ func UserInfoV3(header *protocol.RequestHeader, request *protocol.UserInfoReques
475 rsp = &protocol.UserInfoResponse{ 474 rsp = &protocol.UserInfoResponse{
476 User: protocol.User{ 475 User: protocol.User{
477 UserId: header.UserId, 476 UserId: header.UserId,
  477 + MUserId: header.UserId,
478 Name: userBaseAgg.User.NickName, 478 Name: userBaseAgg.User.NickName,
479 Phone: userBaseAgg.User.Phone, 479 Phone: userBaseAgg.User.Phone,
480 - Image: protocol.Picture{ 480 + Image: protocol.Avatar{
481 Path: userBaseAgg.User.Icon, 481 Path: userBaseAgg.User.Icon,
482 - H: 0,  
483 - W: 0,  
484 }, 482 },
485 ImToken: userBaseAgg.User.ImToken, 483 ImToken: userBaseAgg.User.ImToken,
486 CompanyId: int(companyId), 484 CompanyId: int(companyId),