From 4a23356a5840b624c81dda44b0028ed8fc3656cc Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 13 十月 2023 11:14:25 +0800
Subject: [PATCH] 销售线索简单数据权限

---
 api/v1/user.go |  723 +++++++++++++++++++++++++++----------------------------
 1 files changed, 353 insertions(+), 370 deletions(-)

diff --git a/api/v1/user.go b/api/v1/user.go
index 9cd713c..76fecfc 100644
--- a/api/v1/user.go
+++ b/api/v1/user.go
@@ -1,381 +1,364 @@
 package v1
 
-import (
-	"aps_crm/conf"
-	"aps_crm/constvar"
-	"aps_crm/model"
-	"aps_crm/model/request"
-	"aps_crm/model/response"
-	"aps_crm/pkg/contextx"
-	"aps_crm/pkg/ecode"
-	"aps_crm/pkg/encrypt"
-	"aps_crm/pkg/logx"
-	"aps_crm/pkg/snowflake"
-	"aps_crm/utils"
-	"fmt"
-	"github.com/gin-gonic/gin"
-	"github.com/go-redis/redis/v8"
-	"github.com/mojocn/base64Captcha"
-)
-
-// 褰撳紑鍚鏈嶅姟鍣ㄩ儴缃叉椂锛屾浛鎹笅闈㈢殑閰嶇疆锛屼娇鐢╮edis鍏变韩瀛樺偍楠岃瘉鐮�
-// var store = captcha.NewDefaultRedisStore()
-var store = base64Captcha.DefaultMemStore
-
-// Login
 //
