123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- package user
-
- import (
- "errors"
- "net/http"
- "spaceofcheng/services/controllers"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/models/system"
- "spaceofcheng/services/service"
- "spaceofcheng/services/utils"
- "time"
-
- "github.com/yl10/kit/guid"
- )
-
- // UserController 用户
- type UserController struct {
- dao *service.UserServ
- controllers.BaseController
- }
-
- // Constructor 初始化 Controller
- // @Title Constructor
- // @Description 初始化 Controller, 系统自动调用
- func (c *UserController) Constructor() {
- c.dao = service.NewUserServ(c.Context)
- }
-
- // UpdatePassword 更新用户密码
- func (c *UserController) UpdatePassword() {
- oriPasswd := c.GetString("oriPasswd")
- newPasswd := c.GetString("newPasswd")
-
- user := c.Context.Get("user").(model.SysUser)
- err := c.dao.UpdatePassword(oriPasswd, newPasswd, &user)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("ok")
- }
-
- // ResetPassword 重置用户密码
- func (c *UserController) ResetPassword() {
- userid := c.GetString("userid")
- err := c.dao.ResetPassword(userid)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("OK")
- }
-
- // GetUserByID 获取用户信息
- func (c *UserController) GetUserByID() {
- userid := c.GetString(":userid")
- user, err := c.dao.GetUserByID(userid)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(user)
- }
-
- // GetUserList 获取用户列表
- func (c *UserController) GetUserList() {
- userName := c.GetString("username")
- typeID := c.GetString("typeid")
- caseids := c.GetString("caseid")
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- page, _ := c.GetInt("page")
- pageSize, _ := c.GetInt("pagesize")
- userList, err := c.dao.GetUserList(userName, typeID, caseids, page, pageSize)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(userList)
- }
-
- // GetUserTypes 获取用户类型
- func (c *UserController) GetUserTypes() {
- // cases := c.Context.Get("cases").([]model.SysUserCase)
- // caseIDs := c.GetCaseIDs(cases)
- org := c.Context.Get("org").(model.SysOrg)
- usertypes, err := c.dao.GetUserTypes(org.OrgId)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(usertypes)
- }
-
- // UserMapping 用户映射
- func (c *UserController) UserMapping() {
- userMapping := model.TaUserMapping{}
- if err := c.ParseForm(&userMapping); err != nil {
- c.ResponseError(err)
- }
- err := c.dao.UserMapping(userMapping)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("操作成功!")
- }
-
- // SaveUser 保存用户信息
- func (c *UserController) SaveUser() {
- user := system.SysUserForm{}
- if err := c.ParseForm(&user); err != nil {
- c.ResponseError(err)
- }
-
- info, err := c.dao.SaveUser(user)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(info)
- }
-
- // DelUser 删除用户信息
- func (c *UserController) DelUser() {
- userid := c.GetString(":userid")
- err := c.dao.DelUser(userid)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("删除成功!")
- }
-
- // UserMapRole 用户角色保存
- func (c *UserController) UserMapRole() {
- userid := c.GetString("userid")
- roles := c.GetString("roles")
- err := c.dao.SaveUserRole(userid, roles)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("操作成功!")
- }
-
- // GetUserCustomer 我的推荐客户
- func (c *UserController) GetUserCustomer() {
- customer := c.Context.Get("customer").(model.TaCustomer)
- if customer.UserId == "" {
- c.ResponseError(errors.New("无法获取推荐客户信息!"))
- }
- page, _ := c.GetInt("page")
- pageSize, _ := c.GetInt("pagesize")
- isrecommend := c.GetString("isrecommend")
- key := c.GetString("key")
- customers, err := c.dao.GetUserCustomer(customer.UserId, isrecommend, key, page, pageSize)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(customers)
- }
-
- // SignIn 用户登录
- func (c *UserController) SignIn() {
- userName := c.GetString("username")
- userPassword := c.GetString("password")
- token := c.GetString("token")
- doRemember, _ := c.GetInt("doremember")
-
- if token != "" {
- tokenMap, err := utils.PareseToken(token)
- if err != nil {
- utils.LogError("解析用户 token 失败: " + err.Error())
-
- c.ResponseError(
- errors.New("登录失败, 用户名或者密码不正确"),
- http.StatusBadRequest,
- )
- }
-
- userName = tokenMap["user"].(string)
- userPassword = tokenMap["password"].(string)
- }
-
- user, err := c.dao.CheckUserSignIn(userName, userPassword)
- if err != nil {
- utils.LogError("用户登录失败: " + err.Error())
- c.ResponseError(
- errors.New("登录失败, 用户名或者密码不正确"),
- http.StatusBadRequest,
- )
- }
-
- // 成功之后, 设置用户
- c.Context.Set("user", *user)
- c.Context.Set("token-batch", guid.NewGUIDString())
-
- if token == "" && doRemember != 0 {
- var err error
- token, err = utils.CreateToken(map[string]interface{}{
- "user": userName,
- "password": userPassword,
- "exp": time.Now().Local().Add(7 * 24 * time.Hour), // 有效期是 7 天
- })
-
- if err != nil {
- utils.LogError("生成 用户登录 token 失败: " + err.Error())
- }
- }
-
- c.ResponseJSON(map[string]interface{}{
- token: token,
- })
- }
-
- // SignOut 用户登出
- func (c *UserController) SignOut() {
- user := c.Context.Get("user").(model.SysUser)
- c.Context.Set("user", nil)
- c.SetTokenExipre(user.UserId)
- c.ResponseJSON("ok")
- }
-
- // GetEnvVars 获取当前用户相关
- func (c *UserController) GetEnvVars() {
- vars, err := c.dao.GetCurrentEnvVars()
- if err != nil {
- c.ResponseError(
- err,
- http.StatusInternalServerError,
- )
- }
-
- c.ResponseJSON(vars)
- }
-
- // GetUserRole 获取用户角色
- func (c *UserController) GetUserRole() {
- userid := c.GetString("userid")
- roles, err := c.dao.GetUserRoles(userid)
- if err != nil {
- c.ResponseError(
- err,
- http.StatusInternalServerError,
- )
- }
- c.ResponseJSON(roles)
- }
-
- // GetUserByTel 根据电话获取用户信息
- func (c *UserController) GetUserByTel() {
- tel := c.GetString(":tel")
- user, err := c.dao.GetUserByTel(tel)
- if err != nil {
- utils.LogError("获取用户信息失败: " + err.Error())
- c.ResponseError(
- errors.New("获取用户信息失败"),
- http.StatusInternalServerError,
- )
- }
- c.ResponseJSON(user)
- }
-
- // GetForbidUsers 获取所有禁止人员信息
- func (c *UserController) GetForbidUsers() {
- // caseid := c.GetString("caseid")
- // if caseid == "" {
- // c.ResponseError(errors.New("没有案场信息"))
- // }
- users, err := c.dao.GetForbidUsers()
- if err != nil {
- utils.LogError("获取禁止人员信息失败: " + err.Error())
- c.ResponseError(errors.New("获取禁止人员信息失败"))
- }
- c.ResponseJSON(users)
- }
-
- // SaveForbidUser 保存禁止人员信息
- func (c *UserController) SaveForbidUser() {
- userid := c.GetString(":userid")
- forbidtype := c.GetString(":type")
- err := c.dao.SaveForbidUser(userid, forbidtype)
- if err != nil {
- utils.LogError("保存禁止人员信息失败: " + err.Error())
- c.ResponseError(errors.New("保存禁止人员信息失败"))
- }
- c.ResponseJSON("操作成功")
- }
-
- // OpenForbidUser 开启禁止人员
- func (c *UserController) OpenForbidUser() {
- userid := c.GetString(":userid")
- forbidtype := c.GetString(":type")
- err := c.dao.OpenForbidUser(userid, forbidtype)
- if err != nil {
- utils.LogError("开启禁止人员信息失败: " + err.Error())
- c.ResponseError(errors.New("开启禁止人员信息失败"))
- }
- c.ResponseJSON("操作成功")
- }
-
- // GetCaseUserByType 根据用户类型获取用户信息
- func (c *UserController) GetCaseUserByType() {
- usertype := c.GetString(":type")
- users, err := c.dao.GetCaseUserByType(usertype)
- if err != nil {
- utils.LogError("获取人员信息失败: " + err.Error())
- c.ResponseError(errors.New("获取人员信息失败"))
- }
- c.ResponseJSON(users)
- }
-
- // GetCaseUserByID 根据id获取用户详情
- func (c *UserController) GetCaseUserByID() {
- userid := c.GetString(":id")
- userdetail, err := c.dao.GetCaseUserByUserID(userid)
- if err != nil {
- utils.LogError("获取人员信息失败: " + err.Error())
- c.ResponseError(errors.New("获取人员信息失败"))
- }
- c.ResponseJSON(userdetail)
- }
-
- func (c *UserController) GetMyRecommendCode() {
- user := c.Context.Get("user").(model.SysUser)
- if user.UserId == "" {
- utils.LogError("获取人员推荐码失败")
- c.ResponseError(errors.New("获取人员推荐码失败"))
- }
- c.ResponseJSON(user.RecommendCode)
- }
|