459242451@qq.com 3 years ago
parent
commit
077c0df989

+ 38 - 40
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java

@@ -1,11 +1,11 @@
 package com.ruoyi.common.core.controller;
 
 import cn.hutool.core.convert.Convert;
-import cn.hutool.http.HttpRequest;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.GatewayUser;
-import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -22,39 +22,34 @@ import java.net.URLDecoder;
  *
  * @author ruoyi
  */
-public class BaseController
-{
+public class BaseController {
     protected final Logger logger = LoggerFactory.getLogger(this.getClass());
 
     /**
      * 返回成功
      */
-    public AjaxResult<Void> success()
-    {
+    public AjaxResult<Void> success() {
         return AjaxResult.success();
     }
 
     /**
      * 返回失败消息
      */
-    public AjaxResult<Void> error()
-    {
+    public AjaxResult<Void> error() {
         return AjaxResult.error();
     }
 
     /**
      * 返回成功消息
      */
-    public AjaxResult<Void> success(String message)
-    {
+    public AjaxResult<Void> success(String message) {
         return AjaxResult.success(message);
     }
 
     /**
      * 返回失败消息
      */
-    public AjaxResult<Void> error(String message)
-    {
+    public AjaxResult<Void> error(String message) {
         return AjaxResult.error(message);
     }
 
@@ -64,8 +59,7 @@ public class BaseController
      * @param rows 影响行数
      * @return 操作结果
      */
-    protected AjaxResult<Void> toAjax(int rows)
-    {
+    protected AjaxResult<Void> toAjax(int rows) {
         return rows > 0 ? AjaxResult.success() : AjaxResult.error();
     }
 
@@ -75,69 +69,73 @@ public class BaseController
      * @param result 结果
      * @return 操作结果
      */
-    protected AjaxResult<Void> toAjax(boolean result)
-    {
+    protected AjaxResult<Void> toAjax(boolean result) {
         return result ? success() : error();
     }
 
     /**
      * 页面跳转
      */
-    public String redirect(String url)
-    {
+    public String redirect(String url) {
         return StringUtils.format("redirect:{}", url);
     }
 
     /**
      * 获取用户缓存信息
      */
-    public LoginUser getLoginUser()
-    {
+    public LoginUser getLoginUser() {
         return SecurityUtils.getLoginUser();
     }
 
     /**
      * 获取登录用户id
      */
-    public String getUserId()
-    {
+    public String getUserId() {
         return getLoginUser().getUserId();
     }
 
     /**
      * 获取登录部门id
      */
-    public String getDeptId()
-    {
+    public String getDeptId() {
         return getLoginUser().getDeptId();
     }
 
     /**
      * 获取登录用户名
      */
-    public String getUsername()
-    {
+    public String getUsername() {
         return getLoginUser().getUsername();
     }
 
-    public GatewayUser getGateWayUser(){
+    /**
+     * 网关
+     * user:
+     * %7B%22principal%22%3A%7B%22userName%22%3A%22zhangsan%22%2C%22orgId%22%3Anull%2C%22orgName%22%3Anull%2C%22permissions%22%3A%5B%5D%7D%2C%22user_name%22%3A%22zhangsan%22%2C%22scope%22%3A%5B%22all%22%2C%22PRODUCT_API%22%2C%22MEMBER_READ%22%5D%2C%22id%22%3A%22f744fda7453e479993ac66748011f922%22%2C%22exp%22%3A1640833535%2C%22jti%22%3A%22aba7beff-b10b-4da8-becc-b673f015464f%22%2C%22user_group_id%22%3A2%2C%22client_id%22%3A%22tpbd%22%7D
+     *
+     * @return
+     */
+    public GatewayUser getGateWayUser() {
         try {
-
             ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
             HttpServletRequest request = servletRequestAttributes.getRequest();
             String userStr = request.getHeader("user");
-            userStr = URLDecoder.decode(userStr, "UTF-8");
-            JSONObject userJsonObject = new JSONObject(userStr);
-            JSONObject principalObject = userJsonObject.getJSONObject("principal");
-            GatewayUser userDTO = new GatewayUser();
-            userDTO.setUserId(userJsonObject.getStr("id"));
-            userDTO.setUsername(principalObject.getStr("userName"));
-            userDTO.setOrgId(principalObject.getStr("orgId"));
-            userDTO.setOrgName(principalObject.getStr("orgName"));
-            userDTO.setRoles(Convert.toList(String.class, principalObject.get("permissions")));
-
-            return userDTO;
-        }catch (Exception e){
+            if (StrUtil.isNotBlank(userStr)) {
+                userStr = URLDecoder.decode(userStr, "UTF-8");
+                JSONObject userJsonObject = JSONUtil.parseObj(userStr);
+                JSONObject principalObject = userJsonObject.getJSONObject("principal");
+                GatewayUser userDTO = new GatewayUser();
+                userDTO.setUserId(userJsonObject.getStr("id"));
+                userDTO.setUsername(principalObject.getStr("userName"));
+                userDTO.setOrgId(principalObject.getStr("orgId"));
+                userDTO.setOrgName(principalObject.getStr("orgName"));
+                userDTO.setUserGroupId(userJsonObject.getStr("user_group_id"));
+                userDTO.setRoles(Convert.toList(String.class, principalObject.get("permissions")));
+                logger.info("当前网关请求用户:{}", userDTO);
+                return userDTO;
+            }
+            return null;
+        } catch (Exception e) {
             return null;
         }
 

+ 1 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/GatewayUser.java

@@ -17,5 +17,6 @@ public class GatewayUser {
     //组织机构名称
     private String orgName;
     private List<String> roles;
+    private String userGroupId;
 
 }

+ 14 - 21
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java

@@ -2,7 +2,8 @@ package com.ruoyi.common.core.domain.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.ruoyi.common.core.domain.entity.SysUser;
-import lombok.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
@@ -19,8 +20,7 @@ import java.util.Set;
 @Data
 @NoArgsConstructor
 @Accessors(chain = true)
-public class LoginUser implements UserDetails
-{
+public class LoginUser implements UserDetails {
     private static final long serialVersionUID = 1L;
 
     /**
@@ -73,19 +73,19 @@ public class LoginUser implements UserDetails
      */
     private Set<String> permissions;
 
+    private Boolean suQian;
+
     /**
      * 用户信息
      */
     private SysUser user;
 
-    public LoginUser(SysUser user, Set<String> permissions)
-    {
+    public LoginUser(SysUser user, Set<String> permissions) {
         this.user = user;
         this.permissions = permissions;
     }
 
-    public LoginUser(String userId, String deptId, SysUser user, Set<String> permissions)
-    {
+    public LoginUser(String userId, String deptId, SysUser user, Set<String> permissions) {
         this.userId = userId;
         this.deptId = deptId;
         this.user = user;
@@ -94,14 +94,12 @@ public class LoginUser implements UserDetails
 
     @JsonIgnore
     @Override
-    public String getPassword()
-    {
+    public String getPassword() {
         return user.getPassword();
     }
 
     @Override
-    public String getUsername()
-    {
+    public String getUsername() {
         return user.getUserName();
     }
 
@@ -110,8 +108,7 @@ public class LoginUser implements UserDetails
      */
     @JsonIgnore
     @Override
-    public boolean isAccountNonExpired()
-    {
+    public boolean isAccountNonExpired() {
         return true;
     }
 
@@ -122,8 +119,7 @@ public class LoginUser implements UserDetails
      */
     @JsonIgnore
     @Override
-    public boolean isAccountNonLocked()
-    {
+    public boolean isAccountNonLocked() {
         return true;
     }
 
@@ -134,8 +130,7 @@ public class LoginUser implements UserDetails
      */
     @JsonIgnore
     @Override
-    public boolean isCredentialsNonExpired()
-    {
+    public boolean isCredentialsNonExpired() {
         return true;
     }
 
@@ -146,14 +141,12 @@ public class LoginUser implements UserDetails
      */
     @JsonIgnore
     @Override
-    public boolean isEnabled()
-    {
+    public boolean isEnabled() {
         return true;
     }
 
     @Override
-    public Collection<? extends GrantedAuthority> getAuthorities()
-    {
+    public Collection<? extends GrantedAuthority> getAuthorities() {
         return null;
     }
 }

+ 0 - 128
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java

@@ -1,128 +0,0 @@
-package com.ruoyi.demo.controller;
-
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.core.validate.AddGroup;
-import com.ruoyi.common.core.validate.EditGroup;
-import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.demo.domain.bo.TestDemoBo;
-import com.ruoyi.demo.domain.vo.TestDemoVo;
-import com.ruoyi.demo.service.ITestDemoService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 测试单表Controller
- *
- * @author Lion Li
- * @date 2021-07-26
- */
-@Validated
-@Api(value = "测试单表控制器", tags = {"测试单表管理"})
-@RequiredArgsConstructor(onConstructor_ = @Autowired)
-@RestController
-@RequestMapping("/demo/demo")
-public class TestDemoController extends BaseController {
-
-    private final ITestDemoService iTestDemoService;
-
-    /**
-     * 查询测试单表列表
-     */
-    @ApiOperation("查询测试单表列表")
-    @PreAuthorize("@ss.hasPermi('demo:demo:list')")
-    @GetMapping("/list")
-    public TableDataInfo<TestDemoVo> list(@Validated(QueryGroup.class) TestDemoBo bo) {
-        return iTestDemoService.queryPageList(bo);
-    }
-
-	/**
-	 * 自定义分页查询
-	 */
-	@ApiOperation("自定义分页查询")
-	@PreAuthorize("@ss.hasPermi('demo:demo:list')")
-	@GetMapping("/page")
-	public TableDataInfo<TestDemoVo> page(@Validated TestDemoBo bo) {
-		return iTestDemoService.customPageList(bo);
-	}
-
-	/**
-     * 导出测试单表列表
-     */
-    @ApiOperation("导出测试单表列表")
-    @PreAuthorize("@ss.hasPermi('demo:demo:export')")
-    @Log(title = "测试单表", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public void export(@Validated TestDemoBo bo, HttpServletResponse response) {
-        List<TestDemoVo> list = iTestDemoService.queryList(bo);
-		// 测试雪花id导出
-//        for (TestDemoVo vo : list) {
-//			vo.setId(1234567891234567893L);
-//		}
-		ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, response);
-    }
-
-    /**
-     * 获取测试单表详细信息
-     */
-    @ApiOperation("获取测试单表详细信息")
-    @PreAuthorize("@ss.hasPermi('demo:demo:query')")
-    @GetMapping("/{id}")
-    public AjaxResult<TestDemoVo> getInfo(@NotNull(message = "主键不能为空")
-                                                  @PathVariable("id") Long id) {
-        return AjaxResult.success(iTestDemoService.queryById(id));
-    }
-
-    /**
-     * 新增测试单表
-     */
-    @ApiOperation("新增测试单表")
-    @PreAuthorize("@ss.hasPermi('demo:demo:add')")
-    @Log(title = "测试单表", businessType = BusinessType.INSERT)
-    @RepeatSubmit(intervalTime = 2, timeUnit = TimeUnit.SECONDS)
-    @PostMapping()
-    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody TestDemoBo bo) {
-        return toAjax(iTestDemoService.insertByBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 修改测试单表
-     */
-    @ApiOperation("修改测试单表")
-    @PreAuthorize("@ss.hasPermi('demo:demo:edit')")
-    @Log(title = "测试单表", businessType = BusinessType.UPDATE)
-    @RepeatSubmit
-    @PutMapping()
-    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody TestDemoBo bo) {
-        return toAjax(iTestDemoService.updateByBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 删除测试单表
-     */
-    @ApiOperation("删除测试单表")
-    @PreAuthorize("@ss.hasPermi('demo:demo:remove')")
-    @Log(title = "测试单表" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
-                                       @PathVariable Long[] ids) {
-        return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
-    }
-}

+ 0 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/package-info.java

@@ -1 +0,0 @@
-package com.ruoyi.demo.controller;

+ 3 - 6
ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java

@@ -23,18 +23,15 @@ import java.io.IOException;
  * @author ruoyi
  */
 @Component
-public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
-{
+public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
     @Autowired
     private TokenService tokenService;
 
     @Override
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
-            throws ServletException, IOException
-    {
+        throws ServletException, IOException {
         LoginUser loginUser = tokenService.getLoginUser(request);
-        if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication()))
-        {
+        if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication()) && !loginUser.getSuQian()) {
             tokenService.verifyToken(loginUser);
             UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
             authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));

+ 36 - 17
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java

@@ -2,11 +2,14 @@ package com.ruoyi.framework.web.service;
 
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.useragent.UserAgent;
 import cn.hutool.http.useragent.UserAgentUtil;
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.GatewayUser;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.RedisUtils;
 import com.ruoyi.common.utils.ServletUtils;
@@ -17,6 +20,7 @@ import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.Jwts;
 import io.jsonwebtoken.SignatureAlgorithm;
 import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -32,6 +36,7 @@ import java.util.concurrent.TimeUnit;
  * @author Lion Li
  */
 @Component
+@Slf4j
 public class TokenService {
 
     protected static final long MILLIS_SECOND = 1000;
@@ -65,18 +70,32 @@ public class TokenService {
             }
         } else {
             // 获取网关传过来的用户信息
-            /*String userStr = request.getHeader("user");
-            userStr = URLDecoder.decode(userStr, "UTF-8");
-            JSONObject userJsonObject = new JSONObject(userStr);
-            JSONObject principalObject = userJsonObject.getJSONObject("principal");
-            GatewayUser userDTO = new GatewayUser();
-            userDTO.setUserId(userJsonObject.getStr("id"));
-            userDTO.setUsername(principalObject.getStr("userName"));
-            userDTO.setOrgId(principalObject.getStr("orgId"));
-            userDTO.setOrgName(principalObject.getStr("orgName"));
-            userDTO.setRoles(Convert.toList(String.class, principalObject.get("permissions")));
-            System.out.println("网关用户信息:"+userDTO);*/
-//            return userDTO;
+            String userStr = request.getHeader("user");
+            if (StrUtil.isNotBlank(userStr)) {
+                userStr = URLDecoder.decode(userStr, "UTF-8");
+                JSONObject userJsonObject = JSONUtil.parseObj(userStr);
+                JSONObject principalObject = userJsonObject.getJSONObject("principal");
+                GatewayUser userDTO = new GatewayUser();
+                userDTO.setUserId(userJsonObject.getStr("id"));
+                userDTO.setUserGroupId(userJsonObject.getStr("user_group_id"));
+                if (principalObject != null) {
+                    userDTO.setUsername(principalObject.getStr("userName"));
+                    userDTO.setOrgId(principalObject.getStr("orgId"));
+                    userDTO.setOrgName(principalObject.getStr("orgName"));
+                    userDTO.setRoles(Convert.toList(String.class, principalObject.get("permissions")));
+                }
+                log.info("当前网关请求用户:{}", userDTO);
+                SysUser sysUser = new SysUser();
+                sysUser.setUserId(userDTO.getUserId());
+                sysUser.setUserName(userDTO.getUsername());
+                sysUser.setUserType(userDTO.getUserGroupId());
+                LoginUser loginUser = new LoginUser();
+                loginUser.setUserId(userDTO.getUserId());
+                loginUser.setDeptId(userDTO.getOrgId());
+                loginUser.setUser(sysUser);
+                loginUser.setSuQian(true);
+                return loginUser;
+            }
         }
         return null;
     }
@@ -166,8 +185,8 @@ public class TokenService {
      */
     private String createToken(Map<String, Object> claims) {
         String token = Jwts.builder()
-                .setClaims(claims)
-                .signWith(SignatureAlgorithm.HS512, tokenProperties.getSecret()).compact();
+            .setClaims(claims)
+            .signWith(SignatureAlgorithm.HS512, tokenProperties.getSecret()).compact();
         return token;
     }
 
@@ -179,9 +198,9 @@ public class TokenService {
      */
     private Claims parseToken(String token) {
         return Jwts.parser()
-                .setSigningKey(tokenProperties.getSecret())
-                .parseClaimsJws(token)
-                .getBody();
+            .setSigningKey(tokenProperties.getSecret())
+            .parseClaimsJws(token)
+            .getBody();
     }
 
     /**

+ 103 - 8
sql/20211209修改.sql

@@ -1,22 +1,117 @@
 alter table b_resource
     add location_type varchar(10);
 
-comment on column b_resource.location_type is '位置类型(水上和陆上)';
+comment
+on column b_resource.location_type is '位置类型(水上和陆上)';
 
-INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (22, '资源位置类型', 'zhdd_location_type', '0', 'admin', '2021-09-28 15:55:09', 'admin', '2021-09-28 15:55:09', null);
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+VALUES (22, '资源位置类型', 'zhdd_location_type', '0', 'admin', '2021-09-28 15:55:09', 'admin', '2021-09-28 15:55:09', null);
 
-INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (144, 0, '水上', '1', 'zhdd_location_type', null,
-                                                                                                                                                                                               'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (145, 0, '陆上', '2', 'zhdd_location_type', null,
-                                                                                                                                                                                               'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (144, 0, '水上', '1', 'zhdd_location_type', null,
+        'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (145, 0, '陆上', '2', 'zhdd_location_type', null,
+        'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
 
 alter table b_incident
     add conclusion varchar(1000);
 
-comment on column b_incident.conclusion is '归档总结';
+comment
+on column b_incident.conclusion is '归档总结';
 
 alter table b_incident
     add conclusion_file varchar(3000);
 
-comment on column b_incident.conclusion_file is '归档附件';
+comment
+on column b_incident.conclusion_file is '归档附件';
+
+-- 2021-12-15
+ALTER TABLE "public"."sys_dept"
+    ADD COLUMN "other_id" varchar(64);
+
+COMMENT
+ON COLUMN "public"."sys_dept"."other_id" IS '其他系统编号';
+
+ALTER TABLE "public"."sys_user"
+    ADD COLUMN "other_id" varchar(64);
+
+COMMENT
+ON COLUMN "public"."sys_user"."other_id" IS '其他系统编号';
+
+
+-- 2021-12-23 update
+alter table sys_user alter column user_id type varchar(36) using user_id::varchar(36);
+alter table sys_user
+    alter column user_id drop default;
+drop sequence sys_user_user_id_seq;
+alter table sys_user alter column dept_id type varchar(36) using dept_id::varchar(36);
+alter table sys_dept alter column dept_id type varchar(36) using dept_id::varchar(36);
+alter table sys_dept
+    alter column dept_id drop default;
+drop sequence sys_dept_dept_id_seq;
+alter table sys_dept alter column parent_id type varchar(36) using parent_id::varchar(36);
+alter table sys_user_role alter column user_id type varchar(36) using user_id::varchar(36);
+alter table sys_user_role alter column role_id type varchar(36) using role_id::varchar(36);
+alter table sys_role alter column role_id type varchar(36) using role_id::varchar(36);
+alter table sys_role
+    alter column role_id drop default;
+alter table sys_menu alter column menu_id type varchar(36) using menu_id::varchar(36);
+alter table sys_menu
+    alter column menu_id drop default;
+alter table sys_user
+    add org_id varchar(32);
+comment
+on column sys_user.org_id is '组织机构id';
+alter table sys_user
+    add superior varchar(50);
+
+comment
+on column sys_user.superior is '直属上级';
+
+alter table sys_dept
+    add code varchar(50);
+
+comment
+on column sys_dept.code is '代码';
+
+alter table sys_dept
+    add description varchar;
+
+comment
+on column sys_dept.description is '描述';
+
+alter table sys_dept
+    add "dept_short_name" varchar(100);
+
+comment
+on column sys_dept."dept_short_name" is '部门简称';
+
+alter table sys_dept
+    add "org_id" varchar(32);
+
+comment
+on column sys_dept."org_id" is '组织id';
+
+alter table sys_user
+    add id_number varchar(30);
+
+comment
+on column sys_user.id_number is '身份证';
+
+alter table sys_user alter column phonenumber type varchar(20) using phonenumber::varchar(20);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 

+ 0 - 9
sql/20211215.sql

@@ -1,9 +0,0 @@
-ALTER TABLE "public"."sys_dept"
-    ADD COLUMN "other_id" varchar(64);
-
-COMMENT ON COLUMN "public"."sys_dept"."other_id" IS '其他系统编号';
-
-ALTER TABLE "public"."sys_user"
-    ADD COLUMN "other_id" varchar(64);
-
-COMMENT ON COLUMN "public"."sys_user"."other_id" IS '其他系统编号';