zoujiajian 11 luni în urmă
părinte
comite
fa34112714

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/nano/NanoService.java

@@ -7,4 +7,6 @@ import com.cyksj.model.views.NanoUserQuotaInfoView;
  */
 public interface NanoService {
 	NanoUserQuotaInfoView getUserSubsInfo(long userId);
+
+	Long getUserTokenByNanoToken(String usertoken);
 }

+ 9 - 0
netflix-service/src/main/java/com/cyksj/service/nano/impl/NanoServiceImpl.java

@@ -71,4 +71,13 @@ public class NanoServiceImpl implements NanoService {
 		}
 		return null;
 	}
+
+	@Override
+	public Long getUserTokenByNanoToken(String usertoken) {
+		NanoUserQuota nanoUserQuota = nanoUserQuotaMapper.selectOne(Wrappers.lambdaQuery(NanoUserQuota.class).eq(NanoUserQuota::getUserToken, usertoken).last("limit 1"));
+		if (nanoUserQuota != null) {
+			return nanoUserQuota.getUid();
+		}
+		return null;
+	}
 }

+ 18 - 0
netflix-web/src/main/java/com/cyksj/web/controller/nano/NanoController.java

@@ -3,6 +3,7 @@ package com.cyksj.web.controller.nano;
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
+import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.dto.UserSharedDto;
 import com.cyksj.enums.GatewayResponse;
@@ -62,6 +63,23 @@ public class NanoController {
 
 	private final CouponUserMapper couponUserMapper;
 
+	/**
+	 * 通过车票token获取用户信息
+	 */
+	@GetMapping("/get/user/token")
+	public Result<String> getUserTokenByNanoToken(String usertoken) {
+		Long userId = nanoService.getUserTokenByNanoToken(usertoken);
+		if (userId == null) {
+			throw BusinessRuntimeException.getInstance("车票不存在");
+		}
+		String userToken = StpUserUtil.getTokenValueByLoginId(userId);
+		if (userToken == null) {
+			StpUserUtil.login(userId);
+			userToken = StpUserUtil.getTokenValue();
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult(userToken);
+	}
+
 
 	/**
 	 * 用户订阅车票信息