This commit is contained in:
2024-05-11 17:03:37 +08:00
parent d7f28e3509
commit fdbd1e482f
198 changed files with 2840 additions and 729 deletions

View File

@@ -0,0 +1,24 @@
package com.yxt.portal;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* @author wangpengfei
* @date 2024/4/28 14:43
*/
@SpringBootApplication(scanBasePackages = {
"com.yxt.portal.config",
"com.yxt.common.base.config",
"com.yxt.portal"
})
// 启用自带定时任务
@EnableScheduling
@EnableFeignClients(basePackages = {})
public class PortalApplication {
public static void main(String[] args) {
SpringApplication.run(PortalApplication.class, args);
}
}

View File

@@ -0,0 +1,10 @@
package com.yxt.portal.apiadmin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController("com.yxt.base.apiadmin.AdminHomeRest")
@RequestMapping("/apiadmin/home")
public class AdminHomeRest {
}

View File

@@ -0,0 +1,164 @@
package com.yxt.portal.apiadmin;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.portal.biz.dictcommon.*;
import com.yxt.portal.biz.dicttype.DictTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @author dimengzhe
* @date 2021/7/5 21:29
* @description
*/
@Slf4j
@Controller
@RequestMapping("apiadmin/dictcommons")
@Api(tags = "数据字典数据项管理")
public class DictCommonRest {
@Autowired
private DictTypeService dictTypeService;
@Autowired
private DictCommonService dictCommonService;
@PostMapping(value = "/save")
@ResponseBody
@ApiOperation(value = "数据字典数据项保存")
ResultBean save(@Valid @RequestBody DictCommonDto dictCommonDto) {
ResultBean resultBean = ResultBean.fireFail();
//数据类型
String dictType = dictCommonDto.getDictType();
//数据项值
String dictKey = dictCommonDto.getDictKey();
//父级sid
String parentSid = dictCommonDto.getParentSid();
int size = dictTypeService.selectSize(dictType);
if (size > 0) {
//根据数据类型和数据项值查询是否已存在
DictCommon dc = dictCommonService.selectSize(dictKey, dictType, parentSid);
if (dc != null) {
return resultBean.setMsg(dictType + "此类型的数据项已存在");
}
DictCommon dictCommon = new DictCommon();
dictCommonDto.fillEntity(dictCommon);
boolean isSave = dictCommonService.save(dictCommon);
if (!isSave) {
return resultBean.setMsg("保存数据项失败");
}
} else {
return resultBean.setMsg("数据字典类型不存在");
}
return resultBean.success().setMsg("保存成功");
}
@PostMapping("/pageList")
@ResponseBody
@ApiOperation(value = "数据字典数据项分页列表")
ResultBean<PagerVo<DictCommonVo>> pageList(@RequestBody PagerQuery<DictCommonQuery> pagerQuery) {
ResultBean<PagerVo<DictCommonVo>> rb = ResultBean.fireFail();
PagerVo<DictCommonVo> pv = new PagerVo<>();
IPage<DictCommonVo> p2 = dictCommonService.pageList(pagerQuery);
PagerVo<DictCommonVo> pv1 = PagerUtil.pageToVo(p2, pv);
return rb.success().setData(pv1);
}
@PostMapping("/update/{sid}")
@ResponseBody
@ApiOperation(value = "数据字典修改后保存")
ResultBean update(@Valid @RequestBody DictCommonDto dictCommonDto, @ApiParam(value = "数据项sid", required = true) @PathVariable("sid") String sid){
ResultBean resultBean = ResultBean.fireFail();
//数据类型
String dictType = dictCommonDto.getDictType();
int size = dictTypeService.selectSize(dictType);
if (size > 0) {
//根据数据类型和数据项值查询是否已存在
DictCommon dc = dictCommonService.fetchBySid(sid);
if (dc == null) {
return resultBean.setMsg(dictType + "此类型的数据项不存在");
} else {
if (!sid.equals(dc.getSid())) {
return resultBean.setMsg(dictType + "此类型的数据项已存在");
}
}
if (0 == dictCommonService.updateBySid(dictCommonDto.toMap(), sid)) {
return resultBean.setMsg("更新失败");
}
} else {
return resultBean.setMsg("数据字典类型不存在");
}
return resultBean.success().setMsg("保存成功");
}
@ResponseBody
@DeleteMapping("/delete/{sid}")
@ApiOperation(value = "删除")
ResultBean delete(@ApiParam(value = "数据项sid", required = true) @PathVariable("sid") String sid){
DictCommon dictCommon = dictCommonService.fetchBySid(sid);
if (null == dictCommon) {
return ResultBean.fireFail().setMsg("该数据项不存在");
}
if (0 == dictCommonService.deleteBySid(sid)) {
return ResultBean.fireFail().setMsg("删除失败");
}
return ResultBean.fireSuccess().setMsg("删除成功");
}
@GetMapping("/typeValues")
@ResponseBody
@ApiOperation("下拉框的获取")
ResultBean<List<DictCommonVo>> getTypeValues(@RequestParam("type") String type, @RequestParam(value = "psid", defaultValue = "0")String psid){
DictCommonTypeQuery query = new DictCommonTypeQuery();
query.setType(type);
query.setPsid(psid);
List<DictCommonVo> dictCommonVoList = dictCommonService.getValue(query);
if (dictCommonVoList.size() == 0) {
return new ResultBean<List<DictCommonVo>>().fail().setMsg("该类型无数据项");
}
return new ResultBean<List<DictCommonVo>>().success().setData(dictCommonVoList);
}
@ResponseBody
@GetMapping("/selectBykey/{key}/{type}")
@ApiOperation(value = "数据字典信息修改时的初始化信息")
public ResultBean<DictCommonVo> selectBykey(@ApiParam(value = "数据字典key", required = true) @PathVariable("key") String key, @ApiParam(value = "数据字典type", required = true) @PathVariable("type") String type) {
DictCommonVo v = dictCommonService.selectBykey(key, type);
if (v == null) {
return new ResultBean<DictCommonVo>().success().setData(new DictCommonVo());
}
return new ResultBean<DictCommonVo>().success().setData(v);
}
@GetMapping("/getFirstDictKeyByType")
@ResponseBody
@ApiOperation("根据数据字典的key获取第一个值默认值")
ResultBean getFirstDictKeyByType(@RequestParam("dictType") String dictType, @RequestParam("psid") String psid){
ResultBean<List<DictCommonVo>> resultBean = getTypeValues(dictType, psid);
if (resultBean.getSuccess() && resultBean.getData() != null) {
String dictKey = resultBean.getData().get(0).getDictKey();
return new ResultBean().success().setData(dictKey);
} else {
return new ResultBean().fail().setData(new DictCommon());
}
}
@GetMapping("/getTypeValueList")
@ResponseBody
@ApiOperation("根据分类编码和数据分组查询数据字典")
ResultBean<List<DictCommonVo>> getTypeValueList(@RequestParam("type")String type,@RequestParam("groupNum")String groupNum){
return dictCommonService.getList(type,groupNum);
}
}

View File

@@ -0,0 +1,105 @@
package com.yxt.portal.apiadmin;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.portal.biz.dictcommon.DictCommon;
import com.yxt.portal.biz.dictcommon.DictCommonService;
import com.yxt.portal.biz.dicttype.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @author dimengzhe
* @date 2021/7/5 22:37
* @description
*/
@Slf4j
@Controller
@RequestMapping("apiadmin/dicttypes")
@Api(tags = "数据字典类型管理")
public class DictTypeRest{
@Autowired
private DictTypeService dictTypeService;
@Autowired
private DictCommonService dictCommonService;
@PostMapping(value = "/save")
@ResponseBody
@ApiOperation(value = "数据字典类型保存")
ResultBean save(@Valid @RequestBody DictTypeDto dictTypeDto){
ResultBean resultBean = ResultBean.fireFail();
DictType dictType = new DictType();
//判断数据字典类型是否已存在
String dictTypeCode = dictTypeDto.getDictTypeCode();
int size = dictTypeService.selectSize(dictTypeCode);
if (size > 0) {
return resultBean.setMsg("数据类型代码已存在");
}
dictTypeDto.fillEntity(dictType);
boolean isSave = dictTypeService.save(dictType);
if (!isSave) {
return resultBean.setMsg("保存失败");
}
return resultBean.success().setMsg("保存成功");
}
@PostMapping("/pageList")
@ResponseBody
@ApiOperation(value = "数据字典类型分页列表")
ResultBean<PagerVo<DictTypeVo>> pageList(@RequestBody PagerQuery<DictTypeQuery> pagerQuery){
ResultBean<PagerVo<DictTypeVo>> rb = ResultBean.fireFail();
PagerVo<DictTypeVo> pv = new PagerVo<>();
IPage<DictTypeVo> p2 = dictTypeService.pageList(pagerQuery);
PagerVo<DictTypeVo> pv1 = PagerUtil.pageToVo(p2, pv);
return rb.success().setData(pv1);
}
@PostMapping("/update/{sid}")
@ResponseBody
@ApiOperation(value = "数据字典类型更新")
ResultBean update(@Valid DictTypeDto dictTypeDto, @ApiParam(value = "数据字典类型sid", required = true) @PathVariable("sid") String sid){
DictType dictType = dictTypeService.fetchBySid(sid);
if (null == dictType) {
return ResultBean.fireFail().setMsg("该数据字典类型不存在");
}
if (!dictTypeDto.getDictTypeCode().equals(dictType.getDictTypeCode())) {
return ResultBean.fireFail().setMsg("数据字典类型的code值不允许修改");
}
if (0 == dictTypeService.updateBySid(dictTypeDto.toMap(), sid)) {
return ResultBean.fireFail().setMsg("更新失败");
}
return ResultBean.fireSuccess().setMsg("更新成功");
}
@DeleteMapping("/delete/{sid}")
@ResponseBody
@ApiOperation(value = "数据字典类型删除")
ResultBean delete(@ApiParam(value = "sid", required = true) @PathVariable("sid") String sid){
DictType dictType = dictTypeService.fetchBySid(sid);
if (null == dictType) {
return ResultBean.fireFail().setMsg("该数据字典类型不存在");
}
//查询该类型下是否存在数据项
List<DictCommon> dictCommon = dictCommonService.selectByType(dictType.getDictTypeCode());
if (dictCommon.size() > 0) {
return ResultBean.fireFail().setMsg("该数据字典类型下存在数据项,请先删除该类下的数据项");
}
if (0 == dictTypeService.deleteBySid(sid)) {
return ResultBean.fireFail().setMsg("删除失败");
}
return ResultBean.fireSuccess().setMsg("删除成功");
}
}

View File

@@ -0,0 +1,42 @@
package com.yxt.portal.apiadmin;
import com.yxt.portal.biz.sms.SmsDto;
import com.yxt.portal.utils.MsgWs;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
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("apiadmin/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();
}
}

View File

@@ -0,0 +1,218 @@
package com.yxt.portal.apiadmin;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.portal.biz.sysfunction.*;
import com.yxt.portal.biz.syssource.SysSource;
import com.yxt.portal.biz.syssource.SysSourceVo;
//import com.yxt.user.biz.syssourcefunction.SysSourceFunction;
import com.yxt.portal.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("apiadmin/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(){
// }
}

View File

