wangmh 7 жил өмнө
parent
commit
aa9b5a721e

+ 155 - 0
sso-common/src/main/java/com/uas/sso/entity/UserSpaceView.java

@@ -0,0 +1,155 @@
+package com.uas.sso.entity;
+
+import java.util.Date;
+
+/**
+ * @author wangmh
+ * @create 2018-01-24 14:34
+ * @desc 企业视图
+ **/
+public class UserSpaceView {
+
+
+    /**
+     * 企业uu号
+     */
+    private Long spaceUU;
+
+    /**
+     * 企业名称
+     */
+    private String spaceName;
+
+    /**
+     * 法定代表人
+     */
+    private String corporation;
+
+    /**
+     * 注册日期
+     */
+    private Date registerDate;
+
+    /**
+     * 管理员
+     */
+    private UserView admin;
+
+    /**
+     * 营业执照号
+     */
+    private String businessCode;
+
+    /**
+     * 营业执照
+     */
+    private String businessCodeImage;
+
+    /**
+     * 注册地址
+     */
+    private String regAddress;
+
+    /**
+     * 企业信息认证状态
+     */
+    private Short validCode;
+
+    /**
+     * logo图片
+     */
+    private String logoImage;
+
+    /**
+     * 企业联系电话
+     */
+    private String telephone;
+
+    public Long getSpaceUU() {
+        return spaceUU;
+    }
+
+    public void setSpaceUU(Long spaceUU) {
+        this.spaceUU = spaceUU;
+    }
+
+    public String getSpaceName() {
+        return spaceName;
+    }
+
+    public void setSpaceName(String spaceName) {
+        this.spaceName = spaceName;
+    }
+
+    public String getCorporation() {
+        return corporation;
+    }
+
+    public void setCorporation(String corporation) {
+        this.corporation = corporation;
+    }
+
+    public Date getRegisterDate() {
+        return registerDate;
+    }
+
+    public void setRegisterDate(Date registerDate) {
+        this.registerDate = registerDate;
+    }
+
+    public UserView getAdmin() {
+        return admin;
+    }
+
+    public void setAdmin(UserView admin) {
+        this.admin = admin;
+    }
+
+    public String getBusinessCode() {
+        return businessCode;
+    }
+
+    public void setBusinessCode(String businessCode) {
+        this.businessCode = businessCode;
+    }
+
+    public String getBusinessCodeImage() {
+        return businessCodeImage;
+    }
+
+    public void setBusinessCodeImage(String businessCodeImage) {
+        this.businessCodeImage = businessCodeImage;
+    }
+
+    public String getRegAddress() {
+        return regAddress;
+    }
+
+    public void setRegAddress(String regAddress) {
+        this.regAddress = regAddress;
+    }
+
+    public Short getValidCode() {
+        return validCode;
+    }
+
+    public void setValidCode(Short validCode) {
+        this.validCode = validCode;
+    }
+
+    public String getLogoImage() {
+        return logoImage;
+    }
+
+    public void setLogoImage(String logoImage) {
+        this.logoImage = logoImage;
+    }
+
+    public String getTelephone() {
+        return telephone;
+    }
+
+    public void setTelephone(String telephone) {
+        this.telephone = telephone;
+    }
+}

+ 0 - 1
sso-common/src/main/java/com/uas/sso/entity/UserView.java

