Browse Source

企业注册完成商城直接登录

wangmh 7 years ago
parent
commit
c64b096a00

+ 27 - 1
sso-server/src/main/java/com/uas/sso/controller/UserspaceRegisterController.java

@@ -1,14 +1,20 @@
 package com.uas.sso.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.sso.AccountConfig;
+import com.uas.sso.SSOHelper;
+import com.uas.sso.SSOToken;
 import com.uas.sso.core.PasswordStrength;
 import com.uas.sso.core.Status;
 import com.uas.sso.core.Step;
 import com.uas.sso.core.Type;
 import com.uas.sso.entity.User;
+import com.uas.sso.entity.UserAccount;
 import com.uas.sso.entity.Userspace;
 import com.uas.sso.logging.LoggerManager;
 import com.uas.sso.logging.RegisterBufferedLogger;
+import com.uas.sso.service.AppService;
+import com.uas.sso.service.UserAccountService;
 import com.uas.sso.service.UserService;
 import com.uas.sso.service.UserspaceService;
 import com.uas.sso.util.PasswordLevelUtils;
@@ -20,6 +26,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import java.util.List;
+
 /**
  * 企业注册controller
  *
@@ -36,6 +44,12 @@ public class UserspaceRegisterController extends BaseController {
     @Autowired
     private UserspaceService userspaceService;
 
+    @Autowired
+    private UserAccountService userAccountService;
+
+    @Autowired
+    private AppService appService;
+
     private RegisterBufferedLogger registerLogger = LoggerManager.getLogger(RegisterBufferedLogger.class);
 
     /**
@@ -81,7 +95,7 @@ public class UserspaceRegisterController extends BaseController {
      */
     @RequestMapping(method = RequestMethod.POST)
     @ResponseBody
-    public ModelMap register(Userspace userspace, User user, String appId, Long invitationTime) {
+    public ModelMap register(Userspace userspace, User user, String appId, Long invitationTime, String baseUrl) {
         // 获取企业信息
         String spaceName = userspace.getSpaceName();
         String businessCode = userspace.getBusinessCode();
@@ -144,6 +158,18 @@ public class UserspaceRegisterController extends BaseController {
         // 添加日志
         registerLogger.info(Type.REGISTER_USERSPACE.getValue(), Step.SECOND.getValue(), "企业注册", userspace, appId);
 
+        if ("mall".equals(appId)) {
+            UserAccount userAccount = userAccountService.findOneByUserUU(appId, admin.getUserUU(), userspace.getSpaceUU());
+            List<String> loginUrls = appService.findAllLoginUrl();
+            ModelMap data = new ModelMap();
+            data.addAttribute(userAccount)
+                    .addAttribute("loginUrls", loginUrls)
+                    .addAttribute("currentUrl", baseUrl);
+            SSOToken st = new SSOToken(request, userAccount.getMobile());
+            st.setData(JSON.toJSONString(userAccount));
+            SSOHelper.setSSOCookie(request, response, st, true);
+            return success(data);
+        }
         return success();
     }
 

+ 7 - 0
sso-server/src/main/java/com/uas/sso/dao/AppDao.java

@@ -28,4 +28,11 @@ public interface AppDao extends JpaRepository<App, String>, JpaSpecificationExec
      */
     @Query("select t from App t where t.defaultUse = 1")
     List<App> findByDefaultUse();
+
+    /**
+     * 找到所有不为空的登录地址
+     * @return
+     */
+    @Query("select app.loginUrl from App app where app.loginUrl is not null")
+    List<String> findAllLoginUrl();
 }

+ 6 - 0
sso-server/src/main/java/com/uas/sso/service/AppService.java

@@ -45,4 +45,10 @@ public interface AppService {
      * @return
      */
     List<App> findDefaultUseApp();
+
+    /**
+     * 找到所有登录接口url
+     * @return
+     */
+    List<String> findAllLoginUrl();
 }

+ 5 - 1
sso-server/src/main/java/com/uas/sso/service/impl/AppServiceImpl.java

@@ -1,6 +1,5 @@
 package com.uas.sso.service.impl;
 
-import com.uas.sso.core.Const;
 import com.uas.sso.dao.AppDao;
 import com.uas.sso.entity.App;
 import com.uas.sso.service.AppService;
@@ -45,4 +44,9 @@ public class AppServiceImpl implements AppService {
     public List<App> findDefaultUseApp() {
         return appDao.findByDefaultUse();
     }
+
+    @Override
+    public List<String> findAllLoginUrl() {
+        return appDao.findAllLoginUrl();
+    }
 }