feat: (feature/REQ-3010) 迁移pudge saasfeature

相关接口
This commit is contained in:
lilong 2024-10-15 17:15:03 +08:00
parent 60859f99c5
commit c666edfaa6
4 changed files with 189 additions and 0 deletions

View File

@ -1,6 +1,9 @@
package cn.axzo.tyr.client.feign; package cn.axzo.tyr.client.feign;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.permission.ApplicationFeatureRes; import cn.axzo.tyr.client.model.permission.ApplicationFeatureRes;
import cn.axzo.tyr.client.model.permission.GetInfoByMicroAppItemIdReq;
import cn.axzo.tyr.client.model.permission.SaasFeatureRes;
import cn.azxo.framework.common.model.CommonResponse; import cn.azxo.framework.common.model.CommonResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -22,4 +25,7 @@ public interface SaasFeatureApi {
*/ */
@PostMapping("/api/app/application/feature") @PostMapping("/api/app/application/feature")
CommonResponse<List<ApplicationFeatureRes>> getAppApplicationFeature(@RequestBody List<String> terminals); CommonResponse<List<ApplicationFeatureRes>> getAppApplicationFeature(@RequestBody List<String> terminals);
@PostMapping("/api/saasFeature/getInfoByMicroAppItemId")
ApiResult<List<SaasFeatureRes>> getInfoByMicroAppItemId(@RequestBody GetInfoByMicroAppItemIdReq req);
} }

View File

@ -0,0 +1,17 @@
package cn.axzo.tyr.client.model.permission;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GetInfoByMicroAppItemIdReq {
private List<Long> appItemId;
}

View File

@ -0,0 +1,140 @@
package cn.axzo.tyr.client.model.permission;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SaasFeatureRes {
private Long id;
/**
* 创建时间
*/
private Date createAt;
/**
* 修改时间
*/
private Date updateAt;
/**
* 是否删除 0正常1删除
*/
private Long isDelete;
/**
* 名称
*/
private String featureName;
/**
* code
*/
private String featureCode;
/**
* 描述
*/
private String description;
/**
* 图标地址
*/
private String icon;
/**
* 菜单上级id
*/
private Long parentId;
/**
* 链接地址
*/
private String linkUrl;
/**
* 1:CMS 2:小程序 4:原生
*/
private Integer linkType;
/**
* 扩展字段
*/
private String linkExt;
/**
* 小程序id 关联micro_app_item id
*/
private String microAppItemId;
/**
* 路径
*/
private String path;
/**
* 排序
*/
private Integer sort;
/**
* {@link cn.axzo.framework.auth.domain.TerminalInfo }查看NT开头 downloadResource
* 菜单适用于平台 NT_CMS_WEB_ENT_ZB:企业工作台 NT_CMS_WEB_PROJ:项目工作台
* NT_CMP_APP_ENT_ZB:从业人员企业端 NT_CMP_APP_PROJ:从业人员项目端
* NT_CM_APP_CM_LEADER:班组长侧 NT_CM_APP_WORKER:工人侧
* NT_OMS_WEB OMS运营管理后台 NT_SM:数据大屏
* NT_SCREEN 数据大屏
*/
private String terminal;
/**
* 类型 0.模块 1.菜单 2页面 3功能
*/
private Integer featureType;
/**
* 创建人id
*/
private Long createBy;
/**
* 修改人id
*/
private Long updateBy;
/**
* 适用单位类型 1:总包 2:建设单位 4:监理单位 8:劳务分包 16:专业分包 0都可以用 只会挂在最末级
*/
private Long fitOuTypeBit;
/**
* 适用节点类型 1:部门 2:班组 4:小组 只会挂在最末级
*/
private Long fitOuNodeTypeBit;
/**
* 适配老接口 应用所属 system:系统应用 personal:个人应用 business:业务应用 只会挂在第一级别
*/
private String legacyLayout;
/**
* 网关专属字段所属应用
* 后续会换成枚举暂时枚举未定义完全
*/
private String appName;
/**
* 网关专属字段是否授权 0:无需要授权 1:需要授权
*/
private Integer needAuth;
/**
* 网关专属字段是否认证 0:无需要认证 1:需要认证
*/
private Integer needCert;
/**
* 网关专属字段 功能URL对应后端接口url
*/
private String featureUrl;
private String businessNo;
private String parentBusinessNo;
}

View File

@ -1,17 +1,23 @@
package cn.axzo.tyr.server.controller.permission; package cn.axzo.tyr.server.controller.permission;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.pudge.core.persistence.BaseEntity;
import cn.axzo.tyr.client.feign.SaasFeatureApi; import cn.axzo.tyr.client.feign.SaasFeatureApi;
import cn.axzo.tyr.client.model.permission.ApplicationFeatureRes; import cn.axzo.tyr.client.model.permission.ApplicationFeatureRes;
import cn.axzo.tyr.client.model.permission.GetInfoByMicroAppItemIdReq;
import cn.axzo.tyr.client.model.permission.SaasFeatureRes;
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao; import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
import cn.axzo.tyr.server.repository.entity.SaasFeature; import cn.axzo.tyr.server.repository.entity.SaasFeature;
import cn.azxo.framework.common.model.CommonResponse; import cn.azxo.framework.common.model.CommonResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -80,4 +86,24 @@ public class SaasFeatureApiImpl implements SaasFeatureApi {
}) })
.collect(Collectors.toList())); .collect(Collectors.toList()));
} }
@Override
public ApiResult<List<SaasFeatureRes>> getInfoByMicroAppItemId(GetInfoByMicroAppItemIdReq req) {
if(CollectionUtils.isEmpty(req.getAppItemId())){
return ApiResult.ok(Collections.emptyList());
}
List<SaasFeatureRes> result = saasFeatureDao.lambdaQuery()
.eq(SaasFeature::getIsDelete, 0)
.in(SaasFeature::getMicroAppItemId, req.getAppItemId())
.list()
.stream()
.map(e -> {
SaasFeatureRes saasFeatureRes = SaasFeatureRes.builder().build();
BeanUtils.copyProperties(e, saasFeatureRes);
return saasFeatureRes;
})
.collect(Collectors.toList());
return ApiResult.ok(result);
}
} }