作者 yangfu

修改用户信息

  1 +### 接口完成进度
  2 +|功能|时间|接口路径|人员
  3 +|---|----|----|---
  4 +|修改手机号-校验验证码|2019.11.20|/v1/user/checkSmsCode|
  5 +|修改手机号|2019.11.20|/v1/user/changePhone|
  6 +|修改密码|2019.11.20|v1/user/changePassword|
  7 +|忘记密码|2019.11.20|v1/user/resetPassword|
1 appname = opportunity 1 appname = opportunity
2 httpport = 8080 2 httpport = 8080
3 -runmode = "${RUN_MODE||prod}" 3 +runmode = "${RUN_MODE||dev}"
4 4
5 #没设置的话 this.Ctx.Input.RequestBody 没有值 5 #没设置的话 this.Ctx.Input.RequestBody 没有值
6 copyrequestbody = true 6 copyrequestbody = true
  1 +package v1
  2 +
  3 +import (
  4 + "encoding/json"
  5 + "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
  6 + "opp/controllers"
  7 + "opp/protocol"
  8 + "opp/services/user"
  9 +)
  10 +
  11 +type UserController struct {
  12 + controllers.BaseController
  13 +}
  14 +
  15 +//CheckSmsCode
  16 +// @router /checkSmsCode [post]
  17 +func (this *UserController) CheckSmsCode() {
  18 + var msg *protocol.ResponseMessage
  19 + defer func() {
  20 + this.Resp(msg)
  21 + }()
  22 + var request *protocol.CheckSmsCodeRequest
  23 + if err := json.Unmarshal(this.ByteBody, &request); err != nil {
  24 + log.Error(err)
  25 + msg = protocol.BadRequestParam(1)
  26 + return
  27 + }
  28 + if b, m := this.Valid(request); !b {
  29 + msg = m
  30 + return
  31 + }
  32 + header := controllers.GetRequestHeader(this.Ctx)
  33 + msg = protocol.NewReturnResponse(user.CheckSmsCode(header, request))
  34 +}
  35 +
  36 +//ChangePhone
  37 +// @router /changePhone [post]
  38 +func (this *UserController) ChangePhone() {
  39 + var msg *protocol.ResponseMessage
  40 + defer func() {
  41 + this.Resp(msg)
  42 + }()
  43 + var request *protocol.ChangePhoneRequest
  44 + if err := json.Unmarshal(this.ByteBody, &request); err != nil {
  45 + log.Error(err)
  46 + msg = protocol.BadRequestParam(1)
  47 + return
  48 + }
  49 + if b, m := this.Valid(request); !b {
  50 + msg = m
  51 + return
  52 + }
  53 + header := controllers.GetRequestHeader(this.Ctx)
  54 + msg = protocol.NewReturnResponse(user.ChangePhone(header, request))
  55 +}
  56 +
  57 +//ResetPassword
  58 +// @router /resetPassword [post]
  59 +func (this *UserController) ResetPassword() {
  60 + var msg *protocol.ResponseMessage
  61 + defer func() {
  62 + this.Resp(msg)
  63 + }()
  64 + var request *protocol.ResetPasswordRequest
  65 + if err := json.Unmarshal(this.ByteBody, &request); err != nil {
  66 + log.Error(err)
  67 + msg = protocol.BadRequestParam(1)
  68 + return
  69 + }
  70 + if b, m := this.Valid(request); !b {
  71 + msg = m
  72 + return
  73 + }
  74 + header := controllers.GetRequestHeader(this.Ctx)
  75 + msg = protocol.NewReturnResponse(user.ResetPassword(header, request))
  76 +}
  77 +
  78 +//ChangePassword
  79 +// @router /changePassword [post]
  80 +func (this *UserController) ChangePassword() {
  81 + var msg *protocol.ResponseMessage
  82 + defer func() {
  83 + this.Resp(msg)
  84 + }()
  85 + var request *protocol.ChangePasswordRequest
  86 + if err := json.Unmarshal(this.ByteBody, &request); err != nil {
  87 + log.Error(err)
  88 + msg = protocol.BadRequestParam(1)
  89 + return
  90 + }
  91 + if b, m := this.Valid(request); !b {
  92 + msg = m
  93 + return
  94 + }
  95 + header := controllers.GetRequestHeader(this.Ctx)
  96 + msg = protocol.NewReturnResponse(user.ChangePassword(header, request))
  97 +}
  1 +package utils
  2 +
  3 +import (
  4 + "errors"
  5 + "fmt"
  6 + "github.com/astaxie/beego"
  7 + "github.com/astaxie/beego/orm"
  8 + "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
  9 + "reflect"
  10 +)
  11 +
  12 +// 更新指定表的几个列
  13 +func UpdateTableByMap(tabeleStruct interface{}, changeMap map[string]interface{}) error {
  14 + if reflect.TypeOf(tabeleStruct).Kind() != reflect.Ptr {
  15 + err := errors.New("UpdateTableByMap: tableStruct must ptr")
  16 + beego.Error(err)
  17 + return err
  18 + }
  19 + if len(changeMap) < 1 {
  20 + beego.Info("changeMap is nil")
  21 + return nil
  22 + }
  23 + o := orm.NewOrm()
  24 + changeColumn := make([]string, 0, len(changeMap))
  25 + for i, v := range changeMap {
  26 + changeColumn = append(changeColumn, i)
  27 + if err := SetStructValueByType(tabeleStruct, i, v); err != nil {
  28 + beego.Error(err, i, v)
  29 + return err
  30 + }
  31 + }
  32 + num, err := o.Update(tabeleStruct, changeColumn...)
  33 + if err != nil {
  34 + beego.Error(err)
  35 + return err
  36 + }
  37 + log.Info(fmt.Sprintf("UpdateTableByMap: table:%s effect records:%d column:%v", GetTableName(tabeleStruct), num, changeColumn))
  38 + return nil
  39 +}
  40 +
  41 +// 通过反射调用结构对应的TableName函数,达到返回表名的目的
  42 +func GetTableName(tableStruct interface{}) string {
  43 + m := reflect.ValueOf(tableStruct).MethodByName("TableName")
  44 + if m.IsValid() && m.Kind() == reflect.Func {
  45 + re := m.Call(nil)
  46 + for _, v := range re {
  47 + if v.IsValid() {
  48 + return v.String()
  49 + }
  50 + }
  51 + }
  52 + return "unknown"
  53 +}
  54 +
  55 +// 通用事物提交sql结构体
  56 +type SqlData struct {
  57 + Sql string
  58 + Param []interface{}
  59 +}
  60 +
  61 +func ExecuteSqlByRoll(isCheck bool, sqlSlice ...*SqlData) bool {
  62 + o := orm.NewOrm()
  63 + var someError bool = false
  64 + o.Begin()
  65 + for i := range sqlSlice {
  66 + if sqlSlice[i].Sql == "" {
  67 + continue
  68 + }
  69 + log.Info("execute sql:", sqlSlice[i])
  70 + if ret, err := o.Raw(sqlSlice[i].Sql, sqlSlice[i].Param...).Exec(); err != nil {
  71 + log.Error(err)
  72 + someError = true
  73 + } else {
  74 + num, _ := ret.RowsAffected()
  75 + log.Debug("num:", num)
  76 + if isCheck && num < 1 {
  77 + someError = true
  78 + }
  79 + }
  80 + }
  81 + if someError {
  82 + log.Error("出错,回滚事物")
  83 + o.Rollback()
  84 + return false
  85 + } else {
  86 + log.Info("成功,提交事物")
  87 + o.Commit()
  88 + return true
  89 + }
  90 + return true
  91 +}
  1 +package utils
  2 +
  3 +import (
  4 + "errors"
  5 + "reflect"
  6 +)
  7 +
  8 +// 此函数将指定的结构体成员值更新到结构体中
  9 +func SetStructValueByType(s interface{}, columnType string, columnValue interface{}) error {
  10 + columnValueV := reflect.ValueOf(columnValue)
  11 + var setValue reflect.Value
  12 + var flag = false
  13 + v := reflect.ValueOf(s)
  14 + for i, n := 0, v.Elem().NumField(); i < n; i++ {
  15 + if v.Elem().Type().Field(i).Name == columnType {
  16 + setValue = v.Elem().Field(i)
  17 + flag = true
  18 + break
  19 + }
  20 + }
  21 + if !flag {
  22 + return errors.New("struct is not type:")
  23 + } else if !setValue.CanSet() {
  24 + return errors.New("setValue.CanSet is false")
  25 + } else if setValue.Kind() != columnValueV.Kind() {
  26 + return errors.New("struct field and value of type is error")
  27 + }
  28 + switch columnValueV.Kind() {
  29 + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int, reflect.Int64:
  30 + setValue.SetInt(int64(columnValueV.Int()))
  31 + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
  32 + setValue.SetUint(uint64(columnValueV.Uint()))
  33 + case reflect.Float32, reflect.Float64:
  34 + setValue.SetFloat(float64(columnValueV.Float()))
  35 + case reflect.String:
  36 + setValue.SetString(columnValueV.String())
  37 + default:
  38 + return errors.New("columnValue err for:" + columnType)
  39 + }
  40 + return nil
  41 +}
