@@ -10,10 +10,13 @@ import cc.smtweb.framework.core.db.DbEngine; | |||||
import cc.smtweb.framework.core.exception.BizException; | import cc.smtweb.framework.core.exception.BizException; | ||||
import cc.smtweb.framework.core.session.SessionManager; | import cc.smtweb.framework.core.session.SessionManager; | ||||
import cc.smtweb.framework.core.session.UserSession; | import cc.smtweb.framework.core.session.UserSession; | ||||
import cc.smtweb.framework.core.util.PubUtil; | |||||
import cc.smtweb.system.bpm.web.sys.user.party.Party; | import cc.smtweb.system.bpm.web.sys.user.party.Party; | ||||
import cc.smtweb.system.bpm.web.sys.user.party.PartyCache; | import cc.smtweb.system.bpm.web.sys.user.party.PartyCache; | ||||
import cc.smtweb.system.bpm.web.sys.user.role.RoleCache; | |||||
import cc.smtweb.system.bpm.web.sys.user.user.User; | import cc.smtweb.system.bpm.web.sys.user.user.User; | ||||
import cc.smtweb.system.bpm.web.sys.user.user.UserCache; | import cc.smtweb.system.bpm.web.sys.user.user.UserCache; | ||||
import cc.smtweb.system.bpm.web.sys.user.user.UserRoleCache; | |||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
@@ -44,6 +47,30 @@ public class AuthService { | |||||
return R.success(list); | return R.success(list); | ||||
} | } | ||||
@SwPerm() | |||||
public R userInfo(@SwBody SwMap params, UserSession us) { | |||||
SwMap data = new SwMap(); | |||||
try { | |||||
User user = (User) UserCache.getInstance().get(us.getUserId()).clone(); | |||||
user.setId(us.getUserId()); | |||||
user.put("create_time", PubUtil.checkLastTime(user.getCreate())); | |||||
user.put("sur_party", PartyCache.getInstance().get(us.getPartyId())); | |||||
user.put("sur_roles", RoleCache.getInstance().getNamesByIds(UserRoleCache.getInstance().getRoleIdByUP(us.getUserId(), us.getPartyId()))); | |||||
data.put("user", user); | |||||
} catch (CloneNotSupportedException e) { | |||||
} | |||||
return R.success(data); | |||||
} | |||||
@SwPerm() | |||||
public R saveUser(@SwBody SwMap params, UserSession us) { | |||||
SwMap userInfo = params.readMap("userInfo"); | |||||
User user = UserCache.getInstance().get(us.getUserId()); | |||||
user.getData().putAll(userInfo); | |||||
return R.success(); | |||||
} | |||||
@SwPerm(SwPerm.NONE) | @SwPerm(SwPerm.NONE) | ||||
public R login(@SwBody LoginVO loginPO) { | public R login(@SwBody LoginVO loginPO) { | ||||
SwMap data = new SwMap(); | SwMap data = new SwMap(); | ||||
@@ -1,8 +1,19 @@ | |||||
package cc.smtweb.system.bpm.web.sys.dev; | package cc.smtweb.system.bpm.web.sys.dev; | ||||
import cc.smtweb.framework.core.annotation.SwBody; | |||||
import cc.smtweb.framework.core.annotation.SwService; | import cc.smtweb.framework.core.annotation.SwService; | ||||
import cc.smtweb.framework.core.common.AbstractEnum; | |||||
import cc.smtweb.framework.core.common.R; | |||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.mvc.service.AbstractHandler; | import cc.smtweb.framework.core.mvc.service.AbstractHandler; | ||||
import cc.smtweb.framework.core.mvc.service.SwListData; | |||||
import cc.smtweb.framework.core.session.UserSession; | |||||
import cc.smtweb.framework.core.util.PubUtil; | |||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageService; | import cc.smtweb.system.bpm.web.engine.dynPage.DynPageService; | ||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynRetBean; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
/** | /** | ||||
* Created by 1 at 2022-08-03 16:09:30 | * Created by 1 at 2022-08-03 16:09:30 | ||||
@@ -13,15 +24,39 @@ public class EnumComboService extends DynPageService { | |||||
//public final static String TYPE_DEMO = "demo"; | //public final static String TYPE_DEMO = "demo"; | ||||
@Override | @Override | ||||
protected AbstractHandler createHandler(String type) { | protected AbstractHandler createHandler(String type) { | ||||
if (TYPE_LOAD.equals(type)) return new ComboHandler.EnumLoadHandler(); | |||||
return super.createHandler(type); | return super.createHandler(type); | ||||
} | } | ||||
/* demo | |||||
//自定义 | //自定义 | ||||
public R demo(@SwBody SwMap params, UserSession us) { | |||||
return pageHandler(params, us, TYPE_DEMO, handler -> ((DemoHandler)handler).demo()); | |||||
public R loadOne(@SwBody SwMap params, UserSession us) { | |||||
SwListData swListData = buildListData(params.readString("cls")); | |||||
DynRetBean bean = DynRetBean.createList(swListData); | |||||
return R.success(bean); | |||||
} | } | ||||
*/ | |||||
private SwListData buildListData(String cls) { | |||||
if (PubUtil.isEmpty(cls)) return SwListData.create(new ArrayList(), 0); | |||||
List<SwMap> list = new ArrayList<>(); | |||||
try { | |||||
AbstractEnum e; | |||||
try { | |||||
e = (AbstractEnum) Class.forName(cls).getDeclaredField("inst").get(null); | |||||
} catch (Exception e1) { | |||||
e = (AbstractEnum) Class.forName(cls).getDeclaredField("instance").get(null); | |||||
} | |||||
for (Object v : e.mapAll.values()) { | |||||
AbstractEnum.EnumBean bean = (AbstractEnum.EnumBean) v; | |||||
SwMap row = new SwMap(); | |||||
row.put("value", bean.value.toString()); | |||||
row.put("name", bean.name); | |||||
list.add(row); | |||||
} | |||||
} catch (Exception ue) { | |||||
return SwListData.create(new ArrayList(), 0); | |||||
} | |||||
return SwListData.create(list, 0); | |||||
} | |||||
} | } |
@@ -5,7 +5,7 @@ import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.db.impl.DefaultEntity; | import cc.smtweb.framework.core.db.impl.DefaultEntity; | ||||
/** | /** | ||||
* Created by 1 at 2022-07-28 15:24:49 | |||||
* Created by 1 at 2022-08-15 09:40:57 | |||||
* 实体【[用户账号](SYS_USER)】的Entity类 | * 实体【[用户账号](SYS_USER)】的Entity类 | ||||
*/ | */ | ||||
@SwTable("SYS_USER") | @SwTable("SYS_USER") | ||||
@@ -142,4 +142,14 @@ public class User extends DefaultEntity { | |||||
public void setRemark(String sur_remark) { | public void setRemark(String sur_remark) { | ||||
put("sur_remark", sur_remark); | put("sur_remark", sur_remark); | ||||
} | } | ||||
/** 创建时间 */ | |||||
public long getCreate() { | |||||
return getLong("sur_create"); | |||||
} | |||||
/** 创建时间 */ | |||||
public void setCreate(long sur_create) { | |||||
put("sur_create", sur_create); | |||||
} | |||||
} | } |
@@ -97,6 +97,7 @@ public class UserHandler { | |||||
UserStatuCache.getInstance().put(userStatu); | UserStatuCache.getInstance().put(userStatu); | ||||
} | } | ||||
if (bean.isNew()) { | if (bean.isNew()) { | ||||
((User) bean).setCreate(PubUtil.getLastTime()); | |||||
((User) bean).setPwd(LoginHelper.encodePwd(bean.getEntityId(), SwConsts.DEF_PWD)); | ((User) bean).setPwd(LoginHelper.encodePwd(bean.getEntityId(), SwConsts.DEF_PWD)); | ||||
} | } | ||||
@@ -72,6 +72,21 @@ public class UserRoleCache extends AbstractEntityCache<UserRole> { | |||||
return roleSet; | return roleSet; | ||||
} | } | ||||
public final Set<Long> getRoleIdByUP(Long user_id, Long party_id) { | |||||
Set<Long> ids = new HashSet<>(); | |||||
Set<UserParty> upSet = UserPartyCache.getInstance().getListByKey(UserPartyCache.mk_u, String.valueOf(user_id)); | |||||
if (PubUtil.isEmpty(upSet)) return ids; | |||||
upSet.forEach(up -> { | |||||
if (up.getPartyId() != party_id) return; | |||||
Set<UserRole> urSet = getListByKey(mk_s, String.valueOf(up.getId())); | |||||
if (PubUtil.isEmpty(urSet)) return; | |||||
for (UserRole userRole : urSet) { | |||||
ids.add(userRole.getRoleId()); | |||||
} | |||||
}); | |||||
return ids; | |||||
} | |||||
public final Set<Long> getIdByUser(Long key) { | public final Set<Long> getIdByUser(Long key) { | ||||
return getIdByUser(String.valueOf(key)); | return getIdByUser(String.valueOf(key)); | ||||
} | } | ||||