Browse Source

user

master
wangpengfei 1 year ago
parent
commit
d4e2595b28
  1. 6
      pom.xml
  2. 6
      src/main/java/com/yxt/user/UserApplication.java
  3. 45
      src/main/java/com/yxt/user/apiadmin/SmsRest.java
  4. 218
      src/main/java/com/yxt/user/apiadmin/SysFunctionRest.java
  5. 265
      src/main/java/com/yxt/user/apiadmin/SysMenuRest.java
  6. 415
      src/main/java/com/yxt/user/apiadmin/SysOrganizationRest.java
  7. 153
      src/main/java/com/yxt/user/apiadmin/SysRoleRest.java
  8. 131
      src/main/java/com/yxt/user/apiadmin/SysSourceRest.java
  9. 162
      src/main/java/com/yxt/user/apiadmin/SysStaffOrgRest.java
  10. 124
      src/main/java/com/yxt/user/apiadmin/SysStaffPostRest.java
  11. 235
      src/main/java/com/yxt/user/apiadmin/SysStaffinfoRest.java
  12. 34
      src/main/java/com/yxt/user/apiadmin/SysUserDefaultOrgRest.java
  13. 619
      src/main/java/com/yxt/user/apiadmin/SysUserRest.java
  14. 118
      src/main/java/com/yxt/user/apiadmin/SysUserRoleRest.java
  15. 28
      src/main/java/com/yxt/user/biz/sms/SmsDto.java
  16. 47
      src/main/java/com/yxt/user/biz/sms/SmsFeign.java
  17. 11
      src/main/java/com/yxt/user/biz/sms/SmsFeignFallback.java
  18. 19
      src/main/java/com/yxt/user/biz/sysfunction/ButtonPermissionQuery.java
  19. 12
      src/main/java/com/yxt/user/biz/sysfunction/ButtonPermissionVo.java
  20. 54
      src/main/java/com/yxt/user/biz/sysfunction/SysFunction.java
  21. 54
      src/main/java/com/yxt/user/biz/sysfunction/SysFunctionDto.java
  22. 74
      src/main/java/com/yxt/user/biz/sysfunction/SysFunctionMapper.java
  23. 103
      src/main/java/com/yxt/user/biz/sysfunction/SysFunctionMapper.xml
  24. 53
      src/main/java/com/yxt/user/biz/sysfunction/SysFunctionQuery.java
  25. 344
      src/main/java/com/yxt/user/biz/sysfunction/SysFunctionService.java
  26. 50
      src/main/java/com/yxt/user/biz/sysfunction/SysFunctionTreeVo.java
  27. 59
      src/main/java/com/yxt/user/biz/sysfunction/SysFunctionVo.java
  28. 64
      src/main/java/com/yxt/user/biz/sysmenu/SysMenu.java
  29. 72
      src/main/java/com/yxt/user/biz/sysmenu/SysMenuDto.java
  30. 30
      src/main/java/com/yxt/user/biz/sysmenu/SysMenuFunctionQuery.java
  31. 82
      src/main/java/com/yxt/user/biz/sysmenu/SysMenuMapper.java
  32. 88
      src/main/java/com/yxt/user/biz/sysmenu/SysMenuMapper.xml
  33. 66
      src/main/java/com/yxt/user/biz/sysmenu/SysMenuQuery.java
  34. 424
      src/main/java/com/yxt/user/biz/sysmenu/SysMenuService.java
  35. 59
      src/main/java/com/yxt/user/biz/sysmenu/SysMenuTreeVo.java
  36. 74
      src/main/java/com/yxt/user/biz/sysmenu/SysMenuVo.java
  37. 40
      src/main/java/com/yxt/user/biz/sysorganization/AppContactSysOrganizationVo.java
  38. 23
      src/main/java/com/yxt/user/biz/sysorganization/QrCodeVo.java
  39. 29
      src/main/java/com/yxt/user/biz/sysorganization/SysOrgListVo.java
  40. 17
      src/main/java/com/yxt/user/biz/sysorganization/SysOrgStaffVo.java
  41. 31
      src/main/java/com/yxt/user/biz/sysorganization/SysOrgVo.java
  42. 87
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganization.java
  43. 91
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationDto.java
  44. 16
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationListQuery.java
  45. 23
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationListVo.java
  46. 17
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationListsVo.java
  47. 122
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationMapper.java
  48. 220
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationMapper.xml
  49. 58
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationQuery.java
  50. 521
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationService.java
  51. 86
      src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationVo.java
  52. 46
      src/main/java/com/yxt/user/biz/syspost/SysPost.java
  53. 44
      src/main/java/com/yxt/user/biz/syspost/SysPostDto.java
  54. 22
      src/main/java/com/yxt/user/biz/syspost/SysPostListVo.java
  55. 68
      src/main/java/com/yxt/user/biz/syspost/SysPostMapper.java
  56. 44
      src/main/java/com/yxt/user/biz/syspost/SysPostMapper.xml
  57. 41
      src/main/java/com/yxt/user/biz/syspost/SysPostQuery.java
  58. 52
      src/main/java/com/yxt/user/biz/syspost/SysPostVo.java
  59. 48
      src/main/java/com/yxt/user/biz/sysrole/SysRole.java
  60. 51
      src/main/java/com/yxt/user/biz/sysrole/SysRoleDto.java
  61. 69
      src/main/java/com/yxt/user/biz/sysrole/SysRoleMapper.java
  62. 134
      src/main/java/com/yxt/user/biz/sysrole/SysRoleMapper.xml
  63. 38
      src/main/java/com/yxt/user/biz/sysrole/SysRoleQuery.java
  64. 184
      src/main/java/com/yxt/user/biz/sysrole/SysRoleService.java
  65. 47
      src/main/java/com/yxt/user/biz/sysrole/SysRoleVo.java
  66. 76
      src/main/java/com/yxt/user/biz/syssource/SysSource.java
  67. 76
      src/main/java/com/yxt/user/biz/syssource/SysSourceDto.java
  68. 73
      src/main/java/com/yxt/user/biz/syssource/SysSourceFeign.java
  69. 81
      src/main/java/com/yxt/user/biz/syssource/SysSourceFeignFallback.java
  70. 54
      src/main/java/com/yxt/user/biz/syssource/SysSourceMapper.java
  71. 45
      src/main/java/com/yxt/user/biz/syssource/SysSourceMapper.xml
  72. 78
      src/main/java/com/yxt/user/biz/syssource/SysSourceQuery.java
  73. 172
      src/main/java/com/yxt/user/biz/syssource/SysSourceService.java
  74. 85
      src/main/java/com/yxt/user/biz/syssource/SysSourceVo.java
  75. 34
      src/main/java/com/yxt/user/biz/sysstaffinfo/AppContactsDetailsVo.java
  76. 18
      src/main/java/com/yxt/user/biz/sysstaffinfo/PcSysStaffQuery.java
  77. 19
      src/main/java/com/yxt/user/biz/sysstaffinfo/PcSysStaffVo.java
  78. 30
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffQuery.java
  79. 173
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfo.java
  80. 34
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoAppContactsSearchVo.java
  81. 34
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoAppContactsVo.java
  82. 155
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoDetailsVo.java
  83. 186
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoDto.java
  84. 128
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoMapper.java
  85. 398
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoMapper.xml
  86. 42
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoQuery.java
  87. 819
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoService.java
  88. 47
      src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoVo.java
  89. 20
      src/main/java/com/yxt/user/biz/sysstaffinfo/WxBase64Query.java
  90. 37
      src/main/java/com/yxt/user/biz/sysstaffinfo/WxSysInfoQuery.java
  91. 30
      src/main/java/com/yxt/user/biz/sysstaffinfo/app/AppSysStaffQuery.java
  92. 30
      src/main/java/com/yxt/user/biz/sysstaffinfo/app/AppSysStaffVo.java
  93. 46
      src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrg.java
  94. 30
      src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgByUserVo.java
  95. 28
      src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgDetailsVo.java
  96. 42
      src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgDto.java
  97. 117
      src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgMapper.java
  98. 161
      src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgMapper.xml
  99. 44
      src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgQuery.java
  100. 343
      src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgService.java

6
pom.xml

@ -95,6 +95,12 @@
<artifactId>easyexcel</artifactId> <artifactId>easyexcel</artifactId>
<version>3.3.2</version> <version>3.3.2</version>
</dependency> </dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>21.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>

6
src/main/java/com/yxt/user/UserApplication.java

@ -1,18 +1,18 @@
package com.yxt.user; package com.yxt.user;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
/** /**
* @author dimengzhe * @author wangpengfei
* @date 2024/4/28 14:43
*/ */
@SpringBootApplication(scanBasePackages = { @SpringBootApplication(scanBasePackages = {
"com.yxt.user.config", "com.yxt.user.config",
"com.yxt.common.base.config", "com.yxt.common.base.config",
"com.yxt.goods" "com.yxt.user"
}) })
// 启用自带定时任务 // 启用自带定时任务
@EnableScheduling @EnableScheduling

45
src/main/java/com/yxt/user/apiadmin/SmsRest.java

@ -0,0 +1,45 @@
package com.yxt.user.apiadmin;
import com.yxt.user.biz.sms.SmsDto;
import com.yxt.user.biz.sms.SmsFeign;
import com.yxt.user.utils.MsgWs;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import com.yxt.user.biz.sms.SmsDto;
import com.yxt.user.utils.MsgWs;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionFeignFallback.java <br/>
* Class: com.yxt.anrui.portal.biz.sysfunction.SysFunctionRest <br/>
* Description: 功能. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "短信")
@RestController
@RequestMapping("v1/sms")
public class SmsRest {
public ResultBean SendWaitWorkMsg(SmsDto dto) {
String mobile = dto.getMobile();
String msg = dto.getMsg();
if (StringUtils.isBlank(mobile)){
return ResultBean.fireFail().setMsg("手机号不能为空!");
}
if (StringUtils.isBlank(msg)){
return ResultBean.fireFail().setMsg("信息不能为空!");
}
String result = MsgWs.SendWaitWorkMsg(mobile, msg);
return ResultBean.fireSuccess();
}
}

218
src/main/java/com/yxt/user/apiadmin/SysFunctionRest.java

@ -0,0 +1,218 @@
package com.yxt.user.apiadmin;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.user.biz.sysfunction.*;
import com.yxt.user.biz.syssource.SysSource;
import com.yxt.user.biz.syssource.SysSourceVo;
//import com.yxt.user.biz.syssourcefunction.SysSourceFunction;
import com.yxt.user.biz.syssource.SysSourceService;
//import com.yxt.user.biz.syssourcefunction.SysSourceFunctionService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionFeignFallback.java <br/>
* Class: com.yxt.user.biz.sysfunction.SysFunctionRest <br/>
* Description: 功能. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "功能")
@RestController
@RequestMapping("v1/sysfunction")
public class SysFunctionRest {
@Autowired
private SysFunctionService sysFunctionService;
@Autowired
private SysSourceService sysSourceService;
// @Autowired
// private SysSourceFunctionService sysSourceFunctionService;
public ResultBean<PagerVo<SysFunctionVo>> listPage(@RequestBody PagerQuery<SysFunctionQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<SysFunctionVo> pv = sysFunctionService.listPageVo(pq);
return rb.success().setData(pv);
}
public ResultBean<List<SysFunctionVo>> listAll(@RequestBody SysFunctionQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysFunctionVo> list = sysFunctionService.listAllVo(query);
return rb.success().setData(list);
}
public ResultBean<List<SysFunctionVo>> listAllByRoleSid(SysFunctionQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysFunctionVo> list = sysFunctionService.listAllByRoleSid(query);
return rb.success().setData(list);
}
public ResultBean<List<SysFunctionTreeVo>> listAllVoForSource(@RequestBody SysFunctionQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysFunctionTreeVo> list = sysFunctionService.listAllVoForSource(query);
return rb.success().setData(list);
}
public ResultBean<List<SysFunctionVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysFunctionVo> list = sysFunctionService.listVo();
return rb.success().setData(list);
}
public ResultBean save(SysFunctionDto dto) {
ResultBean rb = ResultBean.fireFail();
String sourceSid = dto.getSourceSid();
if (StringUtils.isBlank(sourceSid)) {
return ResultBean.fireFail().setMessage("资源不能为空");
} else {
SysSourceVo sysSourceVo = sysSourceService.fetchBySidVo(sourceSid);
if (sysSourceVo.getSid() == null) {
return ResultBean.fireFail().setMessage("资源不存在");
}
}
String pSid = dto.getParentSid();
if (StringUtils.isBlank(pSid)) {
return ResultBean.fireFail().setMessage("菜单父级sid不能为空");
} else {
if (!"0".equals(pSid)) {
SysFunction sysFunction = sysFunctionService.fetchBySid(pSid);
if (StringUtils.isBlank(sysFunction.getSid())) {
return ResultBean.fireFail().setMessage("菜单父级不存在!");
}
}
}
sysFunctionService.saveOrUpdateDto(dto);
return rb.success();
}
public ResultBean update(SysFunctionDto dto, String sid) {
SysFunction sysFunction = sysFunctionService.fetchBySid(sid);
if (sysFunction.getSid() == null) {
return ResultBean.fireFail().setMessage("功能不存在!");
}
ResultBean rb = ResultBean.fireFail();
sysFunctionService.updateBySid(dto.toMap(), sid);
// SysSourceFunction sysSourceFunction1 = sysSourceFunctionService.fetchByFunctionSid(sid);
// sysSourceFunctionService.delByFunctionSid(sid);
// SysSourceFunction sysSourceFunction = new SysSourceFunction();
// sysSourceFunction.setFunctionRootSid(sysSourceFunction1.getFunctionRootSid());
// sysSourceFunction.setFunctionSid(sid);
// sysSourceFunction.setSourceSid(dto.getSourceSid());
// sysSourceFunctionService.insert(sysSourceFunction);
return rb.success();
}
public ResultBean updateIsEnable(String sid, Integer isEnable) {
ResultBean rb = ResultBean.fireFail();
SysFunction sysFunction = sysFunctionService.fetchBySid(sid);
if (sysFunction == null) {
//查询资源是否存在
SysSource sysSource = sysSourceService.fetchBySid(sid);
if (sysSource == null) {
return ResultBean.fireFail().setMessage("功能不存在!");
} else {
//将该资源下的所有功能关闭
// List<String> sids = sysSourceFunctionService.selectBySourceSid(sid);
// if (sids.size() != 0) {
// sysFunctionService.updateBySourceSid(isEnable, sids);
// }
}
} else {
sysFunction.setIsEnable(isEnable);
sysFunctionService.updateById(sysFunction);
}
return rb.success();
}
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
sysFunctionService.delByIds(ids);
return rb.success();
}
public ResultBean delBySids(String sids) {
ResultBean rb = ResultBean.fireFail();
String[] sidsArr = sids.split(",");
// for (String functionSid : sidsArr) {
// sysSourceFunctionService.delByFunctionSid(functionSid);
// }
sysFunctionService.delBySids(sidsArr);
return rb.success();
}
public ResultBean<SysFunctionVo> fetch(String id) {
ResultBean rb = ResultBean.fireFail();
SysFunctionVo vo = sysFunctionService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<SysFunctionVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
SysFunction entity = sysFunctionService.fetchBySid(sid);
SysFunctionVo vo = new SysFunctionVo();
BeanUtil.copyProperties(entity, vo);
// SysSourceFunction sysSourceFunction = sysSourceFunctionService.fetchByFunctionSid(sid);
// vo.setSourceSid(sysSourceFunction.getSourceSid());
if ("0".equals(entity.getParentSid())) {
vo.setParentSid("0");
vo.setParentName("顶级功能");
} else {
SysFunction sysFunction = sysFunctionService.fetchBySid(entity.getParentSid());
vo.setParentSid(sysFunction.getSid());
vo.setParentName(sysFunction.getName());
}
return rb.success().setData(vo);
}
public ResultBean<List<Map<String,Object>>> getFunctionAuthorization(String roleSid) {
ResultBean rb = ResultBean.fireFail();
List<Map<String,Object>> list=sysFunctionService.getFunctionAuthorization(roleSid);
return rb.success().setData(list);
}
public ResultBean<List<Map<String, Object>>> getFunctionAuthorizationApp(String roleSid) {
ResultBean rb = ResultBean.fireFail();
List<Map<String,Object>> list=sysFunctionService.getFunctionAuthorizationApp(roleSid);
return rb.success().setData(list);
}
public ResultBean<List<ButtonPermissionVo>> getButtonPermissions(ButtonPermissionQuery query) {
ResultBean<List<ButtonPermissionVo>> rb = ResultBean.fireFail();
return rb.success().setData(sysFunctionService.getButtonPermissions(query));
}
//getFunctionAuthorization(){
// }
}

265
src/main/java/com/yxt/user/apiadmin/SysMenuRest.java

@ -0,0 +1,265 @@
package com.yxt.user.apiadmin;
import com.yxt.user.biz.sysmenu.*;
//import com.yxt.user.biz.sysmenurole.SysMenuRoleQuery;
import com.yxt.user.biz.sysrole.SysRole;
import com.yxt.user.biz.syssource.SysSource;
import com.yxt.user.biz.syssource.SysSourceVo;
//import com.yxt.user.biz.syssourcemenu.SysSourceMenu;
//import com.yxt.user.biz.syssourcemenu.SysSourceMenuVo;
import com.yxt.user.biz.sysuserrole.SysUserRoleVo;
//import com.yxt.user.biz.sysmenurole.SysMenuRoleService;
import com.yxt.user.biz.sysrole.SysRoleService;
import com.yxt.user.biz.syssource.SysSourceService;
//import com.yxt.user.biz.syssourcemenu.SysSourceMenuService;
import com.yxt.user.biz.sysuser.SysUserService;
import com.yxt.user.biz.sysuserrole.SysUserRoleService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysmenu.*;
import com.yxt.user.biz.syssource.SysSourceService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuFeignFallback.java <br/>
* Class: com.yxt.user.biz.sysmenu.SysMenuRest <br/>
* Description: 菜单表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "菜单表")
@RestController
@RequestMapping("v1/sysmenu")
public class SysMenuRest {
// @Autowired
// private SysSourceMenuService sysSourceMenuService;
@Autowired
private SysMenuService sysMenuService;
@Autowired
private SysSourceService sysSourceService;
@Autowired
private SysUserRoleService sysUserRoleService;
// @Autowired
// private SysMenuRoleService sysMenuRoleService;
@Autowired
private SysUserService sysUserService;
@Autowired
private SysRoleService sysRoleService;
public ResultBean<PagerVo<SysMenuVo>> listPage(@RequestBody PagerQuery<SysMenuQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<SysMenuVo> pv = sysMenuService.listPageVo(pq);
return rb.success().setData(pv);
}
/* @Override
public ResultBean<List<SysMenuVo>> listAll(@RequestBody SysMenuQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysMenuVo> list = sysMenuService.listAllVo(query);
return rb.success().setData(list);
}*/
public ResultBean<List<SysMenuTreeVo>> listAllVoForSource(@RequestBody SysMenuQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysMenuTreeVo> list = sysMenuService.listAllVoForSource(query);
return rb.success().setData(list);
}
public ResultBean<List<Map<String, String>>> getMenusForFunction(@RequestBody SysMenuFunctionQuery sysMenuFunctionQuery) {
ResultBean rb = ResultBean.fireFail();
SysMenuQuery smq= new SysMenuQuery();
smq.setSourceSid(sysMenuFunctionQuery.getSourceSid());
List<SysMenuTreeVo> list = sysMenuService.listAllVoForSource(smq);
List<Map<String,String>> l=new ArrayList<>();
list.forEach(f->{
if(sysMenuFunctionQuery.getSourceSid().equals(f.getSourceSid())){
makeMenuListForChildren(f,l);
}
});
return rb.success().setData(l);
}
private void makeMenuListForChildren(SysMenuTreeVo s, List<Map<String,String>> l){
List<SysMenuTreeVo> children = s.getChildren();
int size = children.size();
for (int i=0;i<size;i++){
makeMenuListForChildren( children.get(i), l) ;
}
String menuUrl = s.getMenuUrl();
if(StringUtils.isNotBlank(menuUrl)){
Map<String,String> m=new HashMap<>();
m.put("name",s.getName());
m.put("url",s.getMenuUrl());
m.put("sid",s.getSid());
l.add(m);
}
}
public ResultBean<List<Map<String, Object>>> sourcemenutree(SysMenuQuery query) {
ResultBean<List<Map<String, Object>>> rb = ResultBean.fireFail();
// SysMenuRoleQuery orgRoleMenuQuery = new SysMenuRoleQuery();
List<Map<String, Object>> list = new ArrayList<>();
if (null == query)
return rb.setData(list);
//if业务角色存在,则查询业务角色的菜单列表,否则查询平台角色的菜单列表
List<SysUserRoleVo> userRole = sysUserRoleService.selectByUserSid(query.getUserSid());
List<String> roleSids = userRole.stream().map(s -> s.getRoleSid()).collect(Collectors.toList());
for (String roleSid : roleSids) {
SysRole sysRole = sysRoleService.fetchBySid(roleSid);
if(sysRole == null){
continue;
}
Integer type = sysRoleService.fetchBySid(roleSid).getType();
if (type == 1){
// orgRoleMenuQuery.setIsAdmin("1");
}else {
// orgRoleMenuQuery.setIsAdmin("0");
}
}
// orgRoleMenuQuery.setRoleSids(roleSids);
// orgRoleMenuQuery.setSourceSid(query.getSourceSid());
// list = sysMenuRoleService.getSourceMenuTreeOfRoles(orgRoleMenuQuery, null);
return rb.success().setData(list);
}
public ResultBean<List<SysMenuVo>> listAllByRoleSid(SysMenuQuery query) {
ResultBean rb = ResultBean.fireFail();
String roleSid = query.getRoleSid();
if (StringUtils.isBlank(roleSid)) {
ResultBean<List<SysMenuVo>> resultBean = new ResultBean<List<SysMenuVo>>();
return resultBean.fail().setMessage("角色sid不能为空!");
}
List<SysSourceVo> sysSourceVos = sysSourceService.listVo();
List<SysMenuVo> list = new ArrayList<>();
for (SysSourceVo s : sysSourceVos) {
SysMenuVo sysMenuVo = new SysMenuVo();
sysMenuVo.setName(s.getSourceName());
sysMenuVo.setSid(s.getSid());
sysMenuVo.setChecked("1");
query.setSourceSid(s.getSid());
sysMenuVo.setChildren(sysMenuService.listAllByRoleSid(query));
list.add(sysMenuVo);
}
return rb.success().setData(list);
}
public ResultBean<List<SysMenuVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysMenuVo> list = sysMenuService.listVo();
return rb.success().setData(list);
}
public ResultBean save(SysMenuDto dto) {
ResultBean rb = ResultBean.fireFail();
String sourceSid = dto.getSourceSid();
SysSource sysSource = sysSourceService.fetchBySid(sourceSid);
if (sysSource == null) {
return rb.setMsg("资源不存在");
}
sysMenuService.saveMenu(dto);
return rb.success();
}
public ResultBean update(SysMenuDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
//查询菜单是否存在
SysMenu sysMenu = sysMenuService.fetchBySid(sid);
if (sysMenu == null) {
return rb.setMsg("菜单不存在");
}
String sourceSid = dto.getSourceSid();
// SysSourceMenuVo vo = sysSourceMenuService.fetchByMenuSid(sid);
// if (!sourceSid.equals(vo.getSourceSid())) {
// sysSourceMenuService.delByMenuSid(sid);
// SysSourceMenu sysSourceMenu = new SysSourceMenu();
// sysSourceMenu.setMenuSid(sid);
// sysSourceMenu.setSourceSid(dto.getSourceSid());
// sysSourceMenu.setMenuRootSid(vo.getMenuRootSid());
// sysSourceMenuService.save(sysSourceMenu);
// }
sysMenuService.updateBySid(dto, sid);
return rb.success();
}
public ResultBean updateIsEnable(String sid, Integer isEnable) {
ResultBean rb = ResultBean.fireFail();
SysMenu sysMenu = sysMenuService.fetchBySid(sid);
if (sysMenu == null) {
//查询资源是否存在
SysSource sysSource = sysSourceService.fetchBySid(sid);
if (sysSource == null) {
return ResultBean.fireFail().setMessage("菜单不存在!");
} else {
//将该资源下的所有菜单关闭
sysMenuService.updateBySourceSid(sid, isEnable);
}
} else {
sysMenu.setIsEnable(isEnable);
sysMenuService.updateById(sysMenu);
}
return rb.success();
}
/* @Override
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
sysMenuService.delByIds(ids);
return rb.success();
}*/
public ResultBean delBySids(String sid) {
ResultBean rb = ResultBean.fireFail();
SysMenu sysMenu = sysMenuService.fetchBySid(sid);
if (sysMenu == null) {
return rb.setMsg("该菜单不存在");
}
// sysSourceMenuService.delByMenuSid(sid);
sysMenuService.deleteBySid(sid);
return rb.success();
}
/* @Override
public ResultBean<SysMenuVo> fetch(String id) {
ResultBean rb = ResultBean.fireFail();
SysMenuVo vo = sysMenuService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<SysMenuVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
SysMenu sysMenu = sysMenuService.fetchBySid(sid);
SysMenuVo vo = new SysMenuVo();
BeanUtil.copyProperties(sysMenu, vo);
return rb.success().setData(vo);
}*/
}

415
src/main/java/com/yxt/user/apiadmin/SysOrganizationRest.java

@ -0,0 +1,415 @@
package com.yxt.user.apiadmin;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.QRCodeUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.user.biz.sysstafforg.SysStaffOrgService;
import com.yxt.user.biz.sysstafforg.SysStaffOrgVo;
import com.yxt.user.biz.sysuser.SysUserService;
import com.yxt.user.biz.sysorganization.*;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.util.*;
import static java.util.stream.Collectors.toList;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysOrganizationFeignFallback.java <br/>
* Class: SysOrganizationRest <br/>
* Description: 组织机构表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "组织机构表")
@RestController
@RequestMapping("v1/sysorganization")
public class SysOrganizationRest{
@Autowired
private SysOrganizationService sysOrganizationService;
@Autowired
private SysStaffOrgService sysStaffOrgService;
@Autowired
private SysStaffinfoService sysStaffinfoService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private SysUserService sysUserService;
@Autowired
private RedisUtil redisUtil;
@PostMapping("/saveSysOrg")
public ResultBean saveOrg(@RequestBody SysOrganizationDto dto){
return sysOrganizationService.saveOrg(dto);
}
public ResultBean<PagerVo<SysOrganizationVo>> listPage(@RequestBody PagerQuery<SysOrganizationQuery> pq) {
ResultBean rb = ResultBean.fireFail();
String psid = pq.getParams().getPsid();
if (StringUtils.isBlank(psid)) {
ResultBean<PagerVo<SysOrganizationVo>> r = new ResultBean<>();
return r.setMessage("父级sid不能为空!");
}
PagerVo<SysOrganizationVo> pv = sysOrganizationService.listPageVo(pq);
return rb.success().setData(pv);
}
public ResultBean<List<SysOrganizationVo>> listAll(@RequestBody SysOrganizationQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysOrganizationVo> list = sysOrganizationService.listAllVo(query);
return rb.success().setData(list);
}
public ResultBean<List<SysOrganizationVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysOrganizationVo> list = sysOrganizationService.listVo();
return rb.success().setData(list);
}
public ResultBean save(SysOrganizationDto dto) {
ResultBean rb = ResultBean.fireFail();
sysOrganizationService.saveOrUpdateDto(dto);
return rb.success();
}
public ResultBean<List<SysOrganizationVo>> selectFirstOrgList() {
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.selectFirstOrgList());
}
public ResultBean<List<SysOrganizationVo>> selectChildrenListBySid(String sid) {
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.selectChildrenListBySid(sid));
}
@Transactional(rollbackFor = Exception.class)
public ResultBean update(SysOrganizationDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
//查询该机构下的所有分管人员
List<String> stringList = sysStaffOrgService.selectByOrgSid(sid);
//根据组织sid查询组织信息
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(sid);
if (sysOrganization == null) {
return rb.setMsg("该组织机构不存在");
}
BeanUtil.copyProperties(dto, sysOrganization, "sid");
//主管人员的sid
String zgStaffSid = dto.getZgStaffSid();
//分管人员的sid
String fgStaffSid = dto.getFgStaffSid();
//查询分管人员中是否包含主管人员
if (StringUtils.isNotBlank(fgStaffSid)) {
if (StringUtils.isNotBlank(zgStaffSid)) {
if (fgStaffSid.contains(zgStaffSid)) {
return rb.setMsg("同一个组织机构中主管分管的人员不能重复");
}
}
}
//删除关联关系中的所有主管与分管的人员关系
sysStaffOrgService.delZGAndFGByOrgSid(sid);
/*if (StringUtils.isNotBlank(zgStaffSid)) {
ResultBean resultBean = sysOrganizationService.addSysStaffOrg(zgStaffSid, "1", sysOrganization);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
}*/
if (StringUtils.isNotBlank(fgStaffSid)) {
ResultBean resultBean = sysOrganizationService.addSysStaffOrg(fgStaffSid, "2", sysOrganization);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
}
sysOrganizationService.updateBySid(dto.toMap(), sid);
//修改金蝶组织信息
//==========================添加清空变化的用户的token
//查询分管人员
List<String> stringList1 = new ArrayList<>();
List<String> reduce1 = new ArrayList<>();
if(StringUtils.isNotBlank(fgStaffSid)){
stringList1 = Arrays.asList(fgStaffSid.split(","));
reduce1 = stringList1.stream().filter(item -> !stringList.contains(item)).collect(toList());
}else{
reduce1 = stringList;
}
String orgSid1 = sysStaffOrgService.getOrgByOrgSid(sid);
if(reduce1.size()>0){
for (String s : reduce1){
//查询该人员的组织机构list
List<SysStaffOrgVo> sysStaffOrgVos = sysStaffOrgService.selectByStaffS(s);
List<String> orgList = new ArrayList<>();
if (sysStaffOrgVos.size() > 0) {
for (SysStaffOrgVo vv : sysStaffOrgVos) {
String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid());
SysOrganization ss = sysOrganizationService.fetchBySid(orgSid);
if (ss != null) {
orgList.add(orgSid);
} else {
continue;
}
}
}
if(!orgList.contains(orgSid1)){
//根据staffSid查询token
String token = sysUserService.selectByStaffsid(s).getToken();
if(StringUtils.isNotBlank(token)){
//清空该token
redisUtil.remove(token);
}
}
}
}
return rb.success();
}
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
sysOrganizationService.delByIds(ids);
return rb.success();
}
public ResultBean delBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(sid)) {
return ResultBean.fireFail().setMessage("sid不能为空!");
}
String[] sidArr = sid.split(",");
sysOrganizationService.delBySids(sidArr);
return rb.success();
}
public ResultBean<SysOrganizationVo> fetch(String id) {
ResultBean rb = ResultBean.fireFail();
SysOrganizationVo vo = sysOrganizationService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<SysOrganizationVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
SysOrganization entity = sysOrganizationService.fetchBySid(sid);
List<SysStaffOrgVo> list = sysStaffOrgService.fetchByOrgSid(sid);
String fgNames = "";
String fgSids = "";
String zgNames = "";
String zgSids = "";
for (SysStaffOrgVo s : list) {
if ("1".equals(s.getManageType())) {
zgNames = zgNames + "," + s.getStaffName();
zgSids = zgSids + "," + s.getStaffSid();
}
if ("2".equals(s.getManageType())) {
fgNames = fgNames + "," + s.getStaffName();
fgSids = fgSids + "," + s.getStaffSid();
}
}
if (fgNames.length() > 1) {
fgNames = fgNames.substring(1, fgNames.length());
fgSids = fgSids.substring(1, fgSids.length());
}
if (zgNames.length() > 1) {
zgNames = zgNames.substring(1, zgNames.length());
zgSids = zgSids.substring(1, zgSids.length());
}
SysOrganizationVo vo = new SysOrganizationVo();
BeanUtil.copyProperties(entity, vo);
vo.setFgNames(fgNames);
vo.setFgStaffSid(fgSids);
vo.setZgNames(zgNames);
vo.setZgStaffSid(zgSids);
return rb.success().setData(vo);
}
public ResultBean<Map<String, Object>> selectAppOrganization(String sid) {
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> nameList = sysOrganizationService.selectOrgNameList(sid);
List<AppContactSysOrganizationVo> staffList = new ArrayList<>();
List<AppContactSysOrganizationVo> list = null;
if (StringUtils.isBlank(sid)) { // 组织架构
list = sysOrganizationService.selectAppOrganization();
} else { // 组织架构子集
list = sysOrganizationService.selectAppOrganizationSub(sid);
staffList = sysStaffinfoService.selectContactsByOrgsid(sid);
list.addAll(staffList);
}
map.put("nameList", nameList);
map.put("list", list);
// map.put("staffList", staffList);
return new ResultBean<Map<String, Object>>().success().setData(map);
}
public ResultBean<List<SysOrgVo>> selectListOrg() {
ResultBean<List<SysOrgVo>> rb = ResultBean.fireFail();
List<SysOrgVo> menuTree2VoList = sysOrganizationService.treeList();
return rb.success().setData(menuTree2VoList);
}
public ResultBean<List<SysOrgVo>> getListOrg() {
ResultBean<List<SysOrgVo>> rb = ResultBean.fireFail();
List<SysOrgVo> menuTree2VoList = sysOrganizationService.getListOrg();
return rb.success().setData(menuTree2VoList);
}
public ResultBean<List<SysOrgVo>> getListOrgByBrand(String orgSid) {
return null;//sysOrganizationService.getListOrgByBrand(orgSid);
}
public ResultBean<List<SysOrgVo>> getListOrgByBrandSid(String orgSid, String brandSid) {
return null;//sysOrganizationService.getListOrgByBrandSid(orgSid,brandSid);
}
public ResultBean<List<SysOrgVo>> getListOrgByBrandSidNo(String orgSid, String brandSid) {
return null;//sysOrganizationService.getListOrgByBrandSidNo(orgSid,brandSid);
}
public ResultBean<List<SysOrgVo>> getListDeptByOrgSid(String orgSid) {
return sysOrganizationService.getListDeptByOrgSid(orgSid);
}
public ResultBean<SysOrganizationVo> getUseOrgByUserSid(String userSid) {
ResultBean<SysOrganizationVo> rb = ResultBean.fireFail();
SysOrganizationVo vo = sysOrganizationService.getUseOrgByUserSid(userSid);
return rb.success().setData(vo);
}
public ResultBean<SysOrganization> selectBySid(String sid) {
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(sid);
if (sysOrganization == null) {
return new ResultBean<SysOrganization>().fail().setData(new SysOrganization());
}
return new ResultBean<SysOrganization>().success().setData(sysOrganization);
}
public ResultBean<List<Map<String, String>>> selectUseOrgSidBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
List<Map<String, String>> maps = sysOrganizationService.selectUseOrgSidBySid(sid);
return rb.success().setData(maps);
}
/**
* 查询公司所有的部门
*
* @return
*/
public ResultBean<List<SysOrgListVo>> selectListOne() {
ResultBean<List<SysOrgListVo>> rb = ResultBean.fireFail();
List<SysOrgListVo> sysOrgListVo = sysOrganizationService.selectTreeList();
if (sysOrgListVo.size() == 0) {
List<SysOrgListVo> list = new ArrayList();
list.add(new SysOrgListVo());
return rb.setData(list);
}
return rb.success().setData(sysOrgListVo);
}
public ResultBean<QrCodeVo> getQrCode(String sid) {
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(sid);
if (sysOrganization == null) {
return new ResultBean<QrCodeVo>().fail().setMsg("部门不存在");
}
if (StringUtils.isBlank(sysOrganization.getQrText())) {
File file = new File(fileUploadComponent.getUploadPath() + "qrCode");
QRCodeUtil.createCodeToFile(sysOrganization.getSid() + "#" + sysOrganization.getId() + "#" + "q", file, sysOrganization.getName() + sysOrganization.getId() + ".png");
//将该二维码地址放进部门表中的二维码图片地址中
String path = fileUploadComponent.getUrlPrefix() + "qrCode/" + sysOrganization.getName() + sysOrganization.getId() + ".png";
sysOrganizationService.updateQrCodePath(sid, path);
}
QrCodeVo qrCodeVo = sysOrganizationService.getQrCodeVo(sid);
String orgSidPath = sysOrganization.getOrgSidPath();
String[] split = orgSidPath.split("/");
for (String s : split) {
SysOrganization sysOrganization1 = sysOrganizationService.fetchBySid(s);
Integer isDept = sysOrganization1.getIsDept();
String psid = sysOrganization1.getPsid();
if (isDept != null) {
if (isDept == 0 && !psid.equals(0)) {
qrCodeVo.setOrganizationName(sysOrganization1.getName());
break;
}
}
}
return new ResultBean<QrCodeVo>().success().setData(qrCodeVo);
}
public ResultBean<String> getOrgSid(String sid) {
ResultBean<String> rb = ResultBean.fireFail();
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(sid);
if (sysOrganization == null) {
return rb.setMsg("该组织不存在");
}
String orgSid = sysOrganizationService.getOrgSid(sid);
return rb.success().setData(orgSid);
}
public ResultBean<List<SysOrganizationListVo>> selectOrgList(SysOrganizationListQuery query) {
return sysOrganizationService.selectOrgList(query);
}
public ResultBean<List<SysOrganizationListsVo>> selectOrgLists(SysOrganizationListQuery query) {
return sysOrganizationService.selectOrgLists(query);
}
public ResultBean<SysOrganizationVo> selectByPSid(String sid, String name) {
return sysOrganizationService.selectByPSid(sid,name);
}
public ResultBean<List<SysOrganizationVo>> selectOrgSidList() {
ResultBean<List<SysOrganizationVo>> rb = ResultBean.fireFail();
List<SysOrganizationVo> stringList = sysOrganizationService.selectOrgSidList();
return rb.success().setData(stringList);
}
public ResultBean<List<SysOrganizationVo>> selectOrgByPSid(String psid) {
return sysOrganizationService.selectOrgByPSid(psid);
}
public ResultBean<SysOrganizationVo> selectByOrgSidPath(String orgSidPath) {
return sysOrganizationService.selectByOrgSidPath(orgSidPath);
}
}

153
src/main/java/com/yxt/user/apiadmin/SysRoleRest.java

