Selaa lähdekoodia

Merge branch 'feature-2022.07.29' of https://git.flowbb.cn/RK-Dev/fqgz-server into feature-2022.07.29

humuyu 3 vuotta sitten
vanhempi
commit
089a2b47b4

+ 3 - 4
eladmin-security/src/main/java/me/zhengjie/security/service/OnlineUserService.java

@@ -128,13 +128,12 @@ public class OnlineUserService {
 	 *
 	 * @return
 	 */
-	public List<Object> getAllLoginUser() {
+	public List<OnlineUserDto> getAllLoginUser() {
 		List<String> keys = redisUtils.scan(properties.getOnlineKey() + "*");
 		Collections.reverse(keys);
-		List<Object> securityContextUsers = new ArrayList<>();
+		List<OnlineUserDto> securityContextUsers = new ArrayList<>();
 		for (String key : keys) {
-			securityContextUsers.add(redisUtils.get(key));
-
+			securityContextUsers.add(JSON.parseObject((String) redisUtils.get(key), OnlineUserDto.class));
 		}
 		return securityContextUsers;
 	}

+ 3 - 0
eladmin-system/src/main/java/me/zhengjie/application/bank/service/impl/OrderServiceImpl.java

@@ -601,6 +601,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		if (orderId.startsWith("10")) {
 			BorrowerEntity entity = new BorrowerEntity();
 			entity.setId(id);
+			entity.setUpdateTime(LocalDateTime.now());
 			entity.setStatus("2");
 			borrowerService.updateById(entity);
 			entity = borrowerService.getById(id);
@@ -626,6 +627,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		} else if (orderId.startsWith("11")) {
 			MortgageEntity entity = mortgageService.getById(id);
 			entity.setId(id);
+			entity.setUpdateTime(LocalDateTime.now());
 			entity.setStatus("2");
 			mortgageService.updateById(entity);
 
@@ -651,6 +653,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		} else if (orderId.startsWith("12")) {
 			GuaranteeEntity entity = guaranteeService.getById(id);
 			entity.setId(id);
+			entity.setUpdateTime(LocalDateTime.now());
 			entity.setStatus("2");
 			guaranteeService.updateById(entity);
 			// 这里就更新主订单状态

+ 6 - 3
eladmin-system/src/main/java/me/zhengjie/application/user/app/mq/WebSocketReceiver.java

@@ -9,11 +9,13 @@ import me.zhengjie.application.admin.service.dto.JwtUserDto;
 import me.zhengjie.application.admin.service.dto.RoleSmallDto;
 import me.zhengjie.application.admin.service.dto.UserDto;
 import me.zhengjie.application.bank.service.SysUserService;
+import me.zhengjie.base.util.ApplicationContextUtil;
 import me.zhengjie.base.util.WebSocketMap;
 import me.zhengjie.base.websocket.AppSocketServer;
 import me.zhengjie.dao.mybatis.entity.NotaryOrderEntity;
 import me.zhengjie.dao.mybatis.entity.SysUserEntity;
 import me.zhengjie.security.service.OnlineUserService;
+import me.zhengjie.security.service.dto.OnlineUserDto;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.redis.connection.Message;
 import org.springframework.data.redis.connection.MessageListener;
@@ -33,6 +35,7 @@ public class WebSocketReceiver implements MessageListener {
 	final OnlineUserService onlineUserService;
 	final NotaryOrderService notaryOrderService;
 	final SysUserService sysUserService;
+	final ApplicationContextUtil contextUtil;
 
 	/**
 	 * 推送公证员接单消息
@@ -47,7 +50,7 @@ public class WebSocketReceiver implements MessageListener {
 		String orderId = jsonObj.getString("orderId");
 		String roomId = jsonObj.getString("roomId");
 		String businessNo = jsonObj.getString("businessNo");
-		List<Object> users = onlineUserService.getAllLoginUser();
+		List<OnlineUserDto> users = onlineUserService.getAllLoginUser();
 		// share_userId
 		QueryWrapper<NotaryOrderEntity> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("business_no", businessNo);
@@ -59,8 +62,8 @@ public class WebSocketReceiver implements MessageListener {
 		String notaryId = "notary_" + notaryOrder.getNotaryOfficeId();
 		log.info("判断登录的公证处和查询的公证处比较:" + notaryId);
 		WebSocketMap.set(socketId, list);
-		for (Object user : users) {
-			JwtUserDto userDto = (JwtUserDto) user;
+		for (OnlineUserDto user : users) {
+			JwtUserDto userDto = contextUtil.getUserByKey(user.getOnlineToken());
 			String orgId = userDto.getUser().getOrgId();
 			if (StringUtils.isNotBlank(orgId) && orgId.equalsIgnoreCase(notaryId) && isNotrayUser(userDto.getUser())) {
 				CopyOnWriteArraySet<AppSocketServer> socketServers = AppSocketServer.getWebSocketSet();

+ 12 - 1
eladmin-system/src/main/java/me/zhengjie/base/util/ApplicationContextUtil.java

@@ -17,12 +17,23 @@ public class ApplicationContextUtil {
     private final RedisUtils redisUtils;
 
     /**
+     * 获取指定缓存Key的用户信息
+     * @param key
+     * @return
+     */
+    public JwtUserDto getUserByKey(String key) {
+        return JSON.parseObject((String) redisUtils.get(key), JwtUserDto.class);
+    }
+
+    /**
      * 获取当前登录的用户
      * @return UserDetails
      */
     public JwtUserDto getCurrentUser() {
         OnlineUserDto onlineUser = (OnlineUserDto) SecurityUtils.getCurrentUser();
-        return JSON.parseObject((String) redisUtils.get(onlineUser.getOnlineToken()), JwtUserDto.class);
+        JwtUserDto jwtUserDto = JSON.parseObject((String) redisUtils.get(onlineUser.getOnlineToken()), JwtUserDto.class);
+        jwtUserDto.setAuthorities(onlineUser.getAuthorities());
+        return jwtUserDto;
     }
 
     /**