@@ -9,7 +9,6 @@ import java.util.Date;
  **/
 public class UserView {
 
-
     /**
      * uu号
      */

+ 20 - 0
sso-server/src/main/java/com/uas/sso/entity/Userspace.java

@@ -433,4 +433,24 @@ public class Userspace implements Serializable {
     public void setApps(List<App> apps) {
         this.apps = apps;
     }
+
+    /**
+     * 将企业信息变成视图
+     * @return
+     */
+    public UserSpaceView toView() {
+        UserSpaceView userSpaceView = new UserSpaceView();
+        userSpaceView.setSpaceUU(this.getSpaceUU());
+        userSpaceView.setSpaceName(this.getSpaceName());
+        userSpaceView.setCorporation(this.getCorporation());
+        userSpaceView.setRegisterDate(this.getRegisterDate());
+        userSpaceView.setAdmin(this.getAdmin().toView());
+        userSpaceView.setBusinessCode(this.getBusinessCode());
+        userSpaceView.setBusinessCodeImage(this.getBusinessCodeImage());
+        userSpaceView.setRegAddress(this.getRegAddress());
+        userSpaceView.setValidCode(this.getValidCode());
+        userSpaceView.setLogoImage(this.getLogoImage());
+        userSpaceView.setTelephone(this.getTelephone());
+        return userSpaceView;
+    }
 }

+ 2 - 1
sso-server/src/main/java/com/uas/sso/service/UserspaceService.java

@@ -16,8 +16,9 @@ public interface UserspaceService {
      * 企业注册
      * @param userspace 企业信息
      * @param admin 管理员信息
+     * @return 注册后的企业信息
      */
-    void register(Userspace userspace, User admin);
+    Userspace register(Userspace userspace, User admin);
 
     /**
      * 校验企业名称

+ 12 - 10
sso-server/src/main/java/com/uas/sso/service/impl/UserServiceImpl.java

@@ -121,7 +121,7 @@ public class UserServiceImpl implements UserService {
         userLog.info(user, Type.UPDATE_REGISTER.getValue());
 
         // 同步到各个应用
-        syncUserInfo(user.getUserUU());
+        syncUserInfo(user.getUserUU(), "个人注册");
         return user;
     }
 
@@ -145,7 +145,7 @@ public class UserServiceImpl implements UserService {
     @Override
     public User save(User user) {
         user = userDao.save(user);
-        syncUserInfo(user.toView());
+        syncUserInfo(user.toView(), "修改用户信息");
         return user;
     }
 
@@ -304,7 +304,7 @@ public class UserServiceImpl implements UserService {
         userLog.info(user, Type.UPDATE_MOBILE.getValue());
 
         // 同步到各个应用
-        syncUserInfo(user.getUserUU());
+        syncUserInfo(user.getUserUU(), "个人注册");
     }
 
     @Override
@@ -326,7 +326,7 @@ public class UserServiceImpl implements UserService {
         userLog.info(user, Type.UPDATE_EMAIL.getValue());
 
         // 同步信息到各应用
-        syncUserInfo(user.getUserUU());
+        syncUserInfo(user.getUserUU(), "个人注册");
     }
 
     @Override
@@ -362,16 +362,18 @@ public class UserServiceImpl implements UserService {
     /**
      * 同步用户信息到各个应用
      * @param userUU 用户uu号
+     * @param msg 同步信息描述,用户区分同步类型
      */
-    private void syncUserInfo(Long userUU) {
-        syncUserInfo(findOneView(userUU));
+    private void syncUserInfo(Long userUU, String msg) {
+        syncUserInfo(findOneView(userUU), msg);
     }
 
     /**
      * 同步用户信息到各个应用
      * @param userView 用户信息视图
+     * @param msg 同步信息描述,用户区分同步类型
      */
-    private void syncUserInfo(UserView userView) {
+    private void syncUserInfo(final UserView userView, final String msg) {
         List<String> apps = appService.findUid();
 
         ExecuteUtils.execute(new ICallable<Void, String>() {
@@ -387,12 +389,12 @@ public class UserServiceImpl implements UserService {
                     try {
                         res = HttpUtil.doPost(url, formData, 30000);
                         if (!res.isSuccess()) {
-                            syncLog.error(appId, "同步用户信息成功", JSON.toJSONString(userView), res.getContent());
+                            syncLog.error(appId, msg + ",同步用户信息成功", JSON.toJSONString(userView), res.getContent());
                         } else {
-                            syncLog.info(appId, "同步用户信息成功", JSON.toJSONString(userView));
+                            syncLog.info(appId, msg + ",同步用户信息成功", JSON.toJSONString(userView));
                         }
                     } catch (Exception e) {
-                        syncLog.error(appId, "同步用户信息失败", JSON.toJSONString(userView), e.getMessage());
+                        syncLog.error(appId, msg + ",同步用户信息失败", JSON.toJSONString(userView), e.getMessage());
                     }
                 }
                 return null;

+ 47 - 3
sso-server/src/main/java/com/uas/sso/service/impl/UserspaceServiceImpl.java

@@ -1,15 +1,24 @@
 package com.uas.sso.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.uas.sso.common.util.HttpUtil;
+import com.uas.sso.core.ICallable;
 import com.uas.sso.core.Status;
 import com.uas.sso.dao.UserspaceDao;
+import com.uas.sso.entity.App;
 import com.uas.sso.entity.User;
+import com.uas.sso.entity.UserSpaceView;
 import com.uas.sso.entity.Userspace;
 import com.uas.sso.exception.VisibleError;
+import com.uas.sso.logging.LoggerManager;
+import com.uas.sso.logging.SyncBufferedLogger;
+import com.uas.sso.service.AppService;
 import com.uas.sso.service.UserService;
 import com.uas.sso.service.UserspaceService;
 import com.uas.sso.service.UserspaceValidService;
-import com.uas.sso.util.BeanUtil;
 import com.uas.sso.util.ChineseUtils;
+import com.uas.sso.util.ExecuteUtils;
 import com.uas.sso.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -33,16 +42,21 @@ public class UserspaceServiceImpl implements UserspaceService {
     @Autowired
     private UserService userService;
 
+    @Autowired
+    private AppService appService;
+
     @Autowired
     private UserspaceValidService userspaceValidService;
 
+    SyncBufferedLogger syncLog = LoggerManager.getLogger(SyncBufferedLogger.class);
+
     /**
      * 企业初始uu号
      */
     public static final Long SPACE_INIT_UU = 10000000L;
 
     @Override
-    public void register(Userspace userspace, User admin) {
+    public Userspace register(Userspace userspace, User admin) {
         // 校验企业名是否重复
         checkSpaceName(userspace.getSpaceName());
 
@@ -76,9 +90,39 @@ public class UserspaceServiceImpl implements UserspaceService {
         userspace.setValidCode((short) Status.TO_BE_CERTIFIED.getCode());
 
         // 注册企业
-        userspaceDao.save(userspace);
+        userspace = userspaceDao.save(userspace);
 
         // TODO 开通应用
+        syncUserSpaceInfo(userspace.toView(), "企业注册");
+        return userspace;
+    }
+
+    private void syncUserSpaceInfo(final UserSpaceView userSpaceView, final String msg) {
+        List<String> apps = appService.findUid();
+
+        ExecuteUtils.execute(new ICallable<Void, String>() {
+            @Override
+            public Void call(String appId) throws Exception {
+                App tempApp = appService.findOne(appId);
+                if (tempApp != null && StringUtils.isEmpty(tempApp.getUserControl())
+                        && !StringUtils.isEmpty(tempApp.getBackSpaceUrl())) {
+                    String url = tempApp.getBackUserUrl();
+                    JSONObject formData = JSON.parseObject(JSON.toJSONString(userSpaceView));
+                    HttpUtil.ResponseWrap res = null;
+                    try {
+                        res = HttpUtil.doPost(url, formData, 30000);
+                        if (!res.isSuccess()) {
+                            syncLog.error(appId, msg + ",同步企业信息成功", JSON.toJSONString(userSpaceView), res.getContent());
+                        } else {
+                            syncLog.info(appId, msg + ",同步企业信息成功", JSON.toJSONString(userSpaceView));
+                        }
+                    } catch (Exception e) {
+                        syncLog.error(appId, msg + ",同步企业信息失败", JSON.toJSONString(userSpaceView), e.getMessage());
+                    }
+                }
+                return null;
+            }
+        }, apps);
     }
 
     /**