mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【portal】新增常用功能的更新api
parent
7cd3c1becd
commit
fd17681131
|
@ -1,5 +1,6 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.userapp.controller;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
|
@ -48,7 +49,7 @@ public class PortalUserAppController {
|
|||
*/
|
||||
@PostResource(name = "添加", path = "/portalUserApp/updateUserAppList")
|
||||
public ResponseData<PortalUserApp> updateUserAppList(
|
||||
@RequestBody @Validated(PortalUserAppRequest.add.class) PortalUserAppRequest portalUserAppRequest) {
|
||||
@RequestBody @Validated(BaseRequest.edit.class) PortalUserAppRequest portalUserAppRequest) {
|
||||
portalUserAppService.updateUserAppList(portalUserAppRequest);
|
||||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.userapp.mapper;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.mp.injector.CustomBaseMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.userapp.entity.PortalUserApp;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 用户常用功能 Mapper 接口
|
||||
|
@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
* @author fengshuonan
|
||||
* @date 2023/06/26 21:25
|
||||
*/
|
||||
public interface PortalUserAppMapper extends BaseMapper<PortalUserApp> {
|
||||
public interface PortalUserAppMapper extends CustomBaseMapper<PortalUserApp> {
|
||||
|
||||
}
|
|
@ -5,7 +5,8 @@ import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
|||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户常用功能封装类
|
||||
|
@ -18,28 +19,10 @@ import javax.validation.constraints.NotNull;
|
|||
public class PortalUserAppRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
* 用户选择的关联的菜单id集合
|
||||
*/
|
||||
@NotNull(message = "主键id不能为空", groups = {edit.class, delete.class})
|
||||
@ChineseDescription("主键id")
|
||||
private Long appLinkId;
|
||||
|
||||
/**
|
||||
* 冗余字段,菜单所属的应用id
|
||||
*/
|
||||
@ChineseDescription("冗余字段,菜单所属的应用id")
|
||||
private Long appId;
|
||||
|
||||
/**
|
||||
* 关联的菜单id
|
||||
*/
|
||||
@ChineseDescription("关联的菜单id")
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 租户id
|
||||
*/
|
||||
@ChineseDescription("租户id")
|
||||
private Long tenantId;
|
||||
@ChineseDescription("用户选择的关联的菜单id集合")
|
||||
@NotEmpty(message = "菜单id集合不能为空", groups = edit.class)
|
||||
private List<Long> menuIdList;
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.userapp.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.sys.api.SysMenuServiceApi;
|
||||
|
@ -12,10 +11,12 @@ import cn.stylefeng.roses.kernel.sys.modular.userapp.service.PortalUserAppServic
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -32,10 +33,29 @@ public class PortalUserAppServiceImpl extends ServiceImpl<PortalUserAppMapper, P
|
|||
private SysMenuServiceApi sysMenuServiceApi;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateUserAppList(PortalUserAppRequest portalUserAppRequest) {
|
||||
PortalUserApp portalUserApp = new PortalUserApp();
|
||||
BeanUtil.copyProperties(portalUserAppRequest, portalUserApp);
|
||||
this.save(portalUserApp);
|
||||
|
||||
// 获取当前登录用户id
|
||||
Long userId = LoginContext.me().getLoginUser().getUserId();
|
||||
|
||||
// 删除掉用户绑定的菜单集合
|
||||
LambdaQueryWrapper<PortalUserApp> removeWrapper = new LambdaQueryWrapper<>();
|
||||
removeWrapper.eq(PortalUserApp::getUserId, userId);
|
||||
this.remove(removeWrapper);
|
||||
|
||||
// 获取菜单id集合对应的应用id集合,为了冗余字段,删除应用时,联动删除
|
||||
Map<Long, Long> menuIdAppIdMap = sysMenuServiceApi.getMenuAppId(portalUserAppRequest.getMenuIdList());
|
||||
|
||||
List<PortalUserApp> portalUserApps = new ArrayList<>();
|
||||
for (Long menuId : portalUserAppRequest.getMenuIdList()) {
|
||||
PortalUserApp portalUserApp = new PortalUserApp();
|
||||
portalUserApp.setUserId(userId);
|
||||
portalUserApp.setAppId(menuIdAppIdMap.get(menuId));
|
||||
portalUserApp.setMenuId(menuId);
|
||||
portalUserApps.add(portalUserApp);
|
||||
}
|
||||
this.getBaseMapper().insertBatchSomeColumn(portalUserApps);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue