企信通项目总述
项目大致分为,企业微信用户登录流程、CRUD、拦截器和过滤器、企业微信发送消息和用户通讯录标签以及用户信息同步、异常处理、定时任务
拦截器用来拦截FeignClient远程调用拼接请求路径,过滤器用于做权限控制和token验证,定时任务做一些比如周计划填写提醒消息、待办待跟进的任务、收集已读未读信息等
企信通登录功能的实现:
前端携带着用户信息(如:appid,userid,username,corpid等信息)发起登录验证请求,后端接收到请求后先携带着appid发起远程调用转至企业微信登录获取code,如果返回的值不通过那么抛出异常跳转,如果通过则携带用户信息构建url重定向调用向企业微信登录凭证校验,获得凭证以及用户数据。然后向数据库更新或者插入用户信息,然后创建线程同步微信用户标签,最后将用户信息(如:凭证code,appid,用户状态,过期时间等信息)封装再token中再将token存入cookie中响应回前端。登录的用户之后每次发起请求中都携带token,定义过滤器统一处理验证功能。这个token过滤器中会拦截到请求,会读取配置文件中的值判断是否开启token验证,如果不开启那么直接通过封装的RequestParameterWrapper类从配置文件中获取appid和corpid拼接请求参数放行,如果开启token验证则通过传入配置文件中的tokenKey到Jwts类核验方法中比对成功后取出token中包含的信息然后拼接参数放行,比对不成功则直接返回
接口实现:
/**
* 参与项目人员分页列表
*/
@PostMapping("/p_projectuser/list")
ResponseDTO list(@RequestBody P_projectuserPageInfo p_projectuserPageInfo);
接口描述 @ApiOperation("查询我的项目分页列表")
设置分页信息中的排序方式,然后查询数据库信息获取分页列表,通过Calendar日历类获取本月第一天和本月最后一天