Browse Source

1.添加登录和生成功能

slambb 3 years ago
parent
commit
1e6628e155
44 changed files with 978 additions and 371 deletions
  1. 4 2
      src/main/java/com/td/WaDa/common/service/CommonServiceImpl.java
  2. 6 5
      src/main/java/com/td/WaDa/config/enums/ResultEnum.java
  3. 77 0
      src/main/java/com/td/WaDa/game/comcharacters/controller/ComCharactersController.java
  4. 42 0
      src/main/java/com/td/WaDa/game/comcharacters/pojo/ComCharacters.java
  5. 9 0
      src/main/java/com/td/WaDa/game/comcharacters/repository/ComCharactersRepository.java
  6. 17 0
      src/main/java/com/td/WaDa/game/comcharacters/service/ComCharactersService.java
  7. 124 0
      src/main/java/com/td/WaDa/game/comcharacters/service/ComCharactersServiceImpl.java
  8. 42 0
      src/main/java/com/td/WaDa/game/comcharacters/vo/ComCharactersClientVo.java
  9. 37 0
      src/main/java/com/td/WaDa/game/comcharacters/vo/ComCharactersSimpleVo.java
  10. 37 0
      src/main/java/com/td/WaDa/game/comcharacters/vo/ComCharactersVo.java
  11. 1 1
      src/main/java/com/td/WaDa/game/complayercultivate/serivce/ComPlayerCultivateSerivceImpl.java
  12. 1 1
      src/main/java/com/td/WaDa/game/complayergoods/controller/ComPlayerGoodsController.java
  13. 18 18
      src/main/java/com/td/WaDa/game/complayerland/scheduled/QuartzConfig.java
  14. 2 2
      src/main/java/com/td/WaDa/game/complayerland/service/ComPlayerDisasterServiceImpl.java
  15. 2 2
      src/main/java/com/td/WaDa/game/complayersattri/controller/ComPlayersAttriController.java
  16. 3 3
      src/main/java/com/td/WaDa/game/complayerscore/service/ComPlayerScoreServiceImpl.java
  17. 23 4
      src/main/java/com/td/WaDa/game/comsetting/controller/ComSettingController.java
  18. 23 276
      src/main/java/com/td/WaDa/game/comusers/controller/ComUsersController.java
  19. 12 0
      src/main/java/com/td/WaDa/game/comusers/pojo/ComUsers.java
  20. 1 1
      src/main/java/com/td/WaDa/game/comusers/vo/ComUsersLoginVo.java
  21. 12 0
      src/main/java/com/td/WaDa/game/comusers/vo/ComUsersSimpleVo.java
  22. 18 1
      src/main/java/com/td/WaDa/game/comusers/vo/ComUsersVo.java
  23. 4 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/repository/ExcelCharacterAttriRepository.java
  24. 7 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/service/ExcelCharacterAttriService.java
  25. 23 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/service/ExcelCharacterAttriServiceImpl.java
  26. 15 0
      src/main/java/com/td/WaDa/game/excelcharactercreate/controller/ExcelCharacterCreateController.java
  27. 31 0
      src/main/java/com/td/WaDa/game/excelcharactercreate/pojo/ExcelCharacterCreate.java
  28. 16 0
      src/main/java/com/td/WaDa/game/excelcharactercreate/repository/ExcelCharacterCreateRepository.java
  29. 13 0
      src/main/java/com/td/WaDa/game/excelcharactercreate/service/ExcelCharacterCreateService.java
  30. 35 0
      src/main/java/com/td/WaDa/game/excelcharactercreate/service/ExcelCharacterCreateServiceImpl.java
  31. 28 0
      src/main/java/com/td/WaDa/game/excelcharactercreate/vo/ExcelCharacterCreateClientVo.java
  32. 27 0
      src/main/java/com/td/WaDa/game/excelcharactercreate/vo/ExcelCharacterCreateSimpleVo.java
  33. 27 0
      src/main/java/com/td/WaDa/game/excelcharactercreate/vo/ExcelCharacterCreateVo.java
  34. 15 0
      src/main/java/com/td/WaDa/game/excelcharacterlevel/controller/ExcelCharacterLevelController.java
  35. 31 0
      src/main/java/com/td/WaDa/game/excelcharacterlevel/pojo/ExcelCharacterLevel.java
  36. 9 0
      src/main/java/com/td/WaDa/game/excelcharacterlevel/repository/ExcelCharacterLevelRepository.java
  37. 8 0
      src/main/java/com/td/WaDa/game/excelcharacterlevel/service/ExcelCharacterLevelService.java
  38. 21 0
      src/main/java/com/td/WaDa/game/excelcharacterlevel/service/ExcelCharacterLevelServiceImpl.java
  39. 27 0
      src/main/java/com/td/WaDa/game/excelcharacterlevel/vo/ExcelCharacterLevelSimpleVo.java
  40. 27 0
      src/main/java/com/td/WaDa/game/excelcharacterlevel/vo/ExcelCharacterLevelVo.java
  41. 1 1
      src/main/java/com/td/WaDa/util/CodeDOM.java
  42. 30 0
      src/main/java/com/td/WaDa/util/ExcelDataUtil.java
  43. 63 50
      src/main/java/com/td/WaDa/util/WaDaNetUtil.java
  44. 9 4
      src/main/resources/application.yml

+ 4 - 2
src/main/java/com/td/WaDa/common/service/CommonServiceImpl.java

@@ -8,6 +8,7 @@ import com.td.WaDa.util.CopyUtil;
 import com.td.WaDa.util.ErrorUtil;
 import com.td.WaDa.util.UUIDUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.math3.analysis.function.Identity;
 import org.hibernate.annotations.NotFound;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +16,7 @@ import org.springframework.data.domain.Example;
 import org.springframework.data.domain.Page;
 import org.springframework.util.StringUtils;
 
+import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import java.lang.reflect.Field;
 import java.lang.reflect.ParameterizedType;