@ -0,0 +1,153 @@
package com.yxt.user.apiadmin;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysrole.*;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysRoleFeignFallback.java <br/>
* Class: com.yxt.anrui.portal.biz.sysrole.SysRoleRest <br/>
* Description: 角色. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "角色")
@RestController
@RequestMapping("v1/sysrole")
public class SysRoleRest {
@Autowired
private SysRoleService sysRoleService;
public ResultBean<PagerVo<SysRoleVo>> listPage(@RequestBody PagerQuery<SysRoleQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SysRoleVo> pv = sysRoleService.listPageVo(pq);
return rb.success().setData(pv);
}
public ResultBean<List<SysRoleVo>> listAll(@RequestBody SysRoleQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysRoleVo> list = sysRoleService.listAllVo(query);
return rb.success().setData(list);
}
public ResultBean<List<SysRoleVo>> listAllByUserSid(String userSid) {
ResultBean rb = ResultBean.fireFail();
List<SysRoleVo> list = sysRoleService.listAllByUserSid(userSid);
return rb.success().setData(list);
}
public ResultBean<List<SysRoleVo>> fetchByUserSid(String userSid) {
if(StringUtils.isBlank(userSid)){
return new ResultBean<List<SysRoleVo>>().fail().setMsg("userSid不能为空");
}
ResultBean rb = ResultBean.fireFail();
List<SysRoleVo> list = sysRoleService.fetchByUserSid(userSid);
return rb.success().setData(list);
}
public ResultBean<List<SysRoleVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<SysRoleVo> list = sysRoleService.listVo();
return rb.success().setData(list);
}
public ResultBean save(SysRoleDto dto){
String name = dto.getName();
if(StringUtils.isBlank(name)){
return new ResultBean<List<SysRoleVo>>().fail().setMsg("角色名称不能为空!");
}else{
SysRoleVo sysRoleVo = sysRoleService.fetchByName(name);
if(sysRoleVo.getName()!=null){
return new ResultBean<List<SysRoleVo>>().fail().setMsg("角色名称不能重复!");
}
}
ResultBean rb = ResultBean.fireFail();
sysRoleService.saveOrUpdateDto(dto);
return rb.success();
}
public ResultBean update(SysRoleDto dto,String sid){
String roleName = dto.getName();
if(StringUtils.isBlank(sid)){
return new ResultBean<List<SysRoleVo>>().fail().setMsg("角色sid不能为空!");
}
if(StringUtils.isBlank(roleName)){
return new ResultBean<List<SysRoleVo>>().fail().setMsg("角色名称不能为空!");
}else{
SysRoleVo sysRoleVo = sysRoleService.fetchByName(roleName);
if(sysRoleVo.getName()!=null&&!sid.equals(sysRoleVo.getSid())){
return new ResultBean<List<SysRoleVo>>().fail().setMsg("角色名称不能重复!");
}
}
ResultBean rb = ResultBean.fireFail();
sysRoleService.updateBySid(dto.toMap(),sid);
return rb.success();
}
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
sysRoleService.delByIds(ids);
return rb.success();
}
public ResultBean delBySids(String sids) {
ResultBean rb = ResultBean.fireFail();
sysRoleService.delBySids(sids);
return rb.success();
}
public ResultBean<SysRoleVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
SysRoleVo vo = sysRoleService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<SysRoleVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
SysRoleVo vo = sysRoleService.fetchBySidVo(sid);
if (StringUtils.isBlank(vo.getSid())) {
return rb.success().setData(null);
}
return rb.success().setData(vo);
}
public ResultBean setIsEnable(String sid, String isEnable) {
SysRole role = sysRoleService.fetchBySid(sid);
if (role == null) {
return ResultBean.fireFail().setMsg("此角色已不存在");
}
int i = sysRoleService.updateIsEnable(sid, isEnable);
if (i == 0) {
return ResultBean.fireFail().setMsg("设置失败");
}
return ResultBean.fireSuccess().setMsg("设置成功");
}
}

131
src/main/java/com/yxt/user/apiadmin/SysSourceRest.java

@ -0,0 +1,131 @@
package com.yxt.user.apiadmin;
//import com.yxt.user.biz.systemlog.SystemLog;
import com.yxt.user.biz.sysuser.SysUser;
//import com.yxt.user.biz.systemlog.SystemLogService;
import com.yxt.user.biz.sysuser.SysUserService;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.syssource.*;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSourceFeignFallback.java <br/>
* Class: com.yxt.user.biz.syssource.SysSourceRest <br/>
* Description: 资源表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "资源表")
@RestController
@RequestMapping("v1/syssource")
public class SysSourceRest {
// @Autowired
// private SystemLogService systemLogService;
@Autowired
private SysUserService sysUserService;
@Autowired(required = false)
private HttpServletRequest httpServletRequest;
@Autowired
private SysSourceService sysSourceService;
@Autowired
private RedisUtil redisUtil;
public ResultBean<PagerVo<SysSourceVo>> listPage(@RequestBody PagerQuery<SysSourceQuery> pq){
String token = httpServletRequest.getHeader("token");
String s = redisUtil.get(token);
SysUser sysUser = sysUserService.fetchByUserName(s);
// SystemLog systemLog = new SystemLog();
// systemLog.setUserSid(sysUser.getSid());
// systemLog.setCreateTime(new Date());
// systemLog.setEventName("人员岗位保存");
// systemLog.setEventContent("");
// systemLog.setEventUrl("/portal/v1/sysstaffpost/save");
// systemLog.setUserIp("0.0.0.0");
// systemLog.setUserName(sysUser.getUserName());
// systemLogService.save(systemLog);
ResultBean rb = ResultBean.fireFail();
PagerVo<SysSourceVo> pv = sysSourceService.listPageVo(pq);
return rb.success().setData(pv);
}
public ResultBean<List<SysSourceVo>> listAll(@RequestBody SysSourceQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysSourceVo> list = sysSourceService.listAllVo(query);
return rb.success().setData(list);
}
public ResultBean<List<SysSourceVo>> listAllByRoleSid(SysSourceQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysSourceVo> list = sysSourceService.listAllByRoleSid(query);
return rb.success().setData(list);
}
public ResultBean<List<SysSourceVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<SysSourceVo> list = sysSourceService.listVo();
return rb.success().setData(list);
}
public ResultBean save(SysSourceDto dto){
ResultBean rb = ResultBean.fireFail();
sysSourceService.saveOrUpdateDto(dto);
return rb.success();
}
public ResultBean update(SysSourceDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
sysSourceService.updateBySid(dto.toMap(),sid);
return rb.success();
}
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
sysSourceService.delByIds(ids);
return rb.success();
}
public ResultBean delBySids(String sids) {
ResultBean rb = ResultBean.fireFail();
String[] sidArr = sids.split(",");
sysSourceService.delBySids(sidArr);
return rb.success();
}
public ResultBean<SysSourceVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
SysSourceVo vo = sysSourceService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<SysSourceVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
SysSourceVo vo = sysSourceService.fetchBySidVo(sid);
return rb.success().setData(vo);
}
}

162
src/main/java/com/yxt/user/apiadmin/SysStaffOrgRest.java

@ -0,0 +1,162 @@
package com.yxt.user.apiadmin;
import com.yxt.user.biz.sysstafforg.*;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffOrgFeignFallback.java <br/>
* Class: com.yxt.user.biz.sysstafforg.SysStaffOrgRest <br/>
* Description: 员工部门关联表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "员工部门关联表")
@RestController
@RequestMapping("v1/sysstafforg")
public class SysStaffOrgRest {
@Autowired
private SysStaffOrgService sysStaffOrgService;
public ResultBean<PagerVo<SysStaffOrgVo>> listPage(@RequestBody PagerQuery<SysStaffOrgQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<SysStaffOrgVo> pv = sysStaffOrgService.listPageVo(pq);
return rb.success().setData(pv);
}
public ResultBean<List<SysStaffOrgVo>> listAll(@RequestBody SysStaffOrgQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysStaffOrgVo> list = sysStaffOrgService.listAllVo(query);
return rb.success().setData(list);
}
public ResultBean<List<SysStaffOrgVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysStaffOrgVo> list = sysStaffOrgService.listVo();
return rb.success().setData(list);
}
public ResultBean<List<SysStaffOrgVo>> staffinfoList(@RequestBody SysStaffOrgQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysStaffOrgVo> list = sysStaffOrgService.staffinfoList(query);
return rb.success().setData(list);
}
public ResultBean save(SysStaffOrgDto dto) {
ResultBean rb = ResultBean.fireFail();
sysStaffOrgService.saveOrUpdateDto(dto);
return rb.success();
}
public ResultBean update(SysStaffOrgDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
sysStaffOrgService.updateBySid(dto.toMap(), sid);
return rb.success();
}
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
sysStaffOrgService.delByIds(ids);
return rb.success();
}
public ResultBean<SysStaffOrgVo> fetch(String id) {
ResultBean rb = ResultBean.fireFail();
SysStaffOrgVo vo = sysStaffOrgService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<List<SysStaffOrgVo>> getSysStaffOrgListByStaffSid(String staffSid) {
List<SysStaffOrgVo> list = sysStaffOrgService.getSysStaffOrgListByStaffSid(staffSid);
if (list.size() > 0) {
return new ResultBean<List<SysStaffOrgVo>>().success().setData(list);
} else {
return new ResultBean().fail().setMsg("该员工无部门").setData(list);
}
}
public ResultBean<String> getSysStaffOrgSidListByStaffSid(String staffSid) {
String orgSids = sysStaffOrgService.getSysStaffOrgSidListByStaffSid(staffSid);
if (StringUtils.isNotBlank(orgSids)) {
return new ResultBean<String>().success().setData(orgSids);
} else {
return new ResultBean().fail().setMsg("该员工无部门").setData("");
}
}
public ResultBean<String> selectSidPathByStaffSid(String applySid) {
return sysStaffOrgService.selectSidPathByStaffSid(applySid);
}
public ResultBean<String> getOrgSidBySid(String orgSid) {
ResultBean<String> rb = ResultBean.fireFail();
String orgPathSid = sysStaffOrgService.getOrgByOrgSid(orgSid);
return rb.success().setData(orgPathSid);
}
public ResultBean<SysStaffOrg> getOrgByStaffSid(String staffSid) {
ResultBean<SysStaffOrg> rb = ResultBean.fireFail();
SysStaffOrg sysStaffOrg = sysStaffOrgService.getOrgByStaffSid(staffSid);
return rb.success().setData(sysStaffOrg);
}
public ResultBean<String> getOrgSidByPath(String orgPath) {
return sysStaffOrgService.getOrgSidByPath(orgPath);
}
public ResultBean<String> getOrgSidByPath2(String orgPath) {
return sysStaffOrgService.getOrgSidByPath2(orgPath);
}
public ResultBean<List<SysStaffOrgByUserVo>> selAllByOrgPath(String orgSidPath,String roleSid) {
return sysStaffOrgService.selAllByOrgPath(orgSidPath,roleSid);
}
public ResultBean<List<SysStaffOrgByUserVo>> selAllByOrgSidPath(String orgSidPath) {
return sysStaffOrgService.selAllByOrgSidPath(orgSidPath);
}
public ResultBean<SysStaffOrg> selectAllByStaffSid(String staffSid) {
return sysStaffOrgService.selectAllByStaffSid(staffSid);
}
public ResultBean<String> getPathSidByUserSid(String applySid) {
return sysStaffOrgService.getPathSidByUserSid(applySid);
}
}

124
src/main/java/com/yxt/user/apiadmin/SysStaffPostRest.java

@ -0,0 +1,124 @@
package com.yxt.user.apiadmin;
import com.yxt.user.biz.sysstaffpost.SysStaffPostDto;
import com.yxt.user.biz.sysstaffpost.SysStaffPostQuery;
import com.yxt.user.biz.sysstaffpost.SysStaffPostVo;
//import com.yxt.user.biz.systemlog.SystemLog;
import com.yxt.user.biz.sysuser.SysUser;
//import com.yxt.user.biz.systemlog.SystemLogService;
import com.yxt.user.biz.sysuser.SysUserService;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysstaffpost.SysStaffPostService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffPostFeignFallback.java <br/>
* Class: com.yxt.user.biz.sysstaffpost.SysStaffPostRest <br/>
* Description: 员工岗位关联表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "员工岗位关联表")
@RestController
@RequestMapping("v1/sysstaffpost")
public class SysStaffPostRest {
@Autowired
private RedisUtil redisUtil;
@Autowired
private SysStaffPostService sysStaffPostService;
// @Autowired
// private SystemLogService systemLogService;
@Autowired
private SysUserService sysUserService;
@Autowired(required = false)
private HttpServletRequest httpServletRequest;
public ResultBean<PagerVo<SysStaffPostVo>> listPage(@RequestBody PagerQuery<SysStaffPostQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<SysStaffPostVo> pv = sysStaffPostService.listPageVo(pq);
return rb.success().setData(pv);
}
public ResultBean<List<SysStaffPostVo>> listAll(@RequestBody SysStaffPostQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysStaffPostVo> list = sysStaffPostService.listAllVo(query);
return rb.success().setData(list);
}
public ResultBean<List<SysStaffPostVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysStaffPostVo> list = sysStaffPostService.listVo();
return rb.success().setData(list);
}
public ResultBean save(SysStaffPostDto dto) {
ResultBean rb = ResultBean.fireFail();
sysStaffPostService.saveOrUpdateDto(dto);
String token = httpServletRequest.getHeader("token");
String s = redisUtil.get(token);
SysUser sysUser = sysUserService.fetchByUserName(s);
// SystemLog systemLog = new SystemLog();
// systemLog.setUserSid(sysUser.getSid());
// systemLog.setCreateTime(new Date());
// systemLog.setEventName("人员岗位保存");
// systemLog.setEventContent("");
// systemLog.setEventUrl("/portal/v1/sysstaffpost/save");
// systemLog.setUserIp("0.0.0.0");
// systemLog.setUserName(sysUser.getUserName());
// systemLogService.save(systemLog);
return rb.success();
}
public ResultBean update(SysStaffPostDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
sysStaffPostService.updateBySid(dto.toMap(), sid);
return rb.success();
}
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
sysStaffPostService.delByIds(ids);
return rb.success();
}
public ResultBean<SysStaffPostVo> fetch(String id) {
ResultBean rb = ResultBean.fireFail();
SysStaffPostVo vo = sysStaffPostService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<String> selectPost(String sid) {
ResultBean<String> rb = ResultBean.fireFail();
String s = sysStaffPostService.selecctPost(sid);
if(StringUtils.isBlank(s)){
return rb.setMsg("操作失败");
}
return rb.success().setData(s);
}
}

235
src/main/java/com/yxt/user/apiadmin/SysStaffinfoRest.java

@ -0,0 +1,235 @@
package com.yxt.user.apiadmin;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.user.biz.sysstaffinfo.*;
import com.yxt.user.biz.sysstaffinfo.app.AppSysStaffQuery;
import com.yxt.user.biz.sysstaffinfo.app.AppSysStaffVo;
import com.yxt.user.biz.sysuser.SysUserService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysstaffinfo.SysStaffinfoService;
import io.swagger.annotations.Api;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffinfoFeignFallback.java <br/>
* Class: com.yxt.user.biz.sysstaffinfo.SysStaffinfoRest <br/>
* Description: 人员基础信息表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "人员基础信息表")
@RestController
@RequestMapping("v1/sysstaffinfo")
public class SysStaffinfoRest{
private final Long PAGECURRENT = 2L;
private final Long PAGESIZE = 2L;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Autowired
private SysStaffinfoService sysStaffinfoService;
@Autowired
private SysUserService sysUserService;
@Autowired
private FileUploadComponent fileUploadComponent;
/**
* 员工管理的分页列表
*
* @param pq 查询条件
* @return
*/
public ResultBean<PagerVo<SysStaffinfoVo>> listPage(@RequestBody PagerQuery<SysStaffinfoQuery> pq) {
ResultBean<PagerVo<SysStaffinfoVo>> rb = ResultBean.fireFail();
IPage<SysStaffinfoVo> page = sysStaffinfoService.pagerList(pq);
PagerVo<SysStaffinfoVo> pv = new PagerVo<>();
PagerVo<SysStaffinfoVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);
}
/**
* 员工信息的新增保存
*
* @param dto 数据传输对象
* @return
*/
public ResultBean save(SysStaffinfoDto dto) {
ResultBean rb = ResultBean.fireFail();
ResultBean resultBean = sysStaffinfoService.saveStaffInfo(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setMsg(resultBean.getMsg());
}
/**
* 员工信息的修改保存
*
* @param dto 数据传输对象
* @param sid 员工信息sid
* @return
*/
public ResultBean update(SysStaffinfoDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
ResultBean resultBean = sysStaffinfoService.updateStaffInfo(dto, sid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setMsg(resultBean.getMsg());
}
/**
* 进行删除操作即设置员工类型为离职类型02的操作
*
* @param sysStaffQuery 数据传输对象
* @return
*/
public ResultBean del(SysStaffQuery sysStaffQuery) {
ResultBean rb = ResultBean.fireFail();
//查询员工是否是离职
SysStaffinfo sysStaffinfo = sysStaffinfoService.fetchBySid(sysStaffQuery.getSid());
if (sysStaffinfo == null) {
return rb.setMsg("员工不存在");
}
if ("01".equals(sysStaffinfo.getPersonTypeKey())) {
return rb.setMsg("此员工已是离职人员");
}
int i = sysStaffinfoService.del(sysStaffQuery);
if (i == 0) {
return rb.setMsg("失败");
}
return rb.success().setMsg("成功");
}
public ResultBean<SysStaffinfoDetailsVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
SysStaffinfoDetailsVo sysStaffinfo = sysStaffinfoService.selectDetailsBySid(sid);
if (sysStaffinfo == null) {
return rb.setData(new SysStaffinfoDetailsVo());
}
return rb.success().setData(sysStaffinfo);
}
public ResultBean<List<Map<String, String>>> getStaffName(String staffName, String deptSid) {
ResultBean rb = ResultBean.fireFail();
List<Map<String, String>> staffNameList = sysStaffinfoService.getStaffName(staffName, deptSid);
return rb.success().setData(staffNameList);
}
public ResultBean<List<Map<String, String>>> getStaffNameByDeptSid(String staffName, String deptSid) {
ResultBean rb = ResultBean.fireFail();
List<Map<String, String>> staffNameList = sysStaffinfoService.getStaffNameByDeptSid(staffName, deptSid);
return rb.success().setData(staffNameList);
}
public ResultBean<List<SysStaffinfoAppContactsVo>> selectAppContactsList(String names) {
return new ResultBean<List<SysStaffinfoAppContactsVo>>().success().setData(sysStaffinfoService.selectAppContactsList());
}
public ResultBean<AppContactsDetailsVo> selectAppContactsVO(String staffSid) {
if (StringUtils.isBlank(staffSid)) {
return new ResultBean<AppContactsDetailsVo>().fail().setMsg("staffSid不能为空");
}
AppContactsDetailsVo appContactsDetailsVo = sysStaffinfoService.selectAppContactsVO(staffSid);
if (appContactsDetailsVo == null) {
return new ResultBean<AppContactsDetailsVo>().fail().setMsg("查无此人信息");
}
if (StringUtils.isNotBlank(appContactsDetailsVo.getHeadImage())) {
appContactsDetailsVo.setHeadImage(fileUploadComponent.getUrlPrefix() + appContactsDetailsVo.getHeadImage());
}
List<String> stringList = sysUserService.getPost(staffSid);
stringList.removeAll(Collections.singleton(null));
if (!stringList.isEmpty()) {
appContactsDetailsVo.setPosition(String.join("|", stringList));
}
return new ResultBean<AppContactsDetailsVo>().success().setData(appContactsDetailsVo);
}
public ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>> searchAppContactsList(PagerQuery<SysStaffinfoQuery> pq) {
String names = pq.getParams().getName();
if (StringUtils.isBlank(names))
return new ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>>().fail().setMsg("搜索内容不能为空");
PagerVo<SysStaffinfoAppContactsSearchVo> page1 = new PagerVo<>();
IPage<SysStaffinfoAppContactsSearchVo> iPage = sysStaffinfoService.searchAppContactsList(pq, names);
//把Ipage转换为PageVo
PagerVo<SysStaffinfoAppContactsSearchVo> pv_result = PagerUtil.pageToVo(iPage, page1);
pv_result.setMsg("找到 " + pv_result.getTotal() + " 个联系人 ");
return new ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>>().success().setData(pv_result);
}
public ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>> searchAppContactsList2(PagerQuery<SysStaffinfoQuery> pq) {
PagerVo<SysStaffinfoAppContactsSearchVo> page1 = new PagerVo<>();
IPage<SysStaffinfoAppContactsSearchVo> iPage = sysStaffinfoService.searchAppContactsList2(pq);
//把Ipage转换为PageVo
PagerVo<SysStaffinfoAppContactsSearchVo> pv_result = PagerUtil.pageToVo(iPage, page1);
pv_result.setMsg("找到 " + pv_result.getTotal() + " 个联系人 ");
return new ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>>().success().setData(pv_result);
}
public ResultBean<List<PcSysStaffVo>> selectStaffList(PcSysStaffQuery pcSysStaffQuery) {
return sysStaffinfoService.selectStaffList(pcSysStaffQuery);
}
public ResultBean<PagerVo<AppSysStaffVo>> getUserList(PagerQuery<AppSysStaffQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<AppSysStaffVo> pv = sysStaffinfoService.getUserList(pagerQuery);
return rb.success().setData(pv);
}
public ResultBean<List<AppSysStaffVo>> getGressionUserList(String userSid) {
return sysStaffinfoService.getGressionUserList(userSid, "");
}
public ResultBean<List<AppSysStaffVo>> getGressionUserList(String userSid, String orgPath) {
return sysStaffinfoService.getGressionUserList(userSid, orgPath);
}
public ResultBean<List<PcSysStaffVo>> selectStaffLists() {
return sysStaffinfoService.selectStaffLists();
}
public ResultBean<List<PcSysStaffVo>> selectStaffListss() {
return sysStaffinfoService.selectStaffListss();
}
}

34
src/main/java/com/yxt/user/apiadmin/SysUserDefaultOrgRest.java

@ -0,0 +1,34 @@
package com.yxt.user.apiadmin;
import com.yxt.common.core.result.ResultBean;
import com.yxt.user.biz.sysuserdefaultorg.SysUserDefaultOrgDto;
import com.yxt.user.biz.sysuserdefaultorg.SysUserDefaultOrgService;
import com.yxt.user.biz.sysuserdefaultorg.SysUserDefaultOrgVo;
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 {
@Autowired
private SysUserDefaultOrgService sysUserDefaultOrgService;
public ResultBean<SysUserDefaultOrgVo> getList(String userSid) {
return sysUserDefaultOrgService.getList(userSid);
}
public ResultBean saveOrUpdate(SysUserDefaultOrgDto dto) {
return sysUserDefaultOrgService.saveDefaultOrg(dto);
}
}

619
src/main/java/com/yxt/user/apiadmin/SysUserRest.java

@ -0,0 +1,619 @@
package com.yxt.user.apiadmin;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.utils.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysorganization.SysOrganization;
import com.yxt.user.biz.sysorganization.SysOrganizationService;
import com.yxt.user.biz.syspost.SysPost;
import com.yxt.user.biz.syspost.SysPostService;
import com.yxt.user.biz.sysstaffinfo.SysStaffinfo;
import com.yxt.user.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.user.biz.sysstaffinfo.SysStaffinfoVo;
import com.yxt.user.biz.sysstafforg.SysStaffOrg;
import com.yxt.user.biz.sysstafforg.SysStaffOrgService;
import com.yxt.user.biz.sysstaffpost.SysStaffPost;
import com.yxt.user.biz.sysstaffpost.SysStaffPostService;
import com.yxt.user.biz.sysuser.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysUserFeignFallback.java <br/>
* Class: com.yxt.anrui.portal.biz.sysuser.SysUserRest <br/>
* Description: 用户表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "用户表")
@RestController
@RequestMapping("v1/sysuser")
public class SysUserRest {
@Autowired
private RedisUtil redisUtil;
@Autowired
private SysUserService sysUserService;
@Autowired
private SysStaffinfoService sysStaffinfoService;
@Autowired
private SysStaffOrgService sysStaffOrgService;
@Autowired
private SysStaffPostService sysStaffPostService;
@Autowired
private SysOrganizationService sysOrganizationService;
@Autowired
private SysPostService sysPostService;
@Autowired
private HttpServletRequest httpServletRequest;
// @Autowired
// private SystemLogService systemLogService;
// 定义点选文字图片验证码允许的误差值
private static final int ERROR_AMOUNT = 50;// 定义允许的误差值,单位是px
public ResultBean<PagerVo<SysUserVo>> listPage(@RequestBody PagerQuery<SysUserQuery> pq) {
ResultBean rb = ResultBean.fireFail();//roleSid
PagerVo<SysUserVo> pv = sysUserService.listPageVo(pq);
return rb.success().setData(pv);
}
public ResultBean<List<SysUserVo>> listAll(@RequestBody SysUserQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysUserVo> list = sysUserService.listAllVo(query);
return rb.success().setData(list);
}
public ResultBean<List<SysUserVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysUserVo> list = sysUserService.listVo();
return rb.success().setData(list);
}
public ResultBean save(SysUserDto dto) {
ResultBean rb = ResultBean.fireFail();
//手机号
String mobile = dto.getMobile();
//姓名
String name = dto.getName();
//用户类型
int userType = dto.getUserType();
//部门sid
String deptSid = dto.getDeptSid();
//岗位sid
String postSid = dto.getPostSid();
//验证码
String verificationCode = dto.getVerificationCode();
if (StringUtils.isBlank(mobile)) {
return new ResultBean<SysUserVo>().fail().setMsg("手机号不能为空");
} else {
SysUser one = sysUserService.fetchByUserName(mobile);
if (null != one) {
return new ResultBean<SysUserVo>().fail().setMsg("手机号重复!`");
}
}
if (StringUtils.isBlank(name)) {
return new ResultBean<SysUserVo>().fail().setMsg("姓名不能为空");
}
if (userType == 0) {
return new ResultBean<SysUserVo>().fail().setMsg("用户类型不能为空");
}
if (StringUtils.isBlank(verificationCode)) {
return new ResultBean<SysUserVo>().fail().setMsg("验证码不能为空");
} else {
Map<String, Object> stringObjectMap = sysUserService.mobileValidateRegister(mobile, verificationCode);
String code = stringObjectMap.get("code").toString();
String details = stringObjectMap.get("details").toString();
if (Tools.CODE_FAIL.equals(code)) {
return ResultBean.fireFail().setMessage(details).setMsg(details);
}
}
//"15097329653";
String password = mobile.substring(5, 11);
String md5 = Encodes.md5(password);
SysStaffinfo ssi = new SysStaffinfo();
SysUser su = new SysUser();
dto.fillEntity(su);
su.setStaffSid(ssi.getSid());
su.setUserName(mobile);
su.setPassword(md5);
su.setIsAdmin("1");
sysUserService.save(su);
ssi.setName(name);
ssi.setMobile(mobile);
ssi.setPinYinName(PinYinUtils.getPinYinName(name));
ssi.setFirstPinYinLabel(PinYinUtils.getCharDuoPinYinChar(name));
sysStaffinfoService.save(ssi);
if (StringUtils.isNotBlank(deptSid)) {
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(deptSid);
SysStaffOrg sso = new SysStaffOrg();
sso.setOrgName(sysOrganization.getName());
sso.setOrgSid(sysOrganization.getSid());
sso.setStaffSid(ssi.getSid());
sso.setOrgSidPath(sysOrganization.getOrgSidPath());
sso.setOrgNamePath(sysOrganization.getName());
sso.setManageType("3");
sysStaffOrgService.save(sso);
}
if (StringUtils.isNotBlank(postSid)) {
SysPost sysPost = sysPostService.fetchBySid(postSid);
SysStaffPost ssp = new SysStaffPost();
ssp.setStaffSid(ssi.getSid());
ssp.setOrgSid(deptSid);
ssp.setPostSid(postSid);
ssp.setStartDate(new Date());
ssp.setIsDepetHead(0);
sysStaffPostService.save(ssp);
}
return rb.success();
}
public ResultBean delSysUserByMobile(String mobile) {
int i = sysUserService.delSysUserByMobile(mobile);
if (i == 0) {
return new ResultBean().fail().setMsg("删除失败");
}
return new ResultBean().success().setMsg("删除成功");
}
public ResultBean<SysStaffinfoVo> getSysUserByMobile(String staffSid) {
ResultBean rb = ResultBean.fireFail();
SysStaffinfoVo user = sysUserService.getSysUserByMobile(staffSid);
return rb.success().setData(user);
}
public ResultBean update(SysUserDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
sysUserService.updateBySid(dto.toMap(), sid);
//部门sid
String deptSid = dto.getDeptSid();
//岗位sid
String postSid = dto.getPostSid();
SysUser sysUser = sysUserService.fetchBySid(sid);
SysStaffinfo ssi = sysStaffinfoService.fetchBySid(sysUser.getStaffSid());
ssi.setMobile(dto.getMobile());
ssi.setName(dto.getName());
sysStaffinfoService.updateById(ssi);
if (StringUtils.isNotBlank(deptSid)) {
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(deptSid);
sysStaffOrgService.deleteByStaffSid(sysUser.getStaffSid());
SysStaffOrg sso = new SysStaffOrg();
sso.setOrgName(sysOrganization.getName());
sso.setOrgSid(sysOrganization.getSid());
sso.setStaffSid(ssi.getSid());
sso.setOrgSidPath(sysOrganization.getOrgSidPath());
sso.setOrgNamePath(sysOrganization.getName());
sso.setManageType("3");
sysStaffOrgService.save(sso);
}
if (StringUtils.isNotBlank(postSid)) {
SysPost sysPost = sysPostService.fetchBySid(postSid);
sysStaffPostService.deleteByStaffSid(sysUser.getStaffSid());
SysStaffPost ssp = new SysStaffPost();
ssp.setStaffSid(ssi.getSid());
ssp.setOrgSid(deptSid);
ssp.setPostSid(postSid);
ssp.setStartDate(new Date());
ssp.setIsDepetHead(0);
sysStaffPostService.save(ssp);
}
return rb.success();
}
/**
* 修改密码()
*
* @param original 原始密码
* @param password 密码
* @param confirmPassword 确认密码
* @return
*/
public ResultBean updatePassword(String original, String password, String confirmPassword, String userSid, HttpServletRequest httpServletRequest) {
String token = httpServletRequest.getHeader("token");
// 根据redisToken查询用户信息
SysUser user = sysUserService.fetchBySid(userSid);
if (user == null) {
return ResultBean.fireFail().setMsg("抱歉,用户不存在");
}
if (!password
.matches("^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{8,16}$")) {
return ResultBean.fireFail().setMsg("密码格式错误,必须为8至16位大小写字母和数字的组合");
}
String newPassword = Encodes.md5(original);
if (!newPassword.equals(user.getPassword())) {
return ResultBean.fireFail().setMsg("原始密码输入错误");
}
if (!password.equals(confirmPassword)) {
return ResultBean.fireFail().setMsg("密码和确认密码不一致");
}
int i = sysUserService.updatePassword(user.getSid(), Encodes.md5(password));
if (i == 0) {
return ResultBean.fireFail().setMsg("修改失败");
}
redisUtil.remove(token);
return ResultBean.fireSuccess().setMsg("修改成功");
}
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
sysUserService.delByIds(ids);
return rb.success();
}
public ResultBean delBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
sysUserService.delBySid(sid);
return rb.success();
}
public ResultBean<SysUserVo> selectByUserName(String mobile) {
SysUser user = sysUserService.selectByUserName(mobile);
SysUserVo sysUserVo = new SysUserVo();
BeanUtil.copyProperties(user, sysUserVo);
return new ResultBean().success().setData(sysUserVo);
}
public ResultBean<SysUserVo> fetch(String id) {
ResultBean rb = ResultBean.fireFail();
SysUserVo vo = sysUserService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<SysUserVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
SysUserVo vo = sysUserService.fetchBySidVo(sid);
return rb.success().setData(vo);
}
public ResultBean<List<SysUserVo>> fetchBySids(String sids) {
ResultBean rb = ResultBean.fireFail();
List<SysUserVo> vo = sysUserService.fetchBySidSVo(sids);
return rb.success().setData(vo);
}
public ResultBean reGetPwd(String userName, String userPhone) {
return sysUserService.reGetPwd(userName, userPhone);
}
public ResultBean initPwd(String sid) {
if (!sysUserService.initPwd(sid)) {
return ResultBean.fireFail().setMsg("初始化密码失败");
}
return ResultBean.fireSuccess().setMsg("初始化密码成功");
}
@PostMapping("/login")
@ResponseBody
@ApiOperation(value = "3、登录")
@ApiOperationSupport(order = 30)
public ResultBean<SysUserVo> login(SysUserQuery userQuery) {
String userName = userQuery.getUserName();
String password = userQuery.getPassword();
String verifyCode = userQuery.getVerifyCode();
String type =userQuery.getType();
SysUser user = null;
//密码登录
if(type.equals("1")){
if (StringUtils.isBlank(userName)) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名不能为空");
}
if (StringUtils.isBlank(password)) {
return new ResultBean<SysUserVo>().fail().setMsg("密码不能为空");
}
// 验证通过之后删除redis上的验证过的该条uuid
user = sysUserService.selectByUserName(userName);
String md5 = Encodes.md5(password);
if (user == null) {
//根据手机号查询用户是否存在
user = sysUserService.selectByMobile(userName);
if (user == null) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
} else {
if (!md5.equals(user.getPassword())) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
}
}
} else {
if (!(md5.equals(user.getPassword()))) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
}
}
}else{
//验证码登录
if (StringUtils.isBlank(verifyCode)) return new ResultBean<SysUserVo>().fail().setMsg("验证码不能为空");
String codeFromRedis = redisUtil.get("loginCode" + userName);
if (StringUtils.isBlank(codeFromRedis))
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送");
if (verifyCode.equals(codeFromRedis.substring(0, 4))) {
user = sysUserService.selectByUserName(userName);
if(user==null){
return new ResultBean<SysUserVo>().fail().setMsg("用户名不存在");
}
redisUtil.remove("loginCode" + userName);
} else {
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码错误或已失效,请重新获取");
}
}
// 根据用户信息查询用户的角色信息
SysUserVo userInfoOneVo = sysUserService.setUserRedisSessionToken(user);
if (userInfoOneVo == null) {
return new ResultBean<SysUserVo>().fail().setMsg("该用户不是公司员工");
}
return new ResultBean<SysUserVo>().success().setData(userInfoOneVo);
}
public ResultBean<SysUserVo> loginByNoVeriCode(SysUserQuery userQuery) {
String userName = userQuery.getUserName();
String password = userQuery.getPassword();
if (StringUtils.isBlank(userName)) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名不能为空");
}
if (StringUtils.isBlank(password)) {
return new ResultBean<SysUserVo>().fail().setMsg("密码不能为空");
}
SysUser user = null;
// 验证通过之后删除redis上的验证过的该条uuid
user = sysUserService.selectByUserName(userName);
String md5 = Encodes.md5(password);
if (user == null) {
//根据手机号查询用户是否存在
user = sysUserService.selectByMobile(userName);
if (user == null) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
} else {
if (!md5.equals(user.getPassword())) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
}
}
} else {
if (!(md5.equals(user.getPassword()))) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
}
}
// 根据用户信息查询用户的角色信息
SysUserVo userInfoOneVo = sysUserService.setUserRedisSessionToken(user);
if (userInfoOneVo == null) {
return new ResultBean<SysUserVo>().fail().setMsg("该用户不是公司员工");
}
// SystemLog systemLog = new SystemLog();
// systemLog.setUserName(user.getUserName());
// String ip = WebUtil.getIpAddr(httpServletRequest);
// systemLog.setUserIp(ip);
// systemLog.setEventUrl("portal/v1/sysuser/login");
// systemLog.setEventContent("用户登录");
// systemLog.setEventName("用户登录");
// systemLogService.save(systemLog);
return new ResultBean<SysUserVo>().success().setData(userInfoOneVo);
}
public ResultBean signOut(HttpServletRequest httpServletRequest) {
String token = httpServletRequest.getHeader("token");
String redisToken = redisUtil.get(token);
if (StringUtils.isBlank(redisToken)) {
return ResultBean.fireSuccess().setMsg("您已退出,请刷新");
}
redisUtil.remove(token);
return ResultBean.fireSuccess().setMsg("退出成功");
}
/**
* 获取验证码注册()
*
* @param mobile 手机号
* @return ResultBean
*/
public ResultBean sendMessageCode(String mobile) {
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) {
return new ResultBean().fail().setMsg("请输入正确的手机号");
}
String verificationCode = "";
return sysUserService.getVerificationCode(mobile, verificationCode);
}
public ResultBean<SysUserVo> selectByStaffsid(String staffsid) {
SysUserVo user = sysUserService.selectByStaffsid(staffsid);
if (user != null) {
return new ResultBean<SysUserVo>().success().setData(user);
} else {
return new ResultBean<SysUserVo>().fail().setData(new SysUserVo()).setMsg("查无此用户");
}
}
public ResultBean<SysUser> selectBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
SysUser vo = sysUserService.fetchBySid(sid);
if (vo == null) {
vo = new SysUser();
return rb.fail().setData(vo).setMsg("用户不存在");
}
return rb.success().setData(vo);
}
public ResultBean<SysUserVo> loginDetails(HttpServletRequest httpServletRequest) {
String token = httpServletRequest.getHeader("token");
if (StringUtils.isBlank(token)) {
return new ResultBean<SysUserVo>().fail().setMsg("请重新登录");
}
String userName = redisUtil.get(token);
if (StringUtils.isBlank(userName)) {
return new ResultBean<SysUserVo>().fail().setMsg("请重新登录");
}
SysUser user = sysUserService.selectByUserName(userName);
user.setToken(token);
SysUserVo userInfoOneVo = sysUserService.selectUserOne(user);
if (userInfoOneVo == null) {
return new ResultBean<SysUserVo>().fail().setMsg("该用户不是公司员工");
}
return new ResultBean<SysUserVo>().success().setData(userInfoOneVo);
}
// public ResultBean<AppUserOrgInfoVo> getUserOrgInfoByUserSid(String userSid) {
// AppUserOrgInfoVo vo = sysUserService.getUserOrgInfoByUserSid(userSid);
// if (vo == null) {
// return new ResultBean().fail().setMsg("查询失败");
// }
// return new ResultBean().success().setData(vo);
// }
/**
* 根据用户的sid查询该用户的组织信息
*
* @param userSid 用户sid
* @return
*/
public ResultBean<SysUserInfoVo> selectUserInfoByUserSid(String userSid) {
ResultBean<SysUserInfoVo> rb = ResultBean.fireFail();
SysUserInfoVo sysUserInfoVo = sysUserService.selectUserInfoByUserSid(userSid);
if (sysUserInfoVo == null) {
return rb.setData(new SysUserInfoVo()).setMsg("该用户未设置所属部门");
}
return rb.success().setData(sysUserInfoVo);
}
public ResultBean<SysUserInfoVo> selectUserInfoByUserSid(String userSid, String orgSid) {
ResultBean<SysUserInfoVo> rb = ResultBean.fireFail();
SysUserInfoVo sysUserInfoVo = sysUserService.selectUserInfoByUserSid(userSid, orgSid);
if (sysUserInfoVo == null) {
return rb.setData(new SysUserInfoVo()).setMsg("该用户未设置所属部门");
}
return rb.success().setData(sysUserInfoVo);
}
public ResultBean setIsEnable(String sid, String isEnable) {
SysUser sysUser = sysUserService.fetchBySid(sid);
if (sysUser == null) {
return ResultBean.fireFail().setMsg("此角色已不存在");
}
int i = sysUserService.updateIsEnable(sid, isEnable);
if (i == 0) {
return ResultBean.fireFail().setMsg("设置失败");
}
return ResultBean.fireSuccess().setMsg("设置成功");
}
public ResultBean getUsersByRoleSid(String roleSid) {
return sysUserService.getUsersByRoleSid(roleSid);
}
public ResultBean<List<SysUserVo>> getUserByRole(UserQuery query) {
return sysUserService.getUserByRole(query);
}
public ResultBean<List<String>> getUserSidByRole(UserQuery query) {
return sysUserService.getUserSidByRole(query);
}
public ResultBean<List<SysUserVo>> getUsersByRoles(UserssQuery usersQuery) {
return sysUserService.getUsersByRoles(usersQuery);
}
public ResultBean<List<SysUserVo>> getUserByOrgRole(UserRoleQuery query) {
return sysUserService.getUserByOrgRole(query);
}
public ResultBean<List<SysUserVo>> getOtherOrgRoleUser(UserRoleQuery query) {
return sysUserService.getOtherOrgRoleUser(query);
}
public ResultBean<List<Map<String, String>>> getUserByOrgSid(String orgSid, String userSid) {
return sysUserService.getUserByOrgSid(orgSid, userSid);
}
public ResultBean<String> selectIdBySid(List<String> stringList) {
return sysUserService.selectIdBySid(stringList);
}
public ResultBean<List<SysUserListVo>> selectSysUserList(String userSid, String orgPath) {
return sysUserService.selectSysUserList(userSid, orgPath);
}
public ResultBean<Boolean> selectPasswordByUserSid(String userSid) {
return sysUserService.selectPasswordByUserSid(userSid);
}
public ResultBean selectHaveMessage(SysHaveMessageQuery sysHaveMessageQuery) {
return sysUserService.selectHaveMessage(sysHaveMessageQuery);
}
// public ResultBean<List<OrgList>> getOrgListByUserSid(String userSid) {
// return sysUserService.getOrgListByUserSid(userSid);
// }
public ResultBean<List<SysUserVo>> getUserByRoles(UserByRolesAndOrgQuery userQuery) {
return sysUserService.getUserByRoles(userQuery);
}
public ResultBean<List<String>> shareSelectUser(ShareUserQuery shareUserQuery) {
return sysUserService.shareSelectUser(shareUserQuery);
}
public ResultBean<String> selectPrivilegeLevel(PrivilegeQuery query) {
return sysUserService.selectPrivilegeLevel(query);
}
public ResultBean removeRedis() {
return sysUserService.removeRedis();
}
}

