|
@@ -3,13 +3,14 @@ package gn
|
|
|
import (
|
|
|
"eta_gn/eta_bridge/controller/resp"
|
|
|
gnLogic "eta_gn/eta_bridge/logic/gn"
|
|
|
+ "eta_gn/eta_bridge/models/gn"
|
|
|
+ gnRequest "eta_gn/eta_bridge/models/request/gn"
|
|
|
+ "eta_gn/eta_bridge/utils"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
+ "strings"
|
|
|
"sync"
|
|
|
)
|
|
|
|
|
|
-// XiangyuController 象屿指标
|
|
|
-//type XiangyuController struct{}
|
|
|
-
|
|
|
// 同步用户锁,防止重复同步,不管是全量还是增量,都是同一时间只能一个同步
|
|
|
var lockSyncUser sync.Mutex
|
|
|
|
|
@@ -32,23 +33,175 @@ func (gc *GuoNengController) SyncUser(c *gin.Context) {
|
|
|
resp.Ok("同步成功", c)
|
|
|
}
|
|
|
|
|
|
-// PullUser
|
|
|
-// @Description: 增量同步用户
|
|
|
-// @author: Roc
|
|
|
-// @receiver xc
|
|
|
-// @datetime 2024-01-23 17:13:07
|
|
|
-// @param c *gin.Context
|
|
|
-//func (xc *GuoNengController) PullUser(c *gin.Context) {
|
|
|
-// lockSyncUser.Lock()
|
|
|
-// defer func() {
|
|
|
-// lockSyncUser.Unlock()
|
|
|
-// }()
|
|
|
-// err := xiangyu.PullUser()
|
|
|
-// if err != nil {
|
|
|
-// resp.FailData("同步失败", err.Error(), c)
|
|
|
-// return
|
|
|
-// }
|
|
|
-// resp.Ok("同步成功", c)
|
|
|
-//
|
|
|
-// return
|
|
|
-//}
|
|
|
+// AddAccount 创建新账号
|
|
|
+func (gc *GuoNengController) AddAccount(c *gin.Context) {
|
|
|
+ var req gnRequest.AddAccountReq
|
|
|
+ if e := c.Bind(&req); e != nil {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "参数解析失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserId == nil || (req.UserId != nil && *req.UserId == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "登录账号标识不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.FirstName == nil || (req.FirstName != nil && *req.FirstName == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "姓名不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.LastName == nil || (req.LastName != nil && *req.LastName == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "姓名不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserStatus == nil || (req.UserStatus != nil && *req.UserStatus == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "账号状态不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Password == nil || (req.Password != nil && *req.Password == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "密码不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserStatus != nil {
|
|
|
+ statsMap := map[string]int{gn.UserStatusActive: 1, gn.UserStatusDisable: 0}
|
|
|
+ if _, ok := statsMap[*req.UserStatus]; !ok {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "枚举值异常: UserStatus", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新增账号
|
|
|
+ errCode, errMsg, e := gnLogic.AddAccount(req.UserEntity)
|
|
|
+ if e != nil {
|
|
|
+ resp.Gn4AResultData(false, errCode, errMsg, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.Gn4AResultData(true, utils.Gn4AErrCodeSuccess, "操作成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+// ModifyAccount 修改账号信息
|
|
|
+func (gc *GuoNengController) ModifyAccount(c *gin.Context) {
|
|
|
+ var req gnRequest.ModifyAccountReq
|
|
|
+ if e := c.Bind(&req); e != nil {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "参数解析失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserId == nil || (req.UserId != nil && *req.UserId == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "登录账号标识不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.FirstName == nil || (req.FirstName != nil && *req.FirstName == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "姓名不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.LastName == nil || (req.LastName != nil && *req.LastName == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "姓名不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserStatus == nil || (req.UserStatus != nil && *req.UserStatus == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "账号状态不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Password == nil || (req.Password != nil && *req.Password == "") {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "密码不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserStatus != nil {
|
|
|
+ statsMap := map[string]int{gn.UserStatusActive: 1, gn.UserStatusDisable: 0}
|
|
|
+ if _, ok := statsMap[*req.UserStatus]; !ok {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "枚举值异常: UserStatus", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新增账号
|
|
|
+ errCode, errMsg, e := gnLogic.ModifyAccount(req.UserEntity)
|
|
|
+ if e != nil {
|
|
|
+ resp.Gn4AResultData(false, errCode, errMsg, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.Gn4AResultData(true, utils.Gn4AErrCodeSuccess, "操作成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+// DeleteAccount 删除账号
|
|
|
+func (gc *GuoNengController) DeleteAccount(c *gin.Context) {
|
|
|
+ var req gnRequest.DeleteAccountReq
|
|
|
+ if e := c.Bind(&req); e != nil {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "参数解析失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserId == "" {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "登录账号标识不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ errCode, errMsg, e := gnLogic.DeleteAccount(req.UserId)
|
|
|
+ if e != nil {
|
|
|
+ resp.Gn4AResultData(false, errCode, errMsg, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.Gn4AResultData(true, utils.Gn4AErrCodeSuccess, "操作成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+// SuspendAccount 禁用账号
|
|
|
+func (gc *GuoNengController) SuspendAccount(c *gin.Context) {
|
|
|
+ var req gnRequest.SuspendAccountReq
|
|
|
+ if e := c.Bind(&req); e != nil {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "参数解析失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserId == "" {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "登录账号标识不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ errCode, errMsg, e := gnLogic.SuspendAccount(req.UserId)
|
|
|
+ if e != nil {
|
|
|
+ resp.Gn4AResultData(false, errCode, errMsg, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.Gn4AResultData(true, utils.Gn4AErrCodeSuccess, "操作成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+// RestoreAccount 禁用账号
|
|
|
+func (gc *GuoNengController) RestoreAccount(c *gin.Context) {
|
|
|
+ var req gnRequest.RestoreAccountReq
|
|
|
+ if e := c.Bind(&req); e != nil {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "参数解析失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserId == "" {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "登录账号标识不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ errCode, errMsg, e := gnLogic.RestoreAccount(req.UserId)
|
|
|
+ if e != nil {
|
|
|
+ resp.Gn4AResultData(false, errCode, errMsg, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.Gn4AResultData(true, utils.Gn4AErrCodeSuccess, "操作成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+// ChangePassword 修改密码
|
|
|
+func (gc *GuoNengController) ChangePassword(c *gin.Context) {
|
|
|
+ var req gnRequest.ChangePasswordReq
|
|
|
+ if e := c.Bind(&req); e != nil {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "参数解析失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.UserId == "" {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "登录账号标识不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.NewPassword = strings.TrimSpace(req.NewPassword)
|
|
|
+ if req.NewPassword == "" {
|
|
|
+ resp.Gn4AResultData(false, utils.Gn4AErrCode08, "新密码不可为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ errCode, errMsg, e := gnLogic.ChangePassword(req.UserId, req.NewPassword)
|
|
|
+ if e != nil {
|
|
|
+ resp.Gn4AResultData(false, errCode, errMsg, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.Gn4AResultData(true, utils.Gn4AErrCodeSuccess, "操作成功", c)
|
|
|
+}
|