Browse Source

工作端获取token和登录接口 init

dev
liuchuang 6 years ago
parent
commit
7a0cbfec33
  1. 5
      esua-epdc/doc/branch/dev_1118/db/esua_epdc_admin.sql
  2. 27
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DataScopeDeptList.java
  3. 5
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserDTO.java
  4. 30
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserOpenIdFormDTO.java
  5. 48
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
  6. 7
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysRoleDataScopeDao.java
  7. 25
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java
  8. 5
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysUserEntity.java
  9. 8
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleDataScopeService.java
  10. 23
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java
  11. 6
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleDataScopeServiceImpl.java
  12. 13
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java
  13. 14
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysRoleDataScopeDao.xml
  14. 15
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml
  15. 45
      esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/controller/AuthController.java
  16. 29
      esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  17. 14
      esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  18. 39
      esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/AuthService.java
  19. 95
      esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java
  20. 27
      esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/DeptDataScopeDTO.java
  21. 43
      esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserAuthorizationDTO.java
  22. 29
      esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserLoginDTO.java
  23. 25
      esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserTokenFormDTO.java
  24. 41
      esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/filter/AuthFilter.java
  25. 6
      esua-epdc/epdc-gateway/src/main/resources/application.yml
  26. 24
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcWorkAppUserMaTokenFormDTO.java
  27. 2
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiGroupController.java
  28. 34
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkUserController.java
  29. 13
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
  30. 46
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ResourceFeignClient.java
  31. 6
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
  32. 31
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ResourceFeignClientFallback.java
  33. 26
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/WorkUserService.java
  34. 71
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/WorkUserServiceImpl.java
  35. 2
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupUserReviewFormDTO.java
  36. 4
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/UserGroupServiceImpl.java

5
esua-epdc/doc/branch/dev_1118/db/esua_epdc_admin.sql

@ -0,0 +1,5 @@
------------------------------------------2019-11-20-----------------------------------------------
-- 用户表新增微信openId字段
ALTER TABLE sys_user ADD open_id varchar(32) NULL COMMENT '微信openId';
------------------------------------------2019-11-20-----------------------------------------------

27
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DataScopeDeptList.java

@ -0,0 +1,27 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
/**
*
* 用户角色部门信息
*
* @Authorliuchuang
* @Date2019/11/19 23:21
*/
@Data
public class DataScopeDeptList implements Serializable {
private static final long serialVersionUID = -7811155461423939389L;
/**
* 部门ID
*/
private Long deptId;
/**
* 部门名称
*/
private String deptName;
}

5
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserDTO.java

@ -100,4 +100,9 @@ public class SysUserDTO implements Serializable {
*/
private String userTagKey;
/**
* 微信openId
*/
private String openId;
}

30
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserOpenIdFormDTO.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
*
* 更新用户openId
*
* @Authorliuchuang
* @Date2019/11/20 9:45
*/
@Data
public class SysUserOpenIdFormDTO implements Serializable {
private static final long serialVersionUID = 9009918598017070100L;
/**
* 用户名
*/
@NotBlank(message = "用户名不能为空")
private String username;
/**
* 微信openId
*/
@NotBlank(message = "微信openId不能为空")
private String openId;
}

48
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java

@ -188,6 +188,54 @@ public class SysUserController {
return new Result<UserDetail>().ok(userDetail);
}
/**
*
* 根据openId获取用户信息
*
* @params [openId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.SysUserDTO>
* @author liuchuang
* @since 2019/11/20 13:54
*/
@GetMapping("getUserInfo/{openId}")
public Result<SysUserDTO> getSysUserInfoByOpenId(@PathVariable("openId") String openId) {
SysUserDTO data = sysUserService.getSysUserInfoByOpenId(openId);
return new Result<SysUserDTO>().ok(data);
}
/**
*
* 根据用户ID 获取用户角色权限信息
*
* @params [id]
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.DataScopeDeptList>>
* @author liuchuang
* @since 2019/11/19 23:36
*/
@GetMapping("getDataScope")
public Result<List<DataScopeDeptList>> getDataScopeList(Long id) {
List<DataScopeDeptList> data = sysRoleDataScopeService.getDataScopeDetailList(id);
return new Result<List<DataScopeDeptList>>().ok(data);
}
/**
*
* 根据用户名更新用户微信openId
*
* @params [sysUserOpenIdFormDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/11/20 9:52
*/
@PostMapping("sys/user/modifyOpenId")
public Result modifyOpenIdByUsername(@RequestBody SysUserOpenIdFormDTO sysUserOpenIdFormDto) {
//效验数据
ValidatorUtils.validateEntity(sysUserOpenIdFormDto);
return sysUserService.modifyOpenIdByUsername(sysUserOpenIdFormDto);
}
/**
* 初始化用户数据
*/

