123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package customer
-
- import (
- "errors"
- "net/http"
- "spaceofcheng/services/controllers"
- "spaceofcheng/services/models"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/service/customer"
- "spaceofcheng/services/utils"
- )
-
- // CustomerController 用户
- type CustomerController struct {
- serv *customer.CustomerServ
- controllers.BaseController
- }
-
- // Constructor 初始化 Controller
- // @Title Constructor
- // @Description 初始化 Controller, 系统自动调用
- func (c *CustomerController) Constructor() {
- c.serv = customer.NewCustomerServ(c.Context)
- }
-
- // CustWXList 获取客户列表
- func (c *CustomerController) CustWXList() {
- phone := c.GetString("phone")
- username := c.GetString("username")
- recommendname := c.GetString("recommendname")
- begindate := c.GetString("begindate")
- enddate := c.GetString("enddate")
- page, _ := c.GetInt("page")
- pageSize, _ := c.GetInt("pagesize")
-
- caseids := c.GetString("caseid")
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
-
- custList, err := c.serv.GetCustWithWXList(phone, username, recommendname, begindate, enddate, caseids, page, pageSize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(custList)
- }
-
- // GetCustWXByID 获取用户信息
- func (c *CustomerController) GetCustWXByID() {
- userMapRaw := c.Context.Get("userMap")
- if userMapRaw == nil {
- c.ResponseError(errors.New("获取用户信息失败, 请确认使用微信浏览"))
- }
-
- userMap := userMapRaw.(model.TaUserMapping)
-
- openid := userMap.Openid
- cust, err := c.serv.GetCustUserByOpenID(openid)
- // cust, err := c.serv.GetCustWithWXByID(custID)
- if err != nil {
- utils.LogError(err)
- c.ResponseError(errors.New("获取用户信息失败, 请重试"))
- }
-
- if cust.MapUser != "" && cust.BelongCaseStatus != models.STATUS_NORMAL {
- c.ResponseError(
- errors.New("案场状态异常!"),
- http.StatusMethodNotAllowed,
- )
- }
-
- c.ResponseJSON(map[string]interface{}{
- "customer": cust,
- })
- }
-
- // SignIn 微信登录
- func (c *CustomerController) SignIn() {
- phone := c.GetString("phone")
- captcha := c.GetString("captcha")
-
- if c.RunMode != "dev" {
- if err := utils.ValidCaptcha(phone, captcha); err != nil {
- c.ResponseError(err)
- }
-
- utils.DestoryCaptcha(phone)
- }
- userMapping := c.Context.Get("userMap").(model.TaUserMapping)
- _, err := c.serv.BindWechatUser(&userMapping, phone)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON("ok")
- }
-
- // SignUp 注册会员
- func (c *CustomerController) SignUp() {
- phone := c.GetString("phone")
- captcha := c.GetString("captcha")
- name := c.GetString("name")
- recommendCode := c.GetString("recommendCode")
-
- if phone == "" || captcha == "" || name == "" {
- c.ResponseError(errors.New("请填写完整注册信息"))
- }
-
- if c.RunMode != "dev" {
- if err := utils.ValidCaptcha(phone, captcha); err != nil {
- c.ResponseError(err)
- }
- }
-
- userMapping := c.Context.Get("userMap").(model.TaUserMapping)
-
- _, err := c.serv.BindWechatCust(&userMapping, phone, recommendCode, name)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON("ok")
- }
-
- // CustByTel 根据电话查询用户信息
- func (c *CustomerController) CustByTel() {
- tel := c.GetString(":tel")
- customer, err := c.serv.GetCustUserByTel(tel)
- if err != nil {
- utils.LogError("获取客户信息失败: " + err.Error())
- c.ResponseError(
- errors.New("获取客户信息失败"),
- http.StatusInternalServerError,
- )
- }
- c.ResponseJSON(customer)
- }
-
- // GetCustomerInfo 获取个人信息
- func (c *CustomerController) GetCustomerInfo() {
- info, err := c.serv.GetCustomerInfo()
- if err != nil {
- utils.LogError("获取客户信息失败: " + err.Error())
- c.ResponseError(err)
- }
- c.ResponseJSON(info)
- }
|