Просмотр исходного кода

plan-java v0.08

(cherry picked from commit 62b94935be8520865dd2a9389f7e16795f4f6691)
MOKASZ\lw12420 2 лет назад
Родитель
Сommit
ec01312ff7

+ 6 - 3
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewController.java

@@ -372,7 +372,8 @@ public class PlanNewController {
                 saveRequest.getBackgroundGroupQsId(),
                 saveRequest.getTopAdvBl(),
                 saveRequest.getBottomAdvBl(),
-                saveRequest.getReturnLoopBl()
+                saveRequest.getReturnLoopBl(),
+                saveRequest.getGroupIdQs()
         );
         Mono<PlanNew> insert = template.insert(plan);
         Mono<PlanNew> map = insert.map(f -> {
@@ -445,7 +446,8 @@ public class PlanNewController {
                         saveRequest.getBackgroundGroupQsId(),
                         saveRequest.getTopAdvBl(),
                         saveRequest.getBottomAdvBl(),
-                        saveRequest.getReturnLoopBl()
+                        saveRequest.getReturnLoopBl(),
+                        saveRequest.getGroupIdQs()
                 )).map(map -> {
                     template.update(map);
                     return map;
@@ -522,7 +524,8 @@ public class PlanNewController {
                         saveRequest.backgroundGroupQsId(),
                         saveRequest.topAdvBl(),
                         saveRequest.bottomAdvBl(),
-                        saveRequest.returnLoopBl()
+                        saveRequest.returnLoopBl(),
+                        saveRequest.groupIdQs()
                 )).map(map -> {
                     template.update(map);
                     return map;

+ 2 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/req/PlanReq.java

@@ -94,6 +94,8 @@ public class PlanReq {
      */
     private Integer returnLoopBl;
 
+    private Long  groupIdQs;
+
     /**
      * 分享背景组-配置
      */

+ 3 - 2
launch-admin/src/main/java/com/webflux/launchadmin/mysql/entity/planNew/PlanNew.java

@@ -35,6 +35,7 @@ public record PlanNew(
         Long backgroundGroupQsId,//清水背景组id
         Integer topAdvBl,
         Integer bottomAdvBl,
-        Integer returnLoopBl
-) {
+        Integer returnLoopBl,
+        Long groupIdQs
+        ) {
 }

+ 11 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/repository/planNew/PlanNewRepository.java

@@ -0,0 +1,11 @@
+package com.webflux.launchadmin.mysql.repository.planNew;
+
+import com.webflux.launchadmin.mysql.entity.lb.HomePageTempItem;
+import com.webflux.launchadmin.mysql.entity.planNew.PlanNew;
+import org.springframework.data.r2dbc.repository.R2dbcRepository;
+import org.springframework.data.repository.reactive.ReactiveCrudRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface PlanNewRepository extends ReactiveCrudRepository<PlanNew,Long> {
+}

+ 102 - 0
launch-common/src/main/java/com/webflux/launchcommon/utils/RecordUtils.java

@@ -0,0 +1,102 @@
+package com.webflux.launchcommon.utils;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.util.Map;
+
+/**
+ * 复制Record对象
+ * @author lw12420
+ * @date 2024/06/03
+ */
+public class RecordUtils {
+
+    /**
+     * 使用反射实现自动复制Record对象的方法
+     * @param originalRecord
+     * @param <T>
+     * @return
+     */
+    public static <T> T copyRecord(T originalRecord) {
+        try {
+            // 获取Record类
+            Class<?> recordClass = originalRecord.getClass();
+
+            // 获取Record类的构造器
+            var constructor = recordClass.getDeclaredConstructor(recordClass);
+
+            // 设置构造器为可访问
+            constructor.setAccessible(true);
+
+            // 调用构造器创建新的Record对象并返回
+            return (T) constructor.newInstance(originalRecord);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    /**
+     *  使用反射修改指定字段
+     * @param originalRecord 对象
+     * @param setName 字段名
+     * @param setValue 字段值
+     * @param <T>
+     * @return
+     */
+    public static <T> T setRecordParameter(T originalRecord,String setName,Object setValue)  {
+
+        try {
+            Field[] fields = originalRecord.getClass().getDeclaredFields();
+            for (Field field : fields) {
+                field.setAccessible(true);
+                // 如果字段名与需要修改的参数名相同,则修改参数值
+                if (field.getName().equals(setName)) {
+                    field.set(originalRecord, setValue);
+                    break;
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+        return originalRecord;
+    }
+
+    /**
+     * 使用反射批量修改指定字段
+     *
+     * @param originalRecord 对象
+     * @param parameters
+     * @return {@link T}
+     */
+
+    public static <T> T setRecordParameters(T originalRecord, Map<String,Object> parameters)  {
+
+        try {
+            Field[] fields = originalRecord.getClass().getDeclaredFields();
+            parameters.forEach((setName,setValue)->{
+                for (Field field : fields) {
+                    field.setAccessible(true);
+                    // 如果字段名与需要修改的参数名相同,则修改参数值
+                    if (field.getName().equals(setName)) {
+                        try {
+                            field.set(originalRecord, setValue);
+                        } catch (IllegalAccessException e) {
+                            e.printStackTrace();
+                        }
+                        break;
+                    }
+                }
+            });
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+        return originalRecord;
+    }
+
+
+
+
+}