TRX 1 rok temu
rodzic
commit
0506bd51f3
16 zmienionych plików z 298 dodań i 15 usunięć
  1. 3 3
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/register/UserCountRegisterParam.java
  2. 3 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/role/RoleSimpleModel.java
  3. 2 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/projectCommon/ProjectCommonConfigModel.java
  4. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/device/DeviceInfoOpenApiModel.java
  5. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/device/DeviceInfoOpenApiSimpleModel.java
  6. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/device/DevicePermissOpenApiModel.java
  7. 26 0
      FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/face/OrgUserFaceOpenApiParam.java
  8. 52 0
      FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/face/OrgUserFaceOpenModel.java
  9. 16 0
      FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/face/UpdateFaceFileIdParam.java
  10. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/device/DeviceOpenApiController.java
  11. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/device/DevicePermissOpenApiController.java
  12. 56 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/face/UserFaceOpenApiController.java
  13. 2 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/OrgUserFaceDao.java
  14. 3 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/openAPI/device/DevicePermissOpenApiService.java
  15. 126 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/openAPI/face/OrgUserFaceOpenService.java
  16. 4 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/ProjectCommonConfigService.java

+ 3 - 3
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/register/UserCountRegisterParam.java

@@ -57,14 +57,14 @@ public class UserCountRegisterParam extends ProjectOidParam {
 
     @Schema(description = "职位")
     private String positionId;
-
-    @Schema(description = "用户状态")
+    
+    @Schema(description = "用户状态", hidden = true)
     private UserState state = UserState.Normal;
 
     @Schema(description = "部门信息")
     private String departmentId;
 
-    @Schema(description = "是否是管理员")
+    @Schema(description = "是否是管理员", hidden = true)
     private Boolean isAdmin = Boolean.FALSE;
 
     @Schema(description = "openid")

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

@@ -25,4 +25,7 @@ public class RoleSimpleModel {
     @Schema(description = "角色编码")
     private String code;
 
+    @Schema(description = "是否是游客角色")
+    private Boolean isVisitor;
+
 }

+ 2 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/projectCommon/ProjectCommonConfigModel.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.client.model.projectAbout.projectCommon;
 
 import com.zhongshu.card.client.model.org.role.RoleModel;
+import com.zhongshu.card.client.model.org.role.RoleSimpleModel;
 import com.zhongshu.card.client.type.PassWordDefaultType;
 import com.zhongshu.card.client.type.PassWordType;
 import com.zhongshu.card.client.type.config.LonginType;
@@ -40,7 +41,7 @@ public class ProjectCommonConfigModel extends ProjectCommonSuperParam {
     private Boolean isAllowSelectRole = Boolean.FALSE;
 
     @Schema(description = "注册时可以选择的角色")
-    private List<RoleModel> roles = new ArrayList<RoleModel>();
+    private List<RoleSimpleModel> roles = new ArrayList<RoleSimpleModel>();
 
     @Schema(description = "角色集合")
     private List<String> roleIds = new ArrayList<>();

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/DeviceInfoOpenApiModel.java → FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/device/DeviceInfoOpenApiModel.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.openApi.model;
+package com.zhongshu.card.client.openApi.model.device;
 
 import com.github.microservice.types.deviceUse.DeviceType;
 import com.zhongshu.card.client.model.org.OrganizationMiniModel;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/DeviceInfoOpenApiSimpleModel.java → FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/device/DeviceInfoOpenApiSimpleModel.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.openApi.model;
+package com.zhongshu.card.client.openApi.model.device;
 
 import com.github.microservice.types.deviceUse.DeviceType;
 import com.zhongshu.opengateway.client.model.OpenApiModel;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/DevicePermissOpenApiModel.java → FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/device/DevicePermissOpenApiModel.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.openApi.model;
+package com.zhongshu.card.client.openApi.model.device;
 
 import com.github.microservice.types.deviceUse.DeviceType;
 import com.zhongshu.card.client.openApi.base.SuperAPIModel;

+ 26 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/face/OrgUserFaceOpenApiParam.java

@@ -0,0 +1,26 @@
+package com.zhongshu.card.client.openApi.model.face;
+
+import com.zhongshu.card.client.openApi.base.ProjectCodeParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/10/12
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrgUserFaceOpenApiParam extends ProjectCodeParam {
+
+    @Schema(description = "用户ID")
+    private String userId;
+
+    @NotEmpty
+    @Schema(description = "人员图片地址")
+    private String img;
+
+}

+ 52 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/face/OrgUserFaceOpenModel.java

@@ -0,0 +1,52 @@
+package com.zhongshu.card.client.openApi.model.face;
+
+import com.zhongshu.card.client.openApi.base.SuperAPIModel;
+import com.zhongshu.card.client.type.Sex;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/10/12
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrgUserFaceOpenModel extends SuperAPIModel {
+
+    //-----------------用户信息 start -----------------
+    @Schema(description = "用户ID")
+    private String userId;
+
+    @Schema(description = "用户名称")
+    private String userName;
+
+    @Schema(description = "用户电话")
+    private String phone;
+
+    @Schema(description = "性别")
+    private Sex sex;
+
+    private String sexStr;
+
+    public String getSexStr() {
+        if (sex != null) {
+            return sex.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "人员编码")
+    private String code;
+
+    @Schema(description = "人脸图片地址")
+    private String img;
+
+    @Schema(description = "是否可使用")
+    private Boolean isCanUsed;
+
+    @Schema(description = "人脸id")
+    private String updateFaceFileId;
+}

+ 16 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/face/UpdateFaceFileIdParam.java

@@ -0,0 +1,16 @@
+package com.zhongshu.card.client.openApi.model.face;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ *
+ * @author TRX
+ * @date 2025/3/11
+ */
+@Data
+public class UpdateFaceFileIdParam {
+
+    @Schema(description = "人脸信息id")
+    private String updateFaceFileId;
+}

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/device/DeviceOpenApiController.java

@@ -2,7 +2,7 @@ package com.zhongshu.card.server.core.controller.openAPI.device;
 
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.staticVariable.OpenApiMark;
-import com.zhongshu.card.client.openApi.model.DeviceInfoOpenApiModel;
+import com.zhongshu.card.client.openApi.model.device.DeviceInfoOpenApiModel;
 import com.zhongshu.card.client.openApi.params.DeviceIdParam;
 import com.zhongshu.card.client.openApi.params.DeviceInfoOpenApiSearch;
 import com.zhongshu.card.server.core.service.openAPI.device.DevicePermissOpenApiService;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/device/DevicePermissOpenApiController.java

@@ -2,7 +2,7 @@ package com.zhongshu.card.server.core.controller.openAPI.device;
 
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.staticVariable.OpenApiMark;
-import com.zhongshu.card.client.openApi.model.DevicePermissOpenApiModel;
+import com.zhongshu.card.client.openApi.model.device.DevicePermissOpenApiModel;
 import com.zhongshu.card.client.openApi.params.DeviceIdAndProjectCodeParam;
 import com.zhongshu.card.client.openApi.params.PermissChangeOpenApiParam;
 import com.zhongshu.card.client.openApi.params.UserOpenApiParam;

+ 56 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/face/UserFaceOpenApiController.java

@@ -0,0 +1,56 @@
+package com.zhongshu.card.server.core.controller.openAPI.face;
+
+import com.github.microservice.net.ResultContent;
+import com.github.microservice.staticVariable.OpenApiMark;
+import com.zhongshu.card.client.openApi.model.face.OrgUserFaceOpenApiParam;
+import com.zhongshu.card.client.openApi.model.face.OrgUserFaceOpenModel;
+import com.zhongshu.card.client.openApi.model.face.UpdateFaceFileIdParam;
+import com.zhongshu.card.client.openApi.params.UserOpenApiParam;
+import com.zhongshu.card.server.core.service.openAPI.face.OrgUserFaceOpenService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+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 java.util.List;
+
+/**
+ * @author TRX
+ * @date 2024/6/5
+ */
+@RestController
+@RequestMapping("/" + OpenApiMark.fullCardOpenAPI + "/v1/face")
+@Tag(name = "openAPI-人脸管理")
+public class UserFaceOpenApiController {
+
+    @Autowired
+    private OrgUserFaceOpenService orgUserFaceOpenService;
+
+    @Operation(summary = "增加人脸", description = "增加人脸")
+    @RequestMapping(value = {"saveFace"}, method = {RequestMethod.POST})
+    public ResultContent saveFace(@RequestBody OrgUserFaceOpenApiParam param) {
+        return orgUserFaceOpenService.saveFace(param);
+    }
+
+    @Operation(summary = "用户人脸信息列表", description = "用户人脸信息列表")
+    @RequestMapping(value = {"faceListQuery"}, method = {RequestMethod.POST})
+    public ResultContent<List<OrgUserFaceOpenModel>> faceListQuery(@RequestBody UserOpenApiParam param) {
+        return orgUserFaceOpenService.faceListQuery(param);
+    }
+
+    @Operation(summary = "人脸信息详情", description = "人脸信息详情")
+    @RequestMapping(value = {"detailByFaceId"}, method = {RequestMethod.POST})
+    public ResultContent<OrgUserFaceOpenModel> detailByFaceId(@RequestBody UpdateFaceFileIdParam param) {
+        return orgUserFaceOpenService.detailByFaceId(param);
+    }
+
+    @Operation(summary = "删除人脸信息", description = "删除人脸信息详")
+    @RequestMapping(value = {"deleteByFaceId"}, method = {RequestMethod.POST})
+    public ResultContent<OrgUserFaceOpenModel> deleteByFaceId(@RequestBody UpdateFaceFileIdParam param) {
+        return orgUserFaceOpenService.deleteByFaceId(param);
+    }
+
+}

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

@@ -15,6 +15,8 @@ public interface OrgUserFaceDao extends MongoDao<OrgUserFace>, OrgUserFaceDaoExt
 
     OrgUserFace findTopById(String id);
 
+    OrgUserFace findTopByUpdateFaceFileId(String updateFaceFileId);
+
     OrgUserFace findTopByUserIdAndProjectOidOrderByCreateTimeDesc(String userId, String projectOid);
 
     int countByUserIdAndProjectOid(String userId, String projectOid);

+ 3 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/openAPI/device/DevicePermissOpenApiService.java

@@ -7,9 +7,9 @@ import com.zhongshu.card.client.model.devices.DeviceInfoSearch;
 import com.zhongshu.card.client.model.devices.permiss.DevicePermissParam;
 import com.zhongshu.card.client.model.org.OrganizationMiniModel;
 import com.zhongshu.card.client.model.school.AreaSimpleModel;
-import com.zhongshu.card.client.openApi.model.DeviceInfoOpenApiModel;
-import com.zhongshu.card.client.openApi.model.DeviceInfoOpenApiSimpleModel;
-import com.zhongshu.card.client.openApi.model.DevicePermissOpenApiModel;
+import com.zhongshu.card.client.openApi.model.device.DeviceInfoOpenApiModel;
+import com.zhongshu.card.client.openApi.model.device.DeviceInfoOpenApiSimpleModel;
+import com.zhongshu.card.client.openApi.model.device.DevicePermissOpenApiModel;
 import com.zhongshu.card.client.openApi.params.*;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.server.core.dao.devices.DeviceInfoDao;

+ 126 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/openAPI/face/OrgUserFaceOpenService.java

@@ -0,0 +1,126 @@
+package com.zhongshu.card.server.core.service.openAPI.face;
+
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.projectAbout.orgFace.OrgUserFaceParam;
+import com.zhongshu.card.client.openApi.model.face.OrgUserFaceOpenApiParam;
+import com.zhongshu.card.client.openApi.model.face.OrgUserFaceOpenModel;
+import com.zhongshu.card.client.openApi.model.face.UpdateFaceFileIdParam;
+import com.zhongshu.card.client.openApi.params.UserOpenApiParam;
+import com.zhongshu.card.server.core.dao.org.UserCountDao;
+import com.zhongshu.card.server.core.dao.projectAbout.OrgUserFaceDao;
+import com.zhongshu.card.server.core.domain.org.OrganizationUser;
+import com.zhongshu.card.server.core.domain.org.UserAccount;
+import com.zhongshu.card.server.core.domain.projectAbout.OrgUserFace;
+import com.zhongshu.card.server.core.service.base.CommonService;
+import com.zhongshu.card.server.core.service.projectAbout.OrgUserFaceService;
+import com.zhongshu.card.server.core.util.BeanUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用户人脸信息 openAPI
+ * @author TRX
+ * @date 2025/3/11
+ */
+@Slf4j
+@Service
+public class OrgUserFaceOpenService {
+
+    @Autowired
+    private OrgUserFaceService orgUserFaceService;
+
+    @Autowired
+    private UserCountDao userCountDao;
+
+    @Autowired
+    private CommonService commonService;
+
+    @Autowired
+    private OrgUserFaceDao orgUserFaceDao;
+
+    public ResultContent saveFace(OrgUserFaceOpenApiParam param) {
+        if (StringUtils.isEmpty(param.getUserId())) {
+            return ResultContent.buildFail("userId 不能为空");
+        }
+        UserAccount userAccount = userCountDao.findTopByUserId(param.getUserId());
+        if (ObjectUtils.isEmpty(userAccount)) {
+            return ResultContent.buildFail("用户不存在");
+        }
+        // 检查项目信息
+        ResultContent<String> resultContent = commonService.checkProjectCanUserByCode(param.getProjectCode());
+        if (resultContent.isFailed()) {
+            return ResultContent.buildFail(resultContent.getMsg());
+        }
+        String projectOid = resultContent.getContent();
+
+        OrgUserFaceParam orgUserFaceParam = new OrgUserFaceParam();
+        BeanUtils.copyProperties(param, orgUserFaceParam);
+        orgUserFaceParam.setProjectOid(projectOid);
+        orgUserFaceParam.setIsCanUsed(Boolean.TRUE);
+        orgUserFaceParam.setIsManager(Boolean.TRUE);
+        return orgUserFaceService.saveFace(orgUserFaceParam);
+    }
+
+    public ResultContent<List<OrgUserFaceOpenModel>> faceListQuery(UserOpenApiParam param) {
+        if (StringUtils.isEmpty(param.getUserId())) {
+            return ResultContent.buildFail("userId不能为空");
+        }
+
+        // 检查项目信息
+        ResultContent<String> resultContent = commonService.checkProjectCanUserByCode(param.getProjectCode());
+        if (resultContent.isFailed()) {
+            return ResultContent.buildFail(resultContent.getMsg());
+        }
+        String projectOid = resultContent.getContent();
+        List<OrgUserFace> list = orgUserFaceDao.findByUserIdAndProjectOidOrderByCreateTimeDesc(param.getUserId(), projectOid);
+        List<OrgUserFaceOpenModel> models = new ArrayList<>();
+        if (ObjectUtils.isNotEmpty(list)) {
+            models = list.stream().map(this::toModel).collect(Collectors.toList());
+        }
+        return ResultContent.buildSuccess(models);
+    }
+
+    public ResultContent<OrgUserFaceOpenModel> detailByFaceId(UpdateFaceFileIdParam param) {
+        if (StringUtils.isEmpty(param.getUpdateFaceFileId())) {
+            return ResultContent.buildFail("updateFaceFileId不能为空");
+        }
+        OrgUserFace entity = orgUserFaceDao.findTopByUpdateFaceFileId(param.getUpdateFaceFileId());
+        return ResultContent.buildSuccess(toModel(entity));
+    }
+
+    public ResultContent<OrgUserFaceOpenModel> deleteByFaceId(UpdateFaceFileIdParam param) {
+        if (StringUtils.isEmpty(param.getUpdateFaceFileId())) {
+            return ResultContent.buildFail("updateFaceFileId不能为空");
+        }
+        OrgUserFace entity = orgUserFaceDao.findTopByUpdateFaceFileId(param.getUpdateFaceFileId());
+        return orgUserFaceService.deleteFace(entity.getId(), false);
+    }
+
+    private OrgUserFaceOpenModel toModel(OrgUserFace entity) {
+        OrgUserFaceOpenModel model = null;
+        if (ObjectUtils.isNotEmpty(entity)) {
+            model = new OrgUserFaceOpenModel();
+            BeanUtils.copyProperties(entity, model);
+            UserAccount userAccount = entity.getUserAccount();
+            if (userAccount != null) {
+                model.setUserId(userAccount.getUserId());
+                model.setUserName(userAccount.getName());
+                model.setPhone(userAccount.getPhone());
+                model.setSex(userAccount.getSex());
+            }
+            OrganizationUser organizationUser = entity.getOrganizationUser();
+            if (organizationUser != null) {
+                model.setCode(organizationUser.getCode());
+            }
+        }
+        return model;
+    }
+
+}

+ 4 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/ProjectCommonConfigService.java

@@ -2,6 +2,7 @@ package com.zhongshu.card.server.core.service.projectAbout;
 
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.model.org.role.RoleModel;
+import com.zhongshu.card.client.model.org.role.RoleSimpleModel;
 import com.zhongshu.card.client.model.projectAbout.projectCommon.ProjectCommonConfigModel;
 import com.zhongshu.card.client.model.projectAbout.projectCommon.ProjectCommonConfigParam;
 import com.zhongshu.card.client.model.projectAbout.projectCommon.ProjectCommonSuperParam;
@@ -188,19 +189,19 @@ public class ProjectCommonConfigService extends SuperService {
             BeanUtils.copyProperties(entity, model);
 
             // 可选择角色
-            List<RoleModel> roleModels = new ArrayList<RoleModel>();
+            List<RoleSimpleModel> roleModels = new ArrayList<RoleSimpleModel>();
             List<String> roleIds = new ArrayList<>();
             if (entity.getIsAllowSelectRole() != null && entity.getIsAllowSelectRole()) {
                 roleIds = entity.getRoleIds();
                 if (ObjectUtils.isNotEmpty(entity.getRoleIds())) {
                     List<Role> roles = roleDao.findByIdIn(entity.getRoleIds());
-                    model.setRoles(roleService.toModels(roles));
+                    roleModels = roleService.toSimpleModels(roles);
                 }
             } else {
                 // 查询项目的访客角色
                 List<Role> roles = roleService.getVisitorRoles(entity.getProjectOid());
                 if (ObjectUtils.isNotEmpty(roles)) {
-                    roleModels = roleService.toModels(roles);
+                    roleModels = roleService.toSimpleModels(roles);
                     roleIds = roles.stream().map(Role::getId).collect(Collectors.toList());
                 }
             }