-//	@Tags		Base
-//	@Summary	鐢ㄦ埛鐧诲綍
-//	@Produce	application/json
-//	@Param		object	body		request.Login									true	"鏌ヨ鍙傛暟"
-//	@Success	200		{object}	contextx.Response{data=response.LoginResponse}	"鎴愬姛"
-//	@Router		/api/base/login [post]
-func (slf *BaseApi) Login(c *gin.Context) {
-	var params request.Login
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-
-	// 鍒ゆ柇楠岃瘉鐮佹槸鍚﹀紑鍚�
-	key := c.ClientIP()
-	//openCaptcha := conf.Conf.Captcha.OpenCaptcha               // 鏄惁寮�鍚槻鏆存鏁�
-	//openCaptchaTimeOut := conf.Conf.Captcha.OpenCaptchaTimeOut // 缂撳瓨瓒呮椂鏃堕棿
-	//v, ok := constvar.BlackCache.Get(key)
-	//if !ok {
-	//	constvar.BlackCache.Set(key, 1, time.Second*time.Duration(openCaptchaTimeOut))
-	//}
-
-	//var oc = openCaptcha == 0 || convertx.InterfaceToInt(v) > openCaptcha // 0 琛ㄧず姣忔鐧诲綍閮介渶瑕侀獙璇佺爜 鎴栬�呭綋鍓嶆鏁板凡瓒呰繃闃叉毚娆℃暟
-
-	//if !oc || store.Verify(params.CaptchaId, params.Captcha, true) {
-	u := &model.User{Username: params.Username, Password: params.Password}
-	user, errCode := userService.Login(u)
-	if errCode != ecode.OK {
-		logx.Errorf("鐧婚檰澶辫触! 鐢ㄦ埛鍚嶄笉瀛樺湪鎴栬�呭瘑鐮侀敊璇�! errCode:%v", errCode)
-		// 楠岃瘉鐮佹鏁�+1
-		_ = constvar.BlackCache.Increment(key, 1)
-		ctx.Fail(errCode)
-		return
-	}
-	// 璧嬪�艰彍鍗旾D鍒楄〃
-	//user.MenuIds, _ = menuService.GetUserMenuIds(user.UUID, user.UserType)
-	slf.TokenNext(ctx, *user)
-	return
-	//}
-
-	// 楠岃瘉鐮佹鏁�+1
-	//_ = constvar.BlackCache.Increment(key, 1)
-	//ctx.Fail(ecode.CaptchaErr)
-}
-
-// TokenNext 鐧诲綍浠ュ悗绛惧彂jwt
-func (slf *BaseApi) TokenNext(ctx *contextx.Context, user model.User) {
-	logx.Infof("TokenNext user:%+v", user)
-	j := &utils.JWT{SigningKey: []byte(conf.Conf.JWT.SigningKey)} // 鍞竴绛惧悕
-	claims := j.CreateClaims(request.BaseClaims{
-		UserId:      user.UUID,
-		Username:    user.Username,
-		UserType:    user.UserType,
-		AuthorityId: user.AuthorityId,
-	})
-	token, err := j.CreateToken(claims)
-	if err != nil {
-		logx.Errorf("鍒涘缓token澶辫触! err:%v", err)
-		ctx.Fail(ecode.CreateTokenErr)
-		return
-	}
-	if !conf.Conf.System.UseMultipoint { // 涓嶅厑璁稿鐐圭櫥褰�
-		ctx.OkWithDetailed(response.LoginResponse{
-			User:  user,
-			Token: token,
-			//ExpiresAt: claims.StandardClaims.ExpiresAt * 1000,
-		})
-		return
-	}
-
-	if jwtStr, err := jwtService.GetRedisJWT(user.Username); err == redis.Nil { // redis鏃燡WT鏁版嵁
-		if err := jwtService.SetRedisJWT(token, user.Username); err != nil {
-			logx.Errorf("璁剧疆鐧诲綍鐘舵�佸け璐�! err:%v", err)
-			ctx.Fail(ecode.RedisErr)
-			return
-		}
-		ctx.OkWithDetailed(response.LoginResponse{
-			User:  user,
-			Token: token,
-			//ExpiresAt: claims.StandardClaims.ExpiresAt * 1000,
-		})
-	} else if err != nil { // redis鑾峰彇JWT鎶ラ敊
-		logx.Errorf("璁剧疆鐧诲綍鐘舵�佸け璐�! err:%v", err)
-		ctx.Fail(ecode.RedisErr)
-	} else { // 鎴愬姛鑾峰彇redis鐨凧WT锛屾棫鐨勪綔搴�
-		var blackJWT model.JwtBlacklist
-		blackJWT.Jwt = jwtStr
-		if err := jwtService.JsonInBlacklist(blackJWT); err != nil {
-			ctx.Fail(ecode.DBErr)
-			return
-		}
-		if err := jwtService.SetRedisJWT(token, user.Username); err != nil {
-			ctx.Fail(ecode.RedisErr)
-			return
-		}
-		ctx.OkWithDetailed(response.LoginResponse{
-			User:  user,
-			Token: token,
-			//ExpiresAt: claims.StandardClaims.ExpiresAt * 1000,
-		})
-	}
-}
-
-// Register
+//// 褰撳紑鍚鏈嶅姟鍣ㄩ儴缃叉椂锛屾浛鎹笅闈㈢殑閰嶇疆锛屼娇鐢╮edis鍏变韩瀛樺偍楠岃瘉鐮�
+//// var store = captcha.NewDefaultRedisStore()
+//var store = base64Captcha.DefaultMemStore
 //
