فهرست منبع

部分对其他应用接口

wangmh 7 سال پیش
والد
کامیت
5c092f3e6b

+ 272 - 1
sso-common/src/main/java/com/uas/sso/util/AccountUtils.java

@@ -2,18 +2,25 @@ package com.uas.sso.util;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 import com.uas.sso.AccountConfig;
 import com.uas.sso.ResultWrap;
 import com.uas.sso.common.util.HttpUtil;
+import com.uas.sso.entity.ApplyUserSpaceView;
 import com.uas.sso.entity.UserSpaceView;
 import com.uas.sso.entity.UserView;
+import org.springframework.data.domain.Page;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 /**
  * 客户端使用,操作企业资料、用户资料
  *
- * @author yingp
+ * @author wangmh
  *
  */
 public class AccountUtils {
@@ -78,6 +85,31 @@ public class AccountUtils {
      * @throws Exception
      */
     public static void unbindUserSpace(Long userUU, Long spaceUU) throws Exception {
+        String saveUrl = AccountConfig.getUserSaveUrl();
+        if (!StringUtils.isEmpty(saveUrl)) {
+            ModelMap formData = new ModelMap();
+            formData.put("_operate", "bind");
+            formData.put("userUU", userUU);
+            formData.put("spaceUU", spaceUU);
+            HttpUtil.ResponseWrap res = HttpUtil.doPost(saveUrl, formData);
+            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());
+                }
+            }
+        }
+    }
+
+    /**
+     * 用户绑定企业
+     * @param userUU 用户uu号
+     * @param spaceUU 企业uu号
+     * @throws Exception
+     */
+    public static void bindUserSpace(Long userUU, Long spaceUU) throws Exception {
         String saveUrl = AccountConfig.getUserSaveUrl();
         if (!StringUtils.isEmpty(saveUrl)) {
             ModelMap formData = new ModelMap();
@@ -95,6 +127,245 @@ public class AccountUtils {
             }
         }
     }
