用户二开删除长时间不使用的用户的许可分组信息

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

用户二开删除长时间不使用的用户的许可分组信息

【业务场景】

用户购买的许可数不够,所以需要动态删除长时间未使用的用户许可分组信息,需要自行二开进行支持。


【插件开发教程及示例】

一、操作步骤

  1. 查询用户登录历史表,查找出一个月没有登录的用户信息

--sql:

SELECT FUSERID FROM (

    SELECT *, ROW_NUMBER() OVER(PARTITION BY fuserid ORDER BY fdatetime DESC) AS rn

    FROM T_BAS_USERLOGINRECORD

) subquery

WHERE rn = 1  and DATEDIFF(MONTH,GETDATE(),FDATETIME)>1;

--oralce:

SELECT FUSERID FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY fuserid ORDER BY fdatetime DESC) RN FROM T_BAS_USERLOGINRECORD) SUBQUERY

 WHERE (rn = 1 AND (ROUND(MONTHS_BETWEEN(TRUNC( CAST(FDATETIME AS DATE), 'MM'), TRUNC( CAST(SYSDATE AS DATE), 'MM'))) > 1))


2.通过第一步查询的用户userid 在用户表中修改用户许可分组为空

sql:

update t_sec_user set FAPPGROUP='' where FUSERID in (

SELECT FUSERID FROM (

    SELECT *, ROW_NUMBER() OVER(PARTITION BY fuserid ORDER BY fdatetime DESC) AS rn

    FROM T_BAS_USERLOGINRECORD

) subquery

WHERE rn = 1  and DATEDIFF(MONTH,GETDATE(),FDATETIME)>1

)

-- oralce:

update t_sec_user set FAPPGROUP=' ' where FUSERID in (SELECT FUSERID FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY fuserid ORDER BY fdatetime DESC) RN FROM T_BAS_USERLOGINRECORD) SUBQUERY

 WHERE (rn = 1 AND (ROUND(MONTHS_BETWEEN(TRUNC( CAST(FDATETIME AS DATE), 'MM'), TRUNC( CAST(SYSDATE AS DATE), 'MM'))) > 1))

)

3.调用用户同步接口,进行用户许可的同步 

外部调用接口:

Kingdee.BOS.WebApi.ServicesStub.UserService.RegUserSyncByUserIds(List<string> userNames)  

  userNames 为 用户名称

--内部调用接口:

Kingdee.BOS.ServiceHelper.UserServiceHelper.RegUserSyncByUserIds(this.Context, userIds); 

Context 登录上下文 

 userIds 用户id

二、插件开发示例


【延伸阅读】

调用webapi接口同步用户到云平台方法 

https://vip.kingdee.com/article/133953652758123008?productLineId=1&isKnowledge=2

金蝶云星空调用接口同步用户许可信息

https://vip.kingdee.com/article/88295269921409536?productLineId=1&isKnowledge=2 



用户二开删除长时间不使用的用户的许可分组信息

【业务场景】用户购买的许可数不够,所以需要动态删除长时间未使用的用户许可分组信息,需要自行二开进行支持。【插件开发教程及示例】一、...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息