背景说明

系统中的弹窗选人窗口,默认是获取的LuBase系统内部(sa_account)的用户信息。但是在私有化部署后,很多时候是需要对接公司内部的所有用户信息进行选择,这个时候可以通过扩展UserSelectForComponentDataService服务来实现此功能。

调整配置通过扩展服务来选择用户

实现扩展服务后,需要在客户的config.js 中可以调整下 配置项userSelect,使之生效。

userSelect: {
    outerTag: '0', //选人是否外部数据,0:否  1:是
    user2Local: '0' //是否把外部用户数据同步创建到到系统内 0:否 1:是
}
选人服务扩展说明

可以根据用户工号和姓名进行检索返回数据,返回的数据支持设置每页大小和第几页

public interface UserSelectForComponentDataService {

    /***
     * 用于弹窗选人等服务
     * @param userCode 用户登录账号,不为空则根据此属性检索
     * @param userName 用户姓名,不为空则根据此属性检索
     * @param pageIndex 分页,设置大小
     * @param pageSize 页面数量
     * @return
     */
    UserSelectCollection selectUserList(String userCode, String userName, Integer pageIndex, Integer pageSize);
}

@Data
public class UserSelectCollection {
    List<SelectUserModel> data;
    private int totalCount;
}
@Data
public class SelectUserModel {
    private String id;
    private String userCode;
    private String userName;
    private String deptId;
    private String deptName;
}
外部用户创建为系统内部用户

如果config.js 中 userSelect.user2Local 配置为1,则会自动调用接口创建内部用户。

创建逻辑:根据deptId判断是否存在部门,如果不存在则先创建部门;根据userCode判断是否存在用户,如果不存在则创建用户。具体实现在UserInfoService服务,方法createUser(List<SelectUserModel> list);

如果需要扩展创建用户的逻辑,可以实现服务UserCreateExtendService

public interface UserCreateExtendService {
    /**
     * 创建用户
     *
     * @param list
     * @return
     */
    Integer createUser(List<SelectUserModel> list);
}
Logo

低代码爱好者的网上家园

更多推荐