浏览代码

Merge branch 'master' of http://git.ycjcjy.com/default/wechat-conf

胡轶钦 6 年前
父节点
当前提交
a5a47f8657
共有 7 个文件被更改,包括 92 次插入14 次删除
  1. 45
    4
      controllers/component.go
  2. 2
    2
      controllers/sysorg/sysorg.go
  3. 7
    0
      models/wechat/wechat.go
  4. 7
    4
      routers/router.go
  5. 19
    2
      service/sysorg/sysorg.go
  6. 12
    0
      service/wechat/wechat.go
  7. 0
    2
      utils/aes.go

+ 45
- 4
controllers/component.go 查看文件

116
 			utils.LogError("获取微信信息失败")
116
 			utils.LogError("获取微信信息失败")
117
 			c.ResponseRaw([]byte("success"))
117
 			c.ResponseRaw([]byte("success"))
118
 		}
118
 		}
119
+		beego.Error(info)
119
 		authorizerInfo := (info["authorizer_info"]).(map[string]interface{})
120
 		authorizerInfo := (info["authorizer_info"]).(map[string]interface{})
120
-
121
+		beego.Error(info["authorizer_info"])
121
 		// 插入数据库
122
 		// 插入数据库
122
 		mjson, _ := json.Marshal(msg)
123
 		mjson, _ := json.Marshal(msg)
