Browse Source

uu互联,uas接口调整

wangmh 7 years ago
parent
commit
9a967508d4
27 changed files with 675 additions and 193 deletions
  1. 2 2
      sso-common/src/main/java/com/uas/sso/entity/UserAccount.java
  2. 60 28
      sso-common/src/main/java/com/uas/sso/util/AccountUtils.java
  3. 6 0
      sso-server/src/main/java/com/uas/sso/controller/AppealController.java
  4. 45 20
      sso-server/src/main/java/com/uas/sso/controller/BaseController.java
  5. 98 11
      sso-server/src/main/java/com/uas/sso/controller/LoginController.java
  6. 30 16
      sso-server/src/main/java/com/uas/sso/controller/PartnershipManagerController.java
  7. 57 9
      sso-server/src/main/java/com/uas/sso/controller/UserManagerController.java
  8. 34 27
      sso-server/src/main/java/com/uas/sso/controller/UserspaceManagerController.java
  9. 9 0
      sso-server/src/main/java/com/uas/sso/dao/UserDao.java
  10. 14 0
      sso-server/src/main/java/com/uas/sso/entity/App.java
  11. 10 0
      sso-server/src/main/java/com/uas/sso/entity/PageInfo.java
  12. 1 0
      sso-server/src/main/java/com/uas/sso/entity/PartnershipRecord.java
  13. 31 14
      sso-server/src/main/java/com/uas/sso/entity/User.java
  14. 15 10
      sso-server/src/main/java/com/uas/sso/entity/Userspace.java
  15. 8 0
      sso-server/src/main/java/com/uas/sso/service/UserService.java
  16. 0 16
      sso-server/src/main/java/com/uas/sso/service/UserspaceService.java
  17. 1 1
      sso-server/src/main/java/com/uas/sso/service/impl/PersonalAccountServiceImpl.java
  18. 1 1
      sso-server/src/main/java/com/uas/sso/service/impl/UserAccountServiceImpl.java
  19. 68 1
      sso-server/src/main/java/com/uas/sso/service/impl/UserServiceImpl.java
  20. 0 30
      sso-server/src/main/java/com/uas/sso/service/impl/UserspaceServiceImpl.java
  21. 62 0
      sso-server/src/main/java/com/uas/sso/uu/controller/UserSpaceInfoController.java
  22. 30 0
      sso-server/src/main/java/com/uas/sso/uu/service/UserSpaceInfoService.java
  23. 64 0
      sso-server/src/main/java/com/uas/sso/uu/service/impl/UserSpaceInfoServiceImpl.java
  24. 24 0
      sso-server/src/main/resources/config/application-prod.properties
  25. 2 2
      sso-server/src/main/resources/dev/account.properties
  26. 1 3
      sso-server/src/main/resources/prod/account.properties
  27. 2 2
      sso-server/src/main/resources/test/account.properties

+ 2 - 2
sso-common/src/main/java/com/uas/sso/entity/UserAccount.java