118
src/main/java/com/yxt/user/apiadmin/SysUserRoleRest.java

@ -0,0 +1,118 @@
package com.yxt.user.apiadmin;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysuserrole.*;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysUserRoleFeignFallback.java <br/>
* Class: com.yxt.anrui.portal.biz.sysuserrole.SysUserRoleRest <br/>
* Description: 用户与角色关联表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "用户与角色关联表")
@RestController
@RequestMapping("v1/sysuserrole")
public class SysUserRoleRest {
@Autowired
private SysUserRoleService sysUserRoleService;
public ResultBean<PagerVo<SysUserRoleVo>> listPage(@RequestBody PagerQuery<SysUserRoleQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SysUserRoleVo> pv = sysUserRoleService.listPageVo(pq);
return rb.success().setData(pv);
}
public ResultBean<List<SysUserRoleVo>> listAll(@RequestBody SysUserRoleQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysUserRoleVo> list = sysUserRoleService.listAllVo(query);
return rb.success().setData(list);
}
public ResultBean<List<SysUserRoleVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<SysUserRoleVo> list = sysUserRoleService.listVo();
return rb.success().setData(list);
}
public ResultBean save(SysUserRoleDto dto){
ResultBean rb = ResultBean.fireFail();
sysUserRoleService.saveOrUpdateDto(dto);
return rb.success();
}
public ResultBean update(SysUserRoleDto dto){
ResultBean rb = ResultBean.fireFail();
sysUserRoleService.deleteByUserSid(dto.getUserSid());
String roleSid = dto.getRoleSid();
if(StringUtils.isBlank(roleSid)){
return rb.success();
}
String[] roleSids = roleSid.split(",");
for(String sid:roleSids){
SysUserRole sysUserRole=new SysUserRole();
sysUserRole.setRoleSid(sid);
sysUserRole.setUserSid(dto.getUserSid());
sysUserRoleService.saveOrUpdate(sysUserRole);
}
return rb.success();
}
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
sysUserRoleService.delByIds(ids);
return rb.success();
}
public ResultBean delByUserSidAndRoleSid(String userSid, String roleSid) {
ResultBean rb = ResultBean.fireFail();
sysUserRoleService.delByUserSidAndRoleSid(userSid,roleSid);
return rb.success();
}
public ResultBean<SysUserRoleVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
SysUserRoleVo vo = sysUserRoleService.fetchByIdVo(id);
return rb.success().setData(vo);
}
public ResultBean<List<String>> getUserRoleSidByUserSid(String userSid) {
return sysUserRoleService.getUserRoleSidByUserSid(userSid);
}
public ResultBean<List<String>> getUserIdListByRoleSid(List<String> roleList) {
return sysUserRoleService.getUserIdListByRoleSid(roleList);
}
public ResultBean<List<String>> selectByUserSid(String userSid) {
return sysUserRoleService.selectByUserSids(userSid);
}
}

28
src/main/java/com/yxt/user/biz/sms/SmsDto.java

@ -0,0 +1,28 @@
package com.yxt.user.biz.sms;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionDto.java <br/>
* Class: com.yxt.anrui.portal.api.sysfunction.SysFunctionDto <br/>
* Description: 短信 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "短信 数据传输对象", description = "短信 数据传输对象")
@Data
public class SmsDto {
@ApiModelProperty("手机号码")
private String mobile;
@ApiModelProperty("消息")
private String msg;
}

47
src/main/java/com/yxt/user/biz/sms/SmsFeign.java

@ -0,0 +1,47 @@
package com.yxt.user.biz.sms;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author dimengzhe
* @date 2020/9/11 16:52
* @description
*/
@Api(tags = "短信验证码")
@FeignClient(
contextId = "anrui-portal-SmsApi",
name = "anrui-portal",
path = "v1/sms",
fallback = SmsFeignFallback.class)
public interface SmsFeign {
static String msgSign="【安瑞集团】";
// private static String msgtitle="河北省计量业务应用平台提醒:";
static String MSG_NEWPWD="用户,您好!您的新密码为:";
static String MSG_VERIFY = "用户,您好!您注册的单位已审核通过,管理员的密码为:";
static String MSG_VERIFY_NO = "用户,您好!您注册的单位未审核通过,未通过原因:";
static String MSG_VERIFY_ONE = "用户,您好!您所填写的基本信息未通过。请及时登录系统修改。";
static String MSG_USER_VERIFY = "用户,您好!您注册的个人信息已审核通过";
static String MSG_USER_VERIFY_NO = "用户,您好!您注册的个人信息未审核通过,未通过原因:";
static String MSG_ORG_STAFF = "尊敬的用户,您好!您绑定的单位已审核通过,可登陆系统进行查看";
static String MSG_USING = "尊敬的用户,您好!有待确认的单位信息需确认,请及时确认信息";
static String MSG_OA_FILE_SEND = "用户,您好!协同办公中您收到一份文件,请查阅:";
/**
* 发送短信验证码
*
* @param dto 服务器响应
* @return
* @throws Exception
*/
@GetMapping("/sendWaitWorkMsg")
@ResponseBody
@ApiOperation(value = "发送短信验证码")
public ResultBean SendWaitWorkMsg(@RequestBody SmsDto dto) ;
}

11
src/main/java/com/yxt/user/biz/sms/SmsFeignFallback.java

@ -0,0 +1,11 @@
package com.yxt.user.biz.sms;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
@Component
public class SmsFeignFallback implements SmsFeign{
@Override
public ResultBean SendWaitWorkMsg(SmsDto dto) {
return null;
}
}

19
src/main/java/com/yxt/user/biz/sysfunction/ButtonPermissionQuery.java

@ -0,0 +1,19 @@
package com.yxt.user.biz.sysfunction;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 查询按钮的权限的表单参数
*/
@ApiModel(value = "查询按钮的权限的表单参数", description = "查询按钮的权限的表单参数")
@Data
public class ButtonPermissionQuery {
@ApiModelProperty("userSid")
private String userSid;
@ApiModelProperty("url")
private String url;
@ApiModelProperty("type")
private String type;
}

12
src/main/java/com/yxt/user/biz/sysfunction/ButtonPermissionVo.java

@ -0,0 +1,12 @@
package com.yxt.user.biz.sysfunction;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(value = "返回查询的按钮权限集合", description = "返回查询的按钮权限集合")
@Data
public class ButtonPermissionVo {
@ApiModelProperty("buttonId")
private String buttonId;
}

54
src/main/java/com/yxt/user/biz/sysfunction/SysFunction.java

@ -0,0 +1,54 @@
package com.yxt.user.biz.sysfunction;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunction.java <br/>
* Class: com.yxt.anrui.portal.api.sysfunction.SysFunction <br/>
* Description: 功能. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "功能", description = "功能")
@TableName("sys_function")
@Data
public class SysFunction extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("功能名称")
private String name;
@ApiModelProperty("层级")
private Integer level;
@ApiModelProperty("父级sid")
private String parentSid;
@ApiModelProperty("接口地址")
private String actionUrl;
@ApiModelProperty("模块名称")
private String controllerName;
@ApiModelProperty("移动端按钮id")
private String funId;
@ApiModelProperty("前端控制按钮的id")
@JsonProperty("cId")
private String cId;
@ApiModelProperty("是否手机端权限0否,1是")
private String phoneFunction;
}

54
src/main/java/com/yxt/user/biz/sysfunction/SysFunctionDto.java

@ -0,0 +1,54 @@
package com.yxt.user.biz.sysfunction;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionDto.java <br/>
* Class: com.yxt.anrui.portal.api.sysfunction.SysFunctionDto <br/>
* Description: 功能 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "功能 数据传输对象", description = "功能 数据传输对象")
@Data
public class SysFunctionDto implements Dto {
@ApiModelProperty("功能名称")
private String name;
@ApiModelProperty("层级")
private Integer level;
@ApiModelProperty("父级sid")
private String parentSid;
@ApiModelProperty("接口地址")
private String actionUrl;
@ApiModelProperty("模块名称")
private String controllerName;
@ApiModelProperty("模块sid")
private String sourceSid;
@ApiModelProperty("移动端按钮id")
private String funId;
@ApiModelProperty("前端控制按钮的id")
@JsonProperty("cId")
private String cId;
@ApiModelProperty("是否手机端权限0否,1是")
private String phoneFunction;
@ApiModelProperty("备注")
private String remarks ;
}

74
src/main/java/com/yxt/user/biz/sysfunction/SysFunctionMapper.java

@ -0,0 +1,74 @@
package com.yxt.user.biz.sysfunction;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.sysfunction.SysFunctionMapper <br/>
* Description: 功能. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SysFunctionMapper extends BaseMapper<SysFunction> {
//@Update("update sys_function set name=#{msg} where id=#{id}")
//IPage<SysFunctionVo> voPage(IPage<SysFunction> page, @Param(Constants.WRAPPER) QueryWrapper<SysFunction> qw);
IPage<SysFunctionVo> selectPageVo(IPage<SysFunction> page, @Param(Constants.WRAPPER) Wrapper<SysFunction> qw);
List<SysFunctionVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysFunction> qw);
@Select("select * from sys_function")
List<SysFunctionVo> selectListVo();
List<SysFunctionVo> listAllParentByRoleSid(String roleSid, String sid);
List<SysFunctionTreeVo> getChildrensForFunctionTree(@Param(Constants.WRAPPER) QueryWrapper<SysFunctionTreeVo> qw);
List<SysFunctionTreeVo> selectChildernList(String sid);
int updateBySourceSid(@Param("isEnable") Integer isEnable, @Param("list") List<String> list);
/**
* 该资源下的功能是否可用 状态为1的功能
*
* @param isEnable 是否可用1可用0不可用
* @param sourceSid 资源sid
* @return
*/
int selectBySourceSid(@Param("isEnable") int isEnable, @Param("sourceSid") String sourceSid);
List<ButtonPermissionVo> getButtonPermissions(@Param("query") ButtonPermissionQuery query);
List<Map<String, Object>> getSourceAuthorization(@Param("roleSid") String roleSid);
@Select("SELECT sm.name,sm.sid,sm.pageUrl FROM sys_menu sm LEFT JOIN sys_source_menu ssm ON sm.sid=ssm.menuSid where ssm.sourceSid=#{sourceSid}")
List<Map<String, Object>> getMenuAuthorization(@Param("sourceSid") String sourceSid);
@Select("SELECT sf.name,sf.sid FROM sys_function sf WHERE sf.actionUrl= #{pageUrl}")
List<Map<String, Object>> getFunctionAuthorization(@Param("pageUrl") String pageUrl);
@Select("SELECT sf.name,sf.sid,IF(IFNULL(srf.id,0)<=0,1,0) checked FROM sys_function sf " +
" LEFT JOIN sys_role_function srf ON srf.functionSid=sf.sid " +
" WHERE sf.actionUrl= #{pageUrl} AND srf.roleSid = #{roleSid} ")
List<Map<String, Object>> getFunctionByRoleSid(@Param("pageUrl") String pageUrl, @Param("roleSid") String roleSid);
List<Map<String, Object>> getSourceAuthorizationApp(@Param("roleSid") String roleSid);
}

103
src/main/java/com/yxt/user/biz/sysfunction/SysFunctionMapper.xml

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.user.biz.sysfunction.SysFunctionMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.user.biz.sysfunction.SysFunctionVo">
SELECT *
FROM sys_function
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.user.biz.sysfunction.SysFunctionVo">
SELECT func.*, source.sourceName as sourceName
FROM sys_function func
left join sys_source_function sourceF on sourceF.functionSid = func.sid
left join sys_source source on source.sid = sourceF.sourceSid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listAllParentByRoleSid" resultType="com.yxt.user.biz.sysfunction.SysFunctionVo">
SELECT DISTINCT func.*, ISNULL(roleFunction.sid) AS checked
FROM sys_function func
left join sys_role_function roleFunction
on func.sid = roleFunction.functionSid and roleFunction.roleSid = #{param1}
where func.parentSid = #{param2}
</select>
<select id="getChildrensForFunctionTree" resultType="com.yxt.user.biz.sysfunction.SysFunctionTreeVo">
SELECT func.*, source.sourceName, sourceFunction.functionRootSid as functionRootSid
FROM sys_function func
left join sys_source_function sourceFunction on sourceFunction.functionSid = func.sid
left join sys_source source on source.sid = sourceFunction.sourceSid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectChildernList" resultType="com.yxt.user.biz.sysfunction.SysFunctionTreeVo">
SELECT func.*, source.sourceName, sourceFunction.functionRootSid as functionRootSid
FROM sys_function func
left join sys_source_function sourceFunction on sourceFunction.functionSid = func.sid
left join sys_source source on source.sid = sourceFunction.sourceSid
where func.parentSid = #{sid}
</select>
<update id="updateBySourceSid">
UPDATE sys_function
SET isEnable = #{isEnable} WHERE sid IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</update>
<select id="selectBySourceSid" resultType="int">
select count(*)
from sys_function sf
left join sys_source_function ssf on sf.sid = ssf.functionSid
where sf.isEnable = #{isEnable}
and ssf.sourceSid = #{sourceSid}
</select>
<select id="getButtonPermissions" resultType="com.yxt.user.biz.sysfunction.ButtonPermissionVo">
SELECT sf.cId AS buttonId
FROM sys_function sf
WHERE actionUrl = #{query.url}
AND phoneFunction = #{query.type}
AND sid NOT IN
(SELECT IFNULL(srf.functionSid, "") functionSid
FROM sys_user_role sur
LEFT JOIN sys_role_function srf
ON sur.roleSid = srf.rolesid
WHERE sur.userSid = #{query.userSid})
</select>
<select id="getSourceAuthorization" resultType="java.util.Map">
SELECT DISTINCT ss.sourceName,
ss.sid
FROM sys_source ss
LEFT JOIN sys_source_role ssr
ON ss.sid = ssr.sorceSid
LEFT JOIN sys_source_function ssf
ON ssr.`sorceSid` = ssf.`sourceSid`
LEFT JOIN sys_function sf
ON ssf.`functionSid` = sf.sid
WHERE ssr.rolesid = #{roleSid}
AND sf.phoneFunction = '0'
</select>
<select id="getSourceAuthorizationApp" resultType="java.util.Map">
SELECT DISTINCT ss.sourceName,
ss.sid
FROM sys_source ss
LEFT JOIN sys_source_role ssr
ON ss.sid = ssr.sorceSid
LEFT JOIN sys_source_function ssf
ON ssr.`sorceSid` = ssf.`sourceSid`
LEFT JOIN sys_function sf
ON ssf.`functionSid` = sf.sid
WHERE ssr.rolesid = #{roleSid}
AND sf.phoneFunction = '1'
</select>
</mapper>

53
src/main/java/com/yxt/user/biz/sysfunction/SysFunctionQuery.java

@ -0,0 +1,53 @@
package com.yxt.user.biz.sysfunction;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionQuery.java <br/>
* Class: com.yxt.anrui.portal.api.sysfunction.SysFunctionQuery <br/>
* Description: 功能 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "功能 查询条件", description = "功能 查询条件")
@Data
public class SysFunctionQuery implements Query {
@ApiModelProperty("功能名称")
private String name;
@ApiModelProperty("层级")
private Integer level;
@ApiModelProperty("父级sid")
private String parentSid;
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("接口地址")
private String actionUrl;
@ApiModelProperty("模块名称")
private String controllerName;
@ApiModelProperty("移动端按钮id")
private String funId;
@ApiModelProperty("前端控制按钮的id")
@JsonProperty("cId")
private String cId;
@ApiModelProperty("是否手机端权限0否,1是")
private String phoneFunction;
}

344
src/main/java/com/yxt/user/biz/sysfunction/SysFunctionService.java

@ -0,0 +1,344 @@
package com.yxt.user.biz.sysfunction;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.user.biz.syssource.SysSourceService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionService.java <br/>
* Class: com.yxt.user.biz.sysfunction.SysFunctionService <br/>
* Description: 功能 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SysFunctionService extends MybatisBaseService<SysFunctionMapper, SysFunction> {
@Autowired
private SysSourceService sysSourceService;
@Autowired
// private SysSourceFunctionService sysSourceFunctionService;
public PagerVo<SysFunction> listPage(PagerQuery<SysFunctionQuery> pq) {
SysFunctionQuery query = pq.getParams();
QueryWrapper<SysFunction> qw = createQueryWrapper(query);
IPage<SysFunction> page = PagerUtil.queryToPage(pq);
IPage<SysFunction> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysFunction> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysFunction> listAll(SysFunctionQuery query) {
QueryWrapper<SysFunction> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysFunction> createQueryWrapper(SysFunctionQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysFunction> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getName())) {
qw.eq("name", query.getName());
}
if (query.getLevel() != null) {
qw.eq("level", query.getLevel());
}
if (StringUtils.isNotBlank(query.getParentSid())) {
qw.eq("parentSid", query.getParentSid());
}
if (StringUtils.isNotBlank(query.getActionUrl())) {
qw.eq("actionUrl", query.getActionUrl());
}
if (StringUtils.isNotBlank(query.getControllerName())) {
qw.eq("controllerName", query.getControllerName());
}
if (StringUtils.isNotBlank(query.getFunId())) {
qw.eq("funId", query.getFunId());
}
if (query.getPhoneFunction() != null) {
qw.eq("phoneFunction", query.getPhoneFunction());
}
return qw;
}
public PagerVo<SysFunctionVo> listPageVo(PagerQuery<SysFunctionQuery> pq) {
SysFunctionQuery query = pq.getParams();
QueryWrapper<SysFunction> qw = createQueryWrapper(query);
IPage<SysFunction> page = PagerUtil.queryToPage(pq);
IPage<SysFunctionVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysFunctionVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysFunctionVo> listAllVo(SysFunctionQuery query) {
QueryWrapper<SysFunction> qw = new QueryWrapper<>();
qw.eq("func.parentSid", "0");
List<SysFunctionVo> sysFunctionVos = baseMapper.selectListAllVo(qw);
for (SysFunctionVo s : sysFunctionVos) {
getChildrens(s);
}
return sysFunctionVos;
}
private void getChildrens(SysFunctionVo s) {
String sid = s.getSid();
QueryWrapper<SysFunction> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(sid)) {
qw.eq("func.parentSid", sid);
}
List<SysFunctionVo> sysFunctionVos = baseMapper.selectListAllVo(qw);
if (!sysFunctionVos.isEmpty()) {
for (SysFunctionVo sfv : sysFunctionVos) {
getChildrens(sfv);
}
}
s.setChildren(sysFunctionVos);
}
public List<SysFunctionVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SysFunctionDto dto) {
SysFunction entity = new SysFunction();
dto.fillEntity(entity);
// SysSourceFunction sysSourceFunction = new SysSourceFunction();
// sysSourceFunction.setFunctionSid(entity.getSid());
// sysSourceFunction.setSourceSid(dto.getSourceSid());
// setRootSid(entity, sysSourceFunction);
// sysSourceFunctionService.save(sysSourceFunction);
this.saveOrUpdate(entity);
}
// private void setRootSid(SysFunction entity, SysSourceFunction sysSourceFunction) {
// String pSid = entity.getParentSid();
// if ("0".equals(pSid)) {
// sysSourceFunction.setFunctionRootSid(entity.getSid());
// } else {
// SysFunction sysFunction = this.fetchBySid(pSid);
// String pSid1 = sysFunction.getParentSid();
// if ("0".equals(pSid1)) {
// sysSourceFunction.setFunctionRootSid(sysFunction.getSid());
// }
// setRootSid(sysFunction, sysSourceFunction);
// }
// }
public SysFunctionVo fetchByIdVo(String id) {
SysFunction entity = this.fetchById(id);
SysFunctionVo vo = new SysFunctionVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<SysFunctionVo> listAllByRoleSid(SysFunctionQuery query) {
List<SysFunctionVo> sysFunctionVos = baseMapper.listAllParentByRoleSid(query.getRoleSid(), "0");
for (SysFunctionVo s : sysFunctionVos) {
getChildrensByRoleSid(s, query.getRoleSid());
}
return sysFunctionVos;
}
private void getChildrensByRoleSid(SysFunctionVo s, String roleSid) {
List<SysFunctionVo> sysFunctionVos = baseMapper.listAllParentByRoleSid(roleSid, s.getSid());
if (!sysFunctionVos.isEmpty()) {
for (SysFunctionVo sfv : sysFunctionVos) {
getChildrensByRoleSid(sfv, roleSid);
}
}
s.setChildren(sysFunctionVos);
}
public List<SysFunctionTreeVo> listAllVoForSource(SysFunctionQuery query) {
String name = query.getName();
List<SysFunctionTreeVo> sysSourceVos = sysSourceService.listFunctionTreeVo(name);
for (SysFunctionTreeVo s : sysSourceVos) {
// List<SysFunctionTreeVo> sysFunctionVoList = sysSourceFunctionService.fetchRootFunctionBySourceSid(s.getSourceSid());
// for (SysFunctionTreeVo sysFunctionTreeVo : sysFunctionVoList) {
// if (StringUtils.isNotBlank(sysFunctionTreeVo.getRemarks())){
// sysFunctionTreeVo.setName(sysFunctionTreeVo.getName() + "(" + sysFunctionTreeVo.getRemarks() + ")");
// }
// }
// s.setChildren(sysFunctionVoList);
s.setIsSource("1");
//判断该资源下的功能是否有可用的状态
int isEnable = 1;
int count = baseMapper.selectBySourceSid(isEnable, s.getSourceSid());
if (count == 0) {
s.setIsEnable("0");
} else {
s.setIsEnable("1");
}
// if (!sysFunctionVoList.isEmpty()) {
//// sysFunctionVoList = getChildrensForFunctionTree(sysFunctionVoList);
// getChildList(sysFunctionVoList);
// }
}
return sysSourceVos;
}
public void getChildList(List<SysFunctionTreeVo> list) {
list.forEach(str -> {
String sid = str.getSid();
List<SysFunctionTreeVo> listChildren = baseMapper.selectChildernList(sid);
str.setChildren(listChildren);
getChildList(listChildren);
});
}
private List<SysFunctionTreeVo> getChildrensForFunctionTree(List<SysFunctionTreeVo> sysFunctionVoList) {
List<SysFunctionTreeVo> list = new ArrayList<>();
for (SysFunctionTreeVo s : sysFunctionVoList) {
SysFunction sysFunction = fetchBySid(s.getFunctionRootSid());
SysFunctionTreeVo sysFunctionTreeVo = new SysFunctionTreeVo();
BeanUtil.copyProperties(sysFunction, sysFunctionTreeVo);
/*sysFunctionTreeVo.setParentName("顶级功能");*/
list.add(sysFunctionTreeVo);
}
for (SysFunctionTreeVo s : list) {
getChildrensForFunctionTree(s, s.getSid());
}
return list;
}
private void getChildrensForFunctionTree(SysFunctionTreeVo s, String sid) {
QueryWrapper<SysFunctionTreeVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(sid)) {
qw.eq("func.parentSid", sid);
}
List<SysFunctionTreeVo> sysMenuVos = baseMapper.getChildrensForFunctionTree(qw);
if (!sysMenuVos.isEmpty()) {
for (SysFunctionTreeVo smv : sysMenuVos) {
/*SysFunction sysFunction = fetchBySid(sid);
smv.setParentName(sysFunction.getName());*/
getChildrensForFunctionTree(smv, smv.getSid());
}
}
s.setChildren(sysMenuVos);
}
public int updateBySourceSid(Integer isEnable, List<String> sids) {
return baseMapper.updateBySourceSid(isEnable, sids);
}
public List<ButtonPermissionVo> getButtonPermissions(ButtonPermissionQuery query) {
List<ButtonPermissionVo> buttonPermissions = baseMapper.getButtonPermissions(query);
return buttonPermissions;
}
public List<Map<String, Object>> getFunctionAuthorization(String roleSid) {
List<Map<String, Object>> list = new ArrayList<>();
List<Map<String, Object>> lsources = baseMapper.getSourceAuthorization(roleSid);
lsources.forEach(f -> {
Map<String, Object> map = new HashMap<>();
map.put("name", f.get("sourceName").toString());
map.put("sid", f.get("sid").toString());
map.put("checked", "1");
list.add(map);
});
list.forEach(f -> {
List<Map<String, Object>> list2 = new ArrayList<>();
String sid = f.get("sid").toString();
List<Map<String, Object>> lmenus = baseMapper.getMenuAuthorization(sid);
lmenus.forEach(ff -> {
Map<String, Object> map = new HashMap<>();
if (ff.get("pageUrl") != null && com.yxt.common.base.utils.StringUtils.isNotBlank(ff.get("pageUrl").toString())) {
String pageUrl = ff.get("pageUrl").toString();
List<Map<String, Object>> lfuncs = baseMapper.getFunctionAuthorization(pageUrl);
List<Map<String, Object>> functionByRoleSid = baseMapper.getFunctionByRoleSid(pageUrl, roleSid);
if (lfuncs.size() > 0){
map.put("name", ff.get("name"));
String sids = ff.get("sid").toString();
map.put("sid", sids);
map.put("checked", "1");
map.put("children", new ArrayList<>());
for (Map<String, Object> lfunc : lfuncs) {
for (Map<String, Object> funByRole : functionByRoleSid) {
if (lfunc.get("sid").equals(funByRole.get("sid"))) {
lfunc.put("checked", "0");
}
}
lfunc.put("children", new ArrayList<>());
}
map.put("children", lfuncs);
list2.add(map);
}
}
});
f.put("children", list2);
});
return list;
}
public List<Map<String, Object>> getFunctionAuthorizationApp(String roleSid) {
List<Map<String, Object>> list = new ArrayList<>();
List<Map<String, Object>> lsources = baseMapper.getSourceAuthorizationApp(roleSid);
lsources.forEach(f -> {
Map<String, Object> map = new HashMap<>();
map.put("name", f.get("sourceName").toString());
map.put("sid", f.get("sid").toString());
map.put("checked", "1");
list.add(map);
});
list.forEach(f -> {
List<Map<String, Object>> list2 = new ArrayList<>();
String sid = f.get("sid").toString();
List<Map<String, Object>> lmenus = baseMapper.getMenuAuthorization(sid);
lmenus.forEach(ff -> {
Map<String, Object> map = new HashMap<>();
if (ff.get("pageUrl") != null && com.yxt.common.base.utils.StringUtils.isNotBlank(ff.get("pageUrl").toString())) {
String pageUrl = ff.get("pageUrl").toString();
List<Map<String, Object>> lfuncs = baseMapper.getFunctionAuthorization(pageUrl);
List<Map<String, Object>> functionByRoleSid = baseMapper.getFunctionByRoleSid(pageUrl, roleSid);
if (lfuncs.size() > 0){
map.put("name", ff.get("name"));
String sids = ff.get("sid").toString();
map.put("sid", sids);
map.put("checked", "1");
map.put("children", new ArrayList<>());
for (Map<String, Object> lfunc : lfuncs) {
for (Map<String, Object> funByRole : functionByRoleSid) {
if (lfunc.get("sid").equals(funByRole.get("sid"))) {
lfunc.put("checked", "0");
}
}
lfunc.put("children", new ArrayList<>());
}
map.put("children", lfuncs);
list2.add(map);
}
}
});
f.put("children", list2);
});
return list;
}
}

50
src/main/java/com/yxt/user/biz/sysfunction/SysFunctionTreeVo.java

@ -0,0 +1,50 @@
package com.yxt.user.biz.sysfunction;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionTreeVo.java <br/>
* Description: 功能表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "功能表 视图数据对象", description = "功能表 视图数据对象")
@Data
public class SysFunctionTreeVo implements Vo {
@ApiModelProperty("功能名称")
private String name;
@ApiModelProperty("资源sid")
private String sourceSid;
@ApiModelProperty("上级sid")
private String parentSid;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("资源名称")
private String sourceName;
@ApiModelProperty("url地址")
private String actionUrl;
@ApiModelProperty("功能根路径sid")
private String functionRootSid;
@ApiModelProperty("子功能")
private List<SysFunctionTreeVo> children;
@ApiModelProperty("是否可用")
private String isEnable;
@ApiModelProperty("功能列表用,是否是资源层级1是,0不是")
private String isSource = "0";
@ApiModelProperty("父级名称")
private String parentName;
@ApiModelProperty("说明")
private String remarks;
}

59
src/main/java/com/yxt/user/biz/sysfunction/SysFunctionVo.java

@ -0,0 +1,59 @@
package com.yxt.user.biz.sysfunction;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysFunctionVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysfunction.SysFunctionVo <br/>
* Description: 功能 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "功能 视图数据对象", description = "功能 视图数据对象")
@Data
public class SysFunctionVo implements Vo {
@ApiModelProperty("功能名称")
private String name;
@ApiModelProperty("父级sid")
private String parentSid;
@ApiModelProperty("父级名称")
private String parentName;
@ApiModelProperty("接口地址")
private String actionUrl;
@ApiModelProperty("模块名称")
private String controllerName;
@ApiModelProperty("是否手机端权限0否,1是")
private String phoneFunction;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("子集数据")
private List<SysFunctionVo> children;
@ApiModelProperty("是否选中 1未选中,0选中")
private String checked;
@ApiModelProperty("资源名称")
private String sourceName;
@ApiModelProperty("资源SId")
private String sourceSid;
@ApiModelProperty("是否可用")
private Integer isEnable;
@ApiModelProperty("移动端按钮id")
private String funId;
@ApiModelProperty("前端控制按钮的id")
@JsonProperty("cId")
private String cId;
@ApiModelProperty("说明")
private String remarks;
}

64
src/main/java/com/yxt/user/biz/sysmenu/SysMenu.java

@ -0,0 +1,64 @@
package com.yxt.user.biz.sysmenu;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenu.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenu.SysMenu <br/>
* Description: 菜单表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "菜单表", description = "菜单表")
@TableName("sys_menu")
@Data
public class SysMenu extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("菜单名称")
private String name;
@ApiModelProperty("菜单路由路径(VUE)")
private String menuUrl;
@ApiModelProperty("菜单对应的前端页面路径")
private String pageUrl;
@ApiModelProperty("菜单图标地址")
private String iconUrl;
@ApiModelProperty("资源sid")
private String sourceSid;
@ApiModelProperty("是否显示,默认为1显示,0为不显示")
private String isShow;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("上级sid")
private String pSid;
@ApiModelProperty("前端页面路径重定向")
private Integer pageUrlRedirect;
@ApiModelProperty("前端页面名称(vue组件名)")
private String pageName;
@ApiModelProperty("前端页面别名")
private String pageAliasName;
@ApiModelProperty("菜单类型(0左侧当行菜单,1页面中功能)")
private String menuType;
}

72
src/main/java/com/yxt/user/biz/sysmenu/SysMenuDto.java

@ -0,0 +1,72 @@
package com.yxt.user.biz.sysmenu;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuDto.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenu.SysMenuDto <br/>
* Description: 菜单表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "菜单表 数据传输对象", description = "菜单表 数据传输对象")
@Data
public class SysMenuDto implements Dto {
private static final long serialVersionUID = -8143707488992909267L;
@ApiModelProperty(value = "菜单名称", required = true)
@NotBlank(message = "菜单名称不能为空")
private String name;
@ApiModelProperty("菜单路由路径(VUE)")
private String menuUrl;
@ApiModelProperty("菜单对应的前端页面路径")
private String pageUrl;
@ApiModelProperty("菜单图标地址")
private String iconUrl;
@ApiModelProperty(value = "资源sid", required = true)
@NotBlank(message = "资源不能为空")
private String sourceSid;
@ApiModelProperty(value = "是否显示,默认为1显示,0为不显示", required = true)
@NotBlank(message = "是否显示不能为空")
private String isShow;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty(value = "上级sid", example = "0", required = true)
@NotBlank(message = "上级菜单不能为空")
private String pSid;
@ApiModelProperty(value = "前端页面路径重定向", required = false)
private Integer pageUrlRedirect;
@ApiModelProperty("前端页面名称(vue组件名)")
private String pageName;
@ApiModelProperty(value = "前端页面别名", required = false)
private String pageAliasName;
@ApiModelProperty("菜单类型(0左侧当行菜单,1页面中功能)")
private String menuType;
@ApiModelProperty(value = "备注")
private String remarks;
}

30
src/main/java/com/yxt/user/biz/sysmenu/SysMenuFunctionQuery.java

@ -0,0 +1,30 @@
package com.yxt.user.biz.sysmenu;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuQuery.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenu.SysMenuQuery <br/>
* Description: 菜单表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "菜单表 查询条件 功能菜单设置查询用", description = "菜单表 查询条件 功能菜单设置查询用")
@Data
public class SysMenuFunctionQuery implements Query {
@ApiModelProperty("资源sid")
private String sourceSid;
}

82
src/main/java/com/yxt/user/biz/sysmenu/SysMenuMapper.java

@ -0,0 +1,82 @@
package com.yxt.user.biz.sysmenu;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.sysmenu.SysMenuMapper <br/>
* Description: 菜单表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> {
//@Update("update sys_menu set name=#{msg} where id=#{id}")
//IPage<SysMenuVo> voPage(IPage<SysMenu> page, @Param(Constants.WRAPPER) QueryWrapper<SysMenu> qw);
IPage<SysMenuVo> selectPageVo(IPage<SysMenu> page, @Param(Constants.WRAPPER) Wrapper<SysMenu> qw);
List<SysMenuVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysMenu> qw);
@Select("select * from sys_menu")
List<SysMenuVo> selectListVo();
List<SysMenuVo> listAllParentByRoleSid(String roleSid, String sid, @Param("sourceSid") String sourceSid);
@Select("SELECT menu.*,sourceMenu.`sourceSid` FROM sys_menu menu " +
"LEFT JOIN sys_source_menu sourceMenu ON menu.sid=sourceMenu.menuSid where menu.sid=#{sid}")
SysMenu fetchBySid(@Param("sid") String sid);
List<SysMenuTreeVo> getChildrensForMenuTree(@Param(Constants.WRAPPER) QueryWrapper<SysMenuTreeVo> qw);
/**
* 将该资源下的所有菜单设置是否可用
*
* @param sid 资源sid
* @param isEnable 是否可用1可用0不可用
* @return
*/
int updateBySourceSid(@Param("sid") String sid, @Param("isEnable") Integer isEnable);
/**
* 根据上级sid查询菜单的子集菜单
*
* @param sid 菜单sid
* @return
*/
List<SysMenuTreeVo> selectChildernList(String sid);
/**
* 查询该资源下是否有可用的菜单
*
* @param isEnable
* @return
*/
int selectBySourceSid(@Param("isEnable") int isEnable, @Param("sourceSid") String sourceSid);
List<SysMenu> selectByMenuUrl(String menuUrl);
/**
* 查询该资源下一级菜单列表
*
* @param sourceSid 资源sid
* @return
*/
List<SysMenuTreeVo> fetchRootMenuBySourceSid(@Param("sourceSid") String sourceSid);
}