7
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysRoleDataScopeDao.java

@ -8,9 +8,9 @@
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.dto.DataScopeDeptList;
import com.elink.esua.epdc.entity.SysRoleDataScopeEntity;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.entity.SysRoleDataScopeEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -34,6 +34,11 @@ public interface SysRoleDataScopeDao extends BaseDao<SysRoleDataScopeEntity> {
*/
List<Long> getDataScopeList(Long userId);
/**
* 获取用户的部门数据权限列表
*/
List<DataScopeDeptList> getDataScopeDetailList(Long userId);
/**
* 根据角色id删除角色数据权限关系
* @param roleId 角色id

25
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java

@ -8,7 +8,8 @@
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO;
import com.elink.esua.epdc.entity.SysUserEntity;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import org.apache.ibatis.annotations.Mapper;
@ -59,4 +60,26 @@ public interface SysUserDao extends BaseDao<SysUserEntity> {
* @since 2019/10/29 16:18
*/
List<Long> selectListOfUserIdsByDeptId(@Param("deptId") Long deptId);
/**
*
* 根据用户名更新用户微信openId
*
* @params [sysUserOpenIdFormDto]
* @return void
* @author liuchuang
* @since 2019/11/20 9:59
*/
void updateOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto);
/**
*
* 根据openId获取用户信息
*
* @params [openId]
* @return com.elink.esua.epdc.dto.SysUserDTO
* @author liuchuang
* @since 2019/11/20 13:56
*/
SysUserDTO selectOneOfSysUserByOpenId(String openId);
}

5
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysUserEntity.java

@ -100,4 +100,9 @@ public class SysUserEntity extends BaseEntity {
*/
private String userTagKey;
/**
* 用户微信openId
*/
private String openId;
}

8
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleDataScopeService.java

@ -9,6 +9,7 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.dto.DataScopeDeptList;
import com.elink.esua.epdc.entity.SysRoleDataScopeEntity;
import java.util.List;
@ -33,6 +34,13 @@ public interface SysRoleDataScopeService extends BaseService<SysRoleDataScopeEnt
*/
List<Long> getDataScopeList(Long userId);
/**
* 获取用户对应的部门数据权限
* @param userId 用户ID
* @return 返回部门ID列表
*/
List<DataScopeDeptList> getDataScopeDetailList(Long userId);
/**
* 保存或修改
* @param roleId 角色ID

23
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java

@ -11,6 +11,7 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO;
import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.entity.SysUserEntity;
@ -63,6 +64,17 @@ public interface SysUserService extends BaseService<SysUserEntity> {
*/
Result<GridLeaderRegisterDTO> listGridWhileLeaderRegister(String mobile);
/**
*
* 根据openId获取用户信息
*
* @params [openId]
* @return com.elink.esua.epdc.dto.SysUserDTO
* @author liuchuang
* @since 2019/11/20 13:56
*/
SysUserDTO getSysUserInfoByOpenId(String openId);
/**
*
* 获取部门下的所有用户ID
@ -73,4 +85,15 @@ public interface SysUserService extends BaseService<SysUserEntity> {
* @since 2019/10/29 16:14
*/
List<Long> listOfUserIdsByDeptId(Long deptId);
/**
*
* 根据用户名更新用户微信openId
*
* @params [sysUserOpenIdFormDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/11/20 9:56
*/
Result modifyOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto);
}

6
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleDataScopeServiceImpl.java

