TRX 1 سال پیش
والد
کامیت
660066f158

+ 24 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/xcx/ProjectXcxModel.java

@@ -0,0 +1,24 @@
+package com.zhongshu.card.client.model.xcx;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 项目oid参数模型
+ *
+ * @author TRX
+ * @date 2024/9/24
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectXcxModel {
+
+    @Schema(description = "项目oid")
+    private String projectOid;
+
+    @Schema(description = "项目名称")
+    private String projectName;
+}

+ 11 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/projectAbout/ProjectWeChatInfoController.java

@@ -7,6 +7,7 @@ import com.zhongshu.card.client.model.base.ProjectOidParam;
 import com.zhongshu.card.client.model.feign.ProjectWxPayParam;
 import com.zhongshu.card.client.model.projectAbout.ProjectWeChatInfoModel;
 import com.zhongshu.card.client.model.projectAbout.ProjectWeChatInfoParam;
+import com.zhongshu.card.client.model.xcx.ProjectXcxModel;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectWeChatInfoService;
 import io.swagger.v3.oas.annotations.Hidden;
 import io.swagger.v3.oas.annotations.Operation;
@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * 项目的微信小程序设置
@@ -43,10 +45,18 @@ public class ProjectWeChatInfoController {
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "得到项目的小程序配置", description = "得到项目的小程序配置")
     @RequestMapping(value = "getProjectWeChatInfo", method = {RequestMethod.POST})