88
src/main/java/com/yxt/user/biz/sysmenu/SysMenuMapper.xml

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.user.biz.sysmenu.SysMenuMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.user.biz.sysmenu.SysMenuVo">
SELECT *
FROM sys_menu
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.user.biz.sysmenu.SysMenuVo">
SELECT menu.*, source.sourceName, pmenu.name as pName
FROM sys_menu menu
left join sys_menu pmenu on pmenu.sid = menu.psid
left join sys_source_menu sourceMenu on sourceMenu.menuSid = menu.sid
left join sys_source source on source.sid = sourceMenu.sourceSid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listAllParentByRoleSid" resultType="com.yxt.user.biz.sysmenu.SysMenuVo">
SELECT menu.*, ISNULL(menuRole.sid) as checked
FROM sys_menu menu
left join sys_menu_role menuRole on menu.sid = menuRole.menuSid AND menuRole.roleSid = #{param1}
where menu.pSid = #{param2}
<if test="sourceSid != null">
and menu.sourceSid = #{sourceSid}
</if>
</select>
<select id="getChildrensForMenuTree" resultType="com.yxt.user.biz.sysmenu.SysMenuTreeVo">
SELECT menu.*, source.sourceName, sourceMenu.menuRootSid as menuRootSid
FROM sys_menu menu
left join sys_source_menu sourceMenu on sourceMenu.menuSid = menu.sid
left join sys_source source on source.sid = sourceMenu.sourceSid
<where>
${ew.sqlSegment}
</where>
</select>
<!--将该资源下的所有菜单设置为是否可用-->
<update id="updateBySourceSid">
update sys_menu
set isEnable = #{isEnable}
where sourceSid = #{sid}
</update>
<select id="selectChildernList" resultType="com.yxt.user.biz.sysmenu.SysMenuTreeVo">
SELECT menu.*, source.sourceName, menu.pSid as menuRootSid
FROM sys_menu menu
left join sys_source source on source.sid = menu.sourceSid
where menu.pSid = #{sid}
ORDER BY menu.sortNo ASC
</select>
<select id="selectBySourceSid" resultType="int">
select count(*)
from sys_menu
where isEnable = #{isEnable}
and sourceSid = #{sourceSid}
</select>
<select id="selectByMenuUrl" resultType="com.yxt.user.biz.sysmenu.SysMenu">
select * from sys_menu where menuUrl = #{menuUrl}
</select>
<!--将该资源下的所有一级菜单列表-->
<select id="fetchRootMenuBySourceSid" resultType="com.yxt.user.biz.sysmenu.SysMenuTreeVo">
SELECT menu.NAME AS NAME,
menu.sid AS sid,
menu.sid AS sid,
source.sid AS sourceSid,
menu.sortNo AS sortNo,
menu.pSid AS pSid,
source.sourceName AS sourceName,
menu.sid AS menuRootSid,
menu.menuUrl AS menuUrl,
menu.iconUrl AS iconUrl,
menu.pageName AS pageName,
menu.pageUrlRedirect AS pageUrlRedirect,
menu.pageUrl AS pageUrl,
menu.remarks,
menu.isEnable
FROM sys_menu menu
LEFT JOIN sys_source source ON menu.sourceSid = source.sid
WHERE source.sid = #{sourceSid} AND menu.psid='0' and menu.isDelete!=1
ORDER BY menu.sortNo ASC
</select>
</mapper>

66
src/main/java/com/yxt/user/biz/sysmenu/SysMenuQuery.java

@ -0,0 +1,66 @@
package com.yxt.user.biz.sysmenu;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuQuery.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenu.SysMenuQuery <br/>
* Description: 菜单表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "菜单表 查询条件", description = "菜单表 查询条件")
@Data
public class SysMenuQuery implements Query {
@ApiModelProperty("菜单名称")
private String name;
@ApiModelProperty("菜单路由路径(VUE)")
private String menuUrl;
@ApiModelProperty("菜单对应的前端页面路径")
private String pageUrl;
@ApiModelProperty("菜单图标地址")
private String iconUrl;
@ApiModelProperty("资源sid")
private String sourceSid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("是否显示,默认为1显示,0为不显示")
private String isShow;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("上级sid")
private String pSid;
@ApiModelProperty("前端页面路径重定向")
private Integer pageUrlRedirect;
@ApiModelProperty("前端页面名称(vue组件名)")
private String pageName;
@ApiModelProperty("前端页面别名")
private String pageAliasName;
@ApiModelProperty("菜单类型(0左侧当行菜单,1页面中功能)")
private String menuType;
}

424
src/main/java/com/yxt/user/biz/sysmenu/SysMenuService.java

@ -0,0 +1,424 @@
package com.yxt.user.biz.sysmenu;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.user.biz.sysmenu.*;
import com.yxt.user.biz.syssource.SysSourceService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuService.java <br/>
* Class: com.yxt.user.biz.sysmenu.SysMenuService <br/>
* Description: 菜单表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SysMenuService extends MybatisBaseService<SysMenuMapper, SysMenu> {
// @Autowired
// private SysSourceMenuService sysSourceMenuService;
@Autowired
private SysMenuService sysMenuService;
@Autowired
private SysSourceService sysSourceService;
public PagerVo<SysMenu> listPage(PagerQuery<SysMenuQuery> pq) {
SysMenuQuery query = pq.getParams();
QueryWrapper<SysMenu> qw = createQueryWrapper(query);
IPage<SysMenu> page = PagerUtil.queryToPage(pq);
IPage<SysMenu> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysMenu> p = PagerUtil.pageToVo(pagging, null);
return p;
}
@Override
public SysMenu fetchBySid(String sid) {
return baseMapper.fetchBySid(sid);
}
public List<SysMenu> listAll(SysMenuQuery query) {
QueryWrapper<SysMenu> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysMenu> createQueryWrapper(SysMenuQuery query) {
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysMenu> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getName())) {
qw.eq("name", query.getName());
}
if (StringUtils.isNotBlank(query.getMenuUrl())) {
qw.eq("menuUrl", query.getMenuUrl());
}
if (StringUtils.isNotBlank(query.getPageUrl())) {
qw.eq("pageUrl", query.getPageUrl());
}
if (StringUtils.isNotBlank(query.getIconUrl())) {
qw.eq("iconUrl", query.getIconUrl());
}
if (query.getSourceSid() != null) {
qw.eq("sourceSid", query.getSourceSid());
}
if (StringUtils.isNotBlank(query.getIsShow())) {
qw.eq("isShow", query.getIsShow());
}
if (query.getSortNo() != null) {
qw.eq("sortNo", query.getSortNo());
}
if (StringUtils.isNotBlank(query.getPSid())) {
qw.eq("pSid", query.getPSid());
}
if (query.getPageUrlRedirect() != null) {
qw.eq("pageUrlRedirect", query.getPageUrlRedirect());
}
if (StringUtils.isNotBlank(query.getPageName())) {
qw.eq("pageName", query.getPageName());
}
if (StringUtils.isNotBlank(query.getPageAliasName())) {
qw.eq("pageAliasName", query.getPageAliasName());
}
if (StringUtils.isNotBlank(query.getMenuType())) {
qw.eq("menuType", query.getMenuType());
}
return qw;
}
public PagerVo<SysMenuVo> listPageVo(PagerQuery<SysMenuQuery> pq) {
SysMenuQuery query = pq.getParams();
QueryWrapper<SysMenu> qw = createQueryWrapper(query);
IPage<SysMenu> page = PagerUtil.queryToPage(pq);
IPage<SysMenuVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysMenuVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
/* public List<SysMenuVo> listAllVo(SysMenuQuery query) {
QueryWrapper<SysMenu> qw = new QueryWrapper<>();
qw.eq("menu.pSid", "0");
List<SysMenuVo> sysMenuVos = baseMapper.selectListAllVo(qw);
for(SysMenuVo s:sysMenuVos){
getChildrens(s);
}
return sysMenuVos;
}*/
public List<SysMenuTreeVo> listAllVoForSource(SysMenuQuery query) {
//查询所有的资源列表
List<SysMenuTreeVo> sysSourceVos = sysSourceService.listMenuTreeVo();
for (SysMenuTreeVo s : sysSourceVos) {
//根据资源sid查询该资源下的所有一级菜单
//List<SysMenuTreeVo> sysMenuVoList = sysSourceMenuService.fetchRootMenuBySourceSid(s.getSourceSid());
List<SysMenuTreeVo> sysMenuVoList = sysMenuService.fetchRootMenuBySourceSid(s.getSourceSid());
s.setChildren(sysMenuVoList);
s.setIsSource("1");
//判断该资源下的菜单是否有可用的状态
int isEnable = 1;
int count = baseMapper.selectBySourceSid(isEnable, s.getSourceSid());
if (count == 0) {
s.setIsEnable("0");
} else {
s.setIsEnable("1");
}
if (!sysMenuVoList.isEmpty()) {
// sysMenuVoList = getChildrensForMenuTree(sysMenuVoList);
getChildList(sysMenuVoList);
}
}
return sysSourceVos;
}
public void getChildList(List<SysMenuTreeVo> list) {
list.forEach(str -> {
String sid = str.getSid();
List<SysMenuTreeVo> listChildren = baseMapper.selectChildernList(sid);
str.setChildren(listChildren);
getChildList(listChildren);
});
}
/*暂时废弃*/
/*private List<SysMenuTreeVo> getChildrensForMenuTree(List<SysMenuTreeVo> sysMenuVoList) {
List<SysMenuTreeVo> list = new ArrayList<>();
for (SysMenuTreeVo s : sysMenuVoList) {
SysMenu sysMenu = sysMenuService.fetchBySid(s.getMenuRootSid());
SysMenuTreeVo sysMenuTreeVo = new SysMenuTreeVo();
BeanUtil.copyProperties(sysMenu, sysMenuTreeVo);
list.add(sysMenuTreeVo);
}
for (SysMenuTreeVo s : list) {
getChildrensForMenuTree(s, s.getSid());
}
return list;
}
private void getChildrensForMenuTree(SysMenuTreeVo s,String sid){
QueryWrapper<SysMenuTreeVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(sid)) {
qw.eq("menu.pSid", sid);
}
List<SysMenuTreeVo> sysMenuVos = baseMapper.getChildrensForMenuTree(qw);
if(!sysMenuVos.isEmpty()){
for(SysMenuTreeVo smv:sysMenuVos){
getChildrensForMenuTree(smv,smv.getSid());
}
}
s.setChildren(sysMenuVos);
}
private void getChildrens(SysMenuVo s){
String sid = s.getSid();
QueryWrapper<SysMenu> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(sid)) {
qw.eq("menu.pSid", sid);
}
List<SysMenuVo> sysMenuVos = baseMapper.selectListAllVo(qw);
if(!sysMenuVos.isEmpty()){
for(SysMenuVo smv:sysMenuVos){
getChildrens(smv);
}
}
s.setChildren(sysMenuVos);
}*/
public List<SysMenuVo> listVo() {
return baseMapper.selectListVo();
}
/* public void saveOrUpdateDto(SysMenuDto dto) {
SysMenu entity = new SysMenu();
dto.fillEntity(entity);
SysSourceMenu sysSourceMenu = new SysSourceMenu();
sysSourceMenu.setMenuSid(entity.getSid());
sysSourceMenu.setSourceSid(dto.getSourceSid());
setRootSid(entity, sysSourceMenu);
sysSourceMenuService.save(sysSourceMenu);
this.saveOrUpdate(entity);
}*/
// private void setRootSid(SysMenu entity, SysSourceMenu sysSourceMenu) {
// String pSid = entity.getPSid();
// if ("0".equals(pSid)) {
// sysSourceMenu.setMenuRootSid(entity.getSid());
// } else {
// SysMenu sysMenu = sysMenuService.fetchBySid(pSid);
// String pSid1 = sysMenu.getPSid();
// if ("0".equals(pSid1)) {
// sysSourceMenu.setMenuRootSid(sysMenu.getSid());
// }
// setRootSid(sysMenu, sysSourceMenu);
// }
// }
public SysMenuVo fetchByIdVo(String id) {
SysMenu entity = this.fetchById(id);
SysMenuVo vo = new SysMenuVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<SysMenuVo> listAllByRoleSid(SysMenuQuery query) {
List<SysMenuVo> sysMenuVos = baseMapper.listAllParentByRoleSid(query.getRoleSid(), "0", query.getSourceSid());
for (SysMenuVo s : sysMenuVos) {
getChildrensByRoleSid(s, query.getRoleSid(), query.getSourceSid());
}
return sysMenuVos;
}
private void getChildrensByRoleSid(SysMenuVo s, String roleSid, String sourceSid) {
String sid = s.getSid();
List<SysMenuVo> sysMenuVos = baseMapper.listAllParentByRoleSid(roleSid, sid, sourceSid);
if (!sysMenuVos.isEmpty()) {
for (SysMenuVo smv : sysMenuVos) {
getChildrensByRoleSid(smv, roleSid, sourceSid);
}
}
s.setChildren(sysMenuVos);
}
/*public List<SysMenuTreeVo> listAllVoBySourceSId(SysMenuQuery query) {
SysSource sysSource = sysSourceService.fetchBySid(query.getSourceSid());
List<SysMenuTreeVo> sysSourceVos = new ArrayList<>();//sysSourceService.listAllVoBySourceSId(query.getSourceSid());
SysMenuTreeVo smtv=new SysMenuTreeVo();
smtv.setName(sysSource.getSourceName());
smtv.setSid(sysSource.getSid());
smtv.setSourceSid(sysSource.getSid());
sysSourceVos.add(smtv);
for(SysMenuTreeVo s:sysSourceVos){
List<SysMenuTreeVo> sysMenuVoList=sysSourceMenuService.fetchRootMenuBySourceSid(s.getSourceSid());
if(!sysMenuVoList.isEmpty()){
sysMenuVoList = getChildrensForMenuTree(sysMenuVoList);
}
s.setChildren(sysMenuVoList);
}
return sysSourceVos;
}*/
/**
* 资源菜单树形列表
*
* @return 资源菜单树形列表第一级一级菜单 第二级二级菜单
*/
// public List<Map<String, Object>> getSourceMenuTree(List<SysMenuRoleVo> list_menu, Map<String, Object> map_selectMenus) {
//
// //获取当前资源的菜单列表
// List<Map<String, Object>> list_menus_map = new ArrayList<Map<String, Object>>();
//
//
// //获取资源第一级菜单列表
// List<SysMenuRoleVo> list_firstLevel_menu = list_menu.stream().filter(s -> s.getPSid().equals("0")).collect(Collectors.toList());
//
// //遍历资源的第一级菜单
// for (int i = 0; i < list_firstLevel_menu.size(); i++) {
// Map<String, Object> map_firstLevel_menu = getMenuTreeFromStream(list_firstLevel_menu.get(i).getSid(), list_menu, map_selectMenus);
// //把该菜单挂在当前菜单列表中
// if (null != map_firstLevel_menu)
// list_menus_map.add(map_firstLevel_menu);
// }
// return list_menus_map;
//
// }
/**
* 递归把list转换成菜单树形列表
*
* @param psid
* @param list_menu
* @return
*/
// private Map<String, Object> getMenuTreeFromStream(String psid, List<SysMenuRoleVo> list_menu, Map<String, Object> map_selectMenus) {
// //获取当前菜单
// List<SysMenuRoleVo> list_current_menu = list_menu.stream().filter(s -> s.getSid().equals(psid)).collect(Collectors.toList());
// if (null == list_current_menu || 0 == list_current_menu.size())
// return null;
//
// Map<String, Object> map_menu = getMenuMap(list_current_menu.get(0), map_selectMenus);
//
// //2.获取菜单的子菜单列表
// //存储最终子菜单列表结果
// List<Map<String, Object>> list_child = new ArrayList<Map<String, Object>>();
//
// //获取子菜单列表
// List<SysMenuRoleVo> list_child_menu = list_menu.stream().filter(s -> s.getPSid().equals(psid)).collect(Collectors.toList());
// for (int i = 0; i < list_child_menu.size(); i++) {
// //获取该菜单子菜单列表
// Map<String, Object> map_child_menu = getMenuTreeFromStream(list_child_menu.get(i).getSid(), list_menu, map_selectMenus);
// //把该菜单挂在当前菜单列表中
// if (null != map_child_menu)
// list_child.add(map_child_menu);
// }
// //把该菜单列表放到父菜单的childMenus中
// map_menu.put("children", list_child);
//
// return map_menu;
//
// }
/**
* 构造菜单的结果map
*
* @return
*/
// private Map<String, Object> getMenuMap(SysMenuRoleVo menuVo, Map<String, Object> map_selectMenus) {
// Map<String, Object> map_menu = new HashMap<String, Object>();
//
// if (null != map_selectMenus) {
// //角色授权时,菜单列表
// map_menu.put("sid", menuVo.getSid());
// map_menu.put("menuName", menuVo.getMenuName() + (StringUtils.isNotBlank(menuVo.getRemarks()) ? "(" + menuVo.getRemarks() + ")" : ""));
// map_menu.put("menuUrl", menuVo.getMenuUrl());
// map_menu.put("pageUrl", menuVo.getPageUrl());
// map_menu.put("iconUrl", menuVo.getIconUrl());
// map_menu.put("isShow", menuVo.getIsShow());
// if (menuVo.getAlwaysShow() == 0) {
// map_menu.put("alwaysShow", false);
// } else if (menuVo.getAlwaysShow() == 1) {
// map_menu.put("alwaysShow", true);
// }
//
// //如果角色已有的菜单,则设置选中,并移除map中的项;否则设置不选中
// if (map_selectMenus.containsKey(menuVo.getSid())) {
// map_menu.put("isCheck", 1);
// map_selectMenus.remove(menuVo.getSid());
// } else {
// map_menu.put("isCheck", 0);
// }
// } else {
// //左侧菜单列表
// Map<String, Object> map_meta = new HashMap<String, Object>();
// map_meta.put("title", menuVo.getMenuName());
// map_meta.put("icon", menuVo.getIconUrl());
// map_menu.put("meta", map_meta);
//
// map_menu.put("redirect", menuVo.getPageUrlRedirect());
// //路径
// map_menu.put("path", menuVo.getPageUrl() != null && !menuVo.getPageUrl().equals("") ? menuVo.getPageUrl() : "/" + menuVo.getPageName());
// map_menu.put("name", menuVo.getPageAliasName() != null && !menuVo.getPageAliasName().equals("") ? menuVo.getPageAliasName() : menuVo.getPageUrl());
// //组件名
// map_menu.put("component", menuVo.getPageName());
// if (menuVo.getAlwaysShow() == 0) {
// map_menu.put("alwaysShow", false);
// } else if (menuVo.getAlwaysShow() == 1) {
// map_menu.put("alwaysShow", true);
// }
// }
// return map_menu;
// }
/**
* 将该资源下的所有菜单设置为是否可用
*
* @param sid 资源sid
* @param isEnable 是否可用1可用0不可用
* @return
*/
public int updateBySourceSid(String sid, Integer isEnable) {
return baseMapper.updateBySourceSid(sid, isEnable);
}
public void saveMenu(SysMenuDto dto) {
SysMenu entity = new SysMenu();
dto.fillEntity(entity);
// SysSourceMenu sysSourceMenu = new SysSourceMenu();
// sysSourceMenu.setMenuSid(entity.getSid());
// sysSourceMenu.setSourceSid(dto.getSourceSid());
// setRootSid(entity, sysSourceMenu);
// sysSourceMenuService.save(sysSourceMenu);
save(entity);
}
public List<SysMenu> selectByMenuUrl(String menuUrl) {
return baseMapper.selectByMenuUrl(menuUrl);
}
/**
* 根据资源sid查询该资源下的一级菜单列表yxt_mtl 2024-01-31
*
* @param sid 资源sid
* @return
*/
public List<SysMenuTreeVo> fetchRootMenuBySourceSid(String sid) {
return baseMapper.fetchRootMenuBySourceSid(sid);
}
}

59
src/main/java/com/yxt/user/biz/sysmenu/SysMenuTreeVo.java

@ -0,0 +1,59 @@
package com.yxt.user.biz.sysmenu;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenu.SysMenuVo <br/>
* Description: 菜单表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "菜单表 视图数据对象", description = "菜单表 视图数据对象")
@Data
public class SysMenuTreeVo implements Vo {
@ApiModelProperty("菜单名称")
private String name;
@ApiModelProperty("资源sid")
private String sourceSid;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("上级sid")
private String pSid;
@ApiModelProperty("上级菜单名称")
private String pName;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("资源名称")
private String sourceName;
@ApiModelProperty("菜单根路径sid")
private String menuRootSid;
@ApiModelProperty("pageUrl")
private String pageUrl;
@ApiModelProperty("menuUrl")
private String menuUrl;
@ApiModelProperty("menuUrl")
private String pageName;
@ApiModelProperty("iconUrl")
private String iconUrl;
@ApiModelProperty("菜单列表用,是否是资源层级1是,0不是")
private String isSource = "0";
@ApiModelProperty("是否可用")
private String isEnable;
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty("子菜单")
private List<SysMenuTreeVo> children;
}

74
src/main/java/com/yxt/user/biz/sysmenu/SysMenuVo.java

@ -0,0 +1,74 @@
package com.yxt.user.biz.sysmenu;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenu.SysMenuVo <br/>
* Description: 菜单表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "菜单表 视图数据对象", description = "菜单表 视图数据对象")
@Data
public class SysMenuVo implements Vo {
@ApiModelProperty("菜单名称")
private String name;
@ApiModelProperty("菜单路由路径(VUE)")
private String menuUrl;
@ApiModelProperty("菜单对应的前端页面路径")
private String pageUrl;
@ApiModelProperty("菜单图标地址")
private String iconUrl;
@ApiModelProperty("资源sid")
private String sourceSid;
@ApiModelProperty("是否显示,默认为1显示,0为不显示")
private String isShow;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("上级sid")
private String pSid;
@ApiModelProperty("上级名称")
private String pName;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("前端页面路径重定向")
private Integer pageUrlRedirect;
@ApiModelProperty("前端页面名称(vue组件名)")
private String pageName;
@ApiModelProperty("前端页面别名")
private String pageAliasName;
@ApiModelProperty("菜单类型(0左侧当行菜单,1页面中功能)")
private String menuType;
@ApiModelProperty("子菜单")
private List<SysMenuVo> children;
@ApiModelProperty("是否选中,1:未选中,0:选中")
private String checked;
@ApiModelProperty("资源名称")
private String sourceName;
}

40
src/main/java/com/yxt/user/biz/sysorganization/AppContactSysOrganizationVo.java

@ -0,0 +1,40 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/9/24
*/
@ApiModel(value = "App通讯录组织架构")
@Data
public class AppContactSysOrganizationVo implements Vo {
@ApiModelProperty("部门/组织sid")
private String sid;
@ApiModelProperty("部门/组织名称|员工姓名")
private String name;
@ApiModelProperty("员工数量")
private int staffNum;
@ApiModelProperty("跳转类型:1、部门2、员工列表")
private Integer type;
@ApiModelProperty("员工电话")
private String mobile;
@ApiModelProperty("员工头像")
private String headImage;
@ApiModelProperty("员工所在部门名称(路径)")
private String orgNamePath;
@ApiModelProperty("员工职位")
private String position;
}

23
src/main/java/com/yxt/user/biz/sysorganization/QrCodeVo.java

@ -0,0 +1,23 @@
package com.yxt.user.biz.sysorganization;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2020/11/3 16:19
* @description
*/
@Data
public class QrCodeVo {
@ApiModelProperty("部门名称")
private String departmentName;
@ApiModelProperty("单位名称")
private String organizationName;
@ApiModelProperty("部门地址")
private String address;
@ApiModelProperty("二维码图片地址")
private String qrFilePath;
@ApiModelProperty(value = "部门sid")
private String sid;
}

29
src/main/java/com/yxt/user/biz/sysorganization/SysOrgListVo.java

@ -0,0 +1,29 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/2/14 11:45
* @Description 员工所在部门下拉列表
*/
@Data
public class SysOrgListVo implements Vo {
private static final long serialVersionUID = -3558876605554852892L;
@ApiModelProperty(value = "组织名称")
private String name;
@ApiModelProperty(value = "部门编码")
private String orgCode;
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "上级sid")
private String psid;
@ApiModelProperty(value = "orgSidPath")
private String orgSidPath;
private List<SysOrgVo> children;
}

17
src/main/java/com/yxt/user/biz/sysorganization/SysOrgStaffVo.java

@ -0,0 +1,17 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/9/26 11:48
* @Description
*/
@Data
public class SysOrgStaffVo implements Vo {
private static final long serialVersionUID = -4311553944345419092L;
private String staffName;
private String staffSid;
}

31
src/main/java/com/yxt/user/biz/sysorganization/SysOrgVo.java

@ -0,0 +1,31 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author dimengzhe
* @date 2021/10/12 20:55
* @description
*/
@Data
public class SysOrgVo implements Vo {
private static final long serialVersionUID = 2983637708030419942L;
@ApiModelProperty(value = "组织名称")
private String name;
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "psid")
private String psid;
@ApiModelProperty(value = "id")
private String id;
@ApiModelProperty(value = "orgSidPath")
private String orgSidPath;
@ApiModelProperty(value = "部门编码")
private String orgCode;
private List<SysOrgVo> children;
}

87
src/main/java/com/yxt/user/biz/sysorganization/SysOrganization.java

@ -0,0 +1,87 @@
package com.yxt.user.biz.sysorganization;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysOrganization.java <br/>
* Class: SysOrganization <br/>
* Description: 组织机构表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "组织机构表", description = "组织机构表")
@TableName("sys_organization")
@Data
public class SysOrganization extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("部门/组织名称")
private String name;
@ApiModelProperty("父(部门/组织) sid")
private String psid;
@ApiModelProperty("联系电话")
private String linkPhone;
@ApiModelProperty("联系人")
private String linkPerson;
@ApiModelProperty("部门sid全路径")
private String orgSidPath;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("地址")
private String addrs;
@ApiModelProperty("地理位置经纬度")
private String jwd;
@ApiModelProperty("二维码")
private String qrText;
@ApiModelProperty("限制本部门成员查看通讯录:限制开启后,本部门成员只能看到限定范围内的通讯录不能看到所有通讯录,仅可见自己")
private Integer limitOrgMember;
@ApiModelProperty("部门编码")
private String orgCode;
@ApiModelProperty("部门简称(地区简称+门店名称首字母(遇到首字母重复时用2个字母))")
private String orgShortName;
@ApiModelProperty("销售区域划分(本店终端销售:0,门店对应业务区域划分销售:1至9,具体编号划分各门店报备确定)")
private String regionDivision;
@ApiModelProperty("是否是部门(0否,1是)")
private Integer isDept;
@ApiModelProperty("组织简称")
private String orgAbbre;
@ApiModelProperty("组织属性key")
private String orgAttributeKey;
@ApiModelProperty("组织属性value")
private String orgAttributeValue;
@ApiModelProperty("管理层级key")
private String orgLevelKey;
@ApiModelProperty("管理层级value")
private String orgLevelValue;
@ApiModelProperty("其他编码")
private String otherCode;
}

91
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationDto.java

@ -0,0 +1,91 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysOrganizationDto.java <br/>
* Class: SysOrganizationDto <br/>
* Description: 组织机构表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "组织机构表 数据传输对象", description = "组织机构表 数据传输对象")
@Data
public class SysOrganizationDto implements Dto {
@ApiModelProperty("部门/组织名称")
private String name;
@ApiModelProperty("父(部门/组织) sid")
private String psid;
@ApiModelProperty("联系电话")
private String linkPhone;
@ApiModelProperty("联系人")
private String linkPerson;
@ApiModelProperty("部门sid全路径")
private String orgSidPath;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("地址")
private String addrs;
@ApiModelProperty("地理位置经纬度")
private String jwd;
@ApiModelProperty("二维码")
private String qrText;
@ApiModelProperty("限制本部门成员查看通讯录:限制开启后,本部门成员只能看到限定范围内的通讯录不能看到所有通讯录,仅可见自己")
private Integer limitOrgMember;
@ApiModelProperty("部门编码")
private String orgCode;
@ApiModelProperty("部门简称(地区简称+门店名称首字母(遇到首字母重复时用2个字母))")
private String orgShortName;
@ApiModelProperty("销售区域划分(本店终端销售:0,门店对应业务区域划分销售:1至9,具体编号划分各门店报备确定)")
private String regionDivision;
@ApiModelProperty("主管人员sid")
private String zgStaffSid;
@ApiModelProperty("分管人员sid")
private String fgStaffSid;
@ApiModelProperty("组织简称")
private String orgAbbre;
@ApiModelProperty("是否是部门(0否,1是)")
private Integer isDept;
@ApiModelProperty("组织属性key")
private String orgAttributeKey;
@ApiModelProperty("组织属性value")
private String orgAttributeValue;
@ApiModelProperty("管理层级key")
private String orgLevelKey;
@ApiModelProperty("管理层级value")
private String orgLevelValue;
@ApiModelProperty("其他编码")
private String otherCode;
}

16
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationListQuery.java

@ -0,0 +1,16 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/9/26 11:49
* @Description
*/
@Data
public class SysOrganizationListQuery implements Query {
private static final long serialVersionUID = 8657016527420117948L;
private String userSid;
}

23
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationListVo.java

@ -0,0 +1,23 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/9/26 11:42
* @Description
*/
@Data
public class SysOrganizationListVo implements Vo {
private static final long serialVersionUID = -3709239161608411765L;
private String orgDeptSid;
private String orgDeptName;
private List<SysOrgStaffVo> staffinfoVoList;
}

17
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationListsVo.java

@ -0,0 +1,17 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/9/30 11:28
* @Description
*/
@Data
public class SysOrganizationListsVo implements Vo {
private static final long serialVersionUID = -7021974833444298712L;
private String orgDeptSid;
private String orgDeptName;
}

122
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationMapper.java

@ -0,0 +1,122 @@
package com.yxt.user.biz.sysorganization;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.user.biz.sysstafforg.SysStaffOrgVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysOrganizationMapper.java <br/>
* Class: SysOrganizationMapper <br/>
* Description: 组织机构表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
//@Update("update sys_organization set name=#{msg} where id=#{id}")
//IPage<SysOrganizationVo> voPage(IPage<SysOrganization> page, @Param(Constants.WRAPPER) QueryWrapper<SysOrganization> qw);
IPage<SysOrganizationVo> selectPageVo(IPage<SysOrganization> page, @Param(Constants.WRAPPER) Wrapper<SysOrganization> qw);
List<SysOrganizationVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysOrganization> qw);
List<SysOrganizationVo> selectFirstOrgList();
List<SysOrganizationVo> selectChildrenListByPsid(@Param("psid") String psid);
@Select("SELECT * FROM sys_organization")
List<SysOrganizationVo> selectListVo();
@Select("SELECT name FROM sys_organization WHERE sid=#{sid}")
String selectOrgnameBySid(@Param("sid") String sid);
String selectOrgSidPath(@Param("sid") String sid);
List<AppContactSysOrganizationVo> selectAppOrganization();
List<AppContactSysOrganizationVo> selectAppOrganizationByPsid(@Param("psid") String psid);
List<SysOrgVo> treeList(String psid);
SysOrganization selectOrgCode();
List<SysOrgVo> getListOrg();
SysOrganization selectOrgCodeByPsid();
/**
* 根据上级sid查询组织的部门
*
* @param psid 上级sid
* @return
*/
List<SysOrgListVo> selectTreeList(String psid);
/**
* 根据部门编码查询部门信息
*
* @param substring 部门编码
* @return
*/
SysOrganization selectByOrgCode(String substring);
List<SysOrganizationVo> selectChildernList(String sid);
/**
* 根据业务员sid获取到分公司
*
* @param staffSid 业务员sid
* @return
*/
SysStaffOrgVo getUseOrgByUserSid(@Param("staffSid") String staffSid);
/**
* 根据sid判断是否是分公司并获取公司名称
*
* @param sid
* @return
*/
SysOrganizationVo getUseOrgBySid(@Param("sid")String sid);
int updateQrCodePath(@Param("sid") String sid, @Param("path") String path);
QrCodeVo getQrCodeVo(@Param("sid") String sid);
@Select("select * from sys_organization WHERE staffSid=#{sid}")
SysOrganizationVo getUseOrgByStaffSid(String sid);
List<Map<String, String>> selectUseOrgSidBySid(String psid);
SysOrgVo getListOrgByBrand(String sid);
List<SysOrganizationListVo> selectOrgList(String orgSid);
List<SysOrganizationListsVo> selectOrgLists(String orgSid);
List<SysOrgStaffVo> selectByOrgDeptSid(String orgDeptSid);
SysOrganizationVo selectByPSid(@Param("sid") String sid, @Param("name") String name);
List<SysOrganizationVo> selectOrgSidList();
@Select("select * from sys_organization where orgSidPath = #{orgSidPath}")
SysOrganizationVo selectByOrgSidPath(String orgSidPath);
List<SysOrgVo> getListDeptByOrgSid(String orgSid);
List<SysOrganizationVo> selectOrgByPSid(String psid);
}

220
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationMapper.xml

@ -0,0 +1,220 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.user.biz.sysorganization.SysOrganizationMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
SELECT so.*,
(SELECT GROUP_CONCAT(ss.name)
FROM `sys_staff_org` sso
LEFT JOIN `sys_staffinfo` ss ON sso.`staffSid` = ss.`sid`
WHERE so.`sid` = sso.`orgSid`
AND sso.manageType = '1') zgNames,
(SELECT GROUP_CONCAT(ss.sid)
FROM `sys_staff_org` sso
LEFT JOIN `sys_staffinfo` ss ON sso.`staffSid` = ss.`sid`
WHERE so.`sid` = sso.`orgSid`
AND sso.manageType = '1') zgSids,
(SELECT GROUP_CONCAT(ss.name)
FROM `sys_staff_org` sso
LEFT JOIN `sys_staffinfo` ss ON sso.`staffSid` = ss.`sid`
WHERE so.`sid` = sso.`orgSid`
AND sso.manageType = '2') fgNames,
(SELECT GROUP_CONCAT(ss.sid)
FROM `sys_staff_org` sso
LEFT JOIN `sys_staffinfo` ss ON sso.`staffSid` = ss.`sid`
WHERE so.`sid` = sso.`orgSid`
AND sso.manageType = '2') fgSids
FROM sys_organization so
<where>
${ew.sqlSegment}
</where>
GROUP BY so.`name`
ORDER BY so.sort
</select>
<select id="selectListAllVo" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
SELECT *
FROM sys_organization
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectFirstOrgList" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
SELECT sid, name, psid, orgCode
FROM sys_organization
WHERE psid = '0'
</select>
<select id="selectChildrenListByPsid" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
SELECT sid, name, psid, orgCode
FROM sys_organization
WHERE psid = #{psid}
ORDER BY sort ASC
</select>
<select id="selectOrgSidPath" resultType="java.lang.String">
SELECT orgSidPath
FROM sys_organization WHERE 1 = 1
<choose>
<when test="sid != null and sid != ''">
AND sid = #{sid,jdbcType=VARCHAR}
</when>
<otherwise>
AND psid = '0'
</otherwise>
</choose>
</select>
<select id="selectAppOrganization"
resultType="com.yxt.user.biz.sysorganization.AppContactSysOrganizationVo">
SELECT sid,
name,
(SELECT count(1) FROM sys_staff_org WHERE orgSid = org.sid) staffNum,
IF((SELECT count(1) FROM sys_organization WHERE psid = org.sid) = 0, '2', '1') type
FROM sys_organization org
WHERE org.psid = (SELECT sid FROM sys_organization WHERE psid = '0')
</select>
<select id="selectAppOrganizationByPsid"
resultType="com.yxt.user.biz.sysorganization.AppContactSysOrganizationVo">
SELECT org.sid,
org.name,
(SELECT count(1) FROM sys_staff_org WHERE orgSid = org.sid) staffNum,
IF((SELECT count(1) FROM sys_organization WHERE psid = org.sid) = 0, '2', '1') type
FROM sys_organization org
WHERE org.psid = #{psid}
</select>
<select id="treeList" resultType="com.yxt.user.biz.sysorganization.SysOrgVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
WHERE psid = #{psid}
</select>
<select id="selectOrgCode" resultType="com.yxt.user.biz.sysorganization.SysOrganization">
SELECT *
FROM sys_organization
WHERE psid = '0'
</select>
<select id="getListOrg" resultType="com.yxt.user.biz.sysorganization.SysOrgVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath
FROM sys_organization so
WHERE isDept = 0
ORDER BY psid
</select>
<select id="selectOrgCodeByPsid" resultType="com.yxt.user.biz.sysorganization.SysOrganization">
SELECT *
FROM sys_organization
LIMIT 0,1
</select>
<select id="selectTreeList" resultType="com.yxt.user.biz.sysorganization.SysOrgListVo">
SELECT so.name, so.psid, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
WHERE psid = #{psid}
</select>
<!--根据部门编码查询部门信息-->
<select id="selectByOrgCode" resultType="com.yxt.user.biz.sysorganization.SysOrganization">
select *
from sys_organization
where orgCode = #{substring}
</select>
<select id="selectChildernList" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
SELECT so.name, so.psid, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
WHERE psid = #{psid}
ORDER BY so.sort ASC
</select>
<select id="getUseOrgByUserSid" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgVo">
select orgSidPath
from sys_staff_org
where staffSid = #{staffSid}
</select>
<select id="getUseOrgBySid" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
SELECT so.name, so.psid, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
WHERE sid = #{sid}
And isDept = 0
</select>
<update id="updateQrCodePath">
UPDATE sys_organization
SET qrText = #{path}
WHERE sid = #{sid}
</update>
<select id="getQrCodeVo" resultType="com.yxt.user.biz.sysorganization.QrCodeVo">
SELECT so.name departmentName, so.qrText qrFilePath, so.addrs address, so.sid
FROM sys_organization so
WHERE so.sid = #{sid}
ORDER BY so.sort ASC
</select>
<select id="selectUseOrgSidBySid" resultType="java.util.Map">
SELECT sid,
name
FROM sys_organization
WHERE psid = #{psid}
AND isDelete = 0
AND isDept = 0
</select>
<select id="getListOrgByBrand" resultType="com.yxt.user.biz.sysorganization.SysOrgVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath
FROM sys_organization so
WHERE isDept = 0
AND so.sid = #{sid}
ORDER BY psid
</select>
<select id="selectOrgList" resultType="com.yxt.user.biz.sysorganization.SysOrganizationListVo">
select so.name orgDeptName, so.sid orgDeptSid
from sys_organization so
where so.psid = #{orgSid}
and orgAttributeKey = 'DP03_SYS'
</select>
<select id="selectOrgLists" resultType="com.yxt.user.biz.sysorganization.SysOrganizationListsVo">
select so.name orgDeptName, so.sid orgDeptSid
from sys_organization so
where so.psid = #{orgSid}
</select>
<select id="selectByOrgDeptSid" resultType="com.yxt.user.biz.sysorganization.SysOrgStaffVo">
select distinct si.name staffName, si.sid staffSid
from sys_staff_org so
left join sys_staffinfo si on so.staffSid = si.sid
where so.orgSid = #{orgDeptSid}
</select>
<select id="selectByPSid" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
select *
from sys_organization
where psid = #{sid}
and name = #{name}
</select>
<select id="selectOrgSidList" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
select sid,name,orgCode from sys_organization so where so.isDept = 0
</select>
<select id="getListDeptByOrgSid" resultType="com.yxt.user.biz.sysorganization.SysOrgVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath
FROM sys_organization so
WHERE isDept = 1
AND so.psid = #{orgSid}
</select>
<select id="selectOrgByPSid" resultType="com.yxt.user.biz.sysorganization.SysOrganizationVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath
FROM sys_organization so
WHERE isDept = 0 AND so.psid = #{psid}
</select>
</mapper>