@@ -99,8 +101,8 @@ public class CommonServiceImpl<V, E, T> implements CommonService<V, E, T> {
                 //属性的值
                 Object fieldValue = field.get(entity);
 
-                //找出Id主键
-                if (field.isAnnotationPresent(Id.class)) {
+                //找出Id主键,自增的不设置
+                if (field.isAnnotationPresent(Id.class) && !field.isAnnotationPresent(GeneratedValue.class)) {
                     if(!StringUtils.isEmpty(fieldValue)){
                         //如果Id主键不为空,则为更新
                         Optional<E> one = commonRepository.findById((T) fieldValue);

+ 6 - 5
src/main/java/com/td/WaDa/config/enums/ResultEnum.java

@@ -17,6 +17,9 @@ public enum ResultEnum {
     TOKEN_OUT_OF_DATE(303,"用户授权认证没有通过!TOKEN过期,重新获取"),
     TOKEN_DOES_NOT_HAVE_USER_ID(304,"用户授权认证没有通过!TOKEN不存在用户id"),
     NO_PARAMETERS_CARRIED(305,"输入对应参数"),
+
+    META_LOGIN_ERROR(306,"登录失败!"),
+    META_LOGIN_LIMIT(307,"禁止用户登录!"),
     //setting部分
     SETTING_IS_NULL(306,"配置信息不存在"),
     //redis部分
@@ -28,7 +31,7 @@ public enum ResultEnum {
     //用户数据
     USER_DOES_NOT_EXIST(400,"不能存在用户信息!"),
     USER_ENERGY_IS_INSUFFICIENT(401,"用户能量不足!"),
-    USER_VERIFICATION_ERROR(402,"签名校验失败"),
+    USER_VERIFICATION_ERROR(402,"登录验证失败异常!"),
 
     USER_NOT_ADDRESS(403,"用户地址不存在!"),
     USER_LIMIT_LOGIN(404,"用户限制登录!"),
@@ -37,7 +40,6 @@ public enum ResultEnum {
     //角色数据
     PLAYER_DOES_NOT_EXIST(500,"不存在角色信息!"),
     PLAYER_DOES_NOT_ATTRIBUTES(501,"battle player 数据不存在!"),
-
     PLAYER_GOODS_LIMIT_ERROR(510,"背包超过预设长度!"),
     PLAYER_NO_CHEST_INFO(511,"没有对应宝箱类型信息"),
     PLAYER_NO_EQUIP_TYPE(512,"没有对应装备信息"),
@@ -45,12 +47,11 @@ public enum ResultEnum {
     PLAYER_GOODS_NOT_CHEST_TYPE(514,"不是宝箱类型对象"),
     PLAYER_GOODS_WEAR_NUM_ERROR(515,"请输入对应的参数,isWear:0或者1"),
     PLAYER_GOODS_NO_QUIP_REQUIRED(516,"不用获取多余装备"),
-
     PLAYER_GOODS_SEEDS_AMOUNT_ERROR(517,"土地消耗种子数量不足"),
-
     PLAYER_ATTRIBUTE_STRENGTH_IS_NOT(518,"用户体力不足"),
-
     PLAYER_GOODS_SAVE_LOCK(520,"操作繁忙,保存背包失败,稍后再试!"),
+    ROLE_DOES_NOT_EXIST(521,"不存在角色信息!"),
+    ROLE_ADD_ERROR(522,"添加角色信息异常!"),
     //钱包数据
     WALLET_CNT_PLAY_ERROR(601,"钱包CNT支付参数数据错误!"),
     WALLET_SNB_INSUFFICIENT_QUANTITY(602,"snb不足以支付!"),

+ 77 - 0
src/main/java/com/td/WaDa/game/comcharacters/controller/ComCharactersController.java

@@ -0,0 +1,77 @@
+package com.td.WaDa.game.comcharacters.controller;
+
+import com.td.WaDa.annotation.Decrypt;
+import com.td.WaDa.annotation.Encrypt;
+import com.td.WaDa.common.controller.*;
+import com.td.WaDa.common.pojo.Result;
+import com.td.WaDa.config.enums.ResultEnum;
+import com.td.WaDa.game.comcharacters.pojo.ComCharacters;
+import com.td.WaDa.game.comcharacters.vo.ComCharactersClientVo;
+import com.td.WaDa.game.comcharacters.vo.ComCharactersSimpleVo;
+import com.td.WaDa.game.comcharacters.vo.ComCharactersVo;
+import com.td.WaDa.game.comcharacters.service.ComCharactersService;
+import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
+import com.td.WaDa.game.excelcharacterattri.service.ExcelCharacterAttriService;
+import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriSimpleVo;
+import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriVo;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import com.td.WaDa.game.excelcharactercreate.service.ExcelCharacterCreateService;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateSimpleVo;
+import com.td.WaDa.util.CopyUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("/game/comCharacters/")
+public class ComCharactersController extends CommonController<ComCharactersVo, ComCharacters, Integer> {
+    @Autowired
+    private ComCharactersService comCharactersService;
+
+    @Autowired
+    private ExcelCharacterAttriService excelCharacterAttriService;
+
+    /**
+     * 返回三个随机的角色数据
+     *
+     * @param userId
+     * @return
+     */
+    @GetMapping("getRole")
+    @Encrypt
+    public Result<List<ComCharactersClientVo>> getExcelRole(@RequestParam(value = "userId") String userId) {
+        //1.excel 随机拿出number 数据, todo 暂时以attri表为主
+        List<ComCharactersClientVo> excelCharacter = comCharactersService.randomRoleByNumber(3);
+        //2.返回给前端一个character 数据表里面
+        return Result.of(excelCharacter);
+    }
+
+    /**
+     * 玩家选择一个添加角色,
+     * 根据角色id,生成属性,添加成功后, todo 扣除对应的消费金额
+     *
+     * @param userId
+     * @return
+     */
+    @PostMapping("addRole")
+    public Result<ComCharactersSimpleVo> addRole(@RequestParam(value = "userId") String userId,
+                               @RequestParam(value = "name") Integer roleId) {
+
+        ExcelCharacterAttri excelCharacterAttri = excelCharacterAttriService.findByRoleType(roleId);
+        if (excelCharacterAttri == null) {
+            return Result.of(null, false, ResultEnum.ROLE_DOES_NOT_EXIST.getMessage(), ResultEnum.ROLE_DOES_NOT_EXIST.getCode());
+        }
+        try {
+            ComCharacters comCharacters = comCharactersService.addRole(excelCharacterAttri, userId);
+            return Result.of(CopyUtil.copy(comCharacters, ComCharactersSimpleVo.class));
+        }catch (Exception e){
+            return Result.of(null, false, ResultEnum.ROLE_ADD_ERROR.getMessage(), ResultEnum.ROLE_ADD_ERROR.getCode());
+        }
+
+    }
+
+}

+ 42 - 0
src/main/java/com/td/WaDa/game/comcharacters/pojo/ComCharacters.java

@@ -0,0 +1,42 @@
+package com.td.WaDa.game.comcharacters.pojo;
+
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Entity
+@Table(name = "com_characters")
+@Data
+public class ComCharacters implements Serializable {
+    @Id
+    @GeneratedValue(strategy= GenerationType.IDENTITY)
+    private Integer id;//该角色的id
+
+    private String userId;//创建该角色的用户id
+
+    private Integer roleId;//角色生成表 里面对应的id序号
+
+    private Integer roleType;//角色种类(角色等级表和角色属性表相关)
+
+    private String name;//角色名字
+
+    private Integer power;//力量
+
+    private Integer intelligence;//智力值
+
+    private Integer skills;//技巧值
+
+    private Integer random;//随机属性值
+
+    private String professional;//当前职业
+
+    private String action;//携带动作
+
+    private String interactive;//互动事件
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 9 - 0
src/main/java/com/td/WaDa/game/comcharacters/repository/ComCharactersRepository.java

@@ -0,0 +1,9 @@
+package com.td.WaDa.game.comcharacters.repository;
+
+import com.td.WaDa.common.repository.*;
+import com.td.WaDa.game.comcharacters.pojo.ComCharacters;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ComCharactersRepository extends CommonRepository<ComCharacters, Integer>  {
+}

+ 17 - 0
src/main/java/com/td/WaDa/game/comcharacters/service/ComCharactersService.java

@@ -0,0 +1,17 @@
+package com.td.WaDa.game.comcharacters.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.comcharacters.pojo.ComCharacters;
+import com.td.WaDa.game.comcharacters.vo.ComCharactersClientVo;
+import com.td.WaDa.game.comcharacters.vo.ComCharactersVo;
+import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+
+import java.util.List;
+
+public interface ComCharactersService extends CommonService<ComCharactersVo, ComCharacters, Integer> {
+
+    public List<ComCharactersClientVo> randomRoleByNumber(Integer number);
+
+    public ComCharacters addRole(ExcelCharacterAttri excelCharacterAttri, String userId);
+}

+ 124 - 0
src/main/java/com/td/WaDa/game/comcharacters/service/ComCharactersServiceImpl.java

@@ -0,0 +1,124 @@
+package com.td.WaDa.game.comcharacters.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.comcharacters.pojo.ComCharacters;
+import com.td.WaDa.game.comcharacters.vo.ComCharactersClientVo;
+import com.td.WaDa.game.comcharacters.vo.ComCharactersVo;
+import com.td.WaDa.game.comcharacters.repository.ComCharactersRepository;
+import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
+import com.td.WaDa.game.excelcharacterattri.repository.ExcelCharacterAttriRepository;
+import com.td.WaDa.game.excelcharacterattri.service.ExcelCharacterAttriService;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import com.td.WaDa.game.excelcharactercreate.repository.ExcelCharacterCreateRepository;
+import com.td.WaDa.game.excelcharactercreate.service.ExcelCharacterCreateService;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateClientVo;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateVo;
+import com.td.WaDa.game.excelcharacterlevel.service.ExcelCharacterLevelService;
+import com.td.WaDa.util.CopyUtil;
+import com.td.WaDa.util.DoubleUtil;
+import com.td.WaDa.util.UUIDUtil;
+import org.aspectj.weaver.patterns.TypePatternQuestions;
+import org.hibernate.query.criteria.internal.CriteriaBuilderImpl;
+import org.hibernate.query.criteria.internal.expression.function.BasicFunctionExpression;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.criteria.Expression;
+import javax.persistence.criteria.Predicate;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional
+public class ComCharactersServiceImpl extends CommonServiceImpl<ComCharactersVo, ComCharacters, Integer> implements ComCharactersService{
+
+    @PersistenceContext
+    private EntityManager em;
+    @Autowired
+    private ComCharactersRepository comCharactersRepository;
+
+    @Autowired
+    private ExcelCharacterAttriRepository excelCharacterAttriRepository;
+
+    /**
+     * excel表service
+     */
+    @Autowired
+    private ExcelCharacterCreateService excelCharacterCreateService;
+
+    @Autowired
+    private ExcelCharacterAttriService excelCharacterAttriService;
+
+    @Override
+    public List<ComCharactersClientVo> randomRoleByNumber(Integer number) {
+        Specification<ExcelCharacterAttri> specification = (root, query, cb) -> {
+            //Predicate pd = cb.and(cb.equal(root.get("title"), "测试题"));
+            Expression<Double> e = new BasicFunctionExpression<>(
+                    (CriteriaBuilderImpl) cb, Double.class, "rand"
+            );
+            query.orderBy(cb.desc(e));
+            return null;
+        };
+        //1.获取了number 数量的 roleType
+        List<ExcelCharacterAttri> excelCharacterAttrList = excelCharacterAttriRepository.findAll(specification, PageRequest.of(0, number)).toList();
+        //2.根据roleType分类
+        List<ComCharactersClientVo> characters = new ArrayList<>();
+        //3.查询role表全部数据
+        List<Integer> roleIds = excelCharacterAttrList.stream().map(e->e.getRoleType()).collect(Collectors.toList());
+        List<ExcelCharacterCreate> excelCharacterCreates =  excelCharacterCreateService.findRoleIdInByDESC(roleIds);
+
+        Map<Integer, List<ExcelCharacterCreate>> listMap = excelCharacterCreates.stream().collect(Collectors.groupingBy(ExcelCharacterCreate::getRoleId));
+        for (ExcelCharacterAttri excelCharacterAttr : excelCharacterAttrList) {
+            ComCharactersClientVo character = new ComCharactersClientVo();
+
+            character.setRoleId(excelCharacterAttr.getRoleType());
+            character.setRoleType(excelCharacterAttr.getRoleType());
+            List<ExcelCharacterCreate> subExcelCharacterList = listMap.get(excelCharacterAttr.getRoleType());
+            character.setSubCreateClientList(CopyUtil.copyList(subExcelCharacterList,ExcelCharacterCreateClientVo.class));
+            characters.add(character);
+        }
+        return characters;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ComCharacters addRole(ExcelCharacterAttri excelCharacterAttri,String userId) {
+
+        Integer roleType = excelCharacterAttri.getRoleType();//todo 暂时用属性表里面的roleType
+        //1.添加一个角色
+        ComCharacters comCharacters = new ComCharacters();
+        comCharacters.setUserId(userId);
+        comCharacters.setRoleId(roleType);
+        comCharacters.setRoleType(roleType);
+        ExcelCharacterAttri _attr = excelCharacterAttriService.findByRoleType(roleType);
+        //力量
+        Double _powerDouble = new Random().nextDouble() * (_attr.getStartPowerLimitUpper() - _attr.getStartPowerLimitLower()) + _attr.getStartPowerLimitLower();
+        comCharacters.setPower(_powerDouble.intValue());
+        //智力(智慧)
+        Double _intelligenceDouble = new Random().nextDouble() * (_attr.getStartWisdomLimitUpper() - _attr.getStartWisdomLimitLower()) + _attr.getStartWisdomLimitLower();
+        comCharacters.setIntelligence(_intelligenceDouble.intValue());
+        //技巧
+        Double _skillsDouble = new Random().nextDouble() * (_attr.getStartSkillLimitUpper() - _attr.getStartSkillLimitLower()) + _attr.getStartSkillLimitLower();
+        comCharacters.setSkills(_skillsDouble.intValue());
+        Double _random = new Random().nextDouble()*_attr.getRandomAttr();
+        comCharacters.setRandom(_random.intValue());
+        String[] itemArray = _attr.getProfessional().split("|");
+
+        int a= (int) Math.floor(new Random().nextDouble()*itemArray.length);
+        comCharacters.setProfessional(itemArray[a]);
+
+        comCharacters.setAction(_attr.getAction());
+
+        comCharacters.setInteractive(_attr.getInteractive());
+
+        //todo 需要扣除对应金币
+
+        comCharactersRepository.save(comCharacters);
+        return comCharacters;
+    }
+}

+ 42 - 0
src/main/java/com/td/WaDa/game/comcharacters/vo/ComCharactersClientVo.java

@@ -0,0 +1,42 @@
+package com.td.WaDa.game.comcharacters.vo;
+
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateClientVo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class ComCharactersClientVo implements Serializable {
+    //private Integer id;//该角色的id
+
+    //private String userId;//创建该角色的用户id
+
+    private Integer roleId;//角色生成表 里面对应的id序号
+
+    private Integer roleType;//角色种类(角色等级表和角色属性表相关)
+
+    private String name;//角色名字
+
+    private Integer power;//力量
+
+    private Integer intelligence;//智力值
+
+    private Integer skills;//技巧值
+
+    private Integer random;//随机属性值
+
+    private String professional;//当前职业
+
+    private String action;//携带动作
+
+    private String interactive;//互动事件
+
+    private List<ExcelCharacterCreateClientVo> subCreateClientList;
+
+    //private Date createTime;//
+    //
+    //private Date updateTime;//
+
+}

+ 37 - 0
src/main/java/com/td/WaDa/game/comcharacters/vo/ComCharactersSimpleVo.java

@@ -0,0 +1,37 @@
+package com.td.WaDa.game.comcharacters.vo;
+
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ComCharactersSimpleVo implements Serializable {
+    private Integer id;//该角色的id
+
+    private String userId;//创建该角色的用户id
+
+    private Integer roleId;//角色生成表 里面对应的id序号
+
+    private Integer roleType;//角色种类(角色等级表和角色属性表相关)
+
+    private String name;//角色名字
+
+    private Integer power;//力量
+
+    private Integer intelligence;//智力值
+
+    private Integer skills;//技巧值
+
+    private Integer random;//随机属性值
+
+    private String professional;//当前职业
+
+    private String action;//携带动作
+
+    private String interactive;//互动事件
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 37 - 0
src/main/java/com/td/WaDa/game/comcharacters/vo/ComCharactersVo.java

@@ -0,0 +1,37 @@
+package com.td.WaDa.game.comcharacters.vo;
+
+import com.td.WaDa. common.pojo.PageCondition;import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ComCharactersVo extends PageCondition implements Serializable {
+    private Integer id;//该角色的id
+
+    private String userId;//创建该角色的用户id
+
+    private Integer roleId;//角色生成表 里面对应的id序号
+
+    private Integer roleType;//角色种类(角色等级表和角色属性表相关)
+
+    private String name;//角色名字
+
+    private Integer power;//力量
+
+    private Integer intelligence;//智力值
+
+    private Integer skills;//技巧值
+
+    private Integer random;//随机属性值
+
+    private String professional;//当前职业
+
+    private String action;//携带动作
+
+    private String interactive;//互动事件
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 1 - 1
src/main/java/com/td/WaDa/game/complayercultivate/serivce/ComPlayerCultivateSerivceImpl.java

@@ -185,7 +185,7 @@ public class ComPlayerCultivateSerivceImpl implements ComPlayerCultivateSerivce
      */
     @Override
     public Integer getTimes(String userId) {
-        Integer totalcount = DappUtil.getChildrenBuyLandCount(userId);
+        Integer totalcount = WaDaNetUtil.getChildrenBuyLandCount(userId);
         long nowcount = comPlayerLandService.findAllByUserId(userId).stream()
                 .filter(a -> a.getMallType() != null && ArrayUtil.contains(CultivateKeys.mallType, a.getMallType())).count();
         ComExplainLandVo comExplainLandVo = new ComExplainLandVo();

+ 1 - 1
src/main/java/com/td/WaDa/game/complayergoods/controller/ComPlayerGoodsController.java

@@ -517,7 +517,7 @@ public class ComPlayerGoodsController extends CommonController<ComPlayerGoodsVo,
             return Result.of(null, false, ResultEnum.SETTING_IS_NULL.getMessage(), ResultEnum.SETTING_IS_NULL.getCode());
         }
         //todo 后台可配置,获取一个链上数据
-        Integer _configStrength = comSettingVo.getMaxStrength(), _chainStrength = DappUtil.getChildrenCount(userId);
+        Integer _configStrength = comSettingVo.getMaxStrength(), _chainStrength = WaDaNetUtil.getChildrenCount(userId);
         //前端的显示,输出一个不小于0的体力值
         Integer _maxStrength = _configStrength + _chainStrength;
         //1.先判断用户是否有足够的体力,根据snb判断。2. 收取到果实,扣除用户一个体力值

+ 18 - 18
src/main/java/com/td/WaDa/game/complayerland/scheduled/QuartzConfig.java

@@ -29,15 +29,15 @@ public class QuartzConfig {
     @Bean
     public Trigger syncDisasterWeekTrigger() {
         //每隔5秒执行一次
-        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(WeekTrigger);
-
-        //创建触发器
-        Trigger trigger = TriggerBuilder.newTrigger()
-                .forJob(syncDisasterWeekDetail())
-//                .withIdentity("syncUserJobTrigger", TRIGGER_GROUP_NAME)
-                .withSchedule(cronScheduleBuilder)
-                .build();
-        return trigger;
+//        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(WeekTrigger);
+//
+//        //创建触发器
+//        Trigger trigger = TriggerBuilder.newTrigger()
+//                .forJob(syncDisasterWeekDetail())
+////                .withIdentity("syncUserJobTrigger", TRIGGER_GROUP_NAME)
+//                .withSchedule(cronScheduleBuilder)
+//                .build();
+        return null;
     }
 
 
@@ -53,14 +53,14 @@ public class QuartzConfig {
     @Bean
     public Trigger syncDisasterDayTrigger() {
         //每隔5秒执行一次
-        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(DayTrigger);
-
-        //创建触发器
-        Trigger trigger = TriggerBuilder.newTrigger()
-                .forJob(syncDisasterDayJobDetail())
-//                .withIdentity("syncDisasterDayTrigger", TRIGGER_GROUP_NAME)
-                .withSchedule(cronScheduleBuilder)
-                .build();
-        return trigger;
+//        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(DayTrigger);
+//
+//        //创建触发器
+//        Trigger trigger = TriggerBuilder.newTrigger()
+//                .forJob(syncDisasterDayJobDetail())
+////                .withIdentity("syncDisasterDayTrigger", TRIGGER_GROUP_NAME)
+//                .withSchedule(cronScheduleBuilder)
+//                .build();
+        return null;
     }
 }

+ 2 - 2
src/main/java/com/td/WaDa/game/complayerland/service/ComPlayerDisasterServiceImpl.java

@@ -8,7 +8,7 @@ import com.td.WaDa.game.complayerland.pojo.ComPlayerDisaster;
 import com.td.WaDa.game.complayerland.repository.ComPlayerDisasterRepository;
 import com.td.WaDa.game.complayerland.scheduled.ComPlayerDisasterDateUtil;
 import com.td.WaDa.game.complayerland.vo.ComPlayerDisasterVo;
-import com.td.WaDa.util.DappUtil;
+import com.td.WaDa.util.WaDaNetUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.domain.Specification;
@@ -58,7 +58,7 @@ public class ComPlayerDisasterServiceImpl extends CommonServiceImpl<ComPlayerDis
      * @return
      */
     private ComPlayerDisaster getData(String userId, Date beginTime, Date endTime) {
-        Map response = DappUtil.getCntPayAndSwapAmount(userId);
+        Map response = WaDaNetUtil.getCntPayAndSwapAmount(userId);
         log.info("接口返回支付兑换结果:{}", JSONUtil.toJsonStr(response));
         Map<String, Object> cntPayAndSwapAmount = (Map) response.get("data");
 

+ 2 - 2
src/main/java/com/td/WaDa/game/complayersattri/controller/ComPlayersAttriController.java

@@ -10,7 +10,7 @@ import com.td.WaDa.game.complayersattri.service.ComPlayersAttriService;
 import com.td.WaDa.game.comsetting.service.ComSettingService;
 import com.td.WaDa.game.comsetting.vo.ComSettingVo;
 import com.td.WaDa.util.CopyUtil;
-import com.td.WaDa.util.DappUtil;
+import com.td.WaDa.util.WaDaNetUtil;
 import com.td.WaDa.util.DateUtil;
 import com.td.WaDa.util.RedisSettingMap;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,7 +54,7 @@ public class ComPlayersAttriController extends CommonController<ComPlayersAttriV
         }
         ComPlayersAttriSimpleVo comPlayersAttriSimpleVo = CopyUtil.copy(playersAttribute, ComPlayersAttriSimpleVo.class);
         //todo 后台可配置,获取一个链上数据
-        Integer _configStrength = comSettingVo.getMaxStrength() , _chainStrength = DappUtil.getChildrenCount(userId);
+        Integer _configStrength = comSettingVo.getMaxStrength() , _chainStrength = WaDaNetUtil.getChildrenCount(userId);
         //前端的显示,输出一个不小于0的体力值
         Integer _maxStrength = _configStrength + _chainStrength;
         Integer _out = _maxStrength - Math.abs(playersAttribute.getStrength());

+ 3 - 3
src/main/java/com/td/WaDa/game/complayerscore/service/ComPlayerScoreServiceImpl.java

@@ -13,7 +13,7 @@ import com.td.WaDa.game.complayerscore.vo.ComPlayerScoreVo;
 import com.td.WaDa.game.comusers.service.ComUsersService;
 import com.td.WaDa.game.comusers.vo.ComUsersVo;
 import com.td.WaDa.util.CopyUtil;
-import com.td.WaDa.util.DappUtil;
+import com.td.WaDa.util.WaDaNetUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -56,7 +56,7 @@ public class ComPlayerScoreServiceImpl extends CommonServiceImpl<ComPlayerScoreV
             return Result.of(null, false, "用户不存在");
         }
         // 链端获取cnt总数
-        Integer totalCount = DappUtil.getChildrenBuyLandAmount(userId);
+        Integer totalCount = WaDaNetUtil.getChildrenBuyLandAmount(userId);
         if (totalCount <= 0) {
             return Result.of(null, false, "消费土地的总cnt不足");
         }
@@ -117,7 +117,7 @@ public class ComPlayerScoreServiceImpl extends CommonServiceImpl<ComPlayerScoreV
     @Transactional(rollbackFor = Exception.class)
     public Map getScore(String userId) {
         // 链端获取cnt总数
-        Integer totalCount = DappUtil.getChildrenBuyLandAmount(userId);
+        Integer totalCount = WaDaNetUtil.getChildrenBuyLandAmount(userId);
         Integer oldTotalCnt = comPlayerScoreRepository.findAllByUserId(userId).stream()
                 .map(ComPlayerScore::getTotalCnt).reduce(0, Integer::sum);
 

+ 23 - 4
src/main/java/com/td/WaDa/game/comsetting/controller/ComSettingController.java

@@ -10,6 +10,13 @@ import com.td.WaDa.game.comsetting.vo.ComSettingVo;
 import com.td.WaDa.game.comsetting.service.ComSettingService;
 import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriSimpleVo;
 import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriVo;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import com.td.WaDa.game.excelcharactercreate.service.ExcelCharacterCreateService;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateSimpleVo;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateVo;
+import com.td.WaDa.game.excelcharacterlevel.service.ExcelCharacterLevelService;
+import com.td.WaDa.game.excelcharacterlevel.vo.ExcelCharacterLevelSimpleVo;
+import com.td.WaDa.game.excelcharacterlevel.vo.ExcelCharacterLevelVo;
 import com.td.WaDa.game.exceldrop.service.ExcelDropService;
 import com.td.WaDa.game.exceldrop.vo.ExcelDropVo;
 import com.td.WaDa.game.excelprop.service.ExcelPropService;
@@ -41,6 +48,12 @@ public class ComSettingController extends CommonController<ComSettingVo, ComSett
     @Autowired
     private RedisSettingMap redisSettingMap;
 
+    @Autowired
+    private ExcelCharacterLevelService excelCharacterLevelService;
+
+    @Autowired
+    private ExcelCharacterCreateService excelCharacterCreateService;
+
     @Autowired
     private ExcelCharacterAttriService excelCharacterAttriService;
 
@@ -137,11 +150,17 @@ public class ComSettingController extends CommonController<ComSettingVo, ComSett
 
                 return null;
             case "角色等级":
-
-                return null;
+                List<ExcelCharacterLevelVo> characterLevelVoList = ExcelDataUtil.setCharacterLevel(excelReader);
+                for (ExcelCharacterLevelVo objects : characterLevelVoList) {
+                    excelCharacterLevelService.save(objects);
+                }
+                return Result.of(CopyUtil.copyList(characterLevelVoList, ExcelCharacterLevelSimpleVo.class));
             case "角色生成":
-
-                return null;
+                List<ExcelCharacterCreateVo> characterCreateReaderList = ExcelDataUtil.setCharacterCreate(excelReader);
+                for (ExcelCharacterCreateVo objects : characterCreateReaderList) {
+                    excelCharacterCreateService.save(objects);
+                }
+                return Result.of(CopyUtil.copyList(characterCreateReaderList, ExcelCharacterCreateSimpleVo.class));
             case "角色属性":
                 List<ExcelCharacterAttriVo> characterReaderList = ExcelDataUtil.setCharacterAttributes(excelReader);
                 for (ExcelCharacterAttriVo objects : characterReaderList) {

+ 23 - 276
src/main/java/com/td/WaDa/game/comusers/controller/ComUsersController.java

@@ -1,9 +1,7 @@
 package com.td.WaDa.game.comusers.controller;
 
-import cn.hutool.crypto.asymmetric.KeyType;
-import cn.hutool.crypto.asymmetric.RSA;
+import cn.hutool.json.JSONObject;
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.td.WaDa.annotation.Decrypt;
 import com.td.WaDa.annotation.Encrypt;
 import com.td.WaDa.common.controller.*;
@@ -24,7 +22,6 @@ import com.td.WaDa.game.comusers.service.ComUsersService;
 import com.td.WaDa.sys.syssetting.vo.SysSettingVo;
 import com.td.WaDa.util.*;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.codec.binary.Base64;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.io.Resource;
@@ -37,9 +34,6 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.client.HttpClientErrorException;
 import org.springframework.web.client.RestTemplate;
 
-import javax.script.ScriptException;
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
 import java.util.*;
 
 import static com.td.WaDa.util.MD5Util.createSign;
@@ -104,284 +98,40 @@ public class ComUsersController extends CommonController<ComUsersVo, ComUsers, S
     @Decrypt
     @Encrypt
     public Result<Map> login(ComUsersLoginVo comUsersLoginVo) {
-        log.info(comUsersLoginVo.toString());
-        //DappUtil.MetaPalLogin("1","2");
-        //{
-        //    "uuid":"xxxxxxxxx",    // 必需
-        //    "userName":"xxxx",    // 必需
-        //    "realName":"xxxx",
-        //    "email":"xxxxxx@xxxx.com",    // 必需
-        //    "telephone":null,
-        //    "birthday":null,
-        //    "sex":1,                // 0女1男
-        //    "accontStatus":0,            // 账号状态 0正常,1是禁止登录
-        //    "wallet": “xxxxxxxx”,    // 必需
-        //    "createTime":"2022.04.01-17.33.19",    // 必需
-        //    "updateTime":"2022.04.01-17.33.19",    // 最新一次对账号密码或其他信息的修改时间
-        //}
-        String uuid = "1", address = "address1";
         Map map = new HashMap();
-        String _redisKey = "SNB_SAVE_" + uuid;
-        //todo snb冻结加锁
-        long time = System.currentTimeMillis() + RedisData.getSnbTimeout();
         try {
-            //如果校验通过,生成用户数据,生成token
-            ComUsersVo comUsersVo = comUsersService.findByUserId(uuid);
-            if (comUsersVo == null) {
-                //如果没有用户信息
-                comUsersVo = new ComUsersVo();
-                comUsersVo.setUserId(uuid);
-                comUsersVo.setGold(0);
-                comUsersVo.setDiamond(0);
-                comUsersVo.setCnt(0);
-                comUsersVo.setSnb(0);
-                comUsersVo.setSnbPart(0d);
-                comUsersVo.setLimitTran(0);
-                comUsersVo.setLimitLogin(0);
-                comUsersVo.setAddress(address);
-                comUsersVo.setLastLogin(new Date());
-                comUsersVo.setCreateTime(new Date());
-                comUsersService.save(comUsersVo);
-            } else {
-                //如果是黑名单限制登录的用户,限制登录
-                if (comUsersVo.getLimitLogin().equals(1)) {
-                    map.put("msg", "当前用户限制登录,请联系游戏管理人员!");
-                    return Result.of(map, false, ResultEnum.USER_LIMIT_LOGIN.getMessage(), ResultEnum.USER_LIMIT_LOGIN.getCode());
-                }
-                //记录一下用户的Address
-                if (comUsersVo.getAddress() == null) {
-                    comUsersVo.setAddress(address);
-                }
-                //维护一个最后登录时间
-                comUsersVo.setLastLogin(new Date());
-                // 防止重复操作
-                if (!redisLock.lock(_redisKey, String.valueOf(time))) {
-                    return Result.of(map, false, ResultEnum.USER_LOGIN_LOCK.getMessage(), ResultEnum.USER_LOGIN_LOCK.getCode());
-                }
-                comUsersService.save(comUsersVo);
-                redisLock.unlock(_redisKey, String.valueOf(time));
-
+            Map metaLoginInfo = WaDaNetUtil.MetaPalLogin(comUsersLoginVo.getUsername(),comUsersLoginVo.getPassword());
+            if(!metaLoginInfo.get("code").equals(200)){
+                //登录失败
+                return Result.of(metaLoginInfo, false, ResultEnum.META_LOGIN_ERROR.getMessage(), ResultEnum.META_LOGIN_ERROR.getCode());
             }
-            //生成token
-            final String token = jwtTokenUtil.generateToken(comUsersVo.getUserId());
-            map.put("token", token);
-            map.put("userInfo", CopyUtil.copy(comUsersVo, ComUsersSimpleVo.class));
-            return Result.of(map);
-        } catch (HttpClientErrorException e) {
-            redisLock.unlock(_redisKey, String.valueOf(time));
-            log.error(e.toString());
-            //返回 402 错误
-            map.put("active", active);
-            map.put("response", e.toString());
-            return Result.of(map, false, ResultEnum.USER_VERIFICATION_ERROR.getMessage(), ResultEnum.USER_VERIFICATION_ERROR.getCode());
-        }
-
-    }
-
-    /**
-     * {
-     * "address": "TDw6xsVnDJWsdRBLkWAwXbv4hE2X2JQs5z", // 签名地址
-     * "id": 1, // 所属账户ID
-     * "signature": "0x09fda37fcad4a9bb7b72f652323881a33847be3a44e4403c7a576b3383df30ec6e5e256f28fbdbac5eb0642f304f331783f36d70b5e6fd576818bc42e14624191c", // 用户私钥签名文本
-     * "timestamp": 1641279989, // 签名时间戳,需要在1分钟内完成验签,否则本次签名失效
-     * "sign": "794DA326066EAAC0F9E0D3E94E306B38" // 微信参数签名
-     * }
-     * {
-     * "address": "TDw6xsVnDJWsdRBLkWAwXbv4hE2X2JQs5z", // 签名地址
-     * "id": 1, // 所属账户ID
-     * "signature": "0x09fda37fcad4a9bb7b72f652323881a33847be3a44e4403c7a576b3383df30ec6e5e256f28fbdbac5eb0642f304f331783f36d70b5e6fd576818bc42e14624191c", // 签名文本
-     * "timestamp": 1641279989 // 签名时间戳,需要在1分钟内完成验签,否则本次签名失效
-     * }
-     *
-     * @param address   签名地址
-     * @param id        所属账户ID
-     * @param signature 签名文本
-     * @param timestamp 签名时间戳,需要在1分钟内完成验签,否则本次签名失效
-     * @return
-     */
-    @PostMapping("loginTokenAndVerification")
-    public Result<Map> loginTokenAndVerification(
-            @RequestParam(value = "address") String address,
-            @RequestParam(value = "id") String id,
-            @RequestParam(value = "signature") String signature,
-            @RequestParam(value = "timestamp") Integer timestamp) {
-
-        log.info("loginTokenAndVerification active:" + active);
-        SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();
-        parameters.put("address", address);
-        parameters.put("id", id);
-        parameters.put("signature", signature);
-        parameters.put("timestamp", timestamp);
-
-
-        String sign = createSign(parameters);
-        //log.info("sign:" + sign);
-        MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
-        form.add("address", address);
-        form.add("id", id);
-        form.add("signature", signature);
-        form.add("timestamp", timestamp);
-        form.add("sign", sign);
-        //验证地址
-        //String DAppOnlineUrl = "https://yt.landownership.live/api/account/loginValidate";
-        String DAppOnlineUrl = "http://192.168.20.251/api/account/loginValidate";
-        String DAppTestUrl = "https://wp.landownership.live/api/account/loginValidate";
-
-        String DAppUrl = active.equals("prod") ? DAppOnlineUrl : DAppTestUrl;
-        log.info("DApp登录地址:" + DAppUrl);
-        RestTemplate restTemplate = new RestTemplate();
-        HttpHeaders headers = new HttpHeaders();
-        //设置content-type
-        MediaType type = MediaType.parseMediaType("multipart/form-data");
-        headers.setContentType(type);
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-        //用HttpEntity封装整个请求报文
-        HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);
-        String response = "";
-        Map map = new HashMap();
-
-        String _redisKey = "SNB_SAVE_" + id;
-        //todo snb冻结加锁
-        long time = System.currentTimeMillis() + RedisData.getSnbTimeout();
-        try {
-            response = restTemplate.postForObject(DAppUrl, files, String.class);
-            log.info("response={}", response);
-            //如果校验通过,生成用户数据,生成token
-            ComUsersVo comUsersVo = comUsersService.findByUserId(id);
-            if (comUsersVo == null) {
-                //如果没有用户信息
-                comUsersVo = new ComUsersVo();
-                comUsersVo.setUserId(id);
-                comUsersVo.setGold(0);
-                comUsersVo.setDiamond(0);
-                comUsersVo.setCnt(0);
-                comUsersVo.setSnb(0);
-                comUsersVo.setSnbPart(0d);
-                comUsersVo.setLimitTran(0);
-                comUsersVo.setLimitLogin(0);
-                comUsersVo.setAddress(address);
-                comUsersVo.setLastLogin(new Date());
-                comUsersVo.setCreateTime(new Date());
-                comUsersService.save(comUsersVo);
-            } else {
-                //如果是黑名单限制登录的用户,限制登录
-                if (comUsersVo.getLimitLogin().equals(1)) {
-                    map.put("msg", "当前用户限制登录,请联系游戏管理人员!");
-                    return Result.of(map, false, ResultEnum.USER_LIMIT_LOGIN.getMessage(), ResultEnum.USER_LIMIT_LOGIN.getCode());
-                }
-                //记录一下用户的Address
-                if (comUsersVo.getAddress() == null) {
-                    comUsersVo.setAddress(address);
-                }
-                //维护一个最后登录时间
-                comUsersVo.setLastLogin(new Date());
-
-                // 防止重复操作
-                if (!redisLock.lock(_redisKey, String.valueOf(time))) {
-                    return Result.of(map, false, ResultEnum.USER_LOGIN_LOCK.getMessage(), ResultEnum.USER_LOGIN_LOCK.getCode());
-                }
-                comUsersService.save(comUsersVo);
-                redisLock.unlock(_redisKey, String.valueOf(time));
-
-            }
-            //生成token
-            final String token = jwtTokenUtil.generateToken(comUsersVo.getUserId());
-            map.put("token", token);
-            map.put("active", active);
-            map.put("userInfo", CopyUtil.copy(comUsersVo, ComUsersSimpleVo.class));
-
-            //获取一下用户属性,新增表
-            ComPlayersAttriVo playersAttribute = comPlayersAttriService.findByUserId(comUsersVo.getUserId());
-            if (playersAttribute == null) {
-                // todo player 如果角色不存在的话,直接创建一个。
-                playersAttribute = new ComPlayersAttriVo();
-                playersAttribute.setUserId(comUsersVo.getUserId());
-                playersAttribute.setStrength(0);
-                playersAttribute.setLucky(0);
-                playersAttribute.setResetStrength(DateUtil.getNowDate());
-                playersAttribute.setCreateTime(DateUtil.getNowDate());
-                playersAttribute.setUpdateTime(DateUtil.getNowDate());
-                comPlayersAttriService.save(playersAttribute);
-            } else {
-                //todo 判断是否过了一天,是的话重置体力值
-                if (playersAttribute.getResetStrength() == null) {
-                    playersAttribute.setStrength(0);
-                    playersAttribute.setResetStrength(DateUtil.getNowDate());
-                    comPlayersAttriService.save(playersAttribute);
-                } else {
-                    Long _attributeTime = DateUtil.getOldDateAddDay(playersAttribute.getResetStrength(), 1).getTime() - DateUtil.getNowDate().getTime();
-                    if (_attributeTime <= 0) {
-                        playersAttribute.setStrength(0);
-                        playersAttribute.setResetStrength(DateUtil.getNowDate());
-                        comPlayersAttriService.save(playersAttribute);
-                    }
-                }
-
+            JSONObject jsonObject =  new JSONObject(metaLoginInfo.get("result"));
+            if(jsonObject.get("accountStatus").equals(1)){
+                //禁止登录
+                return Result.of(metaLoginInfo, false, ResultEnum.META_LOGIN_LIMIT.getMessage(), ResultEnum.META_LOGIN_LIMIT.getCode());
             }
-
-
-            //获取一个配置
-            ComSettingVo comSettingVo = redisSettingMap.getComSettingMap(); //comSettingService.get("1").getData();
-            if (comSettingVo.equals(null)) {
-                return Result.of(null, false, ResultEnum.SETTING_IS_NULL.getMessage(), ResultEnum.SETTING_IS_NULL.getCode());
-            }
-            ComPlayersAttriSimpleVo comPlayersAttriSimpleVo = CopyUtil.copy(playersAttribute, ComPlayersAttriSimpleVo.class);
-
-            //获取一个体力值
-            //todo 后台可配置,获取一个链上数据
-            Integer _configStrength = comSettingVo.getMaxStrength(), _chainStrength = DappUtil.getChildrenCount(comUsersVo.getUserId());
-            //前端的显示,输出一个不小于0的体力值
-            Integer _maxStrength = _configStrength + _chainStrength;
-            Integer _out = _maxStrength - Math.abs(playersAttribute.getStrength());
-            comPlayersAttriSimpleVo.setCurrentStrength(_out < 0 ? 0 : _out);
-            //最大值是配置的值和链上数据的值相加
-            comPlayersAttriSimpleVo.setMaxStrength(_maxStrength);
-
-            //返回前端的体力值是读取一个配置的体力值,
-            map.put("playerAttribute", comPlayersAttriSimpleVo);
-            //返回一个游戏配置
-            map.put("gameSetting", CopyUtil.copy(comSettingVo, ComSettingSimpleVo.class));
-            map.put("response", JSON.parse(response));
-
-            // 计算断电损耗
-            comPlayerLogService.powerLoss(id);
-
-            return Result.of(map);
-        } catch (HttpClientErrorException e) {
-            redisLock.unlock(_redisKey, String.valueOf(time));
-            log.error(e.toString());
-            //返回 402 错误
-            response = e.toString();
-            map.put("active", active);
-            map.put("response", response);
-            return Result.of(map, false, ResultEnum.USER_VERIFICATION_ERROR.getMessage(), ResultEnum.USER_VERIFICATION_ERROR.getCode());
-
-        }
-
-    }
-
-
-    @PostMapping("loginToken")
-    public Result<Map> loginToken() {
-        log.info("loginToken active:" + active);
-        String id = "1", address = "address1";
-        Map map = new HashMap();
-        String _redisKey = "SNB_SAVE_" + id;
-        //todo snb冻结加锁
-        long time = System.currentTimeMillis() + RedisData.getSnbTimeout();
-        try {
+            String uuid = jsonObject.getStr("uuid"), address = jsonObject.getStr("wallet");
+            String _redisKey = "SNB_SAVE_" + uuid;
+            //todo snb冻结加锁
+            long time = System.currentTimeMillis() + RedisData.getSnbTimeout();
             //如果校验通过,生成用户数据,生成token
-            ComUsersVo comUsersVo = comUsersService.findByUserId(id);
+            ComUsersVo comUsersVo = comUsersService.findByUserId(uuid);
             if (comUsersVo == null) {
                 //如果没有用户信息
                 comUsersVo = new ComUsersVo();
-                comUsersVo.setUserId(id);
+                comUsersVo.setUserId(uuid);
                 comUsersVo.setGold(0);
                 comUsersVo.setDiamond(0);
                 comUsersVo.setCnt(0);
                 comUsersVo.setSnb(0);
                 comUsersVo.setSnbPart(0d);
+                comUsersVo.setName(jsonObject.getStr("userName"));
+                comUsersVo.setRealName(jsonObject.getStr("realName"));
+                comUsersVo.setEmail(jsonObject.getStr("email"));
+                comUsersVo.setTelephone(jsonObject.getStr("telephone"));
+                comUsersVo.setBirthday(jsonObject.getStr("birthday"));
+                comUsersVo.setSex(jsonObject.getInt("sex"));
+                comUsersVo.setWallet(address);
                 comUsersVo.setLimitTran(0);
                 comUsersVo.setLimitLogin(0);
                 comUsersVo.setAddress(address);
@@ -396,6 +146,7 @@ public class ComUsersController extends CommonController<ComUsersVo, ComUsers, S
                 }
                 //记录一下用户的Address
                 if (comUsersVo.getAddress() == null) {
+                    comUsersVo.setWallet(address);
                     comUsersVo.setAddress(address);
                 }
                 //维护一个最后登录时间
@@ -411,19 +162,15 @@ public class ComUsersController extends CommonController<ComUsersVo, ComUsers, S
             //生成token
             final String token = jwtTokenUtil.generateToken(comUsersVo.getUserId());
             map.put("token", token);
-            map.put("active", active);
             map.put("userInfo", CopyUtil.copy(comUsersVo, ComUsersSimpleVo.class));
-
             return Result.of(map);
         } catch (HttpClientErrorException e) {
-            redisLock.unlock(_redisKey, String.valueOf(time));
             log.error(e.toString());
             //返回 402 错误
             map.put("active", active);
             map.put("response", e.toString());
             return Result.of(map, false, ResultEnum.USER_VERIFICATION_ERROR.getMessage(), ResultEnum.USER_VERIFICATION_ERROR.getCode());
         }
-
     }
 
     /**

+ 12 - 0
src/main/java/com/td/WaDa/game/comusers/pojo/ComUsers.java

@@ -22,6 +22,18 @@ public class ComUsers implements Serializable {
 
     private Double snbPart;//神农呗小数部分
 
+    private String name;//登录名字
+
+    private String realName;//真实名字
+
+    private String email;//邮件地址
+
+    private String telephone;//电话号码
+
+    private String birthday;//生日
+
+    private Integer sex;//性别
+
     private String address;//记录一个用户钱包地址
 
     private Integer limitLogin;//是否限制登录 0:否,1:是

+ 1 - 1
src/main/java/com/td/WaDa/game/comusers/vo/ComUsersLoginVo.java

@@ -12,7 +12,7 @@ public class ComUsersLoginVo implements Serializable {
 
     private String username;
 
-    private Integer password;
+    private String password;
 
     private String captcha;
 

+ 12 - 0
src/main/java/com/td/WaDa/game/comusers/vo/ComUsersSimpleVo.java

@@ -17,6 +17,18 @@ public class ComUsersSimpleVo implements Serializable {
 
     private Double snbPart;//神农呗小数部分
 
+    private String name;//登录名字
+
+    private String realName;//真实名字
+
+    private String email;//邮件地址
+
+    private String telephone;//电话号码
+
+    private String birthday;//生日
+
+    private Integer sex;//性别
+
     private String address;//记录一个用户钱包地址
 
     private Integer limitTran;//是否限制交易 0:否,1:是

+ 18 - 1
src/main/java/com/td/WaDa/game/comusers/vo/ComUsersVo.java

@@ -1,11 +1,14 @@
 package com.td.WaDa.game.comusers.vo;
 
-import com.td.WaDa. common.pojo.PageCondition;import lombok.Data;
+import com.td.WaDa.common.pojo.PageCondition;
+import lombok.Data;
+
 import java.io.Serializable;
 import java.util.Date;
 
 @Data
 public class ComUsersVo extends PageCondition implements Serializable {
+
     private String userId;//用户id
 
     private Integer gold;//游戏本身金币
@@ -18,6 +21,20 @@ public class ComUsersVo extends PageCondition implements Serializable {
 
     private Double snbPart;//神农呗小数部分
 
+    private String name;//登录名字
+
+    private String realName;//真实名字
+
+    private String email;//邮件地址
+
+    private String telephone;//电话号码
+
+    private String birthday;//生日
+
+    private Integer sex;//性别
+
+    private String wallet;//记录一个用户钱包地址
+
     private String address;//记录一个用户钱包地址
 
     private Integer limitLogin;//是否限制登录 0:否,1:是

+ 4 - 0
src/main/java/com/td/WaDa/game/excelcharacterattri/repository/ExcelCharacterAttriRepository.java

@@ -4,6 +4,10 @@ import com.td.WaDa.common.repository.*;
 import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
 import org.springframework.stereotype.Repository;
 
+import java.util.Optional;
+
 @Repository
 public interface ExcelCharacterAttriRepository extends CommonRepository<ExcelCharacterAttri, Integer> {
+
+    Optional<ExcelCharacterAttri> findByRoleType(Integer roleType);
 }

+ 7 - 0
src/main/java/com/td/WaDa/game/excelcharacterattri/service/ExcelCharacterAttriService.java

@@ -4,5 +4,12 @@ import com.td.WaDa.common.service.*;
 import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
 import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriVo;
 
+import java.util.List;
+import java.util.Optional;
+
 public interface ExcelCharacterAttriService extends CommonService<ExcelCharacterAttriVo, ExcelCharacterAttri, Integer> {
+
+    ExcelCharacterAttri findByRoleType(Integer roleType);
+
+
 }

+ 23 - 0
src/main/java/com/td/WaDa/game/excelcharacterattri/service/ExcelCharacterAttriServiceImpl.java

@@ -4,11 +4,22 @@ import com.td.WaDa.common.service.*;
 import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
 import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriVo;
 import com.td.WaDa.game.excelcharacterattri.repository.ExcelCharacterAttriRepository;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import com.td.WaDa.game.excelcharactercreate.service.ExcelCharacterCreateService;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateSimpleVo;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateVo;
+import org.hibernate.query.criteria.internal.CriteriaBuilderImpl;
+import org.hibernate.query.criteria.internal.expression.function.BasicFunctionExpression;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
+import javax.persistence.criteria.Expression;
+import java.util.List;
+import java.util.Optional;
 
 @Service
 @Transactional
@@ -18,4 +29,16 @@ public class ExcelCharacterAttriServiceImpl extends CommonServiceImpl<ExcelChara
     private EntityManager em;
     @Autowired
     private ExcelCharacterAttriRepository excelCharacterAttriRepository;
+
+    @Autowired
+    private ExcelCharacterCreateService excelCharacterCreateService;
+
+    @Override
+    public ExcelCharacterAttri findByRoleType(Integer roleType) {
+        return excelCharacterAttriRepository.findByRoleType(roleType).orElse(null);
+    }
+
+
+
+
 }

+ 15 - 0
src/main/java/com/td/WaDa/game/excelcharactercreate/controller/ExcelCharacterCreateController.java

@@ -0,0 +1,15 @@
+package com.td.WaDa.game.excelcharactercreate.controller;
+
+import com.td.WaDa.common.controller.*;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateVo;
+import com.td.WaDa.game.excelcharactercreate.service.ExcelCharacterCreateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/game/excelCharacterCreate/")
+public class ExcelCharacterCreateController extends CommonController<ExcelCharacterCreateVo, ExcelCharacterCreate, String> {
+    @Autowired
+    private ExcelCharacterCreateService excelCharacterCreateService;
+}

+ 31 - 0
src/main/java/com/td/WaDa/game/excelcharactercreate/pojo/ExcelCharacterCreate.java

@@ -0,0 +1,31 @@
+package com.td.WaDa.game.excelcharactercreate.pojo;
+
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Entity
+@Table(name = "excel_character_create")
+@Data
+public class ExcelCharacterCreate implements Serializable {
+    @Id
+    private String id;//
+
+    private Integer roleId;//角色对应的id序号
+
+    private Integer position;//部位id
+
+    private Integer model;//模型id
+
+    private Integer color;//颜色区间
+
+    private String weight;//权重
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 16 - 0
src/main/java/com/td/WaDa/game/excelcharactercreate/repository/ExcelCharacterCreateRepository.java

@@ -0,0 +1,16 @@
+package com.td.WaDa.game.excelcharactercreate.repository;
+
+import com.td.WaDa.common.repository.*;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import org.springframework.data.domain.Sort;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Optional;
+
+@Repository
+public interface ExcelCharacterCreateRepository extends CommonRepository<ExcelCharacterCreate, String> {
+
+    List<ExcelCharacterCreate> findALlByRoleIdIn(List<Integer> roleId, Sort sort);
+
+}

+ 13 - 0
src/main/java/com/td/WaDa/game/excelcharactercreate/service/ExcelCharacterCreateService.java

@@ -0,0 +1,13 @@
+package com.td.WaDa.game.excelcharactercreate.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateVo;
+
+import java.util.List;
+
+public interface ExcelCharacterCreateService extends CommonService<ExcelCharacterCreateVo, ExcelCharacterCreate, String> {
+
+    List<ExcelCharacterCreate> findRoleIdInByDESC(List<Integer> roleIds);
+
+}

+ 35 - 0
src/main/java/com/td/WaDa/game/excelcharactercreate/service/ExcelCharacterCreateServiceImpl.java

@@ -0,0 +1,35 @@
+package com.td.WaDa.game.excelcharactercreate.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.comcharacters.pojo.ComCharacters;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateVo;
+import com.td.WaDa.game.excelcharactercreate.repository.ExcelCharacterCreateRepository;
+import org.hibernate.query.criteria.internal.CriteriaBuilderImpl;
+import org.hibernate.query.criteria.internal.expression.function.BasicFunctionExpression;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.criteria.Expression;
+import java.util.List;
+
+@Service
+@Transactional
+public class ExcelCharacterCreateServiceImpl extends CommonServiceImpl<ExcelCharacterCreateVo, ExcelCharacterCreate, String> implements ExcelCharacterCreateService{
+
+    @PersistenceContext
+    private EntityManager em;
+    @Autowired
+    private ExcelCharacterCreateRepository excelCharacterCreateRepository;
+
+    @Override
+    public List<ExcelCharacterCreate> findRoleIdInByDESC(List<Integer> roleIds) {
+        return excelCharacterCreateRepository.findALlByRoleIdIn(roleIds,Sort.by(Sort.Direction.DESC,"roleId"));
+    }
+}

+ 28 - 0
src/main/java/com/td/WaDa/game/excelcharactercreate/vo/ExcelCharacterCreateClientVo.java

@@ -0,0 +1,28 @@
+package com.td.WaDa.game.excelcharactercreate.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelCharacterCreateClientVo implements Serializable {
+    //private String id;//
+
+    //private Integer roleId;//角色对应的id序号
+
+    private Integer position;//部位id
+
+    private Integer model;//模型id
+
+    private Integer color;//颜色区间
+
+    private String weight;//权重
+
+    private String note;//备注
+
+    //private Date createTime;//
+    //
+    //private Date updateTime;//
+
+}

+ 27 - 0
src/main/java/com/td/WaDa/game/excelcharactercreate/vo/ExcelCharacterCreateSimpleVo.java

@@ -0,0 +1,27 @@
+package com.td.WaDa.game.excelcharactercreate.vo;
+
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelCharacterCreateSimpleVo implements Serializable {
+    //private String id;//
+
+    private Integer roleId;//角色对应的id序号
+
+    private Integer position;//部位id
+
+    private Integer model;//模型id
+
+    private Integer color;//颜色区间
+
+    private String weight;//权重
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 27 - 0
src/main/java/com/td/WaDa/game/excelcharactercreate/vo/ExcelCharacterCreateVo.java

@@ -0,0 +1,27 @@
+package com.td.WaDa.game.excelcharactercreate.vo;
+
+import com.td.WaDa. common.pojo.PageCondition;import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelCharacterCreateVo extends PageCondition implements Serializable {
+    private String id;//
+
+    private Integer roleId;//角色对应的id序号
+
+    private Integer position;//部位id
+
+    private Integer model;//模型id
+
+    private Integer color;//颜色区间
+
+    private String weight;//权重
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 15 - 0
src/main/java/com/td/WaDa/game/excelcharacterlevel/controller/ExcelCharacterLevelController.java

@@ -0,0 +1,15 @@
+package com.td.WaDa.game.excelcharacterlevel.controller;
+
+import com.td.WaDa.common.controller.*;
+import com.td.WaDa.game.excelcharacterlevel.pojo.ExcelCharacterLevel;
+import com.td.WaDa.game.excelcharacterlevel.vo.ExcelCharacterLevelVo;
+import com.td.WaDa.game.excelcharacterlevel.service.ExcelCharacterLevelService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/game/excelCharacterLevel/")
+public class ExcelCharacterLevelController extends CommonController<ExcelCharacterLevelVo, ExcelCharacterLevel, String> {
+    @Autowired
+    private ExcelCharacterLevelService excelCharacterLevelService;
+}

+ 31 - 0
src/main/java/com/td/WaDa/game/excelcharacterlevel/pojo/ExcelCharacterLevel.java

@@ -0,0 +1,31 @@
+package com.td.WaDa.game.excelcharacterlevel.pojo;
+
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Entity
+@Table(name = "excel_character_level")
+@Data
+public class ExcelCharacterLevel implements Serializable {
+    @Id
+    private String id;//
+
+    private Integer roleType;//角色种类
+
+    private Integer exp;//升级经验
+
+    private Integer power;//力量
+
+    private Integer skill;//技巧
+
+    private Integer wisdom;//智慧
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 9 - 0
src/main/java/com/td/WaDa/game/excelcharacterlevel/repository/ExcelCharacterLevelRepository.java

@@ -0,0 +1,9 @@
+package com.td.WaDa.game.excelcharacterlevel.repository;
+
+import com.td.WaDa.common.repository.*;
+import com.td.WaDa.game.excelcharacterlevel.pojo.ExcelCharacterLevel;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ExcelCharacterLevelRepository extends CommonRepository<ExcelCharacterLevel, String> {
+}

+ 8 - 0
src/main/java/com/td/WaDa/game/excelcharacterlevel/service/ExcelCharacterLevelService.java

@@ -0,0 +1,8 @@
+package com.td.WaDa.game.excelcharacterlevel.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.excelcharacterlevel.pojo.ExcelCharacterLevel;
+import com.td.WaDa.game.excelcharacterlevel.vo.ExcelCharacterLevelVo;
+
+public interface ExcelCharacterLevelService extends CommonService<ExcelCharacterLevelVo, ExcelCharacterLevel, String> {
+}

+ 21 - 0
src/main/java/com/td/WaDa/game/excelcharacterlevel/service/ExcelCharacterLevelServiceImpl.java

@@ -0,0 +1,21 @@
+package com.td.WaDa.game.excelcharacterlevel.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.excelcharacterlevel.pojo.ExcelCharacterLevel;
+import com.td.WaDa.game.excelcharacterlevel.vo.ExcelCharacterLevelVo;
+import com.td.WaDa.game.excelcharacterlevel.repository.ExcelCharacterLevelRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+@Service
+@Transactional
+public class ExcelCharacterLevelServiceImpl extends CommonServiceImpl<ExcelCharacterLevelVo, ExcelCharacterLevel, String> implements ExcelCharacterLevelService{
+
+    @PersistenceContext
+    private EntityManager em;
+    @Autowired
+    private ExcelCharacterLevelRepository excelCharacterLevelRepository;
+}

+ 27 - 0
src/main/java/com/td/WaDa/game/excelcharacterlevel/vo/ExcelCharacterLevelSimpleVo.java

@@ -0,0 +1,27 @@
+package com.td.WaDa.game.excelcharacterlevel.vo;
+
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelCharacterLevelSimpleVo implements Serializable {
+    private String id;//
+
+    private Integer roleType;//角色种类
+
+    private Integer exp;//升级经验
+
+    private Integer power;//力量
+
+    private Integer skill;//技巧
+
+    private Integer wisdom;//智慧
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 27 - 0
src/main/java/com/td/WaDa/game/excelcharacterlevel/vo/ExcelCharacterLevelVo.java

@@ -0,0 +1,27 @@
+package com.td.WaDa.game.excelcharacterlevel.vo;
+
+import com.td.WaDa. common.pojo.PageCondition;import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelCharacterLevelVo extends PageCondition implements Serializable {
+    private String id;//
+
+    private Integer roleType;//角色种类
+
+    private Integer exp;//升级经验
+
+    private Integer power;//力量
+
+    private Integer skill;//技巧
+
+    private Integer wisdom;//智慧
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 1 - 1
src/main/java/com/td/WaDa/util/CodeDOM.java

@@ -550,7 +550,7 @@ public class CodeDOM {
     }
 
     public static void main(String[] args) {
-        String[] tables = {"excel_drop"};
+        String[] tables = {"com_characters"};
         for (String table : tables) {
             String msg = new CodeDOM(table).create();
             System.out.println(msg);

+ 30 - 0
src/main/java/com/td/WaDa/util/ExcelDataUtil.java

@@ -4,6 +4,10 @@ import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
 import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
 import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriVo;
+import com.td.WaDa.game.excelcharactercreate.pojo.ExcelCharacterCreate;
+import com.td.WaDa.game.excelcharactercreate.vo.ExcelCharacterCreateVo;
+import com.td.WaDa.game.excelcharacterlevel.vo.ExcelCharacterLevelSimpleVo;
+import com.td.WaDa.game.excelcharacterlevel.vo.ExcelCharacterLevelVo;
 import com.td.WaDa.game.exceldrop.vo.ExcelDropSimpleVo;
 import com.td.WaDa.game.exceldrop.vo.ExcelDropVo;
 import com.td.WaDa.game.excelprop.vo.ExcelPropVo;
@@ -19,6 +23,32 @@ import java.util.List;
 @Slf4j
 public class ExcelDataUtil {
 
+    /**
+     * 角色升级
+     */
+    public static List<ExcelCharacterLevelVo>  setCharacterLevel(ExcelReader excelReader){
+        excelReader.addHeaderAlias("等级序号","id")
+                .addHeaderAlias("角色种类","roleType")
+                .addHeaderAlias("升级","exp")
+                .addHeaderAlias("力量","power")
+                .addHeaderAlias("技巧","skill")
+                .addHeaderAlias("智慧","wisdom")
+                .addHeaderAlias("备注","note");
+        return excelReader.read(1,3,ExcelCharacterLevelVo.class);
+    }
+    /**
+     * 角色生成
+     */
+    public static List<ExcelCharacterCreateVo>  setCharacterCreate(ExcelReader excelReader){
+        excelReader.addHeaderAlias("部位id","position")
+                .addHeaderAlias("模型","model")
+                .addHeaderAlias("颜色区间","color")
+                .addHeaderAlias("权重","weight")
+                .addHeaderAlias("备注","note")
+                .addHeaderAlias("角色id","roleId");
+        return excelReader.read(1,3,ExcelCharacterCreateVo.class);
+    }
+
     /**
      * 设置角色属性
      */

+ 63 - 50
src/main/java/com/td/WaDa/util/DappUtil.java → src/main/java/com/td/WaDa/util/WaDaNetUtil.java

@@ -1,10 +1,13 @@
 package com.td.WaDa.util;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
@@ -14,71 +17,81 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * dapp工具类
+ * 瓦达工具类
  */
 @Slf4j
 @Component
-public class DappUtil {
+public class WaDaNetUtil {
 
     private static String env;
+
     public static String getEnv() {
         return env;
     }
+
     @Value("${spring.profiles.active}")
     public void setEnv(String env) {
-        DappUtil.env = env;
+        WaDaNetUtil.env = env;
     }
 
     private static String waDaUrl;
+
     public static String getWaDaUrl() {
         return waDaUrl;
     }
+
     @Value("${meta-pal.url}")
     public void setWaDaUrl(String waDaUrl) {
-        DappUtil.waDaUrl = waDaUrl;
+        WaDaNetUtil.waDaUrl = waDaUrl;
     }
 
     /**
      * 登录验证
+     * {
+     * "uuid":"xxxxxxxxx",    // 必需
+     * "userName":"xxxx",    // 必需
+     * "realName":"xxxx",
+     * "email":"xxxxxx@xxxx.com",    // 必需
+     * "telephone":null,
+     * "birthday":null,
+     * "sex":1,                // 0女1男
+     * "accontStatus":0,            // 账号状态 0正常,1是禁止登录
+     * "wallet": “xxxxxxxx”,    // 必需
+     * "createTime":"2022.04.01-17.33.19",    // 必需
+     * "updateTime":"2022.04.01-17.33.19",    // 最新一次对账号密码或其他信息的修改时间
+     * }
      */
-    public static Map MetaPalLogin(String userName,String password){
-        MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
-        form.add("userName", userName);
-        form.add("password", password);
-        //验证地址
-        String DAppUrl = DappUtil.getEnv().equals("prod") ? DappUtil.getWaDaUrl()  : DappUtil.getWaDaUrl();
-        DAppUrl += "/user/login";
-        //log.info("获取用户直推下级的消费土地的总cnt数额:" + DAppUrl);
-        try {
-            RestTemplate restTemplate = new RestTemplate();
-            HttpHeaders headers = new HttpHeaders();
-            //设置content-type
-            MediaType type = MediaType.parseMediaType("multipart/form-data");
-            headers.setContentType(type);
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //用HttpEntity封装整个请求报文
-
-            HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);
-            Map response = restTemplate.postForObject(DAppUrl, files, Map.class);
-            log.info("response={}", response);
-            // response.get("result")
-            return response;
-        } catch (Exception e) {
-            log.error(e.getMessage());
-            return null;
+    public static Map MetaPalLogin(String userName, String password) {
+        // 以 body json体传入
+        ObjectMapper objectMapper = new ObjectMapper();
+        ObjectNode params = objectMapper.createObjectNode();
+        params.put("username", userName);
+        params.put("password", password);
+        String DAppUrl = WaDaNetUtil.getWaDaUrl() + "/user/login";
+        RestTemplate restTemplate = new RestTemplate();
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType(MediaType.APPLICATION_JSON_VALUE);
+        headers.setContentType(type);
+        HttpEntity httpEntity = new HttpEntity<>(params.toString(), headers);
+        ResponseEntity<Map> response = restTemplate.postForEntity(DAppUrl, httpEntity, Map.class);
+        //log.info("response2={}", response);
+        if (response.getStatusCodeValue() == 200) {
+            //log.info("response2={}", response.getBody());
+            return response.getBody();
+        } else {
+            throw new RuntimeException("请求失败!状态:" + response.getStatusCodeValue() + ";信息:系统繁忙!请稍后重试!");
         }
     }
 
     /**
      * 获取用户直推数量(模块1:偷菜)
      * {
-     *     "code": 200,
-     *     "msg": "success",
-     *     "data": 0
+     * "code": 200,
+     * "msg": "success",
+     * "data": 0
      * }
      */
-    public static Integer getChildrenCount(String userId){
+    public static Integer getChildrenCount(String userId) {
 
         MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
         form.add("id", userId);
@@ -86,7 +99,7 @@ public class DappUtil {
         //String DAppChildrenCountOnlineUrl = "https://yt.landownership.live/api/game/childrenCount";
         String DAppChildrenCountOnlineUrl = "http://192.168.20.251/api/game/childrenCount";
         String DAppChildrenCountTestUrl = "https://wp.landownership.live/api/game/childrenCount";
-        String DAppUrl = DappUtil.getEnv().equals("prod") ? DAppChildrenCountOnlineUrl : DAppChildrenCountTestUrl;
+        String DAppUrl = WaDaNetUtil.getEnv().equals("prod") ? DAppChildrenCountOnlineUrl : DAppChildrenCountTestUrl;
         //log.info("用户直推数量地址:" + DAppUrl);
         try {
             RestTemplate restTemplate = new RestTemplate();
@@ -112,12 +125,12 @@ public class DappUtil {
     /**
      * 根据村民ID找到所属村的cnt总支付和总兑换数量(模块4)
      * {
-     *     "code": 200,
-     *     "msg": "success",
-     *     "data": 0
+     * "code": 200,
+     * "msg": "success",
+     * "data": 0
      * }
      */
-    public static Map getCntPayAndSwapAmount(String userId){
+    public static Map getCntPayAndSwapAmount(String userId) {
 
         MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
         form.add("id", userId);
@@ -125,7 +138,7 @@ public class DappUtil {
         //String onlineUrl = "https://yt.landownership.live/api/game/cntPayAndSwapAmount";
         String onlineUrl = "http://192.168.20.251/api/game/cntPayAndSwapAmount";
         String testUrl = "https://wp.landownership.live/api/game/cntPayAndSwapAmount";
-        String DAppUrl = DappUtil.getEnv().equals("prod") ? onlineUrl : testUrl;
+        String DAppUrl = WaDaNetUtil.getEnv().equals("prod") ? onlineUrl : testUrl;
         //log.info("根据村民ID找到所属村的cnt总支付和总兑换数量:" + DAppUrl);
         try {
             RestTemplate restTemplate = new RestTemplate();
@@ -151,12 +164,12 @@ public class DappUtil {
     /**
      * 获取用户直推且有消费土地的人数量(模块7: 放牧与养殖)
      * {
-     *     "code": 200,
-     *     "msg": "success",
-     *     "data": 0
+     * "code": 200,
+     * "msg": "success",
+     * "data": 0
      * }
      */
-    public static Integer getChildrenBuyLandCount(String userId){
+    public static Integer getChildrenBuyLandCount(String userId) {
 
         MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
         form.add("id", userId);
@@ -164,7 +177,7 @@ public class DappUtil {
         //String DAppChildrenCountOnlineUrl = "https://yt.landownership.live/api/game/getChildrenBuyLandCount";
         String DAppChildrenCountOnlineUrl = "http://192.168.20.251/api/game/getChildrenBuyLandCount";
         String DAppChildrenCountTestUrl = "https://wp.landownership.live/api/game/getChildrenBuyLandCount";
-        String DAppUrl = DappUtil.getEnv().equals("prod") ? DAppChildrenCountOnlineUrl : DAppChildrenCountTestUrl;
+        String DAppUrl = WaDaNetUtil.getEnv().equals("prod") ? DAppChildrenCountOnlineUrl : DAppChildrenCountTestUrl;
         //log.info("获取用户直推且有消费土地的人数量:" + DAppUrl);
         try {
             RestTemplate restTemplate = new RestTemplate();
@@ -190,12 +203,12 @@ public class DappUtil {
     /**
      * 获取用户直推下级的消费土地的总cnt数额(模块9: 积分兑换种子)
      * {
-     *     "code": 200,
-     *     "msg": "success",
-     *     "data": 0
+     * "code": 200,
+     * "msg": "success",
+     * "data": 0
      * }
      */
-    public static Integer getChildrenBuyLandAmount(String userId){
+    public static Integer getChildrenBuyLandAmount(String userId) {
 
         MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
         form.add("id", userId);
@@ -203,7 +216,7 @@ public class DappUtil {
         //String DAppChildrenCountOnlineUrl = "https://yt.landownership.live/api/game/getChildrenBuyLandAmount";
         String DAppChildrenCountOnlineUrl = "http://192.168.20.251/api/game/getChildrenBuyLandAmount";
         String DAppChildrenCountTestUrl = "https://wp.landownership.live/api/game/getChildrenBuyLandAmount";
-        String DAppUrl = DappUtil.getEnv().equals("prod") ? DAppChildrenCountOnlineUrl : DAppChildrenCountTestUrl;
+        String DAppUrl = WaDaNetUtil.getEnv().equals("prod") ? DAppChildrenCountOnlineUrl : DAppChildrenCountTestUrl;
         //log.info("获取用户直推下级的消费土地的总cnt数额:" + DAppUrl);
         try {
             RestTemplate restTemplate = new RestTemplate();

+ 9 - 4
src/main/resources/application.yml

@@ -2,7 +2,7 @@
 
 #内置Tomcat容器配置
 server:
-  port: 26001
+  port: 26010
   servlet:
     #应用路径,配置应用路径,可方便进行反向代理
     context-path: /api_dapp
@@ -41,9 +41,6 @@ jwt:
   expiration: 7200000   # 过期时间
   token: Authorization  # 请求头
 
-# 瓦达项目url
-meta-pal:
-  url: https://lionworld.metestsvr.com/marketserver/
 
 ---
 ##### dev 配置 #######
@@ -83,6 +80,10 @@ captcha:
 apply:
   ip:  "" #183.52.205.93
 
+# 瓦达项目url
+meta-pal:
+  url: https://lionworld.metestsvr.com/marketserver/game
+
 ---
 ##### prod 配置 #######
 spring:
@@ -121,3 +122,7 @@ captcha:
 apply:
   ip:
 
+# 瓦达项目url
+meta-pal:
+  url:
+