TRX 1 vuosi sitten
vanhempi
commit
4be1651ff2

+ 35 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/scene/SceneComponentModel.java

@@ -0,0 +1,35 @@
+package com.zhongshu.card.client.model.scene;
+
+import com.zhongshu.card.client.type.scene.SceneType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/12/4
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SceneComponentModel {
+
+    @Schema(description = "数据ID")
+    private String id;
+
+    @Schema(description = "组件名称")
+    private String name;
+
+    @Schema(description = "编码")
+    private String code;
+
+    @Schema(description = "图标")
+    private String logo;
+
+    @Schema(description = "布局尺寸")
+    private String layout;
+
+    @Schema(description = "备注")
+    private String remark;
+}

+ 38 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/scene/SceneComponentParam.java

@@ -0,0 +1,38 @@
+package com.zhongshu.card.client.model.scene;
+
+import com.zhongshu.card.client.type.scene.SceneType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/12/4
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SceneComponentParam {
+
+    @Schema(description = "数据ID")
+    private String id;
+
+    @Schema(description = "场景名称")
+    private String name;
+
+    @Schema(description = "编码")
+    private String code;
+
+    @Schema(description = "图标")
+    private String logo;
+
+    @Schema(description = "类型")
+    private SceneType sceneType;
+
+    @Schema(description = "布局尺寸")
+    private String layout;
+
+    @Schema(description = "备注")
+    private String remark;
+}

+ 26 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/scene/SceneInfoAboutComModel.java

@@ -0,0 +1,26 @@
+package com.zhongshu.card.client.model.scene;
+
+import com.zhongshu.card.client.model.base.SuperModel;
+import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.scene.SceneType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author TRX
+ * @date 2024/11/22
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SceneInfoAboutComModel extends SceneInfoModel {
+
+    @Schema(description = "包含的组件列表")
+    private List<SceneComponentModel> components = new ArrayList<>();
+
+}

+ 6 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/scene/SceneInfoParam.java

@@ -10,6 +10,9 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author TRX
  * @date 2024/11/22
@@ -40,4 +43,7 @@ public class SceneInfoParam extends SuperParam {
     @Schema(description = "状态")
     private DataState state = DataState.Enable;
 
+    @Schema(description = "包含的组件列表")
+    private List<SceneComponentParam> components = new ArrayList<>();
+
 }

+ 5 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/scene/SceneInfoController.java

@@ -4,6 +4,7 @@ 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.IDParam;
+import com.zhongshu.card.client.model.scene.SceneInfoAboutComModel;
 import com.zhongshu.card.client.model.scene.SceneInfoModel;
 import com.zhongshu.card.client.model.scene.SceneInfoParam;
 import com.zhongshu.card.client.model.scene.SceneInfoSearch;
@@ -52,7 +53,7 @@ public class SceneInfoController {
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "根据场景数据ID 场景详情", description = "根据场景数据ID 场景详情")
     @RequestMapping(value = "getDetailById", method = {RequestMethod.POST})
-    public ResultContent<SceneInfoModel> getDetailById(@RequestBody IDParam param) {
+    public ResultContent<SceneInfoAboutComModel> getDetailById(@RequestBody IDParam param) {
         return this.sceneInfoService.getDetailById(param.getId());
     }
 
@@ -77,4 +78,7 @@ public class SceneInfoController {
         return this.sceneInfoService.changeState(param.getId(), DataState.Enable);
     }
 
+    //--------------------场景的组件 start---------------------
+
+
 }

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

@@ -0,0 +1,16 @@
+package com.zhongshu.card.server.core.dao.scene;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.card.server.core.domain.scene.SceneComponent;
+
+import java.util.List;
+
+public interface SceneComponentDao extends MongoDao<SceneComponent> {
+
+    SceneComponent findTopById(String id);
+
+    List<SceneComponent> findBySceneInfoIdOrderBySortAsc(String sceneInfoId);
+
+    long deleteByIdIn(List<String> ids);
+
+}

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/quest/QuestInfo.java

@@ -26,4 +26,7 @@ public class QuestInfo extends SuperMain {
     private Object data;
 
     private String uuid;
+
+    private Integer code = 0;
+
 }

+ 52 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/scene/SceneComponent.java