58
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationQuery.java

@ -0,0 +1,58 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysOrganizationQuery.java <br/>
* Class: SysOrganizationQuery <br/>
* Description: 组织机构表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "组织机构表 查询条件", description = "组织机构表 查询条件")
@Data
public class SysOrganizationQuery implements Query {
@ApiModelProperty("部门/组织名称")
private String name;
@ApiModelProperty("父(部门/组织) sid")
private String psid;
@ApiModelProperty("联系电话")
private String linkPhone;
@ApiModelProperty("联系人")
private String linkPerson;
@ApiModelProperty("部门sid全路径")
private String orgSidPath;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("地址")
private String addrs;
@ApiModelProperty("地理位置经纬度")
private String jwd;
@ApiModelProperty("二维码")
private String qrText;
@ApiModelProperty("限制本部门成员查看通讯录:限制开启后,本部门成员只能看到限定范围内的通讯录不能看到所有通讯录,仅可见自己")
private Integer limitOrgMember;
@ApiModelProperty("部门编码")
private String orgCode;
}

521
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationService.java

@ -0,0 +1,521 @@
package com.yxt.user.biz.sysorganization;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysstaffinfo.SysStaffinfo;
import com.yxt.user.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.user.biz.sysstafforg.SysStaffOrg;
import com.yxt.user.biz.sysstafforg.SysStaffOrgService;
import com.yxt.user.biz.sysstafforg.SysStaffOrgVo;
import com.yxt.user.biz.sysuser.SysUserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import static java.util.stream.Collectors.toList;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysOrganizationService.java <br/>
* Class: SysOrganizationService <br/>
* Description: 组织机构表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SysOrganizationService extends MybatisBaseService<SysOrganizationMapper, SysOrganization> {
@Autowired
private SysStaffOrgService sysStaffOrgService;
@Autowired
private SysUserService sysUserService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private SysStaffinfoService sysStaffInfoService;
@Autowired
private RedisUtil redisUtil;
public ResultBean saveOrg(SysOrganizationDto dto){
ResultBean rb = ResultBean.fireFail();
SysOrganization entity = new SysOrganization();
dto.fillEntity(entity);
String psid = dto.getPsid();
if (psid.equals("0")){
entity.setOrgSidPath(entity.getSid());
entity.setSort(1);
}else {
SysOrganization sysOrganization = fetchBySid(psid);
entity.setOrgSidPath(sysOrganization.getOrgSidPath()+"/"+entity.getSid());
String[] split = sysOrganization.getOrgSidPath().split("/");
entity.setSort(split.length+1);
}
this.saveOrUpdate(entity);
return rb.success().setMsg("添加成功");
}
public PagerVo<SysOrganization> listPage(PagerQuery<SysOrganizationQuery> pq) {
SysOrganizationQuery query = pq.getParams();
QueryWrapper<SysOrganization> qw = createQueryWrapper(query);
IPage<SysOrganization> page = PagerUtil.queryToPage(pq);
IPage<SysOrganization> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysOrganization> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysOrganization> listAll(SysOrganizationQuery query) {
QueryWrapper<SysOrganization> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysOrganization> createQueryWrapper(SysOrganizationQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysOrganization> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getName())) {
qw.eq("name", query.getName());
}
if (StringUtils.isNotBlank(query.getPsid())) {
qw.eq("psid", query.getPsid());
}
if (StringUtils.isNotBlank(query.getLinkPhone())) {
qw.eq("linkPhone", query.getLinkPhone());
}
if (StringUtils.isNotBlank(query.getOrgSidPath())) {
qw.eq("orgSidPath", query.getOrgSidPath());
}
if (query.getSort() != null) {
qw.eq("sort", query.getSort());
}
if (StringUtils.isNotBlank(query.getAddrs())) {
qw.eq("addrs", query.getAddrs());
}
if (StringUtils.isNotBlank(query.getJwd())) {
qw.eq("jwd", query.getJwd());
}
if (StringUtils.isNotBlank(query.getQrText())) {
qw.eq("qrText", query.getQrText());
}
if (query.getLimitOrgMember() != null) {
qw.eq("limitOrgMember", query.getLimitOrgMember());
}
if (StringUtils.isNotBlank(query.getOrgCode())) {
qw.eq("orgCode", query.getOrgCode());
}
return qw;
}
public PagerVo<SysOrganizationVo> listPageVo(PagerQuery<SysOrganizationQuery> pq) {
SysOrganizationQuery query = pq.getParams();
QueryWrapper<SysOrganization> qw = createQueryWrapper(query);
IPage<SysOrganization> page = PagerUtil.queryToPage(pq);
IPage<SysOrganizationVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysOrganizationVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysOrganizationVo> listAllVo(SysOrganizationQuery query) {
QueryWrapper<SysOrganization> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SysOrganizationVo> listVo() {
List<SysOrganizationVo> sysOrganizations = baseMapper.selectFirstOrgList();
getChildList(sysOrganizations);
return sysOrganizations;
}
public void getChildList(List<SysOrganizationVo> list) {
list.forEach(str -> {
String sid = str.getSid();
List<SysOrganizationVo> listChildren = baseMapper.selectChildernList(sid);
str.setChildren(listChildren);
getChildList(listChildren);
});
}
public List<SysOrganizationVo> selectFirstOrgList() {
return baseMapper.selectFirstOrgList();
}
public List<SysOrganizationVo> selectChildrenListBySid(String sid) {
return baseMapper.selectChildrenListByPsid(sid);
}
@Transactional(rollbackFor = Exception.class)
public ResultBean addSysStaffOrg(String sids, String manageType, SysOrganization entity) {
ResultBean rb = ResultBean.fireFail();
String[] sidArr = sids.split(",");
String name = "";
for (String sid : sidArr) {
//查询组织关系中是否已经包含分管的人员
if ("1".equals(manageType)) {
//查询是否有员工信息,如果有的话,删除关联关系
sysStaffOrgService.deleteByStaffSidAndType(entity.getOrgSidPath(), sid, "3");
} else {
int count = sysStaffOrgService.selectByStaffAndOrg(entity.getOrgSidPath(), sid, "3");
SysStaffinfo sysStaffinfo = sysStaffInfoService.fetchBySid(sid);
if (count > 0) {
return rb.setMsg(sysStaffinfo.getName() + "已在本部门,不能设置分管");
}
}
//查询该人员的组织机构list
List<SysStaffOrgVo> sysStaffOrgVos = sysStaffOrgService.selectByStaffS(sid);
List<String> orgList = new ArrayList<>();
if (sysStaffOrgVos.size() > 0) {
for (SysStaffOrgVo vv : sysStaffOrgVos) {
String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid());
SysOrganization sysOrganization = fetchBySid(orgSid);
if (sysOrganization != null) {
orgList.add(orgSid);
} else {
continue;
}
}
}
//添加员工与组织的关联关系
SysStaffOrg sysStaffOrg = new SysStaffOrg();
sysStaffOrg.setManageType(manageType);
sysStaffOrg.setOrgSid(entity.getSid());
sysStaffOrg.setOrgName(entity.getName());
sysStaffOrg.setStaffSid(sid);
String orgSidPath = entity.getOrgSidPath();
if (StringUtils.isNotBlank(orgSidPath)) {
sysStaffOrg.setOrgSidPath(orgSidPath);
} else {
sysStaffOrg.setOrgSidPath(entity.getSid());
}
String psid = entity.getPsid();
if (StringUtils.isNotBlank(psid)) {
SysOrganization sysOrganization = this.fetchBySid(psid);
if (sysOrganization != null) {
sysStaffOrg.setOrgNamePath(sysOrganization.getName() + "/" + entity.getName());
} else {
sysStaffOrg.setOrgNamePath(entity.getName());
}
}
sysStaffOrgService.save(sysStaffOrg);
//==========================添加清空变化的用户的token
List<SysStaffOrgVo> sysStaffOrgVos1 = sysStaffOrgService.selectByStaffS(sid);
List<String> orgList1 = new ArrayList<>();
if (sysStaffOrgVos1.size() > 0) {
for (SysStaffOrgVo vv : sysStaffOrgVos1) {
String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid());
SysOrganization sysOrganization = fetchBySid(orgSid);
if (sysOrganization != null) {
orgList1.add(orgSid);
} else {
continue;
}
}
}
List<String> reduce1 = orgList1.stream().filter(item -> !orgList.contains(item)).collect(toList());
if (reduce1.size() > 0) {
//根据staffSid查询token
String token = sysUserService.selectByStaffsid(sid).getToken();
if (StringUtils.isNotBlank(token)) {
//清空该token
redisUtil.remove(token);
}
}
}
return rb.success();
}
public void saveOrUpdateDto(SysOrganizationDto dto) {
SysOrganization entity = new SysOrganization();
dto.fillEntity(entity);
//主管人员sid
String zgStaffSid = dto.getZgStaffSid();
//分管人员sid
String fgStaffSid = dto.getFgStaffSid();
String psid = dto.getPsid();
SysOrganization sysOrganization = this.fetchBySid(psid);
if (StringUtils.isNotBlank(zgStaffSid)) {
this.addSysStaffOrg(zgStaffSid, "1", entity);
}
if (StringUtils.isNotBlank(fgStaffSid)) {
this.addSysStaffOrg(fgStaffSid, "2", entity);
}
entity.setOrgSidPath(sysOrganization.getOrgSidPath() + "/" + entity.getSid());
this.saveOrUpdate(entity);
}
public SysOrganizationVo fetchByIdVo(String id) {
SysOrganization entity = this.fetchById(id);
SysOrganizationVo vo = new SysOrganizationVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public String selectOrgnameBySid(String sid) {
return baseMapper.selectOrgnameBySid(sid);
}
public List<Map<String, Object>> selectOrgNameList(String sid) {
String orgSidPath = baseMapper.selectOrgSidPath(sid);
String[] orgSidPathArr = orgSidPath.split("/");
List<Map<String, Object>> nameList = new ArrayList<>();
for (int i = 0; i < orgSidPathArr.length; i++) {
Map<String, Object> m = new HashMap<>();
m.put("sid", orgSidPathArr[i]);
m.put("name", selectOrgnameBySid(orgSidPathArr[i]));
nameList.add(m);
}
return nameList;
}
public List<AppContactSysOrganizationVo> selectAppOrganization() {
List<AppContactSysOrganizationVo> list = baseMapper.selectAppOrganization();
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getHeadImage())) {
vo.setHeadImage(fileUploadComponent.getUrlPrefix() + vo.getHeadImage());
}
});
return list;
}
public List<AppContactSysOrganizationVo> selectAppOrganizationSub(String psid) {
List<AppContactSysOrganizationVo> list = baseMapper.selectAppOrganizationByPsid(psid);
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getHeadImage())) {
vo.setHeadImage(fileUploadComponent.getUrlPrefix() + vo.getHeadImage());
}
});
return list;
}
/**
* @param
* @description: 获取组织架构即使用组织下拉框
* @return:
* @Author: dimengzhe
* @Date: 2021/10/12 21:47
*/
public List<SysOrgVo> treeList() {
String psid = "0";
List<SysOrgVo> list = baseMapper.treeList(psid);
getChildOrgList(list);
return list;
}
public void getChildOrgList(List<SysOrgVo> list) {
list.forEach(menuTree -> {
String sid = menuTree.getSid();
List<SysOrgVo> listChildren = baseMapper.treeList(sid);
menuTree.setChildren(listChildren);
if (Arrays.asList(menuTree.getOrgSidPath().split("/")).size() <= 2) {
getChildOrgList(listChildren);
}
});
}
/**
* @param
* @description: 查询部门编码
* @return:
* @Author: dimengzhe
* @Date: 2021/10/18 15:49
*/
public SysOrganization selectOrgCode() {
return baseMapper.selectOrgCode();
}
public List<SysOrgVo> getListOrg() {
List<SysOrgVo> list = baseMapper.getListOrg();
return list;
}
public SysOrganization selectOrgCodeByPsid() {
return baseMapper.selectOrgCodeByPsid();
}
/**
* 查询所有部门列表
*
* @return
*/
public List<SysOrgListVo> selectTreeList() {
String psid = "0";
List<SysOrgListVo> list = baseMapper.selectTreeList(psid);
getChildOrgListOne(list);
return list;
}
/**
* 查询组织子集
*
* @param list
*/
public void getChildOrgListOne(List<SysOrgListVo> list) {
list.forEach(menuTree -> {
String sid = menuTree.getSid();
List<SysOrgVo> listChildren = baseMapper.treeList(sid);
menuTree.setChildren(listChildren);
});
}
/**
* 根据部门编码查询部门信息
*
* @param substring 部门编码
* @return
*/
public SysOrganization selectByOrgCode(String substring) {
return baseMapper.selectByOrgCode(substring);
}
/**
* 根据业务员sid获取到分公司
*
* @param userSid 业务员sid
* @return
*/
public SysOrganizationVo getUseOrgByUserSid(String userSid) {
// String staffSid = sysUserService.getUserOrgInfoByUserSid(userSid).getStaffSid();
// SysStaffOrgVo sysOrgVo = baseMapper.getUseOrgByUserSid(staffSid);
// String orgSidPath = sysOrgVo.getOrgSidPath();
// SysOrganizationVo vo = getUseOrgBySid(orgSidPath);
return new SysOrganizationVo();
}
/**
* 根据sid判断是否是分公司并获取公司名称
*
* @param orgSidPath
* @return
*/
public SysOrganizationVo getUseOrgBySid(String orgSidPath) {
String[] split = orgSidPath.split("/");
for (int i = 0; i < split.length; i++) {
SysOrganizationVo sysOrganizationVo = baseMapper.getUseOrgBySid(split[i]);
if (sysOrganizationVo != null) {
return sysOrganizationVo;
}
}
SysOrganization sysOrganization = fetchBySid(split[0]);// 总公司为所在公司
SysOrganizationVo sysOrganizationVo = new SysOrganizationVo();
BeanUtil.copyProperties(sysOrganization, sysOrganizationVo);
return sysOrganizationVo;
}
public int updateQrCodePath(String sid, String path) {
return baseMapper.updateQrCodePath(sid, path);
}
public QrCodeVo getQrCodeVo(String sid) {
return baseMapper.getQrCodeVo(sid);
}
public List<Map<String, String>> selectUseOrgSidBySid(String sid) {
SysOrganization sysOrganization = fetchBySid(sid);
String psid = sysOrganization.getPsid();
return baseMapper.selectUseOrgSidBySid(psid);
}
public String getOrgSid(String sid) {
SysOrganization sysOrganization = fetchBySid(sid);
String orgSid = "";
if ("0".equals(sysOrganization.getPsid())) {//总公司
orgSid = sysOrganization.getSid();
return orgSid;
}
if (sysOrganization.getIsDept() == 0) {//是独立法人的
return sysOrganization.getSid();
}
sid = sysOrganization.getPsid();
return getOrgSid(sid);
}
public ResultBean<List<SysOrganizationListVo>> selectOrgList(SysOrganizationListQuery query) {
ResultBean<List<SysOrganizationListVo>> rb = ResultBean.fireFail();
//根据用户sid查询分公司sid
String orgDeptSid = sysStaffOrgService.selectByUserSid(query.getUserSid());
String orgSid = getOrgSid(orgDeptSid);
//根据分公司名称查询销售部门的部门
List<SysOrganizationListVo> sysOrganizationListVos = baseMapper.selectOrgList(orgSid);
sysOrganizationListVos.removeAll(Collections.singleton(null));
if (!sysOrganizationListVos.isEmpty()) {
for (SysOrganizationListVo vo : sysOrganizationListVos) {
orgDeptSid = vo.getOrgDeptSid();
List<SysOrgStaffVo> sysOrgStaffVoList = baseMapper.selectByOrgDeptSid(orgDeptSid);
vo.setStaffinfoVoList(sysOrgStaffVoList);
}
}
return rb.success().setData(sysOrganizationListVos);
}
public ResultBean<List<SysOrganizationListsVo>> selectOrgLists(SysOrganizationListQuery query) {
ResultBean<List<SysOrganizationListsVo>> rb = ResultBean.fireFail();
//根据用户sid查询分公司sid
String orgDeptSid = sysStaffOrgService.selectByUserSid(query.getUserSid());
String orgSid = getOrgSid(orgDeptSid);
//根据分公司名称查询销售部门的部门
List<SysOrganizationListsVo> sysOrganizationListVos = baseMapper.selectOrgLists(orgSid);
sysOrganizationListVos.removeAll(Collections.singleton(null));
return rb.success().setData(sysOrganizationListVos);
}
public ResultBean<SysOrganizationVo> selectByPSid(String sid, String name) {
ResultBean<SysOrganizationVo> rb = ResultBean.fireFail();
SysOrganizationVo vo = baseMapper.selectByPSid(sid, name);
return rb.success().setData(vo);
}
public List<SysOrganizationVo> selectOrgSidList() {
return baseMapper.selectOrgSidList();
}
public ResultBean<SysOrganizationVo> selectByOrgSidPath(String orgSidPath) {
ResultBean<SysOrganizationVo> rb = ResultBean.fireFail();
SysOrganizationVo sysOrganizationVo = baseMapper.selectByOrgSidPath(orgSidPath);
return rb.success().setData(sysOrganizationVo);
}
public ResultBean<List<SysOrgVo>> getListDeptByOrgSid(String orgSid) {
ResultBean<List<SysOrgVo>> rb = ResultBean.fireFail();
List<SysOrgVo> sysOrgVos = baseMapper.getListDeptByOrgSid(orgSid);
return rb.success().setData(sysOrgVos);
}
public ResultBean<List<SysOrganizationVo>> selectOrgByPSid(String psid) {
ResultBean rb = ResultBean.fireFail();
List<SysOrganizationVo> sysOrganizationVos = baseMapper.selectOrgByPSid(psid);
return rb.success().setData(sysOrganizationVos);
}
}

86
src/main/java/com/yxt/user/biz/sysorganization/SysOrganizationVo.java

@ -0,0 +1,86 @@
package com.yxt.user.biz.sysorganization;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysOrganizationVo.java <br/>
* Class: SysOrganizationVo <br/>
* Description: 组织机构表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "组织机构表 视图数据对象", description = "组织机构表 视图数据对象")
@Data
public class SysOrganizationVo implements Vo {
@ApiModelProperty("部门/组织名称")
private String name;
@ApiModelProperty("父(部门/组织) sid")
private String psid;
@ApiModelProperty("联系电话")
private String linkPhone;
@ApiModelProperty("联系人")
private String linkPerson;
@ApiModelProperty("部门sid全路径")
private String orgSidPath;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("地址")
private String addrs;
@ApiModelProperty("地理位置经纬度")
private String jwd;
@ApiModelProperty("二维码")
private String qrText;
@ApiModelProperty("限制本部门成员查看通讯录:限制开启后,本部门成员只能看到限定范围内的通讯录不能看到所有通讯录,仅可见自己")
private Integer limitOrgMember;
@ApiModelProperty("部门编码")
private String orgCode;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("子集")
private List<SysOrganizationVo> children = new ArrayList<>();
@ApiModelProperty("主管人员名称")
private String zgNames;
@ApiModelProperty("分管人员名称")
private String fgNames;
@ApiModelProperty("主管人员sid")
private String zgStaffSid;
@ApiModelProperty("分管人员sid")
private String fgStaffSid;
@ApiModelProperty("组织简称")
private String orgAbbre;
@ApiModelProperty("是否是部门(0否,1是)")
private Integer isDept;
@ApiModelProperty("组织属性key")
private String orgAttributeKey;
@ApiModelProperty("组织属性value")
private String orgAttributeValue;
@ApiModelProperty("管理层级key")
private String orgLevelKey;
@ApiModelProperty("管理层级value")
private String orgLevelValue;
@ApiModelProperty("其他编码")
private String otherCode;
}

46
src/main/java/com/yxt/user/biz/syspost/SysPost.java

@ -0,0 +1,46 @@
package com.yxt.user.biz.syspost;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysPost.java <br/>
* Class: com.yxt.anrui.portal.api.syspost.SysPost <br/>
* Description: 岗位. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "岗位", description = "岗位")
@TableName("sys_post")
@Data
public class SysPost extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("岗位名称")
private String name;
@ApiModelProperty("职级key")
private String postLevelKey;
@ApiModelProperty("职级")
private String postLevel;
@ApiModelProperty("岗位编码")
private String postCode;
@ApiModelProperty("所属部门sid")
private String orgSid;
@ApiModelProperty(value = "父级sid")
private String parentSid;
}

44
src/main/java/com/yxt/user/biz/syspost/SysPostDto.java

@ -0,0 +1,44 @@
package com.yxt.user.biz.syspost;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysPostDto.java <br/>
* Class: com.yxt.anrui.portal.api.syspost.SysPostDto <br/>
* Description: 岗位 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "岗位 数据传输对象", description = "岗位 数据传输对象")
@Data
public class SysPostDto implements Dto {
private static final long serialVersionUID = 863876947510030464L;
@ApiModelProperty("岗位名称")
private String name;
@ApiModelProperty("职级key")
private String postLevelKey;
@ApiModelProperty("职级")
private String postLevel;
@ApiModelProperty("岗位编码")
private String postCode;
@ApiModelProperty("所属部门sid")
private String orgSid;
@ApiModelProperty(value = "父级sid", example = "0")
private String parentSid;
}

22
src/main/java/com/yxt/user/biz/syspost/SysPostListVo.java

@ -0,0 +1,22 @@
package com.yxt.user.biz.syspost;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/2/14 13:49
* @Description 部门下的岗位信息
*/
@Data
public class SysPostListVo implements Vo {
private static final long serialVersionUID = -8060032905868283959L;
@ApiModelProperty("岗位名称")
private String name;
@ApiModelProperty("岗位编码")
private String postCode;
@ApiModelProperty("岗位sid")
private String sid;
}

68
src/main/java/com/yxt/user/biz/syspost/SysPostMapper.java

@ -0,0 +1,68 @@
package com.yxt.user.biz.syspost;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.user.biz.syspost.SysPost;
import com.yxt.user.biz.syspost.SysPostListVo;
import com.yxt.user.biz.syspost.SysPostVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysPostMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.syspost.SysPostMapper <br/>
* Description: 岗位. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SysPostMapper extends BaseMapper<SysPost> {
//@Update("update sys_post set name=#{msg} where id=#{id}")
//IPage<SysPostVo> voPage(IPage<SysPost> page, @Param(Constants.WRAPPER) QueryWrapper<SysPost> qw);
IPage<SysPostVo> selectPageVo(IPage<SysPost> page, @Param(Constants.WRAPPER) Wrapper<SysPost> qw);
List<SysPostVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysPost> qw);
@Select("select * from sys_post")
List<SysPostVo> selectListVo();
@Select("select * from sys_post where sid=#{sid} ")
SysPost fetchBySid(@Param("sid") String sid);
@Select("select * from sys_post where orgSid=#{orgSid} ")
List<SysPostVo> fetchByOrgSid(@Param("orgSid") String orgSid);
@Select("select postCode,`name` from sys_post")
List<SysPostVo> fetchByOrgSidPostCode();
/**
* 查询所有岗位列表
*
* @return
*/
List<SysPostListVo> selectListOne();
/**
* 根据岗位编码查询岗位信息
*
* @param substring 岗位编码
* @return
*/
SysPost selectByPostCode(String substring);
@Select("select * from sys_post where staffSid = #{sid}")
SysPost getPostByStaffSid(String sid);
}

44
src/main/java/com/yxt/user/biz/syspost/SysPostMapper.xml

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.user.biz.syspost.SysPostMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.user.biz.syspost.SysPostVo">
SELECT post.sid sid,
post.name name,
post.orgSid,
post.postCode,
post.postLevelKey,
post.postLevel,
post.orgSid,
IF(org.psid = '0', org.name,
CONCAT((select name from sys_organization where sid = org.psid), "/", org.name)) orgName,
post.parentSid,
sp.name parentName
FROM sys_post post
left join sys_organization org on org.sid = post.orgSid
left join sys_post sp on post.parentSid = sp.sid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.user.biz.syspost.SysPostVo">
SELECT *
FROM sys_post
<where>
${ew.sqlSegment}
</where>
</select>
<!--根据部门sid查询该部门下的所有岗位列表-->
<select id="selectListOne" resultType="com.yxt.user.biz.syspost.SysPostListVo">
select name, postCode, sid
from sys_post
</select>
<!--根据岗位编码查询岗位信息-->
<select id="selectByPostCode" resultType="com.yxt.user.biz.syspost.SysPost">
select *
from sys_post
where postCode = #{substring}
</select>
</mapper>

41
src/main/java/com/yxt/user/biz/syspost/SysPostQuery.java

@ -0,0 +1,41 @@
package com.yxt.user.biz.syspost;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysPostQuery.java <br/>
* Class: com.yxt.anrui.portal.api.syspost.SysPostQuery <br/>
* Description: 岗位 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "岗位 查询条件", description = "岗位 查询条件")
@Data
public class SysPostQuery implements Query {
@ApiModelProperty("岗位名称")
private String name;
@ApiModelProperty("职级key")
private String postLevelKey;
@ApiModelProperty("职级")
private String postLevel;
@ApiModelProperty("岗位编码")
private String postCode;
@ApiModelProperty("所属部门sid")
private String orgSid;
}

52
src/main/java/com/yxt/user/biz/syspost/SysPostVo.java

@ -0,0 +1,52 @@
package com.yxt.user.biz.syspost;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysPostVo.java <br/>
* Class: com.yxt.anrui.portal.api.syspost.SysPostVo <br/>
* Description: 岗位 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "岗位 视图数据对象", description = "岗位 视图数据对象")
@Data
public class SysPostVo implements Vo {
@ApiModelProperty("岗位名称")
private String name;
@ApiModelProperty("职级key")
private String postLevelKey;
@ApiModelProperty("职级")
private String postLevel;
@ApiModelProperty("岗位编码")
private String postCode;
@ApiModelProperty("所属部门sid")
private String orgSid;
@ApiModelProperty("所属部门名称")
private String orgName;
@ApiModelProperty("岗位sid")
private String sid;
@ApiModelProperty(value = "上级岗位名称")
private String parentName;
@ApiModelProperty(value = "上级岗位sid")
private String parentSid;
}

48
src/main/java/com/yxt/user/biz/sysrole/SysRole.java

@ -0,0 +1,48 @@
package com.yxt.user.biz.sysrole;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysRole.java <br/>
* Class: com.yxt.anrui.portal.api.sysrole.SysRole <br/>
* Description: 角色. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "角色", description = "角色")
@TableName("sys_role")
@Data
public class SysRole extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("角色名称")
private String name;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("编码")
private String code;
@ApiModelProperty("1、系统管理员、2、普通角色")
private Integer type;
@ApiModelProperty("岗位sid")
private String postSid;
@ApiModelProperty(value = "角色组织层级key")
private String roleType;
@ApiModelProperty(value = "角色组织层级value")
private String roleTypeValue;
}

51
src/main/java/com/yxt/user/biz/sysrole/SysRoleDto.java

@ -0,0 +1,51 @@
package com.yxt.user.biz.sysrole;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysRoleDto.java <br/>
* Class: com.yxt.anrui.portal.api.sysrole.SysRoleDto <br/>
* Description: 角色 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "角色 数据传输对象", description = "角色 数据传输对象")
@Data
public class SysRoleDto implements Dto {
@ApiModelProperty("角色名称")
private String name;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("编码")
private String code;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("1、系统管理员、2、普通角色")
private Integer type;
@ApiModelProperty("岗位sid")
private String postSid;
@ApiModelProperty("岗位名称")
private String postName;
@ApiModelProperty(value = "角色组织层级key")
private String roleType;
@ApiModelProperty(value = "角色组织层级value")
private String roleTypeValue;
}

69
src/main/java/com/yxt/user/biz/sysrole/SysRoleMapper.java

@ -0,0 +1,69 @@
package com.yxt.user.biz.sysrole;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.user.biz.sysuser.SysMenuRoleVoList;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysRoleMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.sysrole.SysRoleMapper <br/>
* Description: 角色. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SysRoleMapper extends BaseMapper<SysRole> {
//@Update("update sys_role set name=#{msg} where id=#{id}")
//IPage<SysRoleVo> voPage(IPage<SysRole> page, @Param(Constants.WRAPPER) QueryWrapper<SysRole> qw);
IPage<SysRoleVo> selectPageVo(IPage<SysRole> page, @Param(Constants.WRAPPER) Wrapper<SysRole> qw);
List<SysRoleVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysRole> qw);
@Select("select * from sys_role")
List<SysRoleVo> selectListVo();
List<SysRoleVo> fetchByUserSid(String userSid);
List<SysRoleVo> listAllByUserSid(String userSid);
SysRole fetchByName(String name);
int deleteBatchSids(List<String> list);
int deleteBySid(String valueOf);
SysRoleVo fetchBySid(String sid);
int updateIsEnable(@Param("sid") String sid, @Param("isEnable") String isEnable);
String getLevelType(String roleSid);
String selectRoleSid(String userRoleSid);
String selectByUserSid(String sid);
List<String> selectByUser(String userSid);
List<SysMenuRoleVoList> selectRoleList(String menuSid);
List<SysMenuRoleVoList> selectMobileRoleList(String menuSid);
List<String> selectByRole(@Param("list") List<String> roleSidList, @Param("menuSid") String menuSid,@Param("userSid") String userSid);
List<String> selectByMobileRole(@Param("list") List<String> roleSidList, @Param("menuSid") String menuSid,@Param("userSid") String userSid);
}

134
src/main/java/com/yxt/user/biz/sysrole/SysRoleMapper.xml

@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.user.biz.sysrole.SysRoleMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.user.biz.sysrole.SysRoleVo">
SELECT sr.*, sp.sid as postSid, sp.name as postName
FROM sys_role sr
LEFT JOIN sys_post sp ON sr.postSid = sp.sid
<where>
${ew.sqlSegment}
</where>
ORDER BY sr.sort
</select>
<select id="selectListAllVo" resultType="com.yxt.user.biz.sysrole.SysRoleVo">
SELECT *
FROM sys_role
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listAllByUserSid" resultType="com.yxt.user.biz.sysrole.SysRoleVo">
SELECT role.name, role.sid, ISNULL(userRole.sid) AS checked
FROM sys_role role
LEFT JOIN sys_user_role userRole ON role.sid = userRole.`roleSid`
AND userRole.userSid = #{param1}
</select>
<select id="fetchByUserSid" resultType="com.yxt.user.biz.sysrole.SysRoleVo">
SELECT role.name, role.remarks, role.sid
FROM sys_role role
left join sys_user_role userrole on userrole.roleSid = role.sid
where userrole.userSid = #{param1}
</select>
<select id="fetchByName" resultType="com.yxt.user.biz.sysrole.SysRole">
SELECT *
FROM sys_role role
where role.name = #{param1}
</select>
<select id="fetchBySid" resultType="com.yxt.user.biz.sysrole.SysRoleVo">
SELECT role.*, post.sid as postSid, post.name as postName
FROM sys_role role
LEFT JOIN sys_post post ON role.postSid = post.sid
WHERE role.sid = #{param1}
</select>
<delete id="deleteBatchSids" parameterType="String">
DELETE
FROM sys_role WHERE sid IN
<foreach collection="list" item="sid" open="(" separator="," close=")">
#{sid}
</foreach>
</delete>
<delete id="deleteBySid">
DELETE
FROM sys_role
WHERE sid = #{sid}
</delete>
<update id="updateIsEnable">
UPDATE sys_role
SET isEnable = #{isEnable}
WHERE sid = #{sid}
</update>
<select id="getLevelType" resultType="java.lang.String">
select roleType
from sys_role
where sid = #{roleSid}
</select>
<select id="selectRoleSid" resultType="java.lang.String">
SELECT ssr.sid
FROM sys_role sr
LEFT JOIN sys_post sp ON sp.sid = sr.postSid
left join sys_post ssp on sp.parentSid = ssp.sid
left join sys_role ssr on ssp.sid = ssr.postSid
where sr.sid = #{sid}
</select>
<select id="selectByUserSid" resultType="java.lang.String">
select GROUP_CONCAT(sr.name SEPARATOR '|') as roleName
from sys_user_role sur
left join sys_role sr on sur.roleSid = sr.sid
where sur.userSid = #{sid}
</select>
<select id="selectByUser" resultType="java.lang.String">
select roleSid
from sys_user_role
where userSid = #{userSid}
</select>
<select id="selectRoleList" resultType="com.yxt.user.biz.sysuser.SysMenuRoleVoList">
select sr.sid roleSid, sr.name roleName, sr.roleType, sr.roleTypeValue,smr.dataRuleId
from sys_role sr
left join sys_menu_role smr on sr.sid = smr.roleSid
where smr.menuSid = #{menuSid}
</select>
<select id="selectMobileRoleList" resultType="com.yxt.user.biz.sysuser.SysMenuRoleVoList">
select sr.sid roleSid, sr.name roleName, sr.roleType, sr.roleTypeValue
from sys_role sr
left join sys_mobile_menu_role smr on sr.sid = smr.roleSid
where smr.menuSid = #{menuSid}
</select>
<select id="selectByRole" resultType="java.lang.String">
select smr.dataRuleId from sys_menu_role smr
left join sys_menu sm on sm.sid = smr.menuSid
left join sys_role sr on sr.sid = smr.roleSid
left join sys_user_role sur on sur.roleSid = smr.roleSid
where smr.menuSid = #{menuSid} and sur.userSid = #{userSid} and sr.sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and length(smr.dataRuleId)>0
order by dataRuleId asc
</select>
<select id="selectByMobileRole" resultType="java.lang.String">
select smr.dataRuleId from sys_mobile_menu_role smr
left join sys_mobile_menu sm on sm.sid = smr.menuSid
left join sys_role sr on sr.sid = smr.roleSid
left join sys_user_role sur on sur.roleSid = smr.roleSid
where smr.menuSid = #{menuSid} and sur.userSid = #{userSid}
and sr.sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and length(smr.dataRuleId)>0
order by dataRuleId asc
</select>
</mapper>

38
src/main/java/com/yxt/user/biz/sysrole/SysRoleQuery.java

@ -0,0 +1,38 @@
package com.yxt.user.biz.sysrole;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysRoleQuery.java <br/>
* Class: com.yxt.anrui.portal.api.sysrole.SysRoleQuery <br/>
* Description: 角色 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "角色 查询条件", description = "角色 查询条件")
@Data
public class SysRoleQuery implements Query {
@ApiModelProperty("角色名称")
private String name;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("编码")
private String code;
@ApiModelProperty("1、系统管理员、2、普通角色")
private Integer type;
}

184
src/main/java/com/yxt/user/biz/sysrole/SysRoleService.java

