slambb 3 лет назад
Родитель
Сommit
e59cdcc3ce
44 измененных файлов с 1135 добавлено и 119 удалено
  1. 5 0
      pom.xml
  2. 20 17
      src/main/java/com/td/WaDa/BossApplication.java
  3. 33 27
      src/main/java/com/td/WaDa/aspect/SafetyAspect.java
  4. 12 4
      src/main/java/com/td/WaDa/config/security/CaptchaFilterConfig.java
  5. 6 1
      src/main/java/com/td/WaDa/config/security/LoginFailureHandlerConfig.java
  6. 14 11
      src/main/java/com/td/WaDa/config/security/LoginSuccessHandlerConfig.java
  7. 12 9
      src/main/java/com/td/WaDa/filter/gameFilter.java
  8. 138 0
      src/main/java/com/td/WaDa/game/comsetting/controller/ComSettingController.java
  9. 39 0
      src/main/java/com/td/WaDa/game/comsetting/vo/ExcelCharacterAttributes.java
  10. 37 36
      src/main/java/com/td/WaDa/game/comusers/controller/ComUsersController.java
  11. 22 0
      src/main/java/com/td/WaDa/game/comusers/vo/ComUsersLoginVo.java
  12. 15 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/controller/ExcelCharacterAttriController.java
  13. 29 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/pojo/ExcelCharacterAttri.java
  14. 9 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/repository/ExcelCharacterAttriRepository.java
  15. 8 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/service/ExcelCharacterAttriService.java
  16. 21 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/service/ExcelCharacterAttriServiceImpl.java
  17. 28 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/vo/ExcelCharacterAttriSimpleVo.java
  18. 27 0
      src/main/java/com/td/WaDa/game/excelcharacterattri/vo/ExcelCharacterAttriVo.java
  19. 15 0
      src/main/java/com/td/WaDa/game/exceldrop/controller/ExcelDropController.java
  20. 41 0
      src/main/java/com/td/WaDa/game/exceldrop/pojo/ExcelDrop.java
  21. 9 0
      src/main/java/com/td/WaDa/game/exceldrop/repository/ExcelDropRepository.java
  22. 8 0
      src/main/java/com/td/WaDa/game/exceldrop/service/ExcelDropService.java
  23. 21 0
      src/main/java/com/td/WaDa/game/exceldrop/service/ExcelDropServiceImpl.java
  24. 40 0
      src/main/java/com/td/WaDa/game/exceldrop/vo/ExcelDropSimpleVo.java
  25. 37 0
      src/main/java/com/td/WaDa/game/exceldrop/vo/ExcelDropVo.java
  26. 15 0
      src/main/java/com/td/WaDa/game/excelprop/controller/ExcelPropController.java
  27. 37 0
      src/main/java/com/td/WaDa/game/excelprop/pojo/ExcelProp.java
  28. 9 0
      src/main/java/com/td/WaDa/game/excelprop/repository/ExcelPropRepository.java
  29. 8 0
      src/main/java/com/td/WaDa/game/excelprop/service/ExcelPropService.java
  30. 21 0
      src/main/java/com/td/WaDa/game/excelprop/service/ExcelPropServiceImpl.java
  31. 34 0
      src/main/java/com/td/WaDa/game/excelprop/vo/ExcelPropSimpleVo.java
  32. 33 0
      src/main/java/com/td/WaDa/game/excelprop/vo/ExcelPropVo.java
  33. 15 0
      src/main/java/com/td/WaDa/game/excelscene/controller/ExcelSceneController.java
  34. 41 0
      src/main/java/com/td/WaDa/game/excelscene/pojo/ExcelScene.java
  35. 9 0
      src/main/java/com/td/WaDa/game/excelscene/repository/ExcelSceneRepository.java
  36. 8 0
      src/main/java/com/td/WaDa/game/excelscene/service/ExcelSceneService.java
  37. 21 0
      src/main/java/com/td/WaDa/game/excelscene/service/ExcelSceneServiceImpl.java
  38. 39 0
      src/main/java/com/td/WaDa/game/excelscene/vo/ExcelSceneSimpleVo.java
  39. 37 0
      src/main/java/com/td/WaDa/game/excelscene/vo/ExcelSceneVo.java
  40. 25 9
      src/main/java/com/td/WaDa/util/CodeDOM.java
  41. 41 2
      src/main/java/com/td/WaDa/util/DappUtil.java
  42. 89 0
      src/main/java/com/td/WaDa/util/ExcelDataUtil.java
  43. 6 1
      src/main/resources/application.yml
  44. 1 2
      src/main/resources/static/common/common.js

+ 5 - 0
pom.xml

@@ -27,6 +27,11 @@
             <artifactId>hutool-all</artifactId>
             <version>5.7.22</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>4.1.2</version>
+        </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>

+ 20 - 17
src/main/java/com/td/WaDa/BossApplication.java

@@ -1,4 +1,5 @@
 package com.td.WaDa;
+
 import com.td.WaDa.common.service.ComConfigService;
 import com.td.WaDa.game.comusers.service.ComUsersService;
 import com.td.WaDa.sys.sysmenu.vo.SysMenuVo;