@@ -0,0 +1,327 @@
package com.yxt.portal.apiadmin;
import com.yxt.portal.biz.sysmenu.*;
//import com.yxt.user.biz.sysmenurole.SysMenuRoleQuery;
import com.yxt.portal.biz.sysmenurole.SysMenuRoleQuery;
import com.yxt.portal.biz.sysmenurole.SysMenuRoleService;
import com.yxt.portal.biz.sysrole.SysRole;
import com.yxt.portal.biz.syssource.SysSource;
import com.yxt.portal.biz.syssource.SysSourceVo;
//import com.yxt.user.biz.syssourcemenu.SysSourceMenu;
//import com.yxt.user.biz.syssourcemenu.SysSourceMenuVo;
import com.yxt.portal.biz.sysuserrole.SysUserRoleVo;
//import com.yxt.user.biz.sysmenurole.SysMenuRoleService;
import com.yxt.portal.biz.sysrole.SysRoleService;
import com.yxt.portal.biz.syssource.SysSourceService;
//import com.yxt.user.biz.syssourcemenu.SysSourceMenuService;
import com.yxt.portal.biz.sysuser.SysUserService;
import com.yxt.portal.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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
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("apiadmin/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;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
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);
}*/
/**
* 菜单列表:根据资源归类
*
* @param query
* @return
*/
@ApiOperation("菜单列表:根据资源归类")
@PostMapping("/listAllVoForSource")
public ResultBean<List<SysMenuTreeVo>> listAllVoForSource(@RequestBody SysMenuQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysMenuTreeVo> list = sysMenuService.listAllVoForSource(query);
return rb.success().setData(list);
}
/**
* 菜单列表:根据资源归类 设置功能的url用
* @return
*/
@ApiOperation("菜单列表:根据资源归类 设置功能的url用")
@PostMapping("/getMenusForFunction")
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);
}
}
@ApiOperation("根据用户sid查询所有数据列表 ")
@PostMapping("/sourceMenuTreeByUserSid")
public ResultBean<List<Map<String, Object>>> sourceMenuTreeByUserSid(@RequestBody 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);
}
@ApiOperation("根据资源sid查询所有数据列表 ")
@PostMapping("/sourcemenutree")
public ResultBean<List<Map<String, Object>>> sourcemenutree(@RequestBody 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);
}
@ApiOperation("根据角色sid条件查询所有数据列表")
@PostMapping("/listAllByRoleSid")
public ResultBean<List<SysMenuVo>> listAllByRoleSid(@RequestBody 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);
}
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@Valid @RequestBody 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();
}
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@Valid @RequestBody SysMenuDto dto, @PathVariable("sid") 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();
}
/**
* 修改是否可用的状态
*
* @param sid 菜单sid或资源sid
* @param isEnable 是否可用的状态1可用0不可用
* @return
*/
@ApiOperation("修改是否可用的状态 ")
@PostMapping("/updateIsEnable/{sid}/{isEnable}")
public ResultBean updateIsEnable(@PathVariable("sid") String sid, @PathVariable("isEnable") 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();
}*/
/**
* 根据当前行sid删除菜单
*
* @param sid 菜单sid
* @return
*/
@ApiOperation("删除记录 根据sid")
@GetMapping("/delBySids/{sid}")
public ResultBean delBySids(@PathVariable("sid") 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);
}*/
}

View File

@@ -0,0 +1,159 @@
package com.yxt.portal.apiadmin;
import com.yxt.portal.biz.sysmenurole.*;
import com.yxt.portal.biz.sysrole.SysRole;
import com.yxt.portal.biz.sysrole.SysRoleService;
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.portal.biz.sysmenurole.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuRoleFeignFallback.java <br/>
* Class: com.yxt.anrui.portal.biz.sysmenurole.SysMenuRoleRest <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/sysmenurole")
public class SysMenuRoleRest {
@Autowired
private SysMenuRoleService sysMenuRoleService;
@Autowired
private SysRoleService sysRoleService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysMenuRoleVo>> listPage(@RequestBody PagerQuery<SysMenuRoleQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SysMenuRoleVo> pv = sysMenuRoleService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<SysMenuRoleVo>> listAll(@RequestBody SysMenuRoleQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysMenuRoleVo> list = sysMenuRoleService.listAllVo(query);
return rb.success().setData(list);
}
@ApiOperation("根据角色查询授权的菜单列表(PC)")
@PostMapping("/selMenuByRole")
public ResultBean<List<SysMenuRoleDataVo>> selMenuByRole(@RequestBody SysMenuRoleDataQuery query) {
return sysMenuRoleService.selMenuByRole(query);
}
@ApiOperation("根据角色查询授权的菜单列表(APP)")
@PostMapping("/selMenuByRoleApp")
public ResultBean<List<SysMenuRoleDataVo>> selMenuByRoleApp(@RequestBody SysMenuRoleDataQuery query) {
return sysMenuRoleService.selMenuByRoleApp(query);
}
@ApiOperation("修改角色菜单的数据权限PC")
@PostMapping("/updateDataByRoleMenu")
public ResultBean updateDataByRoleMenu(@RequestBody List<SysMenuRoleDataDto> dtos) {
return sysMenuRoleService.updateDataByRoleMenu(dtos);
}
@ApiOperation("修改角色菜单的数据权限(移动端)")
@PostMapping("/updateDataByRoleMenuApp")
public ResultBean updateDataByRoleMenuApp(@RequestBody List<SysMenuRoleDataDto> dtos) {
return sysMenuRoleService.updateDataByRoleMenuApp(dtos);
}
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<SysMenuRoleVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<SysMenuRoleVo> list = sysMenuRoleService.listVo();
return rb.success().setData(list);
}
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody SysMenuRoleDto dto){
ResultBean rb = ResultBean.fireFail();
sysMenuRoleService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody SysMenuRoleDto dto,@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
sysMenuRoleService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@ApiOperation("修改角色的菜单配置")
@PostMapping("/updateRoleAndMenu")
public ResultBean updateRoleAndMenu(@RequestBody SysMenuRoleDto dto) {
String roleSid=dto.getRoleSid();
String menuSid=dto.getMenuSid();
if(StringUtils.isBlank(roleSid)){
return ResultBean.fireFail().setMessage("角色sid不能为空");
}else{
SysRole sysRole = sysRoleService.fetchBySid(roleSid);
if(sysRole==null||StringUtils.isBlank(sysRole.getSid())){
return ResultBean.fireFail().setMessage("角色sid不存在");
}
}
List<MenuRoleVo> menuRoleList = sysMenuRoleService.selectByRoleSid(roleSid);
sysMenuRoleService.delByRoleSid(roleSid);
ResultBean rb = ResultBean.fireFail();
if(!StringUtils.isBlank(menuSid)){
String[] sids = menuSid.split(",");
for(String sid:sids){
MenuRoleVo menuRoleVo = menuRoleList.stream().filter(s -> Objects.equals(s.getMenuSid(), sid)).findFirst().orElse(null);
SysMenuRole sysMenuRole = new SysMenuRole();
sysMenuRole.setRoleSid(roleSid);
sysMenuRole.setMenuSid(sid);
if(menuRoleVo != null){
sysMenuRole.setDataRuleId(menuRoleVo.getDataRuleId());
}
sysMenuRoleService.save(sysMenuRole);
}
}
return rb.success();
}
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids){
ResultBean rb = ResultBean.fireFail();
sysMenuRoleService.delByIds(ids);
return rb.success();
}
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<SysMenuRoleVo> fetch(@PathVariable("id") String id){
ResultBean rb = ResultBean.fireFail();
SysMenuRoleVo vo = sysMenuRoleService.fetchByIdVo(id);
return rb.success().setData(vo);
}
}

View File

@@ -0,0 +1,474 @@
package com.yxt.portal.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.portal.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgVo;
import com.yxt.portal.biz.sysuser.SysUserService;
import com.yxt.portal.biz.sysorganization.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
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("apiadmin/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);
}
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
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);
}
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<SysOrganizationVo>> listAll(@RequestBody SysOrganizationQuery query) {
ResultBean rb = ResultBean.fireFail();
List<SysOrganizationVo> list = sysOrganizationService.listAllVo(query);
return rb.success().setData(list);
}
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<SysOrganizationVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysOrganizationVo> list = sysOrganizationService.listVo();
return rb.success().setData(list);
}
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody SysOrganizationDto dto) {
ResultBean rb = ResultBean.fireFail();
sysOrganizationService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("一级组织机构列表")
@GetMapping("/selectFirstOrgList")
public ResultBean<List<SysOrganizationVo>> selectFirstOrgList(){
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.selectFirstOrgList());
}
@ApiOperation("根据父级sid查询子集列表")
@GetMapping("/selectChildrenListBySid/{sid}")
public ResultBean<List<SysOrganizationVo>> selectChildrenListBySid(@PathVariable("sid") 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();
}
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids){
ResultBean rb = ResultBean.fireFail();
sysOrganizationService.delByIds(ids);
return rb.success();
}
@ApiOperation("删除记录 根据sid")
@GetMapping("/delBySid/{sid}")
public ResultBean delBySid(@PathVariable("sid") 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();
}
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<SysOrganizationVo> fetch(@PathVariable("id") String id){
ResultBean rb = ResultBean.fireFail();
SysOrganizationVo vo = sysOrganizationService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@ApiOperation("获取一条记录 根据sid")
@ResponseBody
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysOrganizationVo> fetchBySid(@PathVariable("sid") 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);
}
@ApiOperation("手机获取组织架构")
@ResponseBody
@GetMapping("/selectAppOrganization")
public ResultBean<Map<String, Object>> selectAppOrganization(@RequestParam(value = "sid", required = false) 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);
}
@ApiOperation("组织架构")
@ResponseBody
@GetMapping("/selectListOrg")
ResultBean<List<SysOrgVo>> selectListOrg(){
ResultBean<List<SysOrgVo>> rb = ResultBean.fireFail();
List<SysOrgVo> menuTree2VoList = sysOrganizationService.treeList();
return rb.success().setData(menuTree2VoList);
}
@ApiOperation("获取到分公司")
@ResponseBody
@GetMapping("/getListOrg")
ResultBean<List<SysOrgVo>> getListOrg(){
ResultBean<List<SysOrgVo>> rb = ResultBean.fireFail();
List<SysOrgVo> menuTree2VoList = sysOrganizationService.getListOrg();
return rb.success().setData(menuTree2VoList);
}
@ApiOperation("获取同品牌下分公司")
@ResponseBody
@GetMapping("/getListOrgByBrand/{orgSid}")
ResultBean<List<SysOrgVo>> getListOrgByBrand(@PathVariable(value = "orgSid") String orgSid){
return null;//sysOrganizationService.getListOrgByBrand(orgSid);
}
@ApiOperation("获取指定品牌下分公司(已筛选本分公司)")
@ResponseBody
@GetMapping("/getListOrgByBrandSid/{orgSid}/{brandSid}")
ResultBean<List<SysOrgVo>> getListOrgByBrandSid(@PathVariable(value = "orgSid") String orgSid,@PathVariable(value = "brandSid") String brandSid){
return null;//sysOrganizationService.getListOrgByBrandSid(orgSid,brandSid);
}
@ApiOperation("获取指定品牌下分公司(未筛选本分公司)")
@ResponseBody
@GetMapping("/getListOrgByBrandSidNo/{orgSid}/{brandSid}")
ResultBean<List<SysOrgVo>> getListOrgByBrandSidNo(@PathVariable(value = "orgSid") String orgSid,@PathVariable(value = "brandSid") String brandSid){
return null;//sysOrganizationService.getListOrgByBrandSidNo(orgSid,brandSid);
}
@ApiOperation("获取指定分公司下部门信息")
@ResponseBody
@GetMapping("/getListDeptByOrgSid/{orgSid}")
ResultBean<List<SysOrgVo>> getListDeptByOrgSid(@PathVariable(value = "orgSid") String orgSid){
return sysOrganizationService.getListDeptByOrgSid(orgSid);
}
@ApiOperation("根据业务员sid获取到分公司")
@ResponseBody
@GetMapping("/getUseOrgByUserSid")
ResultBean<SysOrganizationVo> getUseOrgByUserSid(@RequestParam("userSid") String userSid){
ResultBean<SysOrganizationVo> rb = ResultBean.fireFail();
SysOrganizationVo vo = sysOrganizationService.getUseOrgByUserSid(userSid);
return rb.success().setData(vo);
}
@ApiOperation("根据部门sid查询组织信息")
@ResponseBody
@GetMapping("/selectBySid")
ResultBean<SysOrganization> selectBySid(@RequestParam("sid") 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);
}
@ApiOperation("根据组织架构sid查询组织下所有分公司")
@ResponseBody
@GetMapping("/selectUseOrgSidBySid")
ResultBean<List<Map<String, String>>> selectUseOrgSidBySid(@RequestParam("sid") String sid){
ResultBean rb = ResultBean.fireFail();
List<Map<String, String>> maps = sysOrganizationService.selectUseOrgSidBySid(sid);
return rb.success().setData(maps);
}
/**
* 查询公司所有的部门
*
* @return
*/
@ApiOperation("所在部门下拉")
@ResponseBody
@GetMapping("/selectListOne")
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);
}
@PostMapping("/getQrCode/{sid}")
@ResponseBody
@ApiOperation("查看二维码")
public ResultBean<QrCodeVo> getQrCode(@ApiParam(value = "sid", required = true) @PathVariable("sid") 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);
}
@GetMapping("/getOrgSid/{sid}")
@ResponseBody
@ApiOperation("根据当前用户的所在组织获取当前用户所在的分公司")
ResultBean<String> getOrgSid(@PathVariable(value = "sid") 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);
}
@GetMapping("/selectOrgList")
@ResponseBody
@ApiOperation("当前分公司销售部门及部门人员")
ResultBean<List<SysOrganizationListVo>> selectOrgList(@SpringQueryMap SysOrganizationListQuery query){
return sysOrganizationService.selectOrgList(query);
}
@GetMapping("/selectOrgLists")
@ResponseBody
@ApiOperation("当前分公司下所有部门")
ResultBean<List<SysOrganizationListsVo>> selectOrgLists(@SpringQueryMap SysOrganizationListQuery query){
return sysOrganizationService.selectOrgLists(query);
}
@GetMapping("/selectByPSid")
@ResponseBody
@ApiOperation("查询分公司下的销售支持部")
ResultBean<SysOrganizationVo> selectByPSid(@RequestParam("sid") String sid, @RequestParam("name") String name){
return sysOrganizationService.selectByPSid(sid,name);
}
@GetMapping("/selectOrgSidList")
@ResponseBody
@ApiOperation("所有分公司sid")
ResultBean<List<SysOrganizationVo>> selectOrgSidList() {
ResultBean<List<SysOrganizationVo>> rb = ResultBean.fireFail();
List<SysOrganizationVo> stringList = sysOrganizationService.selectOrgSidList();
return rb.success().setData(stringList);
}
@GetMapping("/selectOrgByPSid")
@ResponseBody
@ApiOperation("查询事业部下所有分公司")
ResultBean<List<SysOrganizationVo>> selectOrgByPSid(@RequestParam("psid") String psid){
return sysOrganizationService.selectOrgByPSid(psid);
}
@GetMapping("/selectByOrgSidPath")
@ResponseBody
@ApiOperation("组织层级分页查询")
ResultBean<SysOrganizationVo> selectByOrgSidPath(@RequestParam("orgSidPath") String orgSidPath){
return sysOrganizationService.selectByOrgSidPath(orgSidPath);
}
}

