Browse Source

银月:装备属性设计

tangbin 1 year ago
parent
commit
5a742ee422

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

@@ -50,10 +50,14 @@ public class Equip {
     int level;
     /** 品质 1白色,2黄色,3绿色,4蓝色,5紫色,6鬼装*/
     int quality;
+    /** 耐久度 */
+    int durability;
+
     /** 基础属性鉴定次数 */
     int identifyBasicCount;
     /** 词条属性鉴定次数 */
     int identifyEntryCount;
+
     /** 装备基础属性最小值 */
     EquipPropertyBasic equipPropertyBasicMin;
     /** 装备基础属性最大值 */
@@ -70,7 +74,4 @@ public class Equip {
     int equipPropertyRandomMax;
     /** 装备随机属性 */
     List<EquipEntry> equipPropertyRandomList;
-
-    /** 装备库id */
-    String equipTemplateId;
 }

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

@@ -40,6 +40,8 @@ public class EquipEntry {
     String id;
     /** 名称 */
     String name;
+    /** 编号 */
+    String code;
     /** 描述 */
     String description;
     /** 装备属性 */

+ 3 - 1
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/EquipEntryProperty.java

@@ -19,6 +19,7 @@
 package com.iohao.mmo.equip.entity;
 
 import lombok.AccessLevel;
+import lombok.Builder;
 import lombok.Data;
 import lombok.experimental.FieldDefaults;
 import org.springframework.data.mongodb.core.mapping.Document;
@@ -35,6 +36,7 @@ import java.math.BigDecimal;
  * @date 2023-07-24
  */
 @Data
+@Builder
 @Document
 @FieldDefaults(level = AccessLevel.PRIVATE)
 public class EquipEntryProperty {
@@ -47,7 +49,7 @@ public class EquipEntryProperty {
     /** 显示方式(1原值显示,2小数转百分比) */
     int showType;
     /** 影响属性 */
-    String propertyName;
+    String effectPropertyName;
     /** 属性范围最小值 */
     BigDecimal propertyValueMin;
     /** 属性范围最大值 */

+ 11 - 0
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/EquipEntryTemplate.java

@@ -19,11 +19,14 @@
 package com.iohao.mmo.equip.entity;
 
 import lombok.AccessLevel;
+import lombok.Builder;
 import lombok.Data;
+import lombok.Singular;
 import lombok.experimental.FieldDefaults;
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -33,6 +36,7 @@ import java.util.List;
  * @date 2023-07-26
  */
 @Data
+@Builder
 @Document
 @FieldDefaults(level = AccessLevel.PRIVATE)
 public class EquipEntryTemplate {
@@ -40,8 +44,15 @@ public class EquipEntryTemplate {
     String id;
     /** 名称 */
     String name;
+    /** 编号 */
+    String code;
     /** 描述 */
     String description;
+    /** 出现概率 */
+    BigDecimal hitProb;
+    /** 同一装备最多出现次数 */
+    int maxExist;
     /** 装备属性 */
+    @Singular(value = "entryProperty")
     List<EquipEntryProperty> entryPropertyList;
 }

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

@@ -63,9 +63,9 @@ public class EquipPropertyBasic {
     /** 法术命中 */
     Integer magicHit;
 
-    /** 物理避 */
+    /** 物理避 */
     Integer physicsDodge;
-    /** 法术避 */
+    /** 法术避 */
     Integer magicDodge;
 
     /** 生命值 */
@@ -73,8 +73,8 @@ public class EquipPropertyBasic {
     /** 能量值 */
     Integer mp;
 
-    /** 耐久度 */
-    Integer durability;
+    /** 基础属性增加百分比 */
+    Integer basicAllPct;
 
     public static EquipPropertyBasic randomFixed(EquipPropertyBasic fixedEquipPropertyMin,
                                                  EquipPropertyBasic fixedEquipPropertyMax){

+ 13 - 13
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/EquipPropertyElse.java

@@ -23,7 +23,10 @@ import lombok.Data;
 import lombok.experimental.FieldDefaults;
 import org.springframework.data.mongodb.core.mapping.Document;
 
+import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 装备额外属性统计(装备基础属性以外的属性)
@@ -52,21 +55,18 @@ public class EquipPropertyElse {
     int lucky;
 
     /** 最小物理攻击百分比 */
+    BigDecimal physicsAttackMinPct;
     /** 最大物理攻击百分比 */
+    BigDecimal physicsAttackMaxPct;
     /** 最小法术攻击百分比 */
+    BigDecimal magicAttackMinPct;
     /** 最大法术攻击百分比 */
+    BigDecimal magicAttackMaxPct;
+    /** 是否不能打孔 */
+    boolean bndkFlag = false;
+    /** 是否不可修复 */
+    boolean bkxfFlag = false;
 
-
-
-
-
-    public static EquipPropertyElse resetElseEquipProperty() {
-        EquipPropertyElse elseEquipProperty = new EquipPropertyElse();
-        elseEquipProperty.constitution = 0;
-        elseEquipProperty.magicPower = 0;
-        elseEquipProperty.power = 0;
-        elseEquipProperty.endurance = 0;
-        elseEquipProperty.agile = 0;
-        return elseEquipProperty;
-    }
+    /** 技能等级 */
+    Map<String,Integer> skillLevel = new HashMap<>();
 }

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

@@ -46,6 +46,8 @@ public class EquipTemplate {
     int level;
     /** 品质 1白色,2黄色,3绿色,4蓝色,5紫色,6鬼装*/
     int quality;
+    /** 耐久度 */
+    int durability;
     /** 装备基础属性最小值 */
     EquipPropertyBasic equipPropertyBasicMin;
     /** 装备基础属性最大值 */

+ 0 - 127
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/FixedEquipProperty.java

@@ -1,127 +0,0 @@
-/*
- * ioGame
- * Copyright (C) 2021 - 2023  渔民小镇 (262610965@qq.com、luoyizhu@gmail.com) . All Rights Reserved.
- * # iohao.com . 渔民小镇
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- */
-package com.iohao.mmo.equip.entity;
-
-import com.iohao.mmo.common.kit.RandomKit;
-import lombok.AccessLevel;
-import lombok.Builder;
-import lombok.Data;
-import lombok.experimental.FieldDefaults;
-import org.springframework.data.mongodb.core.mapping.Document;
-
-import java.util.List;
-
-/**
- * 装备固定属性
- * <pre>
- *     装备的基本属性
- * </pre>
- *
- * @author 唐斌
- * @date 2023-07-24
- */
-@Data
-@Builder
-@Document
-@FieldDefaults(level = AccessLevel.PRIVATE)
-public class FixedEquipProperty {
-
-    /** 物理攻击最小值 */
-    int physicsAttackMin;
-    /** 物理攻击最大值 */
-    int physicsAttackMax;
-    /** 法术攻击最小值 */
-    int magicAttackMin;
-    /** 法术攻击最大值 */
-    int magicAttackMax;
-    /** 物理攻击速度 */
-    int physicsAttackSpeed;
-    /** 法术攻击速度 */
-    int magicAttackSpeed;
-
-    /** 物理防御 */
-    int physicsDefense;
-    /** 法术防御 */
-    int magicDefense;
-
-    /** 物理命中 */
-    int physicsHit;
-    /** 法术命中 */
-    int magicHit;
-
-    /** 物理闪避 */
-    int physicsDodge;
-    /** 法术闪避 */
-    int magicDodge;
-
-    /** 生命值 */
-    int hp;
-    /** 能量值 */
-    int mp;
-
-    /** 耐久度 */
-    int durability;
-
-    public static FixedEquipProperty randomFixed(FixedEquipProperty fixedEquipPropertyMin,
-                                                 FixedEquipProperty fixedEquipPropertyMax){
-        if(fixedEquipPropertyMin==null || fixedEquipPropertyMax == null)
-            return FixedEquipProperty.builder().build();
-        return FixedEquipProperty.builder()
-                .physicsAttackMin(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getPhysicsAttackMin(),
-                                fixedEquipPropertyMax.getPhysicsAttackMin()))
-                .physicsAttackMax(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getPhysicsAttackMax(),
-                                fixedEquipPropertyMax.getPhysicsAttackMax()))
-                .magicAttackMin(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getMagicAttackMin(),
-                                fixedEquipPropertyMax.getMagicAttackMin()))
-                .magicAttackMax(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getMagicAttackMax(),
-                                fixedEquipPropertyMax.getMagicAttackMax()))
-                .physicsDefense(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getPhysicsDefense(),
-                                fixedEquipPropertyMax.getPhysicsDefense()))
-                .magicDefense(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getMagicDefense(),
-                                fixedEquipPropertyMax.getMagicDefense()))
-                .magicDefense(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getMagicDefense(),
-                                fixedEquipPropertyMax.getMagicDefense()))
-                .physicsHit(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getPhysicsHit(),
-                                fixedEquipPropertyMax.getPhysicsHit()))
-                .physicsDodge(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getPhysicsDodge(),
-                                fixedEquipPropertyMax.getPhysicsDodge()))
-                .magicHit(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getMagicHit(),
-                                fixedEquipPropertyMax.getMagicHit()))
-                .magicDodge(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getMagicDodge(),
-                                fixedEquipPropertyMax.getMagicDodge()))
-                .hpPct(
-                        RandomKit.randomFromBigDecimal(fixedEquipPropertyMin.getHpPct(),
-                                fixedEquipPropertyMax.getHpPct()))
-                .durability(
-                        RandomKit.randomFromInt(fixedEquipPropertyMin.getDurability(),
-                                fixedEquipPropertyMax.getDurability()))
-                .build();
-    }
-}

+ 87 - 0
logic/equip-logic/src/main/java/com/iohao/mmo/equip/enums/PropertyNameEnum.java

@@ -0,0 +1,87 @@
+package com.iohao.mmo.equip.enums;
+
+/**
+ * 装备属性枚举类
+ */
+public enum PropertyNameEnum {
+    HP("最大气血","hp"),
+    MP("最大法力","mp"),
+    HPBFB("最大气血百分比","hpbfb"),
+    MPBFB("最大法力百分比","mpbfb"),
+    GENGU("根骨","gengu"),
+    JINGLI("精力","jingli"),
+    LILIANG("力量","liliang"),
+    ZHILI("智力","zhili"),
+    MINJIE("敏捷","minjie"),
+    XINGYUN("幸运","xingyun"),
+    ZDWLGJBFB("最大物理攻击百分比","zdwlgjbfb"),
+    ZXWLGJBFB("最小物理攻击百分比","zxwlgjbfb"),
+    ZDFSGJBFB("最大法术攻击百分比","zdfsgjbfb"),
+    ZXFSGJBFB("最小法术攻击百分比","zxfsgjbfb"),
+    BNDK("不能打孔","bndk"),
+    BKXF("不可修复","bkxf"),
+    SZZF("神之祝福","szzf"),
+    WLGJ("物理攻击","wlgj"),
+    FSGJ("法术攻击","fsgj"),
+    WLGJSD("物理攻击速度","wlgjsd"),
+    FSGJSD("法术攻击速度","fsgjsd"),
+    WLFY("物理防御","wlfy"),
+    FSFY("法术防御","fsfy"),
+    WLMZ("物理命中","wlmz"),
+    FSMZ("法术命中","fsmz"),
+    WLSB("物理躲避","wldb"),
+    FSSB("法术躲避","fsdb"),
+    ZBPDXQDJ("装备佩戴需求等级","zbpdxqdj"),
+    SKILL_SL_10("少林10级技能","skill_sl_10"),
+    SKILL_SL_20("少林20级技能","skill_sl_20"),
+    SKILL_SL_30("少林30级技能","skill_sl_30"),
+    SKILL_GM_10("古墓10级技能","skill_gm_10"),
+    SKILL_GM_20("古墓20级技能","skill_gm_20"),
+    SKILL_GM_30("古墓30级技能","skill_gm_30"),
+    SKILL_GB_10("丐帮10级技能","skill_gb_10"),
+    SKILL_GB_20("丐帮20级技能","skill_gb_20"),
+    SKILL_GB_30("丐帮30级技能","skill_gb_30"),
+    SKILL_HS_10("华山10级技能","skill_hs_10"),
+    SKILL_HS_20("华山20级技能","skill_hs_20"),
+    SKILL_HS_30("华山30级技能","skill_hs_30"),
+    SKILL_KL_10("昆仑10级技能","skill_kl_10"),
+    SKILL_KL_20("昆仑20级技能","skill_kl_20"),
+    SKILL_KL_30("昆仑30级技能","skill_kl_30");
+    private String name;
+    private String code;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    private PropertyNameEnum(String name,String code){
+        this.name = name;
+        this.code = code;
+    }
+
+    @Override
+    public String toString(){
+        return this.name + "-" + this.code;
+    }
+
+    public static PropertyNameEnum getByCode(String code){
+        for(PropertyNameEnum propertyNameEnum : PropertyNameEnum.values()){
+            if(propertyNameEnum.getCode().equals(code))            {
+                return propertyNameEnum;
+            }
+        }
+        return null;
+    }
+}

