提交 f57116fc 编写于 作者: sq3536's avatar sq3536

sysapp

上级 699461e8
...@@ -73,10 +73,10 @@ ...@@ -73,10 +73,10 @@
<script lang="ts"> <script lang="ts">
import {Vue, Component, Watch} from 'vue-property-decorator'; import {Vue, Component, Watch} from 'vue-property-decorator';
import {Environment} from '@/environments/environment'; import {Environment} from '@/environments/environment';
import Divider from "ibiz-vue-lib/lib/ibiz-vue-lib.common"; //import Divider from "ibiz-vue-lib/lib/ibiz-vue-lib.common";
@Component({ @Component({
components: {Divider} components: {}
}) })
export default class Login extends Vue { export default class Login extends Vue {
......
...@@ -8,9 +8,9 @@ import java.math.BigInteger; ...@@ -8,9 +8,9 @@ import java.math.BigInteger;
import java.util.HashMap; import java.util.HashMap;
import java.math.BigDecimal; import java.math.BigDecimal;
import cn.ibizlab.core.uaa.extensions.domain.SysApp; import cn.ibizlab.core.uaa.domain.SysApp;
import cn.ibizlab.core.uaa.extensions.domain.SysStructure; import cn.ibizlab.core.uaa.extensions.domain.SysStructure;
import cn.ibizlab.core.uaa.extensions.domain.handlers.SysAppsTypeHandler; import cn.ibizlab.core.uaa.domain.handlers.SysAppTypeHandler;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
...@@ -67,7 +67,7 @@ public class SysPSSystem extends EntityMP implements Serializable { ...@@ -67,7 +67,7 @@ public class SysPSSystem extends EntityMP implements Serializable {
/** /**
* 结构 * 结构
*/ */
@TableField(value = "apps",typeHandler = SysAppsTypeHandler.class) @TableField(value = "apps",typeHandler = SysAppTypeHandler.class)
@JSONField(name = "apps") @JSONField(name = "apps")
@JsonProperty("apps") @JsonProperty("apps")
private List<SysApp> apps; private List<SysApp> apps;
......
...@@ -3,7 +3,7 @@ package cn.ibizlab.core.uaa.extensions.aspect; ...@@ -3,7 +3,7 @@ package cn.ibizlab.core.uaa.extensions.aspect;
import cn.ibizlab.core.uaa.domain.SysPSSystem; import cn.ibizlab.core.uaa.domain.SysPSSystem;
import cn.ibizlab.core.uaa.domain.SysPermission; import cn.ibizlab.core.uaa.domain.SysPermission;
import cn.ibizlab.core.uaa.extensions.domain.PermissionType; import cn.ibizlab.core.uaa.extensions.domain.PermissionType;
import cn.ibizlab.core.uaa.extensions.domain.SysApp; import cn.ibizlab.core.uaa.domain.SysApp;
import cn.ibizlab.core.uaa.extensions.service.SysAppService; import cn.ibizlab.core.uaa.extensions.service.SysAppService;
import cn.ibizlab.core.uaa.extensions.service.UAACoreService; import cn.ibizlab.core.uaa.extensions.service.UAACoreService;
import cn.ibizlab.core.uaa.service.ISysPSSystemService; import cn.ibizlab.core.uaa.service.ISysPSSystemService;
......
package cn.ibizlab.core.uaa.extensions.domain;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysApp {
private String id;
private String label;
private String systemid;
private String fullName;
private String type;
private String addr;
}
package cn.ibizlab.core.uaa.extensions.domain; package cn.ibizlab.core.uaa.extensions.domain;
import cn.ibizlab.core.uaa.domain.SysPSSystem; import cn.ibizlab.core.uaa.domain.SysApp;
import cn.ibizlab.core.uaa.domain.SysPermission; import cn.ibizlab.core.uaa.domain.SysPermission;
import cn.ibizlab.core.uaa.extensions.domain.Structure.AppNode; import cn.ibizlab.core.uaa.extensions.domain.Structure.AppNode;
import cn.ibizlab.core.uaa.extensions.domain.Structure.EntityNode; import cn.ibizlab.core.uaa.extensions.domain.Structure.EntityNode;
import cn.ibizlab.core.uaa.extensions.domain.Structure.FuncItem; import cn.ibizlab.core.uaa.extensions.domain.Structure.FuncItem;
import cn.ibizlab.core.uaa.extensions.domain.Structure.UniResNode; import cn.ibizlab.core.uaa.extensions.domain.Structure.UniResNode;
import cn.ibizlab.core.uaa.filter.SysPSSystemSearchContext;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import org.springframework.data.domain.Page;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.*; import java.util.*;
......
package cn.ibizlab.core.uaa.extensions.domain.handlers;
import cn.ibizlab.core.uaa.extensions.domain.SysApp;
import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@MappedTypes({List.class})
@MappedJdbcTypes(JdbcType.VARCHAR)
public class SysAppsTypeHandler extends AbstractJsonTypeHandler<List>
{
private static ObjectMapper objectMapper = new ObjectMapper();
private JavaType type;
public SysAppsTypeHandler(Class<List> type) {
this.type = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, SysApp.class);
}
@Override
protected List parse(String json) {
try {
return objectMapper.readValue(json, type);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
protected String toJson(List obj) {
try {
return objectMapper.writeValueAsString(obj);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
public static void setObjectMapper(ObjectMapper objectMapper) {
SysAppsTypeHandler.objectMapper = objectMapper;
}
}
\ No newline at end of file
package cn.ibizlab.core.uaa.extensions.service; package cn.ibizlab.core.uaa.extensions.service;
import cn.ibizlab.core.uaa.domain.SysPSSystem; import cn.ibizlab.core.uaa.domain.SysPSSystem;
import cn.ibizlab.core.uaa.extensions.domain.SysApp; import cn.ibizlab.core.uaa.domain.SysApp;
import cn.ibizlab.core.uaa.filter.SysAppSearchContext;
import cn.ibizlab.core.uaa.filter.SysPSSystemSearchContext; import cn.ibizlab.core.uaa.filter.SysPSSystemSearchContext;
import cn.ibizlab.core.uaa.service.ISysAppService;
import cn.ibizlab.core.uaa.service.ISysPSSystemService; import cn.ibizlab.core.uaa.service.ISysPSSystemService;
import cn.ibizlab.core.uaa.service.impl.SysAppServiceImpl;
import cn.ibizlab.util.errors.BadRequestAlertException;
import cn.ibizlab.util.helper.CachedBeanCopier;
import cn.ibizlab.util.security.AuthenticationUser; import cn.ibizlab.util.security.AuthenticationUser;
import cn.ibizlab.util.service.IBZConfigService; import cn.ibizlab.util.service.IBZConfigService;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
...@@ -11,16 +16,21 @@ import com.alibaba.fastjson.JSONObject; ...@@ -11,16 +16,21 @@ import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Primary;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@Primary
@Service @Service
public class SysAppService { public class SysAppService extends SysAppServiceImpl
{
@Autowired @Autowired
private ISysPSSystemService sysPSSystemService; private ISysPSSystemService sysPSSystemService;
...@@ -44,6 +54,15 @@ public class SysAppService { ...@@ -44,6 +54,15 @@ public class SysAppService {
SysApp def=defApps.get(sysApp.getId()); SysApp def=defApps.get(sysApp.getId());
if(def==null)return; if(def==null)return;
sysApp.setAddr(def.getAddr()); sysApp.setAddr(def.getAddr());
sysApp.setIcon(def.getIcon());
sysApp.setFullname(def.getFullname());
sysApp.setType(def.getType());
sysApp.setVisabled(1);
list.add(sysApp);
defApps.remove(def.getId());
});
defApps.values().forEach(sysApp -> {
sysApp.setVisabled(0);
list.add(sysApp); list.add(sysApp);
}); });
jo.remove("model"); jo.remove("model");
...@@ -57,4 +76,76 @@ public class SysAppService { ...@@ -57,4 +76,76 @@ public class SysAppService {
} }
@Override
public SysApp get(String key)
{
String systemId=key.split("-")[0];
SysPSSystem sysPSSystem=sysPSSystemService.getById(systemId);
if(sysPSSystem!=null&&sysPSSystem.getApps()!=null)
{
for(SysApp app:sysPSSystem.getApps())
{
if(app.getId().equals(key))
return app;
}
}
return null;
}
@Override
public boolean save(SysApp et)
{
if(StringUtils.isEmpty(et.getSystemid())||StringUtils.isEmpty(et.getId()))
throw new BadRequestAlertException("应用参数缺失","SysApp",et.getId());
SysPSSystem sysPSSystem=sysPSSystemService.getById(et.getSystemid());
if(sysPSSystem!=null&&sysPSSystem.getApps()!=null)
{
boolean bchange=false;
for(SysApp app:sysPSSystem.getApps())
{
if(app.getId().equals(et.getId()))
{
CachedBeanCopier.copy(et,app);
bchange=true;
break;
}
}
if(bchange)
sysPSSystemService.update(sysPSSystem);
}
return true;
}
@Override
public boolean update(SysApp et)
{
return this.save(et);
}
@Override
public boolean create(SysApp et)
{
return this.save(et);
}
@Override
public Page<SysApp> searchDefault(SysAppSearchContext context)
{
context.setSize(Integer.MAX_VALUE);
List<SysApp> content = new ArrayList<>();
LinkedHashMap<String,SysApp> map = uaaCoreService.getApps();
map.values().forEach(sysApp -> {
if(!StringUtils.isEmpty(context.getN_pssystemid_eq())) {
if(!sysApp.getSystemid().equals(context.getN_pssystemid_eq()))
return;
}
if(!StringUtils.isEmpty(context.getN_appname_like())) {
if(sysApp.getLabel().indexOf(context.getN_appname_like())<0 &&
sysApp.getFullname().indexOf(context.getN_appname_like())<0)
return;
}
content.add(sysApp);
});
return new PageImpl<SysApp>(content,context.getPageable(),content.size());
}
} }
...@@ -7,7 +7,7 @@ import cn.ibizlab.core.uaa.domain.SysRole; ...@@ -7,7 +7,7 @@ import cn.ibizlab.core.uaa.domain.SysRole;
import cn.ibizlab.core.uaa.domain.SysRolePermission; import cn.ibizlab.core.uaa.domain.SysRolePermission;
import cn.ibizlab.core.uaa.extensions.domain.PermissionNode; import cn.ibizlab.core.uaa.extensions.domain.PermissionNode;
import cn.ibizlab.core.uaa.extensions.domain.PermissionType; import cn.ibizlab.core.uaa.extensions.domain.PermissionType;
import cn.ibizlab.core.uaa.extensions.domain.SysApp; import cn.ibizlab.core.uaa.domain.SysApp;
import cn.ibizlab.core.uaa.filter.SysPSSystemSearchContext; import cn.ibizlab.core.uaa.filter.SysPSSystemSearchContext;
import cn.ibizlab.core.uaa.filter.SysRolePermissionSearchContext; import cn.ibizlab.core.uaa.filter.SysRolePermissionSearchContext;
import cn.ibizlab.core.uaa.service.ISysPSSystemService; import cn.ibizlab.core.uaa.service.ISysPSSystemService;
...@@ -62,8 +62,7 @@ public class UAACoreService { ...@@ -62,8 +62,7 @@ public class UAACoreService {
List<PermissionNode> apps = new ArrayList<>(); List<PermissionNode> apps = new ArrayList<>();
List<PermissionNode> uniResIds = new ArrayList<>(); List<PermissionNode> uniResIds = new ArrayList<>();
List<PermissionNode> oppirvs = new ArrayList<>(); List<PermissionNode> oppirvs = new ArrayList<>();
Page<SysPSSystem> page = sysPSSystemService.searchDefault(new SysPSSystemSearchContext()); sysPSSystemService.list().forEach(system->{
page.getContent().forEach(system->{
if(system.getSysstructure()==null) if(system.getSysstructure()==null)
return; return;
PermissionNode appnode=system.getSysstructure().getPermissionTree(PermissionType.APPMENU); PermissionNode appnode=system.getSysstructure().getPermissionTree(PermissionType.APPMENU);
...@@ -168,8 +167,7 @@ public class UAACoreService { ...@@ -168,8 +167,7 @@ public class UAACoreService {
@Cacheable( value="syspssystem",key = "'row:all-apps'") @Cacheable( value="syspssystem",key = "'row:all-apps'")
public LinkedHashMap<String,SysApp> getApps() { public LinkedHashMap<String,SysApp> getApps() {
LinkedHashMap<String,SysApp> appNode=new LinkedHashMap<>(); LinkedHashMap<String,SysApp> appNode=new LinkedHashMap<>();
Page<SysPSSystem> page = sysPSSystemService.searchDefault(new SysPSSystemSearchContext()); sysPSSystemService.list().forEach(system -> {
page.getContent().forEach(system -> {
if (system.getSysstructure() == null) if (system.getSysstructure() == null)
{ {
return; return;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<resultMap id="SysPSSystemResultMap" type="cn.ibizlab.core.uaa.domain.SysPSSystem" autoMapping="true"> <resultMap id="SysPSSystemResultMap" type="cn.ibizlab.core.uaa.domain.SysPSSystem" autoMapping="true">
<id property="pssystemid" column="pssystemid" /><!--主键字段映射--> <id property="pssystemid" column="pssystemid" /><!--主键字段映射-->
<result column="sysstructure" jdbcType="VARCHAR" property="sysstructure" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" /> <result column="sysstructure" jdbcType="VARCHAR" property="sysstructure" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
<result property="apps" column="apps" typeHandler="cn.ibizlab.core.uaa.extensions.domain.handlers.SysAppsTypeHandler" /> <result property="apps" column="apps" typeHandler="cn.ibizlab.core.uaa.domain.handlers.SysAppTypeHandler" />
</resultMap> </resultMap>
......
...@@ -9,7 +9,7 @@ import java.util.HashMap; ...@@ -9,7 +9,7 @@ import java.util.HashMap;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import cn.ibizlab.core.uaa.extensions.domain.SysApp; import cn.ibizlab.core.uaa.domain.SysApp;
import cn.ibizlab.core.uaa.extensions.domain.SysStructure; import cn.ibizlab.core.uaa.extensions.domain.SysStructure;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
......
package cn.ibizlab.api.rest.extensions; package cn.ibizlab.api.rest.extensions;
import cn.ibizlab.core.uaa.extensions.service.SysAppService;
import cn.ibizlab.core.uaa.extensions.service.UAACoreService; import cn.ibizlab.core.uaa.extensions.service.UAACoreService;
import cn.ibizlab.util.client.IBZOUFeignClient; import cn.ibizlab.util.client.IBZOUFeignClient;
import cn.ibizlab.util.security.AuthTokenUtil; import cn.ibizlab.util.security.AuthTokenUtil;
...@@ -47,6 +48,8 @@ public class ClientAuthenticationResource ...@@ -47,6 +48,8 @@ public class ClientAuthenticationResource
AuthenticationUser user = userDetailsService.loadUserByLogin(authorizationLogin.getUsername(),authorizationLogin.getPassword()); AuthenticationUser user = userDetailsService.loadUserByLogin(authorizationLogin.getUsername(),authorizationLogin.getPassword());
final String token = jwtTokenUtil.generateToken(user); final String token = jwtTokenUtil.generateToken(user);
user.setPermissionList(null);
// 返回 token // 返回 token
return ResponseEntity.ok().body(new AuthenticationInfo(token,user)); return ResponseEntity.ok().body(new AuthenticationInfo(token,user));
} }
...@@ -65,4 +68,13 @@ public class ClientAuthenticationResource ...@@ -65,4 +68,13 @@ public class ClientAuthenticationResource
return ResponseEntity.ok().body(user); return ResponseEntity.ok().body(user);
} }
@Autowired
private SysAppService sysAppService;
@GetMapping(value = "uaa/access-center/nav/{id}")
public ResponseEntity<JSONObject> appnavbar(@PathVariable("id") String id)
{
return ResponseEntity.ok(sysAppService.getAppNavigationBar(id,AuthenticationUser.getAuthenticationUser().getUserid()));
}
} }
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册