View File

@@ -0,0 +1,149 @@
package com.yxt.portal.apiadmin;
import com.yxt.portal.biz.syspost.*;
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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysPostFeignFallback.java <br/>
* Class: com.yxt.anrui.portal.biz.syspost.SysPostRest <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("apiadmin/syspost")
public class SysPostRest {
@Autowired
private SysPostService sysPostService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysPostVo>> listPage(@RequestBody PagerQuery<SysPostQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<SysPostVo> pv = sysPostService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<SysPostVo>> listAll(@RequestBody SysPostQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysPostVo> list = sysPostService.listAllVo(query);
return rb.success().setData(list);
}
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<SysPostVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysPostVo> list = sysPostService.listVo();
return rb.success().setData(list);
}
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody SysPostDto dto){
ResultBean rb = ResultBean.fireFail();
sysPostService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody SysPostDto dto, @PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
sysPostService.updateBySid(dto.toMap(), sid);
return rb.success();
}
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids){
ResultBean rb = ResultBean.fireFail();
sysPostService.delByIds(ids);
return rb.success();
}
@ApiOperation("删除记录")
@GetMapping("/delBySids/{sids}")
public ResultBean delBySids(@PathVariable("sids") String sids){
ResultBean rb = ResultBean.fireFail();
String[] sidArr = sids.split(",");
sysPostService.delBySids(sidArr);
return rb.success();
}
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<SysPostVo> fetch(@PathVariable("id") String id){
ResultBean rb = ResultBean.fireFail();
SysPostVo vo = sysPostService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@ApiOperation("获取一条记录")
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysPostVo> fetchBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
SysPostVo vo = sysPostService.fetchBySidVo(sid);
return rb.success().setData(vo);
}
@ApiOperation("根据部门sid获取岗位列表")
@GetMapping("/fetchByOrgSid/{orgSid}")
public ResultBean<List<SysPostVo>> fetchByOrgSid(@PathVariable("orgSid") String orgSid){
ResultBean rb = ResultBean.fireFail();
List<SysPostVo> list = sysPostService.fetchByOrgSid(orgSid);
return rb.success().setData(list);
}
@ApiOperation("根据部门sid获取岗位编号")
@GetMapping("/fetchByOrgSidPostCode/{orgSid}")
public ResultBean<String> fetchByOrgSidPostCode(){
ResultBean rb = ResultBean.fireFail();
String s = sysPostService.fetchByOrgSidPostCode();
return rb.success().setData(s);
}
/**
* 查询岗位列表
*
* @return
*/
@ApiOperation("查询岗位列表")
@GetMapping("/selectList")
public ResultBean<List<SysPostListVo>> selectList() {
ResultBean<List<SysPostListVo>> rb = ResultBean.fireFail();
List<SysPostListVo> sysPostVoList = sysPostService.selectList();
if (sysPostVoList.size() == 0) {
List<SysPostListVo> list = new ArrayList<>();
list.add(new SysPostListVo());
return rb.setData(list);
}
return rb.success().setData(sysPostVoList);
}
}

View File

@@ -0,0 +1,171 @@
package com.yxt.portal.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.portal.biz.sysrole.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
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("apiadmin/sysrole")
public class SysRoleRest {
@Autowired
private SysRoleService sysRoleService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysRoleVo>> listPage(@RequestBody PagerQuery<SysRoleQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SysRoleVo> pv = sysRoleService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<SysRoleVo>> listAll(@RequestBody SysRoleQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysRoleVo> list = sysRoleService.listAllVo(query);
return rb.success().setData(list);
}
@ApiOperation("查询所有的角色数据并根据用户sid查询被选中的角色")
@PostMapping("/listAllByUserSid/{userSid}")
public ResultBean<List<SysRoleVo>> listAllByUserSid(@PathVariable("userSid") String userSid){
ResultBean rb = ResultBean.fireFail();
List<SysRoleVo> list = sysRoleService.listAllByUserSid(userSid);
return rb.success().setData(list);
}
@ApiOperation("根据用户sid查询用户的角色列表")
@PostMapping("/fetchByUserSid/{userSid}")
public ResultBean<List<SysRoleVo>> fetchByUserSid(@PathVariable("userSid") 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);
}
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody 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();
}
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody SysRoleDto dto,@PathVariable("sid") 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();
}
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids){
ResultBean rb = ResultBean.fireFail();
sysRoleService.delByIds(ids);
return rb.success();
}
@ApiOperation("删除记录根据sids")
@GetMapping("/delBySids/{sids}")
public ResultBean delBySids(@PathVariable("sids") String sids){
ResultBean rb = ResultBean.fireFail();
sysRoleService.delBySids(sids);
return rb.success();
}
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<SysRoleVo> fetch(@PathVariable("id") String id){
ResultBean rb = ResultBean.fireFail();
SysRoleVo vo = sysRoleService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@ApiOperation("获取一条记录根据sid")
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysRoleVo> fetchBySid(@PathVariable("sid") 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);
}
@PostMapping("/setIsEnable/{sid}/{isEnable}")
@ResponseBody
@ApiOperation(value = "设置是否可用isEnable1可用0不可用")
public ResultBean setIsEnable(@ApiParam(value = "sid", required = true) @PathVariable("sid") String sid, @ApiParam(value = "isEnable", required = true) @PathVariable("isEnable") 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("设置成功");
}
}

View File

@@ -0,0 +1,130 @@
package com.yxt.portal.apiadmin;
//import com.yxt.user.biz.systemlog.SystemLog;
import com.yxt.portal.biz.sysuser.SysUser;
//import com.yxt.user.biz.systemlog.SystemLogService;
import com.yxt.portal.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.portal.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.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("apiadmin/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/apiadmin/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);
}
}

View File

@@ -0,0 +1,162 @@
package com.yxt.portal.apiadmin;
import com.yxt.portal.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("apiadmin/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);
}
}

View File

@@ -0,0 +1,123 @@
package com.yxt.portal.apiadmin;
import com.yxt.portal.biz.sysstaffpost.SysStaffPostDto;
import com.yxt.portal.biz.sysstaffpost.SysStaffPostQuery;
import com.yxt.portal.biz.sysstaffpost.SysStaffPostVo;
//import com.yxt.user.biz.systemlog.SystemLog;
import com.yxt.portal.biz.sysuser.SysUser;
//import com.yxt.user.biz.systemlog.SystemLogService;
import com.yxt.portal.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.portal.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.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("apiadmin/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/apiadmin/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);
}
}

View File