@ -0,0 +1,184 @@
package com.yxt.user.biz.sysrole;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.user.biz.sysuser.SysMenuRoleVoList;
import com.yxt.user.biz.sysuserrole.SysUserRoleService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysRoleService.java <br/>
* Class: com.yxt.anrui.portal.biz.sysrole.SysRoleService <br/>
* Description: 角色 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SysRoleService extends MybatisBaseService<SysRoleMapper, SysRole> {
@Autowired
private SysUserRoleService sysUserRoleService;
public PagerVo<SysRole> listPage(PagerQuery<SysRoleQuery> pq) {
SysRoleQuery query = pq.getParams();
QueryWrapper<SysRole> qw = createQueryWrapper(query);
IPage<SysRole> page = PagerUtil.queryToPage(pq);
IPage<SysRole> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysRole> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysRole> listAll(SysRoleQuery query) {
QueryWrapper<SysRole> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysRole> createQueryWrapper(SysRoleQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysRole> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getName())) {
qw.like("sr.name", query.getName());
}
if (query.getSort() != null) {
qw.eq("sr.sort", query.getSort());
}
if (StringUtils.isNotBlank(query.getCode())) {
qw.eq("sr.code", query.getCode());
}
if (query.getType() != null) {
qw.eq("sr.type", query.getType());
}
return qw;
}
public PagerVo<SysRoleVo> listPageVo(PagerQuery<SysRoleQuery> pq) {
SysRoleQuery query = pq.getParams();
QueryWrapper<SysRole> qw = createQueryWrapper(query);
IPage<SysRole> page = PagerUtil.queryToPage(pq);
IPage<SysRoleVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysRoleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysRoleVo> listAllVo(SysRoleQuery query) {
QueryWrapper<SysRole> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SysRoleVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SysRoleDto dto) {
SysRole entity = new SysRole();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public SysRoleVo fetchByIdVo(String id) {
SysRole entity = this.fetchById(id);
SysRoleVo vo = new SysRoleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<SysRoleVo> fetchByUserSid(String userSid) {
return baseMapper.fetchByUserSid(userSid);
}
public List<SysRoleVo> listAllByUserSid(String userSid) {
return baseMapper.listAllByUserSid(userSid);
}
public SysRoleVo fetchByName(String name) {
SysRole entity = baseMapper.fetchByName(name);
SysRoleVo vo = new SysRoleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
/**
* 描述 : <描述函数实现的功能>. <br/>
* <p>
*
* @param sids
* @return
*/
public int delBySids(String sids) {
String[] split = sids.split(",");
if (split.length < 1) {
return 0;
} else if (split.length == 1) {
//删除该角色下的用户关联
sysUserRoleService.deleteByRoleSid(sids);
return baseMapper.deleteBySid(sids);
} else {
List<String> list = new ArrayList<>();
for (String sid : split) {
list.add(sid);
}
return baseMapper.deleteBatchSids(list);
}
}
public SysRoleVo fetchBySidVo(String sid) {
SysRoleVo vo = baseMapper.fetchBySid(sid);
return vo;
}
public int updateIsEnable(String sid, String isEnable) {
return baseMapper.updateIsEnable(sid, isEnable);
}
public String getLevelType(String roleSid) {
return baseMapper.getLevelType(roleSid);
}
public String selectRoleSid(String userRoleSid) {
return baseMapper.selectRoleSid(userRoleSid);
}
public String selectByUserSid(String sid) {
return baseMapper.selectByUserSid(sid);
}
public List<String> selectByUser(String userSid) {
return baseMapper.selectByUser(userSid);
}
public List<SysMenuRoleVoList> selectRoleList(String menuSid) {
return baseMapper.selectRoleList(menuSid);
}
public List<SysMenuRoleVoList> selectMobileRoleList(String menuSid) {
return baseMapper.selectMobileRoleList(menuSid);
}
public List<String> selectByRole(List<String> roleSidList, String menuSid,String userSid) {
return baseMapper.selectByRole(roleSidList,menuSid,userSid);
}
public List<String> selectByMobileRole(List<String> roleSidList, String menuSid, String userSid) {
return baseMapper.selectByMobileRole(roleSidList,menuSid,userSid);
}
}

47
src/main/java/com/yxt/user/biz/sysrole/SysRoleVo.java

@ -0,0 +1,47 @@
package com.yxt.user.biz.sysrole;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysRoleVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysrole.SysRoleVo <br/>
* Description: 角色 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "角色 视图数据对象", description = "角色 视图数据对象")
@Data
public class SysRoleVo implements Vo {
@ApiModelProperty("角色名称")
private String name;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("编码")
private String code;
@ApiModelProperty("1、系统管理员、2、普通角色")
private Integer type;
@ApiModelProperty("角色sid")
private String sid;
@ApiModelProperty("说明")
private String remarks;
@ApiModelProperty("是否选中,1:未选中,0:选中")
private String checked;
@ApiModelProperty("是否可用")
private String isEnable;
@ApiModelProperty("岗位sid")
private String postSid;
@ApiModelProperty("岗位名称")
private String postName;
@ApiModelProperty(value = "组织层级")
private String roleTypeValue;
}

76
src/main/java/com/yxt/user/biz/syssource/SysSource.java

@ -0,0 +1,76 @@
package com.yxt.user.biz.syssource;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSource.java <br/>
* Class: com.yxt.anrui.portal.api.syssource.SysSource <br/>
* Description: 资源表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "资源表", description = "资源表")
@TableName("sys_source")
@Data
public class SysSource extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("父资源sid")
private String pSid;
@ApiModelProperty("资源ID(对应微服务的名称)")
private String sourceId;
@ApiModelProperty("资源名称(业务模块名称)")
private String sourceName;
@ApiModelProperty("web页面的url(平台中业务模块跳转地址)")
private String pageUrl;
@ApiModelProperty("菜单图标地址")
private String iconUrl;
@ApiModelProperty("资源图标背景颜色")
private String iconBgColor;
@ApiModelProperty("资源url标识")
private String urlSign;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("资源类别(0.内置Activity 1.内置WebView 2.RePlugin插件 3.原生apk 4.We页面)")
private Integer sourceType;
@ApiModelProperty("模块的版本(type = 2,3有),移动端专用")
private String ver;
@ApiModelProperty("apk下载地址(type = 2,3有),移动端专用")
private String sourceUrl;
@ApiModelProperty("模块的包名,移动端专用")
private String sourcePackage;
@ApiModelProperty("启动模块的动作(0.启动Activity的包名+类名 1.html地址 2.启动Activity的包名+类名 3.intent-action ),移动端专用")
private String sourceAction;
@ApiModelProperty("需要用到的json拼接(由目标模块 自行解析),其他参数")
private String sourceExtra;
@ApiModelProperty("提示数量(没有返回0即可)")
private String noticeNum;
@ApiModelProperty("RePlugin插件名称(type = 2有),移动端专用")
private String modulePluginName;
}

76
src/main/java/com/yxt/user/biz/syssource/SysSourceDto.java

@ -0,0 +1,76 @@
package com.yxt.user.biz.syssource;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSourceDto.java <br/>
* Class: com.yxt.anrui.portal.api.syssource.SysSourceDto <br/>
* Description: 资源表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "资源表 数据传输对象", description = "资源表 数据传输对象")
@Data
public class SysSourceDto implements Dto {
@ApiModelProperty("父资源sid")
private String pSid;
@ApiModelProperty("资源ID(对应微服务的名称)")
private String sourceId;
@ApiModelProperty("资源名称(业务模块名称)")
private String sourceName;
@ApiModelProperty("web页面的url(平台中业务模块跳转地址)")
private String pageUrl;
@ApiModelProperty("菜单图标地址")
private String iconUrl;
@ApiModelProperty("资源图标背景颜色")
private String iconBgColor;
@ApiModelProperty("资源url标识")
private String urlSign;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("资源类别(0.内置Activity 1.内置WebView 2.RePlugin插件 3.原生apk 4.We页面)")
private Integer sourceType;
@ApiModelProperty("模块的版本(type = 2,3有),移动端专用")
private String ver;
@ApiModelProperty("apk下载地址(type = 2,3有),移动端专用")
private String sourceUrl;
@ApiModelProperty("模块的包名,移动端专用")
private String sourcePackage;
@ApiModelProperty("启动模块的动作(0.启动Activity的包名+类名 1.html地址 2.启动Activity的包名+类名 3.intent-action ),移动端专用")
private String sourceAction;
@ApiModelProperty("需要用到的json拼接(由目标模块 自行解析),其他参数")
private String sourceExtra;
@ApiModelProperty("提示数量(没有返回0即可)")
private String noticeNum;
@ApiModelProperty("RePlugin插件名称(type = 2有),移动端专用")
private String modulePluginName;
@ApiModelProperty("描述")
private String remarks;
}

73
src/main/java/com/yxt/user/biz/syssource/SysSourceFeign.java

@ -0,0 +1,73 @@
package com.yxt.user.biz.syssource;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSourceFeign.java <br/>
* Class: com.yxt.anrui.portal.api.syssource.SysSourceFeign <br/>
* Description: 资源表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "资源表")
@FeignClient(
contextId = "anrui-portal-SysSource",
name = "anrui-portal",
path = "v1/syssource",
fallback = SysSourceFeignFallback.class)
public interface SysSourceFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysSourceVo>> listPage(@RequestBody PagerQuery<SysSourceQuery> pq);
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<SysSourceVo>> listAll(@RequestBody SysSourceQuery query);
@ApiOperation("根据角色sid条件查询所有数据列表")
@PostMapping("/listAllByRoleSid")
public ResultBean<List<SysSourceVo>> listAllByRoleSid(@RequestBody SysSourceQuery query);
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<SysSourceVo>> list();
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody SysSourceDto dto);
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody SysSourceDto dto,@PathVariable("sid") String sid);
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids);
@ApiOperation("删除记录 根据sid")
@GetMapping("/delBySids/{sids}")
public ResultBean delBySids(@PathVariable("sids") String sids);
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<SysSourceVo> fetch(@PathVariable("id") String id);
@ApiOperation("获取一条记录 根据sid")
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysSourceVo> fetchBySid(@PathVariable("sid") String sid);
}

81
src/main/java/com/yxt/user/biz/syssource/SysSourceFeignFallback.java

@ -0,0 +1,81 @@
package com.yxt.user.biz.syssource;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSourceFeignFallback.java <br/>
* Class: com.yxt.anrui.portal.api.syssource.SysSourceFeignFallback <br/>
* Description: 资源表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class SysSourceFeignFallback implements SysSourceFeign {
@Override
public ResultBean<PagerVo<SysSourceVo>> listPage(PagerQuery<SysSourceQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/syssource/listPage无法访问");
}
@Override
public ResultBean<List<SysSourceVo>> listAll(SysSourceQuery query){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/syssource/listAll无法访问");
}
@Override
public ResultBean<List<SysSourceVo>> listAllByRoleSid(SysSourceQuery query) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/syssource/listAllByRoleSid无法访问");
}
@Override
public ResultBean<List<SysSourceVo>> list(){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/syssource/list无法访问");
}
@Override
public ResultBean save(SysSourceDto dto){
return ResultBean.fireFail().setMsg("接口anrui_portal/syssource/save无法访问");
}
@Override
public ResultBean update(SysSourceDto dto,String sid){
return ResultBean.fireFail().setMsg("接口anrui_portal/syssource/update无法访问");
}
@Override
public ResultBean del(String ids){
return ResultBean.fireFail().setMsg("接口anrui_portal/syssource/del无法访问");
}
@Override
public ResultBean delBySids(String sids) {
return ResultBean.fireFail().setMsg("接口anrui_portal/syssource/delBySids无法访问");
}
@Override
public ResultBean<SysSourceVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/syssource/fetch无法访问");
}
@Override
public ResultBean<SysSourceVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/syssource/fetchBySid无法访问");
}
}

54
src/main/java/com/yxt/user/biz/syssource/SysSourceMapper.java

@ -0,0 +1,54 @@
package com.yxt.user.biz.syssource;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.user.biz.sysfunction.SysFunctionTreeVo;
import com.yxt.user.biz.sysmenu.SysMenuTreeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSourceMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.syssource.SysSourceMapper <br/>
* Description: 资源表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SysSourceMapper extends BaseMapper<SysSource> {
//@Update("update sys_source set name=#{msg} where id=#{id}")
//IPage<SysSourceVo> voPage(IPage<SysSource> page, @Param(Constants.WRAPPER) QueryWrapper<SysSource> qw);
IPage<SysSourceVo> selectPageVo(IPage<SysSource> page, @Param(Constants.WRAPPER) Wrapper<SysSource> qw);
List<SysSourceVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysSource> qw);
@Select("select * from sys_source")
List<SysSourceVo> selectListVo();
@Select("select * from sys_source where sid=#{sid}")
SysSource fetchBySidVo(@Param("sid") String sid);
List<SysSourceVo> listAllByRoleSid(String roleSid);
/**
* 查询所有的资源列表
*
* @return
*/
List<SysMenuTreeVo> listMenuTreeVo();
List<SysFunctionTreeVo> listFunctionTreeVo(String name);
}

45
src/main/java/com/yxt/user/biz/syssource/SysSourceMapper.xml

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.user.biz.syssource.SysSourceMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.user.biz.syssource.SysSourceVo">
SELECT *
FROM sys_source
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.user.biz.syssource.SysSourceVo">
SELECT *
FROM sys_source
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listAllByRoleSid" resultType="com.yxt.user.biz.syssource.SysSourceVo">
SELECT source.*, ISNULL(sourceRole.sid) as checked
FROM sys_source source
left join sys_source_role sourceRole
on source.sid = sourceRole.sorceSid and sourceRole.roleSid = #{param1}
</select>
<select id="listFunctionTreeVo" resultType="com.yxt.user.biz.sysfunction.SysFunctionTreeVo">
select sourceName as name, sourceName as sourceName, sid as sourceSid, sid as sid
from sys_source
where sourceName like '${name}%'
</select>
<!--查询所有的资源列表-->
<select id="listMenuTreeVo" resultType="com.yxt.user.biz.sysmenu.SysMenuTreeVo">
select
<!--菜单名称-->
sourceName as name,
<!--资源名称-->
sourceName as sourceName,
<!--资源sid-->
sid as sourceSid,
<!--菜单sid-->
sid as sid
from sys_source
</select>
</mapper>

78
src/main/java/com/yxt/user/biz/syssource/SysSourceQuery.java

@ -0,0 +1,78 @@
package com.yxt.user.biz.syssource;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSourceQuery.java <br/>
* Class: com.yxt.anrui.portal.api.syssource.SysSourceQuery <br/>
* Description: 资源表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "资源表 查询条件", description = "资源表 查询条件")
@Data
public class SysSourceQuery implements Query {
@ApiModelProperty("父资源sid")
private String pSid;
@ApiModelProperty("资源ID(对应微服务的名称)")
private String sourceId;
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("资源名称(业务模块名称)")
private String sourceName;
@ApiModelProperty("web页面的url(平台中业务模块跳转地址)")
private String pageUrl;
@ApiModelProperty("菜单图标地址")
private String iconUrl;
@ApiModelProperty("资源图标背景颜色")
private String iconBgColor;
@ApiModelProperty("资源url标识")
private String urlSign;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("资源类别(0.内置Activity 1.内置WebView 2.RePlugin插件 3.原生apk 4.We页面)")
private Integer sourceType;
@ApiModelProperty("模块的版本(type = 2,3有),移动端专用")
private String ver;
@ApiModelProperty("apk下载地址(type = 2,3有),移动端专用")
private String sourceUrl;
@ApiModelProperty("模块的包名,移动端专用")
private String sourcePackage;
@ApiModelProperty("启动模块的动作(0.启动Activity的包名+类名 1.html地址 2.启动Activity的包名+类名 3.intent-action ),移动端专用")
private String sourceAction;
@ApiModelProperty("需要用到的json拼接(由目标模块 自行解析),其他参数")
private String sourceExtra;
@ApiModelProperty("提示数量(没有返回0即可)")
private String noticeNum;
@ApiModelProperty("RePlugin插件名称(type = 2有),移动端专用")
private String modulePluginName;
}

172
src/main/java/com/yxt/user/biz/syssource/SysSourceService.java

@ -0,0 +1,172 @@
package com.yxt.user.biz.syssource;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.user.biz.sysfunction.SysFunctionTreeVo;
import com.yxt.user.biz.sysmenu.SysMenuTreeVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSourceService.java <br/>
* Class: com.yxt.anrui.portal.biz.syssource.SysSourceService <br/>
* Description: 资源表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SysSourceService extends MybatisBaseService<SysSourceMapper, SysSource> {
public PagerVo<SysSource> listPage(PagerQuery<SysSourceQuery> pq) {
SysSourceQuery query = pq.getParams();
QueryWrapper<SysSource> qw = createQueryWrapper(query);
IPage<SysSource> page = PagerUtil.queryToPage(pq);
IPage<SysSource> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysSource> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysSource> listAll(SysSourceQuery query) {
QueryWrapper<SysSource> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysSource> createQueryWrapper(SysSourceQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysSource> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getPSid())) {
qw.eq("pSid", query.getPSid());
}
if (StringUtils.isNotBlank(query.getSourceId())) {
qw.eq("sourceId", query.getSourceId());
}
if (StringUtils.isNotBlank(query.getSourceName())) {
qw.like("sourceName", query.getSourceName());
}
if (StringUtils.isNotBlank(query.getPageUrl())) {
qw.eq("pageUrl", query.getPageUrl());
}
if (query.getIconUrl() != null) {
qw.eq("iconUrl", query.getIconUrl());
}
if (StringUtils.isNotBlank(query.getIconBgColor())) {
qw.eq("iconBgColor", query.getIconBgColor());
}
if (StringUtils.isNotBlank(query.getUrlSign())) {
qw.eq("urlSign", query.getUrlSign());
}
if (query.getSortNo() != null) {
qw.eq("sortNo", query.getSortNo());
}
if (query.getSourceType() != null) {
qw.eq("sourceType", query.getSourceType());
}
if (StringUtils.isNotBlank(query.getVer())) {
qw.eq("ver", query.getVer());
}
if (StringUtils.isNotBlank(query.getSourceUrl())) {
qw.eq("sourceUrl", query.getSourceUrl());
}
if (StringUtils.isNotBlank(query.getSourcePackage())) {
qw.eq("sourcePackage", query.getSourcePackage());
}
if (StringUtils.isNotBlank(query.getSourceAction())) {
qw.eq("sourceAction", query.getSourceAction());
}
if (StringUtils.isNotBlank(query.getSourceExtra())) {
qw.eq("sourceExtra", query.getSourceExtra());
}
if (StringUtils.isNotBlank(query.getNoticeNum())) {
qw.eq("noticeNum", query.getNoticeNum());
}
if (StringUtils.isNotBlank(query.getModulePluginName())) {
qw.eq("modulePluginName", query.getModulePluginName());
}
return qw;
}
public PagerVo<SysSourceVo> listPageVo(PagerQuery<SysSourceQuery> pq) {
SysSourceQuery query = pq.getParams();
QueryWrapper<SysSource> qw = createQueryWrapper(query);
IPage<SysSource> page = PagerUtil.queryToPage(pq);
IPage<SysSourceVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysSourceVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysSourceVo> listAllVo(SysSourceQuery query) {
QueryWrapper<SysSource> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SysSourceVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SysSourceDto dto){
SysSource entity = new SysSource();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public SysSourceVo fetchByIdVo(String id){
SysSource entity = this.fetchById(id);
SysSourceVo vo = new SysSourceVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public SysSourceVo fetchBySidVo(String sid) {
SysSource entity = baseMapper.fetchBySidVo(sid);
SysSourceVo vo = new SysSourceVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<SysSourceVo> listAllByRoleSid(SysSourceQuery query) {
return baseMapper.listAllByRoleSid(query.getRoleSid());
}
/**
* 查询所有的资源列表
*
* @return
*/
public List<SysMenuTreeVo> listMenuTreeVo() {
return baseMapper.listMenuTreeVo();
}
public List<SysFunctionTreeVo> listFunctionTreeVo(String name) {
return baseMapper.listFunctionTreeVo(name);
}
}

85
src/main/java/com/yxt/user/biz/syssource/SysSourceVo.java

@ -0,0 +1,85 @@
package com.yxt.user.biz.syssource;
import com.yxt.user.biz.sysmenu.SysMenuVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysSourceVo.java <br/>
* Class: com.yxt.user.biz.syssource.SysSourceVo <br/>
* Description: 资源表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "资源表 视图数据对象", description = "资源表 视图数据对象")
@Data
public class SysSourceVo implements Vo {
@ApiModelProperty("父资源sid")
private String pSid;
@ApiModelProperty("资源ID(对应微服务的名称)")
private String sourceId;
@ApiModelProperty("资源名称(业务模块名称)")
private String sourceName;
@ApiModelProperty("web页面的url(平台中业务模块跳转地址)")
private String pageUrl;
@ApiModelProperty("菜单图标地址")
private String iconUrl;
@ApiModelProperty("资源图标背景颜色")
private String iconBgColor;
@ApiModelProperty("资源url标识")
private String urlSign;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("资源类别(0.内置Activity 1.内置WebView 2.RePlugin插件 3.原生apk 4.We页面)")
private Integer sourceType;
@ApiModelProperty("模块的版本(type = 2,3有),移动端专用")
private String ver;
@ApiModelProperty("apk下载地址(type = 2,3有),移动端专用")
private String sourceUrl;
@ApiModelProperty("模块的包名,移动端专用")
private String sourcePackage;
@ApiModelProperty("启动模块的动作(0.启动Activity的包名+类名 1.html地址 2.启动Activity的包名+类名 3.intent-action ),移动端专用")
private String sourceAction;
@ApiModelProperty("需要用到的json拼接(由目标模块 自行解析),其他参数")
private String sourceExtra;
@ApiModelProperty("提示数量(没有返回0即可)")
private String noticeNum;
@ApiModelProperty("RePlugin插件名称(type = 2有),移动端专用")
private String modulePluginName;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("是否选中 1没有选中,0选中")
private String checked;
@ApiModelProperty("描述")
private String remarks;
@ApiModelProperty("菜单集合")
private List<SysMenuVo> children;
}

34
src/main/java/com/yxt/user/biz/sysstaffinfo/AppContactsDetailsVo.java

@ -0,0 +1,34 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/9/17
*/
@ApiModel(value = "App通讯录查看详情")
@Data
public class AppContactsDetailsVo implements Vo {
// @ApiModelProperty("人员sid")
// private String sid;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("头像")
private String headImage;
@ApiModelProperty("部门名称(路径)")
private String orgNamePath;
@ApiModelProperty("职位")
private String position;
}

18
src/main/java/com/yxt/user/biz/sysstaffinfo/PcSysStaffQuery.java

@ -0,0 +1,18 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/5/20 15:47
* @Description
*/
@Data
public class PcSysStaffQuery implements Query {
private static final long serialVersionUID = 1858291601540877140L;
@ApiModelProperty(value = "业务员sid",required = false)
private String staffSid;
}

19
src/main/java/com/yxt/user/biz/sysstaffinfo/PcSysStaffVo.java

@ -0,0 +1,19 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/5/20 15:44
* @Description
*/
@Data
public class PcSysStaffVo implements Vo {
private static final long serialVersionUID = -9042032921079833819L;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("人员")
private String staffName;
}

30
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffQuery.java

@ -0,0 +1,30 @@
package com.yxt.user.biz.sysstaffinfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @Author dimengzhe
* @Date 2022/2/15 15:22
* @Description
*/
@Data
public class SysStaffQuery implements Query {
private static final long serialVersionUID = -7345786610678948794L;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "离职日期")
@NotNull(message = "离职日期不能为空")
private Date quitDate;
@ApiModelProperty(value = "离职原因")
@NotBlank(message = "离职原因不能为空")
private String quitReason;
@ApiModelProperty(value = "员工sid")
private String sid;
}

173
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfo.java

@ -0,0 +1,173 @@
package com.yxt.user.biz.sysstaffinfo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffinfo.java <br/>
* Class: com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfo <br/>
* Description: 人员基础信息表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "人员基础信息表", description = "人员基础信息表")
@TableName("sys_staffinfo")
@Data
public class SysStaffinfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("工号")
private String jobNumber;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("性别key:1男,2女")
private Integer genderKey;
@ApiModelProperty(value = "性别")
private String gender;
@ApiModelProperty("身份证号")
private String idNo;
@ApiModelProperty("证件有效期")
private String idTerm;
@ApiModelProperty("生日")
private Date birthday;
@ApiModelProperty("民族")
private String national;
@ApiModelProperty(value = "民族key")
private String nationalKey;
@ApiModelProperty("籍贯")
private String nativePlace;
@ApiModelProperty(value = "省")
private String province;
@ApiModelProperty(value = "市")
private String city;
@ApiModelProperty(value = "县区")
private String county;
@ApiModelProperty(value = "省code")
private String provinceCode;
@ApiModelProperty(value = "市code")
private String cityCode;
@ApiModelProperty(value = "县区code")
private String countyCode;
@ApiModelProperty("住址")
private String address;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty(value = "紧急联系人")
private String emergencyContact;
@ApiModelProperty(value = "紧急联系电话")
private String emergencyMobile;
@ApiModelProperty("政治面貌")
private String poliCode;
@ApiModelProperty(value = "政治面貌key")
private String poliCodeKey;
@ApiModelProperty("婚姻状况")
private String maritalStatus;
@ApiModelProperty("婚姻状况key")
private String maritalStatusKey;
@ApiModelProperty("员工类型(无类型、全职、兼职、实习、劳务派遣、退休返聘、劳务外包)")
private String personType;
@ApiModelProperty("员工类型key")
private String personTypeKey;
@ApiModelProperty("入职时间")
private Date joinCompnyDate;
@ApiModelProperty("试用期(无试用期、1个月、2个月、3个月、其他)")
private String probPeriod;
@ApiModelProperty("试用期key")
private String probPeriodKey;
@ApiModelProperty("计划转正日期")
private Date plannedConfirmDate;
@ApiModelProperty("实际转正日期")
private Date confirmationDate;
@ApiModelProperty("银行卡号")
private String bankCardNo;
@ApiModelProperty("开户行")
private String openBank;
@ApiModelProperty("身份证(人像面)")
private String idCardA;
@ApiModelProperty("身份证(国徽面)")
private String idCardB;
@ApiModelProperty("学历证书")
private String diploma;
@ApiModelProperty("学位证书")
private String degreeCertificate;
@ApiModelProperty("前公司离职证明")
private String leaveCertificate;
@ApiModelProperty("员工照片")
private String photo;
@ApiModelProperty("姓名的拼音(全)")
private String pinYinName;
@ApiModelProperty("姓名拼音的首字母(特殊的#表示)")
private String firstPinYinLabel;
@ApiModelProperty(value = "毕业院校")
private String graduate;
@ApiModelProperty(value = "学历/专业")
private String education;
private String educationKey;
@ApiModelProperty(value = "职称")
private String title;
@ApiModelProperty(value = "资格认证")
private String qualification;
@ApiModelProperty(value = "驾照类型")
private String licenseType;
@ApiModelProperty(value = "驾照类型key")
private String licenseTypeKey;
@ApiModelProperty(value = "意外险参保:1是,0否")
private Integer isHaveInsurance;
@ApiModelProperty(value = "意外险参保时间")
private Date insuranceStartDate;
@ApiModelProperty(value = "意外险参保终止日期")
private Date insuranceEndDate;
@ApiModelProperty(value = "意外险参保地")
private String insuranceAddr;
@ApiModelProperty(value = "养老:1是,0否")
private Integer isHaveAged;
@ApiModelProperty(value = "医疗:1是,0否")
private Integer isHaveMedical;
@ApiModelProperty(value = "工伤:1是,0否")
private Integer isHaveInjury;
@ApiModelProperty(value = "失业:1是,0否")
private Integer isHaveUnemploy;
@ApiModelProperty(value = "社保参保地")
private String insuredPlace;
@ApiModelProperty(value = "纸质档案保管地")
private String paperPlace;
@ApiModelProperty(value = "合同起止日期")
private Date contractStartDate;
@ApiModelProperty(value = "合同结束日期")
private Date contractEndDate;
@ApiModelProperty(value = "离职日期")
private Date quitDate;
@ApiModelProperty(value = "离职原因")
private String quitReason;
//=====================================================================//
@ApiModelProperty("首次参加工作时间")
private Date jobDateStart;
@ApiModelProperty("户籍类型")
private String residenceType;
@ApiModelProperty("个人社保账号")
private String socialAccount;
@ApiModelProperty("个人公积金账号")
private String fundAccount;
@ApiModelProperty("职位")
private String position;
@ApiModelProperty("岗位职级")
private String postRank;
@ApiModelProperty("身份证地址")
private String idAddrs;
}

34
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoAppContactsSearchVo.java

@ -0,0 +1,34 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/9/24
*/
@ApiModel(value = "App通讯录(搜索)")
@Data
public class SysStaffinfoAppContactsSearchVo implements Vo {
@ApiModelProperty("人员sid")
private String sid;
@ApiModelProperty("用户头像")
private String headImage;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("职位")
private String position;
@ApiModelProperty("部门名称")
private String orgName;
}

34
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoAppContactsVo.java

@ -0,0 +1,34 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/9/16
*/
@ApiModel(value = "App通讯录")
@Data
public class SysStaffinfoAppContactsVo implements Vo {
@ApiModelProperty("人员sid")
private String sid;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("用户头像")
private String headImage;
@ApiModelProperty("姓名的拼音(全)")
private String pinYinName;
@ApiModelProperty("姓名拼音的首字母(特殊的#表示)")
private String firstPinYinLabel;
}

155
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoDetailsVo.java

@ -0,0 +1,155 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.user.biz.sysstafforg.SysStaffOrgDetailsVo;
import com.yxt.user.biz.sysstaffpost.SysStaffPostDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/2/11 16:12
* @Description 员工信息的编辑初始化和详情返回数据
*/
@Data
public class SysStaffinfoDetailsVo implements Vo {
private static final long serialVersionUID = 1232171677690215067L;
@ApiModelProperty(value = "工号")
private String jobNumber;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "性别key")
private Integer genderKey;
@ApiModelProperty(value = "性别")
private String gender;
@ApiModelProperty(value = "身份证号")
private String idNo;
@ApiModelProperty(value = "证件有效期")
private String idTerm;
@ApiModelProperty("生日")
private String birthday;
@ApiModelProperty(value = "民族")
private String national;
@ApiModelProperty(value = "民族key")
private String nationalKey;
@ApiModelProperty("籍贯")
private String nativePlace;
@ApiModelProperty(value = "省")
private String province;
@ApiModelProperty(value = "市")
private String city;
@ApiModelProperty(value = "县区")
private String county;
@ApiModelProperty(value = "省code")
private String provinceCode;
@ApiModelProperty(value = "市code")
private String cityCode;
@ApiModelProperty(value = "县区code")
private String countyCode;
@ApiModelProperty("住址")
private String address;
@ApiModelProperty(value = "手机号")
private String mobile;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty(value = "紧急联系人")
private String emergencyContact;
@ApiModelProperty(value = "紧急联系电话")
private String emergencyMobile;
@ApiModelProperty("政治面貌")
private String poliCode;
@ApiModelProperty(value = "政治面貌key")
private String poliCodeKey;
@ApiModelProperty("婚姻状况")
private String maritalStatus;
@ApiModelProperty("婚姻状况key")
private String maritalStatusKey;
@ApiModelProperty("员工类型(无类型、全职、兼职、实习、劳务派遣、退休返聘、劳务外包)")
private String personType;
@ApiModelProperty("员工类型key")
private String personTypeKey;
@ApiModelProperty("入职时间")
private String joinCompnyDate;
@ApiModelProperty("试用期(无试用期、1个月、2个月、3个月、其他)")
private String probPeriod;
@ApiModelProperty("试用期key")
private String probPeriodKey;
@ApiModelProperty("计划转正日期")
private String plannedConfirmDate;
@ApiModelProperty("实际转正日期")
private String confirmationDate;
@ApiModelProperty("银行卡号")
private String bankCardNo;
@ApiModelProperty("开户行")
private String openBank;
@ApiModelProperty("身份证(人像面)")
private String idCardA;
@ApiModelProperty("身份证(国徽面)")
private String idCardB;
@ApiModelProperty("学历证书")
private String diploma;
@ApiModelProperty("学位证书")
private String degreeCertificate;
@ApiModelProperty("前公司离职证明")
private String leaveCertificate;
@ApiModelProperty("员工照片")
private String photo;
@ApiModelProperty(value = "员工部门信息")
private SysStaffOrgDetailsVo sysStaffOrg;
@ApiModelProperty(value = "员工岗位信息")
private SysStaffPostDetailsVo sysStaffPost;
//===========================================//
@ApiModelProperty(value = "毕业院校")
private String graduate;
@ApiModelProperty(value = "学历/专业")
private String education;
@ApiModelProperty(value = "职称")
private String title;
@ApiModelProperty(value = "资格认证")
private String qualification;
@ApiModelProperty(value = "驾照类型")
private String licenseType;
@ApiModelProperty(value = "驾照类型key")
private String licenseTypeKey;
@ApiModelProperty(value = "意外险参保:1是,0否")
private Integer isHaveInsurance;
@ApiModelProperty(value = "意外险参保:1是,0否")
private String isHaveInsuranceValue;
@ApiModelProperty(value = "意外险参保时间")
private String insuranceStartDate;
@ApiModelProperty(value = "意外险参保终止日期")
private String insuranceEndDate;
@ApiModelProperty(value = "意外险参保地")
private String insuranceAddr;
@ApiModelProperty(value = "养老:1是,0否")
private Integer isHaveAged;
@ApiModelProperty(value = "养老:1是,0否")
private String isHaveAgedValue;
@ApiModelProperty(value = "医疗:1是,0否")
private Integer isHaveMedical;
@ApiModelProperty(value = "医疗:1是,0否")
private String isHaveMedicalValue;
@ApiModelProperty(value = "工伤:1是,0否")
private Integer isHaveInjury;
@ApiModelProperty(value = "工伤:1是,0否")
private String isHaveInjuryValue;
@ApiModelProperty(value = "失业:1是,0否")
private Integer isHaveUnemploy;
@ApiModelProperty(value = "失业:1是,0否")
private String isHaveUnemployValue;
@ApiModelProperty(value = "社保参保地")
private String insuredPlace;
@ApiModelProperty(value = "纸质档案保管地")
private String paperPlace;
@ApiModelProperty(value = "合同起止日期")
private String contractStartDate;
@ApiModelProperty(value = "合同结束日期")
private String contractEndDate;
@ApiModelProperty(value = "离职日期")
private String quitDate;
@ApiModelProperty(value = "离职原因")
private String quitReason;
}

186
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoDto.java

@ -0,0 +1,186 @@
package com.yxt.user.biz.sysstaffinfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.user.biz.sysstafforg.SysStaffOrgDto;
import com.yxt.user.biz.sysstaffpost.SysStaffPostDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.util.Date;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffinfoDto.java <br/>
* Class: com.yxt.user.biz.sysstaffinfo.SysStaffinfoDto <br/>
* Description: 人员基础信息表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "人员基础信息表 数据传输对象", description = "人员基础信息表 数据传输对象")
@Data
public class SysStaffinfoDto implements Dto {
private static final long serialVersionUID = 8637516813924395044L;
@ApiModelProperty(value = "姓名", required = true)
@NotBlank(message = "姓名不能为空")
private String name;
@ApiModelProperty(value = "性别key", required = true)
@NotBlank(message = "性别不能为空")
private String genderKey;
@ApiModelProperty(value = "性别", required = true)
@NotBlank(message = "性别不能为空")
private String gender;
@ApiModelProperty(value = "员工编号")
private String jobNumber;
@ApiModelProperty(value = "身份证号", required = true)
@Pattern(regexp = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$", message = "请输入正确的身份证号")
@NotBlank(message = "身份证号不能为空")
private String idNo;
@ApiModelProperty(value = "证件有效期", required = true)
@NotBlank(message = "证件有效期不能为空")
private String idTerm;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("生日")
private Date birthday;
@ApiModelProperty(value = "民族", required = true)
@NotBlank(message = "民族不能为空")
private String national;
@ApiModelProperty(value = "民族key", required = true)
@NotBlank(message = "民族不能为空")
private String nationalKey;
@ApiModelProperty(value = "籍贯", required = false)
private String nativePlace;
@ApiModelProperty(value = "省", required = false)
private String province;
@ApiModelProperty(value = "市", required = false)
private String city;
@ApiModelProperty(value = "县区", required = false)
private String county;
@ApiModelProperty(value = "省code", required = false)
private String provinceCode;
@ApiModelProperty(value = "市code", required = false)
private String cityCode;
@ApiModelProperty(value = "县区code", required = false)
private String countyCode;
@ApiModelProperty(value = "住址", required = false)
private String address;
@ApiModelProperty(value = "手机号", required = true)
// @Pattern(regexp = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|(19[1,3,5-9])|166|(147))\\d{8}$", message = "手机号码格式不正确")
@Pattern(regexp = "^[0-9]{11}$", message = "手机号码格式不正确")
@NotBlank(message = "手机号不能为空")
private String mobile;
@ApiModelProperty(value = "邮箱", required = false)
//@Pattern(regexp = "[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+", message = "邮箱格式不正确")
private String email;
@ApiModelProperty(value = "紧急联系人", required = false)
private String emergencyContact;
@ApiModelProperty(value = "紧急联系电话", required = false)
private String emergencyMobile;
@ApiModelProperty(value = "政治面貌", required = false)
private String poliCode;
@ApiModelProperty(value = "政治面貌key", required = false)
private String poliCodeKey;
@ApiModelProperty(value = "婚姻状况", required = false)
private String maritalStatus;
@ApiModelProperty(value = "婚姻状况key", required = false)
private String maritalStatusKey;
@ApiModelProperty(value = "员工类型", required = true)
@NotBlank(message = "员工类型不能为空")
private String personType;
@ApiModelProperty(value = "员工类型key", required = true)
@NotBlank(message = "员工类型不能为空")
private String personTypeKey;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("入职时间")
private Date joinCompnyDate;
@ApiModelProperty("试用期(无试用期、1个月、2个月、3个月、其他)")
private String probPeriod;
@ApiModelProperty("试用期key")
private String probPeriodKey;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("计划转正日期")
private Date plannedConfirmDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("实际转正日期")
private Date confirmationDate;
@ApiModelProperty("银行卡号")
private String bankCardNo;
@ApiModelProperty("开户行")
private String openBank;
@ApiModelProperty("身份证(人像面)")
private String idCardA;
@ApiModelProperty("身份证(国徽面)")
private String idCardB;
@ApiModelProperty("学历证书")
private String diploma;
@ApiModelProperty("学位证书")
private String degreeCertificate;
@ApiModelProperty("前公司离职证明")
private String leaveCertificate;
@ApiModelProperty("员工照片")
private String photo;
@ApiModelProperty(value = "员工部门信息")
private SysStaffOrgDto sysStaffOrg;
@ApiModelProperty(value = "员工岗位信息")
private SysStaffPostDto sysStaffPost;
//========================================//
@ApiModelProperty(value = "毕业院校")
private String graduate;
@ApiModelProperty(value = "学历/专业")
private String education;
private String educationKey;
@ApiModelProperty(value = "职称")
private String title;
@ApiModelProperty(value = "资格认证")
private String qualification;
@ApiModelProperty(value = "驾照类型")
private String licenseType;
@ApiModelProperty(value = "驾照类型key")
private String licenseTypeKey;
@ApiModelProperty(value = "意外险参保:1是,0否")
private Integer isHaveInsurance;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "意外险参保时间")
private Date insuranceStartDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "意外险参保终止日期")
private Date insuranceEndDate;
@ApiModelProperty(value = "意外险参保地")
private String insuranceAddr;
@ApiModelProperty(value = "养老:1是,0否")
private Integer isHaveAged;
@ApiModelProperty(value = "医疗:1是,0否")
private Integer isHaveMedical;
@ApiModelProperty(value = "工伤:1是,0否")
private Integer isHaveInjury;
@ApiModelProperty(value = "失业:1是,0否")
private Integer isHaveUnemploy;
@ApiModelProperty(value = "社保参保地")
private String insuredPlace;
@ApiModelProperty(value = "纸质档案保管地")
private String paperPlace;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "合同起止日期")
private Date contractStartDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "合同结束日期")
private Date contractEndDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "离职日期")
private Date quitDate;
@ApiModelProperty(value = "离职原因")
private String quitReason;
}