@@ -12,7 +12,6 @@ import ( @@ -12,7 +12,6 @@ import (
12 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/websocket" 12 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/websocket"
13 "opp/controllers" 13 "opp/controllers"
14 "opp/internal/utils" 14 "opp/internal/utils"
15 - "opp/protocol"  
16 _ "opp/routers" 15 _ "opp/routers"
17 "opp/services/im" 16 "opp/services/im"
18 "time" 17 "time"
@@ -65,7 +64,6 @@ func main() { @@ -65,7 +64,6 @@ func main() {
65 log.Info("app on stop!") 64 log.Info("app on stop!")
66 }() 65 }()
67 beego.InsertFilter("/*", beego.BeforeRouter, controllers.FilterComm) 66 beego.InsertFilter("/*", beego.BeforeRouter, controllers.FilterComm)
68 - protocol.InitMessageCode()  
69 log.Info("app on start!") 67 log.Info("app on start!")
70 log.Info("Beego Run Mode:", beego.BConfig.RunMode) 68 log.Info("Beego Run Mode:", beego.BConfig.RunMode)
71 69
@@ -20,7 +20,7 @@ func (m ErrorMap) Search(code int) ErrorCode { @@ -20,7 +20,7 @@ func (m ErrorMap) Search(code int) ErrorCode {
20 Errmsg: v, 20 Errmsg: v,
21 } 21 }
22 } 22 }
23 - return ErrorCode{} 23 + return ErrorCode{Errno: code, Errmsg: "错误码未定义"}
24 } 24 }
25 25
26 //ErrorCode 统一错误结构 26 //ErrorCode 统一错误结构
1 package protocol 1 package protocol
2 2
3 var errmessge ErrorMap = map[int]string{ 3 var errmessge ErrorMap = map[int]string{
  4 + 0: "",
4 1: "系统异常", 5 1: "系统异常",
  6 + 2: "参数错误",
5 101: "clientId或clientSecret无效", 7 101: "clientId或clientSecret无效",
6 113: "签名验证失败", 8 113: "签名验证失败",
7 1009: "验证码已超时,登录失败", 9 1009: "验证码已超时,登录失败",
@@ -19,35 +21,3 @@ var errmessge ErrorMap = map[int]string{ @@ -19,35 +21,3 @@ var errmessge ErrorMap = map[int]string{
19 4141: "accessToken过期或无效,需要进行重新获取令牌", 21 4141: "accessToken过期或无效,需要进行重新获取令牌",
20 4142: "Uuid已存在,请求失败", 22 4142: "Uuid已存在,请求失败",
21 } 23 }
22 -  
23 -  
24 -func InitMessageCode() {  
25 - // messages := []struct {  
26 - // Code int  
27 - // Msg string  
28 - // }{  
29 - // {101, "clientId或clientSecret无效"},  
30 - // {113, "签名验证失败"},  
31 - // {1009, "验证码已超时,登录失败"},  
32 - // {1011, "短信验证码次数超过限制,请稍后重试"},  
33 - // {1012, "验证码错误"},  
34 -  
35 - // {2001, "请输入正确的手机号码"},  
36 - // {2002, "后台未配置账号信息,请联系管理员配置"},  
37 - // {2009, "上传的文件流为空"},  
38 - // {2020, "帐号不存在,请联系管理员"},  
39 - // {2021, "登录失败,手机号或密码错误"},  
40 - // {2025, "短信验证码验证失败"},  
41 - // {2026, "两次输入的密码不一致"},  
42 -  
43 - // {4139, "authCode无效或过期"},  
44 - // {4140, "refreshToken过期,需要重新登录授权"},  
45 - // {4141, "accessToken过期或无效,需要进行重新获取令牌"},  
46 - // {4142, "Uuid已存在,请求失败"},  
47 - // }  
48 - // for i := range messages {  
49 - // mybeego.SetMessage(messages[i].Code, messages[i].Msg)  
50 - // }  
51 - ////  
52 -  
53 -}  
@@ -2,6 +2,7 @@ package protocol @@ -2,6 +2,7 @@ package protocol
2 2
3 //短信类型 3 //短信类型
4 const ( 4 const (
  5 + SmsCode = "sms_code"
5 SmsLoginCode = "sms_login_code" 6 SmsLoginCode = "sms_login_code"
6 SmsChangeMobile = "sms_change_mobile" 7 SmsChangeMobile = "sms_change_mobile"
7 ) 8 )
@@ -12,4 +13,5 @@ type SmsInfo struct { @@ -12,4 +13,5 @@ type SmsInfo struct {
12 ErrorCount int `json:"error_count"` 13 ErrorCount int `json:"error_count"`
13 LastTime int64 `json:"last_time"` 14 LastTime int64 `json:"last_time"`
14 CreateTime int64 `json:"create_time"` 15 CreateTime int64 `json:"create_time"`
  16 + //Checked int `json:"checked"` //0:未校验证 1:已校验
15 } 17 }
  1 +package protocol
  2 +
  3 +/*修改手机号-验证旧手机验证码 */
  4 +type CheckSmsCodeRequest struct {
  5 + Captcha string `json:"captcha" valid:"Required"`
  6 +}
  7 +type CheckSmsCodeResponse struct {
  8 +}
  9 +
  10 +/*修改手机号*/
  11 +type ChangePhoneRequest struct {
  12 + Phone string `json:"phone" valid:"Required"`
  13 + Captcha string `json:"captcha" valid:"Required"`
  14 +}
  15 +type ChangePhoneResponse struct {
  16 +}
  17 +
  18 +/*ResetPassword */
  19 +type ResetPasswordRequest struct {
  20 + NewPwd string `json:"newPwd" valid:"Required"`
  21 + ConfirmPwd string `json:"confirmPwd" valid:"Required"`
  22 +}
  23 +type ResetPasswordResponse struct {
  24 +}
  25 +
  26 +/*ChangePassword */
  27 +type ChangePasswordRequest struct {
  28 + NewPwd string `json:"newPwd" valid:"Required"`
  29 + ConfirmPwd string `json:"confirmPwd" valid:"Required"`
  30 + OldPwd string `json:"oldPwd" valid:"Required"`
  31 +}
  32 +type ChangePasswordResponse struct {
  33 +}
@@ -71,4 +71,36 @@ func init() { @@ -71,4 +71,36 @@ func init() {
71 MethodParams: param.Make(), 71 MethodParams: param.Make(),
72 Params: nil}) 72 Params: nil})
73 73
  74 + beego.GlobalControllerRouter["opp/controllers/v1:UserController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:UserController"],
  75 + beego.ControllerComments{
  76 + Method: "ChangePassword",
  77 + Router: `/changePassword`,
  78 + AllowHTTPMethods: []string{"post"},
  79 + MethodParams: param.Make(),
  80 + Params: nil})
  81 +
  82 + beego.GlobalControllerRouter["opp/controllers/v1:UserController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:UserController"],
  83 + beego.ControllerComments{
  84 + Method: "ChangePhone",
  85 + Router: `/changePhone`,
  86 + AllowHTTPMethods: []string{"post"},
  87 + MethodParams: param.Make(),
  88 + Params: nil})
  89 +
  90 + beego.GlobalControllerRouter["opp/controllers/v1:UserController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:UserController"],
  91 + beego.ControllerComments{
  92 + Method: "CheckSmsCode",
  93 + Router: `/checkSmsCode`,
  94 + AllowHTTPMethods: []string{"post"},
  95 + MethodParams: param.Make(),
  96 + Params: nil})
  97 +
  98 + beego.GlobalControllerRouter["opp/controllers/v1:UserController"] = append(beego.GlobalControllerRouter["opp/controllers/v1:UserController"],
  99 + beego.ControllerComments{
  100 + Method: "ResetPassword",
  101 + Router: `/resetPassword`,
  102 + AllowHTTPMethods: []string{"post"},
  103 + MethodParams: param.Make(),
  104 + Params: nil})
  105 +