@@ -0,0 +1,235 @@
package com.yxt.portal.apiadmin;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.portal.biz.sysstaffinfo.*;
import com.yxt.portal.biz.sysstaffinfo.app.AppSysStaffQuery;
import com.yxt.portal.biz.sysstaffinfo.app.AppSysStaffVo;
import com.yxt.portal.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.portal.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("apiadmin/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> papiadmin = PagerUtil.pageToVo(page, pv);
return rb.success().setData(papiadmin);
}
/**
* 员工信息的新增保存
*
* @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.getPersonType())) {
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();
}
}

View File

@@ -0,0 +1,34 @@
package com.yxt.portal.apiadmin;
import com.yxt.common.core.result.ResultBean;
import com.yxt.portal.biz.sysuserdefaultorg.SysUserDefaultOrgDto;
import com.yxt.portal.biz.sysuserdefaultorg.SysUserDefaultOrgService;
import com.yxt.portal.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("apiadmin/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);
}
}

View File

@@ -0,0 +1,877 @@
package com.yxt.portal.apiadmin;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.portal.biz.sysorganization.SysOrganization;
import com.yxt.portal.biz.sysorganization.SysOrganizationService;
import com.yxt.portal.biz.syspost.SysPost;
import com.yxt.portal.biz.syspost.SysPostService;
import com.yxt.portal.biz.sysstaffinfo.SysStaffinfo;
import com.yxt.portal.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.portal.biz.sysstaffinfo.SysStaffinfoVo;
import com.yxt.portal.biz.sysstafforg.SysStaffOrg;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.portal.biz.sysstaffpost.SysStaffPost;
import com.yxt.portal.biz.sysstaffpost.SysStaffPostService;
import com.yxt.portal.biz.sysuser.*;
import com.yxt.portal.biz.sysuser.app.OrgList;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
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("apiadmin/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
@ApiOperation("根据条件分页查询数据的列表 ")
@PostMapping("/listPage")
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);
}
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<SysUserVo>> listAll(@RequestBody SysUserQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysUserVo> list = sysUserService.listAllVo(query);
return rb.success().setData(list);
}
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<SysUserVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<SysUserVo> list = sysUserService.listVo();
return rb.success().setData(list);
}
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@Valid @RequestBody 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();
}
@ApiOperation("根据staffSid删除用户逻辑删除")
@PostMapping("/delSysUserByMobile")
public ResultBean delSysUserByMobile(@RequestParam("sid") String sid){
int i = sysUserService.delSysUserByMobile(sid);
if (i == 0) {
return new ResultBean().fail().setMsg("删除失败");
}
return new ResultBean().success().setMsg("删除成功");
}
@ApiOperation("根据staffSid查询用户信息")
@PostMapping("/getSysUserByMobile")
public ResultBean<SysStaffinfoVo> getSysUserByMobile(@RequestParam("staffSid") String staffSid){
ResultBean rb = ResultBean.fireFail();
SysStaffinfoVo user = sysUserService.getSysUserByMobile(staffSid);
return rb.success().setData(user);
}
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody SysUserDto dto, @PathVariable("sid") 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 确认密码
* @param userSid 用户sid
* @return
*/
@PostMapping("/updatePassword")
@ApiOperation(value = "5、修改密码")
public ResultBean updatePassword(@RequestParam("original") String original,
@RequestParam("password") String password,
@RequestParam("confirmPassword") String confirmPassword,
@RequestParam("userSid") 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("修改成功");
}
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids){
ResultBean rb = ResultBean.fireFail();
sysUserService.delByIds(ids);
return rb.success();
}
@ApiOperation("删除记录根据sid")
@GetMapping("/delBySid/{sid}")
public ResultBean delBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
sysUserService.delBySid(sid);
return rb.success();
}
@ApiOperation("根据用户名(手机号)查询用户")
@GetMapping("/fetchByMobile/{mobile}")
public ResultBean<SysUserVo> selectByUserName(@PathVariable("mobile") String mobile){
SysUser user = sysUserService.selectByUserName(mobile);
SysUserVo sysUserVo = new SysUserVo();
BeanUtil.copyProperties(user, sysUserVo);
return new ResultBean().success().setData(sysUserVo);
}
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<SysUserVo> fetch(@PathVariable("id") String id){
ResultBean rb = ResultBean.fireFail();
SysUserVo vo = sysUserService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@ApiOperation("根据sid获取一条记录")
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysUserVo> fetchBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
SysUserVo vo = sysUserService.fetchBySidVo(sid);
return rb.success().setData(vo);
}
@ApiOperation("根据多个或者一个sid获取对应的用户集合")
@GetMapping("/fetchBySids/{sids}")
public ResultBean<List<SysUserVo>> fetchBySids(@PathVariable("sids") String sids){
ResultBean rb = ResultBean.fireFail();
List<SysUserVo> vo = sysUserService.fetchBySidSVo(sids);
return rb.success().setData(vo);
}
/**
* 客户端找回密码
*
* @param userName,userPhone
* @return
*/
@ApiOperation("客户端找回密码")
@PostMapping("/reGetPwd")
public ResultBean reGetPwd(@RequestParam("userName") String userName, @RequestParam("userPhone") String userPhone){
return sysUserService.reGetPwd(userName, userPhone);
}
/**
* 初始化密码
*
* @param sid 用户sid
* @return ResultBean
*/
@ResponseBody
@PostMapping("/initPwd/{sid}")
@ApiOperation(value = "10、用户初始化密码")
@ApiOperationSupport(order = 100)
public ResultBean
initPwd(@ApiParam(value = "用户sid", required = true) @PathVariable("sid") 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(@RequestBody 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);
}
@PostMapping("/register")
@ResponseBody
@ApiOperation(value = "3、注册")
@ApiOperationSupport(order = 30)
public ResultBean register(@RequestBody SysUserDto dto) {
ResultBean rb = ResultBean.fireFail();
SysUserVo userInfoOneVo =new SysUserVo();
//手机号
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("手机号不能为空");
}
// 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);
Map<String, Object> stringObjectMap = new HashMap<>();
// String code = stringObjectMap.get("code").toString();
// String details = stringObjectMap.get("details").toString();
String code = "200";
String details="";
if (Tools.CODE_FAIL.equals(code)) {
return ResultBean.fireFail().setMessage(details).setMsg(details);
}
}
String ssSid="";
SysUser one = sysUserService.fetchByUserName(mobile);
if (null != one) {
SysOrganization s=sysOrganizationService.getOne(new QueryWrapper<SysOrganization>().eq("name",dto.getCompanyName()));
if(s!=null){
return new ResultBean<SysUserVo>().fail().setMsg("公司重复!`");
}else{
ssSid=one.getStaffSid();
}
}else{
//"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);
sysStaffinfoService.save(ssi);
ssSid=ssi.getSid();
}
SysOrganization sysOrg=new SysOrganization();
sysOrg.setName(dto.getCompanyName());
sysOrg.setLinkPhone(dto.getContacts());
sysOrganizationService.save(sysOrg);
SysStaffOrg sysStaffOrg=new SysStaffOrg();
sysStaffOrg.setStaffSid(ssSid);
sysStaffOrg.setOrgSid(sysOrg.getSid());
sysStaffOrg.setOrgName(sysOrg.getName());
sysStaffOrg.setManageType("3");
sysStaffOrgService.save(sysStaffOrg);
if (StringUtils.isNotBlank(deptSid)) {
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(deptSid);
SysStaffOrg sso = new SysStaffOrg();
sso.setOrgName(sysOrganization.getName());
sso.setOrgSid(sysOrganization.getSid());
sso.setStaffSid(ssSid);
// 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(ssSid);
ssp.setOrgSid(deptSid);
ssp.setPostSid(postSid);
ssp.setStartDate(new Date());
ssp.setIsDepetHead(0);
sysStaffPostService.save(ssp);
}
return new ResultBean<SysUserVo>().success().setData(userInfoOneVo);
}
@PostMapping("/loginByNoVeriCode")
@ResponseBody
@ApiOperation(value = "3、登录无验证码")
@ApiOperationSupport(order = 30)
public ResultBean<SysUserVo> loginByNoVeriCode(@RequestBody 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/apiadmin/sysuser/login");
// systemLog.setEventContent("用户登录");
// systemLog.setEventName("用户登录");
// systemLogService.save(systemLog);
return new ResultBean<SysUserVo>().success().setData(userInfoOneVo);
}
/**
* 退出登录
*
* @return
*/
@PostMapping("/signOut")
@ResponseBody
@ApiOperation(value = "退出登录")
@ApiOperationSupport(order = 30)
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
*/
@PostMapping("/sendMessageCode")
@ResponseBody
@ApiOperation(value = "3、获取注册码")
@ApiOperationSupport(order = 30)
public ResultBean sendMessageCode(@RequestParam("mobile") String mobile) {
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) {
return new ResultBean().fail().setMsg("请输入正确的手机号");
}
String verificationCode = "";
return sysUserService.getVerificationCode(mobile, verificationCode);
}
/**
* 获取登录码()
* @param mobile
* @return
*/
@PostMapping("/sendMessageLogin")
@ResponseBody
@ApiOperation(value = "3、获取登录码")
@ApiOperationSupport(order = 30)
public ResultBean sendMessageLogin(@RequestParam("mobile") String mobile) {
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) {
return new ResultBean().fail().setMsg("请输入正确的手机号");
}
String verificationCode = "";
return sysUserService.getVerificationCodeL(mobile, verificationCode);
}
/**
* 获取修改码()
* @param mobile
* @return
*/
@PostMapping("/sendMessageUpdate")
@ResponseBody
@ApiOperation(value = "3、获取修改码")
@ApiOperationSupport(order = 30)
public ResultBean sendMessageUpdate(@RequestParam("mobile") String mobile) {
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) {
return new ResultBean().fail().setMsg("请输入正确的手机号");
}
String verificationCode = "";
return sysUserService.getVerificationCodeU(mobile, verificationCode);
}
@ApiOperation("根据staffsid查询用户")
@ResponseBody
@GetMapping("/selectByStaffsid/{staffsid}")
public ResultBean<SysUserVo> selectByStaffsid(@PathVariable("staffsid") 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("查无此用户");
}
}
@ApiOperation("根据sid查询用户信息")
@PostMapping("/selectBySid")
public ResultBean<SysUser> selectBySid(@RequestParam("sid") 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);
}
@PostMapping("/loginDetails")
@ResponseBody
@ApiOperation(value = "获取登录人")
@ApiOperationSupport(order = 30)
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
*/
@ApiOperation(value = "根据用户的sid查询用户的组织信息")
@ResponseBody
@GetMapping("/selectUserInfoByUserSid/{userSid}")
public ResultBean<SysUserInfoVo> selectUserInfoByUserSid(@PathVariable("userSid") 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);
}
@ApiOperation(value = "根据用户的sid查询用户的组织信息")
@ResponseBody
@GetMapping("/selectUserInfoByUserSid/{userSid}/{orgSid}")
public ResultBean<SysUserInfoVo> selectUserInfoByUserSid(@PathVariable("userSid") String userSid, @PathVariable("orgSid") 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);
}
@PostMapping("/setIsEnable/{sid}/{isEnable}")
@ResponseBody
@ApiOperation(value = "设置是否可用isEnable1可用0不可用")
public ResultBean setIsEnable(@ApiParam(value = "sid", required = true) @PathVariable("sid") String sid, @ApiParam(value = "isEnable", required = true) @PathVariable("isEnable") 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("设置成功");
}
@ApiOperation("根据角色sid查询用户")
@GetMapping("/getUsersByRoleSid/{roleSid}")
ResultBean getUsersByRoleSid(@PathVariable("roleSid") String roleSid) {
return sysUserService.getUsersByRoleSid(roleSid);
}
@ApiOperation(value = "获取本机构链角色的用户")
@GetMapping(value = "getUserByRole")
ResultBean<List<SysUserVo>> getUserByRole(@SpringQueryMap UserQuery query) {
return sysUserService.getUserByRole(query);
}
@ApiOperation(value = "获取本机构链角色的用户sid")
@GetMapping(value = "getUserSidByRole")
ResultBean<List<String>> getUserSidByRole(@SpringQueryMap UserQuery query) {
return sysUserService.getUserSidByRole(query);
}
@ApiOperation(value = "获取本机构链角色的用户")
@PostMapping(value = "getUsersByRoles")
ResultBean<List<SysUserVo>> getUsersByRoles(@RequestBody UserssQuery usersQuery) {
return sysUserService.getUsersByRoles(usersQuery);
}
/**
* 参数当前用户角色sid部门sid
*
* @param query
* @return
*/
@ApiOperation(value = "获取本部门直属上级角色的用户")
@GetMapping(value = "getUserByOrgRole")
ResultBean<List<SysUserVo>> getUserByOrgRole(@SpringQueryMap UserRoleQuery query) {
return sysUserService.getUserByOrgRole(query);
}
/**
* 参数为下一环节角色sid机构sid
*
* @param query
* @return
*/
@ApiOperation(value = "获取其他机构链角色的用户")
@GetMapping(value = "getOtherOrgRoleUser")
ResultBean<List<SysUserVo>> getOtherOrgRoleUser(@SpringQueryMap UserRoleQuery query) {
return sysUserService.getOtherOrgRoleUser(query);
}
@ApiOperation(value = "获取当前分公司下所有员工的userSid和员工姓名")
@GetMapping(value = "getUserByOrgSid")
ResultBean<List<Map<String, String>>> getUserByOrgSid(@RequestParam("orgSid") String orgSid, @RequestParam("userSid") String userSid){
return sysUserService.getUserByOrgSid(orgSid, userSid);
}
@ApiOperation(value = "根据用户sid获取用户id")
@PostMapping(value = "selectIdBySid")
ResultBean<String> selectIdBySid(@RequestBody List<String> stringList) {
return sysUserService.selectIdBySid(stringList);
}
@ApiOperation(value = "根据用户sid查询该分公司下所有销售经理的用户")
@GetMapping(value = "selectSysUserList")
ResultBean<List<SysUserListVo>> selectSysUserList(@RequestParam("userSid") String userSid, @RequestParam(value = "orgPath", required = false) String orgPath){
return sysUserService.selectSysUserList(userSid, orgPath);
}
@ApiOperation(value = "查询是否需要更换密码")
@GetMapping(value = "/selectPasswordByUserSid/{userSid}")
ResultBean<Boolean> selectPasswordByUserSid(@PathVariable("userSid") String userSid){
return sysUserService.selectPasswordByUserSid(userSid);
}
/**
* 查询该菜单是否允许创建,是否有提醒消息
*
* @return
*/
@ApiOperation(value = "查询该菜单是否允许创建,是否有提醒消息")
@PostMapping(value = "/selectHaveMessage")
ResultBean selectHaveMessage(@RequestBody SysHaveMessageQuery sysHaveMessageQuery){
return sysUserService.selectHaveMessage(sysHaveMessageQuery);
}
@ApiOperation(value = "根据用户sid获取当前用户所有的组织机构list")
@GetMapping(value = "/getOrgListByUserSid")
ResultBean<List<OrgList>> getOrgListByUserSid(@RequestParam("userSid") String userSid) {
return sysUserService.getOrgListByUserSid(userSid);
}
@ApiOperation(value = "根据多个角色sid以及机构sid获取本机构链角色的用户")
@PostMapping(value = "/getUserByRoles")
ResultBean<List<SysUserVo>> getUserByRoles(@RequestBody UserByRolesAndOrgQuery userQuery) {
return sysUserService.getUserByRoles(userQuery);
}
@ApiOperation(value = "分享时查询的人员")
@PostMapping(value = "/shareSelectUser")
ResultBean<List<String>> shareSelectUser(@RequestBody ShareUserQuery shareUserQuery){
return sysUserService.shareSelectUser(shareUserQuery);
}
@ApiOperation(value = "查询角色权限的层级获取权限id")
@PostMapping(value = "/selectPrivilegeLevel")
ResultBean<String> selectPrivilegeLevel(@RequestBody PrivilegeQuery query) {
return sysUserService.selectPrivilegeLevel(query);
}
@ApiOperation(value = "清除所有离职人员的移动端登录缓存")
@PostMapping(value = "/removeRedis")
ResultBean removeRedis() {
return sysUserService.removeRedis();
}
}

