From 54d2e6cccbcc8ecb176d807f80f5f64cf104018f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 24 Nov 2021 16:21:01 +0800
Subject: [PATCH] 20211124 fish
---
src/main/java/com/xcong/excoin/modules/fish/service/impl/MemberCannonServiceImpl.java | 26 +++++++++++--
src/main/java/com/xcong/excoin/modules/fish/dao/CannonOwnRecordDao.java | 2 +
src/main/resources/mapper/fish/CannonOwnRecordDao.xml | 4 ++
src/main/resources/mapper/fish/CannonSettingDao.xml | 4 ++
src/main/java/com/xcong/excoin/modules/fish/vo/OwnCannonVo.java | 1
src/main/java/com/xcong/excoin/modules/fish/dto/FishingDto.java | 21 ++++++++++
src/main/java/com/xcong/excoin/modules/fish/controller/MemberCannonController.java | 13 ++++--
src/main/java/com/xcong/excoin/modules/fish/service/MemberCannonService.java | 7 +--
src/main/java/com/xcong/excoin/modules/fish/dao/CannonSettingDao.java | 2 +
9 files changed, 68 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/fish/controller/MemberCannonController.java b/src/main/java/com/xcong/excoin/modules/fish/controller/MemberCannonController.java
index 4feb965..eb2af90 100644
--- a/src/main/java/com/xcong/excoin/modules/fish/controller/MemberCannonController.java
+++ b/src/main/java/com/xcong/excoin/modules/fish/controller/MemberCannonController.java
@@ -3,10 +3,7 @@
import com.xcong.excoin.common.response.Result;
import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletAgentInfoVo;
import com.xcong.excoin.modules.coin.parameter.vo.OrderWalletCoinDealVo;
-import com.xcong.excoin.modules.fish.dto.CannonExchangeDto;
-import com.xcong.excoin.modules.fish.dto.CoinGoldExchangeDto;
-import com.xcong.excoin.modules.fish.dto.GetCannonsDto;
-import com.xcong.excoin.modules.fish.dto.GoldExchangeDto;
+import com.xcong.excoin.modules.fish.dto.*;
import com.xcong.excoin.modules.fish.service.MemberCannonService;
import com.xcong.excoin.modules.fish.vo.CannonSettingVo;
import com.xcong.excoin.modules.fish.vo.GoldAccountVo;
@@ -86,5 +83,13 @@
return memberCannonService.getOwnCannon();
}
+ /**
+ * 捕鱼
+ */
+ @ApiOperation(value = "捕鱼")
+ @PostMapping(value = "/fishing")
+ public Result fishing(@RequestBody FishingDto fishingDto) {
+ return memberCannonService.fishing(fishingDto);
+ }
}
diff --git a/src/main/java/com/xcong/excoin/modules/fish/dao/CannonOwnRecordDao.java b/src/main/java/com/xcong/excoin/modules/fish/dao/CannonOwnRecordDao.java
index 5f3056b..722e17b 100644
--- a/src/main/java/com/xcong/excoin/modules/fish/dao/CannonOwnRecordDao.java
+++ b/src/main/java/com/xcong/excoin/modules/fish/dao/CannonOwnRecordDao.java
@@ -12,4 +12,6 @@
List<CannonOwnRecord> selectCannonOwnRecordsByMemberIdAndCannonCode(@Param("memberId")Long memberId, @Param("code")String code);
List<OwnCannonVo> selectCannonOwnRecordsByMemberId(@Param("memberId")Long memberId);
+
+ List<CannonOwnRecord> selectCannonOwnRecordsByIdAndMemberId(@Param("id")Long cannonOwnId, @Param("memberId")Long memberId);
}
diff --git a/src/main/java/com/xcong/excoin/modules/fish/dao/CannonSettingDao.java b/src/main/java/com/xcong/excoin/modules/fish/dao/CannonSettingDao.java
index 5decbb4..14894b6 100644
--- a/src/main/java/com/xcong/excoin/modules/fish/dao/CannonSettingDao.java
+++ b/src/main/java/com/xcong/excoin/modules/fish/dao/CannonSettingDao.java
@@ -15,4 +15,6 @@
List<CannonExchangeRatio> selectCannonExchangeRatio();
IPage<CannonSettingVo> findCannonSettingInPage(Page<CannonSettingVo> page, @Param("cannonSetting")CannonSetting cannonSetting);
+
+ CannonSetting selectCannonSettingByCannonCode(@Param("cannonCode")String cannonCode);
}
diff --git a/src/main/java/com/xcong/excoin/modules/fish/dto/FishingDto.java b/src/main/java/com/xcong/excoin/modules/fish/dto/FishingDto.java
new file mode 100644
index 0000000..23e9d52
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/fish/dto/FishingDto.java
@@ -0,0 +1,21 @@
+package com.xcong.excoin.modules.fish.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "FishingDto", description = "参数类")
+public class FishingDto {
+
+
+ @NotNull(message = "炮塔不能为空")
+ @ApiModelProperty(value = "炮塔ID", example = "100")
+ private Long cannonOwnId;
+
+ @ApiModelProperty(value = "获得金币", example = "100")
+ private Integer goldWin;
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/fish/service/MemberCannonService.java b/src/main/java/com/xcong/excoin/modules/fish/service/MemberCannonService.java
index 8c60692..207a488 100644
--- a/src/main/java/com/xcong/excoin/modules/fish/service/MemberCannonService.java
+++ b/src/main/java/com/xcong/excoin/modules/fish/service/MemberCannonService.java
@@ -2,10 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.xcong.excoin.common.response.Result;
-import com.xcong.excoin.modules.fish.dto.CannonExchangeDto;
-import com.xcong.excoin.modules.fish.dto.CoinGoldExchangeDto;
-import com.xcong.excoin.modules.fish.dto.GetCannonsDto;
-import com.xcong.excoin.modules.fish.dto.GoldExchangeDto;
+import com.xcong.excoin.modules.fish.dto.*;
import com.xcong.excoin.modules.fish.entity.CannonOwnRecord;
import org.apache.ibatis.annotations.Param;
@@ -26,4 +23,6 @@
Result getGoldAccount();
Result getOwnCannon();
+
+ Result fishing(FishingDto fishingDto);
}
diff --git a/src/main/java/com/xcong/excoin/modules/fish/service/impl/MemberCannonServiceImpl.java b/src/main/java/com/xcong/excoin/modules/fish/service/impl/MemberCannonServiceImpl.java
index ee974e7..ea0460d 100644
--- a/src/main/java/com/xcong/excoin/modules/fish/service/impl/MemberCannonServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/fish/service/impl/MemberCannonServiceImpl.java
@@ -14,10 +14,7 @@
import com.xcong.excoin.modules.fish.dao.CannonOwnRecordDao;
import com.xcong.excoin.modules.fish.dao.CannonSettingDao;
import com.xcong.excoin.modules.fish.dao.MemberAccountGoldDao;
-import com.xcong.excoin.modules.fish.dto.CannonExchangeDto;
-import com.xcong.excoin.modules.fish.dto.CoinGoldExchangeDto;
-import com.xcong.excoin.modules.fish.dto.GetCannonsDto;
-import com.xcong.excoin.modules.fish.dto.GoldExchangeDto;
+import com.xcong.excoin.modules.fish.dto.*;
import com.xcong.excoin.modules.fish.entity.*;
import com.xcong.excoin.modules.fish.service.MemberCannonService;
import com.xcong.excoin.modules.fish.vo.CannonSettingVo;
@@ -237,6 +234,27 @@
return Result.ok(cannonOwnRecords);
}
+ @Override
+ public Result fishing(FishingDto fishingDto) {
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+ Integer goldWin = fishingDto.getGoldWin() == null?0:fishingDto.getGoldWin();
+ if(goldWin < 0){
+ return Result.fail("请求异常,请刷新页面");
+ }
+ Long cannonOwnId = fishingDto.getCannonOwnId();
+ List<CannonOwnRecord> cannonOwnRecords = cannonOwnRecordDao.selectCannonOwnRecordsByIdAndMemberId(cannonOwnId,memberId);
+ if(CollUtil.isEmpty(cannonOwnRecords)){
+ Result.fail("请求异常,请刷新页面");
+ }
+ //消耗金币 = 每发炮弹的消耗 - 获得金币;
+ CannonOwnRecord cannonOwnRecord = cannonOwnRecords.get(0);
+ CannonSetting cannonSetting = cannonSettingDao.selectCannonSettingByCannonCode(cannonOwnRecord.getCannonCode());
+ BigDecimal goldConsume = cannonSetting.getGoldConsume().subtract(new BigDecimal(goldWin)).setScale(0,BigDecimal.ROUND_DOWN);
+ MemberAccountGold memberAccountGold = memberAccountGoldDao.selectAccountGoldByMemberId(memberId);
+ memberCannonService.updateTotalBalanceAndAvailableBalance(memberAccountGold.getId(),goldConsume.negate(),goldConsume.negate(),null);
+ return Result.ok("success");
+ }
+
public static void main(String[] args) {
System.out.println(UUID.randomUUID().toString());
}
diff --git a/src/main/java/com/xcong/excoin/modules/fish/vo/OwnCannonVo.java b/src/main/java/com/xcong/excoin/modules/fish/vo/OwnCannonVo.java
index 23823f8..6dc2329 100644
--- a/src/main/java/com/xcong/excoin/modules/fish/vo/OwnCannonVo.java
+++ b/src/main/java/com/xcong/excoin/modules/fish/vo/OwnCannonVo.java
@@ -9,6 +9,7 @@
@ApiModel(value = "OwnCannonVo", description = "金币账户")
public class OwnCannonVo {
+ private Long id;
private Long memberId;
@ApiModelProperty(value = "炮台UUID")//炮台UUID
private String cannonUuid;
diff --git a/src/main/resources/mapper/fish/CannonOwnRecordDao.xml b/src/main/resources/mapper/fish/CannonOwnRecordDao.xml
index e79ff28..ba3b187 100644
--- a/src/main/resources/mapper/fish/CannonOwnRecordDao.xml
+++ b/src/main/resources/mapper/fish/CannonOwnRecordDao.xml
@@ -13,4 +13,8 @@
where a.member_id = #{memberId}
</select>
+ <select id="selectCannonOwnRecordsByIdAndMemberId" resultType="com.xcong.excoin.modules.fish.entity.CannonOwnRecord">
+ select a.* from cannon_own_record a where a.member_id = #{memberId} and a.id = #{id}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/fish/CannonSettingDao.xml b/src/main/resources/mapper/fish/CannonSettingDao.xml
index c32369d..0bdfba0 100644
--- a/src/main/resources/mapper/fish/CannonSettingDao.xml
+++ b/src/main/resources/mapper/fish/CannonSettingDao.xml
@@ -10,4 +10,8 @@
select a.* from cannon_setting a order by id asc
</select>
+ <select id="selectCannonSettingByCannonCode" resultType="com.xcong.excoin.modules.fish.entity.CannonSetting">
+ select a.* from cannon_setting a where a.code = #{cannonCode}
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1