|
|
@@ -1,13 +1,24 @@
|
|
|
package com.uas.sso.controller;
|
|
|
|
|
|
+import com.uas.account.entity.UserDetail;
|
|
|
+import com.uas.account.support.Page;
|
|
|
+import com.uas.account.util.AccountUtils;
|
|
|
+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.Userspace;
|
|
|
import com.uas.sso.service.ApplyUserSpaceService;
|
|
|
import com.uas.sso.service.UserService;
|
|
|
+import com.uas.sso.service.UserspaceService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
-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 org.springframework.util.StringUtils;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import java.sql.Timestamp;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
/**
|
|
|
* 用户信息管理controller
|
|
|
@@ -22,6 +33,9 @@ public class UserManagerController extends BaseController {
|
|
|
@Autowired
|
|
|
private UserService userService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UserspaceService userspaceService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ApplyUserSpaceService applyUserSpaceService;
|
|
|
|
|
|
@@ -114,4 +128,99 @@ public class UserManagerController extends BaseController {
|
|
|
public ModelMap findApplyInfo(Long userUU, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "20") int size) {
|
|
|
return success(applyUserSpaceService.findApplyByUserUU(userUU, page, size));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户解除绑定企业
|
|
|
+ * @param userUU 企业uu号
|
|
|
+ * @param spaceUU 企业uu号
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(params = "_operate=unbind", method = RequestMethod.POST)
|
|
|
+ public ModelMap unbindUserSpace(Long userUU, Long spaceUU) {
|
|
|
+ if (StringUtils.isEmpty(userUU) || StringUtils.isEmpty(spaceUU)) {
|
|
|
+ return error("参数错误");
|
|
|
+ }
|
|
|
+ userService.unbindUserspace(userUU, spaceUU);
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 接口调用验证密码登录
|
|
|
+ *
|
|
|
+ * <pre>
|
|
|
+ * 这个比较特殊,指定应用可能密码为空,需要借用其他应用的密码来校验
|
|
|
+ * </pre>
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(params = "_operate=fuzzyCheck")
|
|
|
+ public ModelMap apiFuzzyLogin(User user) {
|
|
|
+ if (null == user || null == user.getPassword()) {
|
|
|
+ return error("参数错误");
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(user.getMobile())) {
|
|
|
+ User userInfo = userService.findByMobile(user.getMobile());
|
|
|
+ if (userInfo == null) {
|
|
|
+ return error("未找到用户");
|
|
|
+ }
|
|
|
+ // 允许应用在调用该接口前,已经将用户输入的明文加密为密文
|
|
|
+ String encryPwd = user.getPassword().length() >= 32 ? user.getPassword() : userService.getEncryPassword(
|
|
|
+ Const.ENCRY_FORMAT, user.getPassword(), userInfo.getSalt());
|
|
|
+ if (encryPwd.equals(userInfo.getPassword())) {
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+ return error("密码错误");
|
|
|
+ }
|
|
|
+ return error("请填写手机号");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 数据从旧账户中心同步
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/sync", method = RequestMethod.GET)
|
|
|
+ public ModelMap sync() {
|
|
|
+ try {
|
|
|
+ Page<UserDetail> pUsers = AccountUtils.findAllUserDetail(null, null, 1, 20);
|
|
|
+ for (UserDetail detail : pUsers.getContent()) {
|
|
|
+ User user = new User();
|
|
|
+ UserRecord userRecord = new UserRecord();
|
|
|
+ user.setMobile(detail.getMobile().trim());
|
|
|
+ user.setMobileValidCode((short) Status.AUTHENTICATED.getCode());
|
|
|
+ user.setEmail(detail.getEmail().trim());
|
|
|
+
|
|
|
+ user.setRegisterDate(new Timestamp(System.currentTimeMillis()));
|
|
|
+ user.setVipName(detail.getName());
|
|
|
+ user.setUserRecord(userRecord);
|
|
|
+ userRecord.setLastLoginTime(new Timestamp(detail.getLastLoginTime()));
|
|
|
+ userRecord.setUser(user);
|
|
|
+ List<com.uas.account.entity.User> userInfos = AccountUtils.getUserInfoByUid(detail.getMobile());
|
|
|
+ boolean updateB2b = false;
|
|
|
+ for (com.uas.account.entity.User userInfo : userInfos) {
|
|
|
+ // 设置密码、盐值、uu号
|
|
|
+ if (userInfo.getAppId().equals("b2b")) {
|
|
|
+ if (updateB2b) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(userInfo.getDialectUID()) && !StringUtils.isEmpty(userInfo.getSalt()) && !StringUtils.isEmpty(userInfo.getPassword())) {
|
|
|
+ user.setUserUU(Long.parseLong(userInfo.getDialectUID()));
|
|
|
+ user.setPassword(userInfo.getPassword());
|
|
|
+ user.setSalt(userInfo.getSalt());
|
|
|
+ updateB2b = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 设置imId
|
|
|
+ if (StringUtils.isEmpty(user.getImId()) && userInfo.getAppId().equals("im")) {
|
|
|
+ user.setImId(userInfo.getDialectUID());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ userService.save(user);
|
|
|
+
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|