TRX há 1 ano atrás
pai
commit
1e1cc2ac55

+ 31 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/ProjectIotInfoModel.java

@@ -0,0 +1,31 @@
+package com.zhongshu.card.client.model.projectAbout;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/9/24
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectIotInfoModel {
+
+    @Schema(description = "数据ID")
+    private String id;
+
+    @Schema(description = "项目ID")
+    private String projectOid;
+
+    @Schema(description = "ak")
+    private String ak;
+
+    @Schema(description = "sk")
+    private String sk;
+
+    @Schema(description = "openAPI地址")
+    private String url;
+}

+ 36 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/ProjectIotInfoParam.java

@@ -0,0 +1,36 @@
+package com.zhongshu.card.client.model.projectAbout;
+
+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/9/24
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectIotInfoParam {
+
+    @NotEmpty
+    @Schema(description = "项目id")
+    private String projectOid;
+
+    @Schema(description = "ak")
+    @NotEmpty
+    private String ak;
+
+    @NotEmpty
+    @Schema(description = "sk")
+    private String sk;
+
+    @NotEmpty
+    @Schema(description = "openAPI地址")
+    private String url;
+
+    @Schema(description = "")
+    private String remark;
+}

+ 59 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/projectAbout/ProjectIotInfoController.java

@@ -0,0 +1,59 @@
+package com.zhongshu.card.server.core.controller.projectAbout;
+
+import com.github.microservice.auth.security.annotations.ResourceAuth;
+import com.github.microservice.auth.security.type.AuthType;
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.base.ProjectOidParam;
+import com.zhongshu.card.client.model.payment.paySetting.ProjectPaySettingSearch;
+import com.zhongshu.card.client.model.projectAbout.ProjectIotInfoModel;
+import com.zhongshu.card.client.model.projectAbout.ProjectIotInfoParam;
+import com.zhongshu.card.server.core.service.projectAbout.ProjectIotInfoService;
+import io.swagger.v3.oas.annotations.Hidden;
+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 javax.validation.Valid;
+
+/**
+ * 项目的 物联网 ak  sk  设置
+ *
+ * @author TRX
+ * @date 2024/7/26
+ */
+@RestController
+@RequestMapping("/project/projectIotInfo")
+@Tag(name = "项目-物联网设置")
+public class ProjectIotInfoController {
+
+    @Autowired
+    ProjectIotInfoService projectIotInfoService;
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "保存项目的物联网设置", description = "保存项目的物联网设置")
+    @RequestMapping(value = "saveProjectIotInfo", method = {RequestMethod.POST})
+    public ResultContent saveProjectIotInfo(@RequestBody @Valid ProjectIotInfoParam param) {
+        return projectIotInfoService.saveProjectIotInfo(param);
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到项目的物联网配置", description = "得到项目的物联网配置")
+    @RequestMapping(value = "getProjectIotInfo", method = {RequestMethod.POST})
+    public ResultContent<ProjectIotInfoModel> getProjectWeChatInfo(@RequestBody ProjectOidParam param) {
+        return projectIotInfoService.getProjectIotInfo(param.getProjectOid());
+    }
+
+    //------------------------------feign start -----------------------
+    @Operation(hidden = true, summary = "得到项目的物联网配置", description = "得到项目的物联网配置")
+    @RequestMapping(value = "manager/getProjectIotInfo", method = {RequestMethod.POST})
+    @Hidden
+    public ResultContent<ProjectIotInfoModel> getProjectIotInfo(
+            @RequestBody ProjectOidParam param) {
+        return projectIotInfoService.getProjectIotInfo(param.getProjectOid());
+    }
+
+}

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

@@ -3,12 +3,14 @@ package com.zhongshu.card.server.core.controller.projectAbout;
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.base.ProjectOidParam;
 import com.zhongshu.card.client.model.feign.ProjectWxPayParam;
 import com.zhongshu.card.client.model.payment.paySetting.*;
 import com.zhongshu.card.client.model.projectAbout.ProjectWeChatInfoModel;
 import com.zhongshu.card.client.model.projectAbout.ProjectWeChatInfoParam;
 import com.zhongshu.card.client.service.feign.ProjectPaySettingService;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectWeChatInfoService;
