feat: 系统模块多语言
This commit is contained in:
@@ -2,11 +2,8 @@ package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"ems.agt/src/framework/constants/admin"
|
||||
"ems.agt/src/framework/constants/common"
|
||||
"ems.agt/src/framework/utils/regular"
|
||||
"ems.agt/src/modules/system/model"
|
||||
"ems.agt/src/modules/system/repository"
|
||||
)
|
||||
@@ -16,8 +13,6 @@ var NewSysUserImpl = &SysUserImpl{
|
||||
sysUserRepository: repository.NewSysUserImpl,
|
||||
sysUserRoleRepository: repository.NewSysUserRoleImpl,
|
||||
sysUserPostRepository: repository.NewSysUserPostImpl,
|
||||
sysDictDataService: NewSysDictDataImpl,
|
||||
sysConfigService: NewSysConfigImpl,
|
||||
}
|
||||
|
||||
// SysUserImpl 用户 服务层处理
|
||||
@@ -28,10 +23,6 @@ type SysUserImpl struct {
|
||||
sysUserRoleRepository repository.ISysUserRole
|
||||
// 用户与岗位服务
|
||||
sysUserPostRepository repository.ISysUserPost
|
||||
// 字典数据服务
|
||||
sysDictDataService ISysDictData
|
||||
// 参数配置服务
|
||||
sysConfigService ISysConfig
|
||||
}
|
||||
|
||||
// SelectUserPage 根据条件分页查询用户列表
|
||||
@@ -185,149 +176,3 @@ func (r *SysUserImpl) CheckUniqueEmail(email, userId string) bool {
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// ImportUser 导入用户数据
|
||||
func (r *SysUserImpl) ImportUser(rows []map[string]string, isUpdateSupport bool, operName string) string {
|
||||
// 读取默认初始密码
|
||||
initPassword := r.sysConfigService.SelectConfigValueByKey("sys.user.initPassword")
|
||||
// 读取用户性别字典数据
|
||||
dictSysUserSex := r.sysDictDataService.SelectDictDataByType("sys_user_sex")
|
||||
|
||||
// 导入记录
|
||||
successNum := 0
|
||||
failureNum := 0
|
||||
successMsgArr := []string{}
|
||||
failureMsgArr := []string{}
|
||||
mustItemArr := []string{"B", "C"}
|
||||
for _, row := range rows {
|
||||
// 检查必填列
|
||||
ownItem := true
|
||||
for _, item := range mustItemArr {
|
||||
if v, ok := row[item]; !ok || v == "" {
|
||||
ownItem = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if !ownItem {
|
||||
mustItemArrStr := strings.Join(mustItemArr, "、")
|
||||
failureNum++
|
||||
// 表格中必填列表项,
|
||||
failureMsgArr = append(failureMsgArr, fmt.Sprintf("Required list items in the form, %s}", mustItemArrStr))
|
||||
continue
|
||||
}
|
||||
|
||||
// 用户性别转值
|
||||
sysUserSex := "0"
|
||||
for _, v := range dictSysUserSex {
|
||||
if row["F"] == v.DictLabel {
|
||||
sysUserSex = v.DictValue
|
||||
break
|
||||
}
|
||||
}
|
||||
sysUserStatus := common.STATUS_NO
|
||||
if row["G"] == "Normal" {
|
||||
sysUserStatus = common.STATUS_YES
|
||||
}
|
||||
|
||||
// 构建用户实体信息
|
||||
newSysUser := model.SysUser{
|
||||
UserType: "sys",
|
||||
Password: initPassword,
|
||||
DeptID: row["H"],
|
||||
UserName: row["B"],
|
||||
NickName: row["C"],
|
||||
PhoneNumber: row["E"],
|
||||
Email: row["D"],
|
||||
Status: sysUserStatus,
|
||||
Sex: sysUserSex,
|
||||
}
|
||||
|
||||
// 检查手机号码格式并判断是否唯一
|
||||
if newSysUser.PhoneNumber != "" {
|
||||
if regular.ValidMobile(newSysUser.PhoneNumber) {
|
||||
uniquePhone := r.CheckUniquePhone(newSysUser.PhoneNumber, "")
|
||||
if !uniquePhone {
|
||||
// 用户编号:%s 手机号码 %s 已存在
|
||||
msg := fmt.Sprintf("UserID: %s PhoneNumber: %s pre-existing", row["A"], row["E"])
|
||||
failureNum++
|
||||
failureMsgArr = append(failureMsgArr, msg)
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
// 用户编号:%s 手机号码 %s 格式错误
|
||||
msg := fmt.Sprintf("UserID: %s PhoneNumber: %s formatting error", row["A"], row["E"])
|
||||
failureNum++
|
||||
failureMsgArr = append(failureMsgArr, msg)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
// 检查邮箱格式并判断是否唯一
|
||||
if newSysUser.Email != "" {
|
||||
if regular.ValidEmail(newSysUser.Email) {
|
||||
uniqueEmail := r.CheckUniqueEmail(newSysUser.Email, "")
|
||||
if !uniqueEmail {
|
||||
// 用户编号:%s 用户邮箱 %s 已存在
|
||||
msg := fmt.Sprintf("UserID: %s Email: %s pre-existing", row["A"], row["D"])
|
||||
failureNum++
|
||||
failureMsgArr = append(failureMsgArr, msg)
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
// 用户编号:%s 用户邮箱 %s 格式错误
|
||||
msg := fmt.Sprintf("UserID: %s Email: %s formatting error", row["A"], row["D"])
|
||||
failureNum++
|
||||
failureMsgArr = append(failureMsgArr, msg)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
// 验证是否存在这个用户
|
||||
userInfo := r.sysUserRepository.SelectUserByUserName(newSysUser.UserName)
|
||||
if userInfo.UserName != newSysUser.UserName {
|
||||
newSysUser.CreateBy = operName
|
||||
insertId := r.InsertUser(newSysUser)
|
||||
if insertId != "" {
|
||||
// 用户编号:%s 登录名称 %s 导入成功
|
||||
msg := fmt.Sprintf("UserID: %s UserName: %s import successfully", row["A"], row["B"])
|
||||
successNum++
|
||||
successMsgArr = append(successMsgArr, msg)
|
||||
} else {
|
||||
// 用户编号:%s 登录名称 %s 导入失败
|
||||
msg := fmt.Sprintf("UserID: %s UserName: %s import failure", row["A"], row["B"])
|
||||
failureNum++
|
||||
failureMsgArr = append(failureMsgArr, msg)
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
// 如果用户已存在 同时 是否更新支持
|
||||
if userInfo.UserName == newSysUser.UserName && isUpdateSupport {
|
||||
newSysUser.UserID = userInfo.UserID
|
||||
newSysUser.UpdateBy = operName
|
||||
rows := r.UpdateUser(newSysUser)
|
||||
if rows > 0 {
|
||||
// 用户编号:%s 登录名称 %s 更新成功
|
||||
msg := fmt.Sprintf("UserID: %s UserName: %s Update Successful", row["A"], row["B"])
|
||||
successNum++
|
||||
successMsgArr = append(successMsgArr, msg)
|
||||
} else {
|
||||
// 用户编号:%s 登录名称 %s 更新失败
|
||||
msg := fmt.Sprintf("UserID: %s UserName: %s Update Failed", row["A"], row["B"])
|
||||
failureNum++
|
||||
failureMsgArr = append(failureMsgArr, msg)
|
||||
}
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if failureNum > 0 {
|
||||
// 很抱歉,导入失败!共 %d 条数据格式不正确,错误如下:
|
||||
failureMsgArr = append([]string{fmt.Sprintf("Sorry, the import failed! A total of %d entries were formatted incorrectly with the following error:", failureNum)}, failureMsgArr...)
|
||||
return strings.Join(failureMsgArr, "<br/>")
|
||||
}
|
||||
|
||||
// 恭喜您,数据已全部导入成功!共 %d 条,数据如下:
|
||||
successMsgArr = append([]string{fmt.Sprintf("Congratulations, the data has been imported successfully! Total %d entries, data below:", successNum)}, successMsgArr...)
|
||||
return strings.Join(successMsgArr, "<br/>")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user