View File

@@ -0,0 +1,129 @@
package com.yxt.portal.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.portal.biz.sysuserrole.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
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("apiadmin/sysuserrole")
public class SysUserRoleRest {
@Autowired
private SysUserRoleService sysUserRoleService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysUserRoleVo>> listPage(@RequestBody PagerQuery<SysUserRoleQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SysUserRoleVo> pv = sysUserRoleService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<SysUserRoleVo>> listAll(@RequestBody SysUserRoleQuery query){
ResultBean rb = ResultBean.fireFail();
List<SysUserRoleVo> list = sysUserRoleService.listAllVo(query);
return rb.success().setData(list);
}
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<SysUserRoleVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<SysUserRoleVo> list = sysUserRoleService.listVo();
return rb.success().setData(list);
}
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody SysUserRoleDto dto){
ResultBean rb = ResultBean.fireFail();
sysUserRoleService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("修改保存")
@PostMapping("/update")
public ResultBean update(@RequestBody 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();
}
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids){
ResultBean rb = ResultBean.fireFail();
sysUserRoleService.delByIds(ids);
return rb.success();
}
@ApiOperation("根据用户sid和角色sid删除记录")
@GetMapping("/delByUserSidAndRoleSid/{userSid}/{roleSid}")
public ResultBean delByUserSidAndRoleSid(@PathVariable("userSid")String userSid,
@PathVariable("roleSid")String roleSid) {
ResultBean rb = ResultBean.fireFail();
sysUserRoleService.delByUserSidAndRoleSid(userSid,roleSid);
return rb.success();
}
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<SysUserRoleVo> fetch(@PathVariable("id") String id){
ResultBean rb = ResultBean.fireFail();
SysUserRoleVo vo = sysUserRoleService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@ApiOperation("根据用户sid查询用户角色sid列表")
@GetMapping("/getUserRoleSidByUserSid/{userSid}")
public ResultBean<List<String>> getUserRoleSidByUserSid(@PathVariable("userSid") String userSid) {
return sysUserRoleService.getUserRoleSidByUserSid(userSid);
}
@ApiOperation("根据角色sid查询用户id列表")
@GetMapping("/getUserIdListByRoleSid")
public ResultBean<List<String>> getUserIdListByRoleSid(@RequestParam("roleList") List<String> roleList) {
return sysUserRoleService.getUserIdListByRoleSid(roleList);
}
@ApiOperation("查询用户的角色")
@GetMapping("/selectByUserSid")
ResultBean<List<String>> selectByUserSid(@RequestParam("userSid") String userSid) {
return sysUserRoleService.selectByUserSids(userSid);
}
}

View File

@@ -0,0 +1,10 @@
package com.yxt.portal.apiwx;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController("com.yxt.base.apiwx.WxHomeRest")
@RequestMapping("/apiwx/home")
public class WxHomeRest {
}

View File

@@ -0,0 +1,25 @@
package com.yxt.portal.biz.dictcommon;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/6/23 15:40
* @description 数据字典数据项
*/
@Data
public class DictCommon extends BaseEntity {
private static final long serialVersionUID = 8921237815183601526L;
@ApiModelProperty(value = "数据项值")
private String dictKey;
@ApiModelProperty(value = "数据类型")
private String dictType;
@ApiModelProperty(value = "数据项相对应的value值")
private String dictValue;
@ApiModelProperty(value = "数据项的父级sid")
private String parentSid;
@ApiModelProperty(value = "分组名称")
private String groupName;
}

View File

@@ -0,0 +1,36 @@
package com.yxt.portal.biz.dictcommon;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author dimengzhe
* @date 2021/6/23 15:41
* @description 数据字典数据项参数
*/
@Data
public class DictCommonDto implements Dto {
private static final long serialVersionUID = 9102264215113210976L;
@ApiModelProperty(value = "数据项值", required = true)
@NotBlank(message = "数据项值不能为空")
private String dictKey;
@ApiModelProperty(value = "数据类型", required = true)
@NotBlank(message = "数据类型不能为空")
private String dictType;
@ApiModelProperty(value = "数据项相对应的value值", required = true)
@NotBlank(message = "数据项相对应的value值不能为空")
private String dictValue;
@ApiModelProperty(value = "数据项的父级sid", required = true)
@NotBlank(message = "数据项的父级sid不能为空")
private String parentSid;
@ApiModelProperty(value = "分组名称", required = true)
private String groupName;
}

View File

@@ -0,0 +1,65 @@
package com.yxt.portal.biz.dictcommon;
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.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @author dimengzhe
* @date 2021/7/5 21:59
* @description
*/
@FeignClient(
contextId = "anrui-portal-DictCommon",
name = "anrui-portal",
path = "v1/dictcommons",
fallback = DictCommonFeignFallback.class)
public interface DictCommonFeign {
@PostMapping(value = "/save")
@ResponseBody
@ApiOperation(value = "数据字典数据项保存")
ResultBean save(@Valid @RequestBody DictCommonDto dictCommonDto);
@PostMapping("/pageList")
@ResponseBody
@ApiOperation(value = "数据字典数据项分页列表")
ResultBean<PagerVo<DictCommonVo>> pageList(@RequestBody PagerQuery<DictCommonQuery> pagerQuery);
@PostMapping("/update/{sid}")
@ResponseBody
@ApiOperation(value = "数据字典修改后保存")
ResultBean update(@Valid @RequestBody DictCommonDto dictCommonDto, @ApiParam(value = "数据项sid", required = true) @PathVariable("sid") String sid);
@ResponseBody
@DeleteMapping("/delete/{sid}")
@ApiOperation(value = "删除")
ResultBean delete(@ApiParam(value = "数据项sid", required = true) @PathVariable("sid") String sid);
@ResponseBody
@GetMapping("/selectBykey/{key}/{type}")
@ApiOperation(value = "数据字典信息修改时的初始化信息")
public ResultBean<DictCommonVo> selectBykey(@ApiParam(value = "数据字典key", required = true) @PathVariable("key") String key, @ApiParam(value = "数据字典type", required = true) @PathVariable("type") String type);
@GetMapping("/typeValues")
@ResponseBody
@ApiOperation("下拉框的获取")
ResultBean<List<DictCommonVo>> getTypeValues(@RequestParam("type") String type, @RequestParam(value = "psid", defaultValue = "0")String psid);
@GetMapping("/getFirstDictKeyByType")
@ResponseBody
@ApiOperation("根据数据字典的key获取第一个值默认值")
ResultBean getFirstDictKeyByType(@RequestParam("dictType") String dictType, @RequestParam("psid") String psid);
@GetMapping("/getTypeValueList")
@ResponseBody
@ApiOperation("根据分类编码和数据分组查询数据字典")
ResultBean<List<DictCommonVo>> getTypeValueList(@RequestParam("type")String type,@RequestParam("groupNum")String groupNum);
}

View File

