zoujiajian há 3 anos atrás
pai
commit
7523fac710

+ 4 - 0
netflix-service/src/main/java/com/cyksj/service/mini/MiniService.java

@@ -1,5 +1,7 @@
 package com.cyksj.service.mini;
 
+import com.cyksj.model.entity.User;
+
 /*
  *项目名: netflix
  *文件名: MiniService
@@ -8,4 +10,6 @@ package com.cyksj.service.mini;
  */
 public interface MiniService {
 	String getMiniURLLink(String path, String minType) throws Exception;
+
+	User wxlogin(String code, String appId) throws Exception;
 }

+ 14 - 0
netflix-service/src/main/java/com/cyksj/service/mini/impl/MiniServiceImpl.java

@@ -1,9 +1,12 @@
 package com.cyksj.service.mini.impl;
 
 import com.cyksj.config.YhMiniConfig;
+import com.cyksj.model.dto.MiniProgramSession;
+import com.cyksj.model.entity.User;
 import com.cyksj.model.wechat.MiniURLLink;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.mini.MiniService;
+import com.cyksj.service.user.UserService;
 import com.cyksj.service.wechat.WeChatService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -25,6 +28,8 @@ public class MiniServiceImpl implements MiniService {
 
 	private final RedisService redisService;
 
+	private final UserService userService;
+
 	@Override
 	public String getMiniURLLink(String path, String query) throws Exception {
 		MiniURLLink miniURLLink = new MiniURLLink();
@@ -34,4 +39,13 @@ public class MiniServiceImpl implements MiniService {
 		String linkUrl = weChatService.getMiniURLLink(accessToken, miniURLLink);
 		return linkUrl;
 	}
+
+	@Override
+	public User wxlogin(String code, String appId) throws Exception {
+		MiniProgramSession code2Session = weChatService.code2Session(appId, code);
+		String unionId = code2Session.getUnionid();
+		String openid = code2Session.getOpenid();
+		userService.saveAuth()
+		return null;
+	}
 }

+ 28 - 4
netflix-web/src/main/java/com/cyksj/web/controller/mini/MiniController.java

@@ -1,12 +1,16 @@
 package com.cyksj.web.controller.mini;
 
+import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.model.entity.User;
+import com.cyksj.model.request.MiniProgramLoginPost;
 import com.cyksj.service.mini.MiniService;
+import com.cyksj.web.util.StpUserUtil;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
 
 /*
  *项目名: netflix
@@ -17,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/applets/mini")
 @RequiredArgsConstructor
+@Slf4j
 public class MiniController {
 	private final MiniService miniService;
 
@@ -27,5 +32,24 @@ public class MiniController {
 	public Result<String> getMiniLinkURL(String path, String query) throws Exception {
 		String linkUrl = miniService.getMiniURLLink(path, query);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(linkUrl);
-	};
+	}
+
+	/**
+	 * 银河小程序 静默授权登录
+	 */
+	@PostMapping("/user/login")
+	public Result<String> userLogin(@RequestBody MiniProgramLoginPost miniDataParams) {
+		String methodName = "银河小程序静默授权";
+		log.info("{}[start] params:{}",methodName,miniDataParams);
+
+		if (StringUtils.isBlank(miniDataParams.getCode())) {
+			throw BusinessRuntimeException.getInstance("需要登录凭证code.");
+		}
+		User user = miniService.wxlogin(miniDataParams.getCode(), miniDataParams.getAppId());
+		StpUserUtil.login(user.getId());
+
+		log.info("{}[end] uuid:{}",methodName, user.getId());
+
+		return GatewayResponse.SUCCESS.newBuilder().toResult(StpUserUtil.getTokenValue());
+	}
 }