From c3793ad938cefba5fa76258d70e0cbc37bcf151c Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 22 Nov 2023 16:39:54 +0800
Subject: [PATCH] 匹配
---
src/main/java/cc/mrbird/febs/mall/entity/MallProductSellRecord.java | 1
src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyInfoVo.java | 2
src/main/java/cc/mrbird/febs/mall/dto/ApiOrderBuyInsureDto.java | 22 ++
src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java | 14 +
src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyRecordMapper.java | 1
src/main/java/cc/mrbird/febs/mall/mapper/MallProductSellRecordMapper.java | 1
src/main/resources/templates/error/404.html | 2
src/main/java/cc/mrbird/febs/pay/service/impl/AliPayServiceImpl.java | 2
src/main/resources/mapper/modules/MallProductSellRecordMapper.xml | 7
src/main/java/cc/mrbird/febs/mall/mapper/MallProductNftMapper.java | 3
src/main/java/cc/mrbird/febs/mall/service/IAgentService.java | 2
src/main/resources/templates/error/403.html | 2
src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java | 17 ++
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java | 18 +-
src/main/java/cc/mrbird/febs/mall/entity/MallProductBuy.java | 4
src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java | 2
src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java | 6
src/main/resources/templates/error/500.html | 2
src/main/java/cc/mrbird/febs/common/enumerates/ProductEnum.java | 5
src/main/java/cc/mrbird/febs/mall/dto/ApiOrderSellInsureDto.java | 18 ++
src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java | 4
src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java | 12
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java | 107 +++++++++++++
src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java | 2
src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java | 4
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java | 1
src/main/java/cc/mrbird/febs/mall/controller/ApiMallProductController.java | 26 ++
src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java | 2
src/main/resources/mapper/modules/MallProductBuyMapper.xml | 9 +
src/main/resources/mapper/modules/MallProductNftMapper.xml | 7
src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml | 7
src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java | 2
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 68 ++++++++
src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java | 4
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 65 ++++++++
src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 8 +
src/main/resources/templates/febs/views/layout.html | 2
src/main/resources/templates/febs/views/login.html | 4
38 files changed, 430 insertions(+), 35 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
index b4b5144..cb52579 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -213,4 +213,21 @@
}
//强制卖出 end
+ //卖单用户确认 start
+ @Bean
+ public DirectExchange fcmOrderSellInsureExchange() {
+ return new DirectExchange(RabbitQueueEnum.FCMPAY_FCM_ORDER_SELL_INSURE.getExchange());
+ }
+
+ @Bean
+ public Queue fcmOrderSellInsureQueue() {
+ return new Queue(RabbitQueueEnum.FCMPAY_FCM_ORDER_SELL_INSURE.getQueue());
+ }
+
+ @Bean
+ public Binding fcmOrderSellInsureBind() {
+ return BindingBuilder.bind(fcmOrderSellInsureQueue()).to(fcmOrderSellInsureExchange()).with(RabbitQueueEnum.FCMPAY_FCM_ORDER_SELL_INSURE.getRoute());
+ }
+ //卖单用户确认 end
+
}
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 2dee09d..8113124 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java
@@ -10,6 +10,7 @@
**/
@Getter
public enum MoneyFlowTypeNewEnum {
+ PAY(12,"支付"),
NFT_OUT_FEE(11,"NFT提现手续费"),
NFT_OUT(10,"NFT提现"),
NFT_IN(9,"FCM动态兑换"),
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/ProductEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/ProductEnum.java
index f825942..35c61a2 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/ProductEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/ProductEnum.java
@@ -29,6 +29,11 @@
PRODUCT_BUY_ON_GOING(1,"进行中"),
PRODUCT_BUY_FAIL(0,"失败"),
/**
+ * 用户买单转换买单状态 转换卖单状态 0:未转换 1:已转换
+ */
+ PRODUCT_BUY_MATE_STATE_SUCCESS(1,"已转换"),
+ PRODUCT_BUY_MATE_STATE_FAIL(0,"未转换"),
+ /**
* 预约产品是否开启
*/
PRODUCT_NFT_OPEN(1,"开启"),
diff --git a/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java b/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
index 5a05607..0c0875d 100644
--- a/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
+++ b/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
@@ -63,7 +63,7 @@
log.info("/ /` / / \\ | |\\/| | |_) | | | |_ | | | |_ ");
log.info("\\_\\_, \\_\\_/ |_| | |_| |_|__ |_|__ |_| |_|__ ");
log.info(" ");
- log.info("鸿楼梦 权限系统启动完毕,地址:{}", url);
+ log.info("GFA 权限系统启动完毕,地址:{}", url);
boolean auto = febsProperties.isAutoOpenBrowser();
if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) {
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
index 5b55e36..c2daba3 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
@@ -29,38 +29,38 @@
private final IApiMallMemberService memberService;
- @ApiOperation(value = "点击生成账号", notes = "点击生成账号")
+ @ApiOperation(value = "FCM-点击生成账号", notes = "FCM-点击生成账号")
@GetMapping(value = "/createAccount")
public FebsResponse createAccount() {
return memberService.createAccount();
}
- @ApiOperation(value = "点击生成密钥", notes = "点击生成密钥")
+ @ApiOperation(value = "FCM-点击生成密钥", notes = "FCM-点击生成密钥")
@GetMapping(value = "/createKey")
public FebsResponse createKey() {
return memberService.createKey();
}
- @ApiOperation(value = "app注册接口", notes = "app注册接口")
+ @ApiOperation(value = "FCM-app注册接口", notes = "FCM-app注册接口")
@PostMapping(value = "/register")
public FebsResponse register(@RequestBody @Valid RegisterDto registerDto) {
return memberService.register(registerDto);
}
- @ApiOperation(value = "账号密码登录接口", notes = "账号密码登录接口")
+ @ApiOperation(value = "FCM-账号密码登录接口", notes = "FCM-账号密码登录接口")
@PostMapping(value = "/toLogin")
public FebsResponse login(@RequestBody @Valid LoginDto loginDto) {
return memberService.toLogin(loginDto);
}
- @ApiOperation(value = "忘记/修改密码", notes = "忘记/修改密码")
+ @ApiOperation(value = "FCM-忘记/修改密码", notes = "FCM-忘记/修改密码")
@PostMapping(value = "/forgetPwd")
public FebsResponse forgetPwd(@RequestBody @Valid ForgetPwdDto forgetPwdDto) {
return memberService.forgetPwd(forgetPwdDto);
}
- @ApiOperation(value = "忘记密码", notes = "忘记/修改密码")
+ @ApiOperation(value = "FCM-忘记密码", notes = "FCM-忘记/修改密码")
@PostMapping(value = "/pwdForget")
public FebsResponse pwdForget(@RequestBody @Valid ForgetPwdDto forgetPwdDto) {
return memberService.pwdForget(forgetPwdDto);
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
index 4dc5754..1eb5a26 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -36,7 +36,7 @@
private final IMallMemberWithdrawService mallMemberWithdrawService;
private final IApiMallMemberWalletService walletService;
- @ApiOperation(value = "获取商城用户信息", notes = "获取商城用户信息")
+ @ApiOperation(value = "FCM-获取商城用户信息", notes = "FCM-获取商城用户信息")
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = MallMemberVo.class)
})
@@ -45,25 +45,25 @@
return memberService.findMemberInfo();
}
- @ApiOperation(value = "修改用户信息")
+ @ApiOperation(value = "FCM-修改用户信息")
@PostMapping(value = "/modifyInfo")
public FebsResponse modifyInfo(@RequestBody @Valid ModifyMemberInfoDto modifyMemberInfoDto) {
return memberService.modifyMemberInfo(modifyMemberInfoDto);
}
- @ApiOperation(value = "解除冻结")
+ @ApiOperation(value = "FCM-解除冻结")
@PostMapping(value = "/unfreeze")
public FebsResponse unfreeze(@RequestBody @Valid UnfreezeDto unfreezeDto) {
return memberService.unfreeze(unfreezeDto);
}
- @ApiOperation(value = "找回密钥")
+ @ApiOperation(value = "FCM-找回密钥")
@PostMapping(value = "/getKey")
public FebsResponse getKey(@RequestBody @Valid GetKeyDto getKeyDto) {
return memberService.getKey(getKeyDto);
}
- @ApiOperation(value = "获取收款信息", notes = "获取收款信息")
+ @ApiOperation(value = "FCM-获取收款信息", notes = "FCM-获取收款信息")
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = MallMemberPaymentVo.class)
})
@@ -72,13 +72,13 @@
return memberService.getPayment();
}
- @ApiOperation(value = "修改收款信息", notes = "修改收款信息")
+ @ApiOperation(value = "FCM-修改收款信息", notes = "FCM-修改收款信息")
@PostMapping(value = "/updatePayment")
public FebsResponse updatePayment(@RequestBody @Valid UpdatePaymentDto updatePaymentDto) {
return memberService.updatePayment(updatePaymentDto);
}
- @ApiOperation(value = "推出登录", notes = "推出登录")
+ @ApiOperation(value = "FCM-推出登录", notes = "FCM-推出登录")
@PostMapping(value = "/logout")
public FebsResponse logout() {
return memberService.logout();
@@ -90,7 +90,7 @@
return memberService.findMemberMarkCnt();
}
- @ApiOperation(value = "设置支付密码")
+ @ApiOperation(value = "FCM-设置支付密码")
@PostMapping(value = "/setTradePwd")
public FebsResponse setTradePwd(@RequestBody ForgetPwdDto forgetPwdDto) {
return memberService.setTradePwd(forgetPwdDto);
@@ -115,7 +115,7 @@
return memberService.moneyFlows(moneyFlowDto);
}
- @ApiOperation(value = "转账")
+ @ApiOperation(value = "FCM-转账")
@PostMapping(value = "/transfer")
public FebsResponse transfer(@RequestBody @Validated TransferDto transferDto) {
memberService.transfer(transferDto);
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 e17c388..4908860 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallProductController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallProductController.java
@@ -26,19 +26,19 @@
private final IApiMallProductService iApiMallProductService;
- @ApiOperation(value = "预约产品列表", notes = "预约产品列表")
+ @ApiOperation(value = "FCM-预约产品列表", notes = "FCM-预约产品列表")
@GetMapping(value = "/productNFTList")
public FebsResponse productNFTList() {
return new FebsResponse().success().data(iApiMallProductService.productNFTList());
}
- @ApiOperation(value = "预约", notes = "预约")
+ @ApiOperation(value = "FCM-预约", notes = "FCM-预约")
@PostMapping(value = "/createNFT")
public FebsResponse createNFT(@RequestBody @Valid ApiCreateNFTDto createNFTDto) {
return iApiMallProductService.createNFT(createNFTDto);
}
- @ApiOperation(value = "订单管理-列表", notes = "订单管理-列表")
+ @ApiOperation(value = "FCM-订单管理-列表", notes = "FCM-订单管理-列表")
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = ApiOrderListVo.class)
})
@@ -47,7 +47,7 @@
return iApiMallProductService.orderList(apiOrderListDto);
}
- @ApiOperation(value = "订单管理-查看提现详情", notes = "订单管理-查看提现详情")
+ @ApiOperation(value = "FCM-订单管理-查看提现详情", notes = "FCM-订单管理-查看提现详情")
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = ApiOrderSellInfoVo.class)
})
@@ -56,7 +56,7 @@
return iApiMallProductService.orderSell(apiOrderSellInfoDto);
}
- @ApiOperation(value = "订单管理-查看预约详情", notes = "订单管理-查看预约详情")
+ @ApiOperation(value = "FCM-订单管理-查看预约详情", notes = "FCM-订单管理-查看预约详情")
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = ApiOrderBuyInfoVo.class)
})
@@ -65,13 +65,25 @@
return iApiMallProductService.orderBuy(apiOrderBuyInfoDto);
}
- @ApiOperation(value = "FCM提现", notes = "FCM提现")
+ @ApiOperation(value = "FCM-订单管理-查看预约详情-打款", notes = "FCM-订单管理-查看预约详情-打款")
+ @PostMapping(value = "/orderBuyInsure")
+ public FebsResponse orderBuyInsure(@RequestBody @Valid ApiOrderBuyInsureDto apiOrderBuyInsureDto) {
+ return iApiMallProductService.orderBuyInsure(apiOrderBuyInsureDto);
+ }
+
+ @ApiOperation(value = "FCM-订单管理-查看提现详情-确认", notes = "FCM-订单管理-查看提现详情-确认")
+ @PostMapping(value = "/orderSellInsure")
+ public FebsResponse orderSellInsure(@RequestBody @Valid ApiOrderSellInsureDto apiOrderSellInsureDto) {
+ return iApiMallProductService.orderSellInsure(apiOrderSellInsureDto);
+ }
+
+ @ApiOperation(value = "FCM-FCM提现", notes = "FCM-FCM提现")
@PostMapping(value = "/outFcm")
public FebsResponse outFcm(@RequestBody @Valid ApiOutFcmDto outFcmDto) {
return iApiMallProductService.outFcm(outFcmDto);
}
- @ApiOperation(value = "NFT提现", notes = "NFT提现")
+ @ApiOperation(value = "FCM-NFT提现", notes = "FCM-NFT提现")
@PostMapping(value = "/outNFT")
public FebsResponse outNFT(@RequestBody @Valid ApiOutNFTDto outNFTDto) {
return iApiMallProductService.outNFT(outNFTDto);
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiOrderBuyInsureDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiOrderBuyInsureDto.java
new file mode 100644
index 0000000..f3454bf
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiOrderBuyInsureDto.java
@@ -0,0 +1,22 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiOrderBuyInsureDto", description = "参数接收类")
+public class ApiOrderBuyInsureDto {
+ @NotNull(message = "类型参数不能为空")
+ private Long buyRecordId;//ApiOrderSellRecordInfoVo中的ID,预约单子表ID
+ @NotNull(message = "类型参数不能为空")
+ private String nftImg;//支付凭证
+ @NotNull(message = "类型参数不能为空")
+ private Integer type;//支付类型 1:微信 2:支付宝 3:银行转账 4:USDT转账
+
+ @NotNull(message = "交易密码不能为空")
+ @ApiModelProperty(value = "交易密码", example = "1")
+ private String tradePassword;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiOrderSellInsureDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiOrderSellInsureDto.java
new file mode 100644
index 0000000..a9b8f68
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiOrderSellInsureDto.java
@@ -0,0 +1,18 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiOrderSellInsureDto", description = "参数接收类")
+public class ApiOrderSellInsureDto {
+ @NotNull(message = "交易密码不能为空")
+ private Long sellRecordId;//ApiOrderSellRecordInfoVo的id,提现子表的ID
+
+ @NotNull(message = "交易密码不能为空")
+ @ApiModelProperty(value = "交易密码", example = "1")
+ private String tradePassword;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallProductBuy.java b/src/main/java/cc/mrbird/febs/mall/entity/MallProductBuy.java
index e8ae233..d410e25 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallProductBuy.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallProductBuy.java
@@ -18,9 +18,9 @@
private Long sellId;//出售ID
private Long productNftId;//预约NFTID
private int state;//预约状态 0:失败 1:进行中 2:超时 3:已完成
- private int mateState;//匹配状态0:失败 1:匹配中 2:待支付 3:已支付 4:对方已确认 5:已完成
+ private int mateState;//转换卖单状态 0:未转换 1:已转换
private BigDecimal nftTotal;//nft预约额度
- private BigDecimal nftAva;//nft分配额度
+ private BigDecimal nftAva;//待分配额度
private Date orderTime;//匹配时间
private Date payTime;//支付时间
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallProductSellRecord.java b/src/main/java/cc/mrbird/febs/mall/entity/MallProductSellRecord.java
index c3e75ac..c0ff449 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallProductSellRecord.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallProductSellRecord.java
@@ -13,6 +13,7 @@
private Long sellId;//
private Long memberId;//
+ private Long buyRecordId;//
private Date orderTime;//匹配时间
private Date payTime;//支付时间
private BigDecimal nftCnt;//支付数量
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java
index 857b95d..64a6f11 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java
@@ -8,6 +8,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
public interface MallProductBuyMapper extends BaseMapper<MallProductBuy> {
MallProductBuy selectMemberIdAndNFTIdAndStateAndMateState(@Param("memberId")Long memberId,
@Param("productNFTId")Long productNFTId,
@@ -17,4 +19,6 @@
IPage<ApiOrderListVo> selectListInPage(IPage<ApiOrderListVo> page, @Param("record")ApiOrderListDto apiOrderListDto);
ApiOrderBuyInfoVo selectBuyById(@Param("id")Long productBuyId);
+
+ List<MallProductBuy> selectListByStateAndProductNFTId(@Param("state")int value, @Param("nftId")Long nftId, @Param("mateState")int mateState);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyRecordMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyRecordMapper.java
index 9f01524..7a86d5e 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyRecordMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyRecordMapper.java
@@ -11,4 +11,5 @@
List<ApiOrderBuyRecordInfoVo> selectByBuyId(@Param("productBuyId")Long productBuyId);
+ List<MallProductBuyRecord> selectListByBuyId(@Param("buyId")Long buyId,@Param("state")Integer state);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductNftMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductNftMapper.java
index 4e64adc..a93dd4b 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductNftMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductNftMapper.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.mall.mapper;
+import cc.mrbird.febs.common.enumerates.ProductEnum;
import cc.mrbird.febs.mall.entity.MallProductBuy;
import cc.mrbird.febs.mall.entity.MallProductNft;
import cc.mrbird.febs.mall.entity.MallProductSell;
@@ -22,4 +23,6 @@
IPage<AdminMallProductSellVo> getSellList(Page<AdminMallProductSellVo> page, @Param("record")MallProductSell mallProductSell);
List<AdminMallProductSellPickVo> selectProductSellByState(@Param("state")int value);
+
+ List<MallProductNft> selectListByState(@Param("state")ProductEnum productNftOpen);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductSellRecordMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductSellRecordMapper.java
index ed0f200..dd18f31 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductSellRecordMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductSellRecordMapper.java
@@ -11,4 +11,5 @@
List<ApiOrderSellRecordInfoVo> selectBySellId(@Param("productSellId")Long productSellId);
+ List<MallProductSellRecord> selectListBySellId(@Param("sellId")Long sellId,@Param("state")Integer state);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index fe90cf4..f75b9dd 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -117,6 +117,14 @@
agentService.perkAgent();
}
+ /**
+ * 用户预约完成之后,根据产品周期,将用户买单变成买单
+ */
+ @Scheduled(cron = "0 0 0 * * ?")
+ public void BuyToSell() {
+ agentService.BuyToSell();
+ }
+
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
index ee9999f..2104e21 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
@@ -39,4 +39,6 @@
void achieveReleasePercent();
void perkAgent();
+
+ void BuyToSell();
}
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 2c7897e..93e3420 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java
@@ -23,4 +23,8 @@
FebsResponse orderSell(ApiOrderSellInfoDto apiOrderSellInfoDto);
FebsResponse orderBuy(ApiOrderBuyInfoDto apiOrderBuyInfoDto);
+
+ FebsResponse orderBuyInsure(ApiOrderBuyInsureDto apiOrderBuyInsureDto);
+
+ FebsResponse orderSellInsure(ApiOrderSellInsureDto apiOrderSellInsureDto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java b/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
index 8283291..442d128 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
@@ -57,4 +57,6 @@
void selaHalfVoucher(String price);
void fcmNFTExchangeMsg(String cnt);
+
+ void fcmOrderSellInsureMsg(Long sellRecordId);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index afa2e83..e89a8e9 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -10,6 +10,8 @@
import cc.mrbird.febs.mall.vo.AdminTeamEqualsPerkVo;
import cc.mrbird.febs.system.mapper.UserMapper;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.math.MathUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -54,6 +56,12 @@
private final MallGoodsMapper mallGoodsMapper;
private final ICommonService commonService;
+
+ private final MallProductBuyRecordMapper mallProductBuyRecordMapper;
+ private final MallProductBuyMapper mallProductBuyMapper;
+ private final MallProductSellMapper mallProductSellMapper;
+ private final MallProductSellRecordMapper mallProductSellRecordMapper;
+ private final MallProductNftMapper mallProductNftMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -810,5 +818,65 @@
List<MallMember> secondLevelRecord = getStarRecord(thirdLevelRecord, MemberLevelEnum.SECOND_LEVEL.name(), amount, orderNo, 0L,MoneyFlowTypeEnum.STAR_PERK_TWO.getValue());
}
+ @Override
+ public void BuyToSell() {
+ /**
+ * nft产品周期到期的已完成买单变成卖单
+ * 计算收益,本金
+ */
+ List<MallProductNft> mallProductNfts = mallProductNftMapper.selectList(null);
+ if(CollUtil.isEmpty(mallProductNfts)){
+ return;
+ }
+ DateTime now = DateUtil.date();
+ for(MallProductNft mallProductNft : mallProductNfts){
+ Long nftId = mallProductNft.getId();
+ List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectListByStateAndProductNFTId(
+ ProductEnum.PRODUCT_BUY_SUCCESS.getValue(),
+ nftId,
+ ProductEnum.PRODUCT_BUY_MATE_STATE_FAIL.getValue());
+ if(CollUtil.isEmpty(mallProductBuys)){
+ continue;
+ }
+ //周期
+ int cycle = mallProductNft.getCycle();
+ //收益率
+ BigDecimal profitPercent = mallProductNft.getProfit();
+ for(MallProductBuy mallProductBuy : mallProductBuys){
+
+ Date payTime = mallProductBuy.getPayTime();
+ //偏移时间
+ DateTime dateTime = DateUtil.offsetDay(payTime, cycle);
+ int compare = DateUtil.compare(now, dateTime);
+ if(compare <= 0){
+ /**
+ * 更新买单状态
+ * 收益生成一条卖单
+ * 本金生成一条卖单
+ */
+ mallProductBuy.setMateState(ProductEnum.PRODUCT_BUY_MATE_STATE_SUCCESS.getValue());
+ mallProductBuyMapper.updateById(mallProductBuy);
+ BigDecimal nftTotal = mallProductBuy.getNftTotal();
+ insertSell(mallProductBuy.getMemberId(),nftTotal,nftTotal,BigDecimal.ZERO,BigDecimal.ZERO);
+ BigDecimal profit = nftTotal.multiply(profitPercent.multiply(new BigDecimal(0.01)));
+ insertSell(mallProductBuy.getMemberId(),profit,profit,BigDecimal.ZERO,BigDecimal.ZERO);
+ }
+ }
+ }
+ }
+ public void insertSell(Long memberId,BigDecimal nftCnt,BigDecimal nftCntAva,
+ BigDecimal nftFee,BigDecimal fcmFeeCnt){
+ String orderNo = MallUtils.getOrderNum("NFT");
+ MallProductSell mallProductSell = new MallProductSell();
+ mallProductSell.setMemberId(memberId);
+ mallProductSell.setOrderNo(orderNo);
+ mallProductSell.setNftTotal(nftCnt);
+ mallProductSell.setNftCnt(nftCntAva);
+ mallProductSell.setNftCntAva(nftCntAva);
+ mallProductSell.setNftFee(nftFee);
+ mallProductSell.setFcmFee(fcmFeeCnt);
+ mallProductSell.setState(ProductEnum.PRODUCT_SELL_ON_GOING.getValue());
+ mallProductSellMapper.insert(mallProductSell);
+ }
}
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 bc49198..1fdf668 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
@@ -16,6 +16,8 @@
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -91,7 +93,7 @@
mallProductBuy.setOrderNo(orderNo);
mallProductBuy.setProductNftId(mallProductNft.getId());
mallProductBuy.setState(ProductEnum.PRODUCT_BUY_ON_GOING.getValue());
- mallProductBuy.setMateState(ProductEnum.PRODUCT_MATE_STATE_ON_GOING.getValue());
+ mallProductBuy.setMateState(ProductEnum.PRODUCT_BUY_MATE_STATE_FAIL.getValue());
mallProductBuy.setNftTotal(mallProductNft.getPriceNft());
mallProductBuy.setNftAva(BigDecimal.ZERO);
mallProductBuyMapper.insert(mallProductBuy);
@@ -328,4 +330,107 @@
}
return new FebsResponse().success().data(apiOrderBuyInfoVo);
}
+
+ @Override
+ public FebsResponse orderBuyInsure(ApiOrderBuyInsureDto apiOrderBuyInsureDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ MallMember mallMember = memberMapper.selectById(memberId);
+ Long buyRecordId = apiOrderBuyInsureDto.getBuyRecordId();
+ String nftImg = apiOrderBuyInsureDto.getNftImg();
+ Integer type = apiOrderBuyInsureDto.getType();
+ String tradePassword = SecureUtil.md5(apiOrderBuyInsureDto.getTradePassword());
+ /**
+ * 验证订单是否存在
+ * 更新买单状态
+ * 更新卖单状态
+ * 生成流水信息
+ */
+ if(!tradePassword.equals(mallMember.getTradePassword())){
+ throw new FebsException("请输入正确的交易密码");
+ }
+ MallProductBuyRecord mallProductBuyRecord = mallProductBuyRecordMapper.selectById(buyRecordId);
+ if(ObjectUtil.isEmpty(mallProductBuyRecord)){
+ throw new FebsException("记录不存在");
+ }
+ Integer state = mallProductBuyRecord.getState();
+ if(ProductEnum.PRODUCT_MATE_STATE_WAIT_PAY.getValue() != state){
+ throw new FebsException("记录不是待支付状态");
+ }
+
+ MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(mallProductBuyRecord.getSellRecordId());
+ if(ObjectUtil.isEmpty(mallProductSellRecord)){
+ throw new FebsException("记录不存在");
+ }
+ Integer stateSell = mallProductSellRecord.getState();
+ if(ProductEnum.PRODUCT_MATE_STATE_WAIT_PAY.getValue() != stateSell){
+ throw new FebsException("记录不是待支付状态");
+ }
+
+ DateTime payTime = DateUtil.date();
+ mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue());
+ mallProductBuyRecord.setPayTime(payTime);
+ mallProductBuyRecord.setNftImg(nftImg);
+ mallProductBuyRecord.setType(type);
+ mallProductBuyRecordMapper.updateById(mallProductBuyRecord);
+
+ mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue());
+ mallProductSellRecord.setPayTime(payTime);
+ mallProductSellRecord.setNftImg(nftImg);
+ mallProductSellRecord.setType(type);
+ mallProductSellRecordMapper.updateById(mallProductSellRecord);
+
+ String orderNo = MallUtils.getOrderNum("ZF");
+ iMallMoneyFlowService.addMoneyFlow(
+ memberId,
+ mallProductBuyRecord.getPickNftCnt(),
+ MoneyFlowTypeNewEnum.PAY.getValue(),
+ orderNo,
+ mallMember.getId(),
+ FlowTypeNewEnum.NFT.getValue(),
+ MoneyFlowTypeNewEnum.PAY.getDescrition());
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse orderSellInsure(ApiOrderSellInsureDto apiOrderSellInsureDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ MallMember mallMember = memberMapper.selectById(memberId);
+ String tradePassword = SecureUtil.md5(apiOrderSellInsureDto.getTradePassword());
+ Long sellRecordId = apiOrderSellInsureDto.getSellRecordId();
+ /**
+ * 验证订单是否存在
+ * 更新买单状态
+ * 更新卖单状态
+ * 生成流水信息
+ */
+ if(!tradePassword.equals(mallMember.getTradePassword())){
+ throw new FebsException("请输入正确的交易密码");
+ }
+ MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(sellRecordId);
+ if(ObjectUtil.isEmpty(mallProductSellRecord)){
+ throw new FebsException("记录不存在");
+ }
+ Integer stateSell = mallProductSellRecord.getState();
+ if(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue() != stateSell){
+ throw new FebsException("记录不是已支付状态");
+ }
+
+ MallProductBuyRecord mallProductBuyRecord = mallProductBuyRecordMapper.selectById(mallProductSellRecord.getBuyRecordId());
+ if(ObjectUtil.isEmpty(mallProductBuyRecord)){
+ throw new FebsException("记录不存在");
+ }
+ Integer state = mallProductBuyRecord.getState();
+ if(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue() != state){
+ throw new FebsException("记录不是已支付状态");
+ }
+
+ mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_CONFIRM.getValue());
+ mallProductBuyRecordMapper.updateById(mallProductBuyRecord);
+
+ mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_CONFIRM.getValue());
+ mallProductSellRecordMapper.updateById(mallProductSellRecord);
+
+ agentProducer.sendFcmOrderSellInsureMsg(sellRecordId);
+ return new FebsResponse().success();
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java
index d2aff70..02474a5 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java
@@ -266,6 +266,8 @@
//更新卖单
mallProductSell.setNftCntAva(mallProductSell.getNftCntAva().subtract(pickNftCnt));
mallProductSellMapper.updateById(mallProductSell);
+ mallProductSellRecord.setBuyRecordId(mallProductBuyRecord.getId());
+ mallProductSellRecordMapper.updateById(mallProductSellRecord);
//更新买单
mallProductBuy.setNftAva(mallProductBuy.getNftAva().subtract(pickNftCnt));
mallProductBuyMapper.updateById(mallProductBuy);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index e061508..2c83e72 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -60,6 +60,10 @@
private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper;
private final MallScoreVoucherMapper mallScoreVoucherMapper;
private final CommonService commonService;
+ private final MallProductBuyRecordMapper mallProductBuyRecordMapper;
+ private final MallProductBuyMapper mallProductBuyMapper;
+ private final MallProductSellMapper mallProductSellMapper;
+ private final MallProductSellRecordMapper mallProductSellRecordMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -1163,6 +1167,67 @@
}
}
+ @Override
+ public void fcmOrderSellInsureMsg(Long sellRecordId) {
+ /**
+ * 买单确认
+ * 判断买单是否存在、是否已支付
+ * 判断买单是否存在、是否已支付
+ * 更新卖单状态
+ * 更新买单状态
+ */
+ MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(sellRecordId);
+ if(ObjectUtil.isEmpty(mallProductSellRecord)){
+ return;
+ }
+ Integer state = mallProductSellRecord.getState();
+ if(ProductEnum.PRODUCT_MATE_STATE_CONFIRM.getValue() != state){
+ return;
+ }
+ MallProductBuyRecord mallProductBuyRecord = mallProductBuyRecordMapper.selectById(mallProductSellRecord.getBuyRecordId());
+ if(ObjectUtil.isEmpty(mallProductBuyRecord)){
+ return;
+ }
+ Integer stateBuy = mallProductBuyRecord.getState();
+ if(ProductEnum.PRODUCT_MATE_STATE_CONFIRM.getValue() != stateBuy){
+ return;
+ }
+ mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FINISH.getValue());
+ mallProductSellRecordMapper.updateById(mallProductSellRecord);
+ mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FINISH.getValue());
+ mallProductBuyRecordMapper.updateById(mallProductBuyRecord);
+ Long sellId = mallProductSellRecord.getSellId();
+
+ //已完成的买单
+ List<MallProductSellRecord> mallProductSellRecords = mallProductSellRecordMapper.selectListBySellId(sellId,ProductEnum.PRODUCT_MATE_STATE_FINISH.getValue());
+ if(CollUtil.isEmpty(mallProductSellRecords)){
+ return;
+ }
+ //实际支付总数
+ BigDecimal nftCntTotal = mallProductSellRecords.stream().map(MallProductSellRecord::getNftCnt).reduce(BigDecimal.ZERO, BigDecimal::add);
+ MallProductSell mallProductSell = mallProductSellMapper.selectById(sellId);
+ if(nftCntTotal.compareTo(mallProductSell.getNftCnt()) < 0){
+ return;
+ }
+ mallProductSell.setState(ProductEnum.PRODUCT_SELL_SUCCESS.getValue());
+ mallProductSellMapper.updateById(mallProductSell);
+
+ Long buyId = mallProductBuyRecord.getBuyId();
+ List<MallProductBuyRecord> mallProductBuyRecords = mallProductBuyRecordMapper.selectListByBuyId(buyId,ProductEnum.PRODUCT_MATE_STATE_FINISH.getValue());
+ if(CollUtil.isEmpty(mallProductBuyRecords)){
+ return;
+ }
+ //实际支付总数
+ BigDecimal nftCntTotalBuy = mallProductBuyRecords.stream().map(MallProductBuyRecord::getPickNftCnt).reduce(BigDecimal.ZERO, BigDecimal::add);
+ MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId);
+ if(nftCntTotalBuy.compareTo(mallProductBuy.getNftTotal()) < 0){
+ return;
+ }
+ mallProductBuy.setState(ProductEnum.PRODUCT_BUY_SUCCESS.getValue());
+ mallProductBuy.setPayTime(DateUtil.date());
+ mallProductBuyMapper.updateById(mallProductBuy);
+ }
+
public static void main(String[] args) {
BigDecimal divide = new BigDecimal(12000).divide(new BigDecimal(10000), 0, BigDecimal.ROUND_DOWN);
System.out.println(divide);
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyInfoVo.java
index 75f3c43..6c26f3b 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyInfoVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyInfoVo.java
@@ -15,7 +15,7 @@
private int state;//预约状态 0:失败 1:进行中 2:超时 3:已完成
private int mateState;//匹配状态0:失败 1:匹配中 2:待支付 3:已支付 4:对方已确认 5:已完成
private BigDecimal nftTotal;//nft预约额度
- private BigDecimal nftAva;//nft分配额度
+ private BigDecimal nftAva;//待分配
private Date orderTime;//匹配时间
private Date payTime;//支付时间
private List<ApiOrderBuyRecordInfoVo> apiOrderBuyRecordInfoVos;
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/AliPayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/AliPayServiceImpl.java
index fe9f294..babeaa9 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/AliPayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/AliPayServiceImpl.java
@@ -55,7 +55,7 @@
@Override
public String aliPay(MallOrderInfo orderInfo) {
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
- model.setSubject("鸿楼梦商品支付");
+ model.setSubject("GFA商品支付");
model.setBody(orderInfo.getName());
model.setOutTradeNo(orderInfo.getOrderNo());
model.setTimeoutExpress("15m");
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
index a06a328..e02e6eb 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
@@ -25,4 +25,6 @@
public static final String QUEUE_FCMPAY_BUY_TIME_TTL = "queue_fcm_buy_time_ttl";
//fcm实时兑换
public static final String QUEUE_FCM_NFT_EXCHANGE = "queue_fcm_nft_exchange";
+ //卖单用户确认
+ public static final String QUEUE_FCM_ORDER_SELL_INSURE = "queue_fcm_order_sell_insure";
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
index bc17147..4b76be9 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
@@ -103,7 +103,19 @@
try {
memberProfitService.fcmNFTExchangeMsg(cnt);
} catch (Exception e) {
- log.error("强制卖出异常", e);
+ log.error("收到FCM实时兑换销毁数量异常", e);
+ // todo 更新表
+
+ }
+ }
+
+ @RabbitListener(queues = QueueConstants.QUEUE_FCM_ORDER_SELL_INSURE)
+ public void fcmOrderSellInsureMsg(Long sellRecordId) {
+ log.info("收到卖单用户确认:{}",sellRecordId);
+ try {
+ memberProfitService.fcmOrderSellInsureMsg(sellRecordId);
+ } catch (Exception e) {
+ log.error("收到卖单用户确认异常", e);
// todo 更新表
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
index 60544f7..06b776f 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
@@ -5,6 +5,10 @@
@Getter
public enum RabbitQueueEnum {
+ //卖单用户确认
+ FCMPAY_FCM_ORDER_SELL_INSURE("exchange_fcm_order_sell_insure",
+ "route_key_fcm_order_sell_insure",
+ QueueConstants.QUEUE_FCM_ORDER_SELL_INSURE),
FCMPAY_FCM_NFT_EXCHANGE("exchange_fcm_nft_exchange",
"route_key_fcm_nft_exchange",
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
index 76f593c..af3930d 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -88,6 +88,12 @@
rabbitTemplate.convertAndSend(RabbitQueueEnum.FCMPAY_FCM_NFT_EXCHANGE.getExchange(), RabbitQueueEnum.FCMPAY_FCM_NFT_EXCHANGE.getRoute(),value);
}
+ public void sendFcmOrderSellInsureMsg(Long sellRecordId) {
+ log.info("发送卖单用户确认:{}",sellRecordId);
+ rabbitTemplate.convertAndSend(RabbitQueueEnum.FCMPAY_FCM_ORDER_SELL_INSURE.getExchange(),
+ RabbitQueueEnum.FCMPAY_FCM_ORDER_SELL_INSURE.getRoute(),sellRecordId);
+ }
+
/**
* 发送代理自动升级消息
*
diff --git a/src/main/resources/mapper/modules/MallProductBuyMapper.xml b/src/main/resources/mapper/modules/MallProductBuyMapper.xml
index 1b8f410..20d33f5 100644
--- a/src/main/resources/mapper/modules/MallProductBuyMapper.xml
+++ b/src/main/resources/mapper/modules/MallProductBuyMapper.xml
@@ -30,4 +30,13 @@
where a.id = #{id}
</select>
+ <select id="selectListByStateAndProductNFTId" resultType="cc.mrbird.febs.mall.entity.MallProductBuy">
+ select a.*
+ from mall_product_buy a
+ where a.product_nft_id = #{nftId}
+ and a.state = #{state}
+ and a.mate_state = #{mateState}
+ order by a.CREATED_TIME asc
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml b/src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml
index 155ce35..702d839 100644
--- a/src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml
+++ b/src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml
@@ -19,4 +19,11 @@
where a.buy_id = #{productBuyId}
</select>
+ <select id="selectListByBuyId" resultType="cc.mrbird.febs.mall.entity.MallProductBuyRecord">
+ select a.*
+ from mall_product_buy_record a
+ where a.buy_id = #{buyId}
+ and a.state = #{state}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallProductNftMapper.xml b/src/main/resources/mapper/modules/MallProductNftMapper.xml
index eb5ddcd..3895cb2 100644
--- a/src/main/resources/mapper/modules/MallProductNftMapper.xml
+++ b/src/main/resources/mapper/modules/MallProductNftMapper.xml
@@ -58,4 +58,11 @@
and a.nft_cnt_ava > 0
</select>
+ <select id="selectListByState" resultType="cc.mrbird.febs.mall.entity.MallProductNft">
+ SELECT
+ a.*
+ FROM mall_product_nft a
+ where a.state = #{state}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallProductSellRecordMapper.xml b/src/main/resources/mapper/modules/MallProductSellRecordMapper.xml
index 02cfb1f..0ce9d32 100644
--- a/src/main/resources/mapper/modules/MallProductSellRecordMapper.xml
+++ b/src/main/resources/mapper/modules/MallProductSellRecordMapper.xml
@@ -19,4 +19,11 @@
where a.sell_id = #{productSellId}
</select>
+ <select id="selectListBySellId" resultType="cc.mrbird.febs.mall.entity.MallProductSellRecord">
+ select a.*
+ from mall_product_sell_record a
+ where a.sell_id = #{sellId}
+ and a.state = #{state}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/error/403.html b/src/main/resources/templates/error/403.html
index c68ad0a..d65aa39 100644
--- a/src/main/resources/templates/error/403.html
+++ b/src/main/resources/templates/error/403.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>GFA 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/error/404.html b/src/main/resources/templates/error/404.html
index 990d96c..0c324c0 100644
--- a/src/main/resources/templates/error/404.html
+++ b/src/main/resources/templates/error/404.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>GFA 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/error/500.html b/src/main/resources/templates/error/500.html
index 23013d2..924f5c2 100644
--- a/src/main/resources/templates/error/500.html
+++ b/src/main/resources/templates/error/500.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>GFA 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/febs/views/layout.html b/src/main/resources/templates/febs/views/layout.html
index fac6ea5..56d217d 100644
--- a/src/main/resources/templates/febs/views/layout.html
+++ b/src/main/resources/templates/febs/views/layout.html
@@ -64,7 +64,7 @@
<div class="layui-side-scroll">
<div class="layui-logo" style="cursor: pointer">
<img data-th-src="@{febs/images/logo.png}">
- <span>鸿楼梦 权限系统</span>
+ <span>GFA 权限系统</span>
</div>
<script
type="text/html"
diff --git a/src/main/resources/templates/febs/views/login.html b/src/main/resources/templates/febs/views/login.html
index ca000e0..370e5ab 100644
--- a/src/main/resources/templates/febs/views/login.html
+++ b/src/main/resources/templates/febs/views/login.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>GFA 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@@ -19,7 +19,7 @@
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc">
- <div class="layui-logo"><span><b>鸿楼梦</b> 权限系统</span></div>
+ <div class="layui-logo"><span><b>GFA</b> 权限系统</span></div>
</div>
<div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div">
<div class="layui-form" lay-filter="login-form">
--
Gitblit v1.9.1