@@ -0,0 +1,57 @@
package com.yxt.portal.biz.dictcommon;
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;
/**
* @author dimengzhe
* @date 2021/7/5 22:00
* @description
*/
@Component
public class DictCommonFeignFallback implements DictCommonFeign {
@Override
public ResultBean save(DictCommonDto dictCommonDto) {
return ResultBean.fireFail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean<PagerVo<DictCommonVo>> pageList(PagerQuery<DictCommonQuery> pagerQuery) {
return new ResultBean<PagerVo<DictCommonVo>>().fail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean update(DictCommonDto dictCommonDto, String sid) {
return ResultBean.fireFail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean delete(String sid) {
return ResultBean.fireFail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean<DictCommonVo> selectBykey(String key, String type) {
return null;
}
@Override
public ResultBean<List<DictCommonVo>> getTypeValues(String type, String psid) {
return null;
}
@Override
public ResultBean getFirstDictKeyByType(String dictType, String psid) {
return ResultBean.fireFail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean<List<DictCommonVo>> getTypeValueList(String type, String groupNum) {
return null;
}
}

View File

@@ -0,0 +1,60 @@
package com.yxt.portal.biz.dictcommon;
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 java.util.List;
/**
* @author dimengzhe
* @date 2021/6/23 15:07
* @description
*/
@Mapper
public interface DictCommonMapper extends BaseMapper<DictCommon> {
/**
* 根据数据项的key值和分类类型code值查询数量
*
* @param dictKey 数据项key值
* @param dictType 类型code值
* @param parentSid 父级sid无父级的此字段为0
* @return
*/
DictCommon selectSize(@Param("dictkey") String dictKey, @Param("dictType") String dictType, @Param("parentSid") String parentSid);
/**
* 根据类型查询数据项
*
* @param dictTypeCode 数据分类的类型
* @return
*/
List<DictCommon> selectByType(String dictTypeCode);
IPage<DictCommonVo> pageList(
IPage<DictCommonQuery> page, @Param(Constants.WRAPPER) Wrapper<DictCommonVo> qw);
DictCommonVo selectBykey(@Param("key") String key, @Param("type") String sid);
/**
* 根据类型和父级sid查询数据字典
*
* @param qw 查询条件
* @return
*/
List<DictCommonVo> getValue(@Param(Constants.WRAPPER) QueryWrapper<DictCommonVo> qw);
/**
* 根据数据字典编码类别和分组查询数据字典
* @param type 数据字典编码类别
* @param groupNum 数据字典分组
* @return
*/
List<DictCommonVo> getList(@Param("type") String type, @Param("groupNum") String groupNum);
}

View File

@@ -0,0 +1,43 @@
<?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.portal.biz.dictcommon.DictCommonMapper">
<select id="selectSize" resultType="com.yxt.portal.biz.dictcommon.DictCommon">
SELECT *
FROM dict_common
WHERE dictKey = #{dictkey}
AND dictType = #{dictType}
AND parentSid = #{parentSid}
</select>
<select id="selectByType" resultType="com.yxt.portal.biz.dictcommon.DictCommon">
SELECT *
FROM dict_common
WHERE dictType = #{dictTypeCode}
</select>
<select id="pageList" resultType="com.yxt.portal.biz.dictcommon.DictCommonVo">
SELECT dc.dictValue, dc.dictType, dc.dictKey, dc.sid, dc.parentSid,dc.groupName
FROM dict_common dc
${ew.customSqlSegment}
</select>
<!--获取下拉框-->
<select id="getValue" resultType="com.yxt.portal.biz.dictcommon.DictCommonVo">
SELECT dc.sid, dc.dictType, dc.dictKey, dc.dictValue, dc.parentSid
FROM dict_common dc ${ew.customSqlSegment}
</select>
<select id="selectBykey" resultType="com.yxt.portal.biz.dictcommon.DictCommonVo">
SELECT sid,
dictKey,
dictType,
dictValue,
groupName
FROM dict_common
WHERE dictType = #{type}
AND dictkey = #{key}
</select>
<select id="getList" resultType="com.yxt.portal.biz.dictcommon.DictCommonVo">
select * from dict_common dc where dc.dictType = #{type} and find_in_set(#{groupNum}, replace(dc.groupName, ',', ','));
</select>
</mapper>

View File

@@ -0,0 +1,24 @@
package com.yxt.portal.biz.dictcommon;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/6/28 10:39
* @description
*/
@Data
public class DictCommonQuery implements Query {
private static final long serialVersionUID = -787372981183812826L;
@ApiModelProperty(value = "数据字典条目key", required = false)
private String dictKey;
@ApiModelProperty(value = "数据字典文本", required = false)
private String dictValue;
@ApiModelProperty(value ="dictType")
private String dictType;
}

View File

@@ -0,0 +1,77 @@
package com.yxt.portal.biz.dictcommon;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author dimengzhe
* @date 2021/6/23 15:06
* @description
*/
@Service
public class DictCommonService extends MybatisBaseService<DictCommonMapper, DictCommon> {
public DictCommon selectSize(String dictKey, String dictType, String parentSid) {
return baseMapper.selectSize(dictKey, dictType, parentSid);
}
public List<DictCommon> selectByType(String dictTypeCode) {
return baseMapper.selectByType(dictTypeCode);
}
public IPage<DictCommonVo> pageList(PagerQuery<DictCommonQuery> pagerQuery) {
IPage<DictCommonQuery> page = PagerUtil.queryToPage(pagerQuery);
DictCommonQuery params = pagerQuery.getParams();
QueryWrapper<DictCommonVo> qw = new QueryWrapper<>();
if (params != null) {
String dictKey = params.getDictKey();
String dictValue = params.getDictValue();
if (StringUtils.isNotBlank(dictValue)) {
qw.like("dc.dictValue", dictValue);
}
if (StringUtils.isNotBlank(dictKey)) {
qw.like("dc.dictKey", dictKey);
}
if (StringUtils.isNotBlank(params.getDictType())) {
qw.eq("dc.dictType", params.getDictType());
}
}
qw.orderByDesc("dc.createTime");
return baseMapper.pageList(page, qw);
}
/**
* 根据类型和父级sid查询数据字典
*
* @param dictCommonTypeQuery 查询条件
* @return
*/
public List<DictCommonVo> getValue(DictCommonTypeQuery dictCommonTypeQuery) {
QueryWrapper<DictCommonVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(dictCommonTypeQuery.getType())) {//类型
qw.eq("dc.dictType", dictCommonTypeQuery.getType());
}
if (StringUtils.isNotBlank(dictCommonTypeQuery.getPsid())) {//父级sid
qw.eq("dc.parentSid", dictCommonTypeQuery.getPsid());
}
return baseMapper.getValue(qw);
}
public DictCommonVo selectBykey(String key, String type) {
return baseMapper.selectBykey(key, type);
}
public ResultBean<List<DictCommonVo>> getList(String type, String groupNum) {
ResultBean<List<DictCommonVo>> rb = ResultBean.fireFail();
List<DictCommonVo> list = baseMapper.getList(type,groupNum);
return rb.success().setData(list);
}
}

View File

@@ -0,0 +1,21 @@
package com.yxt.portal.biz.dictcommon;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/9/30 15:33
* @description 下拉框条件
*/
@Data
public class DictCommonTypeQuery implements Query {
private static final long serialVersionUID = 139959085226402464L;
@ApiModelProperty(value = "数据字典类型", required = true)
private String type;
@ApiModelProperty(value = "psid", required = false,example = "0")
private String psid;
}

View File

@@ -0,0 +1,32 @@
package com.yxt.portal.biz.dictcommon;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/6/23 15:54
* @description
*/
@Data
public class DictCommonVo implements Vo {
private static final long serialVersionUID = -1094142938193916816L;
@ApiModelProperty(value = "数据字典项sid")
private String sid;
@ApiModelProperty(value = "数据字典项key")
private String dictKey;
@ApiModelProperty(value = "数据字典类型")
private String dictType;
@ApiModelProperty(value = "数据字典项名称")
private String dictValue;
@ApiModelProperty(value = "父级sid0为第一级")
private String parentSid;
@ApiModelProperty(value = "分组名称")
private String groupName;
}

View File

@@ -0,0 +1,21 @@
package com.yxt.portal.biz.dicttype;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/7/5 22:29
* @description
*/
@Data
public class DictType extends BaseEntity {
private static final long serialVersionUID = -2790449398289680139L;
@ApiModelProperty(value = "类型代码")
private String dictTypeCode;
@ApiModelProperty(value = "类型名称")
private String dictTypeName;
}

View File

@@ -0,0 +1,30 @@
package com.yxt.portal.biz.dicttype;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author dimengzhe
* @date 2021/6/23 15:20
* @description 数据字典类型参数
*/
@Data
public class DictTypeDto implements Dto {
private static final long serialVersionUID = -2302005624272862359L;
@ApiModelProperty(value = "类型代码", required = true)
@NotBlank(message = "类型代码不能为空")
private String dictTypeCode;
@ApiModelProperty(value = "类型名称", required = true)
@NotBlank(message = "类型名称不能为空")
private String dictTypeName;
@ApiModelProperty(value = "类型说明", required = false)
private String remarks;
}

View File

@@ -0,0 +1,46 @@
package com.yxt.portal.biz.dicttype;
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.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @author dimengzhe
* @date 2021/6/23 15:21
* @description 数据字典类型对外接口
*/
@FeignClient(
contextId = "yxt-anrui-portal-DictType",
name = "yxt-anrui-portal",
path = "v1/dicttypes",
fallback = DictTypeFeignFallback.class)
public interface DictTypeFeign {
@PostMapping(value = "/save")
@ResponseBody
@ApiOperation(value = "数据字典类型保存")
ResultBean save(@Valid @RequestBody DictTypeDto dictTypeDto);
@PostMapping("/pageList")
@ResponseBody
@ApiOperation(value = "数据字典类型分页列表")
ResultBean<PagerVo<DictTypeVo>> pageList(@RequestBody PagerQuery<DictTypeQuery> pagerQuery);
@PostMapping("/update/{sid}")
@ResponseBody
@ApiOperation(value = "数据字典类型更新")
ResultBean update(@Valid DictTypeDto dictTypeDto, @ApiParam(value = "数据字典类型sid", required = true) @PathVariable("sid") String sid);
@DeleteMapping("/delete/{sid}")
@ResponseBody
@ApiOperation(value = "数据字典类型删除")
ResultBean delete(@ApiParam(value = "sid", required = true) @PathVariable("sid") String sid);
}

View File

@@ -0,0 +1,34 @@
package com.yxt.portal.biz.dicttype;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
/**
* @author dimengzhe
* @date 2021/7/5 22:32
* @description
*/
public class DictTypeFeignFallback implements DictTypeFeign{
@Override
public ResultBean save(DictTypeDto dictTypeDto) {
return ResultBean.fireFail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean<PagerVo<DictTypeVo>> pageList(PagerQuery<DictTypeQuery> pagerQuery) {
return new ResultBean<PagerVo<DictTypeVo>>().fail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean update(DictTypeDto dictTypeDto, String sid) {
return ResultBean.fireFail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean delete(String sid) {
return ResultBean.fireFail().setMsg("网站维护,请稍后再试");
}
}

View File

@@ -0,0 +1,28 @@
package com.yxt.portal.biz.dicttype;
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 org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author dimengzhe
* @date 2021/6/23 14:56
* @description
*/
@Mapper
public interface DictTypeMapper extends BaseMapper<DictType> {
/**
* 查询该类型代码存在的数量
*
* @param dictTypeCode 类型代码
* @return
*/
int selectSize(String dictTypeCode);
IPage<DictTypeVo> pageList(IPage<?> page, @Param(Constants.WRAPPER) Wrapper<DictTypeVo> qw);
}

View File

@@ -0,0 +1,17 @@
<?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.portal.biz.dicttype.DictTypeMapper">
<select id="selectSize" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM dict_type
WHERE dictTypeCode = #{dictTypeCode}
</select>
<select id="pageList" resultType="com.yxt.portal.biz.dicttype.DictTypeVo">
SELECT dt.dictTypeCode, dt.dictTypeName, dt.sid, dt.remarks
FROM dict_type dt
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,24 @@
package com.yxt.portal.biz.dicttype;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/6/28 9:17
* @description
*/
@Data
public class DictTypeQuery implements Query {
private static final long serialVersionUID = -1033205660448956012L;
@ApiModelProperty(value = "数据字典code", required = false)
private String dictTypeCode;
@ApiModelProperty(value = "数据分类名称", required = false)
private String dictTypeName;
@ApiModelProperty(value = "说明", required = false)
private String remarks;
}

View File

@@ -0,0 +1,50 @@
package com.yxt.portal.biz.dicttype;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import org.springframework.stereotype.Service;
/**
* @author dimengzhe
* @date 2021/6/23 14:55
* @description 数据字典类型实现类
*/
@Service
public class DictTypeService extends MybatisBaseService<DictTypeMapper, DictType> {
/**
* 根据此类型代码存在的数量
*
* @param dictTypeCode 类型代码
* @return 存在此类型代码的数量
*/
public int selectSize(String dictTypeCode) {
return baseMapper.selectSize(dictTypeCode);
}
public IPage<DictTypeVo> pageList(PagerQuery<DictTypeQuery> pagerQuery) {
IPage<DictTypeQuery> page = PagerUtil.queryToPage(pagerQuery);
DictTypeQuery params = pagerQuery.getParams();
QueryWrapper<DictTypeVo> qw = new QueryWrapper<>();
if (params != null) {
String dictTypeCode = params.getDictTypeCode();
if (StringUtils.isNotBlank(dictTypeCode)) {
qw.like("dt.dictTypeCode", dictTypeCode);
}
String dictTypeName = params.getDictTypeName();
if (StringUtils.isNotBlank(dictTypeName)) {
qw.like("dt.dictTypeName", dictTypeName);
}
if (StringUtils.isNotBlank(params.getRemarks())) {
qw.like("dt.remarks", params.getRemarks());
}
}
qw.orderByDesc("dt.createTime");
return baseMapper.pageList(page, qw);
}
}

View File

@@ -0,0 +1,32 @@
package com.yxt.portal.biz.dicttype;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/6/23 15:18
* @description 数据字典类型返回数据
*/
@Data
public class DictTypeVo implements Vo {
private static final long serialVersionUID = 9052935182700117654L;
@ApiModelProperty(value = "数据类型sid")
private String sid;
@ApiModelProperty(value = "类型代码")
private String dictTypeCode;
@ApiModelProperty(value = "类型名称")
private String dictTypeName;
@ApiModelProperty(value = "说明")
private String remarks;
@ApiModelProperty(value = "分组名称")
private String groupName;
}

View File

@@ -0,0 +1,4 @@
/**
* 宇信通 仓库管理 项目后台逻辑和接口
*/
package com.yxt.portal.biz;

View File

@@ -0,0 +1,28 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,47 @@
package com.yxt.portal.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 = "apiadmin/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) ;
}

View File

@@ -0,0 +1,11 @@
package com.yxt.portal.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;
}
}

View File

@@ -0,0 +1,19 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,12 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,54 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,54 @@
package com.yxt.portal.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 ;
}

View File

@@ -0,0 +1,74 @@
package com.yxt.portal.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);
}

View File

@@ -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.portal.biz.sysfunction.SysFunctionMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.portal.biz.sysfunction.SysFunctionVo">
SELECT *
FROM sys_function
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.portal.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.portal.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.portal.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.portal.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.portal.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>

View File

@@ -0,0 +1,53 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,344 @@
package com.yxt.portal.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.portal.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;
}
}