128
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoMapper.java

@ -0,0 +1,128 @@
package com.yxt.user.biz.sysstaffinfo;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.user.biz.sysorganization.AppContactSysOrganizationVo;
import com.yxt.user.biz.sysstaffinfo.*;
import com.yxt.user.biz.sysstaffinfo.app.AppSysStaffVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffinfoMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.sysstaffinfo.SysStaffinfoMapper <br/>
* Description: 人员基础信息表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SysStaffinfoMapper extends BaseMapper<SysStaffinfo> {
//@Update("update sys_staffinfo set name=#{msg} where id=#{id}")
//IPage<SysStaffinfoVo> voPage(IPage<SysStaffinfo> page, @Param(Constants.WRAPPER) QueryWrapper<SysStaffinfo> qw);
List<SysStaffinfoAppContactsVo> selectAppContactsList();
IPage<SysStaffinfoAppContactsSearchVo> searchAppContactsPageList(IPage<SysStaffinfoQuery> page, @Param("list") List<String> list,
@Param("chnStr") String chnStr, @Param("mobileStr") String mobileStr);
AppContactsDetailsVo selectAppContactsVO(String staffSid);
List<AppContactSysOrganizationVo> selectContactsByOrgsid(@Param("sid") String sid);
SysStaffinfo selectJobNumber();
/**
* 查询员工的手机号是否重复
*
* @param mobile 手机号
* @return
*/
SysStaffinfo selectByMobile(String mobile);
/**
* 查询是否存在该身份证号的员工
*
* @param idNo 身份证号
* @return
*/
SysStaffinfo selectByIdNo(String idNo);
/**
* 员工管理分页列表
*
* @param page 分页
* @param qw 查询条件
* @return
*/
IPage<SysStaffinfoVo> pagerList(IPage<SysStaffinfoQuery> page, @Param(Constants.WRAPPER) Wrapper<SysStaffinfoVo> qw);
/**
* 根据员工sid和员工手机号码查询员工信息是否已存在
*
* @param mobile 手机号
* @param sid 员工sid
* @return
*/
SysStaffinfo selectByMobileAndSid(@Param("mobile") String mobile, @Param("sid") String sid);
/**
* 根据员工sid和身份证号查询员工信息是否已存在
*
* @param idNo 身份证号
* @param sid 员工sid
* @return
*/
SysStaffinfo selectByIdNoAndSid(@Param("idNo") String idNo, @Param("sid") String sid);
/**
* 根据员工sid查询员工信息
*
* @param sid 员工sid
* @return
*/
SysStaffinfoDetailsVo selectDetailsBySid(@Param("sid") String sid, @Param("path") String path);
/**
* 根据员工sid更新信息
*
* @param personType 员工类型
* @param personTypeKey 员工类型key
* @param sid 员工sid
* @return
*/
int updateBySid(@Param("personType") String personType, @Param("personTypeKey") String personTypeKey,
@Param("sid") String sid, @Param("date") Date date, @Param("reason") String reason);
/**
* 查询当前分公司下的员工信息
*
* @param orgSid 分公司sid
* @return
*/
List<PcSysStaffVo> selectStaffList(String orgSid);
List<Map<String, String>> getStaffName(@Param(Constants.WRAPPER) Wrapper<Map<String, Object>> qw);
List<Map<String, String>> getStaffNameByDeptSid(@Param(Constants.WRAPPER) Wrapper<Map<String, Object>> qw);
IPage<AppSysStaffVo> getUserList(IPage<SysStaffinfo> page, @Param(Constants.WRAPPER) QueryWrapper<AppSysStaffVo> qw, @Param("orgSid") String orgSid);
List<AppSysStaffVo> getGressionUserList(@Param("userOrgSid")String userOrgSid);
List<PcSysStaffVo> selectStaffLists();
List<PcSysStaffVo> selectStaffListss();
}

398
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoMapper.xml

