22 changed files with 825 additions and 10 deletions
@ -0,0 +1,35 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenu; |
|||
|
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 20:32 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class SysMobileMenu extends BaseEntity { |
|||
private static final long serialVersionUID = 7612084533081655213L; |
|||
@ApiModelProperty("应用分类") |
|||
private String titleGroup; |
|||
|
|||
@ApiModelProperty("应用名称") |
|||
private String title; |
|||
|
|||
@ApiModelProperty("插件sid") |
|||
private String linkSid; |
|||
|
|||
@ApiModelProperty("应用图标") |
|||
private String iconUrl; |
|||
|
|||
@ApiModelProperty("应用路由") |
|||
private String path; |
|||
|
|||
@ApiModelProperty("排序") |
|||
private String sortNo; |
|||
|
|||
@ApiModelProperty("父级sid") |
|||
private String psid; |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenu; |
|||
|
|||
import com.yxt.anrui.portal.api.appversion.AppVersionVo; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/26 10:02 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class SysMobileMenuAllVo implements Vo { |
|||
private static final long serialVersionUID = 6995910918440526218L; |
|||
|
|||
private AppVersionVo appVersionVo; |
|||
|
|||
private List<SysMobileMenuVo> list; |
|||
} |
@ -0,0 +1,36 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenu; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 20:42 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class SysMobileMenuDto implements Dto { |
|||
private static final long serialVersionUID = 2939430292974122530L; |
|||
@ApiModelProperty("插件appSid") |
|||
private String linkSid; |
|||
|
|||
private String sid; |
|||
@ApiModelProperty("应用分类") |
|||
private String titleGroup; |
|||
|
|||
@ApiModelProperty("应用名称") |
|||
private String title; |
|||
|
|||
@ApiModelProperty("应用图标") |
|||
private String iconUrl; |
|||
|
|||
@ApiModelProperty("应用路由") |
|||
private String path; |
|||
|
|||
@ApiModelProperty("排序") |
|||
private String sortNo; |
|||
|
|||
@ApiModelProperty(value = "父级sid",example = "0") |
|||
private String psid; |
|||
} |
@ -0,0 +1,34 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenu; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.ResponseBody; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 20:36 |
|||
* @Description |
|||
*/ |
|||
@Api(tags = "移动端插件的应用") |
|||
@FeignClient( |
|||
contextId = "anrui-portal-SysMobileMenu", |
|||
name = "anrui-portal", |
|||
path = "v1/sysmobilemenu", |
|||
fallback = SysMobileMenuFeignFallback.class) |
|||
public interface SysMobileMenuFeign { |
|||
|
|||
@ApiOperation("新增/修改插件的应用 ") |
|||
@PostMapping("/saveOrUpdate") |
|||
@ResponseBody |
|||
ResultBean<String> saveOrUpdate(@RequestBody SysMobileMenuDto dto); |
|||
|
|||
@ApiOperation("插件及应用列表 ") |
|||
@GetMapping("/list") |
|||
@ResponseBody |
|||
ResultBean<SysMobileMenuAllVo> list(); |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenu; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 20:41 |
|||
* @Description |
|||
*/ |
|||
@Component |
|||
public class SysMobileMenuFeignFallback implements SysMobileMenuFeign{ |
|||
@Override |
|||
public ResultBean<String> saveOrUpdate(SysMobileMenuDto dto) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<SysMobileMenuAllVo> list() { |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenu; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 21:18 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class SysMobileMenuListVo implements Vo { |
|||
private static final long serialVersionUID = 7521651989451963063L; |
|||
|
|||
@ApiModelProperty("应用名称") |
|||
private String appName; |
|||
|
|||
@ApiModelProperty("插件图标") |
|||
private String iconUrl; |
|||
|
|||
@ApiModelProperty("应用分类") |
|||
private String versionName; |
|||
|
|||
@ApiModelProperty("更新时间") |
|||
private String modifyTime; |
|||
|
|||
@ApiModelProperty("应用路由:sorceAction") |
|||
private String sourceAction; |
|||
|
|||
@ApiModelProperty("sid") |
|||
private String sid; |
|||
|
|||
private List<SysMobileMenuListVo> mobileMenuList; |
|||
} |
@ -0,0 +1,36 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenu; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 21:10 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class SysMobileMenuVo implements Vo { |
|||
private static final long serialVersionUID = -3007989177724705110L; |
|||
@ApiModelProperty("插件名称") |
|||
private String appName; |
|||
|
|||
@ApiModelProperty("插件图标") |
|||
private String iconUrl; |
|||
|
|||
@ApiModelProperty("版本号") |
|||
private String versionName; |
|||
|
|||
@ApiModelProperty("更新时间") |
|||
private String modifyTime; |
|||
|
|||
@ApiModelProperty("应用路由:sorceAction") |
|||
private String sourceAction; |
|||
|
|||
private String sid; |
|||
|
|||
private String appSid; |
|||
private List<SysMobileMenuListVo> mobileMenuList; |
|||
} |
@ -0,0 +1,19 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenurole; |
|||
|
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 21:52 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class SysMobileMenuRole extends BaseEntity { |
|||
private static final long serialVersionUID = -5457349480183482010L; |
|||
@ApiModelProperty("移动端菜单") |
|||
private String menuSid; |
|||
@ApiModelProperty("角色sid") |
|||
private String roleSid; |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenurole; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/26 11:20 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class SysMobileMenuRoleDto implements Dto { |
|||
private static final long serialVersionUID = -397117381631086411L; |
|||
|
|||
@ApiModelProperty("菜单sid") |
|||
private String menuSid; |
|||
|
|||
@ApiModelProperty("角色sid") |
|||
private String roleSid; |
|||
} |
@ -0,0 +1,33 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenurole; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/26 10:17 |
|||
* @Description |
|||
*/ |
|||
@Api(tags = "移动端应用授权") |
|||
@FeignClient( |
|||
contextId = "anrui-portal-SysMobileMenuRole", |
|||
name = "anrui-portal", |
|||
path = "v1/sysmobilemenurole", |
|||
fallback = SysMobileMenuRoleFeignFallback.class) |
|||
public interface SysMobileMenuRoleFeign { |
|||
|
|||
@ApiOperation("应用授权列表 ") |
|||
@GetMapping("/getRoleMenuList") |
|||
@ResponseBody |
|||
ResultBean<List<SysMobileMenuRoleVo>> getRoleMenuList(@RequestParam("roleSid") String roleSid); |
|||
|
|||
@ApiOperation("应用授权 ") |
|||
@PostMapping("/saveRoleMenuList") |
|||
@ResponseBody |
|||
ResultBean saveRoleMenuList(@RequestBody SysMobileMenuRoleDto dto); |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenurole; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/26 10:18 |
|||
* @Description |
|||
*/ |
|||
@Component |
|||
public class SysMobileMenuRoleFeignFallback implements SysMobileMenuRoleFeign{ |
|||
@Override |
|||
public ResultBean<List<SysMobileMenuRoleVo>> getRoleMenuList(String roleSid) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean saveRoleMenuList(SysMobileMenuRoleDto dto) { |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,25 @@ |
|||
package com.yxt.anrui.portal.api.sysmobilemenurole; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/26 10:32 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class SysMobileMenuRoleVo implements Vo { |
|||
private static final long serialVersionUID = -2992681724218948454L; |
|||
@ApiModelProperty("菜单名称") |
|||
private String menuName; |
|||
@ApiModelProperty("菜单sid") |
|||
private String menuSid; |
|||
@ApiModelProperty("是否选中,1:未选中,0:选中") |
|||
private String checked; |
|||
|
|||
private List<SysMobileMenuRoleVo> childrenList; |
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.yxt.anrui.portal.biz.sysmobilemenu; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenu; |
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuVo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 20:51 |
|||
* @Description |
|||
*/ |
|||
@Mapper |
|||
public interface SysMobileMenuMapper extends BaseMapper<SysMobileMenu> { |
|||
//插件列表及应用列表
|
|||
List<SysMobileMenuVo> listAll(@Param("path") String path, @Param("linkSid") String linkSid); |
|||
} |
@ -0,0 +1,58 @@ |
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
|||
<mapper namespace="com.yxt.anrui.portal.biz.sysmobilemenu.SysMobileMenuMapper"> |
|||
<select id="listAll" resultMap="listMap"> |
|||
SELECT asv.sortNo, |
|||
asv.appName, |
|||
asv.appSid, |
|||
asv.versionCode, |
|||
if(length(asv.iconUrl) > 0, concat(#{path}, asv.iconUrl), '') as iconUrl, |
|||
asv.versionName, |
|||
asv.`id`, |
|||
asv.sid, |
|||
DATE_FORMAT(asv.modifyTime, '%Y-%m-%d') as modifyTime, |
|||
asv.sourceAction |
|||
FROM app_subset_version asv |
|||
WHERE linkSid = #{linkSid} |
|||
AND id IN (SELECT MAX(id) FROM app_subset_version GROUP BY appSid) |
|||
ORDER BY sortNo ASC |
|||
</select> |
|||
|
|||
<resultMap id="listMap" type="com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuVo"> |
|||
<result column="appName" jdbcType="VARCHAR" property="appName"/> |
|||
<result column="sid" jdbcType="VARCHAR" property="sid"/> |
|||
<result column="iconUrl" jdbcType="VARCHAR" property="iconUrl"/> |
|||
<result column="versionName" jdbcType="INTEGER" property="versionName"/> |
|||
<result column="modifyTime" jdbcType="VARCHAR" property="modifyTime"/> |
|||
<result column="sourceAction" jdbcType="VARCHAR" property="sourceAction"/> |
|||
<result column="appSid" jdbcType="VARCHAR" property="appSid"/> |
|||
<collection property="mobileMenuList" ofType="com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuListVo" |
|||
select="mobileMenuList" column="appSid"> |
|||
</collection> |
|||
</resultMap> |
|||
|
|||
<resultMap id="childrenMap" type="com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuListVo"> |
|||
<result column="appName" jdbcType="VARCHAR" property="appName"/> |
|||
<result column="sid" jdbcType="VARCHAR" property="sid"/> |
|||
<result column="iconUrl" jdbcType="VARCHAR" property="iconUrl"/> |
|||
<result column="versionName" jdbcType="INTEGER" property="versionName"/> |
|||
<result column="modifyTime" jdbcType="VARCHAR" property="modifyTime"/> |
|||
<result column="sourceAction" jdbcType="VARCHAR" property="sourceAction"/> |
|||
<collection property="mobileMenuList" ofType="com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuListVo" |
|||
select="childrenList" column="sid"> |
|||
</collection> |
|||
</resultMap> |
|||
<select id="mobileMenuList" resultMap="childrenMap"> |
|||
select title appName, titleGroup versionName, DATE_FORMAT(modifyTime, '%Y-%m-%d') as modifyTime, path as sourceAction, sortNo, sid, iconUrl |
|||
from sys_mobile_menu |
|||
where linkSid = #{appSid} and psid = '0' |
|||
order by sortNo asc |
|||
</select> |
|||
|
|||
<select id="childrenList" resultMap="childrenMap"> |
|||
select title appName, titleGroup versionName, DATE_FORMAT(modifyTime, '%Y-%m-%d') as modifyTime, path as sourceAction, sortNo, sid, iconUrl |
|||
from sys_mobile_menu |
|||
where pSid = #{sid} |
|||
order by sortNo asc |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,34 @@ |
|||
package com.yxt.anrui.portal.biz.sysmobilemenu; |
|||
|
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuAllVo; |
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuDto; |
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuFeign; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 20:50 |
|||
* @Description |
|||
*/ |
|||
@Api(tags = "移动端插件应用") |
|||
@Controller |
|||
@RequestMapping("v1/sysmobilemenu") |
|||
public class SysMobileMenuRest implements SysMobileMenuFeign { |
|||
|
|||
@Autowired |
|||
private SysMobileMenuService sysMobileMenuService; |
|||
|
|||
@Override |
|||
public ResultBean<String> saveOrUpdate(SysMobileMenuDto dto) { |
|||
return sysMobileMenuService.saveorUpdateAll(dto); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<SysMobileMenuAllVo> list() { |
|||
return sysMobileMenuService.listAll(); |
|||
} |
|||
} |
@ -0,0 +1,67 @@ |
|||
package com.yxt.anrui.portal.biz.sysmobilemenu; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.yxt.anrui.portal.api.appversion.AppVersionVo; |
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenu; |
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuAllVo; |
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuDto; |
|||
import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenuVo; |
|||
import com.yxt.anrui.portal.biz.appversion.AppVersionService; |
|||
import com.yxt.common.base.config.component.FileUploadComponent; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/25 20:51 |
|||
* @Description |
|||
*/ |
|||
@Service |
|||
public class SysMobileMenuService extends MybatisBaseService<SysMobileMenuMapper, SysMobileMenu> { |
|||
@Autowired |
|||
private FileUploadComponent fileUploadComponent; |
|||
@Autowired |
|||
private AppVersionService appVersionService; |
|||
|
|||
public ResultBean<String> saveorUpdateAll(SysMobileMenuDto dto) { |
|||
ResultBean<String> rb = ResultBean.fireFail(); |
|||
String sid = dto.getSid(); |
|||
if (StringUtils.isBlank(sid)) { |
|||
SysMobileMenu sysMobileMenu = new SysMobileMenu(); |
|||
BeanUtil.copyProperties(dto, sysMobileMenu, "sid"); |
|||
baseMapper.insert(sysMobileMenu); |
|||
sid = sysMobileMenu.getSid(); |
|||
} else { |
|||
SysMobileMenu sysMobileMenu = fetchBySid(sid); |
|||
if (sysMobileMenu == null) { |
|||
return rb.setMsg("该应用不存在"); |
|||
} |
|||
BeanUtil.copyProperties(dto, sysMobileMenu); |
|||
baseMapper.updateById(sysMobileMenu); |
|||
|
|||
} |
|||
return rb.success().setData(sid); |
|||
} |
|||
|
|||
public ResultBean<SysMobileMenuAllVo> listAll() { |
|||
ResultBean<SysMobileMenuAllVo> rb = ResultBean.fireFail(); |
|||
SysMobileMenuAllVo vo = new SysMobileMenuAllVo(); |
|||
//查询最新版的框架信息
|
|||
AppVersionVo appVersionVo = appVersionService.selectNewAppVersion(); |
|||
if (appVersionVo != null) { |
|||
vo.setAppVersionVo(appVersionVo); |
|||
} |
|||
String path = fileUploadComponent.getUrlPrefix(); |
|||
String linkSid = "147694bb-c765-4426-8f67-d19a66585f31"; |
|||
List<SysMobileMenuVo> list = baseMapper.listAll(path, linkSid); |
|||
list.removeAll(Collections.singleton(null)); |
|||
vo.setList(list); |
|||
return rb.success().setData(vo); |
|||
} |
|||
} |
@ -0,0 +1,45 @@ |
|||
package com.yxt.anrui.portal.biz.sysmobilemenurole; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRole; |
|||
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleVo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/26 10:19 |
|||
* @Description |
|||
*/ |
|||
@Mapper |
|||
public interface SysMobileMenuRoleMapper extends BaseMapper<SysMobileMenuRole> { |
|||
/** |
|||
* 查询插件下的应用 |
|||
* |
|||
* @param roleSid 角色sid |
|||
* @param s 插件下应用 |
|||
* @param appSid appSid |
|||
* @return |
|||
*/ |
|||
List<SysMobileMenuRoleVo> listAllByRoleSid(@Param("roleSid") String roleSid, @Param("psid") String s, @Param("appSid") String appSid); |
|||
|
|||
/** |
|||
* 查询应用下的应用 |
|||
* |
|||
* @param roleSid 角色sid |
|||
* @param sid 应用的sid |
|||
* @param appSid appSid |
|||
* @return |
|||
*/ |
|||
List<SysMobileMenuRoleVo> getChildrensByRoleSid(@Param("roleSid") String roleSid, @Param("psid") String sid, @Param("appSid") String appSid); |
|||
|
|||
/** |
|||
* 根据角色sid删除相关的菜单授权 |
|||
* |
|||
* @param roleSid 角色sid |
|||
* @return |
|||
*/ |
|||
int deleteByRoleSid(String roleSid); |
|||
} |
@ -0,0 +1,31 @@ |
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
|||
<mapper namespace="com.yxt.anrui.portal.biz.sysmobilemenurole.SysMobileMenuRoleMapper"> |
|||
<select id="listAllByRoleSid" resultType="com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleVo"> |
|||
SELECT menu.title menuName, menu.sid menuSid, ISNULL(menuRole.sid) as checked |
|||
FROM sys_mobile_menu menu |
|||
left join sys_mobile_menu_role menuRole |
|||
on menu.sid = menuRole.menuSid AND menuRole.roleSid = #{roleSid} |
|||
where menu.pSid = #{psid} |
|||
<if test="appSid != null"> |
|||
and menu.linkSid = #{appSid} |
|||
</if> |
|||
</select> |
|||
|
|||
<select id="getChildrensByRoleSid" resultType="com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleVo"> |
|||
SELECT menu.title menuName, menu.sid menuSid, ISNULL(menuRole.sid) as checked |
|||
FROM sys_mobile_menu menu |
|||
left join sys_mobile_menu_role menuRole |
|||
on menu.sid = menuRole.menuSid AND menuRole.roleSid = #{roleSid} |
|||
where menu.pSid = #{psid} |
|||
<if test="appSid != null"> |
|||
and menu.linkSid = #{appSid} |
|||
</if> |
|||
</select> |
|||
|
|||
<delete id="deleteByRoleSid"> |
|||
delete |
|||
from sys_mobile_menu_role |
|||
where roleSid = #{roleSid} |
|||
</delete> |
|||
</mapper> |
@ -0,0 +1,35 @@ |
|||
package com.yxt.anrui.portal.biz.sysmobilemenurole; |
|||
|
|||
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleDto; |
|||
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleFeign; |
|||
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleVo; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/26 10:19 |
|||
* @Description |
|||
*/ |
|||
@Api(tags = "移动端应用授权") |
|||
@Controller |
|||
@RequestMapping("v1/sysmobilemenurole") |
|||
public class SysMobileMenuRoleRest implements SysMobileMenuRoleFeign { |
|||
@Autowired |
|||
private SysMobileMenuRoleService sysMobileMenuRoleService; |
|||
|
|||
@Override |
|||
public ResultBean<List<SysMobileMenuRoleVo>> getRoleMenuList(String roleSid) { |
|||
return sysMobileMenuRoleService.getRoleMenuList(roleSid); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean saveRoleMenuList(SysMobileMenuRoleDto dto) { |
|||
return sysMobileMenuRoleService.saveRoleMenuList(dto); |
|||
} |
|||
} |
@ -0,0 +1,128 @@ |
|||
package com.yxt.anrui.portal.biz.sysmobilemenurole; |
|||
|
|||
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionVo; |
|||
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRole; |
|||
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleDto; |
|||
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleVo; |
|||
import com.yxt.anrui.portal.api.sysrole.SysRole; |
|||
import com.yxt.anrui.portal.biz.appsubsetversion.AppSubsetVersionService; |
|||
import com.yxt.anrui.portal.biz.sysrole.SysRoleService; |
|||
import com.yxt.common.base.config.component.FileUploadComponent; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/10/26 10:19 |
|||
* @Description |
|||
*/ |
|||
@Service |
|||
public class SysMobileMenuRoleService extends MybatisBaseService<SysMobileMenuRoleMapper, SysMobileMenuRole> { |
|||
|
|||
public static final String LINKSID = "147694bb-c765-4426-8f67-d19a66585f31"; |
|||
|
|||
@Autowired |
|||
private AppSubsetVersionService appSubsetVersionService; |
|||
@Autowired |
|||
private FileUploadComponent fileUploadComponent; |
|||
@Autowired |
|||
private SysRoleService sysRoleService; |
|||
|
|||
/** |
|||
* 移动端应用授权列表 |
|||
* |
|||
* @param roleSid 角色sid |
|||
* @return |
|||
*/ |
|||
public ResultBean<List<SysMobileMenuRoleVo>> getRoleMenuList(String roleSid) { |
|||
ResultBean<List<SysMobileMenuRoleVo>> rb = new ResultBean<>(); |
|||
if (StringUtils.isBlank(roleSid)) { |
|||
return rb.setMsg("角色sid不能为空"); |
|||
} |
|||
//查询所有的插件
|
|||
String linkSid = LINKSID; |
|||
String path = fileUploadComponent.getUrlPrefix(); |
|||
List<AppSubsetVersionVo> appSubsetVersionVoList = appSubsetVersionService.selectVersionList(linkSid, path); |
|||
List<SysMobileMenuRoleVo> sysMobileMenuRoleVos = new ArrayList<>(); |
|||
for (AppSubsetVersionVo s : appSubsetVersionVoList) { |
|||
SysMobileMenuRoleVo sysMenuVo = new SysMobileMenuRoleVo(); |
|||
sysMenuVo.setMenuName(s.getAppName()); |
|||
sysMenuVo.setMenuSid(s.getAppSid()); |
|||
sysMenuVo.setChecked("1"); |
|||
String appSid = s.getAppSid(); |
|||
sysMenuVo.setChildrenList(listAllByRoleSid(roleSid, appSid)); |
|||
sysMobileMenuRoleVos.add(sysMenuVo); |
|||
} |
|||
return rb.success().setData(sysMobileMenuRoleVos); |
|||
} |
|||
|
|||
/** |
|||
* 查询插件下的应用 |
|||
* |
|||
* @param roleSid 角色sid |
|||
* @param appSid appSid |
|||
* @return |
|||
*/ |
|||
public List<SysMobileMenuRoleVo> listAllByRoleSid(String roleSid, String appSid) { |
|||
List<SysMobileMenuRoleVo> sysMenuVos = baseMapper.listAllByRoleSid(roleSid, "0", appSid); |
|||
for (SysMobileMenuRoleVo s : sysMenuVos) { |
|||
getChildrensByRoleSid(s, roleSid, appSid); |
|||
} |
|||
return sysMenuVos; |
|||
} |
|||
|
|||
/** |
|||
* 查询应用下的应用 |
|||
* |
|||
* @param s 插件下的应用 |
|||
* @param roleSid 角色sid |
|||
* @param appSid appSid |
|||
*/ |
|||
private void getChildrensByRoleSid(SysMobileMenuRoleVo s, String roleSid, String appSid) { |
|||
String sid = s.getMenuSid(); |
|||
List<SysMobileMenuRoleVo> sysMenuVos = baseMapper.getChildrensByRoleSid(roleSid, sid, appSid); |
|||
if (!sysMenuVos.isEmpty()) { |
|||
for (SysMobileMenuRoleVo smv : sysMenuVos) { |
|||
getChildrensByRoleSid(smv, roleSid, appSid); |
|||
} |
|||
} |
|||
s.setChildrenList(sysMenuVos); |
|||
} |
|||
|
|||
/** |
|||
* 移动端应用授权 |
|||
* |
|||
* @param dto 参数 |
|||
* @return |
|||
*/ |
|||
public ResultBean saveRoleMenuList(SysMobileMenuRoleDto dto) { |
|||
String roleSid = dto.getRoleSid(); |
|||
String menuSid = dto.getMenuSid(); |
|||
if (StringUtils.isBlank(roleSid)) { |
|||
return ResultBean.fireFail().setMessage("角色sid不能为空"); |
|||
} else { |
|||
SysRole sysRole = sysRoleService.fetchBySid(roleSid); |
|||
if (sysRole == null || StringUtils.isBlank(sysRole.getSid())) { |
|||
return ResultBean.fireFail().setMessage("角色sid不存在"); |
|||
} |
|||
} |
|||
baseMapper.deleteByRoleSid(roleSid); |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
if (!StringUtils.isBlank(menuSid)) { |
|||
String[] sids = menuSid.split(","); |
|||
for (String sid : sids) { |
|||
SysMobileMenuRole sysMenuRole = new SysMobileMenuRole(); |
|||
sysMenuRole.setMenuSid(sid); |
|||
sysMenuRole.setRoleSid(roleSid); |
|||
baseMapper.insert(sysMenuRole); |
|||
} |
|||
} |
|||
return rb.success(); |
|||
} |
|||
} |
Loading…
Reference in new issue