124
+		HeadImg := ""
125
+		if authorizerInfo["head_img"] != nil {
126
+			HeadImg = authorizerInfo["head_img"].(string)
127
+		}
123
 		var conf = model.SysWechatConf{
128
 		var conf = model.SysWechatConf{
124
 			Appid:             msg["AuthorizerAppid"],
129
 			Appid:             msg["AuthorizerAppid"],
125
 			AuthorizationCode: msg["AuthorizationCode"],
130
 			AuthorizationCode: msg["AuthorizationCode"],
126
 			AuthorizationInfo: string(mjson),
131
 			AuthorizationInfo: string(mjson),
127
-			WxNikeName:        authorizerInfo["nikd_name"].(string),
128
-			HeadImg:           authorizerInfo["head_img"].(string),
132
+			WxNikeName:        authorizerInfo["nick_name"].(string),
133
+			HeadImg:           HeadImg,
129
 			UserName:          authorizerInfo["user_name"].(string),
134
 			UserName:          authorizerInfo["user_name"].(string),
130
 			PrincipalName:     authorizerInfo["principal_name"].(string),
135
 			PrincipalName:     authorizerInfo["principal_name"].(string),
131
 			QrcodeUrl:         authorizerInfo["qrcode_url"].(string),
136
 			QrcodeUrl:         authorizerInfo["qrcode_url"].(string),
235
 // GetWechatMenuByAppID 根据appid获取微信详情
240
 // GetWechatMenuByAppID 根据appid获取微信详情
236
 func (c *WechatController) GetWechatInfoByAppID() {
241
 func (c *WechatController) GetWechatInfoByAppID() {
237
 	appid := c.GetString(":appid")
242
 	appid := c.GetString(":appid")
238
-	beego.Error(utils.Component)
239
 	wxclient, err := utils.Component.GetWxClient(appid)
243
 	wxclient, err := utils.Component.GetWxClient(appid)
240
 	if err != nil {
244
 	if err != nil {
241
 		utils.LogError("获取微信信息失败: " + err.Error())
245
 		utils.LogError("获取微信信息失败: " + err.Error())
248
 	}
252
 	}
249
 	c.ResponseJSON(info)
253
 	c.ResponseJSON(info)
250
 }
254
 }
255
+
256
+// GetWechatMenuByAppID 获取菜单
257
+func (c *WechatController) GetWechatMenuByAppID() {
258
+	appid := c.GetString(":appid")
259
+	wxclient, err := utils.Component.GetWxClient(appid)
260
+	if err != nil {
261
+		utils.LogError("获取微信信息失败: " + err.Error())
262
+		c.ResponseError(err)
263
+	}
264
+	menus, err := wxclient.GetMenu()
265
+	if err != nil {
266
+		utils.LogError("获取微信详情失败: " + err.Error())
267
+		c.ResponseError(err)
268
+	}
269
+	c.ResponseJSON(menus)
270
+}
271
+
272
+// GetWechatByCode 根据code获取微信信息
273
+func (c *WechatController) GetWechatByCode() {
274
+	code := c.GetString(":code")
275
+	beego.Error(code)
276
+	conf, err := c.wechatServ.GetWechatByCode(code)
277
+	if err != nil {
278
+		utils.LogError("获取微信详情失败: " + err.Error())
279
+		c.ResponseError(err)
280
+	}
281
+	beego.Error(conf)
282
+	if conf == nil || conf.ConfId == "" || conf.Status == models.STATUS_NORMAL {
283
+		c.ResponseJSON("")
284
+	}
285
+
286
+	c.ResponseJSON(map[string]string{
287
+		"ConfId":   conf.ConfId,
288
+		"NickName": conf.WxNikeName,
289
+		"HeadImg":  conf.HeadImg,
290
+	})
291
+}

+ 2
- 2
controllers/sysorg/sysorg.go 查看文件

65
 // OrgBindWechat 项目绑定微信
65
 // OrgBindWechat 项目绑定微信
66
 func (c *SysorgController) OrgBindWechat() {
66
 func (c *SysorgController) OrgBindWechat() {
67
 	orgid := c.GetString(":orgid")
67
 	orgid := c.GetString(":orgid")
68
-	code := c.GetString(":code")
68
+	confid := c.GetString(":confid")
69
 
69
 
70
-	err := c.dao.BindWechat(orgid, code)
70
+	err := c.dao.BindWechat(orgid, confid)
71
 	if err != nil {
71
 	if err != nil {
72
 		c.ResponseError(err)
72
 		c.ResponseError(err)
73
 	}
73
 	}

+ 7
- 0
models/wechat/wechat.go 查看文件

100
 	_, err := m.db.Where("authorization_code=?", code).And("status>?", models.STATUS_DEL).Get(&conf)
100
 	_, err := m.db.Where("authorization_code=?", code).And("status>?", models.STATUS_DEL).Get(&conf)
101
 	return &conf, err
101
 	return &conf, err
102
 }
102
 }
103
+
104
+// GetWechatConfByConfId 根据confid获取微信信息
105
+func (m *WechatDAO) GetWechatConfByConfId(confid string) (*model.SysWechatConf, error) {
106
+	var conf model.SysWechatConf
107
+	_, err := m.db.Where("conf_id=?", confid).And("status>?", models.STATUS_DEL).Get(&conf)
108
+	return &conf, err
109
+}

+ 7
- 4
routers/router.go 查看文件

60
 			beego.NSRouter("/sysorg", &sysorg.SysorgController{}, "put:AuthOrg"),
60
 			beego.NSRouter("/sysorg", &sysorg.SysorgController{}, "put:AuthOrg"),
61
 			beego.NSRouter("/sysorg/:orgId", &sysorg.SysorgController{}, "delete:DeleteOrg"),
61
 			beego.NSRouter("/sysorg/:orgId", &sysorg.SysorgController{}, "delete:DeleteOrg"),
62
 
62
 
63
-			beego.NSRouter("/sysorg/:orgid/:code", &sysorg.SysorgController{}, "put:OrgBindWechat"),
63
+			beego.NSRouter("/sysorg/:orgid/:confid", &sysorg.SysorgController{}, "put:OrgBindWechat"),
64
 
64
 
65
 			// 文件
65
 			// 文件
66
 			beego.NSRouter("/file", &controllers.BaseController{}, "post:FileUpload"),
66
 			beego.NSRouter("/file", &controllers.BaseController{}, "post:FileUpload"),
68
 			// 微信菜单
68
 			// 微信菜单
69
 			beego.NSRouter("/wechatmenu", &wechatmenu.MenuController{}, "get:GetMenuList"),
69
 			beego.NSRouter("/wechatmenu", &wechatmenu.MenuController{}, "get:GetMenuList"),
70
 			beego.NSRouter("/wechatmenu", &wechatmenu.MenuController{}, "put:RefreshMenu"),
70
 			beego.NSRouter("/wechatmenu", &wechatmenu.MenuController{}, "put:RefreshMenu"),
71
+
72
+			// 微信
73
+			beego.NSRouter("/authcode", &controllers.WechatController{}, "get:GetPreAuthCode"),
74
+			beego.NSRouter("/wechat/conf/:code", &controllers.WechatController{}, "get:GetWechatByCode"),
71
 		),
75
 		),
72
 
76
 
73
 		beego.NSRouter("/ticket", &controllers.WechatController{}, "post:ComponentPush"),
77
 		beego.NSRouter("/ticket", &controllers.WechatController{}, "post:ComponentPush"),
74
 		beego.NSRouter("/ticket", &controllers.WechatController{}, "get:ComponentPush"),