-//	@Tags		User
-//	@Summary	娉ㄥ唽璐﹀彿
-//	@Produce	application/json
-//	@Param		object	body		request.Register								true	"鏌ヨ鍙傛暟"
-//	@Success	200		{object}	contextx.Response{data=response.UserResponse}	"鎴愬姛"
-//	@Router		/api/user/register [post]
-func (slf *BaseApi) Register(c *gin.Context) {
-	var params request.Register
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-
-	userInfo := utils.GetUserInfo(c)
-	if len(userInfo.UserId) <= 0 {
-		ctx.Fail(ecode.UnknownErr)
-		return
-	}
-
-	if len(params.Username) == 0 || len(params.Password) == 0 || len(params.NickName) == 0 || params.AuthorityId == 0 || len(params.RePassword) == 0 || params.DepartmentId == 0 {
-		ctx.Fail(ecode.ParamsErr)
-		return
-	}
-
-	var userId = fmt.Sprintf("u%v", snowflake.GenerateId())
-	var passWord = encrypt.BcryptHash(params.Password)
-	var userType constvar.UserType
-
-	user := &model.User{UUID: userId, Username: params.Username, UserType: userType, NickName: params.NickName, Password: passWord, HeaderImg: params.HeaderImg, Phone: params.Phone, Email: params.Email, DepartmentId: params.DepartmentId, AuthorityId: params.AuthorityId}
-	userReturn, errCode := userService.Register(user)
-	if errCode != ecode.OK {
-		ctx.Fail(errCode)
-		return
-	}
-
-	//if user.UserType == constvar.UserTypePrimary { // 涓昏处鎴峰垱寤哄搴旂殑鏁版嵁搴撶敤鎴峰拰鎺掔▼鏁版嵁搴�
-	//	err := model.NewMysql().CreateDatabase(user.Username)
-	//	if err != nil {
-	//		ctx.Fail(ecode.CreateDatabaseErr)
-	//		return
-	//	}
-	//
-	//	defaultPwd := fmt.Sprintf("%v@Basic2023", user.Username)
-	//	err = model.NewMysql().CreateUser(user.Username, defaultPwd, user.Username)
-	//	if err != nil {
-	//		ctx.Fail(ecode.CreateDatabaseUserErr)
-	//		return
-	//	}
-	//}
-
-	ctx.OkWithDetailed(response.UserResponse{User: *userReturn})
-}
-
-// ChangePassword
+//// Login
+////
+////	@Tags		Base
+////	@Summary	鐢ㄦ埛鐧诲綍
+////	@Produce	application/json
+////	@Param		object	body		request.Login									true	"鏌ヨ鍙傛暟"
+////	@Success	200		{object}	contextx.Response{data=response.LoginResponse}	"鎴愬姛"
+////	@Router		/api/base/login [post]
+//func (slf *BaseApi) Login(c *gin.Context) {
+//	var params request.Login
+//	ctx, ok := contextx.NewContext(c, &params)
+//	if !ok {
+//		return
+//	}
 //
-//	@Tags		User
-//	@Summary	鐢ㄦ埛淇敼瀵嗙爜
-//	@Produce	application/json
-//	@Param		object	body		request.ChangePasswordReq	true	"鏌ヨ鍙傛暟"
-//	@Success	200		{object}	contextx.Response{}			"鎴愬姛"
-//	@Router		/api/user/changePassword [post]
-func (slf *BaseApi) ChangePassword(c *gin.Context) {
-	var params request.ChangePasswordReq
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-
-	u := &model.User{UUID: utils.GetUserID(c), Password: params.Password}
-	_, errCode := userService.ChangePassword(u, params.NewPassword)
-	if errCode != ecode.OK {
-		ctx.Fail(errCode)
-		return
-	}
-	ctx.Ok()
-}
-
-// GetUserList
+//	// 鍒ゆ柇楠岃瘉鐮佹槸鍚﹀紑鍚�
+//	key := c.ClientIP()
+//	//openCaptcha := conf.Conf.Captcha.OpenCaptcha               // 鏄惁寮�鍚槻鏆存鏁�
+//	//openCaptchaTimeOut := conf.Conf.Captcha.OpenCaptchaTimeOut // 缂撳瓨瓒呮椂鏃堕棿
+//	//v, ok := constvar.BlackCache.Get(key)
+//	//if !ok {
+//	//	constvar.BlackCache.Set(key, 1, time.Second*time.Duration(openCaptchaTimeOut))
+//	//}
 //