View File

@@ -0,0 +1,50 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,59 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,64 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,72 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,30 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,82 @@
package com.yxt.portal.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);
}

View File

@@ -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.portal.biz.sysmenu.SysMenuMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.portal.biz.sysmenu.SysMenuVo">
SELECT *
FROM sys_menu
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.portal.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.portal.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.portal.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.portal.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.portal.biz.sysmenu.SysMenu">
select * from sys_menu where menuUrl = #{menuUrl}
</select>
<!--将该资源下的所有一级菜单列表-->
<select id="fetchRootMenuBySourceSid" resultType="com.yxt.portal.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>

View File

@@ -0,0 +1,66 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,424 @@
package com.yxt.portal.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.portal.biz.sysmenurole.SysMenuRoleVo;
import com.yxt.portal.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);
}
}

View File

@@ -0,0 +1,59 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,74 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,19 @@
package com.yxt.portal.biz.sysmenurole;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description: 菜单和角色临时存储
* @author: dimengzhe
* @date: 2023/6/1
**/
@Data
public class MenuRoleVo {
@ApiModelProperty("数据权限ID(1集团、2事业部、3分公司、4部门、5个人)")
private String dataRuleId;
@ApiModelProperty("菜单sid")
private String menuSid;
}

View File

@@ -0,0 +1,37 @@
package com.yxt.portal.biz.sysmenurole;
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: SysMenuRole.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenurole.SysMenuRole <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_role")
@Data
public class SysMenuRole extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("数据权限ID(1集团、2事业部、3分公司、4部门、5个人)")
private String dataRuleId;
}

View File

@@ -0,0 +1,30 @@
package com.yxt.portal.biz.sysmenurole;
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: SysMenuRoleDto.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleDto <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 SysMenuRoleDataDto implements Dto {
@ApiModelProperty("菜单与角色关联表sid")
private String sid;
@ApiModelProperty("数据权限ID(1集团、2事业部、3分公司、4部门、5个人)")
private String dataRuleId;
}

View File

@@ -0,0 +1,30 @@
package com.yxt.portal.biz.sysmenurole;
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: SysMenuRoleQuery.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleQuery <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 SysMenuRoleDataQuery implements Query {
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("菜单名称")
private String menuName;
}

View File

@@ -0,0 +1,32 @@
package com.yxt.portal.biz.sysmenurole;
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: SysMenuRoleVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleVo <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 SysMenuRoleDataVo implements Vo {
@ApiModelProperty("菜单与角色关联表sid")
private String sid;
@ApiModelProperty("菜单名称")
private String name;
@ApiModelProperty("数据权限ID(1集团、2事业部、3分公司、4部门、5个人)")
private String dataRuleId;
}

View File

@@ -0,0 +1,31 @@
package com.yxt.portal.biz.sysmenurole;
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: SysMenuRoleDto.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleDto <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 SysMenuRoleDto implements Dto {
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("角色sid")
private String roleSid;
}

View File

@@ -0,0 +1,60 @@
package com.yxt.portal.biz.sysmenurole;
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.portal.biz.sysmenurole.MenuRoleVo;
import com.yxt.portal.biz.sysmenurole.SysMenuRole;
import com.yxt.portal.biz.sysmenurole.SysMenuRoleDataVo;
import com.yxt.portal.biz.sysmenurole.SysMenuRoleVo;
import org.apache.ibatis.annotations.*;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuRoleMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.sysmenurole.SysMenuRoleMapper <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 SysMenuRoleMapper extends BaseMapper<SysMenuRole> {
//@Update("update sys_menu_role set name=#{msg} where id=#{id}")
//IPage<SysMenuRoleVo> voPage(IPage<SysMenuRole> page, @Param(Constants.WRAPPER) QueryWrapper<SysMenuRole> qw);
IPage<SysMenuRoleVo> selectPageVo(IPage<SysMenuRole> page, @Param(Constants.WRAPPER) Wrapper<SysMenuRole> qw);
List<SysMenuRoleVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysMenuRole> qw);
@Select("select * from sys_menu_role")
List<SysMenuRoleVo> selectListVo();
@Delete("delete from sys_menu_role where roleSid=#{roleSid}")
void delByRoleSid(@Param("roleSid") String roleSid);
List<SysMenuRoleVo> list(@Param(Constants.WRAPPER) QueryWrapper<SysMenuRoleVo> qw);
List<MenuRoleVo> selectByRoleSid(String roleSid);
List<SysMenuRoleDataVo> selMenuByRole(@Param(Constants.WRAPPER) QueryWrapper qw);
List<SysMenuRoleDataVo> selMenuByRoleApp(@Param(Constants.WRAPPER) QueryWrapper qw);
@Update("update sys_menu_role set dataRuleId = #{dataRuleId} where sid = #{sid}")
void updateDataByRoleMenu(@Param("sid") String sid,@Param("dataRuleId") String dataRuleId);
@Update("update sys_mobile_menu_role set dataRuleId = #{dataRuleId} where sid = #{sid}")
void updateDataByRoleMenuApp(@Param("sid") String sid,@Param("dataRuleId") String dataRuleId);
}

View File

@@ -0,0 +1,74 @@
<?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.portal.biz.sysmenurole.SysMenuRoleMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.portal.biz.sysmenurole.SysMenuRoleVo">
SELECT * FROM sys_menu_role
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.portal.biz.sysmenurole.SysMenuRoleVo">
SELECT * FROM sys_menu_role
<where>
${ew.sqlSegment}
</where>
</select>
<select id="list" parameterType="com.yxt.portal.biz.sysmenurole.SysMenuRoleQuery"
resultType="com.yxt.portal.biz.sysmenurole.SysMenuRoleVo">
SELECT distinct rm.menuSid as sid,
m.name as menuName,
m.menuUrl,
m.pageUrl,
m.pageName,
m.pageUrlRedirect,
m.pageAliasName,
m.iconUrl,
m.sourceSid,
m.isShow,
m.pSid,
m.sortNo,
m.remarks,
1 as alwaysShow
FROM sys_menu_role rm
LEFT JOIN sys_menu m ON rm.menuSid = m.sid
${ew.customSqlSegment}
</select>
<select id="selectByRoleSid" resultType="com.yxt.portal.biz.sysmenurole.MenuRoleVo">
select menuSid, dataRuleId
from sys_menu_role
where roleSid = #{roleSid}
</select>
<select id="selMenuByRole" resultType="com.yxt.portal.biz.sysmenurole.SysMenuRoleDataVo">
SELECT
smr.sid,
sm.`name`,
smr.`dataRuleId`
FROM
sys_menu sm
LEFT JOIN sys_menu_role smr
ON smr.`menuSid` = sm.`sid`
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selMenuByRoleApp" resultType="com.yxt.portal.biz.sysmenurole.SysMenuRoleDataVo">
SELECT
smmr.sid,
smm.`name`,
smmr.`dataRuleId`
FROM
sys_mobile_menu smm
LEFT JOIN sys_mobile_menu_role smmr
ON smmr.`menuSid` = smm.`sid`
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

View File

@@ -0,0 +1,40 @@
package com.yxt.portal.biz.sysmenurole;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuRoleQuery.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleQuery <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 SysMenuRoleQuery implements Query {
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("多个角色sid计集合")
private List<String> roleSids;
@ApiModelProperty("资源sid")
private String sourceSid;
@ApiModelProperty("是否是系统管理员")
private String isAdmin;
}

View File