@ -11,6 +11,7 @@ package com.elink.esua.epdc.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.dao.SysRoleDataScopeDao;
import com.elink.esua.epdc.dto.DataScopeDeptList;
import com.elink.esua.epdc.entity.SysRoleDataScopeEntity;
import com.elink.esua.epdc.service.SysRoleDataScopeService;
import org.springframework.stereotype.Service;
@ -38,6 +39,11 @@ public class SysRoleDataScopeServiceImpl extends BaseServiceImpl<SysRoleDataScop
return baseDao.getDataScopeList(userId);
}
@Override
public List<DataScopeDeptList> getDataScopeDetailList(Long userId) {
return baseDao.getDataScopeDetailList(userId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveOrUpdate(Long roleId, List<Long> deptIdList) {

13
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java

@ -25,6 +25,7 @@ import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.SysUserDao;
import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO;
import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.dto.SysUserDTO;
@ -217,4 +218,16 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
public List<Long> listOfUserIdsByDeptId(Long deptId) {
return baseDao.selectListOfUserIdsByDeptId(deptId);
}
@Override
public Result modifyOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto) {
baseDao.updateOpenIdByUsername(sysUserOpenIdFormDto);
return new Result();
}
@Override
public SysUserDTO getSysUserInfoByOpenId(String openId) {
return baseDao.selectOneOfSysUserByOpenId(openId);
}
}

14
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysRoleDataScopeDao.xml

@ -12,6 +12,20 @@
where t1.user_id = #{value} and t1.role_id = t2.role_id
</select>
<select id="getDataScopeDetailList" resultType="com.elink.esua.epdc.dto.DataScopeDeptList">
SELECT
t2.dept_id,
t3.`name` AS deptName
FROM
sys_role_user t1,
sys_role_data_scope t2,
sys_dept t3
WHERE
t1.user_id = #{value}
AND t1.role_id = t2.role_id
AND t2.dept_id = t3.id
</select>
<delete id="deleteByRoleId">
delete from sys_role_data_scope where role_id = #{value}
</delete>

15
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml

@ -88,4 +88,19 @@
AND dept_id = #{deptId}
</select>
<select id="selectOneOfSysUserByOpenId" resultType="com.elink.esua.epdc.dto.SysUserDTO">
SELECT
*
FROM
sys_user
WHERE
del_flag = 0
AND `status` = 1
AND open_id = #{openId}
</select>
<update id="updateOpenIdByUsername">
UPDATE sys_user SET open_id = #{openId} WHERE username = #{username} AND del_flag = 0
</update>
</mapper>

45
esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/controller/AuthController.java

@ -8,15 +8,17 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.dto.*;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.AuthorizationDTO;
import com.elink.esua.epdc.dto.LoginDTO;
import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO;
import com.elink.esua.epdc.service.AuthService;
import com.elink.esua.epdc.service.CaptchaService;
import com.elink.esua.epdc.service.ResourceService;
@ -84,6 +86,47 @@ public class AuthController {
return new Result<AuthorizationDTO>().ok(authorization);
}
/**
*
* 工作端-获取token
*
* @params [tokenFormDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2019/11/19 20:46
*/
@GetMapping(value = "getToken")
public Result<WorkUserAuthorizationDTO> getToken(@RequestBody WorkUserTokenFormDTO tokenFormDto) {
//效验数据
ValidatorUtils.validateEntity(tokenFormDto);
return authService.workLogin(tokenFormDto.getUsername(), null);
}
/**
*
* 工作端-用户登录
*
* @params [workUserLoginDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2019/11/19 20:21
*/
@PostMapping(value = "workLogin")
@ApiOperation(value = "登录")
public Result<WorkUserAuthorizationDTO> workLogin(@RequestBody WorkUserLoginDTO workUserLoginDto) {
//效验数据
ValidatorUtils.validateEntity(workUserLoginDto);
Result<WorkUserAuthorizationDTO> result = authService.workLogin(workUserLoginDto.getUsername(), workUserLoginDto.getPassword());
if (result.success()) {
// 更新用户openId
SysUserOpenIdFormDTO sysUserOpenIdFormDto = ConvertUtils.sourceToTarget(workUserLoginDto, SysUserOpenIdFormDTO.class);
authService.modifyOpenId(sysUserOpenIdFormDto);
}
return result;
}
@PostMapping(value = "logout")
@ApiOperation(value = "退出")
public Result logout(HttpServletRequest request) {

29
esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java

@ -8,14 +8,19 @@
package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.dto.DataScopeDeptList;
import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO;
import com.elink.esua.epdc.feign.fallback.UserFeignClientFallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 用户接口
*
@ -39,4 +44,28 @@ public interface UserFeignClient {
@GetMapping("sys/user/getByUsername")
Result<UserDetail> getByUsername(@RequestParam("username") String username);
/**
*
* 根据用户ID获取用户角色权限信息
*
* @params [id]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DataScopeDeptList>
* @author liuchuang
* @since 2019/11/19 23:31
*/
@GetMapping("sys/user/getDataScope")
Result<List<DataScopeDeptList>> getDataScopeList(@RequestParam("id") Long id);
/**
*
* 根据用户名更新用户微信openId
*
* @params [sysUserOpenIdFormDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/11/20 9:52
*/
@PostMapping("sys/user/modifyOpenId")
Result modifyOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto);
}

14
esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java

@ -10,9 +10,13 @@ package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.DataScopeDeptList;
import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO;
import com.elink.esua.epdc.feign.UserFeignClient;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 用户接口 Fallback
*
@ -31,4 +35,14 @@ public class UserFeignClientFallback implements UserFeignClient {
public Result<UserDetail> getByUsername(String username) {
return new Result<>();
}
@Override
public Result<List<DataScopeDeptList>> getDataScopeList(Long id) {
return new Result<>();
}
@Override
public Result modifyOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto) {
return new Result<>();
}
}

39
esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/AuthService.java

@ -9,8 +9,14 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AuthorizationDTO;
import com.elink.esua.epdc.dto.DataScopeDeptList;
import com.elink.esua.epdc.dto.LoginDTO;
import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO;
import java.util.List;
/**
* 认证服务
@ -25,10 +31,43 @@ public interface AuthService {
*/
AuthorizationDTO login(LoginDTO login);
/**
*
* 工作端登录
*
* @params [username, password]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2019/11/20 9:30
*/
Result<WorkUserAuthorizationDTO> workLogin(String username, String password);
/**
*
* 根据用户名更新用户微信openId
*
* @params [sysUserOpenIdFormDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/11/20 9:50
*/
Result modifyOpenId(SysUserOpenIdFormDTO sysUserOpenIdFormDto);
/**
* 退出
*/
void logout(Long userId);
TokenDto getLoginUserInfo(String token);
/**
*
* 获取用户所有角色权限信息
*
* @params [id]
* @return java.util.List<com.elink.esua.epdc.dto.DataScopeDeptList>
* @author liuchuang
* @since 2019/11/19 23:42
*/
List<DataScopeDeptList> getDataScopeDetailList(Long id);
}

95
esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java

@ -8,7 +8,10 @@
package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.common.token.dto.DeptDataScopeDTO;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO;
import com.elink.esua.epdc.common.token.util.CpUserDetailRedis;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
@ -22,11 +25,14 @@ import com.elink.esua.epdc.commons.tools.redis.UserDetailRedis;
import com.elink.esua.epdc.commons.tools.security.password.PasswordUtils;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.HttpContextUtils;
import com.elink.esua.epdc.commons.tools.utils.IpUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AuthorizationDTO;
import com.elink.esua.epdc.dto.DataScopeDeptList;
import com.elink.esua.epdc.dto.LoginDTO;
import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO;
import com.elink.esua.epdc.enums.UserStatusEnum;
import com.elink.esua.epdc.feign.UserFeignClient;
import com.elink.esua.epdc.jwt.JwtProperties;
@ -39,6 +45,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
/**
* 认证服务
@ -127,6 +134,79 @@ public class AuthServiceImpl implements AuthService {
return authorization;
}
@Override
public Result<WorkUserAuthorizationDTO> workLogin(String username, String password) {
HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
//获取用户信息
Result<UserDetail> result = userFeignClient.getByUsername(username);
UserDetail user = result.getData();
//登录日志
SysLogLogin log = new SysLogLogin();
log.setType(LogTypeEnum.LOGIN.value());
log.setOperation(LoginOperationEnum.LOGIN.value());
log.setCreateDate(new Date());
log.setIp(IpUtils.getIpAddr(request));
log.setUserAgent(request.getHeader(HttpHeaders.USER_AGENT));
log.setIp(IpUtils.getIpAddr(request));
//账号不存在
if (user == null) {
log.setStatus(LoginStatusEnum.FAIL.value());
log.setCreatorName(username);
logProducer.saveLog(log);
return new Result<WorkUserAuthorizationDTO>().error("账号不存在");
}
//密码错误
if (null != password && !PasswordUtils.matches(password, user.getPassword())) {
log.setStatus(LoginStatusEnum.FAIL.value());
log.setCreator(user.getId());
log.setCreatorName(user.getUsername());
logProducer.saveLog(log);
return new Result<WorkUserAuthorizationDTO>().error("密码错误");
}
//账号停用
if (user.getStatus() == UserStatusEnum.DISABLE.value()) {
log.setStatus(LoginStatusEnum.LOCK.value());
log.setCreator(user.getId());
log.setCreatorName(user.getUsername());
logProducer.saveLog(log);
return new Result<WorkUserAuthorizationDTO>().error("账号已停用");
}
//保存到Redis
userDetailRedis.set(user, jwtProperties.getExpire());
//登录成功,生成token
String token = jwtUtils.generateToken(user.getId());
//授权信息
WorkUserAuthorizationDTO authorization = new WorkUserAuthorizationDTO();
authorization.setToken(token);
authorization.setExpire(jwtProperties.getExpire());
//登录用户信息
log.setCreator(user.getId());
log.setCreatorName(user.getUsername());
log.setStatus(LoginStatusEnum.SUCCESS.value());
logProducer.saveLog(log);
// 获取用户所有角色权限信息
List<DataScopeDeptList> dataScopeDeptList = this.getDataScopeDetailList(user.getId());
authorization.setDeptDataScopeList(ConvertUtils.sourceToTarget(dataScopeDeptList, DeptDataScopeDTO.class));
authorization.setDeptName(user.getDeptName());
authorization.setUserTagKey(user.getTypeKey());
return new Result<WorkUserAuthorizationDTO>().ok(authorization);
}
@Override
public void logout(Long userId) {
HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
@ -168,4 +248,19 @@ public class AuthServiceImpl implements AuthService {
cpUserDetailRedis.set(cpUserDetail, expire);
return cpUserDetail;
}
@Override
public List<DataScopeDeptList> getDataScopeDetailList(Long id) {
Result<List<DataScopeDeptList>> result = userFeignClient.getDataScopeList(id);
if (result.success()) {
return result.getData();
}
return null;
}
@Override
public Result modifyOpenId(SysUserOpenIdFormDTO sysUserOpenIdFormDto) {
return userFeignClient.modifyOpenIdByUsername(sysUserOpenIdFormDto);
}
}

27
esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/DeptDataScopeDTO.java

@ -0,0 +1,27 @@
package com.elink.esua.epdc.common.token.dto;
import lombok.Data;
import java.io.Serializable;
/**
*
* 用户所有角色权限信息
*
* @Authorliuchuang
* @Date2019/11/19 23:48
*/
@Data
public class DeptDataScopeDTO implements Serializable {
private static final long serialVersionUID = -6319876948812713836L;
/**
* 部门ID
*/
private Long deptId;
/**
* 部门名称
*/
private String deptName;
}

43
esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserAuthorizationDTO.java

@ -0,0 +1,43 @@
package com.elink.esua.epdc.common.token.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
*
* 工作端用户授权信息
*
* @Authorliuchuang
* @Date2019/11/19 20:17
*/
@Data
public class WorkUserAuthorizationDTO implements Serializable {
private static final long serialVersionUID = -4230190448906007120L;
/**
* 令牌
*/
private String token;
/**
* 过期时长单位秒
*/
private Integer expire;
/**
* 部门名称
*/
private String deptName;
/**
* 用户标签key
*/
private String userTagKey;
/**
* 用户所有角色权限信息
*/
private List<DeptDataScopeDTO> deptDataScopeList;
}

29
esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserLoginDTO.java

@ -0,0 +1,29 @@
package com.elink.esua.epdc.common.token.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
*
* 工作端用户登录信息
*
* @Authorliuchuang
* @Date2019/11/19 20:19
*/
@Data
public class WorkUserLoginDTO implements Serializable {
private static final long serialVersionUID = 1905641243346550379L;
@NotBlank(message="用户名不能为空")
private String username;
@NotBlank(message="密码不能为空")
private String password;
@NotBlank(message="微信code不能为空")
private String wxCode;
private String openId;
}

25
esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserTokenFormDTO.java

