|
@@ -4,34 +4,38 @@ import (
|
|
|
"context"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
+ "kpt-pasture/model"
|
|
|
+ "kpt-pasture/util"
|
|
|
+ "net/http"
|
|
|
+ "sort"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
+
|
|
|
+ pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
|
|
|
operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
|
|
|
"gitee.com/xuyiping_admin/pkg/jwt"
|
|
|
"gitee.com/xuyiping_admin/pkg/logger/zaplog"
|
|
|
"gitee.com/xuyiping_admin/pkg/tool"
|
|
|
"gitee.com/xuyiping_admin/pkg/xerr"
|
|
|
"go.uber.org/zap"
|
|
|
- "kpt-pasture/model"
|
|
|
- "net/http"
|
|
|
- "sort"
|
|
|
- "strings"
|
|
|
- "time"
|
|
|
|
|
|
"gorm.io/gorm"
|
|
|
)
|
|
|
|
|
|
const CurrentUserName = "userName"
|
|
|
|
|
|
-// Auth 用户登录
|
|
|
-func (s *StoreEntry) Auth(ctx context.Context, auth *operationPb.UserAuthData) (*operationPb.SystemToken, error) {
|
|
|
+// Login 用户登录
|
|
|
+func (s *StoreEntry) Login(ctx context.Context, req *pasturePb.SearchUserRequest) (*pasturePb.SystemUserResponse, error) {
|
|
|
systemUser := &model.SystemUser{}
|
|
|
-
|
|
|
- if err := s.DB.Where("name = ?", auth.UserName).Find(systemUser).Error; err != nil {
|
|
|
+ if err := s.DB.Where("name = ?", req.Name).Find(systemUser).Error; err != nil {
|
|
|
return nil, xerr.WithStack(err)
|
|
|
}
|
|
|
- if systemUser.Password != auth.Password {
|
|
|
- return nil, xerr.Customf("密码错误,来自用户:%s", auth.UserName)
|
|
|
+
|
|
|
+ if systemUser.Password != req.Password {
|
|
|
+ return nil, xerr.Customf("密码错误,来自用户:%s", req.Name)
|
|
|
}
|
|
|
- if systemUser.IsShow == operationPb.IsShow_NO {
|
|
|
+
|
|
|
+ if systemUser.IsShow == pasturePb.IsShow_No {
|
|
|
return nil, xerr.Customf("该账号已被禁用,请联系管理员")
|
|
|
}
|
|
|
|
|
@@ -44,10 +48,18 @@ func (s *StoreEntry) Auth(ctx context.Context, auth *operationPb.UserAuthData) (
|
|
|
return nil, xerr.Custom("获取token错误")
|
|
|
}
|
|
|
|
|
|
- return &operationPb.SystemToken{
|
|
|
- Code: http.StatusOK,
|
|
|
- Msg: "ok",
|
|
|
- Data: &operationPb.TokenData{Token: token},
|
|
|
+ expires := time.Now().Add(time.Duration(s.Cfg.JwtExpireTime) * time.Second).Format(util.LayoutTime)
|
|
|
+ return &pasturePb.SystemUserResponse{
|
|
|
+ Code: http.StatusOK,
|
|
|
+ Message: "ok",
|
|
|
+ Data: &pasturePb.SystemUserData{
|
|
|
+ AccessToken: token,
|
|
|
+ Expires: expires,
|
|
|
+ RefreshToken: expires,
|
|
|
+ Username: systemUser.Name,
|
|
|
+ Roles: []string{"admin"},
|
|
|
+ Avatar: systemUser.Avatar,
|
|
|
+ },
|
|
|
}, nil
|
|
|
}
|
|
|
|
|
@@ -82,17 +94,16 @@ func (s *StoreEntry) GetUserInfo(ctx context.Context, token string) (*operationP
|
|
|
|
|
|
// CreateSystemUser 创建系统用户
|
|
|
func (s *StoreEntry) CreateSystemUser(ctx context.Context, req *operationPb.AddSystemUser) error {
|
|
|
-
|
|
|
systemUsers := &model.SystemUser{
|
|
|
- Name: req.Name,
|
|
|
- EmployeeName: req.EmployeeName,
|
|
|
+ Name: req.Name,
|
|
|
+ /*EmployeeName: req.EmployeeName,
|
|
|
Phone: req.Phone,
|
|
|
Password: tool.Md5String(model.InitManagerPassword),
|
|
|
CreateUser: req.CreateUser,
|
|
|
IsShow: operationPb.IsShow_OK,
|
|
|
- IsDelete: operationPb.IsShow_OK,
|
|
|
+ IsDelete: operationPb.IsShow_OK,*/
|
|
|
}
|
|
|
- systemUsers.SystemUserRoleFormat(req)
|
|
|
+ /*systemUsers.SystemUserRoleFormat(req)*/
|
|
|
|
|
|
if err := s.DB.Create(systemUsers).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
@@ -154,11 +165,11 @@ func (s *StoreEntry) EditSystemUser(ctx context.Context, req *operationPb.AddSys
|
|
|
}
|
|
|
|
|
|
updateData := &model.SystemUser{
|
|
|
- Name: req.Name,
|
|
|
- EmployeeName: req.EmployeeName,
|
|
|
- Phone: req.Phone,
|
|
|
+ Name: req.Name,
|
|
|
+ /*EmployeeName: req.EmployeeName,
|
|
|
+ Phone: req.Phone,*/
|
|
|
}
|
|
|
- updateData.SystemUserRoleFormat(req)
|
|
|
+ /*updateData.SystemUserRoleFormat(req)*/
|
|
|
|
|
|
if err := s.DB.Model(new(model.SystemUser)).Omit("is_show", "password", "is_delete", "create_user").
|
|
|
Where("id = ?", systemUser.Id).
|
|
@@ -257,8 +268,8 @@ func (s *StoreEntry) GetSystemUserPermissions(ctx context.Context, token string)
|
|
|
}
|
|
|
return nil, xerr.WithStack(err)
|
|
|
}
|
|
|
- roleIds := systemUser.SystemUserRoleToSlice()
|
|
|
-
|
|
|
+ /*roleIds := systemUser.SystemUserRoleToSlice()*/
|
|
|
+ roleIds := []int64{1}
|
|
|
// 获取用户角色数据
|
|
|
systemRoles := make([]*model.SystemRole, 0)
|
|
|
if err = s.DB.Where("is_show = ?", operationPb.IsShow_OK).Find(&systemRoles, roleIds).Error; err != nil {
|
|
@@ -656,3 +667,60 @@ func (s *StoreEntry) DeleteSystemMenu(ctx context.Context, menuId int64) error {
|
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
+
|
|
|
+func (s *StoreEntry) SearchSystemDeptList(ctx context.Context, req *pasturePb.SearchDeptRequest) (*pasturePb.SearchDeptResponse, error) {
|
|
|
+ deptList := make([]*model.SystemDept, 0)
|
|
|
+ var count int64 = 0
|
|
|
+ pref := s.DB.Model(new(model.SystemDept)).Where("is_delete = ?", operationPb.IsShow_OK)
|
|
|
+ if req.Name != "" {
|
|
|
+ pref.Where("name like ?", fmt.Sprintf("%s%s%s", "%", req.Name, "%"))
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.IsShow > 0 {
|
|
|
+ pref.Where("is_show = ?", req.IsShow)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err := pref.Order("sort desc").Count(&count).Limit(int(req.Pagination.PageSize)).Offset(int(req.Pagination.PageOffset)).
|
|
|
+ Find(&deptList).Error; err != nil {
|
|
|
+ return nil, xerr.WithStack(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ return &pasturePb.SearchDeptResponse{
|
|
|
+ Code: http.StatusOK,
|
|
|
+ Message: "ok",
|
|
|
+ Data: model.SystemDeptSlice(deptList).ToPB(),
|
|
|
+ }, nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s *StoreEntry) SystemDepDelete(ctx context.Context, id int64) error {
|
|
|
+ dept := &model.SystemDept{Id: id}
|
|
|
+ if err := s.DB.First(dept).Error; err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ if dept.IsShow == pasturePb.IsShow_No {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ if err := s.DB.Model(dept).Update("is_delete", operationPb.IsShow_NO).Error; err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s *StoreEntry) SystemDeptCreateOrUpdate(ctx context.Context, req *pasturePb.SearchDeptRequest) error {
|
|
|
+ if err := s.DB.Model(&model.SystemDept{}).Where(map[string]interface{}{
|
|
|
+ "id": req.Id,
|
|
|
+ }).Assign(map[string]interface{}{
|
|
|
+ "name": req.Name,
|
|
|
+ "sort": req.Sort,
|
|
|
+ "parent_id": req.ParentId,
|
|
|
+ "remarks": req.Remarks,
|
|
|
+ "is_delete": operationPb.IsShow_OK,
|
|
|
+ "is_show": req.IsShow,
|
|
|
+ "dept_type": pasturePb.Depth_Department,
|
|
|
+ "leader_id": req.LeaderId,
|
|
|
+ }).FirstOrCreate(&model.SystemDept{}).Error; err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|