78
 		beego.NSRouter("/ticket", &controllers.WechatController{}, "get:ComponentPush"),
75
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "get:WxReceive"),
79
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "get:WxReceive"),
76
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "post:WxReceive"),
80
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "post:WxReceive"),
77
-		beego.NSRouter("/authcode", &controllers.WechatController{}, "get:GetPreAuthCode"),
78
-		beego.NSRouter("/wechatinfo/:appid", &controllers.WechatController{}, "get:GetWechatInfoByAppID"),
79
-		// beego.NSRouter("/menu/:appid", &controllers.WechatController{}, "get:GetWechatMenuByAppID"),
81
+		// beego.NSRouter("/wechatinfo/:appid", &controllers.WechatController{}, "get:GetWechatInfoByAppID"),
82
+		beego.NSRouter("/menu/:appid", &controllers.WechatController{}, "get:GetWechatMenuByAppID"),
80
 	)
83
 	)
81
 
84
 
82
 	beego.AddNamespace(ns)
85
 	beego.AddNamespace(ns)

+ 19
- 2
service/sysorg/sysorg.go 查看文件

2
 
2
 
3
 import (
3
 import (
4
 	"errors"
4
 	"errors"
5
+	"time"
6
+	"wechat-conf/models"
5
 	"wechat-conf/models/model"
7
 	"wechat-conf/models/model"
6
 	"wechat-conf/models/sysorg"
8
 	"wechat-conf/models/sysorg"
7
 	"wechat-conf/models/sysuser"
9
 	"wechat-conf/models/sysuser"
96
 }
98
 }
97
 
99
 
98
 // BindWechat 绑定微信
100
 // BindWechat 绑定微信
99
-func (s *SysorgServ) BindWechat(orgid, code string) error {
100
-	wechatConf, err := s.wechatdao.GetWxByCode(code)
101
+func (s *SysorgServ) BindWechat(orgid, confid string) error {
102
+	wechatConf, err := s.wechatdao.GetWechatConfByConfId(confid)
101
 	if err != nil {
103
 	if err != nil {
102
 		return err
104
 		return err
103
 	}
105
 	}
110
 		WechatName: wechatConf.WxNikeName,
112
 		WechatName: wechatConf.WxNikeName,
111
 	}
113
 	}
112
 	err = s.dao.AuthOrg(orginfo)
114
 	err = s.dao.AuthOrg(orginfo)
115
+
116
+	if err != nil {
117
+		return err
118
+	}
119
+	// 更新微信信息
120
+	var conf = model.SysWechatConf{
121
+		BindDate: time.Now().Local(),
122
+		Status:   models.STATUS_NORMAL,
123
+		ConfId:   wechatConf.ConfId,
124
+	}
125
+
126
+	err = s.wechatdao.UpdateWechatConf(conf, []string{
127
+		"bind_date",
128
+		"status",
129
+	})
113
 	return err
130
 	return err
114
 }
131
 }

+ 12
- 0
service/wechat/wechat.go 查看文件

46
 	err := s.dao.UpdateComponentTicket(conf)
46
 	err := s.dao.UpdateComponentTicket(conf)
47
 	return err
47
 	return err
48
 }
48
 }
49
+
50
+// GetWechatByCode 根据code获取微信信息
51
+func (s *WechatServ) GetWechatByCode(code string) (*model.SysWechatConf, error) {
52
+	conf, err := s.dao.GetWxByCode(code)
53
+	return conf, err
54
+}
55
+
56
+// GetWechatConfByConfId 根据confid获取微信信息
57
+func (s *WechatServ) GetWechatConfByConfId(confid string) (*model.SysWechatConf, error) {
58
+	conf, err := s.dao.GetWechatConfByConfId(confid)
59
+	return conf, err
60
+}

+ 0
- 2
utils/aes.go 查看文件

46
 	blockSize := block.BlockSize()
46
 	blockSize := block.BlockSize()
47
 	blockMode := cipher.NewCBCDecrypter(block, key[:blockSize])
47
 	blockMode := cipher.NewCBCDecrypter(block, key[:blockSize])
48
 	origData := make([]byte, len(crypted))
48
 	origData := make([]byte, len(crypted))
49
-	beego.Error(origData)
50
-	beego.Error(crypted)
51
 	blockMode.CryptBlocks(origData, crypted)
49
 	blockMode.CryptBlocks(origData, crypted)
52
 	origData = PKCS7UnPadding(origData)
50
 	origData = PKCS7UnPadding(origData)
53
 	return origData, nil
51
 	return origData, nil