@@ -0,0 +1,213 @@
package com.yxt.portal.biz.sysmenurole;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.portal.biz.sysmenurole.*;
import com.yxt.portal.biz.sysmenu.SysMenuService;
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.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuRoleService.java <br/>
* Class: com.yxt.anrui.portal.biz.sysmenurole.SysMenuRoleService <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 SysMenuRoleService extends MybatisBaseService<SysMenuRoleMapper, SysMenuRole> {
@Autowired
private SysMenuService sysMenuService;
public PagerVo<SysMenuRole> listPage(PagerQuery<SysMenuRoleQuery> pq) {
SysMenuRoleQuery query = pq.getParams();
QueryWrapper<SysMenuRole> qw = createQueryWrapper(query);
IPage<SysMenuRole> page = PagerUtil.queryToPage(pq);
IPage<SysMenuRole> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysMenuRole> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysMenuRole> listAll(SysMenuRoleQuery query) {
QueryWrapper<SysMenuRole> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysMenuRole> createQueryWrapper(SysMenuRoleQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysMenuRole> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMenuSid())) {
qw.eq("menuSid", query.getMenuSid());
}
if (StringUtils.isNotBlank(query.getRoleSid())) {
qw.eq("roleSid", query.getRoleSid());
}
return qw;
}
public PagerVo<SysMenuRoleVo> listPageVo(PagerQuery<SysMenuRoleQuery> pq) {
SysMenuRoleQuery query = pq.getParams();
QueryWrapper<SysMenuRole> qw = createQueryWrapper(query);
IPage<SysMenuRole> page = PagerUtil.queryToPage(pq);
IPage<SysMenuRoleVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysMenuRoleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysMenuRoleVo> listAllVo(SysMenuRoleQuery query) {
QueryWrapper<SysMenuRole> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SysMenuRoleVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SysMenuRoleDto dto) {
SysMenuRole entity = new SysMenuRole();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public SysMenuRoleVo fetchByIdVo(String id) {
SysMenuRole entity = this.fetchById(id);
SysMenuRoleVo vo = new SysMenuRoleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public void delByRoleSid(String roleSid) {
baseMapper.delByRoleSid(roleSid);
}
// 不分页列表
public List<SysMenuRoleVo> list(SysMenuRoleQuery query) {
// mybits所用的查询条件封装类
QueryWrapper<SysMenuRoleVo> qw = buildQueryWrapper(query);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中
*
* @param query
* @return
*/
private QueryWrapper<SysMenuRoleVo> buildQueryWrapper(SysMenuRoleQuery query) {
QueryWrapper<SysMenuRoleVo> qw = new QueryWrapper<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getSourceSid())) {
qw.eq("m.sourceSid", query.getSourceSid());
}
/*if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getRoleSid())) {
qw.in("rm.roleSid", query.getRoleSid());
}*/
if (StringUtils.isNotBlank(query.getIsAdmin())) {
if (!query.getIsAdmin().equals("1")){
qw.eq("m.isEnable", 1);
}
}
if (query.getRoleSids() != null && query.getRoleSids().size() > 0) {
qw.in("rm.roleSid", query.getRoleSids());
}
qw.eq("m.isShow", 1);
qw.orderByAsc("m.sortNo");
}
return qw;
}
/**
* 资源菜单树形列表
*
* @param query:roleSids,sourceSid
* @return 资源菜单树形列表(第一级一级菜单 第二级二级菜单)
*/
public List<Map<String, Object>> getSourceMenuTreeOfRoles(SysMenuRoleQuery query, Map<String, Object> map_rolemenus) {
//获取当前资源的菜单列表
List<Map<String, Object>> list_menus_map = new ArrayList<Map<String, Object>>();
if (null == query)
return list_menus_map;
//角色s的某个资源的所有菜单列表
List<SysMenuRoleVo> list_menu = list(query);
list_menus_map = sysMenuService.getSourceMenuTree(list_menu, map_rolemenus);
return list_menus_map;
}
public List<MenuRoleVo> selectByRoleSid(String roleSid) {
return baseMapper.selectByRoleSid(roleSid);
}
public ResultBean<List<SysMenuRoleDataVo>> selMenuByRole(SysMenuRoleDataQuery query) {
ResultBean rb = ResultBean.fireFail();
QueryWrapper qw = new QueryWrapper<>();
qw.eq("smr.roleSid",query.getRoleSid());
if (StringUtils.isNotBlank(query.getMenuName())){
qw.like("sm.name",query.getMenuName());
}
List<SysMenuRoleDataVo> sysMenuRoleDataVos = baseMapper.selMenuByRole(qw);
return rb.success().setData(sysMenuRoleDataVos);
}
public ResultBean<List<SysMenuRoleDataVo>> selMenuByRoleApp(SysMenuRoleDataQuery query) {
ResultBean rb = ResultBean.fireFail();
QueryWrapper qw = new QueryWrapper<>();
qw.eq("smmr.roleSid",query.getRoleSid());
if (StringUtils.isNotBlank(query.getMenuName())){
qw.like("smm.name",query.getMenuName());
}
List<SysMenuRoleDataVo> sysMenuRoleDataVos = baseMapper.selMenuByRoleApp(qw);
return rb.success().setData(sysMenuRoleDataVos);
}
public ResultBean updateDataByRoleMenu(List<SysMenuRoleDataDto> dtos) {
ResultBean rb = ResultBean.fireFail();
for (SysMenuRoleDataDto dto : dtos) {
if (StringUtils.isNotBlank(dto.getDataRuleId())){
baseMapper.updateDataByRoleMenu(dto.getSid(),dto.getDataRuleId());
}
}
return rb.success();
}
public ResultBean updateDataByRoleMenuApp(List<SysMenuRoleDataDto> dtos) {
ResultBean rb = ResultBean.fireFail();
for (SysMenuRoleDataDto dto : dtos) {
if (StringUtils.isNotBlank(dto.getDataRuleId())){
baseMapper.updateDataByRoleMenuApp(dto.getSid(),dto.getDataRuleId());
}
}
return rb.success();
}
///----获平台角色s的某个资源的菜单树形列表内存操作 开始----
}

View File

@@ -0,0 +1,56 @@
package com.yxt.portal.biz.sysmenurole;
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: SysMenuRoleVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleVo <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 SysMenuRoleVo implements Vo {
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("菜单父级sid")
private String pSid;
@ApiModelProperty("menusid")
private String sid;
@ApiModelProperty("menuUrl")
private String menuUrl;
@ApiModelProperty("menuName")
private String menuName;
@ApiModelProperty("pageUrl")
private String pageUrl;
@ApiModelProperty("iconUrl")
private String iconUrl;
@ApiModelProperty("isShow")
private String isShow;
@ApiModelProperty("alwaysShow")
private Integer alwaysShow;
@ApiModelProperty("pageUrlRedirect")
private String pageUrlRedirect;
@ApiModelProperty("pageAliasName")
private String pageAliasName;
@ApiModelProperty("pageName")
private String pageName;
@ApiModelProperty("remarks")
private String remarks;
}

View File

@@ -0,0 +1,40 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,23 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,29 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,17 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,31 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,87 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,91 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,16 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,23 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,17 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,122 @@
package com.yxt.portal.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.portal.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);
}

View File

@@ -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.portal.biz.sysorganization.SysOrganizationMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.portal.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.portal.biz.sysorganization.SysOrganizationVo">
SELECT *
FROM sys_organization
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectFirstOrgList" resultType="com.yxt.portal.biz.sysorganization.SysOrganizationVo">
SELECT sid, name, psid, orgCode
FROM sys_organization
WHERE psid = '0'
</select>
<select id="selectChildrenListByPsid" resultType="com.yxt.portal.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.portal.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.portal.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.portal.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.portal.biz.sysorganization.SysOrganization">
SELECT *
FROM sys_organization
WHERE psid = '0'
</select>
<select id="getListOrg" resultType="com.yxt.portal.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.portal.biz.sysorganization.SysOrganization">
SELECT *
FROM sys_organization
LIMIT 0,1
</select>
<select id="selectTreeList" resultType="com.yxt.portal.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.portal.biz.sysorganization.SysOrganization">
select *
from sys_organization
where orgCode = #{substring}
</select>
<select id="selectChildernList" resultType="com.yxt.portal.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.portal.biz.sysstafforg.SysStaffOrgVo">
select orgSidPath
from sys_staff_org
where staffSid = #{staffSid}
</select>
<select id="getUseOrgBySid" resultType="com.yxt.portal.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.portal.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.portal.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.portal.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.portal.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.portal.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.portal.biz.sysorganization.SysOrganizationVo">
select *
from sys_organization
where psid = #{sid}
and name = #{name}
</select>
<select id="selectOrgSidList" resultType="com.yxt.portal.biz.sysorganization.SysOrganizationVo">
select sid,name,orgCode from sys_organization so where so.isDept = 0
</select>
<select id="getListDeptByOrgSid" resultType="com.yxt.portal.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.portal.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>

View File

@@ -0,0 +1,58 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,521 @@
package com.yxt.portal.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.portal.biz.sysstaffinfo.SysStaffinfo;
import com.yxt.portal.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.portal.biz.sysstafforg.SysStaffOrg;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgVo;
import com.yxt.portal.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);
}
}

View File

@@ -0,0 +1,86 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,46 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,44 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,22 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,65 @@
package com.yxt.portal.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 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);
}

View File

@@ -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.portal.biz.syspost.SysPostMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.portal.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.portal.biz.syspost.SysPostVo">
SELECT *
FROM sys_post
<where>
${ew.sqlSegment}
</where>
</select>
<!--根据部门sid查询该部门下的所有岗位列表-->
<select id="selectListOne" resultType="com.yxt.portal.biz.syspost.SysPostListVo">
select name, postCode, sid
from sys_post
</select>
<!--根据岗位编码查询岗位信息-->
<select id="selectByPostCode" resultType="com.yxt.portal.biz.syspost.SysPost">
select *
from sys_post
where postCode = #{substring}
</select>
</mapper>

View File

@@ -0,0 +1,41 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,143 @@
package com.yxt.portal.biz.syspost;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.portal.biz.sysorganization.SysOrganization;
import com.yxt.portal.biz.sysorganization.SysOrganizationService;
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.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysPostService.java <br/>
* Class: com.yxt.user.biz.syspost.SysPostService <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 SysPostService extends MybatisBaseService<SysPostMapper, SysPost> {
@Autowired
private SysOrganizationService sysOrganizationService;
public PagerVo<SysPost> listPage(PagerQuery<SysPostQuery> pq) {
SysPostQuery query = pq.getParams();
QueryWrapper<SysPost> qw = createQueryWrapper(query);
IPage<SysPost> page = PagerUtil.queryToPage(pq);
IPage<SysPost> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysPost> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysPost> listAll(SysPostQuery query) {
QueryWrapper<SysPost> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysPost> createQueryWrapper(SysPostQuery query) {
// 多字段Like示例qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysPost> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getName())) {
qw.like("post.name", query.getName());
}
if (StringUtils.isNotBlank(query.getOrgSid())) {
qw.eq("post.orgSid", query.getOrgSid());
}
return qw;
}
public PagerVo<SysPostVo> listPageVo(PagerQuery<SysPostQuery> pq) {
SysPostQuery query = pq.getParams();
QueryWrapper<SysPost> qw = createQueryWrapper(query);
IPage<SysPost> page = PagerUtil.queryToPage(pq);
IPage<SysPostVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysPostVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysPostVo> listAllVo(SysPostQuery query) {
QueryWrapper<SysPost> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SysPostVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SysPostDto dto) {
SysPost entity = new SysPost();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public SysPostVo fetchByIdVo(String id) {
SysPost entity = this.fetchById(id);
SysPostVo vo = new SysPostVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public SysPostVo fetchBySidVo(String sid) {
SysPost entity = baseMapper.fetchBySid(sid);
SysPostVo vo = new SysPostVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<SysPostVo> fetchByOrgSid(String orgSid) {
return baseMapper.fetchByOrgSid(orgSid);
}
public String fetchByOrgSidPostCode() {
List<SysPostVo> sysPostVoList = baseMapper.fetchByOrgSidPostCode();
String pCode = "";
for (SysPostVo sysPostVo : sysPostVoList) {
SysOrganization sysOrganizations = sysOrganizationService.selectOrgCodeByPsid();
String orgCode = sysOrganizations.getOrgCode();
String postCode = sysPostVo.getPostCode();
pCode = orgCode + postCode;
}
return pCode;
}
/**
* 查询所有岗位列表
*
* @return
*/
public List<SysPostListVo> selectList() {
List<SysPostListVo> list = baseMapper.selectListOne();
return list;
}
/**
* 根据岗位编码查询岗位信息
*
* @param substring 岗位编码
* @return
*/
public SysPost selectByPostCode(String substring) {
return baseMapper.selectByPostCode(substring);
}
public SysPost getPostByStaffSid(String sid) {
return baseMapper.getPostByStaffSid(sid);
}
}

View File

@@ -0,0 +1,52 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,48 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,51 @@
package com.yxt.portal.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;
}

View File

@@ -0,0 +1,69 @@
package com.yxt.portal.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.portal.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);
}

View File

@@ -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.portal.biz.sysrole.SysRoleMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.portal.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.portal.biz.sysrole.SysRoleVo">
SELECT *
FROM sys_role
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listAllByUserSid" resultType="com.yxt.portal.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.portal.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.portal.biz.sysrole.SysRole">
SELECT *
FROM sys_role role
where role.name = #{param1}
</select>
<select id="fetchBySid" resultType="com.yxt.portal.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.portal.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.portal.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>

View File

@@ -0,0 +1,38 @@
package com.yxt.portal.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;
}

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