Procházet zdrojové kódy

修改装备id逻辑

tangbin před 1 rokem
rodič
revize
f7e9ab475c

+ 6 - 6
logic/equip-logic/src/main/java/com/iohao/mmo/equip/action/EquipAction.java

@@ -53,11 +53,11 @@ public class EquipAction {
      * 获取装备信息
      *
      * @param flowContext flowContext
-     * @param stringValue itemId
+     * @param stringValue itemTypeId
      */
     @ActionMethod(EquipCmd.getEquip)
     public EquipMessage getEquip(FlowContext flowContext, StringValue stringValue) { //参数值
-        Equip equip = equipService.findByItemId(stringValue.value);
+        Equip equip = equipService.findById(stringValue.value);
         return EquipMapper.ME.convert(equip);
     }
 
@@ -79,8 +79,8 @@ public class EquipAction {
      */
     @ActionMethod(EquipCmd.resetEquip)
     public EquipMessage resetEquip(FlowContext flowContext, EquipResetMessage equipResetMessage) { //参数值
-        GameCode.objNotFound.assertTrue(StringUtils.isNotBlank(equipResetMessage.itemId) && StringUtils.isNotBlank(equipResetMessage.excellentRateString));
-        Equip equip = equipService.resetEquip((equipResetMessage.itemId), new BigDecimal(equipResetMessage.excellentRateString));
+        GameCode.objNotFound.assertTrue(StringUtils.isNotBlank(equipResetMessage.id) && StringUtils.isNotBlank(equipResetMessage.excellentRateString));
+        Equip equip = equipService.resetEquip((equipResetMessage.id), new BigDecimal(equipResetMessage.excellentRateString));
         return EquipMapper.ME.convert(equip);
     }
 
@@ -88,7 +88,7 @@ public class EquipAction {
      * 批量删除装备
      *
      * @param flowContext flowContext
-     * @param stringValue 装备itemIds
+     * @param stringValue 装备itemTypeIds
      */
     @ActionMethod(EquipCmd.delEquipBatch)
     public void delEquipBatch(FlowContext flowContext, StringValue stringValue) {
@@ -109,7 +109,7 @@ public class EquipAction {
 
         NewEquipMessage newEquipMessage = new NewEquipMessage();
         newEquipMessage.equipId = equip.getId();
-        newEquipMessage.itemTypeId = equip.getItemId();
+        newEquipMessage.itemTypeId = equip.getItemTypeId();
 
         return newEquipMessage;
     }

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

@@ -46,7 +46,7 @@ public class EquipTemplateAction {
      * 获取装备库信息
      *
      * @param flowContext flowContext
-     * @param stringValue 装备库itemId
+     * @param stringValue 装备库itemTypeId
      */
     @ActionMethod(EquipCmd.getEquipTemplate)
     public EquipTemplateMessage getEquipTemplate(FlowContext flowContext, StringValue stringValue) { //参数值
@@ -59,13 +59,13 @@ public class EquipTemplateAction {
      * 根据装备库列表随机出新的装备,
      *
      * @param flowContext flowContext
-     * @param stringValve 装备库itemIds(xxx-xxx)
+     * @param stringValve 装备库itemTypeIds(xxx-xxx)
      */
     @ActionMethod(EquipCmd.randomEquip)
     public List<EquipMessage> randomEquip(FlowContext flowContext, StringValue stringValve) { //参数值
         long userId = flowContext.getUserId();
-        String[] itemIds = stringValve.value.split("-");
-        List<EquipMessage> equipMessageList = equipTemplateService.randomEquipBatch(Arrays.asList(itemIds),userId)
+        String[] itemTypeIds = stringValve.value.split("-");
+        List<EquipMessage> equipMessageList = equipTemplateService.randomEquipBatch(Arrays.asList(itemTypeIds),userId)
                 .stream()
                 .map(EquipMapper.ME::convert)
                 .toList();;

+ 2 - 4
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/Equip.java

@@ -36,12 +36,10 @@ import org.springframework.data.mongodb.core.mapping.Document;
 public class Equip {
     @Id
     String id;
-    /** 物品id */
-    String itemId;
+    /** itemTypeId */
+    String itemTypeId;
     /** 玩家 */
     long userId;
-    /** 装备名 */
-    String name;
     /** 总属性点 */
     int attrTotal;
     /** 未分配属性点 */

+ 2 - 2
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/EquipTemplate.java

@@ -34,8 +34,8 @@ import org.springframework.data.mongodb.core.mapping.Document;
 public class EquipTemplate {
     @Id
     String id;
-    /** 物品id */
-    String itemId;
+    /** itemTypeId */
+    String itemTypeId;
     /** 部位(0帽子,1衣服,2武器,3手镯,4裤子,5鞋子) */
     int position;
     /** 要求等级 */

+ 8 - 10
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipService.java

@@ -46,8 +46,8 @@ public class EquipService {
     public Equip findById(String id) {
         return  mongoTemplate.findById(id, Equip.class);
     }
-    public Equip findByItemId(String itemId) {
-        return  Objects.requireNonNull(mongoTemplate.findOne(Query.query(new Criteria("itemId").is(itemId)), Equip.class));
+    public Equip findByItemTypeId(String itemTypeId) {
+        return  Objects.requireNonNull(mongoTemplate.findOne(Query.query(new Criteria("itemTypeId").is(itemTypeId)), Equip.class));
     }
 
     /**
@@ -62,10 +62,8 @@ public class EquipService {
         return  mongoTemplate.find(query,Equip.class);
     }
     public void delBatch(List<String> idList) {
-        Query query = new Query(new Criteria("itemId").in(idList));
+        Query query = new Query(new Criteria("id").in(idList));
         mongoTemplate.remove(query, Equip.class);
-
-        //TODO 物品:删除物品
     }
 
     /**
@@ -74,7 +72,7 @@ public class EquipService {
      */
     public void allotEquip(Equip equip){
         //判定总点数是否合法
-        Equip oldEquip = findByItemId(equip.getItemId());
+        Equip oldEquip = findById(equip.getId());
 
         GameCode.objNotFound.assertTrue(oldEquip!=null);
 
@@ -85,7 +83,7 @@ public class EquipService {
 
         // 查询条件,如果数据存在更新
         Query query = new Query();
-        query.addCriteria(Criteria.where("itemId").is(equip.getItemId()));
+        query.addCriteria(Criteria.where("id").is(equip.getId()));
 
         // 更新的字段
         Update update = new Update();
@@ -98,11 +96,11 @@ public class EquipService {
 
     /**
      * 重新随机总属性点
-     * @param itemId 装备物品id
+     * @param id 装备id
      * @param excellentRate 增加的极品率
      */
-    public Equip resetEquip(String itemId, BigDecimal excellentRate){
-        Equip equip = findByItemId(itemId);
+    public Equip resetEquip(String id, BigDecimal excellentRate){
+        Equip equip = findById(id);
         GameCode.objNotFound.assertTrue(equip!=null);
 
         int randomMin = equip.getTotalAttrMin();

+ 31 - 48
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipTemplateService.java

@@ -23,7 +23,6 @@ import com.iohao.mmo.equip.entity.*;
 import com.iohao.mmo.equip.utils.RandomUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -48,23 +47,16 @@ public class EquipTemplateService {
     public EquipTemplate findById(String id) {
         return  mongoTemplate.findById(id, EquipTemplate.class);
     }
-    public EquipTemplate findByItemId(String itemId) {
-        return  Objects.requireNonNull(mongoTemplate.findOne(Query.query(new Criteria("itemId").is(itemId)), EquipTemplate.class));
+    public EquipTemplate findByItemTypeId(String itemTypeId) {
+        return  Objects.requireNonNull(mongoTemplate.findOne(Query.query(new Criteria("itemTypeId").is(itemTypeId)), EquipTemplate.class));
     }
 
     public void save(EquipTemplate equipTemplate) {
-        if(StringUtils.isNotBlank(equipTemplate.getId())){
-            mongoTemplate.save(equipTemplate);
-        }else {
-            //TODO 物品:这里需要调用物品新建方法获得物品的id
-            String itemId = faker.random().hex(24);
-            equipTemplate.setItemId(itemId);
-            mongoTemplate.save(equipTemplate);
-        }
+        mongoTemplate.save(equipTemplate);
     }
 
     public void delBatch(List<String> idList) {
-        Query query = new Query(new Criteria("itemId").in(idList));
+        Query query = new Query(new Criteria("id").in(idList));
         mongoTemplate.remove(query, EquipTemplate.class);
         //TODO 物品:删除物品
     }
@@ -92,81 +84,72 @@ public class EquipTemplateService {
         equipTemplate.setTotalAttrMin(20);
         equipTemplate.setTotalAttrMax(30);
 
-        //TODO 物品:这里需要调用物品新建方法获得物品的id
-        String itemId = faker.random().hex(24);
-        equipTemplate.setItemId(itemId);
+        equipTemplate.setItemTypeId("equip_clothing_10");
 
         mongoTemplate.save(equipTemplate);
 
         // 初始化一些装备配置,后期将移到 excel 中做。
         EquipTemplate equipTemplate2 = new EquipTemplate();
         equipTemplate2.setPosition(2);
-        equipTemplate2.setLevel(8);
+        equipTemplate2.setLevel(10);
         equipTemplate2.setFixedEquipPropertyMin(FixedEquipProperty.builder()
-                .physicsAttack(8)
-                .magicAttack(8)
-                .treatAttack(8)
-                .sealAttack(8)
-                .anger(8)
+                .physicsAttack(10)
+                .magicAttack(10)
+                .treatAttack(10)
+                .sealAttack(10)
+                .anger(10)
                 .build());
         equipTemplate2.setFixedEquipPropertyMax(FixedEquipProperty.builder()
-                .physicsAttack(24)
-                .magicAttack(24)
-                .treatAttack(24)
-                .sealAttack(24)
-                .anger(24)
+                .physicsAttack(30)
+                .magicAttack(30)
+                .treatAttack(30)
+                .sealAttack(30)
+                .anger(30)
                 .build());
-        equipTemplate2.setTotalAttrMin(16);
-        equipTemplate2.setTotalAttrMax(24);
+        equipTemplate2.setTotalAttrMin(20);
+        equipTemplate2.setTotalAttrMax(30);
 
-        //TODO 物品:这里需要调用物品新建方法获得物品的id
-        String itemId2 = faker.random().hex(24);
-        equipTemplate2.setItemId(itemId2);
+        equipTemplate2.setItemTypeId("equip_weapon_10");
         mongoTemplate.save(equipTemplate2);
     }
 
     /**
      * 根据装备库列表批量随机新的装备
-     * @param templateItemIdList
+     * @param itemTypeIdList
      * @return
      */
-    public List<Equip> randomEquipBatch(List<String> templateItemIdList,long userId){
-        List<Equip> equipList = templateItemIdList.stream()
-                .map(itemId -> randomEquip(itemId,userId))
+    public List<Equip> randomEquipBatch(List<String> itemTypeIdList,long userId){
+        List<Equip> equipList = itemTypeIdList.stream()
+                .map(itemTypeId -> randomEquip(itemTypeId,userId))
                 .toList();
         return equipList;
     }
 
     /**
      * 根据装备库随机一件新的装备
-     * @param equipTemplateItemId
+     * @param itemTypeId
      * @return
      */
-    public Equip randomEquip(String equipTemplateItemId,long userId){
-        return randomEquip(equipTemplateItemId,BigDecimal.ZERO,userId);
+    public Equip randomEquip(String itemTypeId,long userId){
+        return randomEquip(itemTypeId,BigDecimal.ZERO,userId);
     }
 
 
     /**
      * 根据装备库随机一件新的装备
-     * @param equipTemplateItemId 装备库的itemId
+     * @param itemTypeId itemTypeId
      * @param excellentRate 增加的极品率
      * @return
      */
-    public Equip randomEquip(String equipTemplateItemId,BigDecimal excellentRate, long userId){
+    public Equip randomEquip(String itemTypeId,BigDecimal excellentRate, long userId){
         if(excellentRate == null){
             excellentRate = BigDecimal.ZERO;
         }
         //取到装备库
-        EquipTemplate equipTemplate = findByItemId(equipTemplateItemId);
+        EquipTemplate equipTemplate = findByItemTypeId(itemTypeId);
         //将装备库属性拷贝到装备中
         Equip equip = copyTemplate2Equip(equipTemplate,excellentRate);
         equip.setUserId(userId);
-        //新建装备对应的物品类
-        //TODO 物品:这里需要调用物品新建方法获得物品的id
-        String itemId2 = faker.random().hex(24);
-        //对应的物品数据是新建的
-        equip.setItemId(itemId2);
         mongoTemplate.save(equip);
         return equip;
     }
@@ -177,7 +160,7 @@ public class EquipTemplateService {
         //随机总属性点
         int attrTotal = RandomUtils.randomFromExcellent(equipTemplate.getTotalAttrMin(),equipTemplate.getTotalAttrMax(),excellentFlag);
         return Equip.builder()
-                .name("测试装备名称") //TODO 物品:获取物品的名称
+                .itemTypeId(equipTemplate.getItemTypeId())
                 .quality(excellentFlag?2:1) //品质
                 .fixedEquipProperty(FixedEquipProperty.randomFixed(equipTemplate.getFixedEquipPropertyMin(),equipTemplate.getFixedEquipPropertyMax())) //装备固定属性
                 .attrTotal(attrTotal)
@@ -189,7 +172,7 @@ public class EquipTemplateService {
                 .fixedEquipPropertyMax(equipTemplate.getFixedEquipPropertyMax())
                 .totalAttrMin(equipTemplate.getTotalAttrMin())
                 .totalAttrMax(equipTemplate.getTotalAttrMax())
-                .equipTemplateId(equipTemplate.getItemId())
+                .equipTemplateId(equipTemplate.getItemTypeId())
                 .build();
     }
 }

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

@@ -61,7 +61,7 @@ public class EquipInputCommandRegion extends AbstractInputCommandRegion {
 
         // 动态请求参数(参数值)
         inputRequestData = () -> {
-            ScannerKit.log(() -> log.info("请输入要查询的装备itemId"));
+            ScannerKit.log(() -> log.info("请输入要查询的装备id"));
             String id = ScannerKit.nextLine();
 
             // 请求参数
@@ -78,8 +78,8 @@ public class EquipInputCommandRegion extends AbstractInputCommandRegion {
 
         // 动态请求参数(参数值)
         inputRequestData = () -> {
-            ScannerKit.log(() -> log.info("请输入装备itemId"));
-            String itemId = ScannerKit.nextLine();
+            ScannerKit.log(() -> log.info("请输入装备id"));
+            String id = ScannerKit.nextLine();
             ScannerKit.log(() -> log.info("请输入体质、魔力、力量、耐力、敏捷,格式[体质-魔力-力量-耐力-敏捷]"));
             String inputValue = ScannerKit.nextLine("1-1-1-1-1");
             SplitParam param = new SplitParam(inputValue);
@@ -92,7 +92,7 @@ public class EquipInputCommandRegion extends AbstractInputCommandRegion {
             ElseEquipPropertyMessage elseEquipPropertyMessage = new ElseEquipPropertyMessage(constitution,magicPower,power,endurance,agile);
             EquipMessage equipMessage = new EquipMessage();
             equipMessage.elseEquipProperty = elseEquipPropertyMessage;
-            equipMessage.itemId = itemId;
+            equipMessage.id = id;
             return equipMessage;
         };
 
@@ -105,14 +105,14 @@ public class EquipInputCommandRegion extends AbstractInputCommandRegion {
 
         // 动态请求参数(参数值)
         inputRequestData = () -> {
-            ScannerKit.log(() -> log.info("请输入装备itemId和极品概率增益百分比,格式 [装备id-增益百分比]"));
+            ScannerKit.log(() -> log.info("请输入装备id和极品概率增益百分比,格式 [装备id-增益百分比]"));
             String inputValue = ScannerKit.nextLine("1-0.3");
             SplitParam param = new SplitParam(inputValue);
-            String itemId = param.getString(0);
+            String id = param.getString(0);
             String excellentRateString = param.getString(1);
 
             EquipResetMessage equipResetMessage = new EquipResetMessage();
-            equipResetMessage.itemId = itemId;
+            equipResetMessage.id = id;
             equipResetMessage.excellentRateString = excellentRateString;
             return equipResetMessage;
         };
@@ -148,11 +148,11 @@ public class EquipInputCommandRegion extends AbstractInputCommandRegion {
 
         // 动态请求参数(参数值)
         inputRequestData = () -> {
-            ScannerKit.log(() -> log.info("请输入装备库itemId列表,格式 [装备库itemId1-装备库itemId2-装备库itemId3...]"));
-            String ids = ScannerKit.nextLine("1-1");
+            ScannerKit.log(() -> log.info("请输入装备库itemTypeId列表,格式 [装备库itemTypeId1-装备库itemTypeId2-装备库itemTypeId3...]"));
+            String itemTypeIds = ScannerKit.nextLine("1-1");
 
             // 请求参数
-            StringValue stringValue = StringValue.of(ids);
+            StringValue stringValue = StringValue.of(itemTypeIds);
 
             return stringValue;
         };

+ 2 - 2
provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/EquipMessage.java

@@ -34,8 +34,8 @@ import lombok.experimental.FieldDefaults;
 public class EquipMessage{
     /** 装备id */
     String id;
-    /** 对应物品id */
-    String itemId;
+    /** itemTypeId */
+    String itemTypeId;
     /** 玩家 */
     long userId;
     /** 装备名 */

+ 1 - 1
provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/EquipResetMessage.java

@@ -34,7 +34,7 @@ import lombok.experimental.FieldDefaults;
 @FieldDefaults(level = AccessLevel.PUBLIC)
 public class EquipResetMessage {
     /** 装备id */
-    String itemId;
+    String id;
     /** 增加的极品率 0.0000-1.0000 */
     String excellentRateString;
 }