-    public ResultContent<ProjectWeChatInfoModel> getProjectWeChatInfo(@RequestBody ProjectOidParam param) {
+    public ResultContent<ProjectWeChatInfoModel> getProjectWeChatInfo(
+            @RequestBody ProjectOidParam param) {
         return projectWeChatInfoService.getProjectWeChatInfo(param.getProjectOid());
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到项目的小程序配置", description = "得到项目的小程序配置")
+    @RequestMapping(value = "getProjectOidForXcx", method = {RequestMethod.GET})
+    public ResultContent<List<ProjectXcxModel>> getProjectOidForXcx() {
+        return projectWeChatInfoService.getProjectOidForXcx();
+    }
+
     //------------------------------feign start -----------------------
     @Operation(hidden = true, summary = "根据小程序appId得到配置", description = "根据小程序appId得到配置")
     @RequestMapping(value = "manager/getProjectWeChatInfoByAppId", method = {RequestMethod.POST})

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

@@ -3,6 +3,8 @@ package com.zhongshu.card.server.core.dao.projectAbout;
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
 import com.zhongshu.card.server.core.domain.projectAbout.ProjectWeChatInfo;
 
+import java.util.List;
+
 /**
  * 项目的微信设置
  */
@@ -16,4 +18,5 @@ public interface ProjectWeChatInfoDao extends MongoDao<ProjectWeChatInfo> {
 
     ProjectWeChatInfo findTopByAppIdOrderByUpdateTimeDesc(String appId);
 
+    List<ProjectWeChatInfo> findByAppIdOrderByUpdateTimeDesc(String appId);
 }

+ 11 - 9
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/OrgUserFaceService.java

@@ -6,12 +6,14 @@ import com.zhongshu.card.client.model.projectAbout.OrgUserFaceModel;
 import com.zhongshu.card.client.model.projectAbout.OrgUserFaceParam;
 import com.zhongshu.card.server.core.dao.projectAbout.OrgUserFaceDao;
 import com.zhongshu.card.server.core.domain.projectAbout.OrgUserFace;
+import com.zhongshu.card.server.core.event.UserInfoChangeSyncEvent;
 import com.zhongshu.card.server.core.service.base.SuperService;
 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.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -31,6 +33,9 @@ public class OrgUserFaceService extends SuperService {
     @Autowired
     private OrgUserFaceDao orgUserFaceDao;
 
+    @Autowired
+    private ApplicationContext applicationContext;
+
     /**
      * 保存用户人脸信息
      *
@@ -54,17 +59,14 @@ public class OrgUserFaceService extends SuperService {
             initUpdateEntity(orgUserFace);
         }
         BeanUtils.copyProperties(param, orgUserFace);
+        orgUserFace.setProjectOid(oid);
         orgUserFaceDao.save(orgUserFace);
-        return ResultContent.buildSuccess();
-    }
 
-    public ResultContent<List<OrgUserFaceModel>> getUserFaceList(String userId, String oid) {
-        List<OrgUserFace> list = getUserFaces(userId, oid);
-        List<OrgUserFaceModel> models = new ArrayList<>();
-        if (ObjectUtils.isNotEmpty(list)) {
-            models = list.stream().map(this::toModel).collect(Collectors.toList());
-        }
-        return ResultContent.buildSuccess(models);
+        // 通知人脸信息发送变化
+        UserInfoChangeSyncEvent event = new UserInfoChangeSyncEvent(this,
+                List.of(orgUserFace.getUserId()), orgUserFace.getProjectOid());
+        applicationContext.publishEvent(event);
+        return ResultContent.buildSuccess();
     }
 
     public List<OrgUserFace> getUserFaces(String userId, String oid) {

+ 27 - 8
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/ProjectWeChatInfoService.java

@@ -1,19 +1,27 @@
 package com.zhongshu.card.server.core.service.projectAbout;
 
 import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.base.ProjectOidParam;
 import com.zhongshu.card.client.model.projectAbout.ProjectWeChatInfoModel;
 import com.zhongshu.card.client.model.projectAbout.ProjectWeChatInfoParam;
+import com.zhongshu.card.client.model.xcx.ProjectXcxModel;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.projectAbout.ProjectWeChatInfoDao;
 import com.zhongshu.card.server.core.domain.org.Organization;
+import com.zhongshu.card.server.core.domain.projectAbout.ProjectIotInfo;
 import com.zhongshu.card.server.core.domain.projectAbout.ProjectWeChatInfo;
 import com.zhongshu.card.server.core.service.base.SuperService;
 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;
+
 /**
  * 项目的 微信管理信息设置
  *
@@ -121,16 +129,27 @@ public class ProjectWeChatInfoService extends SuperService {
      *
      * @return
      */
-    public String getProjectOidForXcx() {
-        String projectOid = "";
+    public ResultContent<List<ProjectXcxModel>> getProjectOidForXcx() {
+        List<ProjectXcxModel> models = new ArrayList<>();
         String appId = getHeadParam(new String[]{"appId", "appid"});
-        if (ObjectUtils.isNotEmpty(appId)) {
-            ProjectWeChatInfo projectWeChatInfo = projectWeChatInfoDao.findTopByAppIdOrderByUpdateTimeDesc(appId);
-            if (ObjectUtils.isNotEmpty(projectWeChatInfo)) {
-                projectOid = projectWeChatInfo.getProjectOid();
-            }
+        if (StringUtils.isEmpty(appId)) {
+            return ResultContent.buildFail("未取得appId");
         }
-        return projectOid;
+
+        List<ProjectWeChatInfo> list = projectWeChatInfoDao.findByAppIdOrderByUpdateTimeDesc(appId);
+        if (ObjectUtils.isNotEmpty(list)) {
+            list.stream().map(it -> {
+                ProjectXcxModel model = new ProjectXcxModel();
+                Organization projectInfo = it.getProjectInfo();
+                if (ObjectUtils.isNotEmpty(projectInfo)) {
+                    model.setProjectOid(projectInfo.getOid());
+                    model.setProjectName(projectInfo.getName());
+                }
+                return model;
+            }).collect(Collectors.toUnmodifiableList());
+        }
+
+        return ResultContent.buildSuccess(models);
     }
 
     public ProjectWeChatInfoModel toModel(ProjectWeChatInfo entity) {