-//	@Tags		User
-//	@Summary	鍒嗛〉鑾峰彇鐢ㄦ埛鍒楄〃(涓嶄紶鍒嗛〉鍙傛暟锛岃幏鍙栧叏閮�)
-//	@Produce	application/json
-//	@Param		object	body		request.GetUserList							true	"鏌ヨ鍙傛暟"
-//	@Success	200		{object}	contextx.Response{data=response.PageResult}	"鎴愬姛"
-//	@Router		/api/user/getUserList [post]
-func (slf *BaseApi) GetUserList(c *gin.Context) {
-	var params request.GetUserList
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-
-	userInfo := utils.GetUserInfo(c)
-	if len(userInfo.UserId) <= 0 || len(userInfo.ParentId) == 0 {
-		ctx.Fail(ecode.UnknownErr)
-		return
-	}
-
-	ctx.OkWithDetailed(response.PageResult{
-		Page:     params.Page,
-		PageSize: params.PageSize,
-	})
-}
-
-// DeleteUser
+//	//var oc = openCaptcha == 0 || convertx.InterfaceToInt(v) > openCaptcha // 0 琛ㄧず姣忔鐧诲綍閮介渶瑕侀獙璇佺爜 鎴栬�呭綋鍓嶆鏁板凡瓒呰繃闃叉毚娆℃暟
 //
-//	@Tags		User
-//	@Summary	鍒犻櫎鐢ㄦ埛
-//	@Produce	application/json
-//	@Param		object	body		request.DeleteUserReq	true	"鏌ヨ鍙傛暟"
-//	@Success	200		{object}	contextx.Response{}		"鎴愬姛"
-//	@Router		/api/user/deleteUser [delete]
-func (slf *BaseApi) DeleteUser(c *gin.Context) {
-	var params request.DeleteUserReq
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-
-	if len(params.UserId) <= 0 {
-		ctx.Fail(ecode.ParamsErr)
-		return
-	}
-
-	userInfo := utils.GetUserInfo(c)
-	if userInfo.UserType != constvar.UserTypePrimary || userInfo.UserId == params.UserId {
-		ctx.Fail(ecode.NoPowerErr)
-		return
-	}
-
-	err := userService.DeleteUser(params.UserId)
-	if err != nil {
-		logx.Errorf("鍒犻櫎澶辫触! err:%v", err)
-		ctx.Fail(ecode.DBErr)
-		return
-	}
-	ctx.Ok()
-}
-
-// SetUserInfo
+//	//if !oc || store.Verify(params.CaptchaId, params.Captcha, true) {
+//	u := &model.User{Username: params.Username, Password: params.Password}
+//	user, errCode := userService.Login(u)
+//	if errCode != ecode.OK {
+//		logx.Errorf("鐧婚檰澶辫触! 鐢ㄦ埛鍚嶄笉瀛樺湪鎴栬�呭瘑鐮侀敊璇�! errCode:%v", errCode)
+//		// 楠岃瘉鐮佹鏁�+1
+//		_ = constvar.BlackCache.Increment(key, 1)
+//		ctx.Fail(errCode)
+//		return
+//	}
+//	// 璧嬪�艰彍鍗旾D鍒楄〃
+//	//user.MenuIds, _ = menuService.GetUserMenuIds(user.UUID, user.UserType)
+//	slf.TokenNext(ctx, *user)
+//	return
+//	//}
 //
-//	@Tags		User
-//	@Summary	璁剧疆鐢ㄦ埛淇℃伅
-//	@Produce	application/json
-//	@Param		object	body		request.ChangeUserInfo	true	"鏌ヨ鍙傛暟"
-//	@Success	200		{object}	contextx.Response{}		"鎴愬姛"
-//	@Router		/api/user/setUserInfo [post]
-func (slf *BaseApi) SetUserInfo(c *gin.Context) {
-	var params request.ChangeUserInfo
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-
-	err := userService.SetUserInfo(model.User{
-		UUID:      params.ID,
-		NickName:  params.NickName,
-		HeaderImg: params.HeaderImg,
-		Phone:     params.Phone,
-		Email:     params.Email,
-		Pos:       params.Pos,
-	})
-	if err != nil {
-		logx.Errorf("璁剧疆澶辫触! err:%v", err)
-		ctx.Fail(ecode.DBErr)
-		return
-	}
-	ctx.Ok()
-}
-
-// SetSelfInfo
+//	// 楠岃瘉鐮佹鏁�+1
+//	//_ = constvar.BlackCache.Increment(key, 1)
+//	//ctx.Fail(ecode.CaptchaErr)
+//}
 //