+ 187 - 0
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipEntryTemplateService.java

@@ -0,0 +1,187 @@
+/*
+ * ioGame
+ * Copyright (C) 2021 - 2023  渔民小镇 (262610965@qq.com、luoyizhu@gmail.com) . All Rights Reserved.
+ * # iohao.com . 渔民小镇
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+package com.iohao.mmo.equip.service;
+
+import com.iohao.mmo.common.config.GameCode;
+import com.iohao.mmo.common.provide.item.ItemTypeIdConst;
+import com.iohao.mmo.equip.entity.*;
+import com.iohao.mmo.equip.enums.PropertyNameEnum;
+import lombok.AllArgsConstructor;
+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.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 装备词条库
+ *
+ * @author 唐斌
+ * @date 2023-07-30
+ * @description: 装备库实现类
+ */
+@Service
+@AllArgsConstructor
+public class EquipEntryTemplateService {
+
+    final MongoTemplate mongoTemplate;
+
+    /**
+     * 通过id查询装备词条库
+     * @param id 装备词条库id
+     * @return
+     */
+    public EquipEntryTemplate findById(String id) {
+        return  mongoTemplate.findById(id, EquipEntryTemplate.class);
+    }
+
+    /**
+     * 通过code查询装备词条库
+     * @param code 装备词条库编码
+     * @return
+     */
+    public EquipEntryTemplate findByCode(String code) {
+        return  mongoTemplate.findOne(
+                Query.query(new Criteria("code").is(code)), EquipEntryTemplate.class);
+    }
+
+    /**
+     * 保存装备词条库
+     * @param equipEntryTemplate 装备词条库
+     */
+    public void save(EquipEntryTemplate equipEntryTemplate) {
+        mongoTemplate.save(equipEntryTemplate);
+    }
+
+    /**
+     * 根据装备词条库id列表批量删除装备库
+     * @param idList 装备词条库id列表
+     */
+    public void delBatch(List<String> idList) {
+        Query query = new Query(new Criteria("id").in(idList));
+        mongoTemplate.remove(query, EquipEntryTemplate.class);
+    }
+
+
+    /**
+     * 初始化装备词条库(临时方法,后期移除改为从运营数据中导入)
+     */
+    public void initEquipTemplate() {
+        // 初始化一些装备配置,后期将移到 excel 中做。
+        EquipEntryTemplate equipEntryTemplate = EquipEntryTemplate.builder()
+                .name("根骨")
+                .code(PropertyNameEnum.GENGU.getCode())
+                .description("根骨")
+                .hitProb(BigDecimal.valueOf(0.10))
+                .entryProperty(
+                        EquipEntryProperty.builder()
+                                .levelMin(1)
+                                .levelMax(10)
+                                .countType(1) // 属性计算方式(1装备加,2装备增加百分比,3全身增加百分比)
+                                .showType(1) // 显示方式(1原值显示,2小数转百分比)
+                                .effectPropertyName(PropertyNameEnum.GENGU.getCode())
+                                .propertyValueMin(BigDecimal.valueOf(1))
+                                .propertyValueMax(BigDecimal.valueOf(5))
+                                .build()
+                )
+                .entryProperty(
+                        EquipEntryProperty.builder()
+                                .levelMin(11)
+                                .levelMax(20)
+                                .countType(1)
+                                .showType(1)
+                                .effectPropertyName(PropertyNameEnum.GENGU.getCode())
+                                .propertyValueMin(BigDecimal.valueOf(4))
+                                .propertyValueMax(BigDecimal.valueOf(10))
+                                .build()
+                )
+                .entryProperty(
+                        EquipEntryProperty.builder()
+                                .levelMin(21)
+                                .levelMax(30)
+                                .countType(1)
+                                .showType(1)
+                                .effectPropertyName(PropertyNameEnum.GENGU.getCode())
+                                .propertyValueMin(BigDecimal.valueOf(7))
+                                .propertyValueMax(BigDecimal.valueOf(15))
+                                .build()
+                )
+                .build();
+        mongoTemplate.save(equipEntryTemplate);
+    }
+
+    /**
+     * 根据装备库列表批量随机新的装备
+     * @param itemTypeIdList 物品分类标识列表
+     * @param userId 用户id
+     * @return
+     */
+    public List<Equip> randomEquipBatch(List<String> itemTypeIdList,long userId){
+        List<Equip> equipList = itemTypeIdList.stream()
+                .map(itemTypeId -> randomEquip(itemTypeId,userId))
+                .toList();
+        return equipList;
+    }
+
+    /**
+     * 根据装备库随机一件新的装备
+     * @param itemTypeId itemTypeId
+     * @param userId 用户id
+     * @return
+     */
+    public Equip randomEquip(String itemTypeId, long userId){
+        //取到装备库
+        EquipTemplate equipTemplate = findByItemTypeId(itemTypeId);
+        GameCode.objNotFound.assertTrue(equipTemplate!=null,"找不到对应装备库");
+        //将装备库属性拷贝到装备中
+        Equip equip = copyTemplate2Equip(equipTemplate);
+        equip.setUserId(userId);
+        mongoTemplate.save(equip);
+        return equip;
+    }
+
+    /**
+     * 根据需要拷贝装备库属性到装备
+     * @param equipTemplate 装备库
+     * @return
+     */
+    public Equip copyTemplate2Equip(EquipTemplate equipTemplate){
+
+        return Equip.builder()
+                .itemTypeId(equipTemplate.getItemTypeId())
+                .quality(0) //品质
+                .fixedEquipProperty(
+                        FixedEquipProperty.randomFixed(equipTemplate.getFixedEquipPropertyMin(),
+                                equipTemplate.getFixedEquipPropertyMax())) //装备固定属性
+                .attrTotal(0)
+                .undistributedAttr(0)
+                .elseEquipProperty(EquipPropertyElse.resetElseEquipProperty()) //初始化分配的具体属性点
+                .position(equipTemplate.getPosition())
+                .level(equipTemplate.getLevel())
+                .identifyCount(0)
+                .fixedEquipPropertyMin(equipTemplate.getFixedEquipPropertyMin())
+                .fixedEquipPropertyMax(equipTemplate.getFixedEquipPropertyMax())
+                .totalAttrMin(equipTemplate.getTotalAttrMin())
+                .totalAttrMax(equipTemplate.getTotalAttrMax())
+                .equipTemplateId(equipTemplate.getItemTypeId())
+                .build();
+    }
+}

