|
|
@@ -170,12 +170,20 @@ func System_FindUserPage(c *entitys.CtrlContext) {
|
|
|
func System_GetOrgTree(c *entitys.CtrlContext) {
|
|
|
var roleRule interface{} = ""
|
|
|
rule_code := "org_tree"
|
|
|
+ var user sysmodel.SysUser
|
|
|
// 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5,如果是管理员,可以看所有,否则只看到本部门
|
|
|
user_id := c.Ctx.GetString("user_id")
|
|
|
exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
|
|
|
//如果是管理员
|
|
|
if exist {
|
|
|
user_id = ""
|
|
|
+ paramMap_i_t := map[string]interface{}{"sort": "name", "role_rule": roleRule}
|
|
|
+ result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
} else if rule_code != "" {
|
|
|
var roleRules []models.SysDataPermissionDetail
|
|
|
// 根据rule_code获取角色对应的接口规则
|
|
|
@@ -185,16 +193,36 @@ func System_GetOrgTree(c *entitys.CtrlContext) {
|
|
|
} else {
|
|
|
roleRule = sysutils.ParseRule(roleRules)
|
|
|
}
|
|
|
- }
|
|
|
- paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id, "role_rule": roleRule}
|
|
|
- result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
|
|
|
+ // 查找用户组织ID
|
|
|
+ _, err = c.Db.ID(user_id).Get(&user)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- if err == nil {
|
|
|
- c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
|
|
|
- } else {
|
|
|
- c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
- }
|
|
|
+ stplkey := fmt.Sprintf("%s_%s.tpl", "system", "get_org_tree")
|
|
|
+ paramMap_i_t := map[string]interface{}{"sort": "name", "org_id": user.OrgId, "role_rule": roleRule}
|
|
|
+ result, err := c.Db.SqlTemplateClient(stplkey, ¶mMap_i_t).Query().List()
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var org_id = ""
|
|
|
+ if roleRule.(template.HTML) == "" {
|
|
|
+ org_id = ""
|
|
|
+ } else {
|
|
|
+ org_id = user.OrgId
|
|
|
+ }
|
|
|
|
|
|
+ tree, err := sysutils.BuildTree(org_id, result)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", tree})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// _FindOrgPage
|
|
|
@@ -2426,6 +2454,95 @@ func System_GetOptionsetByCode(c *entitys.CtrlContext) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// _AddTableColUser
|
|
|
+// @Title _AddTableColUser
|
|
|
+// @Description 添加用户可见列
|
|
|
+// @Param false "用户可见列"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_AddTableColUser(c *entitys.CtrlContext) {
|
|
|
+ var paramObj0 models.SysTableColUser
|
|
|
+ c.Ctx.BindJSON(¶mObj0)
|
|
|
+
|
|
|
+ user_id := c.Ctx.GetString("user_id")
|
|
|
+
|
|
|
+ // 查询用户是否有此可见列数据
|
|
|
+ var tabelColUser sysmodel.SysTableColUser
|
|
|
+ exit, err := c.Db.Where("user_id = ? and code = ?", user_id, paramObj0.Code).Get(&tabelColUser)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果存在,更新,不存在插入
|
|
|
+ if exit {
|
|
|
+ tabelColUser.Value = paramObj0.Value
|
|
|
+ _, err = c.Db.Update(&tabelColUser)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ paramObj0.Id = sysutils.NewUUID()
|
|
|
+ paramObj0.UserId = user_id
|
|
|
+ paramObj0.DelFlag = 0
|
|
|
+ paramObj0.CreateTime = sysmodel.NowLocal()
|
|
|
+ paramObj0.LastUpdateTime = time.Now().UnixNano()
|
|
|
+ paramObj0.CreateBy = user_id
|
|
|
+ paramObj0.LastUpdateBy = user_id
|
|
|
+
|
|
|
+ _, err = c.Db.Insert(¶mObj0)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _UpdateTableColUser
|
|
|
+// @Title _UpdateTableColUser
|
|
|
+// @Description 修改用户可见列
|
|
|
+// @Param false "用户可见列"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_UpdateTableColUser(c *entitys.CtrlContext) {
|
|
|
+ var paramObj0 models.SysTableColUser
|
|
|
+ c.Ctx.BindJSON(¶mObj0)
|
|
|
+ ret := __none_func_system__(paramObj0)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _FindTableColUserpage
|
|
|
+// @Title _FindTableColUserpage
|
|
|
+// @Description 分页获取用户可见列
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_FindTableColUserpage(c *entitys.CtrlContext) {
|
|
|
+
|
|
|
+ page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
|
|
|
+ rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
|
|
|
+
|
|
|
+ code := c.Ctx.DefaultQuery("code", "")
|
|
|
+ user_id := c.Ctx.DefaultQuery("user_id", "")
|
|
|
+
|
|
|
+ paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "code": code, "user_id": user_id}
|
|
|
+ result, err := sysutils.PageSearch(c.Db, "system", "find_table_col_userpage", "sys_table_col_user", paramMap_i_t)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
// _AddDataPermission
|
|
|
// @Title _AddDataPermission
|
|
|
// @Description 添加数据权限
|
|
|
@@ -2497,6 +2614,64 @@ func System_FindDataPermissionPage(c *entitys.CtrlContext) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+// _ModifyPassword
|
|
|
+// @Title _ModifyPassword
|
|
|
+// @Description 修改密码
|
|
|
+// @Param body models.ModifyPassword true ""
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_ModifyPassword(c *entitys.CtrlContext) {
|
|
|
+ var err error
|
|
|
+ var param models.ModifyPassword
|
|
|
+ if err = c.Ctx.BindJSON(¶m); err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var errmsg string
|
|
|
+ switch {
|
|
|
+ case param.Origin == "":
|
|
|
+ errmsg = "原密码不能为空"
|
|
|
+ case param.New == "":
|
|
|
+ errmsg = "新密码不能为空"
|
|
|
+ case param.Confirm == "":
|
|
|
+ errmsg = "确认密码不能为空"
|
|
|
+ case param.Confirm != param.New:
|
|
|
+ errmsg = "两次密码不一致"
|
|
|
+ }
|
|
|
+ if errmsg != "" {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, errmsg, nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ engine := c.PlatformDbEngine
|
|
|
+ var userId = c.Ctx.GetString("user_id")
|
|
|
+ if param.UserId == "" {
|
|
|
+ param.UserId = userId
|
|
|
+ }
|
|
|
+ var user sysmodel.SysUser
|
|
|
+ _, err = engine.ID(param.UserId).Get(&user)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ password := sysutils.HashPassword(param.Origin, "")
|
|
|
+ if !strings.EqualFold(password, user.Password) {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "原密码错误", nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, err = engine.Table(user).ID(user.Id).
|
|
|
+ Update(map[string]interface{}{
|
|
|
+ "password": sysutils.HashPassword(param.New, ""),
|
|
|
+ "last_update_by": userId,
|
|
|
+ "last_update_time": time.Now().UnixNano(),
|
|
|
+ })
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "modify successfully", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func __none_func_system__(params ...interface{}) bool {
|
|
|
return true
|
|
|
}
|