diff --git a/vboot-core/src/main/java/vboot/core/common/mvc/dao/JdbcDao.java b/vboot-core/src/main/java/vboot/core/common/mvc/dao/JdbcDao.java index 8fb41ab..a3df448 100644 --- a/vboot-core/src/main/java/vboot/core/common/mvc/dao/JdbcDao.java +++ b/vboot-core/src/main/java/vboot/core/common/mvc/dao/JdbcDao.java @@ -1,5 +1,6 @@ package vboot.core.common.mvc.dao; +import org.springframework.jdbc.core.BeanPropertyRowMapper; import vboot.core.common.utils.db.DbType; import vboot.core.module.sys.org.root.SysOrg; import vboot.core.common.mvc.api.PageData; @@ -67,6 +68,10 @@ public class JdbcDao { } //-------------------------------------------------------------------------------- + public List findTreeList(String sql, Object... args) { + List list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Ztree.class)); + return XjsonUtil.buildTreeByRecursive(list); + } public List findTreeList(Sqler sqler) { List list = jdbcTemplate.query(sqler.getSql(), sqler.getParams(), (rs, rowNum) -> { diff --git a/vboot-core/src/main/java/vboot/core/common/mvc/pojo/IdOrnumPo.java b/vboot-core/src/main/java/vboot/core/common/mvc/pojo/IdOrnumPo.java new file mode 100644 index 0000000..9798878 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/common/mvc/pojo/IdOrnumPo.java @@ -0,0 +1,10 @@ +package vboot.core.common.mvc.pojo; + +import lombok.Data; + +@Data +public class IdOrnumPo { + private String id; + + private Integer ornum; +} diff --git a/vboot-core/src/main/java/vboot/core/common/mvc/pojo/TreeMovePo.java b/vboot-core/src/main/java/vboot/core/common/mvc/pojo/TreeMovePo.java new file mode 100644 index 0000000..4bb7173 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/common/mvc/pojo/TreeMovePo.java @@ -0,0 +1,14 @@ +package vboot.core.common.mvc.pojo; + +import lombok.Data; + +@Data +public class TreeMovePo { + + private String draid; + + private String droid; + + private String type; + +} diff --git a/vboot-core/src/main/java/vboot/core/framework/security/SecurityConfig.java b/vboot-core/src/main/java/vboot/core/framework/security/SecurityConfig.java index 6233a61..532d6f6 100644 --- a/vboot-core/src/main/java/vboot/core/framework/security/SecurityConfig.java +++ b/vboot-core/src/main/java/vboot/core/framework/security/SecurityConfig.java @@ -100,7 +100,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { //配置security忽略的请求与资源 @Override public void configure(WebSecurity web) { - web.ignoring().antMatchers("/","/auth/**","/ws/**","/assets/**","/druid/**","/login", "/index.html","/vben.html","/vue.html","/favicon.ico","/resource/**","/_app.config.js"); + web.ignoring().antMatchers("/","/auth/**","/ws/**","/ass/oss/main/show","/assets/**","/druid/**","/login", "/index.html","/vben.html","/vue.html","/favicon.ico","/resource/**","/_app.config.js"); //测试环境swagger放行 web.ignoring().antMatchers("/doc.html","/swagger-ui.html","/webjars/**","/swagger-resources/**","/v2/**","/v3/**"); // web.ignoring().antMatchers("/","/login","/getMenuList","/getUserInfo","/assets/**","/druid/**", "/index.html","/vben.html","/vue.html","/favicon.ico","/resource/**","/_app.config.js"); diff --git a/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcApi.java b/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcApi.java index 26594c7..a6a00f6 100644 --- a/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcApi.java +++ b/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcApi.java @@ -32,14 +32,7 @@ public class AuthcApi { @PostMapping("/login") public R login(@Valid @RequestBody LoginVo loginVo, HttpServletRequest request) { //1.登录验证 - UserDo userDo = null; - try { - userDo = jdbcDao.getTp().queryForObject( - "select id,name,pacod,retag,tier from sys_org_user where usnam=? and avtag=1", - new Object[]{loginVo.getUsername()}, new BeanPropertyRowMapper<>(UserDo.class)); - } catch (DataAccessException ignored) { - - } + UserDo userDo = authcService.getDbUserByUsername(loginVo.getUsername());; boolean passFlag = authcService.check(userDo, loginVo); if (!passFlag) { return R.build(402, "账号不存在或密码错误"); @@ -103,8 +96,7 @@ public class AuthcApi { Zuser zuser = (Zuser) auth.getPrincipal(); if (XstrUtil.isBlank(porid)) { - UserDo userDo = jdbcDao.getTp().queryForObject("select id,name,pacod,retag from sys_org_user where id=? and avtag=1", - new Object[]{zuser.getId()}, new BeanPropertyRowMapper<>(UserDo.class)); + UserDo userDo= authcService.getDbUserById(zuser.getId()); authcService.initZuser(zuser, userDo, backMap); } else { authcService.switchPortal(zuser, backMap, porid); @@ -124,9 +116,6 @@ public class AuthcApi { @Autowired private JwtHandler jwtHandler; - @Autowired - private JdbcDao jdbcDao; - @Autowired private MonLogLoginService monLogLoginService; diff --git a/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcOrgHandler.java b/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcOrgHandler.java index b2ef80e..3f39b5b 100644 --- a/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcOrgHandler.java +++ b/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcOrgHandler.java @@ -2,6 +2,8 @@ package vboot.core.framework.security.authc; import cn.hutool.core.util.StrUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataAccessException; +import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Component; import vboot.core.common.mvc.dao.JdbcDao; import vboot.core.framework.security.pojo.UserDo; @@ -52,6 +54,23 @@ public class AuthcOrgHandler { return jdbcDao.findStringList(sql); } + public String findCoopConds(UserDo duser) { + StringBuilder conds = new StringBuilder(); + //1. conds拼接父级id + if (StrUtil.isNotBlank(duser.getTier())) { + String[] pidArr = duser.getTier().split("x"); + for (int i = pidArr.length - 1; i >= 0; i--) { + if (!"".equals(pidArr[i])) { + conds.append("'").append(pidArr[i]).append("',"); + } + } + } else { + conds = new StringBuilder("'" + duser.getId() + "',"); + } + conds = new StringBuilder(conds.substring(0, conds.length() - 1));//优化 + return conds.toString(); + } + @Autowired private JdbcDao jdbcDao; } diff --git a/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcService.java b/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcService.java index 7d6ca13..e0c6b5b 100644 --- a/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcService.java +++ b/vboot-core/src/main/java/vboot/core/framework/security/authc/AuthcService.java @@ -1,6 +1,7 @@ package vboot.core.framework.security.authc; import com.alibaba.fastjson.JSON; +import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.util.DigestUtils; import vboot.core.common.mvc.dao.JdbcDao; @@ -21,8 +22,40 @@ import java.util.Map; @Transactional(rollbackFor = Exception.class) public class AuthcService { + public UserDo getDbUserByUsername(String username){ + UserDo userDo = null; + try { + userDo = jdbcDao.getTp().queryForObject( + "select id,name,pacod,retag,tier,'org' type from sys_org_user where usnam=? and avtag=1", + new Object[]{username}, new BeanPropertyRowMapper<>(UserDo.class)); + } catch (DataAccessException ignored) { + try { + userDo = jdbcDao.getTp().queryForObject( + "select id,name,pacod,retag,tier,'coop' type from sys_coop_user where usnam=? and avtag=1", + new Object[]{username}, new BeanPropertyRowMapper<>(UserDo.class)); + } catch (DataAccessException ignored2) { + } + } + return userDo; + } + + public UserDo getDbUserById(String id){ + UserDo userDo=null; + try { + userDo = jdbcDao.getTp().queryForObject("select id,name,pacod,retag,'org' type from sys_org_user where id=? and avtag=1", + new Object[]{id}, new BeanPropertyRowMapper<>(UserDo.class)); + }catch (DataAccessException ignored){ + try { + userDo = jdbcDao.getTp().queryForObject("select id,name,pacod,retag,'coop' type from sys_coop_user where id=? and avtag=1", + new Object[]{id}, new BeanPropertyRowMapper<>(UserDo.class)); + } catch (DataAccessException ignored2) { + } + } + return userDo; + } + //校验密码是否正确 - public boolean check(UserDo userDo,LoginVo loginVo){ + public boolean check(UserDo userDo, LoginVo loginVo) { boolean passFlag = false; if (userDo != null) { @@ -46,8 +79,11 @@ public class AuthcService { //判断是否已经初始化过了,如已初始化,则可走缓存路线 if (!userDo.getRetag()) {//数据库按步骤路线 //1.获取用户所有的组织架构集:conds - String conds = orgHandler.findConds(userDo); - zuser.setConds(conds); + if ("org".equals(userDo.getType())) { + zuser.setConds(orgHandler.findConds(userDo)); + } else if ("coop".equals(userDo.getType())) { + zuser.setConds(orgHandler.findCoopConds(userDo)); + } //2.根据组织架构集conds查询前台菜单集:menus List menuList; @@ -75,12 +111,23 @@ public class AuthcService { backMap.put("zuser", zuser); //5.更新用户,序列化保存数据,使下次这些数据可直接从缓存表读取 - updateUserCache(zuser, portalList, menuList, btnList); + if ("org".equals(userDo.getType())) { + updateOrgUserCache(zuser, portalList, menuList, btnList); + } else if ("coop".equals(userDo.getType())) { + updateCoopUserCache(zuser, portalList, menuList, btnList); + } //System.out.println("通过数据库"); } else {//缓存路线,可扩展成redis方式 - String sql = "select conds,menus,btns,perms,portals from sys_org_user_cache where id=?"; - Map map = jdbcDao.findMap(sql, zuser.getId()); - zuser.setConds((String) map.get("conds")); + Map map = null; + if ("org".equals(userDo.getType())) { + String sql = "select conds,menus,btns,perms,portals from sys_org_user_cache where id=?"; + map = jdbcDao.findMap(sql, zuser.getId()); + zuser.setConds((String) map.get("conds")); + } else if ("coop".equals(userDo.getType())) { + String sql = "select conds,menus,btns,perms,portals from sys_coop_user_cache where id=?"; + map = jdbcDao.findMap(sql, zuser.getId()); + zuser.setConds((String) map.get("conds")); + } List menuList = JSON.parseArray((String) map.get("menus"), Zmenu.class); List portalList = JSON.parseArray((String) map.get("portals"), Zportal.class); @@ -168,7 +215,7 @@ public class AuthcService { } //缓存用户门户、菜单、按钮到缓存表 - private void updateUserCache(Zuser zuser, List portalList, List menuList, List btnList) { + private void updateOrgUserCache(Zuser zuser, List portalList, List menuList, List btnList) { String menus = JSON.toJSONString(menuList); String portals = JSON.toJSONString(portalList); @@ -195,6 +242,33 @@ public class AuthcService { jdbcDao.update(retagSql, zuser.getId()); } + private void updateCoopUserCache(Zuser zuser, List portalList, List menuList, List btnList) { + + String menus = JSON.toJSONString(menuList); + String portals = JSON.toJSONString(portalList); + StringBuilder btns = new StringBuilder(); + for (String str : btnList) { + btns.append(str).append(";"); + } + + StringBuilder perms = new StringBuilder(); + for (long perm : zuser.getPermArr()) { + perms.append(perm).append(";"); + } + + String existSql = "select count(*) from sys_coop_user_cache where id=?"; + Integer integer = jdbcDao.getTp().queryForObject(existSql, new Object[]{zuser.getId()}, Integer.class); + if (integer > 0) { + String sql = "update sys_coop_user_cache set conds=?,menus=?,btns=?,perms=?,portals=? where id=?"; + jdbcDao.update(sql, zuser.getConds(), menus, btns.toString(), perms.toString(), portals, zuser.getId()); + } else { + String sql = "insert into sys_coop_user_cache(id,conds,menus,btns,perms,portals) VALUES(?,?,?,?,?,?)"; + jdbcDao.update(sql, zuser.getId(), zuser.getConds(), menus, btns.toString(), perms.toString(), portals); + } + String retagSql = "update sys_coop_user set retag=1 where id=?"; + jdbcDao.update(retagSql, zuser.getId()); + } + @Autowired private AuthcOrgHandler orgHandler; diff --git a/vboot-core/src/main/java/vboot/core/framework/security/pojo/UserDo.java b/vboot-core/src/main/java/vboot/core/framework/security/pojo/UserDo.java index 2905247..a01a8c8 100644 --- a/vboot-core/src/main/java/vboot/core/framework/security/pojo/UserDo.java +++ b/vboot-core/src/main/java/vboot/core/framework/security/pojo/UserDo.java @@ -16,4 +16,8 @@ public class UserDo { private String tier; + private String type; + + + } diff --git a/vboot-core/src/main/java/vboot/core/module/ass/coge/velocity/VelocityUtils.java b/vboot-core/src/main/java/vboot/core/module/ass/coge/velocity/VelocityUtils.java index 0f2bd85..f1b2da6 100644 --- a/vboot-core/src/main/java/vboot/core/module/ass/coge/velocity/VelocityUtils.java +++ b/vboot-core/src/main/java/vboot/core/module/ass/coge/velocity/VelocityUtils.java @@ -160,6 +160,8 @@ public class VelocityUtils } if("front".equals(table.getRotyp())){ templates.add("vms/route/route.json.vm"); + }else if("back".equals(table.getRotyp())){ + templates.add("vms/route/route.sql.vm"); } @@ -237,7 +239,11 @@ public class VelocityUtils genTable.getName().replace("_","/")); }else if (template.contains("route.json.vm")) { - fileName = StringUtils.format("vue/{}/route.json", + fileName = StringUtils.format("route/{}/route.json", + genTable.getName().replace("_","/")); + }else if (template.contains("route.sql.vm")) + { + fileName = StringUtils.format("route/{}/route.sql", genTable.getName().replace("_","/")); } // else if (template.contains("domain.java.vm")) diff --git a/vboot-core/src/main/java/vboot/core/module/ass/oss/main/AssOssMainApi.java b/vboot-core/src/main/java/vboot/core/module/ass/oss/main/AssOssMainApi.java index 5c0ba51..d274bcf 100644 --- a/vboot-core/src/main/java/vboot/core/module/ass/oss/main/AssOssMainApi.java +++ b/vboot-core/src/main/java/vboot/core/module/ass/oss/main/AssOssMainApi.java @@ -8,6 +8,10 @@ import org.springframework.web.multipart.MultipartFile; import vboot.core.common.mvc.api.R; import vboot.core.common.mvc.dao.JdbcDao; import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.utils.lang.XstrUtil; +import vboot.core.framework.cache.RedisHandler; +import vboot.core.framework.security.authz.JwtHandler; +import vboot.core.framework.security.pojo.Zuser; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -21,7 +25,7 @@ public class AssOssMainApi { @ApiOperation("查询存储分页") public R get(String name) { Sqler sqler = new Sqler("t.name,t.id,t.type,t.crtim", "ass_oss_main"); - sqler.addInnerJoin("f.size,f.service,f.path", "ass_oss_file f", "f.id=t.filid"); + sqler.addInnerJoin("f.zsize,f.service,f.path", "ass_oss_file f", "f.id=t.filid"); sqler.addLeftJoin("u.name crman", "sys_org_user u", "u.id=t.crman"); sqler.addLike("t.name", name); sqler.addOrder("t.crtim desc"); @@ -34,6 +38,19 @@ public class AssOssMainApi { service.downloadFile(request,response,table,id); } + @GetMapping("show") + @ApiOperation("附件图片预览") + public void show(String token, String id, HttpServletRequest request, HttpServletResponse response) throws Exception { + if(XstrUtil.isBlank(token)){ + return; + } + String uuid = jwtHandler.getClaims(token.substring(7)).getId(); + Zuser zuser = (Zuser) redisHandler.get("online-key:"+uuid); + if(zuser!=null){ + service.downloadFile(request,response,null,id); + } + } + @PostMapping(value="upload",produces = "text/html;charset=UTF-8") @ApiOperation("附件上传") public String upload(@RequestParam(value = "file", required = false) MultipartFile file) throws Exception { @@ -48,6 +65,12 @@ public class AssOssMainApi { return R.ok(); } + @Autowired + private JwtHandler jwtHandler; + + @Autowired + private RedisHandler redisHandler; + @Autowired private JdbcDao jdbcDao; diff --git a/vboot-core/src/main/java/vboot/core/module/gen/coop/GenCoopApi.java b/vboot-core/src/main/java/vboot/core/module/gen/coop/GenCoopApi.java new file mode 100644 index 0000000..5745d1c --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/gen/coop/GenCoopApi.java @@ -0,0 +1,55 @@ +package vboot.core.module.gen.coop; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import vboot.core.common.mvc.api.R; +import vboot.core.common.mvc.dao.JdbcDao; +import vboot.core.common.mvc.pojo.ZidName; +import vboot.core.common.mvc.pojo.Ztree; +import vboot.core.common.utils.lang.XstrUtil; + +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("gen/coop") +public class GenCoopApi { + + @GetMapping("tree") + public R getTree(String name) { + String sql = "select id,pid,name from sys_coop_cate " + + "union all select id,catid as pid,name from sys_coop_corp"; + List list = jdbcDao.findTreeList(sql); + return R.ok(list); + } + + @GetMapping("list") + public R getList(String pid, Integer type) { + if (XstrUtil.isBlank(pid) && (type & 1) != 0) { + String sql = "select id,name from sys_coop_cate where pid is null order by ornum"; + return R.ok(jdbcDao.findIdNameList(sql)); + } + List list=new ArrayList<>(); + if ((type & 1) != 0) { + String sql = "select id,name from sys_coop_cate where pid=? order by ornum"; + list.addAll(jdbcDao.findIdNameList(sql, pid)); + } + if ((type & 2) != 0) { + String sql = "select id,name from sys_coop_corp where catid=?"; + list.addAll(jdbcDao.findIdNameList(sql, pid)); + } + if ((type & 4) != 0) { + String sql = "select id,name from sys_coop_user where corid=? order by ornum"; + list.addAll(jdbcDao.findIdNameList(sql, pid)); + } + return R.ok(list); + } + + + @Autowired + private JdbcDao jdbcDao; + + +} diff --git a/vboot-core/src/main/java/vboot/core/module/gen/org/GenOrgGroupApi.java b/vboot-core/src/main/java/vboot/core/module/gen/org/GenOrgGroupApi.java new file mode 100644 index 0000000..ba0bbed --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/gen/org/GenOrgGroupApi.java @@ -0,0 +1,46 @@ +package vboot.core.module.gen.org; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import vboot.core.common.mvc.api.R; +import vboot.core.common.mvc.dao.JdbcDao; +import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.ZidName; +import vboot.core.common.mvc.pojo.Ztree; + +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("gen/org/group") +public class GenOrgGroupApi { + + @GetMapping("tree") + public R getTree(String name) { + String sql="select id,pid,name,'cate' type from sys_org_group_cate " + + "union all select id,catid as pid,name,'group' type from sys_org_group"; + List list = jdbcDao.findTreeList(sql); + return R.ok(list); + } + + @GetMapping("list") + public R getList(String pid,String type,String name) { + if("cate".equals(type)){ + String sql="select id,name from sys_org_group where catid=? order by ornum"; + return R.ok(jdbcDao.findIdNameList(sql, pid)); + }else if("group".equals(type)){ + String sql="select t.id,t.name from sys_org t inner join sys_org_group_org o on o.oid=t.id where o.gid=?"; + return R.ok(jdbcDao.findIdNameList(sql, pid)); + }else{ + return R.ok(new ArrayList()); + } + } + + + @Autowired + private JdbcDao jdbcDao; + + +} diff --git a/vboot-core/src/main/java/vboot/core/module/gen/org/GenOrgRoleApi.java b/vboot-core/src/main/java/vboot/core/module/gen/org/GenOrgRoleApi.java index 72e925a..7b4be0e 100644 --- a/vboot-core/src/main/java/vboot/core/module/gen/org/GenOrgRoleApi.java +++ b/vboot-core/src/main/java/vboot/core/module/gen/org/GenOrgRoleApi.java @@ -30,7 +30,7 @@ public class GenOrgRoleApi { //查询角色 @GetMapping("list") public R getList(String treid,String name) { - Sqler sqler = new Sqler("sys_org_role_main"); + Sqler sqler = new Sqler("sys_org_role"); sqler.addLike("t.name", name); sqler.addOrder("t.ornum"); sqler.addEqual("t.treid",treid); diff --git a/vboot-core/src/main/java/vboot/core/module/sys/api/main/SysApiMainApi.java b/vboot-core/src/main/java/vboot/core/module/sys/api/main/SysApiMainApi.java index 1fd0268..e8bac34 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/api/main/SysApiMainApi.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/api/main/SysApiMainApi.java @@ -18,6 +18,17 @@ import java.util.List; @Api(tags = {"接口管理-接口信息"}) public class SysApiMainApi { + @GetMapping("treer") + @ApiOperation("查询接口树数据") + public R getTreer(String id) { + Sqler sqler = new Sqler("t.id,t.id as name,t.pid","sys_api_main"); + sqler.addLike("t.id", id); + sqler.addWhere("t.avtag=1"); + sqler.addWhere("type is null"); + List list = service.findTree(sqler); + return R.ok(list); + } + @GetMapping("tree") @ApiOperation("查询接口树数据") public R getTree(String id) { @@ -30,9 +41,11 @@ public class SysApiMainApi { @GetMapping @ApiOperation("查询接口分页") - public R get(String id) { + public R get(String id,String pid) { Sqler sqler = new Sqler("t.id,t.url,t.type", "sys_api_main"); sqler.addLike("t.id", id); + sqler.addEqual("t.pid", pid); + sqler.addWhere("t.type is not null"); sqler.addOrder("t.crtim"); sqler.addSelect("t.notes,t.crtim"); return R.ok(jdbcDao.findPageData(sqler)); diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCate.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCate.java new file mode 100644 index 0000000..e97ff8e --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCate.java @@ -0,0 +1,25 @@ +package vboot.core.module.sys.coop.cate; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import vboot.core.common.mvc.entity.BaseCateEntity; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@Entity +@Getter +@Setter +@ApiModel("协同分类") +public class SysCoopCate extends BaseCateEntity { + + @ManyToOne(fetch= FetchType.EAGER) + @JoinColumn(name = "pid") + @ApiModelProperty("父类别") + private SysCoopCate parent; + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateApi.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateApi.java new file mode 100644 index 0000000..0ce33bf --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateApi.java @@ -0,0 +1,82 @@ +package vboot.core.module.sys.coop.cate; + +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import vboot.core.common.mvc.api.R; +import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.TreeMovePo; +import vboot.core.common.mvc.pojo.Ztree; + +import java.util.List; + +@RestController +@RequestMapping("sys/coop/cate") +public class SysCoopCateApi { + + private String table = "sys_coop_cate"; + + @GetMapping("treez") + @ApiOperation("查询分类除自身外的分类树") + public R getTreez(String name, String id) { + List list = service.tier2Choose(table, id, name); + return R.ok(list); + } + + @GetMapping("treea") + @ApiOperation("查询分类树") + public R getTreea(String name) { + List list = service.findTreeList(table, name); + return R.ok(list); + } + + @GetMapping("tree") + @ApiOperation("查询分类列表") + public R getTree(String name) { + Sqler sqler = new Sqler(table); + sqler.addLike("t.name", name); + sqler.addOrder("t.ornum"); + sqler.addWhere("t.avtag=1"); + sqler.addSelect("t.crtim,t.uptim,t.pid,t.notes"); + List list = service.findTree(sqler); + return R.ok(list); + } + + @GetMapping + @ApiOperation("查询分类分页") + public R get(String name) { + Sqler sqler = new Sqler(table); + sqler.addLike("t.name", name); + sqler.addSelect("t.notes,t.ornum"); + return R.ok(service.findPageData(sqler)); + } + + @GetMapping("one/{id}") + @ApiOperation("查询分类详情") + public R getOne(@PathVariable String id) { + SysCoopCate cate = service.findOne(id); + return R.ok(cate); + } + + @PostMapping + @ApiOperation("新增分类") + public R post(@RequestBody SysCoopCate cate) { + return R.ok(service.insertx(cate)); + } + + @PutMapping + @ApiOperation("更新分类") + public R put(@RequestBody SysCoopCate cate) { + return R.ok(service.updatex(cate)); + } + + @DeleteMapping("{ids}") + @ApiOperation("删除分类") + public R delete(@PathVariable String[] ids) { + return R.ok(service.deletex(ids)); + } + + @Autowired + private SysCoopCateService service; + +} \ No newline at end of file diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateRepo.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateRepo.java new file mode 100644 index 0000000..2c254c9 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateRepo.java @@ -0,0 +1,8 @@ +package vboot.core.module.sys.coop.cate; + +import org.springframework.data.jpa.repository.JpaRepository; +import vboot.core.module.sys.org.group.SysOrgGroupCate; + +public interface SysCoopCateRepo extends JpaRepository { + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateService.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateService.java new file mode 100644 index 0000000..ea8cd61 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/cate/SysCoopCateService.java @@ -0,0 +1,57 @@ +package vboot.core.module.sys.coop.cate; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.stereotype.Service; +import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.service.BaseCateService; +import vboot.core.module.sys.org.root.SysOrg; +import vboot.core.module.sys.org.root.SysOrgRepo; + +import javax.annotation.PostConstruct; +import java.util.List; + +@Service +public class SysCoopCateService extends BaseCateService { + + public String insertx(SysCoopCate cate){ + String id= insert(cate); + SysOrg sysOrg=new SysOrg(id,cate.getName(),64); + orgRepo.save(sysOrg); + return id; + } + + public String updatex(SysCoopCate cate){ + updatex(cate); + SysOrg sysOrg=new SysOrg(cate.getId(),cate.getName(),64); + orgRepo.save(sysOrg); + return cate.getId(); + } + + public int deletex(String[] ids) { + for (String id : ids) { + repo.deleteById(id); + orgRepo.deleteById(id); + } + return ids.length; + } + + + //获取分类treeTable数据 + public List findTree(Sqler sqler) { + List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), + new BeanPropertyRowMapper<>(SysCoopCate.class)); + return buildByRecursive(list); + } + + @Autowired + private SysOrgRepo orgRepo; + + @Autowired + private SysCoopCateRepo repo; + + @PostConstruct + public void initDao() { + super.setRepo(repo); + } +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorp.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorp.java new file mode 100644 index 0000000..129963f --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorp.java @@ -0,0 +1,33 @@ +package vboot.core.module.sys.coop.corp; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import vboot.core.common.mvc.entity.BaseMainEntity; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@Entity +@Getter +@Setter +@ApiModel("外部公司") +public class SysCoopCorp extends BaseMainEntity { + + @ApiModelProperty("排序号") + private Integer ornum; + + @Column(length = 32) + @ApiModelProperty("分类ID") + private String catid; + + @Column(length = 32) + @ApiModelProperty("状态") + private String state; + + @Column(length = 32) + @ApiModelProperty("流水号") + private String senum; + +} \ No newline at end of file diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpApi.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpApi.java new file mode 100644 index 0000000..92e522e --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpApi.java @@ -0,0 +1,70 @@ +package vboot.core.module.sys.coop.corp; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import vboot.core.common.mvc.api.R; +import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.Zinp; + +import java.util.List; + +@RestController +@RequestMapping("sys/coop/corp") +@Api(tags = {"外部协同-外部公司"}) +public class SysCoopCorpApi { + + @GetMapping + @ApiOperation("查询分页") + public R get(String name,String catid) { + Sqler sqler = new Sqler("sys_coop_corp"); + sqler.addLike("t.name" , name); + sqler.addEqual("t.catid" , catid); + sqler.addOrder("t.ornum"); + sqler.addSelect("t.notes"); + return R.ok(service.findPageData(sqler)); + } + + @GetMapping("tree") + public R getTree(String name) { + List list = service.findTreeList(name); + return R.ok(list); + } + + @GetMapping("list") + @ApiOperation("查询列表") + public R getList() { + return R.ok(service.findAll()); + } + + + @GetMapping("one/{id}") + @ApiOperation("查询详情") + public R getOne(@PathVariable String id) { + SysCoopCorp main = service.findOne(id); + return R.ok(main); + } + + @PostMapping + @ApiOperation("新增") + public R post(@RequestBody SysCoopCorp main) { + return R.ok(service.insertx(main)); + } + + @PutMapping + @ApiOperation("修改") + public R put(@RequestBody SysCoopCorp main) { + return R.ok(service.updatex(main)); + } + + @DeleteMapping("{ids}") + @ApiOperation("删除") + public R delete(@PathVariable String[] ids) { + return R.ok(service.deletex(ids)); + } + + @Autowired + private SysCoopCorpService service; + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpRepo.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpRepo.java new file mode 100644 index 0000000..0bc08c3 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpRepo.java @@ -0,0 +1,9 @@ +package vboot.core.module.sys.coop.corp; + + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SysCoopCorpRepo extends JpaRepository { + + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpService.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpService.java new file mode 100644 index 0000000..999808b --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/corp/SysCoopCorpService.java @@ -0,0 +1,69 @@ +package vboot.core.module.sys.coop.corp; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.Zinp; +import vboot.core.common.mvc.service.BaseMainService; +import vboot.core.common.utils.lang.XjsonUtil; +import vboot.core.module.sys.coop.cate.SysCoopCate; +import vboot.core.module.sys.org.root.SysOrg; +import vboot.core.module.sys.org.root.SysOrgRepo; + +import javax.annotation.PostConstruct; +import java.util.List; + +@Service +public class SysCoopCorpService extends BaseMainService { + + public String insertx(SysCoopCorp corp){ + String id= insert(corp); + SysOrg sysOrg=new SysOrg(id,corp.getName(),128); + orgRepo.save(sysOrg); + return id; + } + + public String updatex(SysCoopCorp corp){ + updatex(corp); + SysOrg sysOrg=new SysOrg(corp.getId(),corp.getName(),128); + orgRepo.save(sysOrg); + return corp.getId(); + } + + public int deletex(String[] ids) { + for (String id : ids) { + repo.deleteById(id); + orgRepo.deleteById(id); + } + return ids.length; + } + + public List findTreeList(String name) { + Sqler cateSqler = new Sqler("sys_coop_cate"); + cateSqler.addSelect("pid"); + cateSqler.addOrder("t.ornum"); + List list = jdbcDao.findInpList(cateSqler); + + Sqler mainSqler = new Sqler("sys_coop_corp"); + mainSqler.addSelect("t.catid as pid"); + mainSqler.addLike("t.name", name); + mainSqler.addOrder("t.ornum"); + List list2 = jdbcDao.findInpList(mainSqler); + list.addAll(list2); + + return XjsonUtil.buildInpByRecursive(list); + } + + //----------bean注入------------ + @Autowired + private SysOrgRepo orgRepo; + + @Autowired + private SysCoopCorpRepo repo; + + @PostConstruct + public void initDao() { + super.setRepo(repo); + } + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUser.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUser.java new file mode 100644 index 0000000..21265a5 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUser.java @@ -0,0 +1,61 @@ +package vboot.core.module.sys.coop.user; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import vboot.core.common.mvc.entity.BaseMainEntity; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@Entity +@Getter +@Setter +@ApiModel("外部用户") +public class SysCoopUser extends BaseMainEntity { + + @ApiModelProperty("主账号标记")// 1启用,0禁用 + protected Boolean prtag = true; + + @Column(length = 32) + @ApiModelProperty("公司ID") + private String corid; + + @ApiModelProperty("排序号") + private Integer ornum; + + @Column(length = 32) + @ApiModelProperty("昵称") + private String ninam; + + @Column(length = 32) + @ApiModelProperty("登录名") + private String usnam; + + @Column(length = 64,updatable = false) + @ApiModelProperty("密码") + private String pacod; + + @Column(length = 64) + @ApiModelProperty("邮箱") + private String email; + + @Column(length = 32) + @ApiModelProperty("手机号") + private String monum; + + @ApiModelProperty("提醒标记") + private Boolean watag = false; + + @ApiModelProperty("备注") + private String notes; + + @ApiModelProperty("准备标记") + private Boolean retag = false; + + @Column(length = 1000) + @ApiModelProperty("层级") + private String tier; + +} \ No newline at end of file diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserApi.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserApi.java new file mode 100644 index 0000000..60fdc61 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserApi.java @@ -0,0 +1,69 @@ +package vboot.core.module.sys.coop.user; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import vboot.core.common.mvc.api.R; +import vboot.core.common.mvc.dao.Sqler; +import vboot.core.module.sys.org.user.PacodPo; + +@RestController +@RequestMapping("sys/coop/user") +@Api(tags = {"外部协同-外部用户"}) +public class SysCoopUserApi { + + @GetMapping + @ApiOperation("查询分页") + public R get(String name,String corid) { + Sqler sqler = new Sqler("sys_coop_user"); + sqler.addLike("t.name" , name); + sqler.addEqual("t.corid" , corid); + sqler.addOrder("t.ornum"); + sqler.addSelect("t.notes"); + return R.ok(service.findPageData(sqler)); + } + + @GetMapping("list") + @ApiOperation("查询列表") + public R getList() { + return R.ok(service.findAll()); + } + + + @GetMapping("one/{id}") + @ApiOperation("查询详情") + public R getOne(@PathVariable String id) { + SysCoopUser main = service.findOne(id); + return R.ok(main); + } + + @PostMapping + @ApiOperation("新增") + public R post(@RequestBody SysCoopUser main) { + return R.ok(service.insertx(main)); + } + + @PutMapping + @ApiOperation("修改") + public R put(@RequestBody SysCoopUser main) { + return R.ok(service.updatex(main)); + } + + @DeleteMapping("{ids}") + @ApiOperation("删除") + public R delete(@PathVariable String[] ids) { + return R.ok(service.deletex(ids)); + } + + @PostMapping("pacod") + @ApiOperation("修改密码") + public R pacod(@RequestBody PacodPo po) { + service.pacod(po); + return R.ok(); + } + + @Autowired + private SysCoopUserService service; + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserCache.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserCache.java new file mode 100644 index 0000000..a51ac3d --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserCache.java @@ -0,0 +1,32 @@ +package vboot.core.module.sys.coop.user; + +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Lob; + +@Entity +@Data +public class SysCoopUserCache { + @Id + @Column(length = 32) + private String id; + + @Column(length = 2000) + private String conds;//组织架构集 + + @Column(length = 2000) + private String portals;//前台门户缓存 + + @Column(length = 2000) + private String perms;//后台所有权限集 + + @Lob + private String menus;//前台菜单缓存 + + @Lob + private String btns;//前台按钮缓存 + +} \ No newline at end of file diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserRepo.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserRepo.java new file mode 100644 index 0000000..bb8305d --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserRepo.java @@ -0,0 +1,9 @@ +package vboot.core.module.sys.coop.user; + + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SysCoopUserRepo extends JpaRepository { + + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserService.java b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserService.java new file mode 100644 index 0000000..25b58d4 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/coop/user/SysCoopUserService.java @@ -0,0 +1,57 @@ +package vboot.core.module.sys.coop.user; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.DigestUtils; +import vboot.core.common.mvc.service.BaseMainService; +import vboot.core.module.sys.org.root.SysOrg; +import vboot.core.module.sys.org.root.SysOrgRepo; +import vboot.core.module.sys.org.user.PacodPo; + +import javax.annotation.PostConstruct; + +@Service +public class SysCoopUserService extends BaseMainService { + + public String insertx(SysCoopUser user){ + user.setPacod(DigestUtils.md5DigestAsHex(("abc" + user.getPacod() + "xyz").getBytes())); + String id= insert(user); + SysOrg sysOrg=new SysOrg(id,user.getName(),256); + orgRepo.save(sysOrg); + return id; + } + + public String updatex(SysCoopUser user){ + updatex(user); + SysOrg sysOrg=new SysOrg(user.getId(),user.getName(),256); + orgRepo.save(sysOrg); + return user.getId(); + } + + public int deletex(String[] ids) { + for (String id : ids) { + repo.deleteById(id); + orgRepo.deleteById(id); + } + return ids.length; + } + + public void pacod(PacodPo po) { + po.setPacod(DigestUtils.md5DigestAsHex(("abc" + po.getPacod() + "xyz").getBytes())); + String sql="update sys_coop_user set pacod=? where id=?"; + jdbcDao.update(sql,po.getPacod(),po.getId()); + } + + //----------bean注入------------ + @Autowired + private SysOrgRepo orgRepo; + + @Autowired + private SysCoopUserRepo repo; + + @PostConstruct + public void initDao() { + super.setRepo(repo); + } + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/dept/SysOrgDeptApi.java b/vboot-core/src/main/java/vboot/core/module/sys/org/dept/SysOrgDeptApi.java index fc7e61c..ae530a1 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/dept/SysOrgDeptApi.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/dept/SysOrgDeptApi.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation; import vboot.core.common.mvc.api.R; import vboot.core.common.mvc.dao.JdbcDao; import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.TreeMovePo; import vboot.core.common.mvc.pojo.Ztree; import vboot.core.common.utils.lang.XstrUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -91,6 +92,14 @@ public class SysOrgDeptApi { return R.ok(service.delete(ids)); } + + @PostMapping("move") + @ApiOperation("移动部门") + public R move(@RequestBody TreeMovePo po) throws Exception { + service.move(po); + return R.ok(); + } + @Autowired private JdbcDao jdbcDao; diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/dept/SysOrgDeptService.java b/vboot-core/src/main/java/vboot/core/module/sys/org/dept/SysOrgDeptService.java index 5bb4531..77d042e 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/dept/SysOrgDeptService.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/dept/SysOrgDeptService.java @@ -1,6 +1,9 @@ package vboot.core.module.sys.org.dept; import cn.hutool.core.util.StrUtil; +import vboot.core.common.mvc.pojo.IdOrnumPo; +import vboot.core.common.mvc.pojo.TreeMovePo; +import vboot.core.common.mvc.pojo.Ztree; import vboot.core.module.sys.org.root.SysOrg; import vboot.core.common.mvc.dao.JdbcDao; import vboot.core.common.mvc.dao.Sqler; @@ -47,6 +50,9 @@ public class SysOrgDeptService { } public SysOrgDept insert(SysOrgDept main) { + if(main.getOrnum()==null){ + main.setOrnum(getCount(main.getPid())+1); + } if (main.getId() == null || "".equals(main.getId())) { main.setId(XstrUtil.getUUID()); } @@ -65,6 +71,9 @@ public class SysOrgDeptService { public SysOrgDept update(SysOrgDept main) throws Exception { + if(main.getOrnum()==null){ + main.setOrnum(0); + } main.setUptim(new Date()); if (main.getParent() == null || StrUtil.isBlank(main.getParent().getId())) { main.setTier("x" + main.getId() + "x"); @@ -224,6 +233,121 @@ public class SysOrgDeptService { return node; } + private Integer getCount(String pid){ + if(XstrUtil.isNotBlank(pid)){ + String countSql="select count(1) from sys_org_dept where pid=?"; + Integer count = jdbcDao.getTp().queryForObject(countSql, new Object[]{pid}, Integer.class); + if(count==null){ + count=0; + } + return count; + }else{ + String countSql="select count(1) from sys_org_dept where pid is null"; + Integer count = jdbcDao.getTp().queryForObject(countSql, Integer.class); + if(count==null){ + count=0; + } + return count; + } + } + + public void move(TreeMovePo po) throws Exception { + SysOrgDept dragDept= deptRepo.findById(po.getDraid()).get(); + if(dragDept.getParent()!=null){ + dragDept.setPid(dragDept.getParent().getId()); + } + List list2; + if(XstrUtil.isNotBlank(dragDept.getPid())){ + String sql = "select id,ornum from sys_org_dept where ornum>? and pid=?"; + list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum(),dragDept.getPid()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + }else{ + String sql = "select id,ornum from sys_org_dept where ornum>? and pid is null"; + list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + } + String updateSql = "update sys_org_dept set ornum=? where id=?"; + List updateList = new ArrayList<>(); + for (IdOrnumPo idOrnumPo : list2) { + Object[] arr=new Object[2]; + arr[0]=idOrnumPo.getOrnum()-1; + arr[1]=idOrnumPo.getId(); + updateList.add(arr); + } + jdbcDao.batch(updateSql, updateList); + + if ("inner".equals(po.getType())) + { + dragDept.setPid(po.getDroid()); + dragDept.setParent(new SysOrg(dragDept.getPid())); + Integer count=getCount(po.getDroid()); + dragDept.setOrnum(count+1); + } + else if ("before".equals(po.getType())) + { + SysOrgDept dropDept= deptRepo.findById(po.getDroid()).get(); + if(dropDept.getParent()!=null){ + dropDept.setPid(dropDept.getParent().getId()); + dragDept.setPid(dropDept.getPid());; + dragDept.setParent(dropDept.getParent());; + }else{ + dragDept.setPid(null); + dragDept.setParent(null); + } + dragDept.setOrnum(dropDept.getOrnum()); + + List list3; + if(XstrUtil.isNotBlank(dropDept.getPid())){ + String sql3 = "select id,ornum from sys_org_dept where ornum>? and pid=?"; + list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum(),dropDept.getPid()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + }else{ + String sql3 = "select id,ornum from sys_org_dept where ornum>? and pid is null"; + list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + } + + String updateSql3 = "update sys_org_dept set ornum=? where id=?"; + List updateList3 = new ArrayList<>(); + for (IdOrnumPo idOrnumPo : list3) { + Object[] arr=new Object[2]; + arr[0]=idOrnumPo.getOrnum()+1; + arr[1]=idOrnumPo.getId(); + updateList3.add(arr); + } + jdbcDao.batch(updateSql3, updateList3); + dropDept.setOrnum(dropDept.getOrnum()+1); + String updateSql4 = "update sys_org_dept set ornum=? where id=?"; + jdbcDao.update(updateSql4, dropDept.getOrnum(), dropDept.getId()); + } + else if ("after".equals(po.getType())) + { + SysOrgDept dropDept= deptRepo.findById(po.getDroid()).get(); + if(dropDept.getParent()!=null){ + dropDept.setPid(dropDept.getParent().getId()); + } + Integer count = getCount(dropDept.getPid()); + if (dragDept.getPid()!=null&&dragDept.getPid().equals(dropDept.getPid())) + { + dragDept.setOrnum(count); + } + else + { + dragDept.setPid(dropDept.getPid()); + if (dragDept.getPid() == null) + { + dragDept.setParent(null); + } + else + { + dragDept.setParent(new SysOrg(dragDept.getPid())); + } + dragDept.setOrnum(count+1); + } + } + update(dragDept); + } + @Autowired private JdbcDao jdbcDao; diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroup.java b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroup.java index af184fb..f686dce 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroup.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroup.java @@ -26,6 +26,10 @@ public class SysOrgGroup { @ApiModelProperty("备注") private String notes; + @ApiModelProperty("分类ID") + @Column(length = 32) + private String catid; + @ApiModelProperty("排序号") private Integer ornum; diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCate.java b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCate.java new file mode 100644 index 0000000..6bc5d70 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCate.java @@ -0,0 +1,32 @@ +package vboot.core.module.sys.org.group; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import vboot.core.common.mvc.entity.BaseCateEntity; +import vboot.core.module.sys.org.root.SysOrg; + +import javax.persistence.*; +import java.util.List; + +@Entity +@Getter +@Setter +@ApiModel("群组分类") +public class SysOrgGroupCate extends BaseCateEntity { + + @ManyToOne(fetch= FetchType.EAGER) + @JoinColumn(name = "pid") + @ApiModelProperty("父类别") + private SysOrgGroupCate parent; + + + public SysOrgGroupCate() { + + } + + public SysOrgGroupCate(String id) { + this.id=id; + } +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateApi.java b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateApi.java new file mode 100644 index 0000000..0b20ac0 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateApi.java @@ -0,0 +1,90 @@ +package vboot.core.module.sys.org.group; + +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import vboot.core.common.mvc.api.R; +import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.TreeMovePo; +import vboot.core.common.mvc.pojo.Ztree; + +import java.util.List; + +@RestController +@RequestMapping("sys/org/group/cate") +public class SysOrgGroupCateApi { + + private String table = "sys_org_group_cate"; + + @GetMapping("treez") + @ApiOperation("查询分类除自身外的分类树") + public R getTreez(String name, String id) { + List list = service.tier2Choose(table, id, name); + return R.ok(list); + } + + @GetMapping("treea") + @ApiOperation("查询分类树") + public R getTreea(String name) { + List list = service.findTreeList(table, name); + return R.ok(list); + } + + @GetMapping("tree") + @ApiOperation("查询分类列表") + public R getTree(String name) { + Sqler sqler = new Sqler(table); + sqler.addLike("t.name", name); + sqler.addOrder("t.ornum"); + sqler.addWhere("t.avtag=1"); + sqler.addSelect("t.crtim,t.uptim,t.pid,t.notes"); + List list = service.findTree(sqler); + return R.ok(list); + } + + @GetMapping + @ApiOperation("查询分类分页") + public R get(String name) { + Sqler sqler = new Sqler(table); + sqler.addLike("t.name", name); + sqler.addSelect("t.notes,t.ornum"); + return R.ok(service.findPageData(sqler)); + } + + @GetMapping("one/{id}") + @ApiOperation("查询分类详情") + public R getOne(@PathVariable String id) { + SysOrgGroupCate cate = service.findOne(id); + return R.ok(cate); + } + + @PostMapping + @ApiOperation("新增分类") + public R post(@RequestBody SysOrgGroupCate cate) { + cate.setOrnum(service.getCount(cate.getPid())+1); + return R.ok(service.insert(cate)); + } + + @PutMapping + @ApiOperation("更新分类") + public R put(@RequestBody SysOrgGroupCate cate) { + return R.ok(service.update(cate)); + } + + @DeleteMapping("{ids}") + @ApiOperation("删除分类") + public R delete(@PathVariable String[] ids) { + return R.ok(service.delete(ids)); + } + + @PostMapping("move") + @ApiOperation("移动部门") + public R move(@RequestBody TreeMovePo po) throws Exception { + service.move(po); + return R.ok(); + } + + @Autowired + private SysOrgGroupCateService service; + +} \ No newline at end of file diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateRepo.java b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateRepo.java new file mode 100644 index 0000000..7ba44b3 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateRepo.java @@ -0,0 +1,9 @@ +package vboot.core.module.sys.org.group; + +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface SysOrgGroupCateRepo extends JpaRepository { + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateService.java b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateService.java new file mode 100644 index 0000000..95514cb --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/group/SysOrgGroupCateService.java @@ -0,0 +1,152 @@ +package vboot.core.module.sys.org.group; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.stereotype.Service; +import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.IdOrnumPo; +import vboot.core.common.mvc.pojo.TreeMovePo; +import vboot.core.common.mvc.service.BaseCateService; +import vboot.core.common.utils.lang.XstrUtil; +import vboot.core.module.sys.org.dept.SysOrgDept; +import vboot.core.module.sys.org.root.SysOrg; + +import javax.annotation.PostConstruct; +import java.util.ArrayList; +import java.util.List; + +@Service +public class SysOrgGroupCateService extends BaseCateService { + + //获取分类treeTable数据 + public List findTree(Sqler sqler) { + List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), + new BeanPropertyRowMapper<>(SysOrgGroupCate.class)); + return buildByRecursive(list); + } + + public Integer getCount(String pid){ + if(XstrUtil.isNotBlank(pid)){ + String countSql="select count(1) from sys_org_group_cate where pid=?"; + Integer count = jdbcDao.getTp().queryForObject(countSql, new Object[]{pid}, Integer.class); + if(count==null){ + count=0; + } + return count; + }else{ + String countSql="select count(1) from sys_org_group_cate where pid is null"; + Integer count = jdbcDao.getTp().queryForObject(countSql, Integer.class); + if(count==null){ + count=0; + } + return count; + } + } + + + public void move(TreeMovePo po) throws Exception { + SysOrgGroupCate dragDept= repo.findById(po.getDraid()).get(); + if(dragDept.getParent()!=null){ + dragDept.setPid(dragDept.getParent().getId()); + } + List list2; + if(XstrUtil.isNotBlank(dragDept.getPid())){ + String sql = "select id,ornum from sys_org_group_cate where ornum>? and pid=?"; + list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum(),dragDept.getPid()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + }else{ + String sql = "select id,ornum from sys_org_group_cate where ornum>? and pid is null"; + list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + } + + String updateSql = "update sys_org_group_cate set ornum=? where id=?"; + List updateList = new ArrayList<>(); + for (IdOrnumPo idOrnumPo : list2) { + Object[] arr=new Object[2]; + arr[0]=idOrnumPo.getOrnum()-1; + arr[1]=idOrnumPo.getId(); + updateList.add(arr); + } + jdbcDao.batch(updateSql, updateList); + + if ("inner".equals(po.getType())) + { + dragDept.setPid(po.getDroid()); + dragDept.setParent(new SysOrgGroupCate(dragDept.getPid())); + Integer count=getCount(po.getDroid()); + dragDept.setOrnum(count+1); + } + else if ("before".equals(po.getType())) + { + SysOrgGroupCate dropDept= repo.findById(po.getDroid()).get(); + if(dropDept.getParent()!=null){ + dropDept.setPid(dropDept.getParent().getId()); + dragDept.setPid(dropDept.getPid());; + dragDept.setParent(dropDept.getParent());; + }else{ + dragDept.setPid(null); + dragDept.setParent(null); + } + dragDept.setOrnum(dropDept.getOrnum()); + + List list3; + if(XstrUtil.isNotBlank(dropDept.getPid())){ + String sql3 = "select id,ornum from sys_org_group_cate where ornum>? and pid=?"; + list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum(),dropDept.getPid()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + }else{ + String sql3 = "select id,ornum from sys_org_group_cate where ornum>? and pid is null"; + list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + } + String updateSql3 = "update sys_org_group_cate set ornum=? where id=?"; + List updateList3 = new ArrayList<>(); + for (IdOrnumPo idOrnumPo : list3) { + Object[] arr=new Object[2]; + arr[0]=idOrnumPo.getOrnum()+1; + arr[1]=idOrnumPo.getId(); + updateList3.add(arr); + } + jdbcDao.batch(updateSql3, updateList3); + dropDept.setOrnum(dropDept.getOrnum()+1); + String updateSql4 = "update sys_org_group_cate set ornum=? where id=?"; + jdbcDao.update(updateSql4, dropDept.getOrnum(), dropDept.getId()); + } + else if ("after".equals(po.getType())) + { + SysOrgGroupCate dropDept= repo.findById(po.getDroid()).get(); + if(dropDept.getParent()!=null){ + dropDept.setPid(dropDept.getParent().getId()); + } + Integer count = getCount(dropDept.getPid()); + if (dragDept.getPid()!=null&&dragDept.getPid().equals(dropDept.getPid())) + { + dragDept.setOrnum(count); + } + else + { + dragDept.setPid(dropDept.getPid()); + if (dragDept.getPid() == null) + { + dragDept.setParent(null); + } + else + { + dragDept.setParent(new SysOrgGroupCate(dragDept.getPid())); + } + dragDept.setOrnum(count+1); + } + } + update(dragDept); + } + + + @Autowired + private SysOrgGroupCateRepo repo; + + @PostConstruct + public void initDao() { + super.setRepo(repo); + } +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleMain.java b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRole.java similarity index 51% rename from vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleMain.java rename to vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRole.java index f68a6de..38d77d7 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleMain.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRole.java @@ -9,7 +9,7 @@ import javax.persistence.Id; //层级角色 @Data @Entity -public class SysOrgRoleMain { +public class SysOrgRole { @Id @Column(length = 36) private String id;//主键 @@ -21,5 +21,21 @@ public class SysOrgRoleMain { private String notes;//备注 + public SysOrgRole() { + } + public SysOrgRole(String id) { + this.id = id; + } + + public SysOrgRole(String id, String name) { + this.id = id; + this.name = name; + } + + public SysOrgRole(String id, String name, Integer ornum) { + this.id = id; + this.name = name; + this.ornum = ornum; + } } \ No newline at end of file diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNode.java b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNode.java index a60d4c2..37d8a5d 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNode.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNode.java @@ -51,4 +51,11 @@ public class SysOrgRoleNode { @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "memid") private SysOrg member; + + public SysOrgRoleNode() { + } + + public SysOrgRoleNode(String id) { + this.id = id; + } } diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNodeApi.java b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNodeApi.java index 8fef857..877eb76 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNodeApi.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNodeApi.java @@ -2,13 +2,16 @@ package vboot.core.module.sys.org.role; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import vboot.core.common.mvc.api.PageData; import vboot.core.common.mvc.api.R; import vboot.core.common.mvc.dao.JdbcDao; import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.TreeMovePo; import vboot.core.common.mvc.pojo.Ztree; import vboot.core.common.utils.lang.XstrUtil; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.List; @RestController @@ -18,7 +21,10 @@ public class SysOrgRoleNodeApi { private String table = "sys_org_role_node"; @GetMapping - public R get(String name, String pid, String notes) { + public R get(String treid,String name, String pid, String notes) { + if(XstrUtil.isBlank(treid)){ + return R.ok(new PageData(0, new ArrayList<>())); + } Sqler sqler = new Sqler(table); if (XstrUtil.isNotBlank(name)) { sqler.addLike("t.name" , name); @@ -32,16 +38,30 @@ public class SysOrgRoleNodeApi { sqler.addLike("t.notes" , notes); sqler.addWhere("t.avtag=1"); sqler.addOrder("t.ornum"); + sqler.addEqual("t.treid",treid); sqler.addSelect("t.ornum,t.notes,t.pid,t.crtim,t.uptim"); return R.ok(jdbcDao.findPageData(sqler)); } + //查询层级树 + @GetMapping("treea") + public R getTreea(String treid) { + Sqler sqler = new Sqler("sys_org_role_node"); + sqler.addSelect("t.pid"); + sqler.addEqual("t.treid", treid); + sqler.addOrder("t.ornum"); + sqler.addWhere("t.avtag=1"); + List list = jdbcDao.findTreeList(sqler); + return R.ok(list); + } + //查询层级树 @GetMapping("tree") - public R getTree(String name) { + public R getTree(String name,String treid) { Sqler sqler = new Sqler("sys_org_role_node"); sqler.addSelect("t.pid"); sqler.addLike("t.name", name); + sqler.addEqual("t.treid", treid); sqler.addOrder("t.ornum"); sqler.addWhere("t.avtag=1"); List list = jdbcDao.findTreeList(sqler); @@ -65,11 +85,11 @@ public class SysOrgRoleNodeApi { return R.ok(main); } - - @PostMapping public R post(@RequestBody SysOrgRoleNode main) { + main.setOrnum(service.getCount(main.getPid(),main.getTreid())+1); service.insert(main); + return R.ok(main.getId()); } @@ -84,6 +104,13 @@ public class SysOrgRoleNodeApi { return R.ok(service.delete(ids)); } + @PostMapping("move") + public R move(@RequestBody TreeMovePo po) throws Exception { + service.move(po); + return R.ok(); + } + + @Autowired private JdbcDao jdbcDao; diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNodeService.java b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNodeService.java index 5f60369..9ce7e75 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNodeService.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleNodeService.java @@ -8,8 +8,11 @@ import org.springframework.transaction.annotation.Transactional; import vboot.core.common.mvc.api.PageData; import vboot.core.common.mvc.dao.JdbcDao; import vboot.core.common.mvc.dao.Sqler; +import vboot.core.common.mvc.pojo.IdOrnumPo; +import vboot.core.common.mvc.pojo.TreeMovePo; import vboot.core.common.mvc.pojo.ZidName; import vboot.core.common.utils.lang.XstrUtil; +import vboot.core.module.sys.org.group.SysOrgGroupCate; import java.util.ArrayList; import java.util.Date; @@ -21,7 +24,7 @@ public class SysOrgRoleNodeService { @Transactional(readOnly = true) public SysOrgRoleNode findById(String id) { - return nodeRepo.findById(id).get(); + return repo.findById(id).get(); } public SysOrgRoleNode insert(SysOrgRoleNode main) { @@ -34,7 +37,7 @@ public class SysOrgRoleNodeService { String tier = jdbcDao.findOneString("select tier from sys_org_role_node where id=?", main.getParent().getId()); main.setTier(tier + main.getId() + "x"); } - return nodeRepo.save(main); + return repo.save(main); } @@ -52,7 +55,7 @@ public class SysOrgRoleNodeService { } } } - SysOrgRoleNode backTier = nodeRepo.save(main); + SysOrgRoleNode backTier = repo.save(main); String oldTier = jdbcDao.findOneString("select tier from sys_org_role_node where id=?", main.getId()); dealTier(oldTier, main.getTier(), main.getId()); return backTier; @@ -60,7 +63,7 @@ public class SysOrgRoleNodeService { public int delete(String[] ids) { for (String str : ids) { - nodeRepo.deleteById(str); + repo.deleteById(str); } return ids.length; } @@ -174,11 +177,130 @@ public class SysOrgRoleNodeService { // return node; // } + public Integer getCount(String pid,String treid){ + if(XstrUtil.isNotBlank(pid)){ + String countSql="select count(1) from sys_org_role_node where pid=?"; + Integer count = jdbcDao.getTp().queryForObject(countSql, new Object[]{pid}, Integer.class); + if(count==null){ + count=0; + } + return count; + }else{ + String countSql="select count(1) from sys_org_role_node where pid is null and treid=?"; + Integer count = jdbcDao.getTp().queryForObject(countSql,new Object[]{treid}, Integer.class); + if(count==null){ + count=0; + } + return count; + } + } + + + public void move(TreeMovePo po) throws Exception { + SysOrgRoleNode dragDept= repo.findById(po.getDraid()).get(); + if(dragDept.getParent()!=null){ + dragDept.setPid(dragDept.getParent().getId()); + } + + List list2; + + if(XstrUtil.isNotBlank(dragDept.getPid())){ + String sql = "select id,ornum from sys_org_role_node where ornum>? and pid=?"; + list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum(),dragDept.getPid()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + }else{ + String sql = "select id,ornum from sys_org_role_node where ornum>? and treid=? and pid is null"; + list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum(),dragDept.getTreid()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + } + + String updateSql = "update sys_org_role_node set ornum=? where id=?"; + List updateList = new ArrayList<>(); + for (IdOrnumPo idOrnumPo : list2) { + Object[] arr=new Object[2]; + arr[0]=idOrnumPo.getOrnum()-1; + arr[1]=idOrnumPo.getId(); + updateList.add(arr); + } + jdbcDao.batch(updateSql, updateList); + + if ("inner".equals(po.getType())) + { + dragDept.setPid(po.getDroid()); + dragDept.setParent(new SysOrgRoleNode(dragDept.getPid())); + Integer count=getCount(po.getDroid(),dragDept.getTreid()); + dragDept.setOrnum(count+1); + } + else if ("before".equals(po.getType())) + { + SysOrgRoleNode dropDept= repo.findById(po.getDroid()).get(); + if(dropDept.getParent()!=null){ + dropDept.setPid(dropDept.getParent().getId()); + dragDept.setPid(dropDept.getPid());; + dragDept.setParent(dropDept.getParent());; + }else{ + dragDept.setPid(null); + dragDept.setParent(null); + } + dragDept.setOrnum(dropDept.getOrnum()); + + List list3; + if(XstrUtil.isNotBlank(dropDept.getPid())){ + String sql3 = "select id,ornum from sys_org_role_node where ornum>? and pid=?"; + list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum(),dropDept.getPid()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + }else{ + String sql3 = "select id,ornum from sys_org_role_node where ornum>? and treid=? and pid is null"; + list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum(),dropDept.getTreid()}, + new BeanPropertyRowMapper<>(IdOrnumPo.class)); + } + + String updateSql3 = "update sys_org_role_node set ornum=? where id=?"; + List updateList3 = new ArrayList<>(); + for (IdOrnumPo idOrnumPo : list3) { + Object[] arr=new Object[2]; + arr[0]=idOrnumPo.getOrnum()+1; + arr[1]=idOrnumPo.getId(); + updateList3.add(arr); + } + jdbcDao.batch(updateSql3, updateList3); + dropDept.setOrnum(dropDept.getOrnum()+1); + String updateSql4 = "update sys_org_role_node set ornum=? where id=?"; + jdbcDao.update(updateSql4, dropDept.getOrnum(), dropDept.getId()); + } + else if ("after".equals(po.getType())) + { + SysOrgRoleNode dropDept= repo.findById(po.getDroid()).get(); + if(dropDept.getParent()!=null){ + dropDept.setPid(dropDept.getParent().getId()); + } + Integer count = getCount(dropDept.getPid(),dropDept.getTreid()); + if (dragDept.getPid()!=null&&dragDept.getPid().equals(dropDept.getPid())) + { + dragDept.setOrnum(count); + } + else + { + dragDept.setPid(dropDept.getPid()); + if (dragDept.getPid() == null) + { + dragDept.setParent(null); + } + else + { + dragDept.setParent(new SysOrgRoleNode(dragDept.getPid())); + } + dragDept.setOrnum(count+1); + } + } + update(dragDept); + } + @Autowired private JdbcDao jdbcDao; @Autowired - private SysOrgRoleNodeRepo nodeRepo; + private SysOrgRoleNodeRepo repo; } diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTree.java b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTree.java index 0fd4ee5..a5435e2 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTree.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTree.java @@ -19,7 +19,7 @@ public class SysOrgRoleTree extends BaseMainEntity { @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumn(name = "treid") @OrderBy("ornum ASC") - private List roles = new ArrayList<>();//层级角色 + private List roles = new ArrayList<>();//层级角色 } diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTreeApi.java b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTreeApi.java index a51a69d..a7dc1e2 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTreeApi.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTreeApi.java @@ -51,7 +51,7 @@ public class SysOrgRoleTreeApi { @GetMapping("rlist") public R getRlist(String treid) { - String sql = "select id,name from sys_org_role_main where treid=?"; + String sql = "select id,name from sys_org_role where treid=?"; return R.ok(jdbcDao.findMapList(sql, treid)); } diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTreeService.java b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTreeService.java index 9ae4d9e..c7c5bdd 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTreeService.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/role/SysOrgRoleTreeService.java @@ -4,7 +4,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Service; import vboot.core.common.mvc.service.BaseMainService; -import vboot.core.framework.security.pojo.UserDo; import vboot.core.module.sys.org.root.SysOrg; import vboot.core.module.sys.org.root.SysOrgRepo; @@ -19,7 +18,7 @@ public class SysOrgRoleTreeService extends BaseMainService { public String insertx(SysOrgRoleTree main) { String id = insert(main); List list = new ArrayList<>(); - for (SysOrgRoleMain role : main.getRoles()) { + for (SysOrgRole role : main.getRoles()) { SysOrg sysOrg = new SysOrg(role.getId(), role.getName(), 32); list.add(sysOrg); } @@ -30,7 +29,7 @@ public class SysOrgRoleTreeService extends BaseMainService { public String updatex(SysOrgRoleTree main) { String id = update(main); List list = new ArrayList<>(); - for (SysOrgRoleMain role : main.getRoles()) { + for (SysOrgRole role : main.getRoles()) { SysOrg sysOrg = new SysOrg(role.getId(), role.getName(), 32); list.add(sysOrg); } @@ -40,11 +39,11 @@ public class SysOrgRoleTreeService extends BaseMainService { public SysOrg calc(String useid, String rolid) { String sql = "select t.tier \"tier\",m.ornum \"ornum\" from sys_org_role_node t " + - "inner join sys_org_role_main m on m.treid=t.treid where t.memid=? and m.id=?"; + "inner join sys_org_role m on m.treid=t.treid where t.memid=? and m.id=?"; Map map = jdbcDao.findMap(sql, useid, rolid); if (map == null) { sql = "select t.tier \"tier\",m.ornum \"ornum\" from sys_org_role_node t " + - "inner join sys_org_role_main m on m.treid=t.treid " + + "inner join sys_org_role m on m.treid=t.treid " + "inner join sys_org_user u on u.depid=t.memid where u.id=? and m.id=?"; map = jdbcDao.findMap(sql, useid, rolid); if (map == null) { diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/user/PacodPo.java b/vboot-core/src/main/java/vboot/core/module/sys/org/user/PacodPo.java new file mode 100644 index 0000000..125d0a5 --- /dev/null +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/user/PacodPo.java @@ -0,0 +1,12 @@ +package vboot.core.module.sys.org.user; + +import lombok.Data; + +@Data +public class PacodPo { + + public String id; + + public String pacod; + +} diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/user/SysOrgUserApi.java b/vboot-core/src/main/java/vboot/core/module/sys/org/user/SysOrgUserApi.java index 9302ae6..6f0a0a8 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/user/SysOrgUserApi.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/user/SysOrgUserApi.java @@ -59,6 +59,12 @@ public class SysOrgUserApi { return R.ok(service.delete(ids)); } + @PostMapping("pacod") + @ApiOperation("修改密码") + public R pacod(@RequestBody PacodPo po) { + service.pacod(po); + return R.ok(); + } @Autowired private SysOrgUserService service; diff --git a/vboot-core/src/main/java/vboot/core/module/sys/org/user/SysOrgUserService.java b/vboot-core/src/main/java/vboot/core/module/sys/org/user/SysOrgUserService.java index 2117681..7eaf0f4 100644 --- a/vboot-core/src/main/java/vboot/core/module/sys/org/user/SysOrgUserService.java +++ b/vboot-core/src/main/java/vboot/core/module/sys/org/user/SysOrgUserService.java @@ -91,6 +91,12 @@ public class SysOrgUserService { return ids.length; } + public void pacod(PacodPo po) { + po.setPacod(DigestUtils.md5DigestAsHex(("abc" + po.getPacod() + "xyz").getBytes())); + String sql="update sys_org_user set pacod=? where id=?"; + jdbcDao.update(sql,po.getPacod(),po.getId()); + } + @Transactional(readOnly = true) public SysOrgUser findById(String id) { return userRepo.findById(id).get(); diff --git a/vboot-web/src/main/java/vboot/web/init/SysOrgInit.java b/vboot-web/src/main/java/vboot/web/init/SysOrgInit.java index d2ff54b..ed89f62 100644 --- a/vboot-web/src/main/java/vboot/web/init/SysOrgInit.java +++ b/vboot-web/src/main/java/vboot/web/init/SysOrgInit.java @@ -4,7 +4,12 @@ import vboot.core.common.utils.lang.XstrUtil; import vboot.core.module.sys.org.dept.SysOrgDept; import vboot.core.module.sys.org.dept.SysOrgDeptService; import vboot.core.module.sys.org.group.SysOrgGroup; +import vboot.core.module.sys.org.group.SysOrgGroupCate; +import vboot.core.module.sys.org.group.SysOrgGroupCateService; import vboot.core.module.sys.org.group.SysOrgGroupService; +import vboot.core.module.sys.org.post.SysOrgPost; +import vboot.core.module.sys.org.post.SysOrgPostService; +import vboot.core.module.sys.org.role.*; import vboot.core.module.sys.org.root.SysOrg; import vboot.core.module.sys.org.user.SysOrgUser; import vboot.core.module.sys.org.user.SysOrgUserService; @@ -633,8 +638,6 @@ public class SysOrgInit { u4.setTier("x"+rootId+"xdept1xl4x"); userList.add(u4); - - SysOrgUser u5 = new SysOrgUser(); u5.setId("w5"); u5.setUsnam("w5"); @@ -681,21 +684,133 @@ public class SysOrgInit { userService.insertAll(userList); - SysOrgGroup group=new SysOrgGroup(); - group.setId("z3l4"); - group.setName("张三李四组"); - group.setAvtag(true); - List list=new ArrayList<>(); - list.add(new SysOrg("l1")); - list.add(new SysOrg("c2")); - list.add(new SysOrg("z3")); - list.add(new SysOrg("l4")); - list.add(new SysOrg("w5")); - list.add(new SysOrg("z6")); - list.add(new SysOrg("s7")); - list.add(new SysOrg("z8")); - group.setMembers(list); - groupService.insert(group); + SysOrgPost p1 = new SysOrgPost(); + p1.setId("post1"); + p1.setName("一部负责人"); + p1.setOrnum(0); + p1.setAvtag(true); + p1.setDept(new SysOrg("dept1")); + p1.setTier("x"+rootId+"xdept1xpost1x"); + p1.setUsers(new ArrayList<>()); + p1.getUsers().add(new SysOrg("l1","刘一",8)); + postService.insert(p1); + + SysOrgPost p2 = new SysOrgPost(); + p2.setId("post2"); + p2.setName("二部负责人"); + p2.setOrnum(0); + p2.setAvtag(true); + p2.setDept(new SysOrg("dept2")); + p2.setTier("x"+rootId+"xdept2xpost2x"); + p2.setUsers(new ArrayList<>()); + p2.getUsers().add(new SysOrg("w5","王五",8)); + p2.getUsers().add(new SysOrg("z6","赵六",8)); + postService.insert(p2); + + SysOrgGroupCate gcate = new SysOrgGroupCate(); + gcate.setId("gcate"); + gcate.setName("测试群组分类"); + gcate.setAvtag(true); + gcate.setOrnum(1); + gcate.setCrman(new SysOrg("sa")); + groupCateService.insert(gcate); + + SysOrgGroup g1 = new SysOrgGroup(); + g1.setId("group1"); + g1.setName("张三李四组"); + g1.setOrnum(1); + g1.setAvtag(true); + g1.setCatid("gcate"); + g1.setMembers(new ArrayList<>()); + g1.getMembers().add(new SysOrg("z3","张三",8)); + g1.getMembers().add(new SysOrg("l4","李四",8)); + groupService.insert(g1); + + SysOrgGroup g2 = new SysOrgGroup(); + g2.setId("group2"); + g2.setName("用户岗位部门混合组"); + g2.setOrnum(2); + g2.setAvtag(true); + g2.setCatid("gcate"); + g2.setMembers(new ArrayList<>()); + g2.getMembers().add(new SysOrg("c2","陈二",8)); + g2.getMembers().add(new SysOrg("post1","一部负责人",4)); + g2.getMembers().add(new SysOrg("dept2","测试二部",2)); + groupService.insert(g2); + + SysOrgRoleTree rtree1 = new SysOrgRoleTree(); + rtree1.setId("rtree1"); + rtree1.setName("业务角色树"); + rtree1.setOrnum(1); + rtree1.setAvtag(true); + rtree1.setRoles(new ArrayList<>()); + rtree1.getRoles().add(new SysOrgRole("role1","分管领导",1)); + rtree1.getRoles().add(new SysOrgRole("role2","部门领导",2)); + roleTreeService.save(rtree1); + + SysOrgRoleNode rnode1 = new SysOrgRoleNode(); + rnode1.setId("rnode1"); + rnode1.setName("一部分管领导"); + rnode1.setTreid("rtree1"); + rnode1.setOrnum(1); + rnode1.setAvtag(true); + rnode1.setMember(new SysOrg("post1")); + rnode1.setTier("xrnode1x"); + roleNodeService.insert(rnode1); + + SysOrgRoleNode rnode11 = new SysOrgRoleNode(); + rnode11.setId("rnode11"); + rnode11.setName("一部部门领导"); + rnode11.setTreid("rtree1"); + rnode11.setOrnum(1); + rnode11.setAvtag(true); + rnode11.setMember(new SysOrg("c2")); + rnode11.setParent(new SysOrgRoleNode("rnode1")); + rnode11.setTier("xrnode1xrnode11x"); + roleNodeService.insert(rnode11); + + SysOrgRoleNode rnode111 = new SysOrgRoleNode(); + rnode111.setId("rnode111"); + rnode111.setName("一部人员"); + rnode111.setTreid("rtree1"); + rnode111.setOrnum(1); + rnode111.setAvtag(true); + rnode111.setMember(new SysOrg("dept1")); + rnode111.setParent(new SysOrgRoleNode("rnode11")); + rnode111.setTier("xrnode1xrnode11xrnode111x"); + roleNodeService.insert(rnode111); + + SysOrgRoleNode rnode2 = new SysOrgRoleNode(); + rnode2.setId("rnode2"); + rnode2.setName("二部分管领导"); + rnode2.setTreid("rtree1"); + rnode2.setOrnum(2); + rnode2.setAvtag(true); + rnode2.setMember(new SysOrg("post2")); + rnode2.setTier("xrnode2x"); + roleNodeService.insert(rnode2); + + SysOrgRoleNode rnode21 = new SysOrgRoleNode(); + rnode21.setId("rnode21"); + rnode21.setName("二部部门领导"); + rnode21.setTreid("rtree1"); + rnode21.setOrnum(1); + rnode21.setAvtag(true); + rnode21.setMember(new SysOrg("z6")); + rnode21.setParent(new SysOrgRoleNode("rnode2")); + rnode21.setTier("xrnode2xrnode21x"); + roleNodeService.insert(rnode21); + + SysOrgRoleNode rnode211 = new SysOrgRoleNode(); + rnode211.setId("rnode211"); + rnode211.setName("二部人员"); + rnode211.setTreid("rtree1"); + rnode211.setOrnum(1); + rnode211.setAvtag(true); + rnode211.setMember(new SysOrg("dept2")); + rnode211.setParent(new SysOrgRoleNode("rnode21")); + rnode211.setTier("xrnode2xrnode21xrnode211x"); + roleNodeService.insert(rnode211); } @@ -747,6 +862,15 @@ public class SysOrgInit { } + @Autowired + private SysOrgRoleNodeService roleNodeService; + + @Autowired + private SysOrgRoleTreeService roleTreeService; + + @Autowired + private SysOrgGroupCateService groupCateService; + @Autowired private SysOrgGroupService groupService; @@ -756,4 +880,7 @@ public class SysOrgInit { @Autowired private SysOrgUserService userService; + @Autowired + private SysOrgPostService postService; + } diff --git a/vboot-web/src/main/java/vboot/web/init/SysPortalVueInit.java b/vboot-web/src/main/java/vboot/web/init/SysPortalVueInit.java index 5cc5002..845c532 100644 --- a/vboot-web/src/main/java/vboot/web/init/SysPortalVueInit.java +++ b/vboot-web/src/main/java/vboot/web/init/SysPortalVueInit.java @@ -107,11 +107,11 @@ public class SysPortalVueInit { menuService.insert(menu111a); SysPortalMenu menu111b = new SysPortalMenu(); - menu111b.setId("SysOrgDeptIndex2"); - menu111b.setName("部门编辑"); - menu111b.setCode("SysOrgDeptIndex2"); - menu111b.setPath("/sys/org/dept/index2"); - menu111b.setComp("/sys/org/dept/index2"); + menu111b.setId("SysOrgDeptTindex"); + menu111b.setName("部门管理"); + menu111b.setCode("SysOrgDeptTindex"); + menu111b.setPath("/sys/org/dept/tindex"); + menu111b.setComp("/sys/org/dept/tindex"); menu111b.setOrnum(11); menu111b.setIcon("ele-Tickets"); menu111b.setPid("SysOrg"); @@ -266,15 +266,16 @@ public class SysPortalVueInit { menu115b.setPorid("sys"); menuService.insert(menu115b); + SysPortalMenu menu12 = new SysPortalMenu(); - menu12.setId("SysApi"); - menu12.setName("接口管理"); - menu12.setCode("SysApi"); + menu12.setId("SysCoop"); + menu12.setName("外部协同"); + menu12.setCode("SysCoop"); menu12.setComp("LAYOUT"); - menu12.setPath("/sys/api"); - menu12.setRedirect("/sys/api/main"); + menu12.setPath("/sys/coop"); + menu12.setRedirect("/sys/coop/user"); menu12.setOrnum(2); - menu12.setIcon("ele-Lock"); + menu12.setIcon("ele-Magnet"); menu12.setPid("Sys"); menu12.setAvtag(true); menu12.setShtag(true); @@ -283,14 +284,14 @@ public class SysPortalVueInit { menuService.insert(menu12); SysPortalMenu menu121 = new SysPortalMenu(); - menu121.setId("SysApiMain"); - menu121.setName("接口清单"); - menu121.setCode("SysApiMain"); - menu121.setPath("/sys/api/main"); - menu121.setComp("/sys/api/main/index"); + menu121.setId("SysCoopCate"); + menu121.setName("协同分类"); + menu121.setCode("SysCoopCate"); + menu121.setPath("/sys/coop/cate"); + menu121.setComp("/sys/coop/cate/index"); menu121.setOrnum(10); menu121.setIcon("ele-Tickets"); - menu121.setPid("SysApi"); + menu121.setPid("SysCoop"); menu121.setCatag(true); menu121.setAvtag(true); menu121.setShtag(true); @@ -298,34 +299,16 @@ public class SysPortalVueInit { menu121.setPorid("sys"); menuService.insert(menu121); - SysPortalMenu menu121a = new SysPortalMenu(); - menu121a.setId("SysApiMainEdit"); - menu121a.setName("接口编辑"); - menu121a.setCode("SysApiMainEdit"); - menu121a.setPath("/sys/api/main/edit"); - menu121a.setComp("/sys/api/main/edit"); - menu121a.setOrnum(11); - menu121a.setIcon("ele-Tickets"); - menu121a.setPid("SysApi"); - menu121a.setCatag(true); - menu121a.setAvtag(true); - menu121a.setShtag(false); - menu121a.setType("M"); - menu121a.setPorid("sys"); - menuService.insert(menu121a); - SysPortalMenu menu122 = new SysPortalMenu(); - menu122.setId("SysApiMainDoc"); - menu122.setName("接口文档"); - menu122.setCode("SysApiMainDoc"); - menu122.setPath("/sys/api/role/doc"); - //menu122.setExtag(true);//外链 - menu122.setIftag(true); - menu122.setComp("http://localhost:5000/doc.html"); + menu122.setId("SysCoopCorp"); + menu122.setName("外部公司"); + menu122.setCode("SysCoopCorp"); + menu122.setPath("/sys/coop/corp"); + menu122.setComp("/sys/coop/corp/index"); menu122.setOrnum(12); menu122.setIcon("ele-Tickets"); - menu122.setPid("SysApi"); - menu122.setCatag(false); + menu122.setPid("SysCoop"); + menu122.setCatag(true); menu122.setAvtag(true); menu122.setShtag(true); menu122.setType("M"); @@ -333,14 +316,14 @@ public class SysPortalVueInit { menuService.insert(menu122); SysPortalMenu menu123 = new SysPortalMenu(); - menu123.setId("SysApiRole"); - menu123.setName("接口角色"); - menu123.setCode("SysApiRole"); - menu123.setPath("/sys/api/role"); - menu123.setComp("/sys/api/role/index"); - menu123.setOrnum(20); + menu123.setId("SysCoopUser"); + menu123.setName("外部用户"); + menu123.setCode("SysCoopUser"); + menu123.setPath("/sys/coop/user"); + menu123.setComp("/sys/coop/user/index"); + menu123.setOrnum(13); menu123.setIcon("ele-Tickets"); - menu123.setPid("SysApi"); + menu123.setPid("SysCoop"); menu123.setCatag(true); menu123.setAvtag(true); menu123.setShtag(true); @@ -348,31 +331,15 @@ public class SysPortalVueInit { menu123.setPorid("sys"); menuService.insert(menu123); - SysPortalMenu menu123a = new SysPortalMenu(); - menu123a.setId("SysApiRoleEdit"); - menu123a.setName("角色编辑"); - menu123a.setCode("SysApiRoleEdit"); - menu123a.setPath("/sys/api/role/edit"); - menu123a.setComp("/sys/api/role/edit"); - menu123a.setOrnum(21); - menu123a.setIcon("ele-Tickets"); - menu123a.setPid("SysApi"); - menu123a.setCatag(true); - menu123a.setAvtag(true); - menu123a.setShtag(false); - menu123a.setType("M"); - menu123a.setPorid("sys"); - menuService.insert(menu123a); - SysPortalMenu menu13 = new SysPortalMenu(); - menu13.setId("SysPortal"); - menu13.setName("门户管理"); - menu13.setCode("SysPortal"); + menu13.setId("SysApi"); + menu13.setName("接口管理"); + menu13.setCode("SysApi"); menu13.setComp("LAYOUT"); - menu13.setPath("/sys/portal"); - menu13.setRedirect("/sys/portal/main"); + menu13.setPath("/sys/api"); + menu13.setRedirect("/sys/api/main"); menu13.setOrnum(3); - menu13.setIcon("ele-Notebook"); + menu13.setIcon("ele-Lock"); menu13.setPid("Sys"); menu13.setAvtag(true); menu13.setShtag(true); @@ -381,14 +348,14 @@ public class SysPortalVueInit { menuService.insert(menu13); SysPortalMenu menu131 = new SysPortalMenu(); - menu131.setId("SysPortalMain"); - menu131.setName("门户清单"); - menu131.setCode("SysPortalMain"); - menu131.setPath("/sys/portal/main"); - menu131.setComp("/sys/portal/main/index"); + menu131.setId("SysApiMain"); + menu131.setName("接口清单"); + menu131.setCode("SysApiMain"); + menu131.setPath("/sys/api/main"); + menu131.setComp("/sys/api/main/index"); menu131.setOrnum(10); menu131.setIcon("ele-Tickets"); - menu131.setPid("SysPortal"); + menu131.setPid("SysApi"); menu131.setCatag(true); menu131.setAvtag(true); menu131.setShtag(true); @@ -396,63 +363,49 @@ public class SysPortalVueInit { menu131.setPorid("sys"); menuService.insert(menu131); - SysPortalMenu menu131a = new SysPortalMenu(); - menu131a.setId("SysPortalMainEdit"); - menu131a.setName("门户编辑"); - menu131a.setCode("SysPortalMainEdit"); - menu131a.setPath("/sys/portal/main/edit"); - menu131a.setComp("/sys/portal/main/edit"); - menu131a.setOrnum(11); - menu131a.setIcon("ele-Tickets"); - menu131a.setPid("SysPortal"); - menu131a.setCatag(true); - menu131a.setAvtag(true); - menu131a.setShtag(false); - menu131a.setType("M"); - menu131a.setPorid("sys"); - menuService.insert(menu131a); +// SysPortalMenu menu121a = new SysPortalMenu(); +// menu121a.setId("SysApiMainEdit"); +// menu121a.setName("接口编辑"); +// menu121a.setCode("SysApiMainEdit"); +// menu121a.setPath("/sys/api/main/edit"); +// menu121a.setComp("/sys/api/main/edit"); +// menu121a.setOrnum(11); +// menu121a.setIcon("ele-Tickets"); +// menu121a.setPid("SysApi"); +// menu121a.setCatag(true); +// menu121a.setAvtag(true); +// menu121a.setShtag(false); +// menu121a.setType("M"); +// menu121a.setPorid("sys"); +// menuService.insert(menu121a); SysPortalMenu menu132 = new SysPortalMenu(); - menu132.setId("SysPortalMenu"); - menu132.setName("门户菜单"); - menu132.setCode("SysPortalMenu"); - menu132.setPath("/sys/portal/menu"); - menu132.setComp("/sys/portal/menu/index"); + menu132.setId("SysApiMainDoc"); + menu132.setName("接口文档"); + menu132.setCode("SysApiMainDoc"); + menu132.setPath("/sys/api/role/doc"); + //menu122.setExtag(true);//外链 + menu132.setIftag(true); + menu132.setComp("http://localhost:5000/doc.html"); menu132.setOrnum(12); menu132.setIcon("ele-Tickets"); - menu132.setPid("SysPortal"); - menu132.setCatag(true); + menu132.setPid("SysApi"); + menu132.setCatag(false); menu132.setAvtag(true); menu132.setShtag(true); menu132.setType("M"); menu132.setPorid("sys"); menuService.insert(menu132); - SysPortalMenu menu132a = new SysPortalMenu(); - menu132a.setId("SysPortalMenuEdit"); - menu132a.setName("菜单编辑"); - menu132a.setCode("SysPortalMenuEdit"); - menu132a.setPath("/sys/portal/menu/edit"); - menu132a.setComp("/sys/portal/menu/edit"); - menu132a.setOrnum(13); - menu132a.setIcon("ele-Tickets"); - menu132a.setPid("SysPortal"); - menu132a.setCatag(true); - menu132a.setAvtag(true); - menu132a.setShtag(false); - menu132a.setType("M"); - menu132a.setPorid("sys"); - menuService.insert(menu132a); - SysPortalMenu menu133 = new SysPortalMenu(); - menu133.setId("SysPortalRole"); - menu133.setName("门户角色"); - menu133.setCode("SysPortalRole"); - menu133.setPath("/sys/portal/role"); - menu133.setComp("/sys/portal/role/index"); - menu133.setOrnum(14); + menu133.setId("SysApiRole"); + menu133.setName("接口角色"); + menu133.setCode("SysApiRole"); + menu133.setPath("/sys/api/role"); + menu133.setComp("/sys/api/role/index"); + menu133.setOrnum(20); menu133.setIcon("ele-Tickets"); - menu133.setPid("SysPortal"); + menu133.setPid("SysApi"); menu133.setCatag(true); menu133.setAvtag(true); menu133.setShtag(true); @@ -461,14 +414,14 @@ public class SysPortalVueInit { menuService.insert(menu133); SysPortalMenu menu133a = new SysPortalMenu(); - menu133a.setId("SysPortalRoleEdit"); + menu133a.setId("SysApiRoleEdit"); menu133a.setName("角色编辑"); - menu133a.setCode("SysPortalRoleEdit"); - menu133a.setPath("/sys/portal/role/edit"); - menu133a.setComp("/sys/portal/role/edit"); - menu133a.setOrnum(15); + menu133a.setCode("SysApiRoleEdit"); + menu133a.setPath("/sys/api/role/edit"); + menu133a.setComp("/sys/api/role/edit"); + menu133a.setOrnum(21); menu133a.setIcon("ele-Tickets"); - menu133a.setPid("SysPortal"); + menu133a.setPid("SysApi"); menu133a.setCatag(true); menu133a.setAvtag(true); menu133a.setShtag(false); @@ -476,6 +429,118 @@ public class SysPortalVueInit { menu133a.setPorid("sys"); menuService.insert(menu133a); + SysPortalMenu menu14 = new SysPortalMenu(); + menu14.setId("SysPortal"); + menu14.setName("门户管理"); + menu14.setCode("SysPortal"); + menu14.setComp("LAYOUT"); + menu14.setPath("/sys/portal"); + menu14.setRedirect("/sys/portal/main"); + menu14.setOrnum(4); + menu14.setIcon("ele-Notebook"); + menu14.setPid("Sys"); + menu14.setAvtag(true); + menu14.setShtag(true); + menu14.setType("D"); + menu14.setPorid("sys"); + menuService.insert(menu14); + + SysPortalMenu menu141 = new SysPortalMenu(); + menu141.setId("SysPortalMain"); + menu141.setName("门户清单"); + menu141.setCode("SysPortalMain"); + menu141.setPath("/sys/portal/main"); + menu141.setComp("/sys/portal/main/index"); + menu141.setOrnum(10); + menu141.setIcon("ele-Tickets"); + menu141.setPid("SysPortal"); + menu141.setCatag(true); + menu141.setAvtag(true); + menu141.setShtag(true); + menu141.setType("M"); + menu141.setPorid("sys"); + menuService.insert(menu141); + + SysPortalMenu menu141a = new SysPortalMenu(); + menu141a.setId("SysPortalMainEdit"); + menu141a.setName("门户编辑"); + menu141a.setCode("SysPortalMainEdit"); + menu141a.setPath("/sys/portal/main/edit"); + menu141a.setComp("/sys/portal/main/edit"); + menu141a.setOrnum(11); + menu141a.setIcon("ele-Tickets"); + menu141a.setPid("SysPortal"); + menu141a.setCatag(true); + menu141a.setAvtag(true); + menu141a.setShtag(false); + menu141a.setType("M"); + menu141a.setPorid("sys"); + menuService.insert(menu141a); + + SysPortalMenu menu142 = new SysPortalMenu(); + menu142.setId("SysPortalMenu"); + menu142.setName("门户菜单"); + menu142.setCode("SysPortalMenu"); + menu142.setPath("/sys/portal/menu"); + menu142.setComp("/sys/portal/menu/index"); + menu142.setOrnum(12); + menu142.setIcon("ele-Tickets"); + menu142.setPid("SysPortal"); + menu142.setCatag(true); + menu142.setAvtag(true); + menu142.setShtag(true); + menu142.setType("M"); + menu142.setPorid("sys"); + menuService.insert(menu142); + + SysPortalMenu menu142a = new SysPortalMenu(); + menu142a.setId("SysPortalMenuEdit"); + menu142a.setName("菜单编辑"); + menu142a.setCode("SysPortalMenuEdit"); + menu142a.setPath("/sys/portal/menu/edit"); + menu142a.setComp("/sys/portal/menu/edit"); + menu142a.setOrnum(13); + menu142a.setIcon("ele-Tickets"); + menu142a.setPid("SysPortal"); + menu142a.setCatag(true); + menu142a.setAvtag(true); + menu142a.setShtag(false); + menu142a.setType("M"); + menu142a.setPorid("sys"); + menuService.insert(menu142a); + + SysPortalMenu menu143 = new SysPortalMenu(); + menu143.setId("SysPortalRole"); + menu143.setName("门户角色"); + menu143.setCode("SysPortalRole"); + menu143.setPath("/sys/portal/role"); + menu143.setComp("/sys/portal/role/index"); + menu143.setOrnum(14); + menu143.setIcon("ele-Tickets"); + menu143.setPid("SysPortal"); + menu143.setCatag(true); + menu143.setAvtag(true); + menu143.setShtag(true); + menu143.setType("M"); + menu143.setPorid("sys"); + menuService.insert(menu143); + + SysPortalMenu menu143a = new SysPortalMenu(); + menu143a.setId("SysPortalRoleEdit"); + menu143a.setName("角色编辑"); + menu143a.setCode("SysPortalRoleEdit"); + menu143a.setPath("/sys/portal/role/edit"); + menu143a.setComp("/sys/portal/role/edit"); + menu143a.setOrnum(15); + menu143a.setIcon("ele-Tickets"); + menu143a.setPid("SysPortal"); + menu143a.setCatag(true); + menu143a.setAvtag(true); + menu143a.setShtag(false); + menu143a.setType("M"); + menu143a.setPorid("sys"); + menuService.insert(menu143a); + //-----------------监控中心-------------------- SysPortalMenu menu2 = new SysPortalMenu(); menu2.setId("Mon"); @@ -974,38 +1039,6 @@ public class SysPortalVueInit { menu413b.setPorid("sys"); menuService.insert(menu413b); - SysPortalMenu menu414 = new SysPortalMenu(); - menu414.setId("SysTodoMain"); - menu414.setName("流程待办"); - menu414.setCode("SysTodoMain"); - menu414.setPath("/sys/todo/main"); - menu414.setComp("/sys/todo/main/index"); - menu414.setOrnum(414); - menu414.setIcon("ele-Tickets"); - menu414.setPid("OaFlow"); - menu414.setCatag(true); - menu414.setAvtag(true); - menu414.setShtag(true); - menu414.setType("M"); - menu414.setPorid("sys"); - menuService.insert(menu414); - - SysPortalMenu menu414a = new SysPortalMenu(); - menu414a.setId("SysTodoMainEdit"); - menu414a.setName("流程待办查看"); - menu414a.setCode("SysTodoMainEdit"); - menu414a.setPath("/sys/todo/main/edit"); - menu414a.setComp("/sys/todo/main/edit"); - menu414a.setOrnum(4141); - menu414a.setIcon("ele-Tickets"); - menu414a.setPid("OaFlow"); - menu414a.setCatag(true); - menu414a.setAvtag(true); - menu414a.setShtag(false); - menu414a.setType("M"); - menu414a.setPorid("sys"); - menuService.insert(menu414a); - //-----------------DEMO-------------------- SysPortalMenu menu8 = new SysPortalMenu(); menu8.setId("My"); diff --git a/vboot-web/src/main/resources/vms/route/route.sql.vm b/vboot-web/src/main/resources/vms/route/route.sql.vm new file mode 100644 index 0000000..9dcf9ba --- /dev/null +++ b/vboot-web/src/main/resources/vms/route/route.sql.vm @@ -0,0 +1,7 @@ + insert into sys_portal_menu (id,ornum,pid,porid,type,code,icon,path,comp,extag,catag,shtag,iftag,name,crman,avtag) + values ('${table.bunam}',999991,null,'sys','M','${table.bunam}','ele-Tickets','/${table.name.replace("_","/")}','/${table.name.replace("_","/")}/index',0,1,1,0,'${table.remark}清单','sa',1); + +#if($table.edtyp=="tab") + insert into sys_portal_menu (id,ornum,pid,porid,type,code,icon,path,comp,extag,catag,shtag,iftag,name,crman,avtag) + values ('${table.bunam}Edit',999992,null,'sys','M','${table.bunam}Edit','ele-Tickets','/${table.name.replace("_","/")}/edit','/${table.name.replace("_","/")}/edit',0,1,0,0,'${table.remark}编辑','sa',1); +#end \ No newline at end of file