From 66e80ddd501b68cdbb7426d92707d9417c828703 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 04 Jan 2024 15:47:19 +0800
Subject: [PATCH] 团队列表
---
src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java | 1
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java | 67 ++++++++++++++++++++++
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 26 +++++---
src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeNewEnum.java | 1
src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java | 2
src/main/resources/mapper/modules/MallMemberAmountMapper.xml | 23 +++++++
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java | 2
src/main/java/cc/mrbird/febs/mall/dto/ApiTransGfdDto.java | 31 ++++++++++
src/main/java/cc/mrbird/febs/mall/controller/ApiMallProductController.java | 7 ++
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java | 5 +
10 files changed, 154 insertions(+), 11 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeNewEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeNewEnum.java
index 8ad44be..eac432f 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeNewEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeNewEnum.java
@@ -5,6 +5,7 @@
@Getter
public enum FlowTypeNewEnum {
+ GSD(4,"GSD"),
NFT(3,"NFT"),
TOKEN(2,"门票"),
FCM_COIN(1,"GFA代币")//
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java
index 5ffe2ab..33ac295 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java
@@ -11,6 +11,8 @@
@Getter
public enum MoneyFlowTypeNewEnum {
+ GFA_GSD(24,"GFA兑换GSD"),
+ NFT_GSD(23,"NFT兑换GSD"),
TEAM_PERK_EQUALS_DONE(22,"平级奖励"),
TEAM_PERK_DIRECT_DONE(21,"团队奖励"),
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallProductController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallProductController.java
index 37e9f2f..152263d 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallProductController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallProductController.java
@@ -120,6 +120,13 @@
return iApiMallProductService.outFcm(outFcmDto);
}
+
+ @ApiOperation(value = "FCM-NFT兑换GFD,GFA兑换GFD", notes = "FCM-NFT兑换GFD,GFA兑换GFD")
+ @PostMapping(value = "/transGfd")
+ public FebsResponse transGfd(@RequestBody @Valid ApiTransGfdDto transGfdDto) {
+ return iApiMallProductService.transGfd(transGfdDto);
+ }
+
@ApiOperation(value = "FCM-NFT提现", notes = "FCM-NFT提现")
@PostMapping(value = "/outNFT")
public FebsResponse outNFT(@RequestBody @Valid ApiOutNFTDto outNFTDto) {
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiTransGfdDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiTransGfdDto.java
new file mode 100644
index 0000000..68d3705
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiTransGfdDto.java
@@ -0,0 +1,31 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "ApiTransGfdDto", description = "请求类")
+public class ApiTransGfdDto {
+
+ @Valid
+ @NotNull(message = "数量不能为空")
+ @Min(0)
+ @ApiModelProperty(value = "兑换数量", example = "1")
+ private BigDecimal cnt;
+
+ @NotNull(message = "类型不能为空")
+ @ApiModelProperty(value = "类型 1:NFT兑换GFD 2:GFA兑换GFD", example = "1")
+ private Integer type;
+
+ @NotBlank(message = "交易密码不能为空")
+ @ApiModelProperty(value = "交易密码", example = "1")
+ private String tradePassword;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java
index 10f661e..c93e52c 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java
@@ -36,4 +36,5 @@
private BigDecimal fcmCntFrozen;//FCM代币冻结
private BigDecimal tokenAva;//令牌可用
private BigDecimal tokenFrozen;//令牌冻结
+ private BigDecimal gsd;//gsd积分-用来商城购物
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java
index 097af8b..a297e5e 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java
@@ -17,8 +17,13 @@
void updateTokenAvaAndTokenFrozenById(@Param("record")MallMemberAmount mallMemberAmount);
void updateTrendsNftById(@Param("record")MallMemberAmount mallMemberAmount);
+ void updateGsdById(@Param("record")MallMemberAmount mallMemberAmount);
void updateFrozenNftById(@Param("record")MallMemberAmount mallMemberAmount);
void updateTrendsNftAndFrozenNftById(@Param("record")MallMemberAmount mallMemberAmount);
+
+ void updateTrendsNftAndGsdById(@Param("record")MallMemberAmount mallMemberAmount);
+
+ void updateFcmCntAvaAndGsdById(@Param("record")MallMemberAmount mallMemberAmount);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java
index f444c88..edd1edb 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java
@@ -39,4 +39,6 @@
FebsResponse orderSellRecord(ApiOrderSellInfoDto apiOrderSellInfoDto);
FebsResponse orderBuyRecord(ApiOrderBuyInfoDto apiOrderBuyInfoDto);
+
+ FebsResponse transGfd(ApiTransGfdDto transGfdDto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 867f3b5..13c68fa 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -87,6 +87,7 @@
private final MallProductSellRecordMapper mallProductSellRecordMapper;
private final ICommonService commonService;
+ private final MallMemberAmountMapper mallMemberAmountMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -351,22 +352,25 @@
orderInfo.setPayTime(new Date());
orderInfo.setPayResult("1");
this.baseMapper.updateById(orderInfo);
+ MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(member.getId());
+ mallMemberAmount.setGsd(mallMemberAmount.getGsd().subtract(orderInfo.getAmount()));
+ mallMemberAmountMapper.updateGsdById(mallMemberAmount);
- commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue());
+// commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue());
/**
* 插入一条待处理记录
* mq处理之后,更新状态
*/
- MallMqRecord mallMqRecord = new MallMqRecord();
- mallMqRecord.setOrderId(orderInfo.getId());
- mallMqRecord.setState(2);
- mallMqRecord.setRetryTimes(2);
- mallMqRecord.setCreateTime(orderInfo.getPayTime());
- mallMqRecordMapper.insert(mallMqRecord);
- //发送补贴消息
- agentProducer.sendPerkMoneyMsg(orderInfo.getId());
- //发送代理自动升级消息
- agentProducer.sendAutoLevelUpMsg(member.getId());
+// MallMqRecord mallMqRecord = new MallMqRecord();
+// mallMqRecord.setOrderId(orderInfo.getId());
+// mallMqRecord.setState(2);
+// mallMqRecord.setRetryTimes(2);
+// mallMqRecord.setCreateTime(orderInfo.getPayTime());
+// mallMqRecordMapper.insert(mallMqRecord);
+// //发送补贴消息
+// agentProducer.sendPerkMoneyMsg(orderInfo.getId());
+// //发送代理自动升级消息
+// agentProducer.sendAutoLevelUpMsg(member.getId());
break;
case "4":
if (orderInfo.getOrderType() != 2) {
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java
index 1d12048..c2f8832 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java
@@ -699,4 +699,71 @@
ApiOrderBuyRecordInfoVo apiOrderBuyRecordInfoVo = mallProductBuyRecordMapper.selectByBuyRecordId(productBuyRecordId);
return new FebsResponse().success().data(apiOrderBuyRecordInfoVo);
}
+
+ @Override
+ public FebsResponse transGfd(ApiTransGfdDto transGfdDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ BigDecimal cnt = transGfdDto.getCnt();//兑换数量
+
+ MallMember mallMember = memberMapper.selectById(memberId);
+ String tradePassword = SecureUtil.md5(transGfdDto.getTradePassword());
+ Boolean aBoolean = operationPermissionMemberFrozen(memberId);
+ if(aBoolean){
+ throw new FebsException("用户已冻结");
+ }
+ if(!tradePassword.equals(mallMember.getTradePassword())){
+ throw new FebsException("请输入正确的交易密码");
+ }
+ MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
+ Integer type = transGfdDto.getType();
+ String orderNo = MallUtils.getOrderNum("GSD");
+ if(1 == type){//NFT兑换GFD
+ BigDecimal trendsNft = mallMemberAmount.getTrendsNft();
+ if(BigDecimal.ZERO.compareTo(trendsNft) >= 0){
+ throw new FebsException("NFT不足");
+ }
+ if(cnt.compareTo(trendsNft) > 0){
+ throw new FebsException("NFT不足");
+ }
+ mallMemberAmount.setTrendsNft(trendsNft.subtract(cnt));
+ mallMemberAmount.setGsd(mallMemberAmount.getGsd().add(cnt));
+ mallMemberAmountMapper.updateTrendsNftAndGsdById(mallMemberAmount);
+ iMallMoneyFlowService.addMoneyFlow(
+ memberId,
+ cnt,
+ MoneyFlowTypeNewEnum.NFT_GSD.getValue(),
+ orderNo,
+ mallMember.getId(),
+ FlowTypeNewEnum.GSD.getValue(),
+ MoneyFlowTypeNewEnum.NFT_GSD.getDescrition());
+
+ }
+ if(2 == type){//GFA兑换GFD
+ BigDecimal fcmCntAva = mallMemberAmount.getFcmCntAva();
+ if(BigDecimal.ZERO.compareTo(fcmCntAva) >= 0){
+ throw new FebsException("代币不足");
+ }
+ if(cnt.compareTo(fcmCntAva) > 0){
+ throw new FebsException("代币不足");
+ }
+ DataDictionaryCustom fcmPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.FCM_PRICE.getType(),
+ DataDictionaryEnum.FCM_PRICE.getCode());
+ BigDecimal fcmPrice = ObjectUtil.isEmpty(fcmPriceDic) ? new BigDecimal(2) : new BigDecimal(fcmPriceDic.getValue());
+ BigDecimal gsdCnt = fcmPrice.multiply(cnt);
+ mallMemberAmount.setFcmCntAva(fcmCntAva.subtract(cnt));
+ mallMemberAmount.setGsd(mallMemberAmount.getGsd().add(gsdCnt));
+ mallMemberAmountMapper.updateFcmCntAvaAndGsdById(mallMemberAmount);
+ iMallMoneyFlowService.addMoneyFlow(
+ memberId,
+ cnt,
+ MoneyFlowTypeNewEnum.GFA_GSD.getValue(),
+ orderNo,
+ mallMember.getId(),
+ FlowTypeNewEnum.GSD.getValue(),
+ MoneyFlowTypeNewEnum.GFA_GSD.getDescrition());
+
+ }
+ return new FebsResponse().success();
+ }
}
diff --git a/src/main/resources/mapper/modules/MallMemberAmountMapper.xml b/src/main/resources/mapper/modules/MallMemberAmountMapper.xml
index 1173316..0b3f92a 100644
--- a/src/main/resources/mapper/modules/MallMemberAmountMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberAmountMapper.xml
@@ -35,6 +35,13 @@
where id = #{record.id} and revision=#{record.revision}
</update>
+ <update id="updateGsdById">
+ update mall_member_amount
+ set revision = revision + 1,
+ gsd = #{record.gsd}
+ where id = #{record.id} and revision=#{record.revision}
+ </update>
+
<update id="updateFrozenNftById">
update mall_member_amount
set revision = revision + 1,
@@ -50,4 +57,20 @@
where id = #{record.id} and revision=#{record.revision}
</update>
+ <update id="updateTrendsNftAndGsdById">
+ update mall_member_amount
+ set revision = revision + 1,
+ gsd = #{record.gsd},
+ trends_nft = #{record.trendsNft}
+ where id = #{record.id} and revision=#{record.revision}
+ </update>
+
+ <update id="updateFcmCntAvaAndGsdById">
+ update mall_member_amount
+ set revision = revision + 1,
+ gsd = #{record.gsd},
+ fcm_cnt_ava = #{record.fcmCntAva}
+ where id = #{record.id} and revision=#{record.revision}
+ </update>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1