+import io.swagger.v3.oas.annotations.Hidden;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +36,7 @@ public class ProjectWeChatInfoController {
     ProjectWeChatInfoService projectWeChatInfoService;
 
     @ResourceAuth(value = "user", type = AuthType.User)
-    @Operation(summary = "保存项目的小程序类型", description = "保存项目的小程序类型")
+    @Operation(summary = "保存项目的小程序配置", description = "保存项目的小程序配置")
     @RequestMapping(value = "saveProjectWeChatInfo", method = {RequestMethod.POST})
     public ResultContent saveProjectWeChatInfo(@RequestBody @Valid ProjectWeChatInfoParam param) {
         return projectWeChatInfoService.saveProjectWeChatInfo(param);
@@ -43,13 +45,14 @@ public class ProjectWeChatInfoController {
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "得到项目的小程序配置", description = "得到项目的小程序配置")
     @RequestMapping(value = "getProjectWeChatInfo", method = {RequestMethod.POST})
-    public ResultContent<ProjectWeChatInfoModel> getProjectWeChatInfo(@RequestBody ProjectPaySettingSearch param) {
+    public ResultContent<ProjectWeChatInfoModel> getProjectWeChatInfo(@RequestBody ProjectOidParam param) {
         return projectWeChatInfoService.getProjectWeChatInfo(param.getProjectOid());
     }
 
     //------------------------------feign start -----------------------
     @Operation(hidden = true, summary = "根据小程序appId得到配置", description = "根据小程序appId得到配置")
     @RequestMapping(value = "manager/getProjectWeChatInfoByAppId", method = {RequestMethod.POST})
+    @Hidden
     public ResultContent<ProjectWeChatInfoModel> getProjectWeChatInfoByAppId(
             @RequestBody ProjectWxPayParam param) {
         return projectWeChatInfoService.getProjectWeChatInfoByAppId(param.getAppId());

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

@@ -0,0 +1,16 @@
+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.ProjectIotInfo;
+import com.zhongshu.card.server.core.domain.projectAbout.ProjectWeChatInfo;
+
+/**
+ * 项目关联的 物联网设置
+ */
+public interface ProjectIotInfoDao extends MongoDao<ProjectIotInfo> {
+
+    ProjectIotInfo findTopById(String id);
+
+    ProjectIotInfo findTopByProjectOid(String projectOid);
+
+}

+ 46 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/projectAbout/ProjectIotInfo.java

@@ -0,0 +1,46 @@
+package com.zhongshu.card.server.core.domain.projectAbout;
+
+import com.zhongshu.card.server.core.domain.base.SuperMain;
+import com.zhongshu.card.server.core.domain.org.Organization;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * 项目相关的 物联网设置
+ *
+ * @author TRX
+ * @date 2024/9/24
+ */
+@Data
+@Builder
+@Document
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectIotInfo extends SuperMain {
+
+    @Schema(description = "项目信息")
+    @DBRef(lazy = true)
+    private Organization projectInfo;
+
+    @Schema(description = "项目名称")
+    private String projectName;
+
+    @Schema(description = "项目编码")
+    private String projectCode;
+
+    //----------------------------业务信息 start-----------------
+    @Schema(description = "ak")
+    private String ak;
+
+    @Schema(description = "sk")
+    private String sk;
+
+    @Schema(description = "openAPI地址")
+    private String url;
+
+}

+ 99 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/ProjectIotInfoService.java

@@ -0,0 +1,99 @@
+package com.zhongshu.card.server.core.service.projectAbout;
+
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.projectAbout.ProjectIotInfoModel;
+import com.zhongshu.card.client.model.projectAbout.ProjectIotInfoParam;
+import com.zhongshu.card.server.core.dao.org.OrganizationDao;
+import com.zhongshu.card.server.core.dao.projectAbout.ProjectIotInfoDao;
+import com.zhongshu.card.server.core.domain.org.Organization;
+import com.zhongshu.card.server.core.domain.projectAbout.ProjectIotInfo;
+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.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 项目的 关联的物联网 ak sk 设置
+ *
+ * @author TRX
+ * @date 2024/9/24
+ */
+@Slf4j
+@Service
+public class ProjectIotInfoService extends SuperService {
+
+    @Autowired
+    OrganizationDao organizationDao;
+
+    @Autowired
+    ProjectIotInfoDao projectIotInfoDao;
+
+    /**
+     * 保存信息
+     *
+     * @param param
+     * @return
+     */
+    public ResultContent saveProjectIotInfo(ProjectIotInfoParam param) {
+        String projectOid = param.getProjectOid();
+        Organization projectInfo = organizationDao.findTopByOid(projectOid);
+        if (ObjectUtils.isEmpty(projectInfo)) {
+            return ResultContent.buildFail(String.format("项目oid不存在:%s", projectOid));
+        }
+        ProjectIotInfo ProjectIotInfo = projectIotInfoDao.findTopByProjectOid(projectOid);
+        if (ObjectUtils.isEmpty(ProjectIotInfo)) {
+            ProjectIotInfo = new ProjectIotInfo();
+            ProjectIotInfo.setIsDelete(Boolean.FALSE);
+            initEntityNoOid(ProjectIotInfo);
+        } else {
+            initUpdateEntity(ProjectIotInfo);
+        }
+        BeanUtils.copyProperties(param, ProjectIotInfo);
+        ProjectIotInfo.setOid(projectOid);
+        ProjectIotInfo.setAboutOid(projectOid);
+        ProjectIotInfo.setAboutAuthType(projectInfo.getAuthType());
+        projectIotInfoDao.save(ProjectIotInfo);
+        return ResultContent.buildSuccess();
+    }
+
+    /**
+     * 得到项目设置
+     *
+     * @param projectOid
+     * @return
+     */
+    public ResultContent<ProjectIotInfoModel> getProjectIotInfo(String projectOid) {
+        ProjectIotInfo ProjectIotInfo = projectIotInfoDao.findTopByProjectOid(projectOid);
+        ProjectIotInfoModel model = null;
+        if (ObjectUtils.isNotEmpty(ProjectIotInfo)) {
+            model = toModel(ProjectIotInfo);
+        }
+        return ResultContent.buildSuccess(model);
+    }
+
+    /**
+     * 项目是否完成微信配置
+     *
+     * @param projectOid
+     * @return
+     */
+    public boolean isFinishConfig(String projectOid) {
+        ProjectIotInfo ProjectIotInfo = projectIotInfoDao.findTopByProjectOid(projectOid);
+        if (ObjectUtils.isNotEmpty(ProjectIotInfo)) {
+            return true;
+        }
+        return false;
+    }
+
+    public ProjectIotInfoModel toModel(ProjectIotInfo entity) {
+        ProjectIotInfoModel model = null;
+        if (ObjectUtils.isNotEmpty(entity)) {
+            model = new ProjectIotInfoModel();
+            BeanUtils.copyProperties(entity, model);
+        }
+        return model;
+    }
+
+}