+ 0 - 45
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipService.java

@@ -73,37 +73,7 @@ public class EquipService {
         mongoTemplate.remove(query, Equip.class);
     }
 
-    /**
-     * 分配装备属性点
-     * @param equip 带有分配后属性点的装备
-     */
-    public void allotEquip(Equip equip){
-        //判定总点数是否合法
-        Equip oldEquip = findById(equip.getId());
-
-        GameCode.objNotFound.assertTrue(oldEquip!=null);
-
-        EquipPropertyElse elseEquipProperty = equip.getElseEquipProperty();
-        int saveAttrTotal = elseEquipProperty.getConstitution()
-                + elseEquipProperty.getMagicPower()
-                + elseEquipProperty.getPower()
-                + elseEquipProperty.getEndurance()
-                + elseEquipProperty.getAgile();
-
-        GameCode.allotNotEnough.assertTrue(saveAttrTotal<=oldEquip.getAttrTotal());
-
-        // 查询条件,如果数据存在更新
-        Query query = new Query();
-        query.addCriteria(Criteria.where("id").is(equip.getId()));
 
-        // 更新的字段
-        Update update = new Update();
-        //获取分配的字段
-
-        update.set("undistributedAttr", oldEquip.getAttrTotal()-saveAttrTotal);
-        update.set("elseEquipProperty", elseEquipProperty);
-        mongoTemplate.upsert(query,update,Equip.class);
-    }
 
     /**
      * 重新随机总属性点(鉴定装备)
@@ -126,20 +96,5 @@ public class EquipService {
         return replaceEquipAttr(equip,newAttrTotal);
     }
 
-    /**
-     * 替换掉原来装备的属性值,并且重置已分配的属性点
-     * @param equip 装备
-     * @param newAttrTotal 新随机的可分配属性点
-     * @return
-     */
-    private Equip replaceEquipAttr(Equip equip,int newAttrTotal){
-        equip.setElseEquipProperty(EquipPropertyElse.resetElseEquipProperty());
-        equip.setAttrTotal(newAttrTotal);
-        equip.setUndistributedAttr(newAttrTotal);
-        //鉴定次数+1
-        equip.setIdentifyCount(equip.getIdentifyCount()+1);
-        mongoTemplate.save(equip);
-        return equip;
-    }
 
 }