mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【portal】初始化用户常用功能接口
parent
5f52dd3914
commit
b6219971ef
|
@ -0,0 +1,101 @@
|
||||||
|
package cn.stylefeng.roses.kernel.sys.modular.userapp.controller;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
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;
|
||||||
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||||
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.entity.PortalUserApp;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.pojo.request.PortalUserAppRequest;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.service.PortalUserAppService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户常用功能控制器
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@ApiResource(name = "用户常用功能")
|
||||||
|
public class PortalUserAppController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PortalUserAppService portalUserAppService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@PostResource(name = "添加", path = "/portalUserApp/add")
|
||||||
|
public ResponseData<PortalUserApp> add(@RequestBody @Validated(PortalUserAppRequest.add.class) PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
portalUserAppService.add(portalUserAppRequest);
|
||||||
|
return new SuccessResponseData<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@PostResource(name = "删除", path = "/portalUserApp/delete")
|
||||||
|
public ResponseData<?> delete(@RequestBody @Validated(PortalUserAppRequest.delete.class) PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
portalUserAppService.del(portalUserAppRequest);
|
||||||
|
return new SuccessResponseData<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@PostResource(name = "编辑", path = "/portalUserApp/edit")
|
||||||
|
public ResponseData<?> edit(@RequestBody @Validated(PortalUserAppRequest.edit.class) PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
portalUserAppService.edit(portalUserAppRequest);
|
||||||
|
return new SuccessResponseData<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看详情
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@GetResource(name = "查看详情", path = "/portalUserApp/detail")
|
||||||
|
public ResponseData<PortalUserApp> detail(@Validated(PortalUserAppRequest.detail.class) PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
return new SuccessResponseData<>(portalUserAppService.detail(portalUserAppRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取列表
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@GetResource(name = "获取列表", path = "/portalUserApp/list")
|
||||||
|
public ResponseData<List<PortalUserApp>> list(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
return new SuccessResponseData<>(portalUserAppService.findList(portalUserAppRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取列表(带分页)
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@GetResource(name = "分页查询", path = "/portalUserApp/page")
|
||||||
|
public ResponseData<PageResult<PortalUserApp>> page(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
return new SuccessResponseData<>(portalUserAppService.findPage(portalUserAppRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
package cn.stylefeng.roses.kernel.sys.modular.userapp.entity;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户常用功能实例类
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@TableName("portal_user_app")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class PortalUserApp extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId(value = "app_link_id", type = IdType.ASSIGN_ID)
|
||||||
|
@ChineseDescription("主键id")
|
||||||
|
private Long appLinkId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 冗余字段,菜单所属的应用id
|
||||||
|
*/
|
||||||
|
@TableField("app_id")
|
||||||
|
@ChineseDescription("冗余字段,菜单所属的应用id")
|
||||||
|
private Long appId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的菜单id
|
||||||
|
*/
|
||||||
|
@TableField("menu_id")
|
||||||
|
@ChineseDescription("关联的菜单id")
|
||||||
|
private Long menuId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户id
|
||||||
|
*/
|
||||||
|
@TableField("tenant_id")
|
||||||
|
@ChineseDescription("租户id")
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package cn.stylefeng.roses.kernel.sys.modular.userapp.enums;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户常用功能异常相关枚举
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
public enum PortalUserAppExceptionEnum implements AbstractExceptionEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询结果不存在
|
||||||
|
*/
|
||||||
|
PORTAL_USER_APP_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误编码
|
||||||
|
*/
|
||||||
|
private final String errorCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提示用户信息
|
||||||
|
*/
|
||||||
|
private final String userTip;
|
||||||
|
|
||||||
|
PortalUserAppExceptionEnum(String errorCode, String userTip) {
|
||||||
|
this.errorCode = errorCode;
|
||||||
|
this.userTip = userTip;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package cn.stylefeng.roses.kernel.sys.modular.userapp.mapper;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.entity.PortalUserApp;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户常用功能 Mapper 接口
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
public interface PortalUserAppMapper extends BaseMapper<PortalUserApp> {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?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="cn.stylefeng.roses.kernel.sys.modular.userapp.mapper.PortalUserAppMapper">
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -0,0 +1,45 @@
|
||||||
|
package cn.stylefeng.roses.kernel.sys.modular.userapp.pojo.request;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户常用功能封装类
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
public class PortalUserAppRequest extends BaseRequest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键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;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,74 @@
|
||||||
|
package cn.stylefeng.roses.kernel.sys.modular.userapp.service;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.entity.PortalUserApp;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.pojo.request.PortalUserAppRequest;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户常用功能 服务类
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
public interface PortalUserAppService extends IService<PortalUserApp> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*
|
||||||
|
* @param portalUserAppRequest 请求参数
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
void add(PortalUserAppRequest portalUserAppRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*
|
||||||
|
* @param portalUserAppRequest 请求参数
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
void del(PortalUserAppRequest portalUserAppRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*
|
||||||
|
* @param portalUserAppRequest 请求参数
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
void edit(PortalUserAppRequest portalUserAppRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询详情
|
||||||
|
*
|
||||||
|
* @param portalUserAppRequest 请求参数
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
PortalUserApp detail(PortalUserAppRequest portalUserAppRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取列表
|
||||||
|
*
|
||||||
|
* @param portalUserAppRequest 请求参数
|
||||||
|
* @return List<PortalUserApp> 返回结果
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
List<PortalUserApp> findList(PortalUserAppRequest portalUserAppRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取列表(带分页)
|
||||||
|
*
|
||||||
|
* @param portalUserAppRequest 请求参数
|
||||||
|
* @return PageResult<PortalUserApp> 返回结果
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
PageResult<PortalUserApp> findPage(PortalUserAppRequest portalUserAppRequest);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
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.db.api.factory.PageFactory;
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.entity.PortalUserApp;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.enums.PortalUserAppExceptionEnum;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.mapper.PortalUserAppMapper;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.pojo.request.PortalUserAppRequest;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.userapp.service.PortalUserAppService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户常用功能业务实现层
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class PortalUserAppServiceImpl extends ServiceImpl<PortalUserAppMapper, PortalUserApp> implements PortalUserAppService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
PortalUserApp portalUserApp = new PortalUserApp();
|
||||||
|
BeanUtil.copyProperties(portalUserAppRequest, portalUserApp);
|
||||||
|
this.save(portalUserApp);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void del(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
PortalUserApp portalUserApp = this.queryPortalUserApp(portalUserAppRequest);
|
||||||
|
this.removeById(portalUserApp.getAppLinkId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void edit(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
PortalUserApp portalUserApp = this.queryPortalUserApp(portalUserAppRequest);
|
||||||
|
BeanUtil.copyProperties(portalUserAppRequest, portalUserApp);
|
||||||
|
this.updateById(portalUserApp);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PortalUserApp detail(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
return this.queryPortalUserApp(portalUserAppRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<PortalUserApp> findPage(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
LambdaQueryWrapper<PortalUserApp> wrapper = createWrapper(portalUserAppRequest);
|
||||||
|
Page<PortalUserApp> sysRolePage = this.page(PageFactory.defaultPage(), wrapper);
|
||||||
|
return PageResultFactory.createPageResult(sysRolePage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PortalUserApp> findList(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
LambdaQueryWrapper<PortalUserApp> wrapper = this.createWrapper(portalUserAppRequest);
|
||||||
|
return this.list(wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取信息
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
private PortalUserApp queryPortalUserApp(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
PortalUserApp portalUserApp = this.getById(portalUserAppRequest.getAppLinkId());
|
||||||
|
if (ObjectUtil.isEmpty(portalUserApp)) {
|
||||||
|
throw new ServiceException(PortalUserAppExceptionEnum.PORTAL_USER_APP_NOT_EXISTED);
|
||||||
|
}
|
||||||
|
return portalUserApp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建查询wrapper
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/26 21:25
|
||||||
|
*/
|
||||||
|
private LambdaQueryWrapper<PortalUserApp> createWrapper(PortalUserAppRequest portalUserAppRequest) {
|
||||||
|
LambdaQueryWrapper<PortalUserApp> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
|
||||||
|
Long appLinkId = portalUserAppRequest.getAppLinkId();
|
||||||
|
Long appId = portalUserAppRequest.getAppId();
|
||||||
|
Long menuId = portalUserAppRequest.getMenuId();
|
||||||
|
Long tenantId = portalUserAppRequest.getTenantId();
|
||||||
|
|
||||||
|
queryWrapper.eq(ObjectUtil.isNotNull(appLinkId), PortalUserApp::getAppLinkId, appLinkId);
|
||||||
|
queryWrapper.eq(ObjectUtil.isNotNull(appId), PortalUserApp::getAppId, appId);
|
||||||
|
queryWrapper.eq(ObjectUtil.isNotNull(menuId), PortalUserApp::getMenuId, menuId);
|
||||||
|
queryWrapper.eq(ObjectUtil.isNotNull(tenantId), PortalUserApp::getTenantId, tenantId);
|
||||||
|
|
||||||
|
return queryWrapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue