Browse Source

Merge branch 'dev_bugfix' into dev

dev_shibei_match
wxz 5 years ago
parent
commit
fb010248f1
  1. 17
      epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java
  2. 19
      epmet-auth/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java
  3. 7
      epmet-auth/src/main/java/com/epmet/service/GovLoginService.java
  4. 12
      epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java
  5. 19
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java
  6. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java
  7. 2
      epmet-user/epmet-user-server/pom.xml
  8. 23
      epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java
  9. 17
      epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/AuthFeignClientCallback.java
  10. 29
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
  11. 25
      epmet-user/epmet-user-server/src/test/java/com/epmet/epmetuser/test/UserControllerTest.java

17
epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java

@ -4,10 +4,7 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.GovWxmpEnteOrgFormDTO;
import com.epmet.dto.form.GovWxmpFormDTO;
import com.epmet.dto.form.SendSmsCodeFormDTO;
import com.epmet.dto.form.StaffOrgsFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.StaffOrgsResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.service.GovLoginService;
@ -98,5 +95,17 @@ public class GovLoginController {
govLoginService.loginOut(tokenDto);
return new Result();
}
/**
* 更新缓存的角色列表
* @param form
* @return
*/
@PostMapping("/updatecachedroles")
public Result updateCachedRoles(@RequestBody UpdateCachedRolesFormDTO form) {
ValidatorUtils.validateEntity(form);
govLoginService.updateCachedRoles(form.getStaffId(), form.getOrgId(), form.getRoleIds());
return new Result();
}
}

19
epmet-auth/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class UpdateCachedRolesFormDTO {
@NotBlank(message = "客户ID不能为空")
private String staffId;
@NotBlank(message = "机关ID不能为空")
private String orgId;
private List<String> roleIds;
}

7
epmet-auth/src/main/java/com/epmet/service/GovLoginService.java

@ -61,4 +61,11 @@ public interface GovLoginService {
* @Date 2020/4/21 22:08
**/
void loginOut(TokenDto tokenDto);
/**
* 更新缓存中的角色列表
* @param staffId
* @param roleIds
*/
void updateCachedRoles(String staffId, String orgId, List<String> roleIds);
}

12
epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java

@ -2,6 +2,7 @@ package com.epmet.service.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.epmet.common.token.constant.LoginConstant;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
@ -290,6 +291,17 @@ public class GovLoginServiceImpl implements GovLoginService {
cpUserDetailRedis.logout(tokenDto.getApp() , tokenDto.getClient() , tokenDto.getUserId());
}
@Override
public void updateCachedRoles(String staffId, String orgId, List<String> roleIds) {
GovTokenDto userDetails = cpUserDetailRedis.get(AppClientConstant.APP_GOV, AppClientConstant.CLIENT_WXMP, staffId, GovTokenDto.class);
if (userDetails == null) {
return;
}
List<GovTokenDto.Role> roles = queryGovStaffRoles(staffId, orgId);
userDetails.setRoleList(roles);
cpUserDetailRedis.set(userDetails, jwtTokenProperties.getExpire());
}
//保存登录日志
private Result saveStaffLoginRecord(GovWxmpEnteOrgFormDTO formDTO, String staffId, String openId) {
StaffLoginAgencyRecordFormDTO staffLoginAgencyRecordFormDTO = new StaffLoginAgencyRecordFormDTO();

19
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class UpdateCachedRolesFormDTO {
@NotBlank(message = "客户ID不能为空")
private String staffId;
@NotBlank(message = "机关ID不能为空")
private String orgId;
private List<String> roleIds;
}

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java

@ -1,7 +1,9 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import lombok.Data;
import java.util.List;
import java.util.Set;
@Data
@ -25,7 +27,8 @@ public class LoginUserDetailsResultDTO {
/**
* 角色列表
*/
private Set<String> roleIdList;
//private Set<String> roleIdList;
private List<GovTokenDto.Role> roleList;
/**
* 部门id列表

2
epmet-user/epmet-user-server/pom.xml

@ -137,7 +137,7 @@
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>123456</spring.redis.password>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.register-enabled>false</nacos.register-enabled>
<nacos.server-addr>122.152.200.70:8848</nacos.server-addr>
<nacos.discovery.namespace>fcd6fc8f-ca3a-4b01-8026-2b05cdc5976b</nacos.discovery.namespace>
<nacos.config.namespace></nacos.config.namespace>

23
epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java

@ -0,0 +1,23 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.UpdateCachedRolesFormDTO;
import com.epmet.feign.fallback.AuthFeignClientCallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = ServiceConstant.EPMET_AUTH_SERVER, fallback = AuthFeignClientCallback.class, url = "localhost:8081")
//@FeignClient(name = ServiceConstant.EPMET_AUTH_SERVER, fallback = AuthFeignClientCallback.class)
public interface AuthFeignClient {
/**
* 更新缓存的角色列表
* @param form
* @return
*/
@PostMapping("/auth/gov/updatecachedroles")
Result updateCachedRoles(@RequestBody UpdateCachedRolesFormDTO form);
}

17
epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/AuthFeignClientCallback.java

@ -0,0 +1,17 @@
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.UpdateCachedRolesFormDTO;
import com.epmet.feign.AuthFeignClient;
import org.springframework.stereotype.Component;
@Component
public class AuthFeignClientCallback implements AuthFeignClient {
@Override
public Result updateCachedRoles(UpdateCachedRolesFormDTO form) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_AUTH_SERVER, "updateCachedRoles", form);
}
}

