123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package controllers
-
- import (
- "errors"
- "h5-2019/models"
- "h5-2019/models/model"
- "h5-2019/utils"
- "net/http"
-
- "github.com/astaxie/beego"
- )
-
- // H5Controller 基础controller
- type H5Controller struct {
- dao *models.H5Model
- BaseController
- }
-
- // Constructor 初始化
- func (c *H5Controller) Constructor() {
- c.dao = new(models.H5Model)
- }
-
- // GetCustomer 获取用户及分享信息
- func (c *H5Controller) GetCustomer() {
- code := c.GetString("code")
- link := c.GetString("link")
-
- // 已经存在的用户直接从数据库拿
- userID := 0
- userSesn := c.GetSession(SESSION_USER)
- if userSesn != nil {
- userID, _ = userSesn.(int)
- }
-
- var err error
- user := new(model.TaCustomer)
- if userID > 0 {
- user, err = c.dao.GetCustomer(userID)
- if err != nil {
- beego.Error("获取用户信息失败:", err.Error())
- c.ResponseJson(errors.New("获取用户信息失败"), http.StatusInternalServerError)
- }
- } else {
- // 不存在的用户,则保存入库
- if res, err := utils.GetUserInfo(code); err != nil {
- beego.Error("获取微信用户失败:", err.Error())
- c.ResponseJson(errors.New("获取微信用户失败"), http.StatusInternalServerError)
- } else if user, err = c.dao.SaveCustomer(res.(map[string]interface{})); err != nil {
- beego.Error("校验微信用户失败:", err.Error())
- c.ResponseJson(errors.New("校验微信用户失败"), http.StatusInternalServerError)
- }
- }
-
- // 获取分享 ticket
- res, err := utils.GetJSTicket(link)
- if err != nil {
- c.ResponseJson(errors.New("微信分享设置校验失败"), http.StatusInternalServerError)
- }
-
- c.SetSession(SESSION_USER, user.Id)
-
- c.ResponseJson(map[string]interface{}{
- "user": user,
- "share": res,
- })
- }
-
- // PutShare 更新分享记录
- func (c *H5Controller) PutShare() {
- userSesn := c.GetSession(SESSION_USER)
- if userSesn == nil {
- c.ResponseJson(errors.New("记录分享失败, 请重新获取用户信息"), http.StatusUnauthorized)
- }
-
- userID, _ := userSesn.(int)
- if userID == 0 {
- c.ResponseJson(errors.New("未知错误, 请重新获取用户信息"), http.StatusUnauthorized)
- }
-
- if err := c.dao.SharePage(userID); err != nil {
- beego.Error("记录分享失败:", err.Error())
- c.ResponseJson(errors.New("记录分享失败"), http.StatusInternalServerError)
- }
-
- c.ResponseJson("ok")
- }
-
- // GetTotalShare 获取分享总数
- func (c *H5Controller) GetTotalShare() {
- total, err := c.dao.TotalShareNum()
- if err != nil {
- beego.Error("获取分享总数失败:", err.Error())
- c.ResponseJson(errors.New("获取分享总数失败"), http.StatusInternalServerError)
- }
-
- custnum, err := c.dao.TotalCustomer()
- if err != nil {
- beego.Error("获取人数失败:", err.Error())
- c.ResponseJson(errors.New("获取人数失败"), http.StatusInternalServerError)
- }
-
- c.ResponseJson(map[string]interface{}{
- "total": total,
- "custnum": custnum,
- })
- }
|