From 0122f61044683af26a0462431260be389e6d17ad Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 24 Nov 2023 10:45:41 +0800 Subject: [PATCH] 匹配 --- src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyInfoVo.java | 9 + src/main/resources/templates/index.html | 2 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java | 54 +++++-- src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyRecordMapper.java | 2 src/main/java/cc/mrbird/febs/mall/mapper/MallProductSellRecordMapper.java | 2 src/main/resources/mapper/modules/MallProductSellRecordMapper.xml | 6 src/main/java/cc/mrbird/febs/mall/dto/AdminGfaBasicSetDto.java | 10 + src/main/java/cc/mrbird/febs/mall/service/IAgentService.java | 4 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 4 src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyRecordInfoVo.java | 16 ++ src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java | 10 + src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml | 6 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 82 +++++++++++ src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java | 6 src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellInfoVo.java | 9 + src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java | 25 +++ src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 18 ++ src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellRecordInfoVo.java | 17 ++ src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java | 36 ++++ src/main/resources/templates/febs/views/modules/news/gfaBasicSet.html | 76 ++++++++++ src/main/java/cc/mrbird/febs/common/enumerates/ProductEnum.java | 5 21 files changed, 373 insertions(+), 26 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java index 1064f96..0516960 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java @@ -6,6 +6,12 @@ @Getter public enum DataDictionaryEnum { /** + * 预约开始时间 + * 预约结束时间 + */ + YU_YUE_START_TIME("YU_YUE_START_TIME","YU_YUE_START_TIME"), + YU_YUE_END_TIME("YU_YUE_END_TIME","YU_YUE_END_TIME"), + /** * NFT最小提现数量 * NFT手续费 */ 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 35c61a2..ebac16a 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/ProductEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/ProductEnum.java @@ -5,6 +5,11 @@ @Getter public enum ProductEnum { /** + * 用户冻结 + */ + MEMBER_FROZEN(1,"用户冻结"), + MEMBER_UNFROZEN(0,"用户未冻结"), + /** * 用户NFT提现状态 0:失败 1:进行中 2:超时 3:已完成 */ PRODUCT_SELL_SUCCESS(3,"已完成"), diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java index a2aa5e6..3cfe34a 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java @@ -4,12 +4,12 @@ import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.common.enumerates.ProductEnum; -import cc.mrbird.febs.mall.dto.AdminMallProductNftDto; -import cc.mrbird.febs.mall.dto.AdminPickSellRecordDtoDto; -import cc.mrbird.febs.mall.dto.MallNewsInfoDto; +import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.MallProductNftMapper; +import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.mall.service.IMallNewsInfoService; import cc.mrbird.febs.mall.vo.AdminMallProductNftVo; import cc.mrbird.febs.mall.vo.AdminMallProductSellPickVo; @@ -37,6 +37,7 @@ private final IMallNewsInfoService mallNewsInfoService; private final MallProductNftMapper mallProductNftMapper; + private final ICommonService commonService; /** * NFT预约产品 @@ -128,6 +129,24 @@ } /** + * 基础设置 + * @param gfaBasicSetDto + * @return + */ + @PostMapping(value = "/gfaBasicSet") + public FebsResponse gfaBasicSet(AdminGfaBasicSetDto gfaBasicSetDto) { + commonService.updateDataDic( + DataDictionaryEnum.YU_YUE_START_TIME.getType(), + DataDictionaryEnum.YU_YUE_START_TIME.getCode(), + gfaBasicSetDto.getStartTime()); + commonService.updateDataDic( + DataDictionaryEnum.YU_YUE_END_TIME.getType(), + DataDictionaryEnum.YU_YUE_END_TIME.getCode(), + gfaBasicSetDto.getEndTime()); + return new FebsResponse().success(); + } + + /** * 新闻中心-列表 * @param mallNewsInfo * @param request diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java index 12dc11c..e5c2e32 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java @@ -1,14 +1,16 @@ package cc.mrbird.febs.mall.controller; import cc.mrbird.febs.common.entity.FebsConstant; +import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.common.utils.FebsUtil; -import cc.mrbird.febs.mall.entity.MallNewsCategory; -import cc.mrbird.febs.mall.entity.MallNewsInfo; -import cc.mrbird.febs.mall.entity.MallProductBuy; -import cc.mrbird.febs.mall.entity.MallProductNft; +import cc.mrbird.febs.mall.dto.AdminGfaBasicSetDto; +import cc.mrbird.febs.mall.dto.HlmScoreSetDto; +import cc.mrbird.febs.mall.entity.*; +import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.mall.mapper.MallProductBuyMapper; import cc.mrbird.febs.mall.mapper.MallProductNftMapper; import cc.mrbird.febs.mall.service.IMallNewsInfoService; +import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; @@ -29,6 +31,7 @@ private final IMallNewsInfoService mallNewsInfoService; private final MallProductNftMapper mallProductNftMapper; private final MallProductBuyMapper mallProductBuyMapper; + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; /** * NFT预约产品 @@ -91,6 +94,31 @@ } /** + * 基础设置 + * @param model + * @return + */ + @GetMapping("gfaBasicSet") + @RequiresPermissions("gfaBasicSet:view") + public String gfaBasicSet(Model model) { + AdminGfaBasicSetDto gfaBasicSetDto = new AdminGfaBasicSetDto(); + DataDictionaryCustom startTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.YU_YUE_START_TIME.getType(), + DataDictionaryEnum.YU_YUE_START_TIME.getCode()); + if (startTimeDic != null) { + gfaBasicSetDto.setStartTime(startTimeDic.getValue()); + } + DataDictionaryCustom endCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.YU_YUE_END_TIME.getType(), + DataDictionaryEnum.YU_YUE_END_TIME.getCode()); + if (startTimeDic != null) { + gfaBasicSetDto.setEndTime(endCntDic.getValue()); + } + model.addAttribute("gfaBasicSet", gfaBasicSetDto); + return FebsUtil.view("modules/news/gfaBasicSet"); + } + + /** * 新闻中心-列表 * @return */ diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AdminGfaBasicSetDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AdminGfaBasicSetDto.java new file mode 100644 index 0000000..ad16dcd --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/dto/AdminGfaBasicSetDto.java @@ -0,0 +1,10 @@ +package cc.mrbird.febs.mall.dto; + +import lombok.Data; + +@Data +public class AdminGfaBasicSetDto { + private String startTime; + + private String endTime; +} 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 7a86d5e..7574f5f 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyRecordMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyRecordMapper.java @@ -12,4 +12,6 @@ List<ApiOrderBuyRecordInfoVo> selectByBuyId(@Param("productBuyId")Long productBuyId); List<MallProductBuyRecord> selectListByBuyId(@Param("buyId")Long buyId,@Param("state")Integer state); + + List<MallProductBuyRecord> selectByState(@Param("state")int value); } 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 dd18f31..5618b31 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductSellRecordMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductSellRecordMapper.java @@ -12,4 +12,6 @@ List<ApiOrderSellRecordInfoVo> selectBySellId(@Param("productSellId")Long productSellId); List<MallProductSellRecord> selectListBySellId(@Param("sellId")Long sellId,@Param("state")Integer state); + + List<MallProductSellRecord> selectListByState(@Param("state")int value); } 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 f75b9dd..11a3cd6 100644 --- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java +++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java @@ -125,6 +125,24 @@ agentService.BuyToSell(); } + /** + * 买单 + * 看是否是开始显示订单的时间段,超出结束时间的买单,全部超时失败 + */ + @Scheduled(cron = "0 0/30 * * * ? ") + public void timeGetOrderBuy() { + agentService.timeGetOrderBuy(); + } + + /** + * 卖单 + * 看是否是开始显示订单的时间段,超出结束时间的卖单,全部超时失败 + */ + @Scheduled(cron = "0 0/30 * * * ? ") + public void timeGetOrderSell() { + agentService.timeGetOrderSell(); + } + 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 2104e21..ca99fa2 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java @@ -41,4 +41,8 @@ void perkAgent(); void BuyToSell(); + + void timeGetOrderBuy(); + + void timeGetOrderSell(); } 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 e89a8e9..8c177c2 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 @@ -864,6 +864,88 @@ } } } + + @Override + public void timeGetOrderBuy() { + DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date())); + DataDictionaryCustom endTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.YU_YUE_END_TIME.getType(), + DataDictionaryEnum.YU_YUE_END_TIME.getCode() + ); + DateTime endTime = DateUtil.parseTime(endTimeDic.getValue()); + /** + * 当前时间比结束时间大 + */ + if(nowTime.compareTo(endTime) >= 0){ + List<MallProductBuyRecord> mallProductBuyRecords = mallProductBuyRecordMapper.selectByState(ProductEnum.PRODUCT_MATE_STATE_WAIT_PAY.getValue()); + if(CollUtil.isNotEmpty(mallProductBuyRecords)){ + for(MallProductBuyRecord mallProductBuyRecord : mallProductBuyRecords){ + /** + * 用户有超时未支付的订单 + * 1、冻结账户 + * 2、更新买单主表 + * 2、更新卖单主表 + * 3、更新买单子表的数据 + * 3、更新卖单子表的数据 + */ + Long buyId = mallProductBuyRecord.getBuyId(); + Long sellRecordId = mallProductBuyRecord.getSellRecordId(); + MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId); + Long memberIdBuy = mallProductBuy.getMemberId(); + //冻结账户 + MallMember mallMemberBuy = memberMapper.selectById(memberIdBuy); + mallMemberBuy.setIsFrozen(ProductEnum.MEMBER_FROZEN.getValue()); + memberMapper.updateById(mallMemberBuy); + //更新买单子表的数据 + mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue()); + mallProductBuyRecordMapper.updateById(mallProductBuyRecord); + //更新买单主表 + mallProductBuy.setNftAva(mallProductBuy.getNftAva().add(mallProductBuyRecord.getPickNftCnt())); + mallProductBuyMapper.updateById(mallProductBuy); + //更新卖单子表的数据 + MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(sellRecordId); + mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue()); + mallProductSellRecordMapper.updateById(mallProductSellRecord); + //更新卖单主表 + Long sellId = mallProductSellRecord.getSellId(); + MallProductSell mallProductSell = mallProductSellMapper.selectById(sellId); + mallProductSell.setNftCntAva(mallProductSell.getNftCntAva().add(mallProductSellRecord.getNftCnt())); + mallProductSellMapper.updateById(mallProductSell); + } + } + } + + } + + @Override + public void timeGetOrderSell() { + DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date())); + DataDictionaryCustom endTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.YU_YUE_END_TIME.getType(), + DataDictionaryEnum.YU_YUE_END_TIME.getCode() + ); + DateTime endTime = DateUtil.parseTime(endTimeDic.getValue()); + /** + * 当前时间比结束时间大 + */ + if(nowTime.compareTo(endTime) >= 0){ + List<MallProductSellRecord> mallProductSellRecords = mallProductSellRecordMapper.selectListByState(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue()); + if(CollUtil.isNotEmpty(mallProductSellRecords)){ + for(MallProductSellRecord mallProductSellRecord : mallProductSellRecords){ + /** + * 卖方 + * 1:冻结账户 + */ + Long sellId = mallProductSellRecord.getSellId(); + MallProductSell mallProductSell = mallProductSellMapper.selectById(sellId); + MallMember mallMember = memberMapper.selectById(mallProductSell.getMemberId()); + mallMember.setIsFrozen(ProductEnum.MEMBER_FROZEN.getValue()); + memberMapper.updateById(mallMember); + } + } + } + } + public void insertSell(Long memberId,BigDecimal nftCnt,BigDecimal nftCntAva, BigDecimal nftFee,BigDecimal fcmFeeCnt){ String orderNo = MallUtils.getOrderNum("NFT"); diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index d948432..f588c72 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -758,7 +758,7 @@ Long unfreezeMemberId = unfreezeDto.getMemberId(); MallMember mallMember = this.baseMapper.selectById(unfreezeMemberId); Integer isFrozen = mallMember.getIsFrozen(); - if(1 != isFrozen){ + if(ProductEnum.MEMBER_UNFROZEN.getValue() == isFrozen){ throw new FebsException("账户未被冻结"); } DataDictionaryCustom memberFrozenFcmCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( @@ -781,7 +781,7 @@ BigDecimal fcmCntAvaSub = fcmCntAva.subtract(memberFrozenFcmCnt); mallMemberAmount.setFcmCntAva(fcmCntAvaSub); mallMemberAmountMapper.updateById(mallMemberAmount); - mallMember.setIsFrozen(0); + mallMember.setIsFrozen(ProductEnum.MEMBER_UNFROZEN.getValue()); this.baseMapper.updateById(mallMember); mallMoneyFlowService.addMoneyFlow( 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 1fdf668..15fb84f 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 @@ -271,29 +271,53 @@ return new FebsResponse().success(); } + public static void main(String[] args) { + DateTime dateTime = DateUtil.parseTime("15:00:00"); + DateTime dateTime2 = DateUtil.parseTime("19:00:00"); + DateTime dateTime1 = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date())); + System.out.println(dateTime); + System.out.println(dateTime1); + System.out.println(dateTime1.compareTo(dateTime)); + System.out.println(dateTime1.compareTo(dateTime2)); + System.out.println(dateTime1.compareTo(dateTime) >= 0 && dateTime1.compareTo(dateTime2) <= 0); + } + @Override public FebsResponse orderList(ApiOrderListDto apiOrderListDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); List<ApiOrderListVo> objects = new ArrayList<>(); Integer orderType = apiOrderListDto.getOrderType(); apiOrderListDto.setMemberId(memberId); - //买单 - if(2 == orderType){ - IPage<ApiOrderListVo> page = new Page<>(apiOrderListDto.getPageNum(), apiOrderListDto.getPageSize()); - IPage<ApiOrderListVo> apiOrderListVoIPageBuy = mallProductBuyMapper.selectListInPage(page, apiOrderListDto); - if(CollUtil.isNotEmpty(apiOrderListVoIPageBuy.getRecords())){ - for(ApiOrderListVo apiOrderListVo : apiOrderListVoIPageBuy.getRecords()){ - objects.add(apiOrderListVo); + DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date())); + DataDictionaryCustom startTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.YU_YUE_START_TIME.getType(), + DataDictionaryEnum.YU_YUE_START_TIME.getCode() + ); + DateTime startTime = DateUtil.parseTime(startTimeDic.getValue()); + DataDictionaryCustom endTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.YU_YUE_END_TIME.getType(), + DataDictionaryEnum.YU_YUE_END_TIME.getCode() + ); + DateTime endTime = DateUtil.parseTime(endTimeDic.getValue()); + if(nowTime.compareTo(startTime) >= 0 && nowTime.compareTo(endTime) <= 0){ + //买单 + if(2 == orderType){ + IPage<ApiOrderListVo> page = new Page<>(apiOrderListDto.getPageNum(), apiOrderListDto.getPageSize()); + IPage<ApiOrderListVo> apiOrderListVoIPageBuy = mallProductBuyMapper.selectListInPage(page, apiOrderListDto); + if(CollUtil.isNotEmpty(apiOrderListVoIPageBuy.getRecords())){ + for(ApiOrderListVo apiOrderListVo : apiOrderListVoIPageBuy.getRecords()){ + objects.add(apiOrderListVo); + } } } - } - //卖单 - if(1 == orderType){ - IPage<ApiOrderListVo> page = new Page<>(apiOrderListDto.getPageNum(), apiOrderListDto.getPageSize()); - IPage<ApiOrderListVo> apiOrderListVoIPageSell = mallProductSellMapper.selectListInPage(page, apiOrderListDto); - if(CollUtil.isNotEmpty(apiOrderListVoIPageSell.getRecords())){ - for(ApiOrderListVo apiOrderListVo : apiOrderListVoIPageSell.getRecords()){ - objects.add(apiOrderListVo); + //卖单 + if(1 == orderType){ + IPage<ApiOrderListVo> page = new Page<>(apiOrderListDto.getPageNum(), apiOrderListDto.getPageSize()); + IPage<ApiOrderListVo> apiOrderListVoIPageSell = mallProductSellMapper.selectListInPage(page, apiOrderListDto); + if(CollUtil.isNotEmpty(apiOrderListVoIPageSell.getRecords())){ + for(ApiOrderListVo apiOrderListVo : apiOrderListVoIPageSell.getRecords()){ + objects.add(apiOrderListVo); + } } } } 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 6c26f3b..315d045 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyInfoVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyInfoVo.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @@ -11,12 +12,20 @@ @ApiModel(value = "ApiOrderBuyInfoVo", description = "信息返回类") public class ApiOrderBuyInfoVo { private Long id; + @ApiModelProperty(value = "订单编号") private String orderNo; + @ApiModelProperty(value = "预约状态 0:失败 1:进行中 2:超时 3:已完成") private int state;//预约状态 0:失败 1:进行中 2:超时 3:已完成 + @ApiModelProperty(value = "匹配状态0:失败 1:匹配中 2:待支付 3:已支付 4:对方已确认 5:已完成") private int mateState;//匹配状态0:失败 1:匹配中 2:待支付 3:已支付 4:对方已确认 5:已完成 + @ApiModelProperty(value = "nft预约额度") private BigDecimal nftTotal;//nft预约额度 + @ApiModelProperty(value = "待分配") private BigDecimal nftAva;//待分配 + @ApiModelProperty(value = "匹配时间") private Date orderTime;//匹配时间 + @ApiModelProperty(value = "支付时间") private Date payTime;//支付时间 + @ApiModelProperty(value = "对方详情") private List<ApiOrderBuyRecordInfoVo> apiOrderBuyRecordInfoVos; } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyRecordInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyRecordInfoVo.java index b32d899..01d80ae 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyRecordInfoVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderBuyRecordInfoVo.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @@ -10,20 +11,35 @@ @ApiModel(value = "ApiOrderBuyRecordInfoVo", description = "信息返回类") public class ApiOrderBuyRecordInfoVo { private Long id;// + @ApiModelProperty(value = "对方账户") private String accountLogin;// + @ApiModelProperty(value = "分配额度、支付金额") private BigDecimal pickNftCnt;//分配额度、支付金额 + @ApiModelProperty(value = "匹配状态0:失败 1:匹配中 2:待支付 3:已支付 4:对方已确认 5:已完成") private Integer state;//匹配状态0:失败 1:匹配中 2:待支付 3:已支付 4:对方已确认 5:已完成 + @ApiModelProperty(value = "匹配时间") private Date orderTime;//匹配时间 + @ApiModelProperty(value = "支付时间") private Date payTime;//支付时间 + @ApiModelProperty(value = "支付凭证") private String nftImg;//支付凭证 + @ApiModelProperty(value = "支付类型 1:微信 2:支付宝 3:银行转账 4:USDT转账") private Integer type;//支付类型 1:微信 2:支付宝 3:银行转账 4:USDT转账 + @ApiModelProperty(value = "微信收款码") private String wxQrcode;//微信收款码 + @ApiModelProperty(value = "支付宝收款码") private String aliQrcode;//支付宝收款码 + @ApiModelProperty(value = "真实姓名") private String bankName;//真实姓名 + @ApiModelProperty(value = "银行卡号") private String bankNo;//银行卡号 + @ApiModelProperty(value = "开户行") private String bank;//开户行 + @ApiModelProperty(value = "手机号") private String phone;//手机号 + @ApiModelProperty(value = "USDT通道类型: TRC20 BEP20") private String usdtTongdao;//USDT通道类型: TRC20 BEP20 + @ApiModelProperty(value = "USDT地址") private String usdtAddress;//USDT地址 } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellInfoVo.java index a76190d..27dbcdf 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellInfoVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellInfoVo.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @@ -10,13 +11,21 @@ @ApiModel(value = "ApiOrderSellInfoVo", description = "信息返回类") public class ApiOrderSellInfoVo { private Long id; + @ApiModelProperty(value = "订单编号") private String orderNo; + @ApiModelProperty(value = "动态NFT总数") private BigDecimal nftTotal;//动态NFT总数 + @ApiModelProperty(value = "实际提现数量") private BigDecimal nftCnt;//实际提现数量 + @ApiModelProperty(value = "剩余数量") private BigDecimal nftCntAva;//剩余数量 + @ApiModelProperty(value = "NFT手续费") private BigDecimal nftFee;//NFT手续费 + @ApiModelProperty(value = "代币手续费") private BigDecimal fcmFee;//代币手续费 + @ApiModelProperty(value = "预约状态 0:失败 1:进行中 2:超时 3:已完成") private Integer state;//预约状态 0:失败 1:进行中 2:超时 3:已完成 + @ApiModelProperty(value = "对方支付方式详情") private List<ApiOrderSellRecordInfoVo> apiOrderSellRecordInfoVos; } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellRecordInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellRecordInfoVo.java index 389d211..60d1004 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellRecordInfoVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiOrderSellRecordInfoVo.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @@ -10,20 +11,34 @@ @ApiModel(value = "ApiOrderSellRecordInfoVo", description = "信息返回类") public class ApiOrderSellRecordInfoVo { private Long id; + @ApiModelProperty(value = "对方账户") private String accountLogin;// + @ApiModelProperty(value = "匹配时间") private Date orderTime;//匹配时间 + @ApiModelProperty(value = "支付时间") private Date payTime;//支付时间 + @ApiModelProperty(value = "支付数量") private BigDecimal nftCnt;//支付数量 + @ApiModelProperty(value = "支付凭证") private String nftImg;//支付凭证 + @ApiModelProperty(value = "支付类型 1:微信 2:支付宝 3:银行转账 4:USDT转账") private Integer type;//支付类型 1:微信 2:支付宝 3:银行转账 4:USDT转账 + @ApiModelProperty(value = "匹配状态0:失败 1:匹配中 2:待支付 3:已支付 4:对方已确认 5:已完成") private Integer state;//匹配状态0:失败 1:匹配中 2:待支付 3:已支付 4:对方已确认 5:已完成 - + @ApiModelProperty(value = "微信收款码") private String wxQrcode;//微信收款码 + @ApiModelProperty(value = "支付宝收款码") private String aliQrcode;//支付宝收款码 + @ApiModelProperty(value = "真实姓名") private String bankName;//真实姓名 + @ApiModelProperty(value = "银行卡号") private String bankNo;//银行卡号 + @ApiModelProperty(value = "开户行") private String bank;//开户行 + @ApiModelProperty(value = "手机号") private String phone;//手机号 + @ApiModelProperty(value = "USDT通道类型: TRC20 BEP20") private String usdtTongdao;//USDT通道类型: TRC20 BEP20 + @ApiModelProperty(value = "USDT地址") private String usdtAddress;//USDT地址 } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java index 078d858..d8417df 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java @@ -66,14 +66,24 @@ @ApiModelProperty(value = "内转标识 1:开启 2:关闭") private Integer insideWith; + + @ApiModelProperty(value = "静态NFT") private BigDecimal staticNft;//静态NFT + @ApiModelProperty(value = "动态NFT") private BigDecimal trendsNft;//动态NFT + @ApiModelProperty(value = "冻结NFT") private BigDecimal frozenNft;//冻结NFT + @ApiModelProperty(value = "FCM代币可用") private BigDecimal fcmCntAva;//FCM代币可用 + @ApiModelProperty(value = "FCM代币冻结") private BigDecimal fcmCntFrozen;//FCM代币冻结 + @ApiModelProperty(value = "令牌可用") private BigDecimal tokenAva;//令牌可用 + @ApiModelProperty(value = "令牌冻结") private BigDecimal tokenFrozen;//令牌冻结 + @ApiModelProperty(value = "FCM提现收续费") private BigDecimal outFcmFee;//FCM提现收续费 + @ApiModelProperty(value = "FCM价格") private BigDecimal fcmPrice;//FCM价格 } diff --git a/src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml b/src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml index 702d839..c872df9 100644 --- a/src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml +++ b/src/main/resources/mapper/modules/MallProductBuyRecordMapper.xml @@ -26,4 +26,10 @@ and a.state = #{state} </select> + <select id="selectByState" resultType="cc.mrbird.febs.mall.entity.MallProductBuyRecord"> + select a.* + from mall_product_buy_record 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 0ce9d32..0ce0321 100644 --- a/src/main/resources/mapper/modules/MallProductSellRecordMapper.xml +++ b/src/main/resources/mapper/modules/MallProductSellRecordMapper.xml @@ -26,4 +26,10 @@ and a.state = #{state} </select> + <select id="selectListByState" resultType="cc.mrbird.febs.mall.entity.MallProductSellRecord"> + select a.* + from mall_product_sell_record a + where a.state = #{state} + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/news/gfaBasicSet.html b/src/main/resources/templates/febs/views/modules/news/gfaBasicSet.html new file mode 100644 index 0000000..2824c71 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/news/gfaBasicSet.html @@ -0,0 +1,76 @@ +<div class="layui-fluid layui-anim febs-anim" id="gfa-Basic-set" lay-title="预约设置"> + <div class="layui-row layui-col-space8 febs-container"> + <form class="layui-form" action="" lay-filter="gfa-Basic-set-form"> + <div class="layui-card"> + <div class="layui-card-body"> + <blockquote class="layui-elem-quote blue-border">买卖单时间设置</blockquote> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">开始时间:</label> + <div class="layui-input-block"> + <input type="text" name="startTime" class="layui-input" id="startTimePick" placeholder="HH:mm:ss"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">结束时间:</label> + <div class="layui-input-block"> + <input type="text" name="endTime" class="layui-input" id="endTimePick" placeholder="HH:mm:ss"> + </div> + </div> + <div class="layui-card-footer"> + <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="gfa-Basic-set-submit" id="submit">保存</button> + </div> + </div> + </div> + </form> + </div> +</div> +<style> + .layui-form-label { + width: 120px; + } + + .layui-form-item .layui-input-block { + margin-left: 150px; + } + + .layui-table-form .layui-form-item { + margin-bottom: 20px !important; + } +</style> +<script data-th-inline="javascript" type="text/javascript"> + layui.use(['dropdown', 'jquery', 'febs', 'form', 'eleTree','laydate'], function () { + var $ = layui.jquery, + febs = layui.febs, + form = layui.form, + gfaBasicSet = [[${gfaBasicSet}]], + laydate = layui.laydate, + $view = $('#gfa-Basic-set'); + + //日期范围 + laydate.render({ + elem: '#startTimePick', + type: 'time' + }); + //日期范围 + laydate.render({ + elem: '#endTimePick', + type: 'time' + }); + + initGfaBasicSetValue(); + form.render(); + function initGfaBasicSetValue() { + form.val("gfa-Basic-set-form", { + "startTime": gfaBasicSet.startTime, + "endTime": gfaBasicSet.endTime + }); + } + form.on('submit(gfa-Basic-set-submit)', function (data) { + febs.post(ctx + 'admin/news/gfaBasicSet', data.field, function (res) { + febs.alert.success('设置成功'); + return ; + }); + return false; + }); + }); +</script> \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 0edae19..d85d055 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -3,7 +3,7 @@ xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <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"> -- Gitblit v1.9.1