| | |
| | | import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; |
| | | import com.xcong.excoin.utils.LogRecordUtils; |
| | | import com.xcong.excoin.utils.RedisUtils; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | import io.swagger.annotations.ApiResponses; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | |
| | | @ApiOperation(value = "新增订单", notes = "新增订单") |
| | | @PostMapping(value = "/add") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result add(@RequestBody GbzAddDto gbzAddDto) { |
| | | String status = redisUtils.getString("bzz_order_status"); |
| | | if ("1".equals(status)) { |
| | | return Result.fail("无法购买"); |
| | | } |
| | | |
| | | String start = redisUtils.getString("bzz_start"); |
| | | if ("2".equals(start)) { |
| | | return Result.fail("暂无法购买"); |
| | | } |
| | | String total = redisUtils.getString("bzz_coin_total"); |
| | | |
| | | MemberEntity loginUser = LoginUserUtils.getAppLoginUser(); |
| | | BigDecimal price = new BigDecimal(66); |
| | | BigDecimal price = new BigDecimal(redisUtils.getString("bzz_order_new_price")); |
| | | BigDecimal amount = BigDecimal.valueOf(gbzAddDto.getCount()).multiply(price); |
| | | |
| | | MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(loginUser.getId(), CoinTypeEnum.USDT.name()); |
| | | if (amount.compareTo(wallet.getAvailableBalance()) > 0) { |
| | | return Result.fail("可用金额不足"); |
| | | } |
| | | |
| | | if (Integer.parseInt(total) < gbzAddDto.getCount()) { |
| | | return Result.fail("BZZ数量不足"); |
| | | } |
| | | |
| | | GbzOrderEntity gbzOrder = new GbzOrderEntity(); |
| | | gbzOrder.setPrice(price); |
| | | gbzOrder.setAmount(amount); |
| | |
| | | |
| | | gbzOrderDao.insert(gbzOrder); |
| | | |
| | | MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(loginUser.getId(), CoinTypeEnum.USDT.name()); |
| | | if (amount.compareTo(wallet.getAvailableBalance()) < 0) { |
| | | return Result.fail("可用金额不足"); |
| | | } |
| | | |
| | | memberWalletCoinDao.updateBlockBalance(wallet.getId(), amount.negate(), BigDecimal.ZERO, 0); |
| | | redisUtils.set("bzz_coin_total", Integer.parseInt(total) - gbzAddDto.getCount()); |
| | | LogRecordUtils.insertMemberAccountMoneyChange(loginUser.getId(), "购买BZZ", amount, "USDT", 1, 1); |
| | | return Result.ok("购买成功"); |
| | | } |
| | | |
| | |
| | | @ApiOperation(value = "获取订单列表") |
| | | @PostMapping(value = "/findList") |
| | | public Result findList(@RequestBody GbzListDto gbzListDto) { |
| | | MemberEntity member = LoginUserUtils.getAppLoginUser(); |
| | | GbzOrderEntity gbzOrderEntity = new GbzOrderEntity(); |
| | | gbzOrderEntity.setMemberId(member.getId()); |
| | | Page<GbzOrderEntity> page = new Page<>(gbzListDto.getPageNum(), gbzListDto.getPageSize()); |
| | | IPage<GbzOrderEntity> result = gbzOrderDao.selectInPage(page); |
| | | IPage<GbzOrderEntity> result = gbzOrderDao.selectInPage(gbzOrderEntity, page); |
| | | |
| | | return Result.ok(result.getRecords()); |
| | | } |
| | |
| | | |
| | | String status = redisUtils.getString("bzz_order_status"); |
| | | priceVo.setStatus(StrUtil.isNotBlank(status) ? Integer.parseInt(status) : 2); |
| | | |
| | | |
| | | String remain = redisUtils.getString("bzz_coin_total"); |
| | | priceVo.setRemainCnt(88888); |
| | | |
| | | BigDecimal totalAmount = gbzOrderDao.selectOrderTotalAmount(LoginUserUtils.getAppLoginUser().getId()); |
| | | priceVo.setTotalAmount(totalAmount); |
| | |
| | | return Result.fail("无可提取金额"); |
| | | } |
| | | |
| | | MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(), CoinTypeEnum.BZZ.name()); |
| | | MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(), CoinTypeEnum |
| | | .BZZ.name()); |
| | | memberWalletCoinDao.updateBlockBalance(wallet.getId(), totalAmount, BigDecimal.ZERO, 0); |
| | | |
| | | gbzOrderDao.updateStatus(member.getId()); |
| | | LogRecordUtils.insertMemberAccountMoneyChange(member.getId(), "提取BZZ到资产", totalAmount, "BZZ", 1, 1); |
| | | return Result.ok("提取成功"); |
| | | } |
| | | } |