@ -0,0 +1,398 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.user.biz.sysstaffinfo.SysStaffinfoMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectAppContactsList" parameterType="List"
resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfoAppContactsVo">
SELECT staff.sid, staff.name, staff.mobile, staff.pinYinName, staff.firstPinYinLabel, user.headImage
FROM sys_staffinfo staff
LEFT JOIN sys_user user
ON staff.sid = user.staffSid
where staff.personTypeKey != '01'
ORDER BY staff.firstPinYinLabel = '#', staff.firstPinYinLabel ASC, staff.pinYinName
</select>
<select id="searchAppContactsPageList"
resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfoAppContactsSearchVo">
SELECT staff.sid,
staff.name,
staff.mobile,
staff.position,
user.headImage,
GROUP_CONCAT(org.orgName SEPARATOR '/') orgName
FROM sys_staffinfo staff
LEFT JOIN sys_staff_org org ON org.staffSid = staff.sid
LEFT JOIN sys_user user ON staff.sid = user.staffSid
WHERE 1 = 1 and staff.personTypeKey != '01'
<if test="mobileStr != null and mobileStr != ''">
AND staff.mobile LIKE concat('%', #{mobileStr}, '%')
</if>
<if test="list.size > 0">
<foreach collection="list" index="index" item="item" separator=" ">
AND staff.pinYinName LIKE concat('%', #{item}, '%')
</foreach>
</if>
<if test="chnStr != '' and chnStr != null">
OR staff.position LIKE concat('%', #{chnStr,jdbcType=VARCHAR}, '%')
OR org.orgName LIKE concat('%', #{chnStr,jdbcType=VARCHAR}, '%')
</if>
GROUP BY staff.sid
ORDER BY staff.firstPinYinLabel = '#', staff.firstPinYinLabel ASC, staff.pinYinName
</select>
<select id="selectAppContactsVO" resultType="com.yxt.user.biz.sysstaffinfo.AppContactsDetailsVo">
SELECT staff.name,
staff.mobile,
user.headImage,
staff.position,
GROUP_CONCAT(org.orgNamePath SEPARATOR '/') orgNamePath
FROM sys_staffinfo staff
LEFT JOIN sys_user user
ON staff.sid = user.staffSid
LEFT JOIN sys_staff_org org ON staff.sid = org.staffSid
WHERE staff.sid = #{staffSid}
GROUP BY staff.sid
</select>
<select id="selectContactsByOrgsid"
resultType="com.yxt.user.biz.sysorganization.AppContactSysOrganizationVo">
SELECT staff.sid,
staff.name,
staff.mobile,
user.headImage,
org.orgNamePath,
staff.position,
IFNULL(NULL, '3') AS type,
IFNULL(NULL, 0) AS staffNum
FROM sys_staff_org org
INNER JOIN sys_staffinfo staff ON org.staffSid = staff.sid
LEFT JOIN sys_user user
ON staff.sid = user.staffSid
WHERE org.orgSid = #{sid}
and staff.personTypeKey != '01'
</select>
<!--根据员工类型key查询员工工号的最大号-->
<select id="selectJobNumber" resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfo">
select *
from sys_staffinfo
order by jobNumber desc
limit 1
</select>
<!--根据手机号查询员工是否重复-->
<select id="selectByMobile" resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfo">
select *
from sys_staffinfo
where mobile = #{mobile}
</select>
<!--查询是否存在该身份证号的员工-->
<select id="selectByIdNo" resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfo">
select *
from sys_staffinfo
where idNo = #{idNo}
</select>
<!--员工管理分页列表-->
<select id="pagerList" resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfoVo">
select DISTINCT si.sid,
<!--员工编号-->
si.jobNumber,
<!--员工姓名-->
si.name,
<!--员工类型-->
si.personType,
<!--手机号-->
si.mobile,
<!--入职日期-->
DATE_FORMAT(si.joinCompnyDate, '%Y-%m-%d') AS joinCompnyDate,
<!--所在部门-->
(select GROUP_CONCAT(orgName SEPARATOR ',') orgName from sys_staff_org so where so.staffSid = si.sid) as
orgName,
<!--所在部门sid-->
(select GROUP_CONCAT(orgSid SEPARATOR ',') orgSid from sys_staff_org so where so.staffSid = si.sid) as
orgSid,
<!--岗位-->
(select GROUP_CONCAT(sp.name SEPARATOR ',') postName
from sys_staff_post ssp
left join sys_post sp on
sp.sid =
ssp.postSid
where ssp.staffSid = si.sid
group by ssp.id) as postName
from sys_staffinfo si
LEFT JOIN sys_staff_org so
ON so.staffSid = si.sid
LEFT JOIN sys_staff_post ssp
ON ssp.staffSid = si.sid
${ew.customSqlSegment}
</select>
<!--根据员工手机号和sid查询员工信息是否已存在-->
<select id="selectByMobileAndSid" resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfo">
select *
from sys_staffinfo
where mobile = #{mobile}
and sid &lt;&gt; #{sid}
</select>
<!--根据员工sid和身份证号查询员工信息是否已存在-->
<select id="selectByIdNoAndSid" resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfo">
select *
from sys_staffinfo
where idNo = #{idNo}
and sid &lt;&gt; #{sid}
</select>
<!--根据员工sid查询员工信息-->
<select id="selectDetailsBySid" resultType="com.yxt.user.biz.sysstaffinfo.SysStaffinfoDetailsVo">
select
<!--工号-->
jobNumber,
<!--姓名-->
name,
<!--性别key-->
genderKey,
<!--性别-->
gender,
<!--身份证号-->
idNo,
<!--证件有效期-->
idTerm,
<!--生日-->
DATE_FORMAT(birthday, '%Y-%m-%d') as birthday,
<!--民族-->
national,
<!--民族key-->
nationalKey,
<!--籍贯-->
nativePlace,
<!---->
province,
<!---->
city,
<!--县区-->
county,
<!--省code-->
provinceCode,
<!--市code-->
cityCode,
<!--县区code-->
countyCode,
<!--住址-->
address,
<!--手机号-->
mobile,
<!--邮箱-->
email,
<!--紧急联系人-->
emergencyContact,
<!--紧急联系电话-->
emergencyMobile,
<!--政治面貌-->
poliCode,
<!--政治面貌key-->
poliCodeKey,
<!--婚姻状况-->
maritalStatus,
<!--婚姻状况key-->
maritalStatusKey,
<!--员工类型-->
personType,
<!--员工类型key-->
personTypeKey,
<!--入职时间-->
DATE_FORMAT(joinCompnyDate, '%Y-%m-%d') as joinCompnyDate,
<!--试用期-->
probPeriod,
<!--试用期key-->
probPeriodKey,
<!--计划转正日期-->
DATE_FORMAT(plannedConfirmDate, '%Y-%m-%d') as plannedConfirmDate,
<!--实际转正日期-->
DATE_FORMAT(confirmationDate, '%Y-%m-%d') as confirmationDate,
<!--银行卡号-->
bankCardNo,
<!--开户行-->
openBank,
<!--身份证(人像面)-->
IF(idCardA = "", idCardA, CONCAT(#{path}, idCardA)) AS idCardA,
<!--NULLIF(idCardA,CONCAT(#{path}, idCardA) as idCardA),-->
<!--when idCardA is null then idCardA else concat(#{path}, idCardA) as idCardA end,-->
<!--身份证(国徽面)-->
IF(idCardB = "", idCardB, CONCAT(#{path}, idCardB)) AS idCardB,
<!--NULLIF(idCardB,concat(#{path}, idCardB) as idCardB),-->
<!--when idCardB is null then idCardB else concat(#{path}, idCardB) as idCardB end,-->
<!--学历证书-->
IF(diploma = "", diploma, CONCAT(#{path}, diploma)) AS diploma,
<!--NULLIF(CONCAT(#{path}, diploma) as diploma,diploma),-->
<!--when diploma is null then diploma else concat(#{path}, diploma) as diploma end,-->
<!--学位证书-->
IF(degreeCertificate = "", degreeCertificate, CONCAT(#{path}, degreeCertificate)) AS degreeCertificate,
<!--NULLIF(CONCAT(#{path}, degreeCertificate) as degreeCertificate,degreeCertificate),-->
<!--when degreeCertificate is null then degreeCertificate else concat(#{path}, degreeCertificate) as degreeCertificate end,-->
<!--前公司离职证明-->
IF(leaveCertificate = "", leaveCertificate, CONCAT(#{path}, leaveCertificate)) AS leaveCertificate,
<!--NULLIF(CONCAT(#{path}, leaveCertificate) as leaveCertificate,leaveCertificate),-->
<!--when leaveCertificate is null then leaveCertificate else concat(#{path}, leaveCertificate) as leaveCertificate end,-->
<!--员工照片-->
IF(photo = "", photo, CONCAT(#{path}, photo)) AS photo,
<!--NULLIF(CONCAT(#{path}, photo) as photo,photo),-->
<!--when photo is null then photo else concat(#{path}, photo) as photo end,-->
<!--毕业院校-->
graduate,
<!--学历/专业-->
education,
educationKey,
<!--职称-->
title,
<!--资格认证-->
qualification,
<!--驾照类型-->
licenseType,
<!--驾照类型key-->
licenseTypeKey,
<!--意外险参保:1是,0否-->
isHaveInsurance,
<!--意外险参保:1是,0否-->
case isHaveInsurance
when 1 then '是'
when 0 then '否' end as isHaveInsuranceValue,
<!--意外险参保时间-->
DATE_FORMAT(insuranceStartDate, '%Y-%m-%d') as insuranceStartDate,
<!--意外险参保终止日期-->
DATE_FORMAT(insuranceEndDate, '%Y-%m-%d') as insuranceEndDate,
<!--意外险参保地-->
insuranceAddr,
<!--养老:1是,0否-->
isHaveAged,
<!--养老:1是,0否-->
case isHaveAged
when 1 then '是'
when 0 then '否' end as isHaveAgedValue,
<!--医疗:1是,0否-->
isHaveMedical,
<!--医疗:1是,0否-->
case isHaveMedical
when 1 then '是'
when 0 then '否' end as isHaveMedicalValue,
<!--工伤:1是,0否-->
isHaveInjury,
<!--工伤:1是,0否-->
case isHaveInjury
when 1 then '是'
when 0 then '否' end as isHaveInjuryValue,
<!--失业:1是,0否-->
isHaveUnemploy,
<!--失业:1是,0否-->
case isHaveUnemploy
when 1 then '是'
when 0 then '否' end as isHaveUnemployValue,
<!--社保参保地-->
insuredPlace,
<!--纸质档案保管地-->
paperPlace,
<!--合同起止日期-->
DATE_FORMAT(contractStartDate, '%Y-%m-%d') as contractStartDate,
<!--合同结束日期-->
DATE_FORMAT(contractEndDate, '%Y-%m-%d') as contractEndDate,
<!--离职日期-->
DATE_FORMAT(quitDate, '%Y-%m-%d') as quitDate,
<!--离职原因-->
quitReason
from sys_staffinfo
where sid = #{sid}
</select>
<update id="updateBySid">
update sys_staffinfo
set personType = #{personType},
personTypeKey = #{personTypeKey},
quitDate = #{date},
quitReason = #{reason}
where sid = #{sid}
</update>
<!--查询当前分公司下的员工信息-->
<select id="selectStaffList" resultType="com.yxt.user.biz.sysstaffinfo.PcSysStaffVo">
select su.sid userSid, si.name staffName
from sys_staff_org sso
left join sys_staffinfo si on sso.staffSid = si.sid
left join sys_user su on su.staffSid = si.sid
where find_in_set(#{orgSid}, replace(sso.orgSidPath, '/', ','))
</select>
<select id="getStaffName" resultType="java.util.Map">
SELECT DISTINCT ss.sid, ss.name
FROM sys_staffinfo ss
LEFT JOIN sys_staff_org sso
ON ss.`sid` = sso.`staffSid`
${ew.customSqlSegment}
</select>
<select id="getStaffNameByDeptSid" resultType="java.util.Map">
SELECT DISTINCT ss.sid,
ss.name
FROM sys_staffinfo ss
LEFT JOIN sys_staff_org sso
ON ss.`sid` = sso.`staffSid`
${ew.customSqlSegment}
</select>
<select id="getUserList" resultType="com.yxt.user.biz.sysstaffinfo.app.AppSysStaffVo">
select su.sid userSid,
si.name userName,
su.headImage,
si.mobile userMobile,
sso.orgName as department,
sp.name
from sys_staff_org sso
left join sys_staffinfo si on sso.staffSid = si.sid
left join sys_user su on si.sid = su.staffSid
left join sys_staff_post ssp on si.sid = ssp.staffSid
left join sys_post sp on sp.sid = ssp.postSid
<where>
${ew.sqlSegment}
and su.isAdmin is NULL
<if test="orgSid != null and orgSid != ''">
and find_in_set(#{orgSid}
, replace (sso.orgSidPath
, '/'
, ','))
</if>
</where>
group by su.sid
</select>
<select id="getGressionUserList" resultType="com.yxt.user.biz.sysstaffinfo.app.AppSysStaffVo">
select su.sid as userSid,
si.name as userName,
su.headImage,
si.mobile as userMobile,
sso.orgName as department,
sp.name
from sys_staff_org sso
left join sys_staffinfo si on sso.staffSid = si.sid
left join sys_user su on si.sid = su.staffSid
left join sys_staff_post ssp on si.sid = ssp.staffSid
left join sys_post sp on sp.sid = ssp.postSid
<where>
1=1
<if test="userOrgSid != null and userOrgSid != ''">
and find_in_set(#{userOrgSid}
, replace(sso.orgSidPath
, '/'
, ','))
</if>
</where>
</select>
<select id="selectStaffLists" resultType="com.yxt.user.biz.sysstaffinfo.PcSysStaffVo">
select su.sid userSid,
si.name staffName
from sys_user su
left join sys_staffinfo si on su.staffSid = si.sid where su.isAdmin is NULL
</select>
<select id="selectStaffListss" resultType="com.yxt.user.biz.sysstaffinfo.PcSysStaffVo">
select su.sid userSid,
si.name staffName
from sys_user su
left join sys_staffinfo si on su.staffSid = si.sid where su.isAdmin is NULL and si.personTypeKey != '01'
</select>
</mapper>

42
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoQuery.java

@ -0,0 +1,42 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffinfoQuery.java <br/>
* Class: com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoQuery <br/>
* Description: 人员基础信息表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "人员基础信息表 查询条件", description = "人员基础信息表 查询条件")
@Data
public class SysStaffinfoQuery implements Query {
private static final long serialVersionUID = 7101232842735165406L;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("员工类型key")
private String personTypeKey;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("入职开始日期")
private String joinCompnyDateStart;
@ApiModelProperty("入职结束日期")
private String joinCompnyDateEnd;
@ApiModelProperty(value = "所在部门sid")
private String orgSid;
@ApiModelProperty(value = "所在岗位sid")
private String postSid;
}

819
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoService.java

@ -0,0 +1,819 @@
package com.yxt.user.biz.sysstaffinfo;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.user.biz.sysorganization.AppContactSysOrganizationVo;
import com.yxt.user.biz.sysorganization.SysOrganization;
import com.yxt.user.biz.sysrole.SysRoleVo;
import com.yxt.user.biz.sysstaffinfo.*;
import com.yxt.user.biz.sysstaffinfo.app.AppSysStaffQuery;
import com.yxt.user.biz.sysstaffinfo.app.AppSysStaffVo;
import com.yxt.user.biz.sysstafforg.SysStaffOrg;
import com.yxt.user.biz.sysstafforg.SysStaffOrgDetailsVo;
import com.yxt.user.biz.sysstafforg.SysStaffOrgDto;
import com.yxt.user.biz.sysstafforg.SysStaffOrgVo;
import com.yxt.user.biz.sysstaffpost.SysStaffPost;
import com.yxt.user.biz.sysstaffpost.SysStaffPostDetailsVo;
import com.yxt.user.biz.sysstaffpost.SysStaffPostDto;
import com.yxt.user.biz.sysuser.SysUser;
import com.yxt.user.biz.sysuserrole.SysUserRole;
import com.yxt.user.biz.sysorganization.SysOrganizationService;
import com.yxt.user.biz.syspost.SysPostService;
import com.yxt.user.biz.sysrole.SysRoleService;
import com.yxt.user.biz.sysstafforg.SysStaffOrgService;
import com.yxt.user.biz.sysstaffpost.SysStaffPostService;
import com.yxt.user.biz.sysuser.SysUserService;
import com.yxt.user.biz.sysuserrole.SysUserRoleService;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.Encodes;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.PinYinUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.user.biz.sysorganization.AppContactSysOrganizationVo;
import com.yxt.user.biz.sysstaffinfo.app.AppSysStaffVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import static java.util.stream.Collectors.toList;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffinfoService.java <br/>
* Class: com.yxt.user.biz.sysstaffinfo.SysStaffinfoService <br/>
* Description: 人员基础信息表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper, SysStaffinfo> {
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private SysUserService sysUserService;
@Autowired
private SysStaffOrgService sysStaffOrgService;
@Autowired
private SysStaffPostService sysStaffPostService;
@Autowired
private SysPostService sysPostService;
@Autowired
private SysOrganizationService sysOrganizationService;
@Autowired
private SysUserRoleService sysUserRoleService;
@Autowired
private SysRoleService sysRoleService;
@Autowired
private RedisUtil redisUtil;
public List<SysStaffinfoAppContactsVo> selectAppContactsList() {
List<SysStaffinfoAppContactsVo> list = baseMapper.selectAppContactsList();
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getHeadImage())) {
vo.setHeadImage(fileUploadComponent.getUrlPrefix() + vo.getHeadImage());
}
});
return list;
}
public IPage<SysStaffinfoAppContactsSearchVo> searchAppContactsList(PagerQuery<SysStaffinfoQuery> pagerQuery, String names) {
Map<String, Object> map = new HashMap<>();
List<String> paramList = new ArrayList<>();
String chnStr = ""; // 中文查询字符串
String mobileStr = ""; // 中文查询字符串
if (StringUtils.isNotBlank(names)) {
if (names.matches("^\\d*$")) { // 数字
mobileStr = names;
} else {
String[] namesArray = names.split("");
for (int i = 0; i < namesArray.length; i++) {
if (StringUtils.isNotBlank(namesArray[i])) {
if (namesArray[i].matches("^[\u4e00-\u9fa5]+$")) { // 中文
chnStr = chnStr + namesArray[i];
}
String pinYinName = PinYinUtils.getPinYinName(namesArray[i]);
if (pinYinName.equals("_") || pinYinName.equals("%")) {
pinYinName = "\\" + pinYinName;
}
paramList.add(pinYinName);
}
}
}
}
IPage<SysStaffinfoQuery> page = PagerUtil.queryToPage(pagerQuery);
IPage<SysStaffinfoAppContactsSearchVo> iPage = baseMapper.searchAppContactsPageList(page, paramList, chnStr, mobileStr);
List<SysStaffinfoAppContactsSearchVo> list = iPage.getRecords();
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getHeadImage())) {
vo.setHeadImage(fileUploadComponent.getUrlPrefix() + vo.getHeadImage());
}
List<String> stringList = sysUserService.getPost(vo.getSid());
stringList.removeAll(Collections.singleton(null));
if (!stringList.isEmpty()) {
vo.setPosition(String.join("|", stringList));
}
});
map.put("list", list);
map.put("info", "找到 " + iPage.getRecords().size() + " 个联系人 ");
return iPage;
}
public IPage<SysStaffinfoAppContactsSearchVo> searchAppContactsList2(PagerQuery<SysStaffinfoQuery> pagerQuery) {
String names = pagerQuery.getParams().getName();
Map<String, Object> map = new HashMap<>();
List<String> paramList = new ArrayList<>();
String chnStr = ""; // 中文查询字符串
String mobileStr = ""; // 中文查询字符串
if (StringUtils.isNotBlank(names)) {
if (names.matches("^\\d*$")) { // 数字
mobileStr = names;
} else {
String[] namesArray = names.split("");
for (int i = 0; i < namesArray.length; i++) {
if (StringUtils.isNotBlank(namesArray[i])) {
if (namesArray[i].matches("^[\u4e00-\u9fa5]+$")) { // 中文
chnStr = chnStr + namesArray[i];
}
String pinYinName = PinYinUtils.getPinYinName(namesArray[i]);
if (pinYinName.equals("_") || pinYinName.equals("%")) {
pinYinName = "\\" + pinYinName;
}
paramList.add(pinYinName);
}
}
}
}
IPage<SysStaffinfoQuery> page = PagerUtil.queryToPage(pagerQuery);
IPage<SysStaffinfoAppContactsSearchVo> iPage = baseMapper.searchAppContactsPageList(page, paramList, chnStr, mobileStr);
List<SysStaffinfoAppContactsSearchVo> list = iPage.getRecords();
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getHeadImage())) {
vo.setHeadImage(fileUploadComponent.getUrlPrefix() + vo.getHeadImage());
}
List<String> stringList = sysUserService.getPost(vo.getSid());
stringList.removeAll(Collections.singleton(null));
if (!stringList.isEmpty()) {
vo.setPosition(String.join("|", stringList));
}
});
map.put("list", list);
map.put("info", "找到 " + iPage.getRecords().size() + " 个联系人 ");
return iPage;
}
public AppContactsDetailsVo selectAppContactsVO(String staffSid) {
return baseMapper.selectAppContactsVO(staffSid);
}
/**
* pc端员工管理分页列表查询条件封装
*
* @param query 查询条件
* @return
*/
private QueryWrapper<SysStaffinfoVo> createQueryWrapper(SysStaffinfoQuery query) {
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysStaffinfoVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getName())) {//姓名
qw.like("si.name", query.getName());
}
if (StringUtils.isNotBlank(query.getOrgSid())) {
qw.eq("so.orgSid", query.getOrgSid());
}
if (StringUtils.isNotBlank(query.getPostSid())) {
qw.eq("ssp.postSid", query.getPostSid());
}
if (StringUtils.isNotBlank(query.getMobile())) {
qw.like("si.mobile", query.getMobile());
}
String joinCompnyDateStart = query.getJoinCompnyDateStart();
String joinCompnyDateEnd = query.getJoinCompnyDateEnd();
qw.apply(StringUtils.isNotEmpty(joinCompnyDateStart), "date_format (joinCompnyDate,'%Y-%m-%d') >= date_format('" + joinCompnyDateStart + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(joinCompnyDateEnd), "date_format (joinCompnyDate,'%Y-%m-%d') <= date_format('" + joinCompnyDateEnd + "','%Y-%m-%d')"
);
//员工类型key
if (StringUtils.isNotBlank(query.getPersonTypeKey())) {
qw.eq("si.personTypeKey", query.getPersonTypeKey());
}
qw.orderByDesc("si.id");
return qw;
}
/**
* 员工管理分页列表
*
* @param pagerQuery 查询条件
* @return
*/
public IPage<SysStaffinfoVo> pagerList(PagerQuery<SysStaffinfoQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<SysStaffinfoQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<SysStaffinfoVo> qw = createQueryWrapper(pagerQuery.getParams());
IPage<SysStaffinfoVo> sysStaffinfoVoIPage = baseMapper.pagerList(page, qw);
List<SysStaffinfoVo> records = sysStaffinfoVoIPage.getRecords();
for (SysStaffinfoVo record : records) {
String orgSid = record.getOrgSid();
String orgName = "";
if (StringUtils.isNotBlank(orgSid)) {
String[] split = orgSid.split(",");
for (String s : split) {
//获取本级sid获取本级部门信息
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(s);
if(sysOrganization == null){
sysStaffOrgService.delByOrgSid(s);
}else{
//从本级部门信息中获取上级sid
String psid = sysOrganization.getPsid();
//从本级部门信息中获取本级部门名称
String bjName = sysOrganization.getName();
//获取上级sid获取上级部门信息
SysOrganization sysOrganization1 = sysOrganizationService.fetchBySid(psid);
//从上级部门信息中获取上级部门名称
String sjName = sysOrganization1.getName();
orgName += sjName + "-" + bjName + ",";
}
}
orgName = orgName.substring(0, orgName.length() - 1);
record.setOrgName(orgName);
}
}
return sysStaffinfoVoIPage;
}
public List<AppContactSysOrganizationVo> selectContactsByOrgsid(String sid) {
List<AppContactSysOrganizationVo> list = baseMapper.selectContactsByOrgsid(sid);
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getHeadImage())) {
vo.setHeadImage(fileUploadComponent.getUrlPrefix() + vo.getHeadImage());
}
});
return list;
}
/**
* 员工信息的新增保存
*
* @param dto 数据传输对象
* @return
*/
public ResultBean saveStaffInfo(SysStaffinfoDto dto) {
ResultBean rb = ResultBean.fireFail();
SysRoleVo sysRoleVo = sysRoleService.fetchByName("试用期员工");
if (sysRoleVo == null) {
return rb.setMsg("缺少默认试用期员工角色");
}
//员工类型
//String personTypeKey = dto.getPersonTypeKey();
String jobNumber = "";
SysStaffinfo sysStaffinfo = baseMapper.selectJobNumber();
if (sysStaffinfo == null) {
//无此员工类型的员工
jobNumber = addOne("0000");
} else {
jobNumber = sysStaffinfo.getJobNumber();
jobNumber = addOne(jobNumber);
}
//查询员工的手机号是否重复
SysStaffinfo sysStaffinfo1 = baseMapper.selectByMobile(dto.getMobile());
SysUser sysUser1 = sysUserService.selectByMobile(dto.getMobile());
if (sysStaffinfo1 != null || sysUser1 != null) {
return rb.setMsg("已存在手机号为" + dto.getMobile() + "的员工");
}
//查询是否存在该身份证号的员工
SysStaffinfo sysStaffinfo2 = baseMapper.selectByIdNo(dto.getIdNo());
if (sysStaffinfo2 != null) {
return rb.setMsg("已存在身份证号为" + dto.getIdNo() + "的员工");
}
//判断身份证号出生日期和填写的出生日期是否相同
String idNo = dto.getIdNo();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String birthday = simpleDateFormat.format(dto.getBirthday());
String substring = idNo.substring(6, 14);
if (!birthday.equals(substring)) {
return rb.setMsg("选择的出生日期和身份证出生日期不符,请重新选择");
}
//查询部门和岗位是否为空
if (dto.getSysStaffOrg() == null) {
return rb.setMsg("员工部门信息不能为空");
}
if (dto.getSysStaffPost() == null) {
return rb.setMsg("员工岗位信息不能为空");
}
Date joinCompnyDate = dto.getJoinCompnyDate();
if (joinCompnyDate == null) {
return rb.setMsg("员工入职日期不能为空");
}
//添加员工基础信息
SysStaffinfo sysStaffinfo3 = new SysStaffinfo();
dto.fillEntity(sysStaffinfo3);
sysStaffinfo3.setJobNumber(jobNumber);
sysStaffinfo3.setPinYinName(PinYinUtils.getPinYinName(dto.getName()));
sysStaffinfo3.setFirstPinYinLabel(PinYinUtils.getCharDuoPinYinChar(dto.getName()));
//是否意外险参保
if (dto.getIsHaveInsurance() != null) {
//意外险参保:是
if (dto.getIsHaveInsurance() == 1) {
//意外险参保地以及意外险参保开始时间和结束时间不能为空
if (dto.getInsuranceStartDate() == null) {
return rb.setMsg("意外险参保时间不能为空");
}
if (dto.getInsuranceEndDate() == null) {
return rb.setMsg("意外险终止时间不能为空");
}
if (StringUtils.isBlank(dto.getInsuranceAddr())) {
return rb.setMsg("意外险参保地不能为空");
}
} else {
sysStaffinfo3.setIsHaveInsurance(0);
sysStaffinfo3.setInsuranceStartDate(null);
sysStaffinfo3.setInsuranceEndDate(null);
sysStaffinfo3.setInsuranceAddr(null);
}
}
if ("01".equals(dto.getPersonTypeKey())) {
if (dto.getQuitDate() == null) {
return rb.setMsg("离职日期不能为空");
}
if (StringUtils.isBlank(dto.getQuitReason())) {
return rb.setMsg("离职原因不能为空");
}
}
//身份证(人像面)
if (StringUtils.isNotBlank(sysStaffinfo3.getIdCardA())) {
if (sysStaffinfo3.getIdCardA().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo3.setIdCardA(sysStaffinfo3.getIdCardA().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//身份证(国徽面)
if (StringUtils.isNotBlank(sysStaffinfo3.getIdCardB())) {
if (sysStaffinfo3.getIdCardB().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo3.setIdCardB(sysStaffinfo3.getIdCardB().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//学历证书diploma
if (StringUtils.isNotBlank(sysStaffinfo3.getDiploma())) {
if (sysStaffinfo3.getDiploma().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo3.setDiploma(sysStaffinfo3.getDiploma().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//学位证书degreeCertificate
if (StringUtils.isNotBlank(sysStaffinfo3.getDegreeCertificate())) {
if (sysStaffinfo3.getDegreeCertificate().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo3.setDegreeCertificate(sysStaffinfo3.getDegreeCertificate().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//前公司离职证明leaveCertificate
if (StringUtils.isNotBlank(sysStaffinfo3.getLeaveCertificate())) {
if (sysStaffinfo3.getLeaveCertificate().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo3.setLeaveCertificate(sysStaffinfo3.getLeaveCertificate().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//员工照片
if (StringUtils.isNotBlank(sysStaffinfo3.getPhoto())) {
if (sysStaffinfo3.getPhoto().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo3.setPhoto(sysStaffinfo3.getPhoto().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//增加员工的关联的部门信息
SysStaffOrg sysStaffOrg = new SysStaffOrg();
SysStaffOrgDto sysStaffOrgDto = dto.getSysStaffOrg();
if (StringUtils.isBlank(sysStaffOrgDto.getOrgName())) {
return rb.setMsg("所在部门不能为空");
}
sysStaffOrgDto.fillEntity(sysStaffOrg);
sysStaffOrg.setStaffSid(sysStaffinfo3.getSid());
sysStaffOrg.setManageType("3");
sysStaffOrgService.save(sysStaffOrg);
//增加员工的关联的岗位信息
SysStaffPost sysStaffPost = new SysStaffPost();
SysStaffPostDto sysStaffPostDto = dto.getSysStaffPost();
if (StringUtils.isBlank(sysStaffPostDto.getPostSid())) {
return rb.setMsg("岗位不能为空");
}
save(sysStaffinfo3);
//添加用户信息
SysUser sysUser = new SysUser();
sysUser.setStaffSid(sysStaffinfo3.getSid());
sysUser.setUserName(jobNumber);
sysUser.setMobile(sysStaffinfo3.getMobile());
sysUser.setUserType(1);
String password = sysStaffinfo3.getMobile().substring(5, 11);
String md5 = Encodes.md5(password);
sysUser.setPassword(md5);
boolean isSave = sysUserService.save(sysUser);
sysStaffPostDto.fillEntity(sysStaffPost);
sysStaffPost.setStaffSid(sysStaffinfo3.getSid());
sysStaffPost.setStartDate(new Date());
sysStaffPostService.save(sysStaffPost);
if (!isSave) {
return rb.setMsg("添加员工信息失败");
}
SysUserRole sysUserRole = new SysUserRole();
sysUserRole.setUserSid(sysUser.getSid());
sysUserRole.setRoleSid(sysRoleVo.getSid());
sysUserRoleService.save(sysUserRole);
return rb.success().setMsg("添加员工信息成功");
}
/**
* 字符串+1方法该方法将其结尾的整数+1,适用于任何以整数结尾的字符串,不限格式不限分隔符
*
* @param testStr +1的字符串
* @return +1后的字符串
* @throws NumberFormatException
*/
public static String addOne(String testStr) {
//根据不是数字的字符拆分字符串
String[] strs = testStr.split("[^0-9]");
//取出最后一组数字
String numStr = strs[strs.length - 1];
//如果最后一组没有数字(也就是不以数字结尾),抛NumberFormatException异常
if (numStr != null && numStr.length() > 0) {
//取出字符串的长度
int n = numStr.length();
//将该数字加一
int num = Integer.parseInt(numStr) + 1;
String added = String.valueOf(num);
n = Math.min(n, added.length());
//拼接字符串
return testStr.subSequence(0, testStr.length() - n) + added;
} else {
throw new NumberFormatException();
}
}
/**
* 员工信息修改保存
*
* @param dto 数据传输对象
* @param sid 员工信息sid
* @return
*/
public ResultBean updateStaffInfo(SysStaffinfoDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
//查询该人员的组织机构list
List<SysStaffOrgVo> sysStaffOrgVos = sysStaffOrgService.selectByStaffS(sid);
List<String> orgList = new ArrayList<>();
if (sysStaffOrgVos.size() > 0) {
for (SysStaffOrgVo vv : sysStaffOrgVos) {
// String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid());
String orgSid = vv.getOrgSid();
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid);
if (sysOrganization != null) {
orgList.add(orgSid);
} else {
continue;
}
}
}
//根据员工sid查询员工的信息
SysStaffinfo sysStaffinfo = fetchBySid(sid);
if (sysStaffinfo == null) {
return rb.setMsg("此员工信息不存在");
}
//查询员工的手机号是否重复
SysStaffinfo sysStaffinfo2 = baseMapper.selectByMobileAndSid(dto.getMobile(), sid);
if (sysStaffinfo2 != null) {
return rb.setMsg("已存在手机号为" + dto.getMobile() + "的员工");
}
//查询是否存在该身份证号的员工
SysStaffinfo sysStaffinfo3 = baseMapper.selectByIdNoAndSid(dto.getIdNo(), sid);
if (sysStaffinfo3 != null) {
return rb.setMsg("已存在身份证号为" + dto.getIdNo() + "的员工");
}
//更新员工基础信息
BeanUtil.copyProperties(dto, sysStaffinfo);
sysStaffinfo.setJobNumber(dto.getJobNumber());
sysStaffinfo.setPinYinName(PinYinUtils.getPinYinName(dto.getName()));
sysStaffinfo.setFirstPinYinLabel(PinYinUtils.getCharDuoPinYinChar(dto.getName()));
//是否意外险参保
if (dto.getIsHaveInsurance() != null) {
//意外险参保:是
if (dto.getIsHaveInsurance() == 1) {
//意外险参保地以及意外险参保开始时间和结束时间不能为空
if (dto.getInsuranceStartDate() == null) {
return rb.setMsg("意外险参保时间不能为空");
}
if (dto.getInsuranceEndDate() == null) {
return rb.setMsg("意外险终止时间不能为空");
}
if (StringUtils.isBlank(dto.getInsuranceAddr())) {
return rb.setMsg("意外险参保地不能为空");
}
} else {
sysStaffinfo.setIsHaveInsurance(0);
sysStaffinfo.setInsuranceStartDate(null);
sysStaffinfo.setInsuranceEndDate(null);
sysStaffinfo.setInsuranceAddr(null);
}
}
if ("01".equals(dto.getPersonTypeKey())) {
if (dto.getQuitDate() == null) {
return rb.setMsg("离职日期不能为空");
}
if (StringUtils.isBlank(dto.getQuitReason())) {
return rb.setMsg("离职原因不能为空");
}
}
//身份证(人像面)
if (StringUtils.isNotBlank(sysStaffinfo.getIdCardA())) {
if (sysStaffinfo.getIdCardA().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo.setIdCardA(sysStaffinfo.getIdCardA().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//身份证(国徽面)
if (StringUtils.isNotBlank(sysStaffinfo.getIdCardB())) {
if (sysStaffinfo.getIdCardB().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo.setIdCardB(sysStaffinfo.getIdCardB().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//学历证书diploma
if (StringUtils.isNotBlank(sysStaffinfo.getDiploma())) {
if (sysStaffinfo.getDiploma().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo.setDiploma(sysStaffinfo.getDiploma().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//学位证书degreeCertificate
if (StringUtils.isNotBlank(sysStaffinfo.getDegreeCertificate())) {
if (sysStaffinfo.getDegreeCertificate().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo.setDegreeCertificate(sysStaffinfo.getDegreeCertificate().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//前公司离职证明leaveCertificate
if (StringUtils.isNotBlank(sysStaffinfo.getLeaveCertificate())) {
if (sysStaffinfo.getLeaveCertificate().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo.setLeaveCertificate(sysStaffinfo.getLeaveCertificate().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//员工照片
if (StringUtils.isNotBlank(sysStaffinfo.getPhoto())) {
if (sysStaffinfo.getPhoto().contains(fileUploadComponent.getUrlPrefix())) {
sysStaffinfo.setPhoto(sysStaffinfo.getPhoto().replace(fileUploadComponent.getUrlPrefix(), ""));
}
}
//更新用户信息
sysUserService.updateByStaffSid(dto.getJobNumber(), sysStaffinfo.getMobile(), sid);
//更新员工的关联的部门信息
SysStaffOrgDto sysStaffOrgDto = dto.getSysStaffOrg();
int count = sysStaffOrgService.selectByStaffAndOrg(sysStaffOrgDto.getOrgSidPath(), sid, "2");
if (count > 0) {
sysStaffOrgService.deleteByStaffSidAndType(sysStaffOrgDto.getOrgSidPath(), sid, "2");
}
SysStaffOrg sysStaffOrg = sysStaffOrgService.getOrgByStaffSidAndPath(sid,sysStaffOrgDto.getOrgSidPath());
if(sysStaffOrg == null){
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgService.selectAllByStaffSid(sid);
sysStaffOrg = staffOrgResultBean.getData();
if(sysStaffOrg == null){
sysStaffOrg = new SysStaffOrg();
sysStaffOrg.setStaffSid(sid);
BeanUtil.copyProperties(sysStaffOrgDto,sysStaffOrg);
sysStaffOrg.setManageType("3");
sysStaffOrgService.insert(sysStaffOrg);
}else{
BeanUtil.copyProperties(sysStaffOrgDto,sysStaffOrg);
sysStaffOrg.setManageType("3");
sysStaffOrgService.updateById(sysStaffOrg);
}
}else{
BeanUtil.copyProperties(sysStaffOrgDto,sysStaffOrg);
sysStaffOrg.setManageType("3");
sysStaffOrgService.updateById(sysStaffOrg);
}
//更新员工的关联的岗位信息
SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(sid);
SysStaffPost sysStaffPost = sysStaffPostService.selectByStaffSid(sid, staffPostDetailsVo.getPostSid());
SysStaffPostDto sysStaffPostDto = dto.getSysStaffPost();
sysStaffPostService.updateBySid(sysStaffPostDto, sysStaffPost.getSid());
boolean isUpdate = updateById(sysStaffinfo);
if (!isUpdate) {
return rb.setMsg("更新员工信息失败");
}
List<SysStaffOrgVo> sysStaffOrgVos1 = sysStaffOrgService.selectByStaffS(sid);
List<String> orgList1 = new ArrayList<>();
if (sysStaffOrgVos1.size() > 0) {
for (SysStaffOrgVo vv : sysStaffOrgVos1) {
// String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid());
String orgSid = vv.getOrgSid();
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid);
if (sysOrganization != null) {
orgList1.add(orgSid);
} else {
continue;
}
}
}
List<String> reduce1 = orgList.stream().filter(item -> !orgList1.contains(item)).collect(toList());
if (reduce1.size() > 0) {
//根据staffSid查询token
String token = sysUserService.selectByStaffsid(sid).getToken();
//清空该token
redisUtil.remove(token);
}
return rb.success().setMsg("更新员工信息成功");
}
/**
* 根据员工sid查询员工信息
*
* @param sid 员工sid
* @return
*/
public SysStaffinfoDetailsVo selectDetailsBySid(String sid) {
String path = fileUploadComponent.getUrlPrefix();
SysStaffinfoDetailsVo sysStaffinfoDetailsVo = baseMapper.selectDetailsBySid(sid, path);
if (sysStaffinfoDetailsVo != null) {
List<SysStaffOrg> sysStaffOrgList = sysStaffOrgService.getOrgByStaffSidList(sid);
String orgSid = "";
String type = "";
for (SysStaffOrg s : sysStaffOrgList) {
if ("3".equals(s.getManageType())) {
orgSid = s.getOrgSid();
type = s.getManageType();
break;
} else if ("1".equals(s.getManageType())) {
orgSid = s.getOrgSid();
type = s.getManageType();
break;
} else {
orgSid = s.getOrgSid();
type = s.getManageType();
}
}
SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(sid);
SysStaffOrgDetailsVo sysStaffOrgDetailsVo = sysStaffOrgService.selectByStaffByType(sid, orgSid, type);
SysStaffPostDetailsVo sysStaffPostDetailsVo = sysStaffPostService.selectByStaff(sid, staffPostDetailsVo.getPostSid());
if(sysStaffOrgDetailsVo != null){
sysStaffinfoDetailsVo.setSysStaffOrg(sysStaffOrgDetailsVo);
}else{
sysStaffinfoDetailsVo.setSysStaffOrg(new SysStaffOrgDetailsVo());
}
if(sysStaffPostDetailsVo != null){
sysStaffinfoDetailsVo.setSysStaffPost(sysStaffPostDetailsVo);
}else{
sysStaffinfoDetailsVo.setSysStaffPost(new SysStaffPostDetailsVo());
}
}
return sysStaffinfoDetailsVo;
}
/**
* 员工信息的删除操作即设置员工类型为离职状态
*
* @param sysStaffQuery 员工sid
* @return
*/
public int del(SysStaffQuery sysStaffQuery) {
int count = 0;
//员工类型离职状态
String personTypeKey = "01";
String personType = "离职";
//String jobNumber = "";
//SysStaffinfo sysStaffinfo = baseMapper.selectJobNumber(personTypeKey);
/* if (sysStaffinfo == null) {
//无此员工类型的员工
jobNumber = addOne("9000");
} else {
jobNumber = sysStaffinfo.getJobNumber();
jobNumber = addOne(jobNumber);
}
jobNumber = sysStaffinfo.getJobNumber();*/
//更新员工的员工状态以及员工工号
int j = baseMapper.updateBySid(personType, personTypeKey, sysStaffQuery.getSid(), sysStaffQuery.getQuitDate(), sysStaffQuery.getQuitReason());
//根据staffSid查询token
String token = sysUserService.selectByStaffsid(sysStaffQuery.getSid()).getToken();
if(StringUtils.isNotBlank(token)){
//清空该token
redisUtil.remove(token);
}
//更新用户表中该员工的员工工号
//sysUserService.updateByStaSid(jobNumber, sysStaffQuery.getSid());
if (j > 0) {
count++;
}
return count;
}
public ResultBean<List<PcSysStaffVo>> selectStaffList(PcSysStaffQuery pcSysStaffQuery) {
ResultBean<List<PcSysStaffVo>> rb = ResultBean.fireFail();
//根据当前staffSid查询分公司sid
String orgSid = "";
List<PcSysStaffVo> list = new ArrayList<>();
ResultBean<String> stringResultBean = sysStaffOrgService.selectSidPathByStaffSid(pcSysStaffQuery.getStaffSid());
if (stringResultBean.getSuccess()) {
orgSid = stringResultBean.getData();
}
if (StringUtils.isNotBlank(orgSid)) {
list = baseMapper.selectStaffList(orgSid);
}
return rb.success().setData(list);
}
public List<Map<String, String>> getStaffName(String staffName,String deptSid) {
QueryWrapper<Map<String, Object>> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(staffName)) {
qw.like("ss.name", staffName);
}
qw.eq("ss.isDelete", 0);
qw.ne("sso.orgSid", deptSid);
qw.ne("ss.personTypeKey","01");
return baseMapper.getStaffName(qw);
}
public List<Map<String, String>> getStaffNameByDeptSid(String staffName, String deptSid) {
QueryWrapper<Map<String, Object>> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(staffName)) {
qw.like("ss.name", staffName);
}
qw.eq("sso.orgSid", deptSid);
qw.eq("ss.isDelete", 0);
qw.ne("ss.personTypeKey","01");
return baseMapper.getStaffNameByDeptSid(qw);
}
public PagerVo<AppSysStaffVo> getUserList(PagerQuery<AppSysStaffQuery> pagerQuery) {
IPage<SysStaffinfo> page = PagerUtil.queryToPage(pagerQuery);
AppSysStaffQuery params = pagerQuery.getParams();
QueryWrapper<AppSysStaffVo> qw = new QueryWrapper<>();
String orgSid = "";
if (params != null) {
if(StringUtils.isNotBlank(params.getOrgPath())){
String orgPath = params.getOrgPath();
orgSid = sysStaffOrgService.getOrgSidByPath(orgPath).getData();
}
if (StringUtils.isNotBlank(params.getName())) {
qw.like("si.name", params.getName());
}
if (params.getSelectSid() != null && params.getSelectSid().size() > 0){
qw.notIn("su.sid",params.getSelectSid());
}
if(params.getState() == 0){
qw.eq("si.personTypeKey","02");
}
}
IPage<AppSysStaffVo> pagging = baseMapper.getUserList(page, qw, orgSid);
List<AppSysStaffVo> list = pagging.getRecords();
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
for (AppSysStaffVo vo : list) {
String headImage = vo.getHeadImage();
if (StringUtils.isNotBlank(headImage)) {
if (!headImage.contains(fileUploadComponent.getUrlPrefix())) {
headImage = fileUploadComponent.getUrlPrefix() + headImage;
}
vo.setUserImage(headImage);
}
}
}
PagerVo<AppSysStaffVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<List<AppSysStaffVo>> getGressionUserList(String userSid, String orgPath) {
ResultBean<List<AppSysStaffVo>> rb = ResultBean.fireFail();
String useOrgSid = "";
if(StringUtils.isNotBlank(orgPath)){
useOrgSid = sysStaffOrgService.getOrgSidByPath(orgPath).getData();
}else{
useOrgSid = sysStaffOrgService.getPathSidByUserSid(userSid).getData();
}
List<AppSysStaffVo> list = baseMapper.getGressionUserList(useOrgSid);
return rb.success().setData(list);
}
public ResultBean<List<PcSysStaffVo>> selectStaffLists() {
ResultBean<List<PcSysStaffVo>> rb = ResultBean.fireFail();
List<PcSysStaffVo> list = baseMapper.selectStaffLists();
list.removeAll(Collections.singleton(null));
return rb.success().setData(list);
}
public ResultBean<List<PcSysStaffVo>> selectStaffListss() {
ResultBean<List<PcSysStaffVo>> rb = ResultBean.fireFail();
List<PcSysStaffVo> list = baseMapper.selectStaffListss();
list.removeAll(Collections.singleton(null));
return rb.success().setData(list);
}
}

47
src/main/java/com/yxt/user/biz/sysstaffinfo/SysStaffinfoVo.java

@ -0,0 +1,47 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffinfoVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoVo <br/>
* Description: 人员基础信息表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "人员基础信息表 视图数据对象", description = "人员基础信息表 视图数据对象")
@Data
public class SysStaffinfoVo implements Vo {
private static final long serialVersionUID = -1250862291306247261L;
@ApiModelProperty(value = "员工sid")
private String sid;
@ApiModelProperty(value = "员工编号")
private String jobNumber;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("员工类型")
private String personType;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty(value = "入职日期")
private String joinCompnyDate;
@ApiModelProperty(value = "部门")
private String orgName;
@ApiModelProperty(value = "岗位")
private String postName;
@ApiModelProperty(value = "部门sid")
private String orgSid;
}

20
src/main/java/com/yxt/user/biz/sysstaffinfo/WxBase64Query.java

@ -0,0 +1,20 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/10/6 16:58
* @description
*/
@Data
public class WxBase64Query implements Query {
private static final long serialVersionUID = 4307651151043379231L;
// @ApiModelProperty(value = "base64")
// private String base64File;
@ApiModelProperty(value = "图片全路径")
private String imageUrl;
}

37
src/main/java/com/yxt/user/biz/sysstaffinfo/WxSysInfoQuery.java

@ -0,0 +1,37 @@
package com.yxt.user.biz.sysstaffinfo;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author dimengzhe
* @date 2021/10/6 12:08
* @description 客户端上传身份证
*/
@Data
public class WxSysInfoQuery implements Query {
private static final long serialVersionUID = 7273642052588903116L;
@ApiModelProperty(value = "用户sid", required = true)
@NotBlank(message = "用户sid不能为空")
private String userSid;
@ApiModelProperty(value = "身份证(人像面)", required = true)
@NotBlank(message = "身份证(人像面)不能为空")
private String idCardA;
@ApiModelProperty(value = "身份证(国徽面)", required = true)
@NotBlank(message = "身份证(国徽面)不能为空")
private String idCardB;
@ApiModelProperty(value = "身份证地址", required = true)
@NotBlank(message = "身份证地址不能为空")
private String idAddrs;
@ApiModelProperty(value = "证件有效期", required = true)
@NotBlank(message = "证件有效期不能为空")
private String idTerm;
@ApiModelProperty(value = "生日")
private String birth;
@ApiModelProperty(value = "民族")
private String national;
}

30
src/main/java/com/yxt/user/biz/sysstaffinfo/app/AppSysStaffQuery.java

@ -0,0 +1,30 @@
package com.yxt.user.biz.sysstaffinfo.app;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/6/11 9:44
* @Description
*/
@Data
public class AppSysStaffQuery implements Query {
private static final long serialVersionUID = 4724669786231817593L;
@ApiModelProperty(value = "用户名称")
private String name;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty("组织机构sid")
private String orgPath;
@ApiModelProperty("已选人员sid")
private List<String> selectSid;
@ApiModelProperty("state:1是所有,0是本分公司")
private int state;
}

30
src/main/java/com/yxt/user/biz/sysstaffinfo/app/AppSysStaffVo.java

@ -0,0 +1,30 @@
package com.yxt.user.biz.sysstaffinfo.app;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/6/11 9:29
* @Description
*/
@Data
public class AppSysStaffVo implements Vo {
private static final long serialVersionUID = -4051562700421770402L;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "用户名称")
private String userName;
@ApiModelProperty(value = "头像")
private String userImage;
@ApiModelProperty(value = "电话")
private String userMobile;
@ApiModelProperty(value = "部门")
private String department;
@ApiModelProperty(value = "岗位")
private String position;
@ApiModelProperty(value = "头像:后端内部使用")
private String headImage;
}

46
src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrg.java

@ -0,0 +1,46 @@
package com.yxt.user.biz.sysstafforg;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffOrg.java <br/>
* Class: com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg <br/>
* Description: 员工部门关联表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "员工部门关联表", description = "员工部门关联表")
@TableName("sys_staff_org")
@Data
public class SysStaffOrg extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("部门sid")
private String orgSid;
@ApiModelProperty("部门名称")
private String orgName;
@ApiModelProperty("人员sid")
private String staffSid;
@ApiModelProperty("部门路径")
private String orgSidPath;
@ApiModelProperty("部门名称路径")
private String orgNamePath;
@ApiModelProperty("管理类型:1、主管。2、分管。3、员工")
private String manageType;
}

30
src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgByUserVo.java

@ -0,0 +1,30 @@
package com.yxt.user.biz.sysstafforg;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffOrgVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo <br/>
* Description: 员工部门关联表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "员工部门关联表 视图数据对象", description = "员工部门关联表 视图数据对象")
@Data
public class SysStaffOrgByUserVo implements Vo {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("员工姓名")
private String name;
}

28
src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgDetailsVo.java

@ -0,0 +1,28 @@
package com.yxt.user.biz.sysstafforg;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/2/11 16:15
* @Description 员工部门详情信息
*/
@Data
public class SysStaffOrgDetailsVo implements Vo {
private static final long serialVersionUID = 5354841525724609428L;
@ApiModelProperty("部门sid")
private String orgSid;
@ApiModelProperty("部门名称")
private String orgName;
@ApiModelProperty("部门路径")
private String orgSidPath;
@ApiModelProperty("部门名称路径")
private String orgNamePath;
@ApiModelProperty(value = "部门编码")
private String orgCode;
@ApiModelProperty("管理类型:1、主管。2、分管。3、员工")
private String manageType;
}

42
src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgDto.java

@ -0,0 +1,42 @@
package com.yxt.user.biz.sysstafforg;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffOrgDto.java <br/>
* Class: com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgDto <br/>
* Description: 员工部门关联表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "员工部门关联表 数据传输对象", description = "员工部门关联表 数据传输对象")
@Data
public class SysStaffOrgDto implements Dto {
private static final long serialVersionUID = 1403491378761015027L;
@ApiModelProperty("部门sid")
private String orgSid;
@ApiModelProperty("部门名称")
@NotBlank(message = "部门名称不能为空")
private String orgName;
@ApiModelProperty("部门路径")
private String orgSidPath;
@ApiModelProperty("部门名称路径")
private String orgNamePath;
@ApiModelProperty(value = "部门编码")
private String orgCode;
@ApiModelProperty(value = "管理类型:1、主管。2、分管。3、员工", example = "3")
private String manageType;
}

117
src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgMapper.java

@ -0,0 +1,117 @@
package com.yxt.user.biz.sysstafforg;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.user.biz.sysuserdefaultorg.SysOrgPathList;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffOrgMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgMapper <br/>
* Description: 员工部门关联表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SysStaffOrgMapper extends BaseMapper<SysStaffOrg> {
IPage<SysStaffOrgVo> selectPageVo(IPage<SysStaffOrg> page, @Param(Constants.WRAPPER) Wrapper<SysStaffOrg> qw);
List<SysStaffOrgVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysStaffOrg> qw);
@Select("select * from sys_staff_org")
List<SysStaffOrgVo> selectListVo();
@Delete("delete from sys_staff_org where orgSid=#{orgSid} ")
void delByOrgSid(@Param("orgSid") String sid);
@Select("select staffOrg.manageType as manageType,staffOrg.orgSid as orgSid,staffinfo.name as staffName,staffinfo.sid as staffSid " +
"from sys_staff_org staffOrg left join sys_staffinfo staffinfo on staffinfo.sid=staffOrg.staffSid " +
"where staffOrg.orgSid=#{orgSid} ")
List<SysStaffOrgVo> fetchByOrgSid(@Param("orgSid") String orgSid);
@Delete("delete from sys_staff_org where staffSid=#{staffSid} ")
void deleteByStaffSid(String staffSid);
List<SysStaffOrgVo> staffinfoList(@Param(Constants.WRAPPER) QueryWrapper<SysStaffOrg> queryWrapper);
@Select("select * from sys_staff_org where staffSid=#{staffSid}")
List<SysStaffOrgVo> getSysStaffOrgListByStaffSid(@Param("staffSid") String staffSid);
@Select("select * from sys_staff_org where staffSid=#{staffSid} and manageType = '3'")
List<SysStaffOrgVo> getSysStaffOrgListByStaff(@Param("staffSid") String staffSid);
/**
* 根据员工sid更新员工信息
*
* @param sid 员工sid
* @return
*/
SysStaffOrg selectByStaffSid(@Param("sid") String sid, @Param("orgSid") String orgSid);
/**
* 员工部门信息详情
*
* @param sid 员工sid
* @return
*/
SysStaffOrgDetailsVo selectByStaff(@Param("sid") String sid, @Param("orgSid") String orgSid);
SysStaffOrgDetailsVo selectByStaffByType(@Param("sid") String sid, @Param("orgSid") String orgSid, @Param("type") String type);
@Select("SELECT GROUP_CONCAT(DISTINCT(orgSid)) FROM sys_staff_org WHERE staffSid=#{staffSid}")
String getSysStaffOrgSidListByStaffSid(@Param("staffSid") String staffSid);
String selectBySidPathByStaffSid(String applySid);
@Select("select * from sys_staff_org where staffSid=#{staffSid} AND manageType != 2")
SysStaffOrg selectAllByStaffSid(String staffSid);
@Select("select * from sys_staff_org where staffSid=#{sid} and manageType = '3' order by id limit 1")
SysStaffOrg getOrgByStaffSid(String sid);
@Select("select * from sys_staff_org where staffSid=#{sid} and orgSidPath = #{path} ")
SysStaffOrg getOrgByStaffSidAndPath(@Param("sid") String sid, @Param("path") String path);
@Select("select * from sys_staff_org where staffSid=#{sid}")
List<SysStaffOrg> getOrgByStaffSidList(String sid);
@Delete("delete from sys_staff_org where orgSid=#{sid} and (manageType = 1 or manageType = 2)")
void delZGAndFGByOrgSid(String sid);
int selectByStaffAndOrg(@Param("sid") String sid, @Param("staffSid") String zgStaffSid, @Param("type") String type);
int deleteByStaffSidAndType(@Param("sid") String sid, @Param("staffSid") String zgStaffSid, @Param("type") String type);
List<SysStaffOrgVo> selectByStaffS(String staffSid);
List<String> selectByOrgSid(String sid);
String selectByUserSid(String userSid);
List<SysStaffOrg> selectOrgBySid(@Param("orgPath") String orgPath, @Param("staffSid") String staffSid);
List<SysOrgPathList> getList(String staffSid);
List<SysStaffOrg> selectStaffByOrgSid(@Param("orgSid") String sid, @Param("type") String type);
List<String> selectStaffByOrg(String orgSid);
List<SysStaffOrgByUserVo> selAllByOrgPath(@Param(Constants.WRAPPER) QueryWrapper qw);
List<SysStaffOrgByUserVo> selAllByOrgSidPath(String orgSidPath);
}

161
src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgMapper.xml

@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.user.biz.sysstafforg.SysStaffOrgMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgVo">
SELECT *
FROM sys_staff_org
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgVo">
SELECT *
FROM sys_staff_org
<where>
${ew.sqlSegment}
</where>
</select>
<select id="staffinfoList" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgVo">
SELECT DISTINCT ss.`name` staffName, ss.`mobile`, ss.sid staffSid
FROM `sys_staff_org` sso
LEFT JOIN `sys_staffinfo` ss ON sso.`staffSid` = ss.`sid`
LEFT JOIN `sys_organization` so ON so.`sid` = sso.`orgSid`
<where>
${ew.sqlSegment}
</where>
</select>
<!--根据员工sid更新员工的部门信息-->
<select id="selectByStaffSid" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrg">
select *
from sys_staff_org
where staffSid = #{sid}
and orgSid = #{orgSid}
</select>
<select id="selectByStaff" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgDetailsVo">
select sso.orgSid, sso.orgName, sso.orgNamePath, sso.orgNamePath, sso.manageType, so.orgCode
from sys_staff_org sso
left join sys_organization so on sso.orgSid = so.sid
where sso.staffSid = #{sid}
and sso.orgSid = #{orgSid}
</select>
<select id="selectByStaffByType" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgDetailsVo">
select sso.orgSid, sso.orgName, sso.orgNamePath, sso.manageType, so.orgCode, sso.orgSidPath
from sys_staff_org sso
left join sys_organization so on sso.orgSid = so.sid
where sso.staffSid = #{sid}
and sso.orgSid = #{orgSid}
and sso.manageType = #{type}
</select>
<!-- <select id="selectBySidPathByStaffSid" resultType="java.lang.String">
select orgSidPath
from anrui_portal.sys_staff_org
where staffSid = #{applySid}
order by id desc
limit 1
</select>-->
<select id="selectBySidPathByStaffSid" resultType="java.lang.String">
select orgSid
from anrui_portal.sys_staff_org
where staffSid = #{applySid}
and manageType = '3'
order by id desc limit 1
</select>
<select id="selectByStaffAndOrg" resultType="int">
select count(*)
from sys_staff_org sso
where sso.staffSid = #{staffSid}
and sso.manageType = #{type}
and orgSidPath = #{sid}
</select>
<delete id="deleteByStaffSidAndType">
delete
from sys_staff_org
where staffSid = #{staffSid}
and manageType = #{type}
and orgSidPath = #{sid}
</delete>
<select id="selectByStaffS" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgVo">
select *
from sys_staff_org
where staffSid = #{staffSid}
</select>
<select id="selectByOrgSid" resultType="java.lang.String">
select staffSid
from sys_staff_org
where orgSid = #{sid}
and manageType = 2
</select>
<select id="selectByUserSid" resultType="java.lang.String">
select orgSid
from sys_staff_org so
left join sys_user su on su.staffSid = so.staffSid
left join sys_staffinfo si on si.sid = su.staffSid
where so.manageType = '3'
and su.sid = #{userSid}
</select>
<select id="selectOrgBySid" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrg">
select *
from sys_staff_org sso
where sso.orgSidPath = #{orgPath}
and sso.staffSid = #{staffSid}
</select>
<select id="getList" resultType="com.yxt.user.biz.sysuserdefaultorg.SysOrgPathList">
select sid as staffOrgSid, orgSidPath, orgNamePath
from sys_staff_org
where staffSid = #{staffSid}
</select>
<select id="selectStaffByOrgSid" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrg">
select *
from sys_staff_org
where orgSid = #{orgSid}
and manageType = #{type}
</select>
<select id="selectStaffByOrg" resultType="java.lang.String">
select staffSid
from sys_staff_org
where orgSidPath like concat('%', #{orgSid}, '%')
</select>
<select id="selAllByOrgPath" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgByUserVo">
SELECT
su.`sid`,
ss.`name`
FROM
sys_staff_org sso
LEFT JOIN sys_user su
ON sso.`staffSid` = su.`staffSid`
LEFT JOIN sys_user_role sur
ON su.`sid` = sur.`userSid`
LEFT JOIN sys_staffinfo ss
ON sso.`staffSid` = ss.`sid`
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selAllByOrgSidPath" resultType="com.yxt.user.biz.sysstafforg.SysStaffOrgByUserVo">
SELECT su.sid,
ss.`name`
FROM sys_staff_org so
LEFT JOIN sys_user su
ON so.`staffSid` = su.`staffSid`
LEFT JOIN sys_staffinfo ss
ON so.`staffSid` = ss.`sid`
WHERE so.`orgSidPath` = #{orgSidPath}
</select>
</mapper>

44
src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgQuery.java

@ -0,0 +1,44 @@
package com.yxt.user.biz.sysstafforg;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffOrgQuery.java <br/>
* Class: com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgQuery <br/>
* Description: 员工部门关联表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "员工部门关联表 查询条件", description = "员工部门关联表 查询条件")
@Data
public class SysStaffOrgQuery implements Query {
@ApiModelProperty("部门sid")
private String orgSid;
@ApiModelProperty("部门名称")
private String orgName;
@ApiModelProperty("人员sid")
private String staffSid;
@ApiModelProperty("部门路径")
private String orgSidPath;
@ApiModelProperty("部门名称路径")
private Integer orgNamePath;
@ApiModelProperty("管理类型:1、主管。2、分管。3、员工")
private String manageType;
}

343
src/main/java/com/yxt/user/biz/sysstafforg/SysStaffOrgService.java

@ -0,0 +1,343 @@
package com.yxt.user.biz.sysstafforg;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.user.biz.sysorganization.SysOrganization;
import com.yxt.user.biz.sysstafforg.*;
import com.yxt.user.biz.sysuser.SysUserInfoVo;
import com.yxt.user.biz.sysuserdefaultorg.SysOrgPathList;
import com.yxt.user.biz.sysorganization.SysOrganizationService;
import com.yxt.user.biz.sysuser.SysUserService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffOrgService.java <br/>
* Class: com.yxt.user.biz.sysstafforg.SysStaffOrgService <br/>
* Description: 员工部门关联表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SysStaffOrgService extends MybatisBaseService<SysStaffOrgMapper, SysStaffOrg> {
@Autowired
private SysOrganizationService sysOrganizationService;
@Autowired
private SysUserService sysUserService;
public PagerVo<SysStaffOrg> listPage(PagerQuery<SysStaffOrgQuery> pq) {
SysStaffOrgQuery query = pq.getParams();
QueryWrapper<SysStaffOrg> qw = createQueryWrapper(query);
IPage<SysStaffOrg> page = PagerUtil.queryToPage(pq);
IPage<SysStaffOrg> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysStaffOrg> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysStaffOrg> listAll(SysStaffOrgQuery query) {
QueryWrapper<SysStaffOrg> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysStaffOrg> createQueryWrapper(SysStaffOrgQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysStaffOrg> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getOrgSid())) {
qw.eq("orgSid", query.getOrgSid());
}
if (StringUtils.isNotBlank(query.getOrgName())) {
qw.eq("orgName", query.getOrgName());
}
if (StringUtils.isNotBlank(query.getStaffSid())) {
qw.eq("staffSid", query.getStaffSid());
}
if (StringUtils.isNotBlank(query.getOrgSidPath())) {
qw.eq("orgSidPath", query.getOrgSidPath());
}
if (query.getOrgNamePath() != null) {
qw.eq("orgNamePath", query.getOrgNamePath());
}
if (StringUtils.isNotBlank(query.getManageType())) {
qw.eq("manageType", query.getManageType());
}
return qw;
}
public PagerVo<SysStaffOrgVo> listPageVo(PagerQuery<SysStaffOrgQuery> pq) {
SysStaffOrgQuery query = pq.getParams();
QueryWrapper<SysStaffOrg> qw = createQueryWrapper(query);
IPage<SysStaffOrg> page = PagerUtil.queryToPage(pq);
IPage<SysStaffOrgVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysStaffOrgVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysStaffOrgVo> listAllVo(SysStaffOrgQuery query) {
QueryWrapper<SysStaffOrg> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SysStaffOrgVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SysStaffOrgDto dto) {
SysStaffOrg entity = new SysStaffOrg();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public SysStaffOrgVo fetchByIdVo(String id) {
SysStaffOrg entity = this.fetchById(id);
SysStaffOrgVo vo = new SysStaffOrgVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public void delByOrgSid(String sid) {
baseMapper.delByOrgSid(sid);
}
public List<SysStaffOrgVo> fetchByOrgSid(String orgSid) {
List<SysStaffOrgVo> list = baseMapper.fetchByOrgSid(orgSid);
return list;
}
public void deleteByStaffSid(String staffSid) {
baseMapper.deleteByStaffSid(staffSid);
}
public List<SysStaffOrgVo> staffinfoList(SysStaffOrgQuery query) {
QueryWrapper<SysStaffOrg> queryWrapper = createQueryWrapper(query);
List<SysStaffOrgVo> list = baseMapper.staffinfoList(queryWrapper);
return list;
}
/**
* 根据员工sid部门信息
*
* @param sid 员工sid
* @return
*/
public SysStaffOrg selectByStaffSid(String sid, String orgSid) {
return baseMapper.selectByStaffSid(sid, orgSid);
}
/**
* 员工部门信息详情
*
* @param sid 员工sid
* @return
*/
public SysStaffOrgDetailsVo selectByStaff(String sid, String orgSid) {
return baseMapper.selectByStaff(sid, orgSid);
}
public SysStaffOrgDetailsVo selectByStaffByType(String sid, String orgSid, String type) {
return baseMapper.selectByStaffByType(sid, orgSid, type);
}
public List<SysStaffOrgVo> getSysStaffOrgListByStaffSid(String staffSid) {
return baseMapper.getSysStaffOrgListByStaffSid(staffSid);
}
public List<SysStaffOrgVo> getSysStaffOrgListByStaff(String staffSid) {
return baseMapper.getSysStaffOrgListByStaff(staffSid);
}
public String getSysStaffOrgSidListByStaffSid(String staffSid) {
return baseMapper.getSysStaffOrgSidListByStaffSid(staffSid);
}
/*public ResultBean<String> selectSidPathByStaffSid(String applySid) {
ResultBean<String> rb = ResultBean.fireFail();
String orgSidPath = baseMapper.selectBySidPathByStaffSid(applySid);
//根据部门路径循环遍历查询分公司的sid
List<String> list = Arrays.asList(orgSidPath.split("/"));
String sid = "";
for (int i = 0; i < list.size(); i++) {
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(list.get(i));
if (sysOrganization != null) {
if (sysOrganization.getIsDept() != null) {
if (sysOrganization.getIsDept() == 0 && !"0".equals(sysOrganization.getPsid())) {
sid = list.get(i);
break;
}
} else {
if ("0".equals(sysOrganization.getPsid())) {
sid = list.get(i);
break;
}
}
}
}
if (StringUtils.isBlank(sid)) {
return rb;
}
return rb.success().setData(sid);
}*/
public ResultBean<String> selectSidPathByStaffSid(String applySid) {
ResultBean<String> rb = ResultBean.fireFail();
String orgSid = baseMapper.selectBySidPathByStaffSid(applySid);
String orgPathSid = "";
if (StringUtils.isNotBlank(orgSid)) {
orgPathSid = getOrgByOrgSid(orgSid);
}
return rb.success().setData(orgPathSid);
}
public ResultBean<SysStaffOrg> selectAllByStaffSid(String staffSid) {
ResultBean rb = ResultBean.fireFail();
SysStaffOrg sysStaffOrg = baseMapper.selectAllByStaffSid(staffSid);
return rb.success().setData(sysStaffOrg);
}
public SysStaffOrg getOrgByStaffSid(String sid) {
return baseMapper.getOrgByStaffSid(sid);
}
public SysStaffOrg getOrgByStaffSidAndPath(String sid, String path) {
return baseMapper.getOrgByStaffSidAndPath(sid, path);
}
public List<SysStaffOrg> getOrgByStaffSidList(String sid) {
return baseMapper.getOrgByStaffSidList(sid);
}
/**
* 根据用户sid获取分公司sid
*
* @param applySid 用户sid
* @return
*/
public ResultBean<String> getPathSidByUserSid(String applySid) {
ResultBean<String> rb = ResultBean.fireFail();
SysUserInfoVo sysUserInfoVo = sysUserService.selectUserInfoByUserSid(applySid);
if (sysUserInfoVo == null) {
return rb;
}
ResultBean<String> resultBean = selectSidPathByStaffSid(sysUserInfoVo.getStaffSid());
return resultBean;
}
public String getOrgByOrgSid(String orgSid) {
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid);
if(sysOrganization == null){
return "0";
}
if ("0".equals(sysOrganization.getPsid())) {
return "0";
}
if (sysOrganization.getIsDept() == 0) {
return sysOrganization.getSid();
}
return getOrgByOrgSid(sysOrganization.getPsid());
}
public void delZGAndFGByOrgSid(String sid) {
baseMapper.delZGAndFGByOrgSid(sid);
}
/**
* 查询该组织中是否存在该人员的该种类型关系
*
* @param sid 组织机构sid
* @param zgStaffSid 人员sid
* @param type 主管分管员工
* @return
*/
public int selectByStaffAndOrg(String sid, String zgStaffSid, String type) {
return baseMapper.selectByStaffAndOrg(sid, zgStaffSid, type);
}
public int deleteByStaffSidAndType(String orgSid, String zgStaffSid, String type) {
return baseMapper.deleteByStaffSidAndType(orgSid, zgStaffSid, type);
}
public List<SysStaffOrgVo> selectByStaffS(String staffSid) {
return baseMapper.selectByStaffS(staffSid);
}
public List<String> selectByOrgSid(String sid) {
return baseMapper.selectByOrgSid(sid);
}
public String selectByUserSid(String userSid) {
return baseMapper.selectByUserSid(userSid);
}
public List<SysStaffOrg> selectOrgBySid(String orgPath, String staffSid) {
return baseMapper.selectOrgBySid(orgPath, staffSid);
}
public ResultBean<String> getOrgSidByPath(String orgPath) {
ResultBean<String> rb = ResultBean.fireFail();
//根据用户全路径获取分公司sid
List<String> stringList = Arrays.asList(orgPath.split("/"));
String orgSid = stringList.get(stringList.size() - 1);
orgPath = sysOrganizationService.getOrgSid(orgSid);
return rb.success().setData(orgPath);
}
public List<SysOrgPathList> getList(String staffSid) {
return baseMapper.getList(staffSid);
}
public List<SysStaffOrg> selectStaffByOrgSid(String sid, String type) {
return baseMapper.selectStaffByOrgSid(sid,type);
}
public List<String> selectStaffByOrg(String orgSid) {
return baseMapper.selectStaffByOrg(orgSid);
}
public ResultBean<List<SysStaffOrgByUserVo>> selAllByOrgPath(String orgSidPath,String roleSid) {
ResultBean rb = ResultBean.fireFail();
QueryWrapper qw = new QueryWrapper<>();
qw.eq("sur.roleSid",roleSid);
qw.like("sso.orgSidPath",orgSidPath);
List<SysStaffOrgByUserVo> sysStaffOrgByUserVos = baseMapper.selAllByOrgPath(qw);
return rb.success().setData(sysStaffOrgByUserVos);
}
public ResultBean<String> getOrgSidByPath2(String orgPath) {
ResultBean<String> rb = ResultBean.fireFail();
//根据用户全路径获取分公司sid
List<String> stringList = Arrays.asList(orgPath.split("/"));
String orgSid = stringList.get(stringList.size() - 2);
orgPath = sysOrganizationService.getOrgSid(orgSid);
return rb.success().setData(orgPath);
}
public ResultBean<List<SysStaffOrgByUserVo>> selAllByOrgSidPath(String orgSidPath) {
ResultBean rb = ResultBean.fireFail();
List<SysStaffOrgByUserVo> sysStaffOrgByUserVoList = baseMapper.selAllByOrgSidPath(orgSidPath);
return rb.success().setData(sysStaffOrgByUserVoList);
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save