Browse Source

批量生成装备返回列表

tangbin 1 year ago
parent
commit
f729e1d7dd

+ 12 - 11
logic/equip-logic/src/main/java/com/iohao/mmo/equip/action/EquipTemplateAction.java

@@ -5,19 +5,16 @@ import com.iohao.game.action.skeleton.annotation.ActionMethod;
 import com.iohao.game.action.skeleton.core.flow.FlowContext;
 import com.iohao.game.action.skeleton.protocol.wrapper.StringValue;
 import com.iohao.mmo.equip.cmd.EquipCmd;
-import com.iohao.mmo.equip.entity.Equip;
 import com.iohao.mmo.equip.entity.EquipTemplate;
 import com.iohao.mmo.equip.mapper.EquipMapper;
 import com.iohao.mmo.equip.mapper.EquipTemplateMapper;
 import com.iohao.mmo.equip.proto.EquipMessage;
 import com.iohao.mmo.equip.proto.EquipTemplateMessage;
-import com.iohao.mmo.equip.service.EquipService;
 import com.iohao.mmo.equip.service.EquipTemplateService;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -69,14 +66,18 @@ public class EquipTemplateAction {
     public List<EquipMessage> randomEquip(FlowContext flowContext, StringValue stringValve) { //参数值
         long userId = flowContext.getUserId();
         String[] itemIds = stringValve.value.split("-");
-        List<EquipMessage> equipMessageList = new ArrayList<>();
-        for(String item:itemIds){
-            // 初始化装备数据,暂时放这
-            Equip equip = equipTemplateService.randomEquip(item,userId);
-            EquipMessage equipMessage = EquipMapper.ME.convert(equip);
-            equipMessageList.add(equipMessage);
-        }
+//        List<EquipMessage> equipMessageList = new ArrayList<>();
+//        for(String item:itemIds){
+//            // 初始化装备数据,暂时放这
+//            Equip equip = equipTemplateService.randomEquip(item,userId);
+//            EquipMessage equipMessage = EquipMapper.ME.convert(equip);
+//            equipMessageList.add(equipMessage);
+//        }
 
+        List<EquipMessage> equipMessageList = equipTemplateService.randomEquipBatch(Arrays.asList(itemIds),userId)
+                .stream()
+                .map(EquipMapper.ME::convert)
+                .toList();;
         return equipMessageList;
     }
 }

+ 12 - 7
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipTemplateService.java

@@ -18,26 +18,19 @@
  */
 package com.iohao.mmo.equip.service;
 
-import com.iohao.mmo.common.config.GameCode;
 import com.iohao.mmo.equip.entity.BasicEquipProperty;
 import com.iohao.mmo.equip.entity.Equip;
 import com.iohao.mmo.equip.entity.EquipTemplate;
 import com.iohao.mmo.equip.entity.Goods;
 import com.iohao.mmo.equip.utils.RandomUtils;
-import com.mongodb.bulk.BulkWriteResult;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
-import org.springframework.data.mongodb.core.BulkOperations;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
-
-import java.beans.JavaBean;
 import java.math.BigDecimal;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -129,6 +122,18 @@ public class EquipTemplateService {
         mongoTemplate.save(goods2);
     }
 
+    /**
+     * 根据装备库列表批量随机新的装备
+     * @param templateItemIdList
+     * @return
+     */
+    public List<Equip> randomEquipBatch(List<String> templateItemIdList,long userId){
+        List<Equip> equipList = templateItemIdList.stream()
+                .map(itemId -> randomEquip(itemId,userId))
+                .toList();
+        return equipList;
+    }
+
     /**
      * 根据装备库随机一件新的装备
      * @param equipTemplateItemId

+ 5 - 4
provide/equip-provide/src/main/java/com/iohao/mmo/equip/client/EquipInputCommandRegion.java

@@ -158,9 +158,10 @@ public class EquipInputCommandRegion extends AbstractInputCommandRegion {
             return stringValue;
         };
         // 10-13
-        ofCommand(EquipCmd.randomEquip).callback(EquipMessage.class, result -> {
-            EquipMessage value = result.getValue();
-            log.info("装备信息 : {}", value);
-        }).setDescription("根据装备库列表各随机出一件新的装备").setInputRequestData(inputRequestData);
+        ofCommand(EquipCmd.randomEquip).callback(ByteValueList.class, result -> {
+            List<EquipMessage> value = result.toList(EquipMessage.class);
+            log.info("装备列表信息 : {}", JsonKit.toJsonString(value));
+        }).setDescription("根据装备库列表批量随机新的装备").setInputRequestData(inputRequestData);
+
     }
 }