29
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java

@ -24,8 +24,10 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerStaffConstant;
import com.epmet.constant.UserConstant;
@ -39,6 +41,7 @@ import com.epmet.entity.CustomerStaffEntity;
import com.epmet.entity.GovStaffRoleEntity;
import com.epmet.entity.StaffRoleEntity;
import com.epmet.entity.UserEntity;
import com.epmet.feign.AuthFeignClient;
import com.epmet.redis.CustomerStaffRedis;
import com.epmet.service.CustomerStaffService;
import com.epmet.service.GovStaffRoleService;
@ -52,10 +55,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -78,6 +78,10 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
private StaffRoleService staffRoleService;
@Autowired
private StaffRoleDao staffRoleDao;
@Autowired
private CpUserDetailRedis cpUserDetailRedis;
@Autowired
private AuthFeignClient authFeignClient;
@Override
public PageData<CustomerStaffDTO> page(Map<String, Object> params) {
@ -328,6 +332,23 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
staffRoleEntity.setOrgId(fromDTO.getAgencyId());
staffRoleService.insert(staffRoleEntity);
});
// redis缓存角色修改
UpdateCachedRolesFormDTO updateRolesForm = new UpdateCachedRolesFormDTO();
updateRolesForm.setOrgId(fromDTO.getAgencyId());
updateRolesForm.setStaffId(fromDTO.getStaffId());
updateRolesForm.setRoleIds(fromDTO.getRoles());
try {
Result result = authFeignClient.updateCachedRoles(updateRolesForm);
if (!result.success()) {
logger.error("修改用户信息:修改用户已缓存的角色列表失败:{}", result.getInternalMsg());
}
logger.info("修改用户信息:修改用户已缓存的角色列表成功");
} catch (Exception e) {
e.printStackTrace();
logger.error("修改用户信息:修改用户已缓存的角色列表异常:{}", ExceptionUtils.getErrorStackTrace(e));;
}
return new Result();
}

25
epmet-user/epmet-user-server/src/test/java/com/epmet/epmetuser/test/UserControllerTest.java

@ -0,0 +1,25 @@
package com.epmet.epmetuser.test;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest
@RunWith(SpringRunner.class)
public class UserControllerTest {
@Autowired
private UserService userService;
@Test
public void getLoginUserDetails() {
LoginUserDetailsResultDTO loginUserDetails = userService.getLoginUserDetails(AppClientConstant.APP_GOV, AppClientConstant.CLIENT_WXMP, "4aaab913d9f11d90a2cb4dd21b075259");
System.out.println(loginUserDetails);
}
}
Loading…
Cancel
Save