+
+    /**
+     * 根据营业执照号获得企业信息
+     * @param businessCode 营业执照号
+     * @return
+     */
+    public List<UserSpaceView> findByBusinessCode(String businessCode) throws Exception {
+        String saveUrl = AccountConfig.getSpaceSaveUrl();
+        if (!StringUtils.isEmpty(saveUrl)) {
+            ModelMap formData = new ModelMap();
+            saveUrl = saveUrl + "/info/businessCode";
+            formData.put("businessCode", businessCode);
+            HttpUtil.ResponseWrap res = HttpUtil.doPost(saveUrl, formData);
+            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.parseArray(result.getContent().toString(), UserSpaceView.class);
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 根据营业执照号获得企业信息
+     * @param spaceName 营业执照号
+     * @return
+     */
+    public List<UserSpaceView> findBySpaceName(String spaceName) throws Exception {
+        String saveUrl = AccountConfig.getSpaceSaveUrl();
+        if (!StringUtils.isEmpty(saveUrl)) {
+            ModelMap formData = new ModelMap();
+            saveUrl = saveUrl + "/info/businessCode";
+            formData.put("spaceName", spaceName);
+            HttpUtil.ResponseWrap res = HttpUtil.doPost(saveUrl, formData);
+            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.parseArray(result.getContent().toString(), UserSpaceView.class);
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 用户申请绑定企业
+     * @param userUU 用户uu号
+     * @param spaceUU 企业uu号
+     * @throws Exception
+     */
+    public static void applyUserSpace(Long userUU, Long spaceUU) throws Exception {
+        String saveUrl = AccountConfig.getUserSaveUrl();
+        if (!StringUtils.isEmpty(saveUrl)) {
+            ModelMap formData = new ModelMap();
+            saveUrl = saveUrl + "/apply/bind";
+            formData.put("userUU", userUU);
+            formData.put("spaceUU", spaceUU);
+            HttpUtil.ResponseWrap res = HttpUtil.doPost(saveUrl, formData);
+            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());
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 分页查找个人申请记录
+     *
+     * @author wangmh
+     * @date 2018/2/1 15:47
+     * @param userUU 用户uu号
+     * @param page 页数(从0开始)
+     * @param size 每页大小
+     * @return
+     * @throws Exception
+     */
+    public static Page<ApplyUserSpaceView> findApplyInfo(Long userUU, int page, int size) throws Exception {
+        String url = AccountConfig.getUserSaveUrl();
+        if (!StringUtils.isEmpty(url)) {
+            url = url + "/apply/info";
+            ModelMap data = new ModelMap();
+            data.put("userUU", userUU);
+            data.put("page", page);
+            data.put("size", size);
+            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<ApplyUserSpaceView>>() {
+                    });
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 统计该企业审批记录数量
+     * @param spaceUU 企业uu号
+     * @return
+     * @throws Exception
+     */
+    public static Map<String, Integer> applyCount(Long spaceUU) throws Exception {
+        String url = AccountConfig.getSpaceSaveUrl();
+        if (!StringUtils.isEmpty(url)) {
+            url = url + "/apply/count";
+            ModelMap data = new ModelMap();
+            data.put("spaceUU", spaceUU);
+            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(), Map.class);
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 校验企业名称
+     * @param spaceName 企业名称
+     */
+    public static void checkSpaceName(String spaceName) throws Exception {
+        String url = AccountConfig.getSpaceSaveUrl();
+        if (!StringUtils.isEmpty(url)) {
+            url = url + "/checkSpaceName";
+            ModelMap data = new ModelMap();
+            data.put("spaceName", spaceName);
+            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());
+                }
+            }
+        }
+    }
+
+    /**
+     * 校验企业营业执照号
+     * @param businessCode 企业营业执照号
+     */
+    public static void checkBusinessCode(String businessCode) throws Exception {
+        String url = AccountConfig.getSpaceSaveUrl();
+        if (!StringUtils.isEmpty(url)) {
+            url = url + "/checkBusinessCode";
+            ModelMap data = new ModelMap();
+            data.put("businessCode", businessCode);
+            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());
+                }
+            }
+        }
+    }
+
+    /**
+     * 根据用户uu号获取用户信息
+     * @param userUU 用户uu号
+     * @return
+     * @throws Exception
+     */
+    public static UserView findByUserUU(Long userUU) throws Exception {
+        String url = AccountConfig.getUserSaveUrl();
+        if (!StringUtils.isEmpty(url)) {
+            url = url + "/info";
+            ModelMap data = new ModelMap();
+            data.put("userUU", userUU);
+            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(), UserView.class);
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 根据用户uu号获取用户信息
+     * @param spaceUU 企业uu号
+     * @return
+     * @throws Exception
+     */
+    public static UserSpaceView findBySpaceUU(Long spaceUU) throws Exception {
+        String url = AccountConfig.getUserSaveUrl();
+        if (!StringUtils.isEmpty(url)) {
+            url = url + "/checkBusinessCode";
+            ModelMap data = new ModelMap();
+            data.put("spaceUU", spaceUU);
+            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(), UserSpaceView.class);
+                }
+            }
+        }
+        return null;
+    }
+
 /// 之后方法会恢复并修改
 //
 //	/**

+ 12 - 0
sso-server/src/main/java/com/uas/sso/controller/UserManagerController.java

@@ -102,4 +102,16 @@ public class UserManagerController extends BaseController {
         applyUserSpaceService.applyBindUserSpace(userUU, spaceUU);
         return success();
     }
+
+    /**
+     * 根据用户uu号查询分页查询申请信息
+     * @param userUU 用户uu号
+     * @param page 当前页(从0开始),默认值为0
+     * @param size 每页大小,默认值为20
+     * @return org.springframework.data.domain.Page,content为ApplyUserSpace集合
+     */
+    @RequestMapping(value = "/apply/info", method = RequestMethod.GET)
+    public ModelMap findApplyInfo(Long userUU, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "20") int size) {
+        return success(applyUserSpaceService.findApplyByUserUU(userUU, page, size));
+    }
 }

+ 14 - 1
sso-server/src/main/java/com/uas/sso/controller/UserspaceManagerController.java

