From ad10ccf2bf5c6c2b3b84524a7764c7369a6313a9 Mon Sep 17 00:00:00 2001 From: dimengzhe <251008545@qq.com> Date: Wed, 11 Jan 2023 15:40:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=AE=BE=E7=BD=AE=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=BB=84=E7=BB=87=E6=9C=BA=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/portal/api/sysuser/SysUserVo.java | 2 + .../api/sysuserdefaultorg/SysOrgPathList.java | 20 +++++ .../sysuserdefaultorg/SysUserDefaultOrg.java | 23 ++++++ .../SysUserDefaultOrgDto.java | 22 +++++ .../SysUserDefaultOrgFeign.java | 31 +++++++ .../SysUserDefaultOrgFeignFallback.java | 22 +++++ .../SysUserDefaultOrgQuery.java | 14 ++++ .../SysUserDefaultOrgVo.java | 26 ++++++ .../biz/sysstafforg/SysStaffOrgMapper.java | 3 + .../biz/sysstafforg/SysStaffOrgMapper.xml | 4 + .../biz/sysstafforg/SysStaffOrgService.java | 5 ++ .../portal/biz/sysuser/SysUserService.java | 41 +++++----- .../SysUserDefaultOrgMapper.java | 17 ++++ .../SysUserDefaultOrgMapper.xml | 17 ++++ .../SysUserDefaultOrgRest.java | 34 ++++++++ .../SysUserDefaultOrgService.java | 81 +++++++++++++++++++ doc/databases/portal_tables.sql | 31 ++++++- 17 files changed, 369 insertions(+), 24 deletions(-) create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysOrgPathList.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrg.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgDto.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgFeign.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgFeignFallback.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgQuery.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgVo.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgMapper.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgMapper.xml create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgRest.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgService.java diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserVo.java index 1c60e344da..d28bcb9219 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserVo.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserVo.java @@ -83,7 +83,9 @@ public class SysUserVo implements Vo { private List roleSids = new ArrayList<>(); private List orgList = new ArrayList<>(); + @ApiModelProperty("默认的组织机构sid全路径") private String defaultOrgPath; + @ApiModelProperty("默认的组织机构名称全路径") private String defaultOrgPathName; @ApiModelProperty("是否需要更换密码") diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysOrgPathList.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysOrgPathList.java new file mode 100644 index 0000000000..a17d54ca25 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysOrgPathList.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.portal.api.sysuserdefaultorg; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2023/1/11 13:29 + * @Description + */ +@Data +public class SysOrgPathList implements Vo { + private static final long serialVersionUID = 2356384382464107570L; + + @ApiModelProperty("组织机构全路径sid") + private String orgSidPath; + @ApiModelProperty("组织机构全路径名称") + private String orgNamePath; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrg.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrg.java new file mode 100644 index 0000000000..610196940d --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrg.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.portal.api.sysuserdefaultorg; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2023/1/11 11:23 + * @Description + */ +@Data +public class SysUserDefaultOrg extends BaseEntity { + private static final long serialVersionUID = 3567627566535174850L; + + @ApiModelProperty("人员sid") + private String staffSid; + @ApiModelProperty("默认的组织机构sid") + private String orgSidPath; + @ApiModelProperty("默认的组织机构名称") + private String orgNamePath; + +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgDto.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgDto.java new file mode 100644 index 0000000000..61483c154b --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgDto.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.portal.api.sysuserdefaultorg; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2023/1/11 14:18 + * @Description + */ +@Data +public class SysUserDefaultOrgDto implements Dto { + private static final long serialVersionUID = 3069749900524077996L; + + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("设置的默认组织全路径sid") + private String orgSidPath; + @ApiModelProperty("设置的默认组织全路径名称") + private String orgNamePath; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgFeign.java new file mode 100644 index 0000000000..8ad612b78d --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgFeign.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.portal.api.sysuserdefaultorg; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +/** + * @Author dimengzhe + * @Date 2023/1/11 11:24 + * @Description + */ +@Api(tags = "用户默认的组织机构表") +@FeignClient( + contextId = "anrui-portal-SysUserDefaultOrg", + name = "anrui-portal", + path = "v1/sysuserdefaultorg", + fallback = SysUserDefaultOrgFeignFallback.class) +public interface SysUserDefaultOrgFeign { + + @ApiOperation("获取用户的默认机构") + @GetMapping("/getList") + @ResponseBody + ResultBean getList(@RequestParam("userSid") String userSid); + + @ApiOperation("设置默认组织机构") + @PostMapping("/saveOrUpdate") + @ResponseBody + ResultBean saveOrUpdate(@RequestBody SysUserDefaultOrgDto dto); +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgFeignFallback.java new file mode 100644 index 0000000000..5c819e330c --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgFeignFallback.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.portal.api.sysuserdefaultorg; + +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Component; + +/** + * @Author dimengzhe + * @Date 2023/1/11 11:26 + * @Description + */ +@Component +public class SysUserDefaultOrgFeignFallback implements SysUserDefaultOrgFeign{ + @Override + public ResultBean getList(String userSid) { + return null; + } + + @Override + public ResultBean saveOrUpdate(SysUserDefaultOrgDto dto) { + return null; + } +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgQuery.java new file mode 100644 index 0000000000..a1d7e4a052 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgQuery.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.portal.api.sysuserdefaultorg; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2023/1/11 11:52 + * @Description + */ +@Data +public class SysUserDefaultOrgQuery implements Query { + private static final long serialVersionUID = 549888513841147615L; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgVo.java new file mode 100644 index 0000000000..6a369f694d --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuserdefaultorg/SysUserDefaultOrgVo.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.portal.api.sysuserdefaultorg; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2023/1/11 11:52 + * @Description + */ +@Data +public class SysUserDefaultOrgVo implements Vo { + private static final long serialVersionUID = -4852902800844447195L; + + @ApiModelProperty("设置的默认的组织机构名称") + private String orgNamePath; + @ApiModelProperty("设置的默认的组织机构sid") + private String orgSidPath; + @ApiModelProperty("当前用户所有的组织机构list") + private List list; + + +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.java index 3fe7530b9b..a0259e6b64 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgDetailsVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; +import com.yxt.anrui.portal.api.sysuserdefaultorg.SysOrgPathList; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -106,4 +107,6 @@ public interface SysStaffOrgMapper extends BaseMapper { String selectByUserSid(String userSid); List selectOrgBySid(@Param("orgPath") String orgPath, @Param("staffSid") String staffSid); + + List getList(String staffSid); } \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.xml index 151ad28ede..5ca6083a21 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.xml +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.xml @@ -108,4 +108,8 @@ + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java index 776726b07b..fe13b2a9e3 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.portal.api.sysorganization.SysOrganization; import com.yxt.anrui.portal.api.sysstafforg.*; import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo; +import com.yxt.anrui.portal.api.sysuserdefaultorg.SysOrgPathList; import com.yxt.anrui.portal.biz.sysorganization.SysOrganizationService; import com.yxt.anrui.portal.biz.sysuser.SysUserService; import com.yxt.common.base.service.MybatisBaseService; @@ -303,4 +304,8 @@ public class SysStaffOrgService extends MybatisBaseService getList(String staffSid) { + return baseMapper.getList(staffSid); + } } \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java index 2a483270da..5e2370a928 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java @@ -19,11 +19,13 @@ import com.yxt.anrui.portal.api.sysuser.app.OrgList; import com.yxt.anrui.portal.api.sysuser.wx.WxHomePageVo; import com.yxt.anrui.portal.api.sysuser.wx.WxMySysUserInfoVo; import com.yxt.anrui.portal.api.sysuser.wx.WxSysUserVo; +import com.yxt.anrui.portal.api.sysuserdefaultorg.SysUserDefaultOrg; import com.yxt.anrui.portal.biz.sysorganization.SysOrganizationService; import com.yxt.anrui.portal.biz.sysrole.SysRoleService; import com.yxt.anrui.portal.biz.sysstaffinfo.SysStaffinfoService; import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService; import com.yxt.anrui.portal.biz.sysstaffpost.SysStaffPostService; +import com.yxt.anrui.portal.biz.sysuserdefaultorg.SysUserDefaultOrgService; import com.yxt.anrui.portal.config.DictCommonType; import com.yxt.anrui.portal.utils.MsgWs; import com.yxt.common.base.config.RedisUtil; @@ -101,6 +103,9 @@ public class SysUserService extends MybatisBaseService { @Autowired private SysRoleService sysRoleService; + @Autowired + private SysUserDefaultOrgService sysUserDefaultOrgService; + public PagerVo listPage(PagerQuery pq) { SysUserQuery query = pq.getParams(); @@ -341,9 +346,6 @@ public class SysUserService extends MybatisBaseService { userInfoOneVo.setName(staffVo.getName()); userInfoOneVo.setMobile(staffVo.getMobile()); userInfoOneVo.setStaffSid(staffVo.getSid()); -// userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath()); -// userInfoOneVo.setOrgSidPath(sysStaffOrg.getOrgSidPath()); - } // 尚无单位人员,没有单位和部门信息 if ("3".equals(user.getIsAdmin())) { @@ -372,16 +374,21 @@ public class SysUserService extends MybatisBaseService { userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath()); userInfoOneVo.setOrgSidPath(sysStaffOrg.getOrgSidPath()); //根据orgSidPath查询分公司sid===== - userInfoOneVo.setDefaultOrgPath(sysStaffOrg.getOrgSidPath()); - userInfoOneVo.setDefaultOrgPathName(sysStaffOrg.getOrgNamePath()); - /* String orgSid = sysStaffOrgService.getOrgByOrgSid(sysStaffOrgVo.getOrgSid()); - SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid); - if (sysOrganization != null) { - userInfoOneVo.setDefaultOrgPathName(sysOrganization.getName()); - userInfoOneVo.setDefaultOrgPath(sysOrganization.getSid()); - } else { - userInfoOneVo.setDefaultOrgPathName("暂无组织机构"); - }*/ + //根据用户sid查询用户是否设置了默认的组织机构 + SysUserDefaultOrg sysUserDefaultOrg = sysUserDefaultOrgService.selectByUserSid(user.getSid()); + if(sysUserDefaultOrg == null){ + userInfoOneVo.setDefaultOrgPath(sysStaffOrg.getOrgSidPath()); + userInfoOneVo.setDefaultOrgPathName(sysStaffOrg.getOrgNamePath()); + }else{ + List sysStaffOrgVos = sysStaffOrgService.selectByStaffS(user.getStaffSid()); + sysStaffOrgVos.removeAll(Collections.singleton(null)); + List orgSidPathList = sysStaffOrgVos.stream().map(v->v.getOrgSidPath()).collect(Collectors.toList()); + if(!orgSidPathList.contains(sysUserDefaultOrg.getOrgSidPath())){ + sysUserDefaultOrgService.deleteByUserSid(user.getSid()); + } + userInfoOneVo.setDefaultOrgPath(sysUserDefaultOrg.getOrgSidPath()); + userInfoOneVo.setDefaultOrgPathName(sysUserDefaultOrg.getOrgNamePath()); + } } } } @@ -395,14 +402,6 @@ public class SysUserService extends MybatisBaseService { if (sysStaffOrgVos.size() > 0) { for (SysStaffOrgVo vv : sysStaffOrgVos) { OrgList orgList1 = new OrgList(); - /*String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid()); - SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid); - if (sysOrganization != null) { - orgList1.setOrgName(sysOrganization.getName()); - orgList1.setOrgPath(sysOrganization.getSid()); - } else { - continue; - }*/ orgList1.setOrgPath(vv.getOrgSidPath()); orgList1.setOrgName(vv.getOrgNamePath()); orgList.add(orgList1); diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgMapper.java new file mode 100644 index 0000000000..e761c95ad3 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgMapper.java @@ -0,0 +1,17 @@ +package com.yxt.anrui.portal.biz.sysuserdefaultorg; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.portal.api.sysuserdefaultorg.SysUserDefaultOrg; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author dimengzhe + * @Date 2023/1/11 11:27 + * @Description + */ +@Mapper +public interface SysUserDefaultOrgMapper extends BaseMapper { + SysUserDefaultOrg selectByUserSid(String userSid); + + int deleteByUserSid(String userSid); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgMapper.xml new file mode 100644 index 0000000000..808e0ca72e --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgMapper.xml @@ -0,0 +1,17 @@ + + + + + + + delete + from sys_user_default_org + where createBySid = #{userSid} + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgRest.java new file mode 100644 index 0000000000..c6c3ee6511 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgRest.java @@ -0,0 +1,34 @@ +package com.yxt.anrui.portal.biz.sysuserdefaultorg; + +import com.yxt.anrui.portal.api.sysuserdefaultorg.SysUserDefaultOrgDto; +import com.yxt.anrui.portal.api.sysuserdefaultorg.SysUserDefaultOrgFeign; +import com.yxt.anrui.portal.api.sysuserdefaultorg.SysUserDefaultOrgVo; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author dimengzhe + * @Date 2023/1/11 11:26 + * @Description + */ +@Api(tags = "用户默认的组织机构") +@RestController +@RequestMapping("v1/sysuserdefaultorg") +public class SysUserDefaultOrgRest implements SysUserDefaultOrgFeign { + + @Autowired + private SysUserDefaultOrgService sysUserDefaultOrgService; + + @Override + public ResultBean getList(String userSid) { + return sysUserDefaultOrgService.getList(userSid); + } + + @Override + public ResultBean saveOrUpdate(SysUserDefaultOrgDto dto) { + return sysUserDefaultOrgService.saveDefaultOrg(dto); + } +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgService.java new file mode 100644 index 0000000000..1ac3434c83 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserdefaultorg/SysUserDefaultOrgService.java @@ -0,0 +1,81 @@ +package com.yxt.anrui.portal.biz.sysuserdefaultorg; + +import com.yxt.anrui.portal.api.sysuser.SysUser; +import com.yxt.anrui.portal.api.sysuserdefaultorg.*; +import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService; +import com.yxt.anrui.portal.biz.sysuser.SysUserService; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2023/1/11 11:27 + * @Description + */ +@Service +public class SysUserDefaultOrgService extends MybatisBaseService { + + @Autowired + private SysStaffOrgService sysStaffOrgService; + @Autowired + private SysUserService sysUserService; + + public ResultBean getList(String userSid) { + ResultBean rb = ResultBean.fireFail(); + SysUserDefaultOrgVo sysUserDefaultOrgVo = new SysUserDefaultOrgVo(); + //根据用户sid查询staffSid + SysUser sysUser = sysUserService.fetchBySid(userSid); + List list = sysStaffOrgService.getList(sysUser.getStaffSid()); + list.removeAll(Collections.singleton(null)); + sysUserDefaultOrgVo.setList(list); + //根据该用户名称查询是否设置了默认组织机构 + SysUserDefaultOrg sysUserDefaultOrg = baseMapper.selectByUserSid(userSid); + if (sysUserDefaultOrg != null) { + sysUserDefaultOrgVo.setOrgSidPath(sysUserDefaultOrg.getOrgSidPath()); + sysUserDefaultOrgVo.setOrgNamePath(sysUserDefaultOrg.getOrgNamePath()); + } + return rb.success().setData(sysUserDefaultOrgVo); + } + + public SysUserDefaultOrg selectByUserSid(String userSid) { + return baseMapper.selectByUserSid(userSid); + } + + public ResultBean saveDefaultOrg(SysUserDefaultOrgDto dto) { + ResultBean rb = ResultBean.fireFail(); + String userSid = dto.getUserSid(); + if (StringUtils.isBlank(userSid)) { + return rb.setMsg("参数错误:userSid是必传项"); + } + String orgSidPath = dto.getOrgSidPath(); + if (StringUtils.isNotBlank(orgSidPath)) { + //删除设置的默认组织机构 + baseMapper.deleteByUserSid(userSid); + SysUserDefaultOrg sysUserDefaultOrg = new SysUserDefaultOrg(); + String orgNamePath = dto.getOrgNamePath(); + if (StringUtils.isBlank(orgNamePath)) { + return rb.setMsg("参数错误:orgNamePath是必传项"); + } + SysUser sysUser = sysUserService.fetchBySid(userSid); + sysUserDefaultOrg.setOrgSidPath(orgSidPath); + sysUserDefaultOrg.setOrgNamePath(orgNamePath); + sysUserDefaultOrg.setCreateBySid(userSid); + sysUserDefaultOrg.setStaffSid(sysUser.getStaffSid()); + baseMapper.insert(sysUserDefaultOrg); + } else { + //删除设置的默认组织机构 + baseMapper.deleteByUserSid(userSid); + } + return rb.success(); + } + + public int deleteByUserSid(String sid) { + return baseMapper.deleteByUserSid(sid); + } +} diff --git a/doc/databases/portal_tables.sql b/doc/databases/portal_tables.sql index fb19e80c6a..f5ac0d0e6d 100644 --- a/doc/databases/portal_tables.sql +++ b/doc/databases/portal_tables.sql @@ -639,7 +639,7 @@ CREATE TABLE `sys_mobile_menu` `iconUrl` varchar(64) DEFAULT NULL COMMENT '应用图标', `path` varchar(64) DEFAULT NULL COMMENT '应用路由', `sortNo` int(32) DEFAULT NULL COMMENT '排序', - `psid` varchar(64) DEFAULT NULL COMMENT '父级sid', + `psid` varchar(64) DEFAULT NULL COMMENT '父级sid', PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE = InnoDB @@ -660,10 +660,35 @@ CREATE TABLE `sys_mobile_menu_role` `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息', `createBySid` varchar(64) DEFAULT NULL COMMENT '创建者', `updateBySid` varchar(64) DEFAULT NULL COMMENT '更新者', - `menuSid` varchar(64) DEFAULT NULL COMMENT '菜单sid', - `roleSid` varchar(64) DEFAULT NULL COMMENT '角色sid', + `menuSid` varchar(64) DEFAULT NULL COMMENT '菜单sid', + `roleSid` varchar(64) DEFAULT NULL COMMENT '角色sid', PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE = InnoDB AUTO_INCREMENT = 18 DEFAULT CHARSET = utf8 COMMENT ='移动端用户授权表'; + + +DROP TABLE IF EXISTS `sys_user_default_org`; +CREATE TABLE `sys_user_default_org` +( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int(11) NOT NULL DEFAULT '0' COMMENT '记录版本,锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', + `modifyTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录最后修改时间', + `isEnable` int(11) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用', + `state` int(11) DEFAULT '1' COMMENT '隐藏本部门:隐藏本部门开启后,本部门将不会显示在公司通讯录中', + `isDelete` int(11) DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建者', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '更新者', + `userSid` varchar(64) DEFAULT NULL COMMENT '用户sid', + `orgSidPath` varchar(500) DEFAULT NULL COMMENT '默认组织机构sid', + `orgNamePath` varchar(500) DEFAULT NULL COMMENT '默认组织机构名称', + `staffSid` varchar(64) DEFAULT NULL COMMENT '人员sid', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE = InnoDB + AUTO_INCREMENT = 18 + DEFAULT CHARSET = utf8 COMMENT ='用户默认的组织机构';