Ver código fonte

新加模块7 8牧场养殖

xst 4 anos atrás
pai
commit
91fbd72feb
20 arquivos alterados com 457 adições e 37 exclusões
  1. 1 1
      src/main/java/com/td/boss/common/pojo/ComConfig.java
  2. 10 0
      src/main/java/com/td/boss/common/pojo/ComConfigKeys.java
  3. 2 0
      src/main/java/com/td/boss/common/service/ComConfigService.java
  4. 18 4
      src/main/java/com/td/boss/common/service/ComConfigServiceImpl.java
  5. 29 0
      src/main/java/com/td/boss/game/complayercultivate/controller/ComPlayerCultivateController.java
  6. 10 4
      src/main/java/com/td/boss/game/complayercultivate/pojo/ComPlayerCultivate.java
  7. 9 8
      src/main/java/com/td/boss/game/complayercultivate/pojo/ComPlayerCultivateDetail.java
  8. 11 0
      src/main/java/com/td/boss/game/complayercultivate/repository/ComPlayerCultivateDetailRepository.java
  9. 13 0
      src/main/java/com/td/boss/game/complayercultivate/repository/ComPlayerCultivateRepository.java
  10. 19 0
      src/main/java/com/td/boss/game/complayercultivate/serivce/ComPlayerCultivateSerivce.java
  11. 156 0
      src/main/java/com/td/boss/game/complayercultivate/serivce/ComPlayerCultivateSerivceImpl.java
  12. 8 10
      src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateDetailVo.java
  13. 12 0
      src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateFoodVo.java
  14. 13 0
      src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateLandVo.java
  15. 16 0
      src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateSeedVo.java
  16. 4 6
      src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateVo.java
  17. 76 0
      src/main/java/com/td/boss/util/DappUtil.java
  18. 15 0
      src/main/java/com/td/boss/util/RedisData.java
  19. 4 4
      src/main/resources/application.yml
  20. 31 0
      src/test/java/com/td/boss/ComPlayerCultivateTests.java

+ 1 - 1
src/main/java/com/td/boss/common/pojo/ComConfig.java

@@ -7,7 +7,7 @@ import java.io.Serializable;
 
 @Entity
 @Data
-@Table(name = "com_players_lucky_tools")
+@Table(name = "com_config")
 public class ComConfig implements Serializable {
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)

+ 10 - 0
src/main/java/com/td/boss/common/pojo/ComConfigKeys.java

@@ -0,0 +1,10 @@
+package com.td.boss.common.pojo;
+
+/**
+ * com_config配置表的key
+ */
+public class ComConfigKeys {
+    public static final String cultivateSeed= "cultivate_seed";
+    public static final String cultivateFood= "cultivate_food";
+    public static final String cultivateLand= "cultivate_land";
+}

+ 2 - 0
src/main/java/com/td/boss/common/service/ComConfigService.java

@@ -8,4 +8,6 @@ public interface ComConfigService {
     String selectByKey(String key);
 
     List<ComPlayersLuckyLandLevelUpVo> selectLandLevel();
+
+    <T> List<T> selectByKey(String key, Class<T> clazz);
 }

+ 18 - 4
src/main/java/com/td/boss/common/service/ComConfigServiceImpl.java

