TRX 1 gadu atpakaļ
vecāks
revīzija
f55d42b798

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/base/AuthTypeParam.java

@@ -15,5 +15,5 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 public class AuthTypeParam {
     @Schema(description = "登录端类型")
-    AuthType authType;
+    AuthType loginFromType;
 }

+ 3 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/LoginParam.java

@@ -50,4 +50,7 @@ public class LoginParam {
 
     @Schema(description = "登录端类型 平台  学校  c端  商家小程序 ", required = true)
     private LoginFromType loginFromType;
+
+    @Schema(description = "机构oid,如:平台、学校、商户等的oid")
+    private String oid;
 }

+ 7 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/service/org/OrganizationService.java

@@ -36,6 +36,9 @@ public interface OrganizationService {
     // 添加学校
     public ResultContent addSchool(SchoolAddParam param);
 
+    // 得到平台管理端的数据
+    ResultContent<OrganizationModel> getPlatformInfo();
+
     // 编辑学校
     ResultContent updateSchool(SchoolUpdateParam param);
 
@@ -44,8 +47,12 @@ public interface OrganizationService {
 
     public ResultContent deleteOrganization(String oid);
 
+    public ResultContent<List<OrganizationSimpleModel>> list(OrganizationSearchParam param);
+
     public ResultContent<Page<OrganizationModel>> page(OrganizationSearchParam param, Pageable pageable);
 
+    ResultContent<OrganizationModel> getOrgDetail(String oid);
+
     public ResultContent<Page<OrganizationModel>> pageProject(OrganizationSearchParam param, Pageable pageable);
 
     // 查询可用的项目列表

+ 2 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/service/org/UserAccountService.java

@@ -39,6 +39,8 @@ public interface UserAccountService {
 
     ResultContent<UserCountDetailsModel> getCurrentDetail(AuthTypeParam param);
 
+    ResultContent<UserCountDetailsModel> getCurrentDetailAndOrgs(AuthTypeParam param);
+
     ResultContent<UserCountModel> getUserDetail(String userId);
 
     @Operation(summary = "分页查询所有用户", description = "分页查询用户")

+ 5 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/IndexController.java

@@ -77,13 +77,14 @@ public class IndexController {
         return result;
     }
 
-    @Operation(summary = "小程序端用户名密码登录", description = "小程序端用户名密码登录")
-    @RequestMapping(value = "xcxLogin", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
-    public ResultContent xcxLogin(@RequestBody LoginParam param, HttpServletRequest request, HttpServletResponse response) {
+    @Operation(summary = "登录某个机构 + 用户名密码登录", description = "登录某个机构 + 用户名密码登录")
+    @RequestMapping(value = "loginToOid", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+    public ResultContent loginToOid(@RequestBody LoginParam param, HttpServletRequest request, HttpServletResponse response) {
         if (param.getLoginFromType() == null) {
             return ResultContent.buildFail("loginFromType 不能为空");
         }
-        ResultContent result = indexService.xcxLogin(param);
+        Assert.hasText(param.getOid(), "oid不能为空");
+        ResultContent result = indexService.loginToOid(param);
         if (result.isSuccess()) {
             LoginTokenModel tokenModel = (LoginTokenModel) result.getContent();
             response.setHeader("accessToken", tokenModel.getAccess_token());

+ 51 - 23
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/OrganizationController.java

@@ -16,10 +16,7 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.web.PageableDefault;
 import org.springframework.util.Assert;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -32,8 +29,8 @@ public class OrganizationController {
     private OrganizationService organizationService;
 
     //------------------------------项目管理 start----------------------
-    @ResourceAuth(value = "user",type = AuthType.User)
-    @ResourceAuth(value = AuthConstant.SuperAdmin,type = AuthType.Platform)
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
     @Operation(summary = "项目-添加", description = "项目-添加")
     @RequestMapping(value = "addProject", method = {RequestMethod.POST})
     public ResultContent addProject(@RequestBody OrganizationAddParam param) {
@@ -41,8 +38,8 @@ public class OrganizationController {
         return this.organizationService.addOrganization(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
-    @ResourceAuth(value = AuthConstant.SuperAdmin,type = AuthType.Platform)
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
     @Operation(summary = "项目列表-分页查询", description = "项目列表-分页查询")
     @RequestMapping(value = {"pageProject"}, method = {RequestMethod.POST})
     public ResultContent<Page<OrganizationModel>> pageProject(
@@ -52,12 +49,26 @@ public class OrganizationController {
         return organizationService.pageProject(param, pageable);
     }
 
+    @Operation(summary = "得到平台管理端的机构数据", description = "得到平台管理端的机构数据")
+    @RequestMapping(value = "getPlatformInfo", method = {RequestMethod.GET})
+    public ResultContent<OrganizationModel> getPlatformInfo() {
+        return this.organizationService.getPlatformInfo();
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到机构详情", description = "得到机构详情--学校、商户")
+    @RequestMapping(value = "getOrgDetail", method = {RequestMethod.GET})
+    public ResultContent<OrganizationModel> getOrgDetail(@Parameter(name = "oid", description = "机构oid", example = "") @RequestParam("oid") String oid) {
+        Assert.hasText(oid, "oid不能为空");
+        return this.organizationService.getOrgDetail(oid);
+    }
+
     //------------------------------项目管理 end------------------------
 
     //------------------------------学校管理 start----------------------
 
-    @ResourceAuth(value = "user",type = AuthType.User)
-    @ResourceAuth(value = AuthConstant.SuperAdmin,type = AuthType.Platform)
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
     @Operation(summary = "学校-添加", description = "学校-添加")
     @RequestMapping(value = "addSchool", method = {RequestMethod.POST})
     public ResultContent addSchool(@RequestBody SchoolAddParam param) {
@@ -65,7 +76,7 @@ public class OrganizationController {
         return this.organizationService.addSchool(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "学校-编辑", description = "学校-编辑")
     @RequestMapping(value = "updateSchool", method = {RequestMethod.POST})
     public ResultContent updateSchool(@RequestBody SchoolUpdateParam param) {
@@ -73,7 +84,7 @@ public class OrganizationController {
         return this.organizationService.updateSchool(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "学校列表-分页查询", description = "学校列表-分页查询")
     @RequestMapping(value = {"pageSchool"}, method = {RequestMethod.POST})
     public ResultContent<Page<OrganizationModel>> pageSchool(
@@ -82,12 +93,29 @@ public class OrganizationController {
         param.setAuthType(AuthType.School);
         return organizationService.page(param, pageable);
     }
+
+    @Operation(summary = "得到可用的学校数据", description = "得到可用的学校数据")
+    @RequestMapping(value = {"getUsableSchool"}, method = {RequestMethod.POST})
+    public ResultContent<List<OrganizationSimpleModel>> getUsableSchool(
+            @Parameter(required = false) OrganizationSearchParam param) {
+        param.setAuthType(AuthType.School);
+        return organizationService.list(param);
+    }
+
+    @Operation(summary = "得到可用的商户数据", description = "得到可用的商户数据")
+    @RequestMapping(value = {"getUsableShop"}, method = {RequestMethod.POST})
+    public ResultContent<List<OrganizationSimpleModel>> getUsableShop(
+            @Parameter(required = false) OrganizationSearchParam param) {
+        param.setAuthType(AuthType.Shop);
+        return organizationService.list(param);
+    }
+
     //------------------------------学校管理 end------------------------
 
     //------------------------------商户管理 start----------------------
 
-    @ResourceAuth(value = "user",type = AuthType.User)
-    @ResourceAuth(value = AuthConstant.SuperAdmin,type = AuthType.Platform)
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
     @Operation(summary = "商户-添加", description = "商户-添加")
     @RequestMapping(value = "addShop", method = {RequestMethod.POST})
     public ResultContent addShop(@RequestBody OrganizationAddParam param) {
@@ -95,7 +123,7 @@ public class OrganizationController {
         return this.organizationService.addOrganization(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "商户-编辑", description = "商户-编辑")
     @RequestMapping(value = "updateShop", method = {RequestMethod.POST})
     public ResultContent updateShop(@RequestBody OrganizationUpdateParam param) {
@@ -103,7 +131,7 @@ public class OrganizationController {
         return this.organizationService.update(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "商户列表-分页查询", description = "商户列表-分页查询")
     @RequestMapping(value = {"pageShop"}, method = {RequestMethod.POST})
     public ResultContent<Page<OrganizationModel>> pageShop(
@@ -114,23 +142,23 @@ public class OrganizationController {
     }
     //------------------------------商户管理 end------------------------
 
-    @ResourceAuth(value = "user",type = AuthType.User)
-    @ResourceAuth(value = AuthConstant.SuperAdmin,type = AuthType.Platform)
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
     @Operation(summary = "项目-学校-商家-删除", description = "项目-学校-商家-删除")
     @RequestMapping(value = "delete", method = {RequestMethod.POST})
     public ResultContent delete(@RequestBody OidModel param) {
         return this.organizationService.deleteOrganization(param.getOid());
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
-    @ResourceAuth(value = AuthConstant.SuperAdmin,type = AuthType.Platform)
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
     @Operation(summary = "添加机构", description = "添加机构")
     @RequestMapping(value = "add", method = {RequestMethod.POST})
     public ResultContent add(@RequestBody OrganizationAddParam param) {
         return this.organizationService.addOrganization(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "编辑机构-项目-学校", description = "编辑机构-项目-学校")
     @RequestMapping(value = "update", method = {RequestMethod.POST})
     public ResultContent update(@RequestBody OrganizationUpdateParam param) {
@@ -138,14 +166,14 @@ public class OrganizationController {
         return this.organizationService.update(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "项目编码生成器", description = "项目编码生成器")
     @RequestMapping(value = "buildProjectCode", method = {RequestMethod.GET})
     public ResultContent buildProjectCode() {
         return this.organizationService.buildCode(AuthType.Project);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询所有可用的项目列表", description = "查询所有可用的项目列表")
     @RequestMapping(value = "getProjectList", method = {RequestMethod.GET})
     public ResultContent<List<OrganizationModel>> getProjectList() {

+ 18 - 11
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/UserInfoController.java

@@ -48,17 +48,24 @@ public class UserInfoController {
     @Autowired
     UserAccountService userAccountService;
 
-    @ResourceAuth(value = "user",type = AuthType.User)
-    @Operation(summary = "得到当前用户信息", description = "得到当前用户信息")
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到当前用户信息(基本信息)", description = "得到当前用户信息(基本信息)")
     @RequestMapping(value = {"getCurrentDetail"}, method = {RequestMethod.POST})
     public ResultContent<UserCountDetailsModel> getCurrentDetail(@RequestBody AuthTypeParam param) {
-        if (param.getAuthType() == null) {
-            return ResultContent.buildFail("authType 不能为空");
-        }
         return userAccountService.getCurrentDetail(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到当前用户信息+所有指定的机构数据", description = "得到当前用户信息 + 所有指定的机构数据")
+    @RequestMapping(value = {"getCurrentDetailAndOrgs"}, method = {RequestMethod.POST})
+    public ResultContent<UserCountDetailsModel> getCurrentDetailAndOrgs(@RequestBody AuthTypeParam param) {
+        if (param.getLoginFromType() == null) {
+            return ResultContent.buildFail("loginFromType 不能为空");
+        }
+        return userAccountService.getCurrentDetailAndOrgs(param);
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "修改当前用户密码", description = "修改当前用户密码")
     @RequestMapping(value = {"updatePassWord"}, method = {RequestMethod.POST})
     public ResultContent<UserCountDetailsModel> updatePassWord(@RequestBody PassWordModel param) {
@@ -66,7 +73,7 @@ public class UserInfoController {
         return userAccountService.updatePassWord(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询用户加入的平台数据列表", description = "查询用户加入的 平台数据列表")
     @RequestMapping(value = {"getUserPlatform"}, method = {RequestMethod.GET})
     public ResultContent<List<OrganizationModel>> getUserPlatform() {
@@ -76,7 +83,7 @@ public class UserInfoController {
         return organizationService.getUserOrgList(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询用户加入的 项目数据列表", description = "查询用户加入的 项目数据列表")
     @RequestMapping(value = {"getUserProject"}, method = {RequestMethod.GET})
     public ResultContent<List<OrganizationModel>> getUserProject() {
@@ -86,7 +93,7 @@ public class UserInfoController {
         return organizationService.getUserOrgList(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询用户加入的 学校数据列表", description = "查询用户加入的 学校数据列表")
     @RequestMapping(value = {"getUserSchool"}, method = {RequestMethod.GET})
     public ResultContent<List<OrganizationModel>> getUserSchool() {
@@ -96,7 +103,7 @@ public class UserInfoController {
         return organizationService.getUserOrgList(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询用户加入的 商家数据列表", description = "查询用户加入的 商家数据列表")
     @RequestMapping(value = {"getUserShop"}, method = {RequestMethod.GET})
     public ResultContent<List<OrganizationModel>> getUserShop() {
@@ -106,7 +113,7 @@ public class UserInfoController {
         return organizationService.getUserOrgList(param);
     }
 
-    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询用户加入的 企业数据列表", description = "查询用户加入的 企业数据列表")
     @RequestMapping(value = {"getUserEnterprise"}, method = {RequestMethod.GET})
     public ResultContent<List<OrganizationModel>> getUserEnterprise() {

+ 2 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/OrganizationUserDao.java

@@ -22,6 +22,8 @@ public interface OrganizationUserDao extends MongoDao<OrganizationUser>, Organiz
     // 查询用户在机构的信息
     OrganizationUser findTopByOrganizationAndUser(Organization organization, UserAccount user);
 
+    OrganizationUser findTopByOrganizationAndUserAndState(Organization organization, UserAccount user, UserState state);
+
     // 用户是否存在
     Boolean existsByOrganizationAndUser(Organization organization, UserAccount user);
 

+ 44 - 33
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/IndexService.java

@@ -18,10 +18,7 @@ import com.zhongshu.card.client.utils.type.LoginFromType;
 import com.zhongshu.card.client.utils.type.OrganizationState;
 import com.zhongshu.card.client.utils.type.UserState;
 import com.zhongshu.card.server.core.dao.org.*;
-import com.zhongshu.card.server.core.domain.org.Organization;
-import com.zhongshu.card.server.core.domain.org.UserAccount;
-import com.zhongshu.card.server.core.domain.org.UserLoginFailRecord;
-import com.zhongshu.card.server.core.domain.org.UserLoginRecord;
+import com.zhongshu.card.server.core.domain.org.*;
 import com.zhongshu.card.server.core.service.base.RedisService;
 import com.zhongshu.card.server.core.util.CommonUtil;
 import com.zhongshu.card.server.core.util.wx.WechatCUtil;
@@ -83,7 +80,7 @@ public class IndexService {
     WechatCUtil wechatCUtil;
 
     /**
-     * 登录--web
+     * 登录 只验证 用户名 和密码
      *
      * @param param
      * @return
@@ -96,36 +93,16 @@ public class IndexService {
         if (resultContent.isFailed()) {
             return resultContent;
         }
-        // web 端的登录用户数据验证
-        UserAccount userAccount = userCountDao.findTopByLoginName(phone);
-        if (param.getLoginFromType() == LoginFromType.Platform) {
-            // web平台端登录
-            // 判断用户是否加入了平台端
-            Organization platformOrg = organizationDao.findTopByAuthType(AuthType.Platform);
-            if (ObjectUtils.isEmpty(platformOrg)) {
-                return ResultContent.buildFail("平台端数据未初始化,登录失败");
-            }
-            long number = organizationUserDao.countByUserAndStateAndAuthType(userAccount, UserState.Normal, AuthType.Platform);
-            if (number <= 0) {
-                return ResultContent.buildFail(String.format("用户不属于平台端用户,登录失败:%s", phone));
-            }
-        } else if (param.getLoginFromType() == LoginFromType.School) {
-            // 校园端web登录
-            long number = organizationUserDao.countByUserAndStateAndAuthType(userAccount, UserState.Normal, AuthType.School);
-            if (number <= 0) {
-                return ResultContent.buildFail(String.format("用户未加入学校,登录失败:%s", phone));
-            }
-        }
         return resultContent;
     }
 
     /**
-     * 小程序端账号密码登录
+     * 登录--验证用户名和密码 + 是否在指定的机构
      *
      * @param param
      * @return
      */
-    public ResultContent xcxLogin(LoginParam param) {
+    public ResultContent loginToOid(LoginParam param) {
         String phone = param.getLoginValue();
         UserAuthLoginModel userAuthLoginModel = new UserAuthLoginModel();
         BeanUtils.copyProperties(param, userAuthLoginModel);
@@ -133,14 +110,48 @@ public class IndexService {
         if (resultContent.isFailed()) {
             return resultContent;
         }
-        // 商户端
-        if (param.getLoginFromType() == LoginFromType.Shop) {
-            UserAccount userAccount = userCountDao.findTopByLoginName(phone);
-            long number = organizationUserDao.countByUserAndStateAndAuthType(userAccount, UserState.Normal, AuthType.Shop);
-            if (number <= 0) {
-                return ResultContent.buildFail(String.format("用户不属于任何商户,登录失败:%s", phone));
+        // web 端的登录用户数据验证
+        UserAccount userAccount = userCountDao.findTopByLoginName(phone);
+        Organization organization = organizationDao.findTopByOid(param.getOid());
+        if (ObjectUtils.isEmpty(organization)) {
+            return ResultContent.buildFail(String.format("oid不存在:%s", param.getOid()));
+        }
+        OrganizationUser organizationUser = organizationUserDao.findTopByOrganizationAndUserAndState(organization, userAccount, UserState.Normal);
+        if (ObjectUtils.isEmpty(organizationUser)) {
+            String msg = String.format("用户不属于该机构:%s", organization.getName());
+            if (param.getLoginFromType() == LoginFromType.Platform) {
+                msg = String.format("用户不属于平台端用户,登录失败:%s", organization.getName());
+            } else if (param.getLoginFromType() == LoginFromType.School) {
+                msg = String.format("用户不属于学校端用户,登录失败:%s", organization.getName());
+            } else if (param.getLoginFromType() == LoginFromType.Shop) {
+                msg = String.format("用户不属于商户端用户,登录失败:%s", organization.getName());
             }
+            return ResultContent.buildFail(msg);
         }
+
+//        if (param.getLoginFromType() == LoginFromType.Platform) {
+//            // web平台端登录
+//            // 判断用户是否加入了平台端
+//            Organization platformOrg = organizationDao.findTopByAuthType(AuthType.Platform);
+//            if (ObjectUtils.isEmpty(platformOrg)) {
+//                return ResultContent.buildFail("平台端数据未初始化,登录失败");
+//            }
+//            long number = organizationUserDao.countByUserAndStateAndAuthType(userAccount, UserState.Normal, AuthType.Platform);
+//            if (number <= 0) {
+//                return ResultContent.buildFail(String.format("用户不属于平台端用户,登录失败:%s", phone));
+//            }
+//        } else if (param.getLoginFromType() == LoginFromType.School) {
+//            // 校园端web登录
+//            long number = organizationUserDao.countByUserAndStateAndAuthType(userAccount, UserState.Normal, AuthType.School);
+//            if (number <= 0) {
+//                return ResultContent.buildFail(String.format("用户未加入学校,登录失败:%s", phone));
+//            }
+//        } else if (param.getLoginFromType() == LoginFromType.Shop) {
+//            long number = organizationUserDao.countByUserAndStateAndAuthType(userAccount, UserState.Normal, AuthType.Shop);
+//            if (number <= 0) {
+//                return ResultContent.buildFail(String.format("用户不属于任何商户,登录失败:%s", phone));
+//            }
+//        }
         return resultContent;
     }
 

+ 51 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationServiceImpl.java

@@ -28,6 +28,7 @@ import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -202,6 +203,21 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
         return ResultContent.buildSuccess();
     }
 
+    /**
+     * 得到平台机构信息
+     *
+     * @return
+     */
+    @Override
+    public ResultContent<OrganizationModel> getPlatformInfo() {
+        Organization organization = organizationDao.findTopByAuthType(AuthType.Platform);
+        if (ObjectUtils.isEmpty(organization)) {
+            return ResultContent.buildFail("平台端未初始化,请联系管理员");
+        }
+        OrganizationModel model = toModel(organization);
+        return ResultContent.buildSuccess(model);
+    }
+
     /**
      * 编辑学校
      *
@@ -354,6 +370,41 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
         return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toModel));
     }
 
+    /**
+     * 得到可用的机构信息 (学校、商户)
+     *
+     * @param param
+     * @return
+     */
+    @Override
+    public ResultContent<List<OrganizationSimpleModel>> list(OrganizationSearchParam param) {
+        param.setState(OrganizationState.Normal);
+        Pageable pageable = PageRequest.of(0, Integer.MAX_VALUE);
+        Page<Organization> page = organizationDao.page(pageable, param);
+        List<Organization> list = page.getContent();
+        List<OrganizationSimpleModel> models = new ArrayList<>();
+        if (ObjectUtils.isNotEmpty(list)) {
+            models = list.stream().map(this::toSimpleModel).collect(Collectors.toList());
+        }
+        return ResultContent.buildSuccess(models);
+    }
+
+    /**
+     * 得到机构详情
+     *
+     * @param oid
+     * @return
+     */
+    @Override
+    public ResultContent<OrganizationModel> getOrgDetail(String oid) {
+        Organization organization = organizationDao.findTopByOid(oid);
+        if (ObjectUtils.isEmpty(organization)) {
+            return ResultContent.buildFail(String.format("oid数据不存在:%s", oid));
+        }
+        OrganizationModel model = toModel(organization);
+        return ResultContent.buildSuccess(model);
+    }
+
     /**
      * 分页数据
      *

+ 17 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/UserAccountServiceImpl.java

@@ -380,6 +380,22 @@ public class UserAccountServiceImpl extends SuperService implements UserAccountS
      * @return
      */
     public ResultContent<UserCountDetailsModel> getCurrentDetail(AuthTypeParam param) {
+        UserCountDetailsModel model = new UserCountDetailsModel();
+        UserAccount userAccount = userCountDao.findTopByUserId(getCurrentUserId());
+        if (ObjectUtils.isNotEmpty(userAccount)) {
+            UserCountModel model1 = toModel(userAccount);
+            BeanUtils.copyProperties(model1, model);
+        }
+        return ResultContent.buildSuccess(model);
+    }
+
+    /**
+     * 得到当前的用户信息 (包含机构信息)
+     *
+     * @param param
+     * @return
+     */
+    public ResultContent<UserCountDetailsModel> getCurrentDetailAndOrgs(AuthTypeParam param) {
         UserCountDetailsModel model = new UserCountDetailsModel();
         UserAccount userAccount = userCountDao.findTopByUserId(getCurrentUserId());
         if (ObjectUtils.isNotEmpty(userAccount)) {
@@ -388,7 +404,7 @@ public class UserAccountServiceImpl extends SuperService implements UserAccountS
             // 查询机构列表
             OrganizationUserSearch search = new OrganizationUserSearch();
             search.setState(UserState.Normal);
-            search.setAuthType(param.getAuthType());
+            search.setAuthType(param.getLoginFromType());
             search.setUserId(getCurrentUserId());
             ResultContent<List<OrganizationModel>> resultContent = organizationService.getUserOrgList(search);
             if (resultContent.isSuccess()) {