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