【7.6.0】【sys】【portal】新增常用功能的更新api

pull/57/head
fengshuonan 2023-06-26 21:55:57 +08:00
parent 7cd3c1becd
commit fd17681131
4 changed files with 34 additions and 30 deletions

View File

@ -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<>();
}

View File

@ -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> {
}

View File

@ -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;
}

View File

@ -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