-//	@Tags		User
-//	@Summary	璁剧疆鐢ㄦ埛淇℃伅
-//	@Produce	application/json
-//	@Param		object	body		request.ChangeUserInfo	true	"鏌ヨ鍙傛暟"
-//	@Success	200		{object}	contextx.Response{}		"鎴愬姛"
-//	@Router		/api/user/setSelfInfo [post]
-func (slf *BaseApi) SetSelfInfo(c *gin.Context) {
-	var params request.ChangeUserInfo
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-
-	params.ID = utils.GetUserID(c)
-	err := userService.SetUserInfo(model.User{
-		UUID:      params.ID,
-		NickName:  params.NickName,
-		HeaderImg: params.HeaderImg,
-		Phone:     params.Phone,
-		Email:     params.Email,
-		Pos:       params.Pos,
-	})
-	if err != nil {
-		logx.Errorf("璁剧疆澶辫触! err:%v", err)
-		ctx.Fail(ecode.DBErr)
-		return
-	}
-	ctx.Ok()
-}
-
-// GetUserInfo
+//// TokenNext 鐧诲綍浠ュ悗绛惧彂jwt
+//func (slf *BaseApi) TokenNext(ctx *contextx.Context, user model.User) {
+//	logx.Infof("TokenNext user:%+v", user)
+//	j := &utils.JWT{SigningKey: []byte(conf.Conf.JWT.SigningKey)} // 鍞竴绛惧悕
+//	claims := j.CreateClaims(request.BaseClaims{
+//		UserId:      user.UUID,
+//		Username:    user.Username,
+//		UserType:    user.UserType,
+//		AuthorityId: user.AuthorityId,
+//	})
+//	token, err := j.CreateToken(claims)
+//	if err != nil {
+//		logx.Errorf("鍒涘缓token澶辫触! err:%v", err)
+//		ctx.Fail(ecode.CreateTokenErr)
+//		return
+//	}
+//	if !conf.Conf.System.UseMultipoint { // 涓嶅厑璁稿鐐圭櫥褰�
+//		ctx.OkWithDetailed(response.LoginResponse{
+//			User:  user,
+//			Token: token,
+//			//ExpiresAt: claims.StandardClaims.ExpiresAt * 1000,
+//		})
+//		return
+//	}
 //
-//	@Tags		User
-//	@Summary	鑾峰彇鑷韩淇℃伅
-//	@Produce	application/json
-//	@Success	200	{object}	contextx.Response{}	"鎴愬姛"
-//	@Router		/api/user/getUserInfo [post]
-func (slf *BaseApi) GetUserInfo(c *gin.Context) {
-	ctx, ok := contextx.NewContext(c, nil)
-	if !ok {
-		return
-	}
-
-	id := utils.GetUserID(c)
-	ReqUser, err := userService.GetUserInfo(id)
-	if err != nil {
-		logx.Errorf("鑾峰彇澶辫触! err:%v", err)
-		ctx.Fail(ecode.DBErr)
-		return
-	}
-	ctx.OkWithDetailed(response.UserResponse{
-		User: *ReqUser,
-	})
-}
-
-// ResetPassword
+//	if jwtStr, err := jwtService.GetRedisJWT(user.Username); err == redis.Nil { // redis鏃燡WT鏁版嵁
+//		if err := jwtService.SetRedisJWT(token, user.Username); err != nil {
+//			logx.Errorf("璁剧疆鐧诲綍鐘舵�佸け璐�! err:%v", err)
+//			ctx.Fail(ecode.RedisErr)
+//			return
+//		}
+//		ctx.OkWithDetailed(response.LoginResponse{
+//			User:  user,
+//			Token: token,
+//			//ExpiresAt: claims.StandardClaims.ExpiresAt * 1000,
+//		})
+//	} else if err != nil { // redis鑾峰彇JWT鎶ラ敊
+//		logx.Errorf("璁剧疆鐧诲綍鐘舵�佸け璐�! err:%v", err)
+//		ctx.Fail(ecode.RedisErr)
+//	} else { // 鎴愬姛鑾峰彇redis鐨凧WT锛屾棫鐨勪綔搴�
+//		var blackJWT model.JwtBlacklist
+//		blackJWT.Jwt = jwtStr
+//		if err := jwtService.JsonInBlacklist(blackJWT); err != nil {
+//			ctx.Fail(ecode.DBErr)
+//			return
+//		}
+//		if err := jwtService.SetRedisJWT(token, user.Username); err != nil {
+//			ctx.Fail(ecode.RedisErr)
+//			return
+//		}
+//		ctx.OkWithDetailed(response.LoginResponse{
+//			User:  user,
+//			Token: token,
+//			//ExpiresAt: claims.StandardClaims.ExpiresAt * 1000,
+//		})
+//	}
+//}
 //
-//	@Tags		User
-//	@Summary	閲嶇疆鐢ㄦ埛瀵嗙爜
-//	@Produce	application/json
-//	@Param		object	body		model.User			true	"鏌ヨ鍙傛暟"
-//	@Success	200		{object}	contextx.Response{}	"鎴愬姛"
-//	@Router		/api/user/resetPassword [post]
-func (slf *BaseApi) ResetPassword(c *gin.Context) {
-	var params model.User
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-
-	err := userService.ResetPassword(params.UUID)
-	if err != nil {
-		logx.Errorf("閲嶇疆澶辫触! err:%v", err)
-		ctx.Fail(ecode.DBErr)
-		return
-	}
-	ctx.Ok()
-}
+//// Register
+////
+////	@Tags		User
+////	@Summary	娉ㄥ唽璐﹀彿
+////	@Produce	application/json
+////	@Param		object	body		request.Register								true	"鏌ヨ鍙傛暟"
+////	@Success	200		{object}	contextx.Response{data=response.UserResponse}	"鎴愬姛"
+////	@Router		/api/user/register [post]
+//func (slf *BaseApi) Register(c *gin.Context) {
+//	var params request.Register
+//	ctx, ok := contextx.NewContext(c, &params)
+//	if !ok {
+//		return
+//	}
+//
+//	userInfo := utils.GetUserInfo(c)
+//	if len(userInfo.UserId) <= 0 {
+//		ctx.Fail(ecode.UnknownErr)
+//		return
+//	}
+//
+//	if len(params.Username) == 0 || len(params.Password) == 0 || len(params.NickName) == 0 || params.AuthorityId == 0 || len(params.RePassword) == 0 || params.DepartmentId == 0 {
+//		ctx.Fail(ecode.ParamsErr)
+//		return
+//	}
+//
+//	var userId = fmt.Sprintf("u%v", snowflake.GenerateId())
+//	var passWord = encrypt.BcryptHash(params.Password)
+//	var userType constvar.UserType
+//
+//	user := &model.User{UUID: userId, Username: params.Username, UserType: userType, NickName: params.NickName, Password: passWord, HeaderImg: params.HeaderImg, Phone: params.Phone, Email: params.Email, DepartmentId: params.DepartmentId, AuthorityId: params.AuthorityId}
+//	userReturn, errCode := userService.Register(user)
+//	if errCode != ecode.OK {
+//		ctx.Fail(errCode)
+//		return
+//	}
+//
+//	//if user.UserType == constvar.UserTypePrimary { // 涓昏处鎴峰垱寤哄搴旂殑鏁版嵁搴撶敤鎴峰拰鎺掔▼鏁版嵁搴�
+//	//	err := model.NewMysql().CreateDatabase(user.Username)
+//	//	if err != nil {
+//	//		ctx.Fail(ecode.CreateDatabaseErr)
+//	//		return
+//	//	}
+//	//
+//	//	defaultPwd := fmt.Sprintf("%v@Basic2023", user.Username)
+//	//	err = model.NewMysql().CreateUser(user.Username, defaultPwd, user.Username)
+//	//	if err != nil {
+//	//		ctx.Fail(ecode.CreateDatabaseUserErr)
+//	//		return
+//	//	}
+//	//}
+//
+//	ctx.OkWithDetailed(response.UserResponse{User: *userReturn})
+//}
+//
+//// ChangePassword
+////
+////	@Tags		User
+////	@Summary	鐢ㄦ埛淇敼瀵嗙爜
+////	@Produce	application/json
+////	@Param		object	body		request.ChangePasswordReq	true	"鏌ヨ鍙傛暟"
+////	@Success	200		{object}	contextx.Response{}			"鎴愬姛"
+////	@Router		/api/user/changePassword [post]
+//func (slf *BaseApi) ChangePassword(c *gin.Context) {
+//	var params request.ChangePasswordReq
+//	ctx, ok := contextx.NewContext(c, &params)
+//	if !ok {
+//		return
+//	}
+//
+//	u := &model.User{UUID: utils.GetUserID(c), Password: params.Password}
+//	_, errCode := userService.ChangePassword(u, params.NewPassword)
+//	if errCode != ecode.OK {
+//		ctx.Fail(errCode)
+//		return
+//	}
+//	ctx.Ok()
+//}
+//
+//// GetUserList
+////
+////	@Tags		User
+////	@Summary	鍒嗛〉鑾峰彇鐢ㄦ埛鍒楄〃(涓嶄紶鍒嗛〉鍙傛暟锛岃幏鍙栧叏閮�)
+////	@Produce	application/json
+////	@Param		object	body		request.GetUserList							true	"鏌ヨ鍙傛暟"
+////	@Success	200		{object}	contextx.Response{data=response.PageResult}	"鎴愬姛"
+////	@Router		/api/user/getUserList [post]
+//func (slf *BaseApi) GetUserList(c *gin.Context) {
+//	var params request.GetUserList
+//	ctx, ok := contextx.NewContext(c, &params)
+//	if !ok {
+//		return
+//	}
+//
+//	userInfo := utils.GetUserInfo(c)
+//	if len(userInfo.UserId) <= 0 || len(userInfo.ParentId) == 0 {
+//		ctx.Fail(ecode.UnknownErr)
+//		return
+//	}
+//
+//	ctx.OkWithDetailed(response.PageResult{
+//		Page:     params.Page,
+//		PageSize: params.PageSize,
+//	})
+//}
+//
+//// DeleteUser
+////
+////	@Tags		User
+////	@Summary	鍒犻櫎鐢ㄦ埛
+////	@Produce	application/json
+////	@Param		object	body		request.DeleteUserReq	true	"鏌ヨ鍙傛暟"
+////	@Success	200		{object}	contextx.Response{}		"鎴愬姛"
+////	@Router		/api/user/deleteUser [delete]
+//func (slf *BaseApi) DeleteUser(c *gin.Context) {
+//	var params request.DeleteUserReq
+//	ctx, ok := contextx.NewContext(c, &params)
+//	if !ok {
+//		return
+//	}
+//
+//	if len(params.UserId) <= 0 {
+//		ctx.Fail(ecode.ParamsErr)
+//		return
+//	}
+//
+//	userInfo := utils.GetUserInfo(c)
+//	if userInfo.UserType != constvar.UserTypePrimary || userInfo.UserId == params.UserId {
+//		ctx.Fail(ecode.NoPowerErr)
+//		return
+//	}
+//
+//	err := userService.DeleteUser(params.UserId)
+//	if err != nil {
+//		logx.Errorf("鍒犻櫎澶辫触! err:%v", err)
+//		ctx.Fail(ecode.DBErr)
+//		return
+//	}
+//	ctx.Ok()
+//}
+//
+//// SetUserInfo
+////
+////	@Tags		User
+////	@Summary	璁剧疆鐢ㄦ埛淇℃伅
+////	@Produce	application/json
+////	@Param		object	body		request.ChangeUserInfo	true	"鏌ヨ鍙傛暟"
+////	@Success	200		{object}	contextx.Response{}		"鎴愬姛"
+////	@Router		/api/user/setUserInfo [post]
+//func (slf *BaseApi) SetUserInfo(c *gin.Context) {
+//	var params request.ChangeUserInfo
+//	ctx, ok := contextx.NewContext(c, &params)
+//	if !ok {
+//		return
+//	}
+//
+//	err := userService.SetUserInfo(model.User{
+//		UUID:      params.ID,
+//		NickName:  params.NickName,
+//		HeaderImg: params.HeaderImg,
+//		Phone:     params.Phone,
+//		Email:     params.Email,
+//		Pos:       params.Pos,
+//	})
+//	if err != nil {
+//		logx.Errorf("璁剧疆澶辫触! err:%v", err)
+//		ctx.Fail(ecode.DBErr)
+//		return
+//	}
+//	ctx.Ok()
+//}
+//
+//// SetSelfInfo
+////
+////	@Tags		User
+////	@Summary	璁剧疆鐢ㄦ埛淇℃伅
+////	@Produce	application/json
+////	@Param		object	body		request.ChangeUserInfo	true	"鏌ヨ鍙傛暟"
+////	@Success	200		{object}	contextx.Response{}		"鎴愬姛"
+////	@Router		/api/user/setSelfInfo [post]
+//func (slf *BaseApi) SetSelfInfo(c *gin.Context) {
+//	var params request.ChangeUserInfo
+//	ctx, ok := contextx.NewContext(c, &params)
+//	if !ok {
+//		return
+//	}
+//
+//	params.ID = utils.GetUserID(c)
+//	err := userService.SetUserInfo(model.User{
+//		UUID:      params.ID,
+//		NickName:  params.NickName,
+//		HeaderImg: params.HeaderImg,
+//		Phone:     params.Phone,
+//		Email:     params.Email,
+//		Pos:       params.Pos,
+//	})
+//	if err != nil {
+//		logx.Errorf("璁剧疆澶辫触! err:%v", err)
+//		ctx.Fail(ecode.DBErr)
+//		return
+//	}
+//	ctx.Ok()
+//}
+//
+//// GetUserInfo
+////
+////	@Tags		User
+////	@Summary	鑾峰彇鑷韩淇℃伅
+////	@Produce	application/json
+////	@Success	200	{object}	contextx.Response{}	"鎴愬姛"
+////	@Router		/api/user/getUserInfo [post]
+//func (slf *BaseApi) GetUserInfo(c *gin.Context) {
+//	ctx, ok := contextx.NewContext(c, nil)
+//	if !ok {
+//		return
+//	}
+//
+//	id := utils.GetUserID(c)
+//	ReqUser, err := userService.GetUserInfo(id)
+//	if err != nil {
+//		logx.Errorf("鑾峰彇澶辫触! err:%v", err)
+//		ctx.Fail(ecode.DBErr)
+//		return
+//	}
+//	ctx.OkWithDetailed(response.UserResponse{
+//		User: *ReqUser,
+//	})
+//}
+//
+//// ResetPassword
+////
+////	@Tags		User
+////	@Summary	閲嶇疆鐢ㄦ埛瀵嗙爜
+////	@Produce	application/json
+////	@Param		object	body		model.User			true	"鏌ヨ鍙傛暟"
+////	@Success	200		{object}	contextx.Response{}	"鎴愬姛"
+////	@Router		/api/user/resetPassword [post]
+//func (slf *BaseApi) ResetPassword(c *gin.Context) {
+//	var params model.User
+//	ctx, ok := contextx.NewContext(c, &params)
+//	if !ok {
+//		return
+//	}
+//
+//	err := userService.ResetPassword(params.UUID)
+//	if err != nil {
+//		logx.Errorf("閲嶇疆澶辫触! err:%v", err)
+//		ctx.Fail(ecode.DBErr)
+//		return
+//	}
+//	ctx.Ok()
+//}

--
Gitblit v1.8.0