@@ -35,7 +35,7 @@ public class UserspaceManagerController extends BaseController {
      * @param spaceName 企业名称
      * @return
      */
-    @RequestMapping("/checkSpaceName")
+    @RequestMapping(value = "/checkSpaceName", method = RequestMethod.GET)
     public ModelMap checkSpaceName(String spaceName) {
         userspaceService.checkSpaceName(spaceName);
         return success();
@@ -131,6 +131,19 @@ public class UserspaceManagerController extends BaseController {
         return success(userspaceService.findBySpaceName(name));
     }
 
+    /**
+     * 根据企业名称查询企业
+     * @param businessCode 企业营业执照号
+     * @return 企业信息
+     */
+    @RequestMapping(value = "/info/businessCode", method = RequestMethod.GET)
+    public ModelMap findByBusinessCode(String businessCode) {
+        if (StringUtils.isEmpty(businessCode)) {
+            return success();
+        }
+        return success(userspaceService.findByBusinessCode(businessCode));
+    }
+
     /**
      * 统计申请已审批和未审批数量
      * @param spaceUU 企业uu号

+ 34 - 1
sso-server/src/main/java/com/uas/sso/core/Status.java

@@ -12,10 +12,31 @@ public enum Status {
     TO_BE_CERTIFIED(1, "待认证"),
     AUTHENTICATED(2, "已认证"),
     NOT_PASSED(3, "未通过"),
+
+    /**
+     * {@code 310 未启用}
+     */
+    UNAPPLY(310, "未启用"),
     /**
      * {@code 311 申请中}
      */
     UNAUDIT(311, "申请中"),
+    /**
+     * {@code 312 未激活}
+     */
+    UNACT(312, "未激活"),
+    /**
+     * {@code 313 已激活}
+     */
+    ENABLED(313, "已激活"),
+    /**
+     * {@code 314 已禁用}
+     */
+    DISABLED(314, "已禁用"),
+    /**
+     * {@code 315 已注销,已取消}
+     */
+    CANCELLED(315, "已注销"),
     /**
      * {@code 316 已同意}
      */
@@ -23,7 +44,19 @@ public enum Status {
     /**
      * {@code 317 已拒绝}
      */
-    DISAGREE(317, "已拒绝");
+    DISAGREE(317, "已拒绝"),
+    /**
+     * {@code 400 信息资料还未验证}
+     */
+    UNAPPROVED(400, "待验证"),
+    /**
+     * {@code 401 信息资料已进行验证,但未通过审核}
+     */
+    APPROVED_ERROR(401, "验证不通过"),
+    /**
+     * {@code 402 信息资料已验证通过}
+     */
+    APPROVED_SUCCESS(402, "已验证");
 
     /**
      * 代码

+ 11 - 1
sso-server/src/main/java/com/uas/sso/core/Type.java

@@ -46,7 +46,17 @@ public enum Type {
     /**
      * 注册类型为企业注册
      */
-    REGISTER_USERSPACE("USERSPACE");
+    REGISTER_USERSPACE("USERSPACE"),
+
+    /**
+     * 用户绑定企业
+     */
+    BIND_USERSPACE("BIND"),
+
+    /**
+     * 用户解除绑定企业
+     */
+    UNBIND_USERSPACE("UNBIND");
 
     private String value;
 

+ 1 - 1
sso-server/src/main/java/com/uas/sso/dao/UserspaceDao.java

@@ -35,7 +35,7 @@ public interface UserspaceDao extends JpaRepository<Userspace, Long>, JpaSpecifi
      * @param businessCode 企业营业执照号
      * @return
      */
-    Set<Userspace> findByBusinessCode(String businessCode);
+    List<Userspace> findByBusinessCode(String businessCode);
 
     /**
      * 找到企业最大的uu号

+ 16 - 10
sso-server/src/main/java/com/uas/sso/entity/User.java

@@ -6,16 +6,8 @@ import java.sql.Timestamp;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-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.ManyToMany;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
+import javax.persistence.*;
+
 import org.codehaus.jackson.annotate.JsonIgnore;
 
 /**
@@ -184,6 +176,12 @@ public class User implements Serializable {
     @Column(name = "_lock")
     private Integer lock;
 
+    /**
+     * imId
+     */
+    @Column(name = "im_id")
+    private String imId;
+
     /**
      * 用户登录记录
      */
@@ -409,6 +407,14 @@ public class User implements Serializable {
         this.lock = lock;
     }
 
+    public String getImId() {
+        return imId;
+    }
+
+    public void setImId(String imId) {
+        this.imId = imId;
+    }
+
     @JsonIgnore
     @JSONField(serialize = false)
     public UserRecord getUserRecord() {

+ 2 - 1
sso-server/src/main/java/com/uas/sso/entity/UserRecord.java

@@ -29,7 +29,8 @@ public class UserRecord implements Serializable {
     @Column(name = "pwd_error_count", nullable = false)
     private int pwdErrorCount;
 
-    @OneToOne(mappedBy = "userRecord")
+    @OneToOne(fetch = FetchType.LAZY)
+    @JoinColumn(name = "user_uu", unique = true)
     private User user;
 
     public UserRecord() {

+ 1 - 0
sso-server/src/main/java/com/uas/sso/service/ApplyUserSpaceService.java

@@ -59,4 +59,5 @@ public interface ApplyUserSpaceService {
      */
     void disagreeApply(Long userUU, Long id);
 
+    Page<ApplyUserSpace> findApplyByUserUU(Long userUU, int page, int size);
 }

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

@@ -195,6 +195,13 @@ public interface UserService {
      */
     void bindUserspace(Long userUU, Long spaceUU);
 
+    /**
+     * 用户解除绑定企业
+     * @param userUU 用户uu号
+     * @param spaceUU 绑定的企业uu号
+     */
+    void unbindUserspace(Long userUU, Long spaceUU);
+
     /**
      * 设置用户密保
      * @param userUU 用户uu号

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

@@ -4,6 +4,7 @@ import com.uas.sso.entity.User;
 import com.uas.sso.entity.Userspace;
 import org.springframework.data.domain.Page;
 
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -110,4 +111,11 @@ public interface UserspaceService {
      * @param appId 应用id
      */
     void bindApp(Long spaceUU, String appId);
+
+    /**
+     * 根据企业营业执照号获取企业信息
+     * @param businessCode 企业营业执照号
+     * @return
+     */
+    List<Userspace> findByBusinessCode(String businessCode);
 }

+ 17 - 4
sso-server/src/main/java/com/uas/sso/service/impl/ApplyUserSpaceServiceImpl.java

@@ -18,10 +18,7 @@ import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
+import javax.persistence.criteria.*;
 import java.sql.Timestamp;
 import java.util.*;
 
@@ -171,4 +168,20 @@ public class ApplyUserSpaceServiceImpl implements ApplyUserSpaceService {
         applyUserSpace.setProcessTime(new Timestamp(System.currentTimeMillis()));
         applyUserSpaceDao.save(applyUserSpace);
     }
+
+    @Override
+    public Page<ApplyUserSpace> findApplyByUserUU(Long userUU, int page, int size) {
+        Pageable pageable = new PageRequest(page, size);
+        Page<ApplyUserSpace> pApply = applyUserSpaceDao.findAll(new Specification<ApplyUserSpace>() {
+            @Override
+            public Predicate toPredicate(Root<ApplyUserSpace> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+                List<Predicate> list = new ArrayList<>();
+                list.add(cb.equal(root.join("user", JoinType.INNER).get("userUU").as(Long.class), userUU));
+                Predicate[] predicates = new Predicate[list.size()];
+                predicates = list.toArray(predicates);
+                return cb.and(predicates);
+            }
+        }, pageable);
+        return pApply;
+    }
 }

+ 21 - 0
sso-server/src/main/java/com/uas/sso/service/impl/UserServiceImpl.java

@@ -116,6 +116,7 @@ public class UserServiceImpl implements UserService {
         user.setIdentityValidCode((short) Status.NOT_APPLYING.getCode());
         user.setPassword(getEncryPassword(Const.ENCRY_FORMAT, user.getPassword(), user.getSalt()));
         user.setUserRecord(new UserRecord());
+        user.getUserRecord().setUser(user);
 
         userDao.save(user);
         userLog.info(user, Type.UPDATE_REGISTER.getValue());
@@ -357,6 +358,26 @@ public class UserServiceImpl implements UserService {
 
         // 保存
         userDao.save(user);
+
+        // 保存日志
+        userLog.info(user, Type.BIND_USERSPACE.getValue()+spaceUU);
+    }
+
+    @Override
+    public void unbindUserspace(Long userUU, Long spaceUU) {
+        // 找到用户和企业
+        User user = findOne(userUU);
+        Userspace userspace = userspaceService.findOne(spaceUU);
+
+        // 将企业添加到用户列表上
+        Set<Userspace> userspaces = user.getUserSpaces();
+        userspaces.remove(userspace);
+
+        // 保存
+        userDao.save(user);
+
+        // 保存日志
+        userLog.info(user, Type.UNBIND_USERSPACE.getValue()+spaceUU);
     }
 
     @Override

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

@@ -182,7 +182,7 @@ public class UserspaceServiceImpl implements UserspaceService {
 
     @Override
     public void checkBusinessCode(String businessCode) {
-        Set<Userspace> userSpaces = userspaceDao.findByBusinessCode(businessCode);
+        List<Userspace> userSpaces = userspaceDao.findByBusinessCode(businessCode);
         if (!CollectionUtils.isEmpty(userSpaces)) {
             throw new VisibleError("该企业营业执照已被注册,请确认");
         }
@@ -278,4 +278,9 @@ public class UserspaceServiceImpl implements UserspaceService {
         userspace.getApps().add(app);
         userspaceDao.save(userspace);
     }
+
+    @Override
+    public List<Userspace> findByBusinessCode(String businessCode) {
+        return userspaceDao.findByBusinessCode(businessCode);
+    }
 }