@ -0,0 +1,25 @@
package com.elink.esua.epdc.common.token.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
*
* 工作端获取token Form DTO
*
* @Authorliuchuang
* @Date2019/11/19 20:35
*/
@Data
public class WorkUserTokenFormDTO implements Serializable {
private static final long serialVersionUID = -2239027109939769097L;
@NotNull(message = "用户ID不能为空")
private Long id;
@NotBlank(message = "用户名不能为空")
private String username;
}

41
esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/filter/AuthFilter.java

@ -51,6 +51,16 @@ public class AuthFilter implements GlobalFilter {
*/
private List<String> urls;
/**
* 不拦截工作端urls
*/
private List<String> workLoginUrls;
/**
* 拦截的工作端urls
*/
private List<String> workUrls;
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest request = exchange.getRequest();
@ -63,9 +73,12 @@ public class AuthFilter implements GlobalFilter {
//获取用户token
String token = request.getHeaders().getFirst(Constant.TOKEN_HEADER);
if(StringUtils.isBlank(token)){
token = request.getHeaders().getFirst(Constant.AUTHORIZATION_HEADER);
if (StringUtils.isBlank(token)) {
token = request.getQueryParams().getFirst(Constant.TOKEN_HEADER);
}
}
//资源访问权限
String language = request.getHeaders().getFirst(HttpHeaders.ACCEPT_LANGUAGE);
@ -95,6 +108,18 @@ public class AuthFilter implements GlobalFilter {
}
private boolean pathMatcher(String requestUri){
for (String url : workLoginUrls) {
if(antPathMatcher.match(url, requestUri)){
return true;
}
}
for (String url : workUrls) {
if(antPathMatcher.match(url, requestUri)){
return false;
}
}
for (String url : urls) {
if(antPathMatcher.match(url, requestUri)){
return true;
@ -110,4 +135,20 @@ public class AuthFilter implements GlobalFilter {
public void setUrls(List<String> urls) {
this.urls = urls;
}
public List<String> getWorkLoginUrls() {
return workLoginUrls;
}
public void setWorkLoginUrls(List<String> workLoginUrls) {
this.workLoginUrls = workLoginUrls;
}
public List<String> getWorkUrls() {
return workUrls;
}
public void setWorkUrls(List<String> workUrls) {
this.workUrls = workUrls;
}
}

6
esua-epdc/epdc-gateway/src/main/resources/application.yml

@ -193,6 +193,11 @@ renren:
- /heart/**
- /oss/file/download
- /ws/**
workLoginUrls:
- /api/work/user/getToken #工作端-获取token
- /api/work/user/login #工作端-登录
workUrls:
- /api/work/** #工作端接口
epdc:
@ -211,3 +216,4 @@ epdc:
- /api/app-user/user/ma/regist # 小程序用户 注册
- /api/app-user/user/ma/gridLeaderRegister # 小程序用户 网格长注册
- /api/app-user/user/ma/v2/getToken # 小程序用户 注册或登录(版本v2)
- /api/work/** #工作端接口不拦截

24
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcWorkAppUserMaTokenFormDTO.java

@ -0,0 +1,24 @@
package com.elink.esua.epdc.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
*
* 工作端获取token
*
* @Authorliuchuang
* @Date2019/11/19 16:53
*/
@Data
public class EpdcWorkAppUserMaTokenFormDTO implements Serializable {
private static final long serialVersionUID = 1283317301539797996L;
/**
* 微信code
*/
@NotBlank(message = "微信code不能为空")
private String wxCode;
}

2
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiGroupController.java

@ -179,7 +179,7 @@ public class ApiGroupController {
* @since 2019/10/23 16:39
*/
@GetMapping("getInviteList")
public Result<List<EpdcUserGroupInviteResultDTO>> getInviteList(@LoginUser TokenDto userDetail, @RequestBody EpdcUserGroupInviteFormDTO formDto) {
public Result<List<EpdcUserGroupInviteResultDTO>> getInviteList(@LoginUser TokenDto userDetail, EpdcUserGroupInviteFormDTO formDto) {
return groupService.listOfInviteUsers(userDetail, formDto);
}

34
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkUserController.java

@ -1,11 +1,15 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.epdc.form.EpdcUnauthorizedAmountFromDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcPartyMemberDetailDto;
import com.elink.esua.epdc.dto.epdc.form.EpdcAppAuthenticateResidentFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcResidentDetailResultDTO;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.service.WorkUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -33,6 +37,36 @@ public class ApiWorkUserController {
@Autowired
private WorkUserService workUserService;
/**
*
* 工作端-获取token
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcWorkAppAuthorizationDTO>
* @author liuchuang
* @since 2019/11/19 17:23
*/
@GetMapping("getToken")
public Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return workUserService.getMaToken(formDto);
}
/**
*
* 工作端-用户登录
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2019/11/19 23:03
*/
@PostMapping("login")
public Result<WorkUserAuthorizationDTO> login(WorkUserLoginDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return workUserService.login(formDto);
}
/**
* 获取居民详情已认证或待认证提交信息待审核的居民用户
*

13
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java

@ -3,6 +3,7 @@ package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
@ -41,4 +42,16 @@ public interface AdminFeignClient {
*/
@GetMapping("sys/user/listGridForLeader/{mobile}")
Result<GridLeaderRegisterDTO> listGridWhileLeaderRegister(@PathVariable("mobile") String mobile);
/**
*
* 根据openId获取用户信息
*
* @params [openId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.SysUserDTO>
* @author liuchuang
* @since 2019/11/19 17:43
*/
@GetMapping("sys/user/getUserInfo/{openId}")
Result<SysUserDTO> getSysUserInfoByOpenId(@PathVariable("openId") String openId);
}

46
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ResourceFeignClient.java

@ -0,0 +1,46 @@
package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.fallback.ResourceFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
/**
*
* 资源接口
*
* @Authorliuchuang
* @Date2019/11/19 18:59
*/
@FeignClient(name = ServiceConstant.EPDC_AUTH_SERVER, fallback = ResourceFeignClientFallback.class)
public interface ResourceFeignClient {
/**
*
* 工作端用户获取token
*
* @params [workUserTokenFormDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2019/11/19 20:48
*/
@GetMapping("auth/getToken")
Result<WorkUserAuthorizationDTO> getToken(WorkUserTokenFormDTO workUserTokenFormDto);
/**
*
* 工作端用户登录并获取授权信息
*
* @params [workUserLoginDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2019/11/19 20:27
*/
@PostMapping("auth/workLogin")
Result<WorkUserAuthorizationDTO> workLogin(WorkUserLoginDTO workUserLoginDto);
}

6
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java

@ -4,6 +4,7 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import org.springframework.stereotype.Component;
@ -26,4 +27,9 @@ public class AdminFeignClientFallback implements AdminFeignClient {
public Result<GridLeaderRegisterDTO> listGridWhileLeaderRegister(String mobile) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listGridWhileLeaderRegister", mobile);
}
@Override
public Result<SysUserDTO> getSysUserInfoByOpenId(String openId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getSysUserInfoByOpenId", openId);
}
}

31
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ResourceFeignClientFallback.java

@ -0,0 +1,31 @@
package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.ResourceFeignClient;
import org.springframework.stereotype.Component;
/**
*
* 资源接口 Fallback
*
* @Authorliuchuang
* @Date2019/11/19 19:00
*/
@Component
public class ResourceFeignClientFallback implements ResourceFeignClient {
@Override
public Result<WorkUserAuthorizationDTO> getToken(WorkUserTokenFormDTO workUserTokenFormDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_AUTH_SERVER, "getToken", workUserTokenFormDto);
}
@Override
public Result<WorkUserAuthorizationDTO> workLogin(WorkUserLoginDTO workUserLoginDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_AUTH_SERVER, "workLogin", workUserLoginDto);
}
}

26
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/WorkUserService.java

@ -1,5 +1,7 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epdc.form.EpdcAppAuthenticateResidentFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUnauthorizedAmountFromDTO;
@ -8,6 +10,7 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcPartyMemberDetailDto;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.dto.epdc.form.EpdcWorkUserFromDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcWorkUserResultDTO;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import java.util.List;
import java.util.Map;
@ -19,6 +22,29 @@ import java.util.Map;
* @date 2019/11/18 10:48
*/
public interface WorkUserService {
/**
*
* 工作端-获取token
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcWorkAppAuthorizationDTO>
* @author liuchuang
* @since 2019/11/19 17:28
*/
Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto);
/**
*
* 工作端-用户登录
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2019/11/19 23:04
*/
Result<WorkUserAuthorizationDTO> login(WorkUserLoginDTO formDto);
/**
* 获取居民详情已认证或待认证提交信息待审核的居民用户
* @param userId 用户Id

71
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/WorkUserServiceImpl.java

@ -1,6 +1,14 @@
package com.elink.esua.epdc.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcAppAuthenticateResidentFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUnauthorizedAmountFromDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcResidentDetailResultDTO;
@ -8,8 +16,13 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcPartyMemberDetailDto;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.dto.epdc.form.EpdcWorkUserFromDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcWorkUserResultDTO;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.ResourceFeignClient;
import com.elink.esua.epdc.feign.UserFeignClient;
import com.elink.esua.epdc.service.WorkUserService;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -27,6 +40,41 @@ public class WorkUserServiceImpl implements WorkUserService {
@Autowired
private UserFeignClient userFeignClient;
@Autowired
private WxMaService wxMaService;
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private ResourceFeignClient resourceFeignClient;
@Override
public Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) {
// 获取openId
String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid();
// 检查当前微信是否已绑定账户
Result<SysUserDTO> sysUserDtoResult = adminFeignClient.getSysUserInfoByOpenId(openId);
if (!sysUserDtoResult.success()) {
return new Result<WorkUserAuthorizationDTO>().error(sysUserDtoResult.getMsg());
}
SysUserDTO userDto = sysUserDtoResult.getData();
if (null == userDto) {
return new Result<WorkUserAuthorizationDTO>().error("用户不存在");
}
return resourceFeignClient.getToken(ConvertUtils.sourceToTarget(userDto, WorkUserTokenFormDTO.class));
}
@Override
public Result<WorkUserAuthorizationDTO> login(WorkUserLoginDTO formDto) {
// 获取openId
String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid();
formDto.setOpenId(openId);
return resourceFeignClient.workLogin(formDto);
}
/**
* 获取居民详情已认证或待认证提交信息待审核的居民用户
*
@ -81,4 +129,27 @@ public class WorkUserServiceImpl implements WorkUserService {
fromDto.setUserId(userDetail.getUserId());
return userFeignClient.getUnauthorizedAmount(fromDto);
}
/**
* 解析微信code获取小程序用户信息
*
* @param wxCode
* @return cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult
* @author work@yujt.net.cn
* @date 2019/9/19 19:32
*/
private WxMaJscode2SessionResult getWxMaUser(String wxCode) {
WxMaJscode2SessionResult wxMaJscode2SessionResult = null;
try {
wxMaJscode2SessionResult = wxMaService.jsCode2SessionInfo(wxCode);
} catch (WxErrorException e) {
e.printStackTrace();
}
if (null == wxMaJscode2SessionResult) {
throw new RenException("解析微信用户信息失败");
} else if (StringUtils.isBlank(wxMaJscode2SessionResult.getOpenid())) {
throw new RenException("获取微信openid失败");
}
return wxMaJscode2SessionResult;
}
}

2
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupUserReviewFormDTO.java

@ -27,5 +27,5 @@ public class GroupUserReviewFormDTO implements Serializable {
/**
* 审核用户
*/
private List<UserReviewDto> userReviewDtoList;
private List<UserReviewDto> members;
}

4
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/UserGroupServiceImpl.java

@ -197,10 +197,10 @@ public class UserGroupServiceImpl extends BaseServiceImpl<UserGroupDao, UserGrou
@Override
@Transactional(rollbackFor = Exception.class)
public Result modifyGroupUsers(GroupUserReviewFormDTO formDto) {
List<UserGroupEntity> userGroupEntities = new ArrayList<>(formDto.getUserReviewDtoList().size());
List<UserGroupEntity> userGroupEntities = new ArrayList<>(formDto.getMembers().size());
UserGroupEntity entity = null;
for (UserReviewDto userReviewDto:
formDto.getUserReviewDtoList()) {
formDto.getMembers()) {
entity = new UserGroupEntity();
entity.setId(userReviewDto.getId());
entity.setState(userReviewDto.getState());

Loading…
Cancel
Save