@@ -111,7 +111,7 @@ public class UserAccount implements Serializable {
     public UserAccount() {
     }
 
-    public UserAccount(Long userUU, String vipName, String mobile, String mobileArea, Short mobileValidCode, String password, String erpPassword, String salt, String email, Short emailValidCode, Short identityValidCode, Integer lock, Long spaceUU, String spaceName, String businessCode, String spaceDomain, String appId, Date lastLoginTime) {
+    public UserAccount(Long userUU, String vipName, String mobile, String mobileArea, Short mobileValidCode, String password, String salt, String email, Short emailValidCode, Short identityValidCode, Integer lock, Long spaceUU, String spaceName, String businessCode, String spaceDomain, String appId, Date lastLoginTime) {
         this.userUU = userUU;
         this.vipName = vipName;
         this.mobile = mobile;
@@ -132,7 +132,7 @@ public class UserAccount implements Serializable {
         this.lastLoginTime = lastLoginTime;
     }
 
-    public UserAccount(Long userUU, String vipName, String mobile, String mobileArea, Short mobileValidCode, String password, String erpPassword, String salt, String email, Short emailValidCode, Short identityValidCode, Integer lock, Date lastLoginTime) {
+    public UserAccount(Long userUU, String vipName, String mobile, String mobileArea, Short mobileValidCode, String password, String salt, String email, Short emailValidCode, Short identityValidCode, Integer lock, Date lastLoginTime) {
         this.userUU = userUU;
         this.vipName = vipName;
         this.mobile = mobile;

+ 60 - 28
sso-common/src/main/java/com/uas/sso/util/AccountUtils.java

@@ -976,6 +976,33 @@ public class AccountUtils {
             }
 		}
 	}
+
+	/**
+	 * 根据token获得用户信息
+	 *
+	 * @param token tokenId
+	 * @throws Exception
+	 */
+	public static UserView getUserByToken(String token) throws Exception {
+		String url = AccountConfig.getUserSaveUrl();
+		if (!StringUtils.isEmpty(url)) {
+            url = url + "/getUserByToken";
+            ModelMap data = new ModelMap();
+            data.put("token", token);
+            HttpUtil.ResponseWrap res = HttpUtil.doGet(url, data);
+			if (!res.isSuccess()) {
+                throw new Exception(res.getContent());
+            } else {
+                ResultWrap result = JSON.parseObject(res.getContent(), ResultWrap.class);
+                if (!result.isSuccess()) {
+                    throw new Exception(result.getErrMsg());
+                } else if (result.getContent() != null) {
+                    return JSONObject.parseObject(result.getContent().toString(), UserView.class);
+                }
+            }
+		}
+		return null;
+	}
 //
 //	/**
 //	 * 设置hr账号
@@ -1138,32 +1165,37 @@ public class AccountUtils {
 //		}
 //		return result;
 //	}
-//
-//	/**
-//	 * 根据营业执照号分页查找该企业的用户
-//	 * @param businessCode
-//	 * @param pageNumber
-//	 * @param pageSize
-//	 * @return
-//	 * @throws Exception
-//	 */
-//	public Page<User> findUsersByBusinessCode(String businessCode, int pageNumber, int pageSize) throws Exception {
-//		String url = AccountConfig.getUserSaveUrl();
-//		if (!StringUtils.isEmpty(url)) {
-//			url = url + "/findByBusinessCode";
-//			String appId = SSOHelper.getSSOService().getConfig().getAppName();
-//			ModelMap data = new ModelMap();
-//			data.put("businessCode", businessCode);
-//			data.put("appId", appId);
-//			data.put("pageNumber", pageNumber);
-//			data.put("pageSize", pageSize);
-//			ResponseWrap res = HttpUtil.doGet(url, data);
-//			if (!res.isSuccess()) {
-//				throw new Exception(res.getContent());
-//			} else {
-//				return JSON.parseObject(res.getContent(), new TypeReference<Page<User>>() {});
-//			}
-//		}
-//		return null;
-//	}
+
+	/**
+	 * 根据营业执照号分页查找该企业的用户
+	 * @param spaceUU
+	 * @param pageNumber
+	 * @param pageSize
+	 * @return
+	 * @throws Exception
+	 */
+	public static Page<UserView> findUsersByBusinessCode(Long spaceUU, int pageNumber, int pageSize) throws Exception {
+		String url = AccountConfig.getUserSaveUrl();
+		if (!StringUtils.isEmpty(url)) {
+			url = url + "/find/member";
+			String appId = SSOHelper.getSSOService().getConfig().getAppName();
+			ModelMap data = new ModelMap();
+			data.put("spaceUU", spaceUU);
+			data.put("appId", appId);
+			data.put("page", pageNumber);
+			data.put("size", pageSize);
+			HttpUtil.ResponseWrap res = HttpUtil.doGet(url, data);
+			if (!res.isSuccess()) {
+				throw new Exception(res.getContent());
+			} else {
+                ResultWrap result = JSON.parseObject(res.getContent(), ResultWrap.class);
+                if (!result.isSuccess()) {
+                    throw new Exception(result.getErrMsg());
+                } else if (result.getContent() != null) {
+                    return JSON.parseObject(result.getContent().toString(), new TypeReference<Page<UserView>>() {});
+                }
+			}
+		}
+		return null;
+	}
 }

+ 6 - 0
sso-server/src/main/java/com/uas/sso/controller/AppealController.java

@@ -129,6 +129,12 @@ public class AppealController extends BaseController {
         User submitter = userService.findByMobile(appeal.getMobile());
         appeal.setSubmitterUU(submitter == null ? null : submitter.getUserUU());
         appealService.submitChangeAdmin(appeal, userspace, checkSpace.getSpaceUU());
+
+        // 发送短信和邮件通知审核人
+        Setting mailReceiver = settingService.findOne("mailReceiverAfterRegister");
+        Setting smsReceiver = settingService.findOne("smsReceiverAfterRegister");
+        sendEmail("noticeManageAuditVendorMan", mailReceiver.getValue(), new ModelMap("adminName", appeal.getContactName()).addAttribute("enName", userspace.getBusinessCode()));
+        sendSms("SmsNoticeManageAuditVendorMan", smsReceiver.getValue(), new Object[]{appeal.getContactName()});
         return success();
     }
 

+ 45 - 20
sso-server/src/main/java/com/uas/sso/controller/BaseController.java

@@ -24,6 +24,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.Map;
 
 /**
  * controller基础类
@@ -180,28 +181,10 @@ public class BaseController {
         request.getSession().setAttribute("code", code);
 
         // 手机短信
-        try {
-            if (!StringUtils.isEmpty(mobile)) {
-                Setting smsTplId = settingService.findOne("templateForSendSmsAboutValidAllCode");
-                if (!StringUtils.isEmpty(smsTplId)) {
-                    smsService.send(smsTplId.getValue(), mobile, new Object[]{code});
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        sendSms("templateForSendSmsAboutValidAllCode", mobile, new Object[]{code});
 
         // 邮件
-        try {
-            if (!StringUtils.isEmpty(email)) {
-                Setting mailTplId = settingService.findOne("templateForSendEmailWhenRegister");
-                if (!StringUtils.isEmpty(mailTplId)) {
-                    mailService.send(mailTplId.getValue(), email, data);
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        sendEmail("templateForSendEmailWhenRegister", email, data);
 
         // 返回tokenId
         return token.getId();
@@ -293,6 +276,10 @@ public class BaseController {
         // 由于现在不考虑手机号所属区域,默认为中国大陆
         mobileArea = mobileArea == null ? Const.CONTINENT : mobileArea;
 
+        if (StringUtils.isEmpty(mobile)) {
+            throw new RuntimeException("手机号不能为空");
+        }
+
         // 校验手机号
         if (Const.CONTINENT.equals(mobileArea)) {
             if (!mobile.matches(Const.REGEXP_MOBILE_CONTINENT)) {
@@ -328,4 +315,42 @@ public class BaseController {
             throw new VisibleError("密钥错误");
         }
     }
+
+    /**
+     * 发送短信
+     * @param templateId 模板id
+     * @param mobile 手机号
+     * @param data 发送短信适配数据,按顺序添加
+     */
+    protected void sendSms(String templateId, String mobile, Object[] data) {
+        try {
+            if (!StringUtils.isEmpty(mobile)) {
+                Setting smsTplId = settingService.findOne(templateId);
+                if (!StringUtils.isEmpty(smsTplId)) {
+                    smsService.send(smsTplId.getValue(), mobile, data);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 发送邮件
+     * @param templateId 模板id
+     * @param email 邮箱
+     * @param data 发送邮件适配数据,以键值对的形式添加
+     */
+    protected void sendEmail(String templateId, String email, Map<String, Object> data) {
+        try {
+            if (!StringUtils.isEmpty(email)) {
+                Setting mailTplId = settingService.findOne(templateId);
+                if (!StringUtils.isEmpty(mailTplId)) {
+                    mailService.send(mailTplId.getValue(), email, data);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

+ 98 - 11
sso-server/src/main/java/com/uas/sso/controller/LoginController.java

@@ -3,6 +3,7 @@ package com.uas.sso.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.account.AccountConfig;
+import com.uas.account.entity.UserDetail;
 import com.uas.sso.*;
 import com.uas.sso.common.util.HttpUtil;
 import com.uas.sso.core.Const;
@@ -12,7 +13,6 @@ import com.uas.sso.service.*;
 import com.uas.sso.util.AccountTypeUtils;
 import com.uas.sso.util.BeanUtil;
 import com.uas.sso.util.CaptchaUtil;
-import com.uas.sso.util.encry.HmacUtils;
 import com.uas.sso.web.waf.request.WafRequestWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.ui.ModelMap;
@@ -158,12 +158,12 @@ public class LoginController extends BaseController {
                     // 不支持个人账号则跳转优软云
                     returnUrl = HOME_PAGE;
                 }
-                return loginByUser(userAccount, returnUrl, user.getUserRecord());
+                return loginByUser(userAccount, returnUrl, user.getUserRecord(), true);
             }
 
             // 应用允许个人账号,并且账号未绑定企业,或者只绑定了一个企业,直接登录
             if (userAccounts.size() == 1) {
-                return loginByUser(userAccounts.get(0), returnUrl, user.getUserRecord());
+                return loginByUser(userAccounts.get(0), returnUrl, user.getUserRecord(), true);
             }
 
             // 返回企业id和名称
@@ -171,11 +171,11 @@ public class LoginController extends BaseController {
         } else if (personalEnable && Long.valueOf(spaceUU).equals(Const.SPACEUU_PERSONAL)) {
             // 使用个人账号登录
             UserAccount userAccount = personalAccountService.findOneByUserUU(appId, user.getUserUU());
-            return loginByUser(userAccount, returnUrl, user.getUserRecord());
+            return loginByUser(userAccount, returnUrl, user.getUserRecord(), true);
         } else {
             // 带企业登录
             UserAccount userAccount = getUserAccountByUserName(controlApp.getUid(), username, spaceUU);
-            return loginByUser(userAccount, returnUrl, user.getUserRecord());
+            return loginByUser(userAccount, returnUrl, user.getUserRecord(), true);
         }
     }
 
@@ -250,11 +250,10 @@ public class LoginController extends BaseController {
      * @param appId 应用id
      * @param returnUrl 跳转页面
      * @param baseUrl 而外登录接口
-     * @param isLoginAll 是否登录默认应用
      * @return
      */
     @RequestMapping(value = "/proxy", method = RequestMethod.POST)
-    public ModelMap loginProxyByToken(String token, String appId, String returnUrl, String baseUrl, @RequestParam(defaultValue = "true") boolean isLoginAll) {
+    public ModelMap loginProxyByToken(String token, String appId, String returnUrl, String baseUrl) {
         Token tk = tokenService.findOne(token);
         if (null != tk) {
             JSONObject data = JSON.parseObject(JSON.toJSONString(tk.getBind()));
@@ -271,11 +270,97 @@ public class LoginController extends BaseController {
             }
 
             UserAccount userAccount = userAccountService.findOneByUserUU(app.getUid(), userUU, spaceUU);
-            return loginByUser(userAccount, returnUrl, null);
+            return loginByUser(userAccount, returnUrl, null, true);
         }
         return error("验证信息已过期");
     }
 
+    /**
+     * uu互联代理登录
+     * @param token tokenId
+     * @param appId 登录应用应用id
+     * @param spaceUU 企业uu号
+     * @param returnUrl 跳转页面
+     * @return
+     */
+    @RequestMapping(value = "/mobile/proxy", method = RequestMethod.POST)
+    public ModelMap loginProxyByToken(String token, String appId, Long spaceUU, String returnUrl) {
+        Token tk = tokenService.findOne(token);
+        App app = appService.findOne(appId);
+        String loginUrl = app.getLoginUrl();
+        request.getSession().setAttribute("baseUrl", loginUrl);
+        Long userUU = (Long) tk.getBind();
+
+        if (app != null) {
+            app = StringUtils.isEmpty(app.getUserControl()) ? app : appService.findOne(app.getUserControl());
+        }
+
+        if (app == null) {
+            app = appService.findOne(AccountConfig.ACCOUNT_CENTER);
+        }
+
+        UserAccount userAccount = userAccountService.findOneByUserUU(app.getUid(), userUU, spaceUU);
+        return loginByUser(userAccount, returnUrl, null, false);
+    }
+
+    /**
+     * uu互联更新token
+     * @param token tokenId
+     * @return 新token
+     */
+    @RequestMapping(value = "/updateToken", method = RequestMethod.GET)
+    public ModelMap updateToken(String token) {
+        Token oldToken = tokenService.findOne(token);
+        oldToken.setExpires_in(7*24*60*60);
+        tokenService.save(oldToken);
+        return success(token);
+    }
+
+
+    @RequestMapping(value = "/mobile", method = RequestMethod.POST)
+    public ModelMap getAllAccount(@RequestParam String mobile, String password) {
+        User user = userService.findByMobile(mobile);
+        List<ModelMap> allowedList = new ArrayList<ModelMap>();
+
+        if (user == null) {
+            return error("未找到用户信息");
+        }
+        // 校验密码
+        userService.checkPasswordByMobile(mobile, password, false);
+        Long userUU = user.getUserUU();
+        String userName = user.getVipName();
+        List<ModelMap> spaces = new ArrayList<ModelMap>();
+        Long imId = Long.valueOf(user.getImId());
+        App b2b = appService.findOne("b2b");
+        App uas = appService.findOne("uas");
+        for (Userspace userspace : user.getUserSpaces()) {
+            ModelMap space = new ModelMap();
+            space.put("enuu", userspace.getSpaceUU());
+            space.put("name", userspace.getSpaceName());
+            space.put("businessCode", userspace.getBusinessCode());
+            spaces.add(space);
+            if (!StringUtils.isEmpty(userspace.getWebsite())) {
+                ModelMap map = new ModelMap("platform", "ERP");
+                map.put("account", userspace.getSpaceUU());
+                map.put("master", "");
+                map.put("name", userspace.getSpaceName());
+                map.put("enuu", userspace.getSpaceUU());
+                map.put("masterId", "");
+                map.put("website", userspace.getWebsite()
+                        + (userspace.getWebsite() != null && !userspace.getWebsite().endsWith("/") ? "/" : ""));
+                map.put("imid", imId);
+                map.put("birthday", user.getBirthday());
+                map.put("sex", user.getSex());
+                map.put("businessCode", userspace.getBusinessCode());
+                allowedList.add(map);
+            }
+        }
+        Token token = new Token(new ModelMap("userUU", userUU), 7*24*60*60);
+        tokenService.save(token);
+        allowedList.add(new ModelMap("account", userUU).addAttribute("platform", "B2B").addAttribute("imid", imId).addAttribute("spaces", spaces).addAttribute("userName", userName));
+        return new ModelMap("token", token.getId()).addAttribute("datalist", allowedList);
+    }
+
     /**
      * 密码输错处理
      *
@@ -353,7 +438,7 @@ public class LoginController extends BaseController {
      * @param userRecord 用户登录记录,便于记录登录时间,不能直接new出来
      * @return
      */
-    private ModelMap loginByUser(UserAccount userAccount, String returnUrl, UserRecord userRecord) {
+    private ModelMap loginByUser(UserAccount userAccount, String returnUrl, UserRecord userRecord, boolean isLoginAll) {
         /*
          * 设置登录 Cookie 最后一个参数 true 时添加 cookie 同时销毁当前 JSESSIONID
          * 创建信任的 JSESSIONID
@@ -371,7 +456,7 @@ public class LoginController extends BaseController {
 
         // 设置返回值,通知各个应用用户已经登录
         ModelMap data = new ModelMap();
-        data = addOtherAppRequestData(userAccount, data, request.getSession().getAttribute("baseUrl"), true);
+        data = addOtherAppRequestData(userAccount, data, request.getSession().getAttribute("baseUrl"), isLoginAll);
         data.put("returnUrl", HttpUtil.decodeURL(returnUrl));
         return success(data);
     }
@@ -490,7 +575,9 @@ public class LoginController extends BaseController {
         App app = appService.findOne(appId);
         App defaultApp = appService.findOne("sso");
         PageStyle pageStyle = app == null ? defaultApp.getPageStyle() : app.getPageStyle();
-        BeanUtil.copyProperties(pageStyle, defaultApp.getPageStyle(), true);
+        if (pageStyle != null) {
+            BeanUtil.copyProperties(pageStyle, defaultApp.getPageStyle(), true);
+        }
         return success(defaultApp.getPageStyle());
     }
 

+ 30 - 16
sso-server/src/main/java/com/uas/sso/controller/PartnershipManagerController.java

@@ -176,24 +176,38 @@ public class PartnershipManagerController extends BaseController {
 	@RequestMapping("/addAll")
     public ModelMap addPartnership() {
         String url = "http://192.168.253.66:8080/api/partners";
-        try {
-            ModelMap data = new ModelMap("_operate", "getAllRequest");
-            data.put("pageNumber", 1);
-            data.put("pageSize", 20);
-            HttpUtil.ResponseWrap responseWrap = HttpUtil.doGet(url, data);
-            if (responseWrap.isSuccess()) {
-                com.uas.account.support.Page<PartnershipRecord> page = JSON.parseObject(responseWrap.getContent(), new TypeReference<com.uas.account.support.Page<PartnershipRecord>>() {});
-                List<PartnershipRecord> partnershipRecords = page.getContent();
-                for (int i = 0; i < partnershipRecords.size(); i++) {
-                    PartnershipRecord partnershipRecord = partnershipRecords.get(i);
-                    partnershipRecord.setVendSpaceUU(userSpaceService.findByBusinessCode(partnershipRecord.getVendBusinessCode()).getSpaceUU());
-                    partnershipRecord.setVendSpaceUU(userSpaceService.findByBusinessCode(partnershipRecord.getCustBusinessCode()).getSpaceUU());
-                    partnershipService.save(partnershipRecord);
+        int pageNumber = 1;
+        int pageSize = 1;
+        com.uas.account.support.Page<PartnershipRecord> page = null;
+        do {
+            try {
+                ModelMap data = new ModelMap("_operate", "getAllRequest");
+                data.put("pageNumber", pageNumber++);
+                data.put("pageSize", pageSize);
+                HttpUtil.ResponseWrap responseWrap = HttpUtil.doGet(url, data);
+                if (responseWrap.isSuccess()) {
+                    try {
+                    page = JSON.parseObject(responseWrap.getContent(), new TypeReference<com.uas.account.support.Page<PartnershipRecord>>() {
+                    });
+                    List<PartnershipRecord> partnershipRecords = page.getContent();
+                    for (int i = 0; i < partnershipRecords.size(); i++) {
+                        try {
+                            PartnershipRecord partnershipRecord = partnershipRecords.get(i);
+                            partnershipRecord.setVendSpaceUU(userSpaceService.findByBusinessCode(partnershipRecord.getVendBusinessCode()).getSpaceUU());
+                            partnershipRecord.setVendSpaceUU(userSpaceService.findByBusinessCode(partnershipRecord.getCustBusinessCode()).getSpaceUU());
+                            partnershipService.save(partnershipRecord);
+                        } catch (Exception e) {
+                            e.getStackTrace();
+                        }
+                    }
+                    } catch (Exception e) {
+                        e.getStackTrace();
+                    }
                 }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        } while (page == null || !page.isLast());
         return success();
     }
 }

+ 57 - 9
sso-server/src/main/java/com/uas/sso/controller/UserManagerController.java

@@ -9,28 +9,22 @@ import com.uas.account.util.AccountUtils;
 import com.uas.sso.common.util.HttpUtil;
 import com.uas.sso.core.Const;
 import com.uas.sso.core.Status;
-import com.uas.sso.entity.User;
-import com.uas.sso.entity.UserRecord;
-import com.uas.sso.entity.UserView;
-import com.uas.sso.entity.Userspace;
+import com.uas.sso.entity.*;
 import com.uas.sso.service.ApplyUserSpaceService;
 import com.uas.sso.service.UserService;
 import com.uas.sso.service.UserspaceService;
+import org.apache.commons.codec.binary.Base64;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
+import java.io.*;
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
-import static org.springframework.data.jpa.domain.AbstractPersistable_.id;
 
 /**
  * 用户信息管理controller
@@ -266,6 +260,60 @@ public class UserManagerController extends BaseController {
         return success();
     }
 
+    /**
+     * 众创商机导入注册
+     * @param user 用户信息(主要是用户名,手机号,邮箱和密码,密码base64加密)
+     * @return
+     */
+    @RequestMapping(value = "/sysUserdata/uuzc", method = RequestMethod.POST)
+    public ModelMap uuzcRegister(User user) {
+        // 校验手机号
+        checkMobile(user.getMobile(), null);
+
+        // 用户名不能为空
+        if (StringUtils.isEmpty(user.getVipName())) {
+            return error("用户名不能为空");
+        }
+
+        // 获取密码
+        try {
+            String pwd = new String(Base64.decodeBase64(user.getPassword().getBytes("utf-8")), "utf-8");
+            user.setPassword(pwd);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+
+        // 传来的值可能带有uu号,去除uu号
+        user.setUserUU(null);
+        user = userService.register(user);
+        return success(user.getUserUU());
+    }
+
+    @RequestMapping(value = "/getUserByToken", method = RequestMethod.GET)
+    public ModelMap findUserByToken(String token) {
+        Token existToken = tokenService.findOne(token);
+        if (existToken == null) {
+            return error("验证过期");
+        }
+
+        ModelMap data = (ModelMap) existToken.getBind();
+        User user = userService.findOne((Long) data.get("userUU"));
+        return success(user);
+    }
+
+    /**
+     * APP端
+     * @return
+     */
+    @RequestMapping("/getSpace")
+    public ModelMap getSpace(String mobile) {
+        User user = userService.findByMobile(mobile);
+        Set<Userspace> userSpaces = user.getUserSpaces();
+        ModelMap data = new ModelMap(user);
+        data.put("spaces", userSpaces);
+        return data;
+    }
+
     /**
      * 数据从旧账户中心同步
      * @return

+ 34 - 27
sso-server/src/main/java/com/uas/sso/controller/UserspaceManagerController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.uas.account.ResultWrap;
 import com.uas.account.entity.AppCreateInfo;
+import com.uas.account.entity.MasterInfo;
 import com.uas.account.entity.UserSpace;
 import com.uas.account.entity.UserSpaceDetail;
 import com.uas.account.support.Page;
@@ -326,33 +327,6 @@ public class UserspaceManagerController extends BaseController {
         return info;
     }
 
-    /**
-     * 根据用户的手机号查询企业信息和个人信息
-     *
-     * @param tel 手机号集合,逗号分隔
-     * @return keys:{listdata:数据}
-     */
-    @RequestMapping(value = "/userInfos", method = RequestMethod.GET)
-    public ModelMap getUserInfos(String tel) {
-        List<String> tels = Arrays.asList(tel.split(","));
-        return CollectionUtils.isEmpty(tels) ? new ModelMap("listdata", "请先输入电话号码")
-                : new ModelMap("listdata", userspaceService.findSpaceByTels(tels));
-    }
-
-    /**
-     * 通过企业名称查询企业相关信息
-     *
-     * @param keyword 企业名关键字
-     * @param pageNumber 企业名关键字
-     * @param pageSize 企业名关键字
-     * @return keys:{listdata:数据}
-     */
-    @RequestMapping(value = "/userSpaceDetail/keyword", method = RequestMethod.GET)
-    public ModelMap getUserSpaceDetailByKeyword(String keyword, @RequestParam(defaultValue = "1") Integer pageNumber, @RequestParam(defaultValue = "30") Integer pageSize) {
-        return StringUtils.isEmpty(keyword) ? new ModelMap("listdata", "请先输入企业名称")
-                : new ModelMap("listdata", userspaceService.findByKeyword(keyword, pageNumber, pageSize).getContent());
-    }
-
     /**
      * 同步旧企业数据到账户中心
      * @param spaceUU 企业uu号,为空则同步所有
@@ -416,6 +390,7 @@ public class UserspaceManagerController extends BaseController {
         if (userspace.getSpaceUU() == null) {
             throw new Exception("无uu号");
         }
+//        userspace.setWebsite(getWebsite());
 
         // 设置企业用户
         addUsersByBusinessCode(userspace);
@@ -621,4 +596,36 @@ public class UserspaceManagerController extends BaseController {
     public List<Userspace> findAll(String ids) {
         return userspaceService.findAll(ids);
     }
+
+    @RequestMapping("/getWebsite")
+    public String getWebsite() {
+        String url = "http://192.16.253.66:8080/api/userspace/getWebsite";
+        int pageNumber = 1;
+        int pageSize = 20;
+        com.uas.account.support.Page<MasterInfo> page = null;
+        try {
+            ModelMap data = new ModelMap();
+            data.put("pageNumber", pageNumber++);
+            data.put("pageSize", pageSize);
+            HttpUtil.ResponseWrap responseWrap = HttpUtil.doGet(url, data);
+            if (responseWrap.isSuccess()) {
+                try {
+                    page = JSON.parseObject(responseWrap.getContent(), new TypeReference<com.uas.account.support.Page<MasterInfo>>() {
+                    });
+                    for (MasterInfo masterInfo : page.getContent()) {
+                        Userspace userspace = userspaceService.findByBusinessCode(masterInfo.getBusinessCode());
+                        if (userspace != null && masterInfo.getWebsite() != null) {
+                            userspace.setWebsite(masterInfo.getWebsite());
+                            userspaceService.save(userspace);
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 }

+ 9 - 0
sso-server/src/main/java/com/uas/sso/dao/UserDao.java

@@ -1,6 +1,7 @@
 package com.uas.sso.dao;
 
 import com.uas.sso.entity.User;
+import com.uas.sso.entity.UserSpaceDetailInfo;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
@@ -97,4 +98,12 @@ public interface UserDao extends JpaRepository<User, Long>, JpaSpecificationExec
      * @return
      */
     List<User> findByEmail(String email);
+
+    /**
+     * uu互联接口,根据手机号查找信息
+     * @param tels
+     * @return
+     */
+    @Query("select new com.uas.sso.entity.UserSpaceDetailInfo('', '', u.vipName, u.mobile, u.imId, u.email) from User u where u.mobile in :tels")
+    List<UserSpaceDetailInfo> findUsersByTels(@Param("tels") List<String> tels);
 }

+ 14 - 0
sso-server/src/main/java/com/uas/sso/entity/App.java

@@ -58,6 +58,12 @@ public class App implements Serializable {
     @Column(name = "back_user_url")
     private String backUserUrl;
 
+    /**
+     * 用户企业绑定关系回调接口(用于应用同步)
+     */
+    @Column(name = "back_relation_url")
+    private String backRelationUrl;
+
     /**
      * 合作伙伴回调接口(用于应用同步)
      */
@@ -158,6 +164,14 @@ public class App implements Serializable {
         this.backUserUrl = backUserUrl;
     }
 
+    public String getBackRelationUrl() {
+        return backRelationUrl;
+    }
+
+    public void setBackRelationUrl(String backRelationUrl) {
+        this.backRelationUrl = backRelationUrl;
+    }
+
     public String getBackPartnerUrl() {
         return backPartnerUrl;
     }

+ 10 - 0
sso-server/src/main/java/com/uas/sso/entity/PageInfo.java

@@ -42,4 +42,14 @@ public class PageInfo<T> extends PageImpl<T> implements Page<T> {
     public static Pageable pageRequest(int pageNumber, int pageSize) {
         return new PageRequest(pageNumber - 1, pageSize);
     }
+
+    @Override
+    public boolean hasNext() {
+        return getNumber() < getTotalPages();
+    }
+
+    @Override
+    public boolean hasPrevious() {
+        return getNumber() > 1;
+    }
 }

+ 1 - 0
sso-server/src/main/java/com/uas/sso/entity/PartnershipRecord.java

@@ -1,6 +1,7 @@
 package com.uas.sso.entity;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import org.codehaus.jackson.annotate.JsonIgnore;
 
 import javax.persistence.*;
 import java.io.Serializable;

+ 31 - 14
sso-server/src/main/java/com/uas/sso/entity/User.java

@@ -69,12 +69,6 @@ public class User implements Serializable {
     @Column(name = "password_level", nullable = false)
     private int passwordLevel = 2;
 
-    /**
-     * 用户erp密码
-     */
-    @Column(name = "erp_password")
-    private String erpPassword;
-
     /**
      * 用户erp密码
      */
@@ -135,6 +129,18 @@ public class User implements Serializable {
     @Column(name = "last_name")
     private String lastName;
 
+    /**
+     * 性别
+     */
+    @Column(name = "sex")
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    @Column(name = "birthday")
+    private String birthday;
+
     /**
      * 微信号(微信扫码授权或微信客户端授权,不用出现在注册页面,预留)
      */
@@ -256,6 +262,8 @@ public class User implements Serializable {
         this.mobileValidCode = mobileValidCode;
     }
 
+    @JsonIgnore
+    @JSONField(deserialize = false)
     public String getPassword() {
         return password;
     }
@@ -272,14 +280,6 @@ public class User implements Serializable {
         this.passwordLevel = passwordLevel;
     }
 
-    public String getErpPassword() {
-        return erpPassword;
-    }
-
-    public void setErpPassword(String erpPassword) {
-        this.erpPassword = erpPassword;
-    }
-
     public String getSalt() {
         return salt;
     }
@@ -363,6 +363,22 @@ public class User implements Serializable {
         this.lastName = lastName;
     }
 
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    public String getBirthday() {
+        return birthday;
+    }
+
+    public void setBirthday(String birthday) {
+        this.birthday = birthday;
+    }
+
     public String getWxOpenid() {
         return wxOpenid;
     }
@@ -479,6 +495,7 @@ public class User implements Serializable {
         userView.setIdentityValidCode(this.getIdentityValidCode());
         userView.setLock(this.getLock());
         userView.setImId(this.getImId());
+        userView.setPassword(this.getPassword());
         return userView;
     }
 }

+ 15 - 10
sso-server/src/main/java/com/uas/sso/entity/Userspace.java

@@ -4,16 +4,7 @@ import com.alibaba.fastjson.annotation.JSONField;
 import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.List;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
+import javax.persistence.*;
 
 import com.uas.sso.core.Const;
 import org.codehaus.jackson.annotate.JsonIgnore;
@@ -227,6 +218,12 @@ public class Userspace implements Serializable {
     @Column(name = "access_secret")
     private String accessSecret;
 
+    /**
+     * 企业对应erp的地址
+     */
+    @Column(name = "website")
+    private String website;
+
     /**
      * 企业下的用户
      */
@@ -541,6 +538,14 @@ public class Userspace implements Serializable {
         this.accessSecret = accessSecret;
     }
 
+    public String getWebsite() {
+        return website;
+    }
+
+    public void setWebsite(String website) {
+        this.website = website;
+    }
+
     /**
      * 将企业信息变成视图
      * @return

+ 8 - 0
sso-server/src/main/java/com/uas/sso/service/UserService.java

@@ -3,6 +3,7 @@ package com.uas.sso.service;
 import com.uas.sso.entity.User;
 import com.uas.sso.entity.UserQuestion;
 import com.uas.sso.entity.UserRecord;
+import com.uas.sso.entity.UserSpaceDetailInfo;
 import org.springframework.data.domain.Page;
 
 import java.util.List;
@@ -230,4 +231,11 @@ public interface UserService {
      * @return
      */
     User updatePassword(Long userUU, String password);
+
+    /**
+     * uu互联接口,根据手机号查找信息
+     * @param tels 手机号(逗号分隔)
+     * @return
+     */
+    List<UserSpaceDetailInfo> findUserByTels(List<String> tels);
 }

+ 0 - 16
sso-server/src/main/java/com/uas/sso/service/UserspaceService.java

@@ -128,22 +128,6 @@ public interface UserspaceService {
      */
     void addUser(Userspace userspace, List<User> users);
 
-    /**
-     * uu互联接口,通过手机号查询随机一个企业信息和个人的相关信息
-     * @param tels 手机号集合
-     * @return UserSpaceDetailInfo
-     */
-    List<UserSpaceDetailInfo> findSpaceByTels(List<String> tels);
-
-    /**
-     * uu互联接口,通过企业名称查询企业相关信息
-     * @param keyword 关键词
-     * @param page 页号
-     * @param size 每页大小
-     * @return
-     */
-    Page<UserSpaceDetailInfo> findByKeyword(String keyword, int page, int size);
-
     /**
      * 保存企业信息
      * @param userspace 企业信息

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

@@ -25,7 +25,7 @@ public class PersonalAccountServiceImpl implements PersonalAccountService {
      * 视图sql
      */
     private static final String JPQL= "select new com.uas.sso.entity.UserAccount(user.userUU, user.vipName, user.mobile, user.mobileArea, " +
-            "user.mobileValidCode, user.password, user.erpPassword, user.salt, user.email, user.emailValidCode, " +
+            "user.mobileValidCode, user.password, user.salt, user.email, user.emailValidCode, " +
             "user.identityValidCode, user.lock, ur.lastLoginTime) from UserRecord ur, User user where user.userRecord.id = ur.id ";
 
     @Override

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

@@ -26,7 +26,7 @@ public class UserAccountServiceImpl implements UserAccountService {
      * 视图sql
      */
     private static final String JPQL= "select new com.uas.sso.entity.UserAccount(user.userUU, user.vipName, user.mobile, user.mobileArea, " +
-            "user.mobileValidCode, user.password, user.erpPassword, user.salt, user.email, user.emailValidCode, " +
+            "user.mobileValidCode, user.password, user.salt, user.email, user.emailValidCode, " +
             "user.identityValidCode, user.lock, us.spaceUU, us.spaceName, us.businessCode, " +
             "us.domain, app.uid, ur.lastLoginTime) from UserRecord ur, User user inner join user.userSpaces us inner join us.apps app where user.userRecord.id = ur.id ";
 

+ 68 - 1
sso-server/src/main/java/com/uas/sso/service/impl/UserServiceImpl.java

@@ -24,6 +24,7 @@ import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
@@ -148,7 +149,7 @@ public class UserServiceImpl implements UserService {
     public User save(User user) {
         user = userDao.save(user);
         /// 数据同步,先注释
-//        syncUserInfo(user.toView(), "修改用户信息");
+        syncUserInfo(user.toView(), "修改用户信息");
         return user;
     }
 
@@ -361,10 +362,68 @@ public class UserServiceImpl implements UserService {
         // 保存
         userDao.save(user);
 
+        syncUserBindSpace(userUU, spaceUU);
+
         // 保存日志
         userLog.info(user, Type.BIND_USERSPACE.getValue()+spaceUU);
     }
 
+    /**
+     * 同步用户绑定企业关系
+     * @param userUU 用户uu号
+     * @param spaceUU 企业uu号
+     */
+    private void syncUserBindSpace(Long userUU, Long spaceUU) {
+        syncRelation(userUU, spaceUU, "bind");
+    }
+
+    /**
+     * 同步用户解除绑定企业关系
+     * @param userUU 用户uu号
+     * @param spaceUU 企业uu号
+     */
+    private void syncUserUnbindSpace(Long userUU, Long spaceUU) {
+        syncRelation(userUU, spaceUU, "unbind");
+    }
+
+    /**
+     * 同步用户与企业的关系
+     * @param userUU 用户uu号
+     * @param spaceUU 企业uu号
+     * @param type 类型 (bind or unbind)
+     */
+    private void syncRelation(final Long userUU, final Long spaceUU, final String type) {
+        List<String> apps = appService.findUid();
+
+        ExecuteUtils.execute(new ICallable<Void, String>() {
+
+            @Override
+            public Void call(String appId) {
+                App tempApp = appService.findOne(appId);
+                if (tempApp != null && StringUtils.isEmpty(tempApp.getUserControl())
+                        && !StringUtils.isEmpty(tempApp.getBackRelationUrl())) {
+                    String url = tempApp.getBackRelationUrl();
+                    ModelMap formData = new ModelMap();
+                    formData.put("userUU", userUU);
+                    formData.put("spaceUU", spaceUU);
+                    formData.put("type", type);
+                    HttpUtil.ResponseWrap res = null;
+                    try {
+                        res = HttpUtil.doPost(url, formData, 30000);
+                        if (!res.isSuccess()) {
+                            syncLog.error(appId, "同步绑定信息失败", JSON.toJSONString(formData), res.getContent());
+                        } else {
+                            syncLog.info(appId, "同步绑定信息成功", JSON.toJSONString(formData));
+                        }
+                    } catch (Exception e) {
+                        syncLog.error(appId, "同步绑定信息失败", JSON.toJSONString(formData), e.getMessage());
+                    }
+                }
+                return null;
+            }
+        }, apps);
+    }
+
     @Override
     public void unbindUserspace(Long userUU, Long spaceUU) {
         // 找到用户和企业
@@ -378,6 +437,8 @@ public class UserServiceImpl implements UserService {
         // 保存
         userDao.save(user);
 
+        syncUserUnbindSpace(userUU, spaceUU);
+
         // 保存日志
         userLog.info(user, Type.UNBIND_USERSPACE.getValue()+spaceUU);
     }
@@ -429,6 +490,11 @@ public class UserServiceImpl implements UserService {
         return userDao.save(user);
     }
 
+    @Override
+    public List<UserSpaceDetailInfo> findUserByTels(List<String> tels) {
+        return userDao.findUsersByTels(tels);
+    }
+
     /**
      * 同步用户信息到各个应用
      * @param userUU 用户uu号
@@ -455,6 +521,7 @@ public class UserServiceImpl implements UserService {
                         && !StringUtils.isEmpty(tempApp.getBackUserUrl())) {
                     String url = tempApp.getBackUserUrl();
                     JSONObject formData = JSON.parseObject(JSON.toJSONString(userView));
+                    formData.put("password", userView.getPassword());
                     HttpUtil.ResponseWrap res = null;
                     try {
                         res = HttpUtil.doPost(url, formData, 30000);

+ 0 - 30
sso-server/src/main/java/com/uas/sso/service/impl/UserspaceServiceImpl.java

@@ -293,36 +293,6 @@ public class UserspaceServiceImpl implements UserspaceService {
         userspaceDao.save(userspace);
     }
 
-    @Override
-    public List<UserSpaceDetailInfo> findSpaceByTels(List<String> tels) {
-        List<UserSpaceDetailInfo> data = new ArrayList<>(tels.size());
-        UserSpaceDetailInfo info = new UserSpaceDetailInfo();
-        for (String tel : tels) {
-            User user = userService.findByMobile(tel);
-            info.setUsertel(user.getMobile());
-            if (user != null) {
-                info.setUsername(user.getVipName());
-                info.setImid(user.getImId());
-                info.setEmail(user.getEmail());
-                if (!CollectionUtils.isEmpty(user.getUserSpaces())) {
-                    Iterator<Userspace> iterator = user.getUserSpaces().iterator();
-                    Userspace userspace = iterator.next();
-                    info.setCompany(userspace.getSpaceName());
-                    info.setAddress(userspace.getRegAddress());
-                }
-            }
-            data.add(info);
-        }
-        return data;
-    }
-
-    @Override
-    public Page<UserSpaceDetailInfo> findByKeyword(String keyword, int pageNumber, int pageSize) {
-        Pageable pageable = PageInfo.pageRequest(pageNumber, pageSize);
-        Page<UserSpaceDetailInfo> page = userspaceDao.findInfoByPageInfo(keyword, pageable);
-        return new PageInfo<>(page.getContent(), pageable, page.getTotalElements());
-    }
-
     @Override
     public Userspace save(Userspace userspace) {
         return userspaceDao.save(userspace);

+ 62 - 0
sso-server/src/main/java/com/uas/sso/uu/controller/UserSpaceInfoController.java

@@ -0,0 +1,62 @@
+package com.uas.sso.uu.controller;
+
+import com.uas.sso.controller.BaseController;
+import com.uas.sso.service.UserService;
+import com.uas.sso.service.UserspaceService;
+import com.uas.sso.uu.service.UserSpaceInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author wangmh
+ * @create 2018-03-19 9:05
+ * @desc uu互联接口,用户集接口
+ **/
+@RestController
+public class UserSpaceInfoController extends BaseController {
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private UserspaceService userspaceService;
+
+    @Autowired
+    private UserSpaceInfoService userSpaceInfoService;
+
+    /**
+     * 根据手机号查询用户信息
+     * @param tel 手机号
+     * @return
+     */
+    @RequestMapping(value = "/api/userspace/userInfos", method = RequestMethod.GET)
+    public ModelMap getUserInfos (String tel) {
+        List<String> tels = Arrays.asList(tel.split(","));
+        return CollectionUtils.isEmpty(tels) ? new ModelMap("listdata", "请先输入电话号码")
+                : new ModelMap("listdata", userService.findUserByTels(tels));
+    }
+
+
+    /**
+     * 通过企业名称查询企业相关信息
+     *
+     * @param keyword 企业名关键字
+     * @param pageNumber 企业名关键字
+     * @param pageSize 企业名关键字
+     * @return keys:{listdata:数据}
+     */
+    @RequestMapping(value = "/api/userspace/userSpaceDetail/keyword", method = RequestMethod.GET)
+    public ModelMap getUserSpaceDetailByKeyword(String keyword, @RequestParam(defaultValue = "1") Integer pageNumber, @RequestParam(defaultValue = "30") Integer pageSize) {
+        return StringUtils.isEmpty(keyword) ? new ModelMap("listdata", "请先输入企业名称")
+                : new ModelMap("listdata", userSpaceInfoService.findByKeyword(keyword, pageNumber, pageSize).getContent());
+    }
+}

+ 30 - 0
sso-server/src/main/java/com/uas/sso/uu/service/UserSpaceInfoService.java

@@ -0,0 +1,30 @@
+package com.uas.sso.uu.service;
+
+import com.uas.sso.entity.UserSpaceDetailInfo;
+import org.springframework.data.domain.Page;
+
+import java.util.List;
+
+/**
+ * @author wangmh
+ * @create 2018-03-19 9:26
+ * @desc uu互联接口,获取用户信息
+ **/
+public interface UserSpaceInfoService {
+
+    /**
+     * uu互联接口,通过企业名称查询企业相关信息
+     * @param keyword 关键词
+     * @param page 页号
+     * @param size 每页大小
+     * @return
+     */
+    Page<UserSpaceDetailInfo> findByKeyword(String keyword, int page, int size);
+
+    /**
+     * uu互联接口,通过手机号查询随机一个企业信息和个人的相关信息
+     * @param tels 手机号集合
+     * @return UserSpaceDetailInfo
+     */
+    List<UserSpaceDetailInfo> findSpaceByTels(List<String> tels);
+}

+ 64 - 0
sso-server/src/main/java/com/uas/sso/uu/service/impl/UserSpaceInfoServiceImpl.java

@@ -0,0 +1,64 @@
+package com.uas.sso.uu.service.impl;
+
+import com.uas.sso.dao.UserspaceDao;
+import com.uas.sso.entity.PageInfo;
+import com.uas.sso.entity.User;
+import com.uas.sso.entity.UserSpaceDetailInfo;
+import com.uas.sso.entity.Userspace;
+import com.uas.sso.service.UserService;
+import com.uas.sso.uu.service.UserSpaceInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author wangmh
+ * @create 2018-03-19 9:29
+ * @desc
+ **/
+@Service
+public class UserSpaceInfoServiceImpl implements UserSpaceInfoService {
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private UserspaceDao userspaceDao;
+
+    @Override
+    public List<UserSpaceDetailInfo> findSpaceByTels(List<String> tels) {
+        List<UserSpaceDetailInfo> data = new ArrayList<>(tels.size());
+        for (String tel : tels) {
+            UserSpaceDetailInfo info = new UserSpaceDetailInfo();
+            User user = userService.findByMobile(tel);
+            info.setUsertel(user.getMobile());
+            if (user != null) {
+                info.setUsername(user.getVipName());
+                info.setImid(user.getImId());
+                info.setEmail(user.getEmail());
+                if (!CollectionUtils.isEmpty(user.getUserSpaces())) {
+                    Iterator<Userspace> iterator = user.getUserSpaces().iterator();
+                    Userspace userspace = iterator.next();
+                    info.setCompany(userspace.getSpaceName());
+                    info.setAddress(userspace.getRegAddress());
+                }
+            }
+            data.add(info);
+        }
+        return data;
+    }
+
+    @Override
+    public Page<UserSpaceDetailInfo> findByKeyword(String keyword, int pageNumber, int pageSize) {
+        Pageable pageable = PageInfo.pageRequest(pageNumber, pageSize);
+        Page<UserSpaceDetailInfo> page = userspaceDao.findInfoByPageInfo(keyword, pageable);
+        return new PageInfo<>(page.getContent(), pageable, page.getTotalElements());
+    }
+
+}

+ 24 - 0
sso-server/src/main/resources/config/application-prod.properties

@@ -0,0 +1,24 @@
+datasource.url=jdbc:mysql://10.10.100.18:3306/sso?characterEncoding=utf-8
+datasource.username=root
+datasource.password=select111***
+datasource.driverClassName=com.mysql.jdbc.Driver
+datasource.initialSize=1
+datasource.minIdle=1
+datasource.maxActive=20
+datasource.maxWait=60000
+datasource.timeBetweenEvictionRunsMillis=60000
+datasource.minEvictableIdleTimeMillis=300000
+datasource.validationQuery=SELECT 1 FROM DUAL
+datasource.testWhileIdle=true
+datasource.testOnBorrow=true
+datasource.testOnReturn=false
+datasource.poolPreparedStatements=true
+datasource.timeBetweenLogStatsMillis=60000
+datasource.maxPoolPreparedStatementPerConnectionSize=20
+datasource.filters=stat,slf4j
+datasource.connectionProperties=druid.stat.mergeSql=false;druid.stat.slowSqlMillis=5000
+
+spring.redis.host=10.10.100.200
+spring.redis.port=6379
+
+zk.url=zookeeper://10.10.100.11:2181

+ 2 - 2
sso-server/src/main/resources/dev/account.properties

@@ -2,7 +2,7 @@
 sso.app=sso
 # token secretkey
 sso.secretkey=0taQcW073Z7G628g5H
-#sso.cookie.domain=ubtob.com
+sso.cookie.domain=ubtob.com
 sso.cookie.secure=false
 sso.login.url=http://192.168.253.12:32323/
 #sso.proxy.uri=http://192.168.253.118:3001/
@@ -12,4 +12,4 @@ sso.authcookie.secretkey=Z318866alN6gA0piuO
 sso.center.public_key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL2g7CEfuPZtEDy7Iz5AL6iwbHZewWGUBYUWxKnFAwAW4lY8mMavn5Ke5mB25eKj5bvUsB48r8gWTvJNsKRGEw8CAwEAAQ==
 sso.center.private_key=MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvaDsIR+49m0QPLsjPkAvqLBsdl7BYZQFhRbEqcUDABbiVjyYxq+fkp7mYHbl4qPlu9SwHjyvyBZO8k2wpEYTDwIDAQABAj9Ts7SG6nm6TGneZLwpvitLSpSVqz2w1KWbGXG1fkDUyIJbNbyLmFTNAlfAgM4eC3EzVHVC3FrC+5sl4Fwn2PECIQDn9zz0xFmSQt8csMhu7jyh4UNDA3P11C9AkzaLykYNtwIhANFGtu9TJH2wZNfSA0qBNCgcyJJHXx59VTtih0R+6SVpAiEAmknpwoiDZ3SRQF0ZxCc0LxxNB9rZG475qwMACfUNqXsCIQCWLpAjSWA7jrWfp8fS1MvQKW/KgcuB/uGGf1uhTQ4VWQIhAJ6xJuj+eJAV2gsRDDjNSkD+Jm4qNaZ5ec/XnM7w2YcZ
 
-account.user.save.url=http://192.168.253.66:8080/api/user
+account.user.save.url=http://192.168.253.66:8080/api/user

+ 1 - 3
sso-server/src/main/resources/prod/account.properties

@@ -2,7 +2,7 @@
 sso.app=sso
 # token secretkey
 sso.secretkey=0taQcW073Z7G628g5H
-#sso.cookie.domain=ubtob.com
+sso.cookie.domain=ubtob.com
 sso.cookie.secure=false
 sso.login.url=http://192.168.253.118:3001/
 sso.proxy.uri=http://192.168.253.118:3001/
@@ -11,5 +11,3 @@ sso.proxy.uri=http://192.168.253.118:3001/
 sso.authcookie.secretkey=Z318866alN6gA0piuO
 sso.center.public_key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL2g7CEfuPZtEDy7Iz5AL6iwbHZewWGUBYUWxKnFAwAW4lY8mMavn5Ke5mB25eKj5bvUsB48r8gWTvJNsKRGEw8CAwEAAQ==
 sso.center.private_key=MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvaDsIR+49m0QPLsjPkAvqLBsdl7BYZQFhRbEqcUDABbiVjyYxq+fkp7mYHbl4qPlu9SwHjyvyBZO8k2wpEYTDwIDAQABAj9Ts7SG6nm6TGneZLwpvitLSpSVqz2w1KWbGXG1fkDUyIJbNbyLmFTNAlfAgM4eC3EzVHVC3FrC+5sl4Fwn2PECIQDn9zz0xFmSQt8csMhu7jyh4UNDA3P11C9AkzaLykYNtwIhANFGtu9TJH2wZNfSA0qBNCgcyJJHXx59VTtih0R+6SVpAiEAmknpwoiDZ3SRQF0ZxCc0LxxNB9rZG475qwMACfUNqXsCIQCWLpAjSWA7jrWfp8fS1MvQKW/KgcuB/uGGf1uhTQ4VWQIhAJ6xJuj+eJAV2gsRDDjNSkD+Jm4qNaZ5ec/XnM7w2YcZ
-
-account.user.save.url=http://192.168.253.66:8080/api/user

+ 2 - 2
sso-server/src/main/resources/test/account.properties

@@ -2,7 +2,7 @@
 sso.app=sso
 # token secretkey
 sso.secretkey=0taQcW073Z7G628g5H
-#sso.cookie.domain=ubtob.com
+sso.cookie.domain=ubtob.com
 sso.cookie.secure=false
 sso.login.url=http://192.168.253.118:3001/
 sso.proxy.uri=http://192.168.253.118:3001/
@@ -12,4 +12,4 @@ sso.authcookie.secretkey=Z318866alN6gA0piuO
 sso.center.public_key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL2g7CEfuPZtEDy7Iz5AL6iwbHZewWGUBYUWxKnFAwAW4lY8mMavn5Ke5mB25eKj5bvUsB48r8gWTvJNsKRGEw8CAwEAAQ==
 sso.center.private_key=MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvaDsIR+49m0QPLsjPkAvqLBsdl7BYZQFhRbEqcUDABbiVjyYxq+fkp7mYHbl4qPlu9SwHjyvyBZO8k2wpEYTDwIDAQABAj9Ts7SG6nm6TGneZLwpvitLSpSVqz2w1KWbGXG1fkDUyIJbNbyLmFTNAlfAgM4eC3EzVHVC3FrC+5sl4Fwn2PECIQDn9zz0xFmSQt8csMhu7jyh4UNDA3P11C9AkzaLykYNtwIhANFGtu9TJH2wZNfSA0qBNCgcyJJHXx59VTtih0R+6SVpAiEAmknpwoiDZ3SRQF0ZxCc0LxxNB9rZG475qwMACfUNqXsCIQCWLpAjSWA7jrWfp8fS1MvQKW/KgcuB/uGGf1uhTQ4VWQIhAJ6xJuj+eJAV2gsRDDjNSkD+Jm4qNaZ5ec/XnM7w2YcZ
 
-account.user.save.url=http://192.168.253.66:8080/api/user
+account.user.save.url=http://192.168.253.66:8080/api/user