@@ -23,7 +23,7 @@ public class ComConfigServiceImpl implements ComConfigService {
     private ComConfigRepository repository;
 
     private List<ComConfig> list() {
-        List<ComConfig> list = null;
+        List<ComConfig> list;
         String s = redisTemplate.opsForValue().get(redisKey);
         if (StrUtil.isBlank(s)) {
             list = repository.list();
@@ -39,15 +39,29 @@ public class ComConfigServiceImpl implements ComConfigService {
         List<ComConfig> list = list();
         return list.stream().filter(a -> a.getConfigKey().equals(key)).map(a -> a.getConfigValue()).findFirst().orElse("");
     }
+
+    /**
+     * 获取种植土地级别配置
+     *
+     * @return
+     */
     @Override
     public List<ComPlayersLuckyLandLevelUpVo> selectLandLevel() {
-        String levelUp = "land_level";
-        List<ComConfig> list = list();
-        String land_tools = list.stream().filter(a -> a.getConfigKey().equals(levelUp)).map(a -> a.getConfigValue()).findFirst().orElse("");
+        String land_tools = selectByKey("land_level");
         if (StrUtil.isBlank(land_tools)) {
             return new ArrayList<>();
         } else {
             return JSONUtil.toList(land_tools, ComPlayersLuckyLandLevelUpVo.class);
         }
     }
+
+    @Override
+    public <T> List<T> selectByKey(String key, Class<T> clazz) {
+        String json = selectByKey(key);
+        if (StrUtil.isBlank(json)) {
+            return new ArrayList<>();
+        } else {
+            return JSONUtil.toList(json, clazz);
+        }
+    }
 }

+ 29 - 0
src/main/java/com/td/boss/game/complayercultivate/controller/ComPlayerCultivateController.java

@@ -0,0 +1,29 @@
+package com.td.boss.game.complayercultivate.controller;
+
+import com.td.boss.common.controller.CommonController;
+import com.td.boss.common.pojo.ComConfigKeys;
+import com.td.boss.common.pojo.Result;
+import com.td.boss.common.service.ComConfigService;
+import com.td.boss.game.complayercultivate.pojo.ComPlayerCultivate;
+import com.td.boss.game.complayercultivate.vo.ComPlayerCultivateLandVo;
+import com.td.boss.game.complayercultivate.vo.ComPlayerCultivateVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * 放牧\养殖\渔场
+ */
+@RestController
+@Slf4j
+@RequestMapping("/game/comPlayerCultivate/")
+public class ComPlayerCultivateController {
+
+
+//    //获取所有土地
+//    @GetMapping("getLand")
+//    public Result<?> getLand() {
+//        return null;
+//    }
+}

+ 10 - 4
src/main/java/com/td/boss/game/complayerlandlog/pojo/ComPlayerLandLog.java → src/main/java/com/td/boss/game/complayercultivate/pojo/ComPlayerCultivate.java

@@ -1,7 +1,10 @@
-package com.td.boss.game.complayerlandlog.pojo;
+package com.td.boss.game.complayercultivate.pojo;
 
 
+import lombok.Data;
+
 import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Table;
 import java.io.Serializable;
@@ -12,11 +15,12 @@ import java.util.Date;
  * @date : 2022-3-19
  * @desc : 放牧养殖渔场租赁表
  */
-@Table(name="com_player_land_log")
-public class ComPlayerLandLog implements Serializable{
+@Data
+@Table(name="com_player_cultivate")
+public class ComPlayerCultivate implements Serializable{
     /**  */
     @Id
-    @GeneratedValue
+    @GeneratedValue(strategy= GenerationType.IDENTITY)
     private Integer id ;
     /** 用户id */
     private String userId ;
@@ -26,6 +30,8 @@ public class ComPlayerLandLog implements Serializable{
     private Integer landType ;
     /** 土地名称 */
     private String landName ;
+    /** 最大养殖数 */
+    private Integer landLimit ;
     /** 是否正在使用 */
     private Integer isActivity ;
     /** 土地租赁创建时间 */

+ 9 - 8
src/main/java/com/td/boss/game/complayerlandlog/vo/ComPlayerLandLogDetailVo.java → src/main/java/com/td/boss/game/complayercultivate/pojo/ComPlayerCultivateDetail.java

@@ -1,8 +1,9 @@
-package com.td.boss.game.complayerlandlog.vo;
+package com.td.boss.game.complayercultivate.pojo;
 
 import lombok.Data;
 
 import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Table;
 import java.io.Serializable;
@@ -14,11 +15,11 @@ import java.util.Date;
  * @desc : 放牧养殖渔场放养记录
  */
 @Data
-@Table(name="com_player_land_log_detail")
-public class ComPlayerLandLogDetailVo implements Serializable {
+@Table(name="com_player_cultivate_detail")
+public class ComPlayerCultivateDetail implements Serializable {
     /**  */
     @Id
-    @GeneratedValue
+    @GeneratedValue(strategy= GenerationType.IDENTITY)
     private Integer id ;
     /**  */
     private Integer logId ;
@@ -31,14 +32,14 @@ public class ComPlayerLandLogDetailVo implements Serializable {
     /** 放养开始时间 */
     private Date createTime ;
     /** 真实果实成熟时间 */
-    private Date delayTime ;
+    private Date maturityTime ;
     /** 延期日志 */
     private String delayLog ;
     /** 真实收入数量 */
-    private Integer incomeNum ;
+    private double incomeNum ;
     /** 收入日志 */
     private String incomeLog ;
-    /** 是否正在种植 */
-    private Integer isActivity ;
+    /** 是否成熟 */
+    private Integer isMaturity ;
 
 }

+ 11 - 0
src/main/java/com/td/boss/game/complayercultivate/repository/ComPlayerCultivateDetailRepository.java

@@ -0,0 +1,11 @@
+package com.td.boss.game.complayercultivate.repository;
+
+import com.td.boss.common.repository.CommonRepository;
+import com.td.boss.game.complayercultivate.pojo.ComPlayerCultivate;
+import com.td.boss.game.complayercultivate.pojo.ComPlayerCultivateDetail;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ComPlayerCultivateDetailRepository extends CommonRepository<ComPlayerCultivateDetail, Integer> {
+    ComPlayerCultivateDetail findByUserId(String userId);
+}

+ 13 - 0
src/main/java/com/td/boss/game/complayercultivate/repository/ComPlayerCultivateRepository.java

@@ -0,0 +1,13 @@
+package com.td.boss.game.complayercultivate.repository;
+
+import com.td.boss.common.repository.CommonRepository;
+import com.td.boss.game.complayercultivate.pojo.ComPlayerCultivate;
+import org.springframework.stereotype.Repository;
+
+import java.util.Optional;
+
+@Repository
+public interface ComPlayerCultivateRepository extends CommonRepository<ComPlayerCultivate, Integer> {
+
+    ComPlayerCultivate findByUserId(String userId);
+}

+ 19 - 0
src/main/java/com/td/boss/game/complayercultivate/serivce/ComPlayerCultivateSerivce.java

@@ -0,0 +1,19 @@
+package com.td.boss.game.complayercultivate.serivce;
+
+import com.td.boss.common.pojo.Result;
+import com.td.boss.game.complayercultivate.vo.ComPlayerCultivateFoodVo;
+import com.td.boss.game.complayercultivate.vo.ComPlayerCultivateLandVo;
+import com.td.boss.game.complayercultivate.vo.ComPlayerCultivateSeedVo;
+import java.util.List;
+
+public interface ComPlayerCultivateSerivce {
+
+    Result<?> zulin(String userId, String landId);
+
+    Result<?> toufang(String userId, String landId, String seedId, Integer seedNum);
+
+    //获取所有土地
+    List<ComPlayerCultivateLandVo> getLand();
+    List<ComPlayerCultivateFoodVo> getFood();
+    List<ComPlayerCultivateSeedVo> getSeed();
+}

+ 156 - 0
src/main/java/com/td/boss/game/complayercultivate/serivce/ComPlayerCultivateSerivceImpl.java

@@ -0,0 +1,156 @@
+package com.td.boss.game.complayercultivate.serivce;
+
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.json.JSONUtil;
+import com.td.boss.common.pojo.ComConfigKeys;
+import com.td.boss.common.pojo.Result;
+import com.td.boss.common.service.ComConfigService;
+import com.td.boss.game.complayercultivate.pojo.ComPlayerCultivate;
+import com.td.boss.game.complayercultivate.pojo.ComPlayerCultivateDetail;
+import com.td.boss.game.complayercultivate.repository.ComPlayerCultivateDetailRepository;
+import com.td.boss.game.complayercultivate.repository.ComPlayerCultivateRepository;
+import com.td.boss.game.complayercultivate.vo.*;
+import com.td.boss.util.RedisData;
+import com.td.boss.util.RedisLock;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+@Slf4j
+@Transactional
+public class ComPlayerCultivateSerivceImpl implements ComPlayerCultivateSerivce {
+
+    @Autowired
+    private ComConfigService comConfigService;
+    @Autowired
+    private ComPlayerCultivateRepository cultivateRepository;
+    @Autowired
+    private ComPlayerCultivateDetailRepository cultivateDetailRepository;
+
+    @Autowired
+    private RedisLock redisLock;
+
+    @Transactional
+    @Override
+    public Result<?> zulin(String userId, String landId) {
+        long time = System.currentTimeMillis() + RedisData.getPlayerCultivateZuLinTimeout();
+        String _redisKey = "LOCK:COM_PLAYER_CULTIVATE_ZULIN:" + userId;
+        if (redisLock.lock(_redisKey, String.valueOf(time))) {
+            log.info("锁住key:" + _redisKey);
+            return ErrorResult("操作频繁!");
+        }
+        try {
+            ComPlayerCultivateLandVo comPlayerCultivateLandVo = getLandById(landId);
+            if (comPlayerCultivateLandVo != null) {
+                return ErrorResult("土地不存在!");
+            }
+            if (cultivateRepository.findByUserId(userId) != null) {
+                return ErrorResult("该土地已被租赁!");
+            }
+            ComPlayerCultivate comPlayerCultivate = new ComPlayerCultivate();
+            comPlayerCultivate.setCreateTime(new Date());
+            comPlayerCultivate.setLandId(comPlayerCultivateLandVo.getLandId());
+            comPlayerCultivate.setLandType(comPlayerCultivateLandVo.getLandType());
+            comPlayerCultivate.setLandName(comPlayerCultivateLandVo.getLandName());
+            comPlayerCultivate.setLandLimit(comPlayerCultivateLandVo.getLandLimit());
+            comPlayerCultivate.setIsActivity(0);
+            comPlayerCultivate.setUserId(userId);
+            cultivateRepository.save(comPlayerCultivate);
+            return Result.of(comPlayerCultivate, true, "租赁成功");
+        } catch (Exception e) {
+        } finally {
+            redisLock.unlock(_redisKey, String.valueOf(time));
+        }
+        return ErrorResult("租赁失败!");
+    }
+
+    @Transactional
+    @Override
+    public Result<?> toufang(String userId, String landId, String seedId, Integer seedNum) {
+        long time = System.currentTimeMillis() + RedisData.getPlayerCultivateTouFangTimeout();
+        String _redisKey = "LOCK:COM_PLAYER_CULTIVATE_TOUFANG:" + userId;
+        if (redisLock.lock(_redisKey, String.valueOf(time))) {
+            return ErrorResult("操作频繁!");
+        }
+        try {
+            ComPlayerCultivate comPlayerCultivate = cultivateRepository.findByUserId(userId);
+            if (comPlayerCultivate == null) {
+                return ErrorResult("该土地未被租赁!");
+            }
+            ComPlayerCultivateSeedVo seedVo = getSeedById(seedId);
+            if (seedVo == null) {
+                return ErrorResult("幼崽不存在!");
+            }
+            if (comPlayerCultivate != null && Integer.getInteger("1").equals(comPlayerCultivate.getIsActivity())) {
+                return ErrorResult("该土地正在使用中!");
+            }
+            //计算一下成熟的时间
+            DateTime maturityTime = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, seedVo.getMaturity());
+            if (maturityTime.after(comPlayerCultivate.getEndTime())) {
+                return ErrorResult("土地租赁时间不足!");
+            }
+            //判断一下种植最大数量
+            if (comPlayerCultivate.getLandLimit() > seedNum) {
+                return ErrorResult("最多可投放" + comPlayerCultivate.getLandLimit() + "!");
+            }
+            comPlayerCultivate.setIsActivity(1);
+            cultivateRepository.save(comPlayerCultivate);
+
+            ComPlayerCultivateDetail comPlayerCultivateDetailVo = new ComPlayerCultivateDetail();
+            comPlayerCultivateDetailVo.setCreateTime(new Date());
+            comPlayerCultivateDetailVo.setSeed(JSONUtil.toJsonStr(seedVo));
+            comPlayerCultivateDetailVo.setSeedId(seedVo.getSeedId());
+            comPlayerCultivateDetailVo.setSeedNum(seedNum);
+            comPlayerCultivateDetailVo.setIsMaturity(0);
+            comPlayerCultivateDetailVo.setMaturityTime(maturityTime);
+            comPlayerCultivateDetailVo.setIncomeNum(seedVo.getHarvest() * seedNum);
+            cultivateDetailRepository.save(comPlayerCultivateDetailVo);
+            return Result.of(null, true, "投放成功!");
+
+        } catch (Exception e) {
+        } finally {
+            redisLock.unlock(_redisKey, String.valueOf(time));
+        }
+        return ErrorResult("投放失败!");
+    }
+
+    //todo 少一个增加币的机会和减少币的机会,和推荐明细
+    private void getTimes(){
+
+    }
+    //todo 少一个被偷的逻辑
+    //todo 少一个成熟的逻辑
+    @Override
+    public List<ComPlayerCultivateLandVo> getLand() {
+        return comConfigService.selectByKey(ComConfigKeys.cultivateLand, ComPlayerCultivateLandVo.class);
+    }
+
+    @Override
+    public List<ComPlayerCultivateFoodVo> getFood() {
+        return comConfigService.selectByKey(ComConfigKeys.cultivateFood, ComPlayerCultivateFoodVo.class);
+    }
+
+    @Override
+    public List<ComPlayerCultivateSeedVo> getSeed() {
+        return comConfigService.selectByKey(ComConfigKeys.cultivateSeed, ComPlayerCultivateSeedVo.class);
+    }
+
+    private Result<?> ErrorResult(String msg) {
+        return Result.of(null, false, msg);
+    }
+
+    private ComPlayerCultivateLandVo getLandById(String landId) {
+        return getLand().stream().filter(a -> a.getLandId().toString().equals(landId)).findFirst().orElse(null);
+    }
+
+    private ComPlayerCultivateSeedVo getSeedById(String seedId) {
+        return getSeed().stream().filter(a -> a.getSeedId().toString().equals(seedId)).findFirst().orElse(null);
+    }
+}

+ 8 - 10
src/main/java/com/td/boss/game/complayerlandlog/pojo/ComPlayerLandLogDetail.java → src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateDetailVo.java

@@ -1,4 +1,4 @@
-package com.td.boss.game.complayerlandlog.pojo;
+package com.td.boss.game.complayercultivate.vo;
 
 import lombok.Data;
 
@@ -14,11 +14,9 @@ import java.util.Date;
  * @desc : 放牧养殖渔场放养记录
  */
 @Data
-@Table(name="com_player_land_log_detail")
-public class ComPlayerLandLogDetail implements Serializable {
-    /**  */
-    @Id
-    @GeneratedValue
+
+public class ComPlayerCultivateDetailVo implements Serializable {
+
     private Integer id ;
     /**  */
     private Integer logId ;
@@ -31,14 +29,14 @@ public class ComPlayerLandLogDetail implements Serializable {
     /** 放养开始时间 */
     private Date createTime ;
     /** 真实果实成熟时间 */
-    private Date delayTime ;
+    private Date maturityTime ;
     /** 延期日志 */
     private String delayLog ;
     /** 真实收入数量 */
-    private Integer incomeNum ;
+    private double incomeNum ;
     /** 收入日志 */
     private String incomeLog ;
-    /** 是否正在种植 */
-    private Integer isActivity ;
+    /** 是否成熟*/
+    private Integer isMaturity ;
 
 }

+ 12 - 0
src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateFoodVo.java

@@ -0,0 +1,12 @@
+package com.td.boss.game.complayercultivate.vo;
+
+import lombok.Data;
+
+@Data
+public class ComPlayerCultivateFoodVo {
+    private Integer foodId;
+    private String foodName;
+    private double foodSNB;
+    private int foodType;
+    private String foodImage;
+}

+ 13 - 0
src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateLandVo.java

@@ -0,0 +1,13 @@
+package com.td.boss.game.complayercultivate.vo;
+
+import lombok.Data;
+
+@Data
+public class ComPlayerCultivateLandVo {
+    private Integer landId;
+    private String landName;
+    private int landLimit;
+    private int landType;
+
+    private boolean isActivty;
+}

+ 16 - 0
src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateSeedVo.java

@@ -0,0 +1,16 @@
+package com.td.boss.game.complayercultivate.vo;
+
+import lombok.Data;
+
+@Data
+public class ComPlayerCultivateSeedVo {
+    private Integer seedId;
+    private String seedName;
+    private int seedSNB;
+    private int delayDays;
+    private String fruitname;
+    private int maturity;
+    private int harvest;
+    private Integer foodId;
+    private String image;
+}

+ 4 - 6
src/main/java/com/td/boss/game/complayerlandlog/vo/ComPlayerLandLogVo.java → src/main/java/com/td/boss/game/complayercultivate/vo/ComPlayerCultivateVo.java

@@ -1,4 +1,4 @@
-package com.td.boss.game.complayerlandlog.vo;
+package com.td.boss.game.complayercultivate.vo;
 
 
 import javax.persistence.*;
@@ -10,11 +10,9 @@ import java.util.Date;
  * @date : 2022-3-19
  * @desc : 放牧养殖渔场租赁表
  */
-@Table(name="com_player_land_log")
-public class ComPlayerLandLogVo implements Serializable{
-    /**  */
-    @Id
-    @GeneratedValue
+
+public class ComPlayerCultivateVo implements Serializable{
+
     private Integer id ;
     /** 用户id */
     private String userId ;

+ 76 - 0
src/main/java/com/td/boss/util/DappUtil.java

@@ -122,4 +122,80 @@ public class DappUtil {
         }
     }
 
+    /**
+     * 获取用户直推且有消费土地的人数量(模块7: 放牧与养殖)
+     * {
+     *     "code": 200,
+     *     "msg": "success",
+     *     "data": 0
+     * }
+     */
+    public static Integer getChildrenBuyLandCount(String userId){
+
+        MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
+        form.add("id", userId);
+        //验证地址
+        String DAppChildrenCountOnlineUrl = "https://yt.landownership.live/api/game/getChildrenBuyLandCount";
+        String DAppChildrenCountTestUrl = "https://wp.landownership.live/api/game/getChildrenBuyLandCount";
+        String DAppUrl = DappUtil.getEnv().equals("prod") ? DAppChildrenCountOnlineUrl : DAppChildrenCountTestUrl;
+        log.info("获取用户直推且有消费土地的人数量:" + 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);
+            return (Integer) response.get("data");
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return 0;
+            //e.printStackTrace();
+        }
+    }
+
+    /**
+     * 获取用户直推下级的消费土地的总cnt数额(模块9: 积分兑换种子)
+     * {
+     *     "code": 200,
+     *     "msg": "success",
+     *     "data": 0
+     * }
+     */
+    public static Integer getChildrenBuyLandAmount(String userId){
+
+        MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
+        form.add("id", userId);
+        //验证地址
+        String DAppChildrenCountOnlineUrl = "https://yt.landownership.live/api/game/getChildrenBuyLandAmount";
+        String DAppChildrenCountTestUrl = "https://wp.landownership.live/api/game/getChildrenBuyLandAmount";
+        String DAppUrl = DappUtil.getEnv().equals("prod") ? DAppChildrenCountOnlineUrl : DAppChildrenCountTestUrl;
+        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);
+            return (Integer) response.get("data");
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return 0;
+            //e.printStackTrace();
+        }
+    }
+
 }

+ 15 - 0
src/main/java/com/td/boss/util/RedisData.java

@@ -91,4 +91,19 @@ public class RedisData {
     public static int getUserApplyTimeout () {
         return USER_APPLY_TIMEOUT;
     }
+
+    /**
+     * 5s 养殖模块
+     */
+    private static final int PLAYER_CULTIVATE_ZULIN_TIMEOUT = 5 * 1000; //超时时间 5s
+    public static int getPlayerCultivateZuLinTimeout() {
+        return PLAYER_CULTIVATE_ZULIN_TIMEOUT;
+    }
+    /**
+     * 5s 养殖模块
+     */
+    private static final int PLAYER_CULTIVATE_TOUFANG_TIMEOUT = 5 * 1000; //超时时间 5s
+    public static int getPlayerCultivateTouFangTimeout() {
+        return PLAYER_CULTIVATE_TOUFANG_TIMEOUT;
+    }
 }

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

@@ -50,9 +50,9 @@ spring:
 
   #数据库配置
   datasource:
-    url: jdbc:mysql://42.192.165.168:3306/dragon_town?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=utf-8
+    url: jdbc:mysql://123.57.252.53:6688/dragon_town_320?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=utf-8
     username: root #dragon_town #root
-    password: 9ab8fad748dead93 #FzCebFq6Xy0CDTXJ #zddeiBmp8c5T6TR6
+    password: 7a829d0ecde828 #FzCebFq6Xy0CDTXJ #zddeiBmp8c5T6TR6
     driver-class-name: com.mysql.cj.jdbc.Driver
     hikari:
       minimum-idle: 5
@@ -64,9 +64,9 @@ spring:
       connection-test-query: SELECT 1
 
   redis:
-    host: 42.192.165.168 #123.57.252.53
+    host: 123.57.252.53 #123.57.252.53
     port: 6379
-    password: abc123456abc-test
+    password: heihei
     data: #工程中只是把redis作为缓存,并未使用redis作为数据持久化存储源repository使用.
       redis:
         repositories:

+ 31 - 0
src/test/java/com/td/boss/ComPlayerCultivateTests.java

@@ -0,0 +1,31 @@
+package com.td.boss;
+
+import cn.hutool.json.JSONUtil;
+import com.td.boss.common.pojo.ComConfigKeys;
+import com.td.boss.common.service.ComConfigService;
+import com.td.boss.game.complayercultivate.vo.*;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class ComPlayerCultivateTests {
+
+    @Autowired
+    private ComConfigService comConfigService;
+
+    @Test
+    public void configTest() {
+        List<ComPlayerCultivateFoodVo> comPlayerCultivateFoodVos = comConfigService.selectByKey(ComConfigKeys.cultivateFood, ComPlayerCultivateFoodVo.class);
+        List<ComPlayerCultivateLandVo> comPlayerCultivateLandVos = comConfigService.selectByKey(ComConfigKeys.cultivateLand, ComPlayerCultivateLandVo.class);
+        List<ComPlayerCultivateSeedVo> comPlayerCultivateSeedVos = comConfigService.selectByKey(ComConfigKeys.cultivateSeed, ComPlayerCultivateSeedVo.class);
+        System.out.println(JSONUtil.toJsonStr(comPlayerCultivateFoodVos));
+        System.out.println(JSONUtil.toJsonStr(comPlayerCultivateLandVos));
+        System.out.println(JSONUtil.toJsonStr(comPlayerCultivateSeedVos));
+    }
+}