74 } 106 }
@@ -16,6 +16,7 @@ func init() { @@ -16,6 +16,7 @@ func init() {
16 beego.NSNamespace("upload", beego.NSInclude(&v1.UploadController{})), 16 beego.NSNamespace("upload", beego.NSInclude(&v1.UploadController{})),
17 beego.NSNamespace("version", beego.NSInclude(&v1.VersionController{})), 17 beego.NSNamespace("version", beego.NSInclude(&v1.VersionController{})),
18 beego.NSNamespace("commend", beego.NSInclude(&v1.CommendController{})), 18 beego.NSNamespace("commend", beego.NSInclude(&v1.CommendController{})),
  19 + beego.NSNamespace("user", beego.NSInclude(&v1.UserController{})),
19 ) 20 )
20 beego.AddNamespace(nsV1) 21 beego.AddNamespace(nsV1)
21 beego.SetStaticPath("/file/ab", beego.AppConfig.String("source_path")) 22 beego.SetStaticPath("/file/ab", beego.AppConfig.String("source_path"))
@@ -72,7 +72,7 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login @@ -72,7 +72,7 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login
72 } 72 }
73 break 73 break
74 case protocol.LoginTypeSmdcode: 74 case protocol.LoginTypeSmdcode:
75 - if result, err = CheckSmsCode(request.Phone, request.Code, protocol.SmsLoginCode); result && err == nil { 75 + if result, err = CheckSmsCode(request.Phone, request.Code, protocol.SmsCode); result && err == nil {
76 goto Success 76 goto Success
77 } else { 77 } else {
78 return 78 return
@@ -239,8 +239,9 @@ func (s *AuthService) SmsCode(request *protocol.SmsCodeRequest) (rsp *protocol.S @@ -239,8 +239,9 @@ func (s *AuthService) SmsCode(request *protocol.SmsCodeRequest) (rsp *protocol.S
239 case protocol.SmsLoginCode: 239 case protocol.SmsLoginCode:
240 case protocol.SmsChangeMobile: 240 case protocol.SmsChangeMobile:
241 default: 241 default:
242 - err = common.NewErrorWithMsg(2, "send_type error.")  
243 - return 242 + request.SendType = protocol.SmsCode
  243 + //err = common.NewErrorWithMsg(2, "send_type error.")
  244 + //return
244 } 245 }
245 key = request.SendType 246 key = request.SendType
246 //check user phone exists 247 //check user phone exists
1 package user 1 package user
2 2
3 -//import  
4 -//(  
5 -// "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/mybeego"  
6 -// "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"  
7 -// "opp/models"  
8 -//)  
9 -//  
10 -//func GetUserList(mobile string)*protocol.ResponseMessage{  
11 -// u,err:=models.GetUserByMobile(mobile)  
12 -// if err!=nil{  
13 -// log.Error(err)  
14 -// log.Error(mobile)  
15 -// return mybeego.NewErrMessage(1)  
16 -// }  
17 -// msg :=protocol.ReturnResponse(0)  
18 -// msg.Data = u  
19 -// return msg  
20 -//} 3 +import (
  4 + "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
  5 + "opp/internal/repository"
  6 + "opp/internal/utils"
  7 + "opp/models"
  8 + "opp/protocol"
  9 + "opp/services/auth"
  10 + "strings"
  11 +)
  12 +
  13 +//验证smscode
  14 +func CheckSmsCode(header *protocol.RequestHeader, request *protocol.CheckSmsCodeRequest) (rsp *protocol.CheckSmsCodeResponse, err error) {
  15 + var (
  16 + user *models.User
  17 + result bool
  18 + )
  19 + //rsp =&protocol.CheckSmsCodeResponse{}
  20 +
  21 + if user, err = repository.User.GetUsersById(header.Uid); err != nil {
  22 + log.Error(err)
  23 + return
  24 + }
  25 + if result, err = auth.CheckSmsCode(user.Phone, request.Captcha, protocol.SmsCode); err != nil {
  26 + log.Error(err)
  27 + return
  28 + }
  29 + if !result {
  30 + err = protocol.NewErrWithMessage(1012)
  31 + }
  32 + return
  33 +}
  34 +
  35 +//修改手机号
  36 +func ChangePhone(header *protocol.RequestHeader, request *protocol.ChangePhoneRequest) (rsp *protocol.ChangePhoneResponse, err error) {
  37 + var (
  38 + user *models.User
  39 + result bool
  40 + )
  41 + //rsp =&protocol.ChangePhoneResponse{}
  42 + if user, err = repository.User.GetUsersById(header.Uid); err != nil {
  43 + log.Error(err)
  44 + return
  45 + }
  46 + if result, err = auth.CheckSmsCode(user.Phone, request.Captcha, protocol.SmsCode); err != nil {
  47 + log.Error(err)
  48 + return
  49 + }
  50 + if !result {
  51 + err = protocol.NewErrWithMessage(1012)
  52 + }
  53 + err = utils.UpdateTableByMap(&models.User{Id: user.Id}, map[string]interface{}{"Phone": request.Phone})
  54 + return
  55 +}
  56 +
  57 +//重置密码
  58 +func ResetPassword(header *protocol.RequestHeader, request *protocol.ResetPasswordRequest) (rsp *protocol.ResetPasswordResponse, err error) {
  59 + var (
  60 + user *models.User
  61 + )
  62 + //rsp =&protocol.ResetPasswordResponse{}
  63 + if user, err = repository.User.GetUsersById(header.Uid); err != nil {
  64 + log.Error(err)
  65 + return
  66 + }
  67 + //TODO:未验证 校验码
  68 + if !strings.EqualFold(request.NewPwd, request.ConfirmPwd) {
  69 + err = protocol.NewErrWithMessage(2026)
  70 + }
  71 + err = utils.UpdateTableByMap(&models.User{Id: user.Id}, map[string]interface{}{"Passwd": request.NewPwd})
  72 + return
  73 +}
  74 +
  75 +//修改密码
  76 +func ChangePassword(header *protocol.RequestHeader, request *protocol.ChangePasswordRequest) (rsp *protocol.ChangePasswordResponse, err error) {
  77 + var (
  78 + user *models.User
  79 + )
  80 + //rsp =&protocol.ChangePasswordResponse{}
  81 + if user, err = repository.User.GetUsersById(header.Uid); err != nil {
  82 + log.Error(err)
  83 + return
  84 + }
  85 + if strings.EqualFold(request.OldPwd, user.Passwd) {
  86 + err = protocol.NewErrWithMessage(1)
  87 + }
  88 + if !strings.EqualFold(request.NewPwd, request.ConfirmPwd) {
  89 + err = protocol.NewErrWithMessage(2026)
  90 + }
  91 + err = utils.UpdateTableByMap(&models.User{Id: user.Id}, map[string]interface{}{"Passwd": request.NewPwd})
  92 + return
  93 +}
1 package tests 1 package tests
2 2
3 import ( 3 import (
  4 + "fmt"
4 "github.com/astaxie/beego" 5 "github.com/astaxie/beego"
5 _ "github.com/go-sql-driver/mysql" 6 _ "github.com/go-sql-driver/mysql"
6 "gitlab.fjmaimaimai.com/mmm-go/gocomm/config" 7 "gitlab.fjmaimaimai.com/mmm-go/gocomm/config"
7 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" 8 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
8 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/orm" 9 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/orm"
9 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/redis" 10 "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/redis"
10 - "opp/protocol"  
11 "os" 11 "os"
12 "path/filepath" 12 "path/filepath"
13 "runtime" 13 "runtime"
@@ -34,11 +34,18 @@ func Init() { @@ -34,11 +34,18 @@ func Init() {
34 log.Fatal(err) 34 log.Fatal(err)
35 panic(err) 35 panic(err)
36 } 36 }
  37 + dataSource := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?loc=Asia%%2FShanghai",
  38 + beego.AppConfig.String("mysql_user"),
  39 + beego.AppConfig.String("mysql_password"),
  40 + beego.AppConfig.String("mysql_host"),
  41 + beego.AppConfig.String("mysql_port"),
  42 + beego.AppConfig.String("mysql_db_name"),
  43 + )
37 orm.NewBeeormEngine(config.Mysql{ 44 orm.NewBeeormEngine(config.Mysql{
38 - DataSource: beego.AppConfig.String("data_source"), 45 + DataSource: dataSource,
39 MaxIdle: 100, 46 MaxIdle: 100,
40 MaxOpen: 100, 47 MaxOpen: 100,
41 }) 48 })
42 - protocol.InitMessageCode() 49 + //protocol.InitMessageCode()
43 }) 50 })
44 } 51 }