@@ -114,7 +115,8 @@ class IndexController {
                 ////系统启动时获取数据库数据,设置到公用静态集合sysSettingMap
                 ////SysSettingVo sysSettingVo = sysSettingService.get("1").getData();
                 ////SysSettingUtil.setSysSettingMap(sysSettingVo);
-                //redisSettingMap.updateSysSettingMap();
+                //更新sys_setting
+                redisSettingMap.updateSysSettingMap();
                 //log.info(redisSettingMap.getSysSettingMap().toString());
                 ////系统启动时获取数据库数据,设置到公用静态集合sysSettingTaskMap
                 ////SysSettingTaskVo sysSettingTaskVo = sysSettingTaskService.get("1").getData();
@@ -143,11 +145,11 @@ class IndexController {
      * 跳转登录页面
      */
     @GetMapping("loginPage")
-    public ModelAndView login(){
+    public ModelAndView login() {
         ModelAndView modelAndView = new ModelAndView("login");
 
         //系统信息 SysSettingUtil.getSysSetting()
-        modelAndView.addObject("sys",redisSettingMap.getSysSettingMap());
+        modelAndView.addObject("sys", redisSettingMap.getSysSettingMap());
 
         //系统审查信息 SysSettingTaskUtil.getSysSettingTask()
         modelAndView.addObject("sysSettingTask", redisSettingMap.getSysSettingTaskMap());
@@ -157,7 +159,7 @@ class IndexController {
 
 
         //后端公钥
-        String publicKey = RsaUtil.getPublicKey();
+        String publicKey = redisSettingMap.getRSAPublicKeyBase64();  //RsaUtil.getPublicKey();
         log.info("login后端公钥:" + publicKey);
         modelAndView.addObject("publicKey", publicKey);
 
@@ -168,21 +170,22 @@ class IndexController {
      * 跳转首页
      */
     @GetMapping("")
-    public void index1(HttpServletResponse response){
+    public void index1(HttpServletResponse response) {
         //内部重定向
         try {
-            response.sendRedirect(contextPath+"/index");
+            response.sendRedirect(contextPath + "/index");
         } catch (IOException e) {
             //输出到日志文件中
             log.error(ErrorUtil.errorInfoToString(e));
         }
     }
+
     @GetMapping("index")
-    public ModelAndView index(){
+    public ModelAndView index() {
         ModelAndView modelAndView = new ModelAndView("index");
 
         //系统信息 SysSettingUtil.getSysSetting()
-        modelAndView.addObject("sys",redisSettingMap.getSysSettingMap());
+        modelAndView.addObject("sys", redisSettingMap.getSysSettingMap());
 
         //系统审查信息 SysSettingTaskUtil.getSysSettingTask()
         modelAndView.addObject("sysSettingTask", redisSettingMap.getSysSettingTaskMap());
@@ -193,23 +196,23 @@ class IndexController {
         //登录用户
         SysUserVo sysUserVo = sysUserService.findByLoginName(SecurityUtil.getLoginUser().getUsername()).getData();
         sysUserVo.setPassword(null);//隐藏部分属性
-        modelAndView.addObject( "loginUser", sysUserVo);
+        modelAndView.addObject("loginUser", sysUserVo);
 
         //登录用户系统菜单
         List<SysMenuVo> menuVoList = sysUserMenuService.findByUserId(sysUserVo.getUserId()).getData();
-        modelAndView.addObject("menuList",menuVoList);
+        modelAndView.addObject("menuList", menuVoList);
 
         //登录用户快捷菜单
-        List<SysShortcutMenuVo> shortcutMenuVoList= sysShortcutMenuService.findByUserId(sysUserVo.getUserId()).getData();
-        modelAndView.addObject("shortcutMenuList",shortcutMenuVoList);
+        List<SysShortcutMenuVo> shortcutMenuVoList = sysShortcutMenuService.findByUserId(sysUserVo.getUserId()).getData();
+        modelAndView.addObject("shortcutMenuList", shortcutMenuVoList);
 
         //后端公钥
-        String publicKey = RsaUtil.getPublicKey();
+        String publicKey = redisSettingMap.getRSAPublicKeyBase64(); // RsaUtil.getPublicKey();
         log.info("index后端公钥:" + publicKey);
         modelAndView.addObject("publicKey", publicKey);
 
         //获取一个全平台的用户数据
-        Long allComUserCount =  comUsersService.findAllCount();
+        Long allComUserCount = comUsersService.findAllCount();
         modelAndView.addObject("allComUserCount", allComUserCount);
 
         Long todayComUserCount = comUsersService.newToday();
@@ -233,7 +236,7 @@ class IndexController {
 
         //将验证码放到HttpSession里面
         request.getSession().setAttribute("verifyCode", verifyCode);
-         log.info("本次生成的验证码为:" + verifyCode + ",已存放到HttpSession中");
+        log.info("本次生成的验证码为:" + verifyCode + ",已存放到HttpSession中");
 
         //设置输出的内容的类型为JPEG图像
         response.setContentType("image/jpeg");
@@ -248,7 +251,7 @@ class IndexController {
      */
     @GetMapping("monitor")
     public ModelAndView monitor() {
-        return new ModelAndView("monitor.html","port",port);
+        return new ModelAndView("monitor.html", "port", port);
     }
 
     /**
@@ -256,6 +259,6 @@ class IndexController {
      */
     @GetMapping("logging")
     public ModelAndView logging() {
-        return new ModelAndView("logging.html","port",port);
+        return new ModelAndView("logging.html", "port", port);
     }
 }

+ 33 - 27
src/main/java/com/td/WaDa/aspect/SafetyAspect.java

@@ -1,7 +1,10 @@
 package com.td.WaDa.aspect;
 
+import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
 import com.td.WaDa.annotation.Decrypt;
 import com.td.WaDa.annotation.Encrypt;
+import com.td.WaDa.common.pojo.ParameterRequestWrapper;
 import com.td.WaDa.common.pojo.Result;
 import com.td.WaDa.util.*;
 import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -23,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.text.SimpleDateFormat;
+import java.util.HashMap;
 
 /**
  * AES + RSA 加解密AOP处理
@@ -42,31 +46,27 @@ public class SafetyAspect {
         this.jwtTokenUtil = jwtTokenUtil;
         this.tokenHeader = tokenHeader;
     }
+
     /**
      * Pointcut 切入点
-     * 匹配
-     * com.td.boss.sys.*.controller、
-     * com.td.boss.*.controller包下面的所有方法
-     * "execution(public * com.td.boss.*.controller.*.*(..))" && ! execution(public * com.td.boss.game.*.controller.*.*(..))
-     *
-     * 下面需要验证加密
-     *  "execution(public * com.td.boss.game.*.controller.*.*(..))"
      */
     @Pointcut(value = "execution(public * com.td.WaDa.sys.*.controller.*.*(..)) || " +
-            "execution(public * com.td.WaDa.*.controller.*.*(..))")
-    public void safetyAspect() {}
+            "execution(public * com.td.WaDa.*.controller.*.*(..))||" +
+            "execution(public * com.td.WaDa.game.*.controller.*.*(..))")
+    public void safetyAspect() {
+    }
 
     /**
      * 环绕通知
      */
     @Around(value = "safetyAspect()")
     public Object around(ProceedingJoinPoint pjp) {
-       try {
+        try {
             log.info("---------------进入aop---------------");
-           //判断api加密开关是否开启 SysSettingUtil.getSysSetting()
-           if("N".equals(redisSettingMap.getSysSettingMap().getSysApiEncrypt())){
-               return pjp.proceed(pjp.getArgs());
-           }
+            //判断api加密开关是否开启 SysSettingUtil.getSysSetting()
+            if ("N".equals(redisSettingMap.getSysSettingMap().getSysApiEncrypt())) {
+                return pjp.proceed(pjp.getArgs());
+            }
 
 
             ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
@@ -105,7 +105,7 @@ public class SafetyAspect {
             //jackson
             ObjectMapper mapper = new ObjectMapper();
             //jackson 序列化和反序列化 date处理
-            mapper.setDateFormat( new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+            mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
 
             //执行方法之前解密,且只拦截post请求
             if ("post".equals(httpMethod) && hasDecrypt) {
@@ -115,26 +115,30 @@ public class SafetyAspect {
                 String aesKey = request.getParameter("aesKey");
                 //前端公钥
                 publicKey = request.getParameter("publicKey");
-
                 log.info("前端公钥:" + publicKey);
-
                 //后端私钥解密的到AES的key
-                byte[] plaintext = RsaUtil.decryptByPrivateKey(Base64.decodeBase64(aesKey), RsaUtil.getPrivateKey());
+                //切换一个方式
+                log.info(redisSettingMap.getRSAPrivateKeyBase64());
+                RSA rsa = new RSA(redisSettingMap.getRSAPrivateKeyBase64(), null);
+                byte[] plaintext = rsa.decrypt(Base64.decodeBase64(aesKey), KeyType.PrivateKey);
+                //byte[] plaintext = RsaUtil.decryptByPrivateKey(Base64.decodeBase64(aesKey), RsaUtil.getPrivateKey());
                 aesKey = new String(plaintext);
                 log.info("解密出来的AES的key:" + aesKey);
-
-
                 //AES解密得到明文data数据
                 String decrypt = AesUtil.decrypt(data, aesKey);
                 log.info("解密出来的data数据:" + decrypt);
-
                 //设置到方法的形参中,目前只能设置只有一个参数的情况
                 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-
                 //注:参数最好用Vo对象来接参,单用String来接,args有长度但获取为空,很奇怪不知道为什么
-                if(args.length > 0){
+                if (args.length > 0) {
                     args[0] = mapper.readValue(decrypt, args[0].getClass());
                 }
+                //HashMap hashMap = mapper.readValue(decrypt, HashMap.class);
+                //ParameterRequestWrapper parameterRequestWrapper = new ParameterRequestWrapper(request);
+                //for (Object key : hashMap.keySet()) {
+                //    parameterRequestWrapper.addParameter(String.valueOf(key), hashMap.get(key));
+                //}
+                //request = (HttpServletRequest) parameterRequestWrapper;
             }
 
             //执行并替换最新形参参数   PS:这里有一个需要注意的地方,method方法必须是要public修饰的才能设置值,private的设置不了
@@ -151,8 +155,10 @@ public class SafetyAspect {
                 String data = AesUtil.encrypt(dataString, key);
 
                 //用前端的公钥来解密AES的key,并转成Base64
-                String aesKey = Base64.encodeBase64String(RsaUtil.encryptByPublicKey(key.getBytes(), publicKey));
-
+                //String aesKey = Base64.encodeBase64String(RsaUtil.encryptByPublicKey(key.getBytes(), publicKey));
+                //切换一个方式
+                RSA rsa = new RSA(null, publicKey);
+                String aesKey = Base64.encodeBase64String(rsa.encrypt(key.getBytes(), KeyType.PublicKey));
                 //转json字符串并转成Object对象,设置到Result中并赋值给返回值o
                 o = Result.of(mapper.readValue("{\"data\":\"" + data + "\",\"aesKey\":\"" + aesKey + "\"}", Object.class));
             }
@@ -161,8 +167,8 @@ public class SafetyAspect {
             return o;
 
         } catch (Throwable e) {
-           //输出到日志文件中
-           log.error(ErrorUtil.errorInfoToString(e));
+            //输出到日志文件中
+            log.error(ErrorUtil.errorInfoToString(e));
             return Result.of(null, false, "加解密异常:\n\t" + e.getMessage());
         }
     }

+ 12 - 4
src/main/java/com/td/WaDa/config/security/CaptchaFilterConfig.java

@@ -1,5 +1,7 @@
 package com.td.WaDa.config.security;
 
+import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
 import com.td.WaDa.common.pojo.ParameterRequestWrapper;
 import com.td.WaDa.util.*;
 import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -91,10 +93,13 @@ public class CaptchaFilterConfig implements Filter {
                     log.info("前端data:" + data);
                     log.info("前端aesKey:" + aesKey);
                     log.info("前端公钥:" + publicKey);
-                    log.info("私钥:" + RsaUtil.getPrivateKey());
-                    String _aesKey2 = aesKey;
+                    //log.info("私钥:" + RsaUtil.getPrivateKey());
+                    //String _aesKey2 = aesKey;
                     //后端私钥解密的到AES的key
-                    byte[] plaintext = RsaUtil.decryptByPrivateKey(Base64.decodeBase64(aesKey), RsaUtil.getPrivateKey());
+                    //切换一个方式
+                    RSA rsa = new RSA(redisSettingMap.getRSAPrivateKeyBase64(), null);
+                    byte[] plaintext = rsa.decrypt(Base64.decodeBase64(aesKey), KeyType.PrivateKey);
+                    //byte[] plaintext = RsaUtil.decryptByPrivateKey(Base64.decodeBase64(aesKey), RsaUtil.getPrivateKey());
                     aesKey = new String(plaintext);
                     log.info("解密出来的AES的key:" + aesKey);
                     //log.info("前端aesKey2:" + _aesKey2);
@@ -142,7 +147,10 @@ public class CaptchaFilterConfig implements Filter {
                         String data = AesUtil.encrypt(dataString, key);
 
                         //用前端的公钥来解密AES的key,并转成Base64
-                        String aesKey = Base64.encodeBase64String(RsaUtil.encryptByPublicKey(key.getBytes(), publicKey));
+                        //String aesKey = Base64.encodeBase64String(RsaUtil.encryptByPublicKey(key.getBytes(), publicKey));
+                        //切换一个方式
+                        RSA rsa = new RSA(null, publicKey);
+                        String aesKey = Base64.encodeBase64String(rsa.encrypt(key.getBytes(), KeyType.PublicKey));
                         dataString = "{\"data\":{\"data\":\"" + data + "\",\"aesKey\":\"" + aesKey + "\"}}";
                     } catch (Throwable e) {
                         //输出到日志文件中

+ 6 - 1
src/main/java/com/td/WaDa/config/security/LoginFailureHandlerConfig.java

@@ -1,5 +1,7 @@
 package com.td.WaDa.config.security;
 
+import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
 import com.td.WaDa.util.*;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -51,7 +53,10 @@ public class LoginFailureHandlerConfig implements AuthenticationFailureHandler {
                 String data = AesUtil.encrypt(msg, key);
 
                 //用前端的公钥来解密AES的key,并转成Base64
-                String aesKey = Base64.encodeBase64String(RsaUtil.encryptByPublicKey(key.getBytes(), publicKey));
+                //String aesKey = Base64.encodeBase64String(RsaUtil.encryptByPublicKey(key.getBytes(), publicKey));
+                //切换一个方式
+                RSA rsa = new RSA(null, publicKey);
+                String aesKey = Base64.encodeBase64String(rsa.encrypt(key.getBytes(), KeyType.PublicKey));
                 msg = "{\"data\":{\"data\":\"" + data + "\",\"aesKey\":\"" + aesKey + "\"}}";
             } catch (Throwable ee) {
                 //输出到日志文件中

+ 14 - 11
src/main/java/com/td/WaDa/config/security/LoginSuccessHandlerConfig.java

@@ -1,5 +1,7 @@
 package com.td.WaDa.config.security;
 
+import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
 import com.td.WaDa.sys.sysuser.service.SysUserService;
 import com.td.WaDa.sys.sysuser.vo.SysUserVo;
 import com.td.WaDa.util.*;
@@ -70,44 +72,43 @@ public class LoginSuccessHandlerConfig implements AuthenticationSuccessHandler {
         //登陆IP不在白名单
         String ipAddr = IpUtil.getIpAddr(httpServletRequest);
         String limitedIp = sysUserVo.getLimitedIp();
-        if(!StringUtils.isEmpty(limitedIp) && !Arrays.asList(limitedIp.split(",")).contains(ipAddr)){
+        if (!StringUtils.isEmpty(limitedIp) && !Arrays.asList(limitedIp.split(",")).contains(ipAddr)) {
             msg = "{\"code\":\"400\",\"msg\":\"登陆IP不在白名单,请联系管理员\"}";
             flag = true;
         }
 
         //禁止多人在线
-        if("N".equals(sysUserVo.getLimitMultiLogin()) &&  allSessionIdList.size() > 0){
+        if ("N".equals(sysUserVo.getLimitMultiLogin()) && allSessionIdList.size() > 0) {
             msg = "{\"code\":\"400\",\"msg\":\"该账号禁止多人在线,请联系管理员\"}";
             flag = true;
         }
 
         //超出有效时间
-        if(!StringUtils.isEmpty(sysUserVo.getExpiredTime()) && new Date().getTime() > sysUserVo.getExpiredTime().getTime()){
+        if (!StringUtils.isEmpty(sysUserVo.getExpiredTime()) && new Date().getTime() > sysUserVo.getExpiredTime().getTime()) {
             msg = "{\"code\":\"400\",\"msg\":\"该账号已失效,请联系管理员\"}";
             flag = true;
         }
 
         //禁止登陆系统
-        if("N".equals(sysUserVo.getValid())){
+        if ("N".equals(sysUserVo.getValid())) {
             msg = "{\"code\":\"400\",\"msg\":\"该账号已被禁止登陆系统,请联系管理员\"}";
             flag = true;
         }
 
         //校验不通过
-        if(flag){
+        if (flag) {
             //清除当前的上下文
             SecurityContextHolder.clearContext();
 
             //清除remember-me持久化tokens
             persistentTokenRepository1().removeUserTokens(user.getUsername());
-        }
-        else{
+        } else {
             //校验通过,注册session
-            sessionRegistry.registerNewSession(httpServletRequest.getSession().getId(),user);
+            sessionRegistry.registerNewSession(httpServletRequest.getSession().getId(), user);
         }
 
         //判断api加密开关是否开启
-        if("Y".equals(redisSettingMap.getSysSettingMap().getSysApiEncrypt())) {
+        if ("Y".equals(redisSettingMap.getSysSettingMap().getSysApiEncrypt())) {
             //加密
             try {
                 //前端公钥
@@ -127,8 +128,10 @@ public class LoginSuccessHandlerConfig implements AuthenticationSuccessHandler {
                 String data = AesUtil.encrypt(msg, key);
 
                 //用前端的公钥来解密AES的key,并转成Base64
-                String aesKey = Base64.encodeBase64String(RsaUtil.encryptByPublicKey(key.getBytes(), publicKey));
-
+                //String aesKey = Base64.encodeBase64String(RsaUtil.encryptByPublicKey(key.getBytes(), publicKey));
+                //切换一个方式
+                RSA rsa = new RSA(null, publicKey);
+                String aesKey = Base64.encodeBase64String(rsa.encrypt(key.getBytes(), KeyType.PublicKey));
                 msg = "{\"data\":{\"data\":\"" + data + "\",\"aesKey\":\"" + aesKey + "\"}}";
             } catch (Throwable e) {
                 //输出到日志文件中

+ 12 - 9
src/main/java/com/td/WaDa/filter/gameFilter.java

@@ -2,12 +2,18 @@ package com.td.WaDa.filter;
 
 
 import cn.hutool.core.convert.Convert;
+import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.td.WaDa.common.pojo.ParameterRequestWrapper;
 import com.td.WaDa.common.pojo.Result;
 import com.td.WaDa.config.enums.ResultEnum;
 import com.td.WaDa.util.*;
 import io.jsonwebtoken.ExpiredJwtException;
 import io.jsonwebtoken.SignatureException;
 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.data.redis.core.StringRedisTemplate;
@@ -18,7 +24,9 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -30,6 +38,9 @@ public class gameFilter implements Filter {
     @Value("${jwt.token}")
     private String tokenHeader;
 
+    @Value("${server.servlet.context-path:}")
+    private String contextPath;
+
     @Autowired
     private JwtTokenUtil jwtTokenUtil;
 
@@ -60,12 +71,6 @@ public class gameFilter implements Filter {
 
         //log.info("********进入GameFilter过滤器********");
         HttpServletRequest req = (HttpServletRequest) servletRequest;
-        //String method = req.getMethod();
-        //if (method.equals("OPTIONS")) {
-        //    response.setStatus(200);
-        //    response.flushBuffer();
-        //    return;
-        //}
         //登陆IP不在白名单
         String ipAddr = IpUtil.getIpAddr(req);
 
@@ -77,8 +82,6 @@ public class gameFilter implements Filter {
                 || path.indexOf("setSNBAndUnfreeze") > -1
                 || path.indexOf("cntPlayback") > -1) {
             log.info("ipAddr:" + ipAddr);
-            //IpVo ipVo = IpUtil.getIpVoByRequest(req);
-            //log.info("ip2Addr:"+ ipVo.toString());
             String limitedIp = redisSettingMap.getSysSettingLimitMap().getLimitedIp();
             if (StringUtils.hasText(limitedIp) && !Arrays.asList(limitedIp.split(",")).contains(ipAddr)) {
                 response.setCharacterEncoding("UTF-8");
@@ -121,7 +124,7 @@ public class gameFilter implements Filter {
         if (!(path.indexOf("game") > -1)
                 || path.indexOf("loginToken") > -1
                 || path.indexOf("login") > -1
-                || path.indexOf("hutoolRSAConfig") > -1
+                || path.indexOf("RSAConfig") > -1
         ) {
             //登录情况直接放行
             filterChain.doFilter(servletRequest, response);

+ 138 - 0
src/main/java/com/td/WaDa/game/comsetting/controller/ComSettingController.java

@@ -1,23 +1,58 @@
 package com.td.WaDa.game.comsetting.controller;
 
+import cn.hutool.poi.excel.ExcelReader;
+import cn.hutool.poi.excel.ExcelUtil;
 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.comsetting.pojo.ComSetting;
 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.exceldrop.service.ExcelDropService;
+import com.td.WaDa.game.exceldrop.vo.ExcelDropVo;
+import com.td.WaDa.game.excelprop.service.ExcelPropService;
+import com.td.WaDa.game.excelprop.vo.ExcelPropSimpleVo;
+import com.td.WaDa.game.excelprop.vo.ExcelPropVo;
+import com.td.WaDa.game.excelscene.service.ExcelSceneService;
+import com.td.WaDa.game.excelscene.vo.ExcelSceneSimpleVo;
+import com.td.WaDa.game.excelscene.vo.ExcelSceneVo;
+import com.td.WaDa.util.CopyUtil;
+import com.td.WaDa.util.ExcelDataUtil;
 import com.td.WaDa.util.RedisSettingMap;
+import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
+import com.td.WaDa.game.excelcharacterattri.service.ExcelCharacterAttriService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpSession;
+import java.io.InputStream;
+import java.util.List;
 
 @RestController
 @RequestMapping("/game/comSetting/")
+@Slf4j
 public class ComSettingController extends CommonController<ComSettingVo, ComSetting, String> {
     @Autowired
     private ComSettingService comSettingService;
     @Autowired
     private RedisSettingMap redisSettingMap;
 
+    @Autowired
+    private ExcelCharacterAttriService excelCharacterAttriService;
+
+    @Autowired
+    private ExcelSceneService excelSceneService;
+
+    @Autowired
+    private ExcelPropService excelPropService;
+
+    @Autowired
+    private ExcelDropService excelDropService;
+
     /**
      * 获取游戏设置
      *
@@ -33,4 +68,107 @@ public class ComSettingController extends CommonController<ComSettingVo, ComSett
         }
         return Result.of(comSettingVo);
     }
+
+
+    @ResponseBody
+    @RequestMapping(value = "/excelImport")
+    public Result<?> importExcel(@RequestParam("file") MultipartFile file) {
+        int count = 0;
+        if (file.isEmpty()) {
+            System.out.println("文件为空!");
+            Result.of(count);
+        }
+        // 获取上传文件输入流
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+        } catch (Exception e) {
+            //return ResponseData.fail(ResponseCodeEnum.ERROR_PARAM_INVALID);
+            e.printStackTrace();
+        }
+        log.info("file.getName():" + file.getOriginalFilename());
+        ExcelReader excelReader = ExcelUtil.getReader(inputStream);
+        //暂时按照名字区分
+
+        switch (file.getOriginalFilename().replace(".xlsx","")) {
+            case "UI界面":
+
+                return null;
+            case "帮助":
+
+                return null;
+            case "参数":
+
+                return null;
+            case "产出表":
+
+                return null;
+            case "场景":
+                List<ExcelSceneVo> excelSceneVoList = ExcelDataUtil.setScene(excelReader);
+                for (ExcelSceneVo objects : excelSceneVoList) {
+                    excelSceneService.save(objects);
+                }
+                return Result.of(CopyUtil.copyList(excelSceneVoList, ExcelSceneSimpleVo.class));
+            case "道具":
+                List<ExcelPropVo> excelPropVoList = ExcelDataUtil.setProp(excelReader);
+                for (ExcelPropVo objects : excelPropVoList) {
+                    excelPropService.save(objects);
+                }
+                return Result.of(CopyUtil.copyList(excelPropVoList, ExcelPropSimpleVo.class));
+            case "掉落":
+                List<ExcelDropVo> excelDropVoList = ExcelDataUtil.setDrop(excelReader);
+                for (ExcelDropVo objects : excelDropVoList) {
+                    excelDropService.save(objects);
+                }
+                return Result.of(CopyUtil.copyList(excelDropVoList, ExcelPropSimpleVo.class));
+            case "多语言":
+
+                return null;
+            case "挂机收益":
+
+                return null;
+            case "互动事件":
+
+                return null;
+            case "技能":
+
+                return null;
+            case "建筑升级":
+
+                return null;
+            case "角色等级":
+
+                return null;
+            case "角色生成":
+
+                return null;
+            case "角色属性":
+                List<ExcelCharacterAttriVo> characterReaderList = ExcelDataUtil.setCharacterAttributes(excelReader);
+                for (ExcelCharacterAttriVo objects : characterReaderList) {
+                    excelCharacterAttriService.save(objects);
+                }
+                return Result.of(CopyUtil.copyList(characterReaderList, ExcelCharacterAttriSimpleVo.class));
+            case "角色刷新":
+
+                return null;
+            case "路径":
+
+                return null;
+            case "模型":
+
+                return null;
+            case "文字":
+
+                return null;
+            case "引导":
+
+                return null;
+            case "资源":
+
+                return null;
+
+        }
+        return Result.of(null);
+    }
+
 }

+ 39 - 0
src/main/java/com/td/WaDa/game/comsetting/vo/ExcelCharacterAttributes.java

@@ -0,0 +1,39 @@
+package com.td.WaDa.game.comsetting.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelCharacterAttributes implements Serializable {
+
+    private Integer roleType;//角色种类
+
+    private Integer startPowerLimitL;//初始力量下限
+
+    private Integer startPowerLimitU;//初始力量上限
+
+    private Integer startWisdomLimitL;//初始智慧下限
+
+    private Integer startWisdomLimitU;//初始智慧上限
+
+    private Integer startSkillLimitL;//初始技巧下限
+
+    private Integer startSkillLimitU;//初始技巧上限
+
+    private Integer randomAttr;//属性随机值
+
+    private String professional;//职业
+
+    private String action;//携带动作
+
+    private String interactive;//互动事件
+
+    private String note;//备注
+
+    //private Date createTime;//
+    //
+    //private Date updateTime;//
+
+}

+ 37 - 36
src/main/java/com/td/WaDa/game/comusers/controller/ComUsersController.java

@@ -4,6 +4,8 @@ import cn.hutool.crypto.asymmetric.KeyType;
 import cn.hutool.crypto.asymmetric.RSA;
 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.*;
 import com.td.WaDa.common.pojo.Result;
 import com.td.WaDa.game.complayerlog.service.ComPlayerLogService;
@@ -13,6 +15,7 @@ import com.td.WaDa.game.complayersattri.vo.ComPlayersAttriVo;
 import com.td.WaDa.game.comsetting.service.ComSettingService;
 import com.td.WaDa.game.comsetting.vo.ComSettingSimpleVo;
 import com.td.WaDa.game.comsetting.vo.ComSettingVo;
+import com.td.WaDa.game.comusers.vo.ComUsersLoginVo;
 import com.td.WaDa.game.comusers.vo.ComUsersSimpleVo;
 import com.td.WaDa.config.enums.ResultEnum;
 import com.td.WaDa.game.comusers.pojo.ComUsers;
@@ -80,54 +83,54 @@ public class ComUsersController extends CommonController<ComUsersVo, ComUsers, S
      *
      * @return
      */
-    @GetMapping("hutoolRSAConfig")
-    public Result<Map> publicKeyAndSys() throws ScriptException, IOException, NoSuchMethodException {
+    @GetMapping("RSAConfig")
+    public Result<Map> publicKeyAndSys() {
         //存储在redis上
         Map map = new HashMap();
-        map.put("publicKey",  redisSettingMap.getRSAPublicKeyBase64());
+        map.put("active", active);
+        map.put("publicKey", redisSettingMap.getRSAPublicKeyBase64());
+        SysSettingVo sysSettingVo = redisSettingMap.getSysSettingMap();
+        map.put("apiEncrypt", sysSettingVo.getSysApiEncrypt());
         return Result.of(map);
     }
 
+    /**
+     * 登录后返回一个token令牌
+     *
+     * @param comUsersLoginVo
+     * @return
+     */
     @PostMapping("login")
-    public Result<Map> login(HttpServletRequest request) {
-        //@RequestBody JSONObject jsonObject,
-        //log.info(jsonObject.toJSONString());
-        //AES加密后的数据
-        String data = request.getParameter("data");
-        //后端RSA公钥加密后的AES的key
-        String aesKey = request.getParameter("aesKey");
-        //前端公钥
-        String publicKey = request.getParameter("publicKey");
-        try {
-            //后端私钥解密的到AES的key
-            log.info("解密前aesKey1:" + aesKey);
-            RSA rsa = new RSA(redisSettingMap.getRSAPrivateKeyBase64(),null);
-            byte[] plaintext = rsa.decrypt(Base64.decodeBase64(aesKey), KeyType.PrivateKey);
-            aesKey = new String(plaintext);
-            log.info("解密出来的AES的key:" + aesKey);
-            //AES解密得到明文data数据
-            String decrypt = AesUtil.decrypt(data, aesKey);
-            log.info("解密出来的data数据:" + decrypt);
-        } catch (Throwable e) {
-            //输出到日志文件中
-            log.error(ErrorUtil.errorInfoToString(e));
-            return Result.of(null, false, "加解密异常:\n\t" + e.getMessage());
-        }
-
-
-        log.info("data active:" + data + " = " + aesKey + " = " + publicKey);
-        String id = "1", address = "address1";
+    @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_" + id;
+        String _redisKey = "SNB_SAVE_" + uuid;
         //todo snb冻结加锁
         long time = System.currentTimeMillis() + RedisData.getSnbTimeout();
         try {
             //如果校验通过,生成用户数据,生成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);
@@ -162,9 +165,7 @@ 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));

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

@@ -0,0 +1,22 @@
+package com.td.WaDa.game.comusers.vo;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.td.WaDa.common.pojo.PageCondition;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ComUsersLoginVo implements Serializable {
+
+    private String username;
+
+    private Integer password;
+
+    private String captcha;
+
+    @JsonProperty("remember-me")
+    private String rememberMe;
+
+}

+ 15 - 0
src/main/java/com/td/WaDa/game/excelcharacterattri/controller/ExcelCharacterAttriController.java

@@ -0,0 +1,15 @@
+package com.td.WaDa.game.excelcharacterattri.controller;
+
+import com.td.WaDa.common.controller.*;
+import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
+import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriVo;
+import com.td.WaDa.game.excelcharacterattri.service.ExcelCharacterAttriService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/game/excelCharacterAttri/")
+public class ExcelCharacterAttriController extends CommonController<ExcelCharacterAttriVo, ExcelCharacterAttri, Integer> {
+    @Autowired
+    private ExcelCharacterAttriService excelCharacterAttriService;
+}

+ 29 - 0
src/main/java/com/td/WaDa/game/excelcharacterattri/pojo/ExcelCharacterAttri.java

@@ -0,0 +1,29 @@
+package com.td.WaDa.game.excelcharacterattri.pojo;
+
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Entity
+@Table(name = "excel_character_attri")
+@Data
+public class ExcelCharacterAttri implements Serializable {
+    @Id
+    private String id;//
+    private Integer roleType;//角色种类
+    private Integer startPowerLimitLower;//初始力量下限
+    private Integer startPowerLimitUpper;//初始力量上限
+    private Integer startWisdomLimitLower;//初始智慧下限
+    private Integer startWisdomLimitUpper;//初始智慧上限
+    private Integer startSkillLimitLower;//初始技巧下限
+    private Integer startSkillLimitUpper;//初始技巧上限
+    private Integer randomAttr;//属性随机值
+    private String professional;//职业
+    private String action;//携带动作
+    private String interactive;//互动事件
+    private String note;//备注
+    private Date createTime;//
+    private Date updateTime;//
+
+}

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

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

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

@@ -0,0 +1,8 @@
+package com.td.WaDa.game.excelcharacterattri.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.excelcharacterattri.pojo.ExcelCharacterAttri;
+import com.td.WaDa.game.excelcharacterattri.vo.ExcelCharacterAttriVo;
+
+public interface ExcelCharacterAttriService extends CommonService<ExcelCharacterAttriVo, ExcelCharacterAttri, Integer> {
+}

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

@@ -0,0 +1,21 @@
+package com.td.WaDa.game.excelcharacterattri.service;
+
+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 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 ExcelCharacterAttriServiceImpl extends CommonServiceImpl<ExcelCharacterAttriVo, ExcelCharacterAttri, Integer> implements ExcelCharacterAttriService{
+
+    @PersistenceContext
+    private EntityManager em;
+    @Autowired
+    private ExcelCharacterAttriRepository excelCharacterAttriRepository;
+}

+ 28 - 0
src/main/java/com/td/WaDa/game/excelcharacterattri/vo/ExcelCharacterAttriSimpleVo.java

@@ -0,0 +1,28 @@
+package com.td.WaDa.game.excelcharacterattri.vo;
+
+import com.td.WaDa.common.pojo.PageCondition;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelCharacterAttriSimpleVo extends PageCondition implements Serializable {
+
+    private String id;//
+    private Integer roleType;//角色种类
+    private Integer startPowerLimitLower;//初始力量下限
+    private Integer startPowerLimitUpper;//初始力量上限
+    private Integer startWisdomLimitLower;//初始智慧下限
+    private Integer startWisdomLimitUpper;//初始智慧上限
+    private Integer startSkillLimitLower;//初始技巧下限
+    private Integer startSkillLimitUpper;//初始技巧上限
+    private Integer randomAttr;//属性随机值
+    private String professional;//职业
+    private String action;//携带动作
+    private String interactive;//互动事件
+    private String note;//备注
+    private Date createTime;//
+    private Date updateTime;//
+
+}

+ 27 - 0
src/main/java/com/td/WaDa/game/excelcharacterattri/vo/ExcelCharacterAttriVo.java

@@ -0,0 +1,27 @@
+package com.td.WaDa.game.excelcharacterattri.vo;
+
+import com.td.WaDa.common.pojo.PageCondition;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelCharacterAttriVo extends PageCondition implements Serializable {
+
+    private String id;//
+    private Integer roleType;//角色种类
+    private Integer startPowerLimitLower;//初始力量下限
+    private Integer startPowerLimitUpper;//初始力量上限
+    private Integer startWisdomLimitLower;//初始智慧下限
+    private Integer startWisdomLimitUpper;//初始智慧上限
+    private Integer startSkillLimitLower;//初始技巧下限
+    private Integer startSkillLimitUpper;//初始技巧上限
+    private Integer randomAttr;//属性随机值
+    private String professional;//职业
+    private String action;//携带动作
+    private String interactive;//互动事件
+    private String note;//备注
+    private Date createTime;//
+    private Date updateTime;//
+
+}

+ 15 - 0
src/main/java/com/td/WaDa/game/exceldrop/controller/ExcelDropController.java

@@ -0,0 +1,15 @@
+package com.td.WaDa.game.exceldrop.controller;
+
+import com.td.WaDa.common.controller.*;
+import com.td.WaDa.game.exceldrop.pojo.ExcelDrop;
+import com.td.WaDa.game.exceldrop.vo.ExcelDropVo;
+import com.td.WaDa.game.exceldrop.service.ExcelDropService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/game/excelDrop/")
+public class ExcelDropController extends CommonController<ExcelDropVo, ExcelDrop, String> {
+    @Autowired
+    private ExcelDropService excelDropService;
+}

+ 41 - 0
src/main/java/com/td/WaDa/game/exceldrop/pojo/ExcelDrop.java

@@ -0,0 +1,41 @@
+package com.td.WaDa.game.exceldrop.pojo;
+
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Entity
+@Table(name = "excel_drop")
+@Data
+public class ExcelDrop implements Serializable {
+    @Id
+    private String id;//
+
+    private Integer dropId;//掉落编号
+
+    private Integer dropType;//组掉落方式
+
+    private Integer dropGroup;//掉落组编号
+
+    private Integer dropGroupPro;//组掉落概率
+
+    private String dropGroupLimit;//组掉落上下限
+
+    private String dropGroupWay;//组掉落方式
+
+    private String groupDrop;//组掉落
+
+    private Integer dropWay;//非组物品方式
+
+    private Integer drop;//物品掉落
+
+    private String item;//物品与数量
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 9 - 0
src/main/java/com/td/WaDa/game/exceldrop/repository/ExcelDropRepository.java

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

+ 8 - 0
src/main/java/com/td/WaDa/game/exceldrop/service/ExcelDropService.java

@@ -0,0 +1,8 @@
+package com.td.WaDa.game.exceldrop.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.exceldrop.pojo.ExcelDrop;
+import com.td.WaDa.game.exceldrop.vo.ExcelDropVo;
+
+public interface ExcelDropService extends CommonService<ExcelDropVo, ExcelDrop, String> {
+}

+ 21 - 0
src/main/java/com/td/WaDa/game/exceldrop/service/ExcelDropServiceImpl.java

@@ -0,0 +1,21 @@
+package com.td.WaDa.game.exceldrop.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.exceldrop.pojo.ExcelDrop;
+import com.td.WaDa.game.exceldrop.vo.ExcelDropVo;
+import com.td.WaDa.game.exceldrop.repository.ExcelDropRepository;
+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 ExcelDropServiceImpl extends CommonServiceImpl<ExcelDropVo, ExcelDrop, String> implements ExcelDropService{
+
+    @PersistenceContext
+    private EntityManager em;
+    @Autowired
+    private ExcelDropRepository excelDropRepository;
+}

+ 40 - 0
src/main/java/com/td/WaDa/game/exceldrop/vo/ExcelDropSimpleVo.java

@@ -0,0 +1,40 @@
+package com.td.WaDa.game.exceldrop.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelDropSimpleVo implements Serializable {
+    private String id;//
+
+    private Integer dropId;//掉落编号
+
+    private Integer dropType;//组掉落方式
+
+    private Integer dropGroup;//掉落组编号
+
+    private Integer dropGroupPro;//组掉落概率
+
+    private String dropGroupLimit;//组掉落上下限
+
+    private String dropGroupWay;//组掉落方式
+
+    private String groupDrop;//组掉落
+
+    private Integer dropWay;//非组物品方式
+
+    private Integer drop;//物品掉落
+
+    private String item;//物品与数量
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}
+
+

+ 37 - 0
src/main/java/com/td/WaDa/game/exceldrop/vo/ExcelDropVo.java

@@ -0,0 +1,37 @@
+package com.td.WaDa.game.exceldrop.vo;
+
+import com.td.WaDa. common.pojo.PageCondition;import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelDropVo extends PageCondition implements Serializable {
+    private String id;//
+
+    private Integer dropId;//掉落编号
+
+    private Integer dropType;//组掉落方式
+
+    private Integer dropGroup;//掉落组编号
+
+    private Integer dropGroupPro;//组掉落概率
+
+    private String dropGroupLimit;//组掉落上下限
+
+    private String dropGroupWay;//组掉落方式
+
+    private String groupDrop;//组掉落
+
+    private Integer dropWay;//非组物品方式
+
+    private Integer drop;//物品掉落
+
+    private String item;//物品与数量
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 15 - 0
src/main/java/com/td/WaDa/game/excelprop/controller/ExcelPropController.java

@@ -0,0 +1,15 @@
+package com.td.WaDa.game.excelprop.controller;
+
+import com.td.WaDa.common.controller.*;
+import com.td.WaDa.game.excelprop.pojo.ExcelProp;
+import com.td.WaDa.game.excelprop.vo.ExcelPropVo;
+import com.td.WaDa.game.excelprop.service.ExcelPropService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/game/excelProp/")
+public class ExcelPropController extends CommonController<ExcelPropVo, ExcelProp, String> {
+    @Autowired
+    private ExcelPropService excelPropService;
+}

+ 37 - 0
src/main/java/com/td/WaDa/game/excelprop/pojo/ExcelProp.java

@@ -0,0 +1,37 @@
+package com.td.WaDa.game.excelprop.pojo;
+
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Entity
+@Table(name = "excel_prop")
+@Data
+public class ExcelProp implements Serializable {
+    @Id
+    private String id;//
+
+    private Integer propId;//物品id
+
+    private Integer itemType;//物品类型
+
+    private Integer itemLevel;//等级
+
+    private String name;//名称
+
+    private Integer icon;//图标
+
+    private Integer model;//模型
+
+    private String tips;//描述
+
+    private Integer overlap;//堆叠上限
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 9 - 0
src/main/java/com/td/WaDa/game/excelprop/repository/ExcelPropRepository.java

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

+ 8 - 0
src/main/java/com/td/WaDa/game/excelprop/service/ExcelPropService.java

@@ -0,0 +1,8 @@
+package com.td.WaDa.game.excelprop.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.excelprop.pojo.ExcelProp;
+import com.td.WaDa.game.excelprop.vo.ExcelPropVo;
+
+public interface ExcelPropService extends CommonService<ExcelPropVo, ExcelProp, String> {
+}

+ 21 - 0
src/main/java/com/td/WaDa/game/excelprop/service/ExcelPropServiceImpl.java

@@ -0,0 +1,21 @@
+package com.td.WaDa.game.excelprop.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.excelprop.pojo.ExcelProp;
+import com.td.WaDa.game.excelprop.vo.ExcelPropVo;
+import com.td.WaDa.game.excelprop.repository.ExcelPropRepository;
+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 ExcelPropServiceImpl extends CommonServiceImpl<ExcelPropVo, ExcelProp, String> implements ExcelPropService{
+
+    @PersistenceContext
+    private EntityManager em;
+    @Autowired
+    private ExcelPropRepository excelPropRepository;
+}

+ 34 - 0
src/main/java/com/td/WaDa/game/excelprop/vo/ExcelPropSimpleVo.java

@@ -0,0 +1,34 @@
+package com.td.WaDa.game.excelprop.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelPropSimpleVo implements Serializable {
+    private String id;//
+
+    private Integer propId;//物品id
+
+    private Integer itemType;//物品类型
+
+    private Integer itemLevel;//等级
+
+    private String name;//名称
+
+    private Integer icon;//图标
+
+    private Integer model;//模型
+
+    private String tips;//描述
+
+    private Integer overlap;//堆叠上限
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 33 - 0
src/main/java/com/td/WaDa/game/excelprop/vo/ExcelPropVo.java

@@ -0,0 +1,33 @@
+package com.td.WaDa.game.excelprop.vo;
+
+import com.td.WaDa. common.pojo.PageCondition;import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelPropVo extends PageCondition implements Serializable {
+    private String id;//
+
+    private Integer propId;//物品id
+
+    private Integer itemType;//物品类型
+
+    private Integer itemLevel;//等级
+
+    private String name;//名称
+
+    private Integer icon;//图标
+
+    private Integer model;//模型
+
+    private String tips;//描述
+
+    private Integer overlap;//堆叠上限
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 15 - 0
src/main/java/com/td/WaDa/game/excelscene/controller/ExcelSceneController.java

@@ -0,0 +1,15 @@
+package com.td.WaDa.game.excelscene.controller;
+
+import com.td.WaDa.common.controller.*;
+import com.td.WaDa.game.excelscene.pojo.ExcelScene;
+import com.td.WaDa.game.excelscene.vo.ExcelSceneVo;
+import com.td.WaDa.game.excelscene.service.ExcelSceneService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/game/excelScene/")
+public class ExcelSceneController extends CommonController<ExcelSceneVo, ExcelScene, String> {
+    @Autowired
+    private ExcelSceneService excelSceneService;
+}

+ 41 - 0
src/main/java/com/td/WaDa/game/excelscene/pojo/ExcelScene.java

@@ -0,0 +1,41 @@
+package com.td.WaDa.game.excelscene.pojo;
+
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Entity
+@Table(name = "excel_scene")
+@Data
+public class ExcelScene implements Serializable {
+    @Id
+    private String id;//
+
+    private Integer sceneId;//场景序号
+
+    private Integer sceneType;//场景种类
+
+    private Integer sceneGroup;//场景组编号
+
+    private Integer sceneLevel;//场景等级
+
+    private String sceneResources;//art编号
+
+    private String sceneEvent;//场景掉落id
+
+    private Integer physicalStrength;//消耗体力
+
+    private Integer timeLimit;//工作时间
+
+    private Integer probability;//进入基础概率
+
+    private Integer amount;//运输基础数量
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 9 - 0
src/main/java/com/td/WaDa/game/excelscene/repository/ExcelSceneRepository.java

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

+ 8 - 0
src/main/java/com/td/WaDa/game/excelscene/service/ExcelSceneService.java

@@ -0,0 +1,8 @@
+package com.td.WaDa.game.excelscene.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.excelscene.pojo.ExcelScene;
+import com.td.WaDa.game.excelscene.vo.ExcelSceneVo;
+
+public interface ExcelSceneService extends CommonService<ExcelSceneVo, ExcelScene, String> {
+}

+ 21 - 0
src/main/java/com/td/WaDa/game/excelscene/service/ExcelSceneServiceImpl.java

@@ -0,0 +1,21 @@
+package com.td.WaDa.game.excelscene.service;
+
+import com.td.WaDa.common.service.*;
+import com.td.WaDa.game.excelscene.pojo.ExcelScene;
+import com.td.WaDa.game.excelscene.vo.ExcelSceneVo;
+import com.td.WaDa.game.excelscene.repository.ExcelSceneRepository;
+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 ExcelSceneServiceImpl extends CommonServiceImpl<ExcelSceneVo, ExcelScene, String> implements ExcelSceneService{
+
+    @PersistenceContext
+    private EntityManager em;
+    @Autowired
+    private ExcelSceneRepository excelSceneRepository;
+}

+ 39 - 0
src/main/java/com/td/WaDa/game/excelscene/vo/ExcelSceneSimpleVo.java

@@ -0,0 +1,39 @@
+package com.td.WaDa.game.excelscene.vo;
+
+import com.td.WaDa.common.pojo.PageCondition;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelSceneSimpleVo  implements Serializable {
+    private String id;//
+
+    private Integer sceneId;//场景序号
+
+    private Integer sceneType;//场景种类
+
+    private Integer sceneGroup;//场景组编号
+
+    private Integer sceneLevel;//场景等级
+
+    private String sceneResources;//art编号
+
+    private String sceneEvent;//场景掉落id
+
+    private Integer physicalStrength;//消耗体力
+
+    private Integer timeLimit;//工作时间
+
+    private Integer probability;//进入基础概率
+
+    private Integer amount;//运输基础数量
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

+ 37 - 0
src/main/java/com/td/WaDa/game/excelscene/vo/ExcelSceneVo.java

@@ -0,0 +1,37 @@
+package com.td.WaDa.game.excelscene.vo;
+
+import com.td.WaDa. common.pojo.PageCondition;import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ExcelSceneVo extends PageCondition implements Serializable {
+    private String id;//
+
+    private Integer sceneId;//场景序号
+
+    private Integer sceneType;//场景种类
+
+    private Integer sceneGroup;//场景组编号
+
+    private Integer sceneLevel;//场景等级
+
+    private String sceneResources;//art编号
+
+    private String sceneEvent;//场景掉落id
+
+    private Integer physicalStrength;//消耗体力
+
+    private Integer timeLimit;//工作时间
+
+    private Integer probability;//进入基础概率
+
+    private Integer amount;//运输基础数量
+
+    private String note;//备注
+
+    private Date createTime;//
+
+    private Date updateTime;//
+
+}

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

@@ -20,17 +20,17 @@ public class CodeDOM {
      */
     private CodeDOM(String tableName) {
         this.tableName = tableName;
-        basePackage_ = "com\\td\\boss\\game\\";
+        basePackage_ = "com\\td\\WaDa\\game\\";
         package_ = basePackage_ + StringUtil.camelCaseName(tableName).toLowerCase() + "\\";
         //System.getProperty("user.dir") 获取的是项目所在路径,如果我们是子项目,则需要添加一层路径
         basePath = System.getProperty("user.dir") + "\\src\\main\\java\\" + package_;
-        basePackage_ = "com\\td\\boss\\";
+        basePackage_ = "com\\td\\WaDa\\";
     }
 
     /**
      * 数据连接相关
      */
-    private static final String URL = "jdbc:mysql://42.192.165.168:3306/dragon_town?serverTimezone=GMT%2B8&characterEncoding=utf-8";
+    private static final String URL = "jdbc:mysql://42.192.165.168:3306/wada?serverTimezone=GMT%2B8&characterEncoding=utf-8";
     private static final String USERNAME = "root";
     private static final String PASSWORD = "9ab8fad748dead93";
     private static final String DRIVER_CLASSNAME = "com.mysql.jdbc.Driver";
@@ -104,6 +104,27 @@ public class CodeDOM {
         }
         stringBuffer.append("}");
         FileUtil.fileWriter(file, stringBuffer);
+
+
+
+        File fileSimple = FileUtil.createFile(basePath + "vo\\" + StringUtil.captureName(StringUtil.camelCaseName(tableName)) + "SimpleVo.java");
+        StringBuffer stringBufferSimple = new StringBuffer();
+        stringBufferSimple.append(
+                "package " + package_.replaceAll("\\\\", ".") + "vo;\n" +
+                        "\n" +
+                        "import lombok.Data;\n" +
+                        "import java.io.Serializable;\n" +
+                        "import java.util.Date;\n" +
+                        "\n" +
+                        "@Data\n" +
+                        "public class " + StringUtil.captureName(StringUtil.camelCaseName(tableName)) + "SimpleVo implements Serializable {\n"
+        );
+        //遍历设置属性
+        for (TableInfo tableInfo : tableInfos) {
+            stringBufferSimple.append("    private " + StringUtil.typeMapping(tableInfo.getDataType()) + " " + StringUtil.camelCaseName(tableInfo.getColumnName()) + ";//" + tableInfo.getColumnComment() + "\n\n");
+        }
+        stringBufferSimple.append("}");
+        FileUtil.fileWriter(fileSimple, stringBufferSimple);
     }
 
     /**
@@ -529,12 +550,7 @@ public class CodeDOM {
     }
 
     public static void main(String[] args) {
-       // String[] tables = {"sys_user","sys_menu","sys_authority","sys_user_menu","sys_user_authority","sys_shortcut_menu","sys_setting"};
-       // String[] tables = {"com_player_goods","com_players","com_users","com_rewards"};
-       // String[] tables = {"com_wallet","com_cnt_order","com_mall_seed","com_player_goods","com_player_land","com_config_land","com_fruit","com_snb_tran"};
-       // "com_player_log" ,"com_explain_land","com_player_profit","com_players_attri","com_setting","com_player_dog","com_mall_other","com_mall_food"
-       // "com_snb_apply"
-        String[] tables = {"sys_setting_task"};
+        String[] tables = {"excel_drop"};
         for (String table : tables) {
             String msg = new CodeDOM(table).create();
             System.out.println(msg);

+ 41 - 2
src/main/java/com/td/WaDa/util/DappUtil.java

@@ -21,16 +21,55 @@ import java.util.Map;
 public class DappUtil {
 
     private static String env;
-
     public static String getEnv() {
         return env;
     }
-
     @Value("${spring.profiles.active}")
     public void setEnv(String env) {
         DappUtil.env = env;
     }
 
+    private static String waDaUrl;
+    public static String getWaDaUrl() {
+        return waDaUrl;
+    }
+    @Value("${meta-pal.url}")
+    public void setWaDaUrl(String waDaUrl) {
+        DappUtil.waDaUrl = waDaUrl;
+    }
+
+    /**
+     * 登录验证
+     */
+    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;
+        }
+    }
+
     /**
      * 获取用户直推数量(模块1:偷菜)
      * {

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

@@ -0,0 +1,89 @@
+package com.td.WaDa.util;
+
+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.exceldrop.vo.ExcelDropSimpleVo;
+import com.td.WaDa.game.exceldrop.vo.ExcelDropVo;
+import com.td.WaDa.game.excelprop.vo.ExcelPropVo;
+import com.td.WaDa.game.excelscene.vo.ExcelSceneVo;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * Excel对应实体类型工具类
+ */
+@Slf4j
+public class ExcelDataUtil {
+
+    /**
+     * 设置角色属性
+     */
+    public static List<ExcelCharacterAttriVo>  setCharacterAttributes(ExcelReader excelReader){
+        excelReader.addHeaderAlias("角色种类","roleType")
+                .addHeaderAlias("初始力量下限","startPowerLimitLower")
+                .addHeaderAlias("初始力量上限","startPowerLimitUpper")
+                .addHeaderAlias("初始智慧下限","startWisdomLimitLower")
+                .addHeaderAlias("初始智慧上限","startWisdomLimitUpper")
+                .addHeaderAlias("初始技巧下限","startSkillLimitLower")
+                .addHeaderAlias("初始技巧上限","startSkillLimitUpper")
+                .addHeaderAlias("属性随机值","randomAttr")
+                .addHeaderAlias("职业","professional")
+                .addHeaderAlias("携带动作","action")
+                .addHeaderAlias("互动事件","interactive")
+                .addHeaderAlias("备注","note");
+        return excelReader.read(1,3,ExcelCharacterAttriVo.class);
+    }
+
+    /**
+     * 设置场景excel
+     */
+    public static List<ExcelSceneVo>  setScene(ExcelReader excelReader){
+        //场景序号	场景种类	场景组编号	场景等级	art编号	场景掉落id	消耗体力	工作时间	进入基础概率	运输基础数量
+        excelReader.addHeaderAlias("场景序号","sceneId")
+                .addHeaderAlias("场景种类","sceneType")
+                .addHeaderAlias("场景组编号","sceneGroup")
+                .addHeaderAlias("场景等级","sceneLevel")
+                .addHeaderAlias("art编号","sceneResources")
+                .addHeaderAlias("场景掉落id","sceneEvent")
+                .addHeaderAlias("消耗体力","physicalStrength")
+                .addHeaderAlias("工作时间","timeLimit")
+                .addHeaderAlias("进入基础概率","probability")
+                .addHeaderAlias("运输基础数量","amount")
+                .addHeaderAlias("备注","note");
+        return excelReader.read(1,3,ExcelSceneVo.class);
+    }
+
+    public static List<ExcelPropVo>  setProp(ExcelReader excelReader){
+        //序号	物品类型	等级	名称	图标	模型	描述	堆叠上限	备注
+        excelReader.addHeaderAlias("序号","propId")
+                .addHeaderAlias("物品类型","itemType")
+                .addHeaderAlias("等级","itemLevel")
+                .addHeaderAlias("名称","name")
+                .addHeaderAlias("图标","icon")
+                .addHeaderAlias("模型","model")
+                .addHeaderAlias("描述","tips")
+                .addHeaderAlias("堆叠上限","overlap")
+                .addHeaderAlias("备注","note");
+        return excelReader.read(1,3,ExcelPropVo.class);
+    }
+
+    public static List<ExcelDropVo>  setDrop(ExcelReader excelReader){
+        //掉落编号	组掉落方式	掉落组编号	组掉落概率	组掉落上下限	组掉落方式	组掉落	非组物品方式	物品掉落	物品与数量	备注
+        excelReader.addHeaderAlias("掉落编号","dropId")
+                .addHeaderAlias("组掉落方式","dropType")
+                .addHeaderAlias("掉落组编号","dropGroup")
+                .addHeaderAlias("组掉落概率","dropGroupPro")
+                .addHeaderAlias("组掉落上下限","dropGroupLimit")
+                .addHeaderAlias("组掉落方式","dropGroupWay")
+                .addHeaderAlias("组掉落","groupDrop")
+                .addHeaderAlias("非组物品方式","dropWay")
+                .addHeaderAlias("物品掉落","drop")
+                .addHeaderAlias("物品与数量","item")
+                .addHeaderAlias("备注","note");
+        return excelReader.read(1,3,ExcelDropVo.class);
+    }
+}

+ 6 - 1
src/main/resources/application.yml

@@ -41,6 +41,10 @@ jwt:
   expiration: 7200000   # 过期时间
   token: Authorization  # 请求头
 
+# 瓦达项目url
+meta-pal:
+  url: https://lionworld.metestsvr.com/marketserver/
+
 ---
 ##### dev 配置 #######
 spring:
@@ -115,4 +119,5 @@ captcha:
   enable: true
 
 apply:
-  ip:
+  ip:
+

+ 1 - 2
src/main/resources/static/common/common.js

@@ -203,9 +203,8 @@ jQueryExtend = {
                 //加密再传输
                 if (opt.type.toLowerCase() === "post") {
                     let data = opt.data;
-                    console.log("data1",data);
                     //发送请求之前随机获取AES的key
-                    let aesKey = "8KKNEUBzEVz6zTLy"; //aesUtil.genKey(); // "8KKNEUBzEVz6zTLy";
+                    let aesKey = aesUtil.genKey();// "8KKNEUBzEVz6zTLy";
                     let _encryptAESKey = rsaUtil.encrypt(aesKey, sessionStorage.getItem('javaPublicKey'));
                     console.log("aesKey=:",aesKey,",encrypt=:",_encryptAESKey);
                     data = {