@@ -0,0 +1,52 @@
+package com.zhongshu.card.server.core.domain.scene;
+
+import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.scene.SceneType;
+import com.zhongshu.card.server.core.domain.base.SuperMain;
+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/12/4
+ */
+@Data
+@Builder
+@Document
+@AllArgsConstructor
+@NoArgsConstructor
+public class SceneComponent extends SuperMain {
+
+    @Schema(description = "所属场景")
+    @DBRef(lazy = true)
+    private SceneInfo sceneInfo;
+
+    @Schema(description = "")
+    private String sceneInfoId;
+
+    @Schema(description = "场景名称")
+    private String name;
+
+    @Schema(description = "编码")
+    private String code;
+
+    @Schema(description = "图标")
+    private String logo;
+
+    @Schema(description = "类型")
+    private SceneType sceneType;
+
+    @Schema(description = "布局尺寸")
+    private String layout;
+
+    @Schema(description = "状态")
+    private DataState state = DataState.Enable;
+
+}

+ 5 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectPaySettingServiceImpl.java

@@ -46,7 +46,6 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.mongodb.gridfs.GridFsTemplate;
 import org.springframework.stereotype.Service;
-import org.springframework.util.Assert;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.ArrayList;
@@ -503,11 +502,14 @@ public class ProjectPaySettingServiceImpl extends SuperService {
      * @return
      */
     public ResultContent<OrgWithdrawalModel> getOrgWithdrawal(OrgWithdrawalParam param) {
-        Assert.isNull(param.getPaymentType(), "paymentType不能为空");
+        if (param.getPaymentType() == null) {
+            return ResultContent.buildFail("paymentType不能为空");
+        }
 
         OrgWithdrawalModel model = new OrgWithdrawalModel();
         //1. 查询提现账号信息
-        OrgPayConfigModel orgPayConfigModel = getOrgPayConfig(param.getProjectOid(), param.getOid(), param.getPaymentType(), Boolean.TRUE);
+        OrgPayConfigModel orgPayConfigModel = getOrgPayConfig(
+                param.getProjectOid(), param.getOid(), param.getPaymentType(), Boolean.FALSE);
         model.setOrgPayConfigModel(orgPayConfigModel);
 
         // 查询项目的提现限制

+ 12 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/quest/QuestService.java

@@ -40,7 +40,10 @@ public class QuestService {
     @Autowired
     private QuestInfoDao questInfoDao;
 
+    private volatile Long preTime = 0L;
+
     public ResultContent saveInfo(QuestInfoParam param) {
+        preTime = System.currentTimeMillis();
         if (StringUtils.isNotEmpty(param.getUuid())) {
             QuestInfo temp = questInfoDao.findTopByUuid(param.getUuid());
             if (ObjectUtils.isNotEmpty(temp)) {
@@ -49,6 +52,15 @@ public class QuestService {
         }
         QuestInfo entity = new QuestInfo();
         BeanUtils.copyProperties(param, entity);
+        try {
+            Object data = param.getData();
+            if (data != null) {
+                int code = data.hashCode();
+                entity.setCode(code);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         questInfoDao.save(entity);
         return ResultContent.buildSuccess();
     }

+ 82 - 5
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/scene/SceneInfoService.java

@@ -3,11 +3,11 @@ package com.zhongshu.card.server.core.service.scene;
 import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
-import com.zhongshu.card.client.model.scene.SceneInfoModel;
-import com.zhongshu.card.client.model.scene.SceneInfoParam;
-import com.zhongshu.card.client.model.scene.SceneInfoSearch;
+import com.zhongshu.card.client.model.scene.*;
 import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.server.core.dao.scene.SceneComponentDao;
 import com.zhongshu.card.server.core.dao.scene.SceneInfoDao;
+import com.zhongshu.card.server.core.domain.scene.SceneComponent;
 import com.zhongshu.card.server.core.domain.scene.SceneInfo;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.util.BeanUtils;
@@ -20,6 +20,10 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * @author TRX
  * @date 2024/11/22
@@ -37,6 +41,9 @@ public class SceneInfoService extends SuperService {
     @Autowired
     private ProjectSceneInfoService projectSceneInfoService;
 
+    @Autowired
+    private SceneComponentDao sceneComponentDao;
+
     public ResultContent saveInfo(SceneInfoParam param) {
         boolean isAdd = true;
         SceneInfo entity = null;
@@ -73,6 +80,7 @@ public class SceneInfoService extends SuperService {
         if (!isAdd) {
             projectSceneInfoService.updateAllSceneInfo(entity);
         }
+        saveComponents(entity, param.getComponents());
         return ResultContent.buildSuccess();
     }
 
@@ -81,12 +89,12 @@ public class SceneInfoService extends SuperService {
         return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toModel));
     }
 
-    public ResultContent<SceneInfoModel> getDetailById(String id) {
+    public ResultContent<SceneInfoAboutComModel> getDetailById(String id) {
         SceneInfo entity = sceneInfoDao.findTopById(id);
         if (ObjectUtils.isEmpty(entity)) {
             return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
         }
-        return ResultContent.buildSuccess(toModel(entity));
+        return ResultContent.buildSuccess(toAboutComModel(entity));
     }
 
     public ResultContent deleteById(String id) {
@@ -117,6 +125,58 @@ public class SceneInfoService extends SuperService {
         return ResultContent.buildSuccess();
     }
 
+    //--------------------------场景组件信息 start---------------------
+
+    public ResultContent deleteComponentById(String id) {
+        SceneComponent entity = sceneComponentDao.findTopById(id);
+        if (ObjectUtils.isEmpty(entity)) {
+            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
+        }
+        // 判断是否可以删除
+        sceneComponentDao.delete(entity);
+        return ResultContent.buildSuccess();
+    }
+
+    public ResultContent saveComponents(SceneInfo sceneInfo, List<SceneComponentParam> components) {
+        if (ObjectUtils.isNotEmpty(sceneInfo)) {
+            List<SceneComponent> oldComponents = sceneComponentDao.findBySceneInfoIdOrderBySortAsc(sceneInfo.getId());
+            List<String> ids = new ArrayList<>();
+            if (ObjectUtils.isNotEmpty(oldComponents)) {
+                ids = oldComponents.stream().map(it -> it.getId()).collect(Collectors.toList());
+            }
+            if (ObjectUtils.isNotEmpty(components)) {
+                List<SceneComponent> componentEntitys = new ArrayList<>();
+                for (SceneComponentParam param : components) {
+                    SceneComponent component = new SceneComponent();
+                    BeanUtils.copyProperties(param, component);
+                    componentEntitys.add(component);
+                    if (StringUtils.isNotEmpty(param.getId()) && ids.contains(param.getId())) {
+                        ids.remove(param.getId());
+                    }
+                }
+                sceneComponentDao.saveAll(componentEntitys);
+            }
+            // 删除不存在的
+            if (ObjectUtils.isNotEmpty(ids)) {
+                sceneComponentDao.deleteByIdIn(ids);
+            }
+        }
+        return ResultContent.buildSuccess();
+    }
+
+    public List<SceneComponentModel> getSceneAllComponents(String sceneInfoId) {
+        List<SceneComponentModel> models = new ArrayList<>();
+        if (StringUtils.isNotEmpty(sceneInfoId)) {
+            List<SceneComponent> components = sceneComponentDao.findBySceneInfoIdOrderBySortAsc(sceneInfoId);
+            if (ObjectUtils.isNotEmpty(components)) {
+                models = components.stream().map(this::toComponentModel).collect(Collectors.toUnmodifiableList());
+            }
+        }
+        return models;
+    }
+
+    //--------------------------场景组件信息 end-----------------------
+
     public SceneInfoModel toModel(SceneInfo entity) {
         SceneInfoModel model = new SceneInfoModel();
         if (ObjectUtils.isNotEmpty(entity)) {
@@ -125,4 +185,21 @@ public class SceneInfoService extends SuperService {
         return model;
     }
 
+    public SceneInfoAboutComModel toAboutComModel(SceneInfo entity) {
+        SceneInfoAboutComModel model = new SceneInfoAboutComModel();
+        if (ObjectUtils.isNotEmpty(entity)) {
+            BeanUtils.copyProperties(entity, model);
+            model.setComponents(getSceneAllComponents(entity.getId()));
+        }
+        return model;
+    }
+
+    public SceneComponentModel toComponentModel(SceneComponent entity) {
+        SceneComponentModel model = new SceneComponentModel();
+        if (ObjectUtils.isNotEmpty(entity)) {
+            BeanUtils.copyProperties(entity, model);
+        }
+        return model;
+    }
+
 }