提现 / 定时任务

This commit is contained in:
2024-12-04 18:18:38 +08:00
parent 32a8eb78d6
commit d26a250761
16 changed files with 338 additions and 69 deletions

View File

@@ -1,10 +1,16 @@
package com.sqx.modules.discSpinning.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.entity.UserMoney;
import com.sqx.modules.app.entity.UserMoneyDetails;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserService;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.discSpinning.entity.DiscSpinning;
import com.sqx.modules.discSpinning.entity.DiscSpinningRecord;
@@ -12,37 +18,55 @@ import com.sqx.modules.discSpinning.service.DiscSpinningRecordService;
import com.sqx.modules.discSpinning.service.DiscSpinningService;
import com.sqx.modules.orders.entity.Orders;
import com.sqx.modules.orders.service.OrdersService;
import com.sqx.modules.pay.entity.CashOut;
import com.sqx.modules.pay.service.CashOutService;
import com.sqx.modules.pay.wuyou.BaseResp;
import com.sqx.modules.pay.wuyou.WuyouPay;
import com.sqx.modules.utils.AliPayOrderUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
@Slf4j
@RestController
@Api(value = "大转盘", tags = {"大转盘"})
@RequestMapping(value = "/discSpinning")
@RequestMapping
public class DiscSpinningController {
private final DiscSpinningService discSpinningService;
private final CommonInfoService commonRepository;
private final OrdersService ordersService;
private final DiscSpinningRecordService recordService;
private final UserMoneyService userMoneyService;
private final UserMoneyDetailsService userMoneyDetailsService;
private final UserService userService;
private final CashOutService cashOutService;
@Autowired
public DiscSpinningController(CommonInfoService commonRepository, DiscSpinningService discSpinningService,OrdersService ordersService,DiscSpinningRecordService recordService) {
public DiscSpinningController(CommonInfoService commonRepository, DiscSpinningService discSpinningService,
UserMoneyDetailsService userMoneyDetailsService, CashOutService cashOutService,
OrdersService ordersService, DiscSpinningRecordService recordService, UserMoneyService userMoneyService, UserService userService) {
this.commonRepository = commonRepository;
this.discSpinningService = discSpinningService;
this.ordersService = ordersService;
this.recordService = recordService;
this.userMoneyService = userMoneyService;
this.userMoneyDetailsService = userMoneyDetailsService;
this.userService = userService;
this.cashOutService = cashOutService;
}
@PostMapping("/insertDiscSpinning")
@PostMapping("/discSpinning/insertDiscSpinning")
@ApiOperation("添加大转盘")
public Result insertDiscSpinning(@RequestBody DiscSpinning discSpinning) {
discSpinning.setCreateTime(DateUtils.format(new Date()));
@@ -50,16 +74,16 @@ public class DiscSpinningController {
return Result.success();
}
@GetMapping("/{id}")
@GetMapping("/discSpinning/{id}")
@ApiOperation("通过Id查询详情")
public Result selectOne(@PathVariable Integer id) {
return Result.success().put("data", discSpinningService.getById(id));
}
@PostMapping("/updateDiscSpinning")
@PostMapping("/discSpinning/updateDiscSpinning")
@ApiOperation("修改大转盘")
public Result updateDiscSpinning(@RequestBody DiscSpinning discSpinning) {
List<DiscSpinning> prizes = discSpinningService.list(new QueryWrapper<DiscSpinning>().orderByAsc("type","id"));
List<DiscSpinning> prizes = discSpinningService.list(new QueryWrapper<DiscSpinning>().orderByAsc("type", "id"));
BigDecimal number = BigDecimal.ZERO;
List<DiscSpinning> prizesResult = new ArrayList<>();
for (DiscSpinning prize : prizes) {
@@ -68,7 +92,7 @@ public class DiscSpinningController {
discSpinning.setNumber(number);
prize.setOdds(discSpinning.getOdds());
prizesResult.add(discSpinning);
}else if (number.compareTo(BigDecimal.ZERO) > 0) {
} else if (number.compareTo(BigDecimal.ZERO) > 0) {
number = number.add(prize.getOdds());
prize.setNumber(number);
prizesResult.add(prize);
@@ -85,20 +109,20 @@ public class DiscSpinningController {
return Result.success();
}
@PostMapping("/deleteDiscSpinning")
@PostMapping("/discSpinning/deleteDiscSpinning")
@ApiOperation("删除大转盘")
public Result deleteDiscSpinning(Long id) {
discSpinningService.removeById(id);
return Result.success();
}
@GetMapping("/selectDiscSpinning")
@GetMapping("/app/discSpinning/selectDiscSpinning")
@ApiOperation("查询大转盘")
public Result selectDiscSpinning() {
return Result.success().put("data", discSpinningService.page(new Page<>(0, 8), new QueryWrapper<DiscSpinning>().orderByAsc("odds")));
}
@PostMapping("/draw")
@PostMapping("/app/discSpinning/draw")
@ApiOperation("抽取大转盘")
public Result draw(Long orderId, @RequestAttribute("userId") Long userId) {
int drawCount = Integer.parseInt(commonRepository.findOne(901).getValue());
@@ -107,12 +131,74 @@ public class DiscSpinningController {
return Result.error("当日可抽奖次数已超限");
}
Orders order = ordersService.selectOrderById(orderId);
return new Result().put("data", draws(order.getPayMoney().doubleValue(),order.getOrdersId(), userId));
return new Result().put("data", draws(order.getPayMoney().doubleValue(), order.getOrdersId(), userId));
}
@PostMapping("/app/discSpinning/receive")
@ApiOperation("大转盘奖项领取")
@Transactional
public Result receive(DiscSpinningRecord receive) {
UserEntity userInfo = userService.queryByUserId(receive.getUserId());
if (StringUtils.isNotBlank(userInfo.getZhiFuBao()) && StringUtils.isNotBlank(userInfo.getZhiFuBaoName())) {
receive.setTarget("1");
//提现
withdraw(receive, receive.getUserId(), receive.getNumber().doubleValue());
}else {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setClassify(5);
userMoneyDetails.setMoney(receive.getNumber());
userMoneyDetails.setUserId(receive.getUserId());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
userMoneyDetails.setContent("现金大转盘:现金红包奖励");
userMoneyDetails.setTitle("现金大转盘:现金红包奖励" + receive.getNumber() + "");
userMoneyDetails.setState(2);
userMoneyDetails.setType(1);
//存入余额 钱
userMoneyService.updateAmount(1, receive.getUserId(), receive.getNumber().doubleValue());
receive.setTarget("2");
userMoneyDetailsService.save(userMoneyDetails);
receive.setTargetId(userMoneyDetails.getId());
}
recordService.updateById(receive);
return Result.success();
}
public DiscSpinning draws(double orderAmount,Long orderId,Long userId) {
DiscSpinning result = new DiscSpinning("谢谢惠顾",1,null);
public void withdraw(DiscSpinningRecord record, Long userId, Double money) {
UserEntity userInfo = userService.queryByUserId(userId);
//最高提现金额
CommonInfo one2 = commonRepository.findOne(910);
CashOut cashOut = new CashOut();
cashOut.setIsOut(false);
cashOut.setMoney(money.toString());
cashOut.setUserId(userInfo.getUserId());
cashOut.setZhifubao(userInfo.getZhiFuBao());
cashOut.setZhifubaoName(userInfo.getZhiFuBaoName());
cashOut.setState(0);
cashOut.setRate(0.00);
cashOut.setUserType(1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(new Date());
cashOut.setCreateAt(date);
if (one2 != null && money >= Double.parseDouble(one2.getValue())) {
cashOutService.saveBody(cashOut);
return;
}
String outOrderNo = AliPayOrderUtil.createOrderId();
cashOut.setOrderNumber(outOrderNo);
BaseResp baseResp = WuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
if (baseResp.getStatus().equals(2)) {
cashOut.setState(1);
}
cashOutService.saveBody(cashOut);
record.setTargetId(cashOut.getId());
}
@Transactional
public DiscSpinningRecord draws(double orderAmount, Long orderId, Long userId) {
DiscSpinning result = new DiscSpinning("谢谢惠顾", 1, null);
List<DiscSpinning> prizes = discSpinningService.list();
Random random = new Random();
double randomDouble;
@@ -149,15 +235,16 @@ public class DiscSpinningController {
if (resultAmount > maxAmount) {
resultAmount = maxAmount;
}
result = new DiscSpinning(prize.getName(),2,new BigDecimal(resultAmount).setScale(2, RoundingMode.HALF_UP));
}else {
result = new DiscSpinning(prize.getName(), 2, new BigDecimal(resultAmount).setScale(2, RoundingMode.HALF_UP));
} else {
result = prize;
}
}
}
recordService.save(new DiscSpinningRecord(result.getName(),orderId,userId,result.getType(),
result.getNumber(),DateUtils.formatYMD(new Date()),DateUtils.format(new Date())));
return result;
DiscSpinningRecord record = new DiscSpinningRecord(result.getName(), orderId, userId, result.getType(),
result.getNumber(), DateUtils.formatYMD(new Date()), DateUtils.format(new Date()));
recordService.save(record);
return record;
}
}

View File

@@ -18,7 +18,7 @@ import java.util.Date;
@Slf4j
@RestController
@Api(value = "大转盘抽奖记录", tags = {"大转盘抽奖记录"})
@RequestMapping(value = "/discSpinningRecord")
@RequestMapping(value = "/app/discSpinningRecord")
public class DiscSpinningRecordController {
/**
* 服务对象

View File

@@ -40,7 +40,10 @@ public class DiscSpinningRecord extends Model<DiscSpinningRecord> {
//创建时间
private String createTime;
public DiscSpinningRecord(String name,Long orderId, Long userId, Integer type, BigDecimal number, String drawDay, String createTime) {
public DiscSpinningRecord() {
}
public DiscSpinningRecord(String name, Long orderId, Long userId, Integer type, BigDecimal number, String drawDay, String createTime) {
this.name = name;
this.userId = userId;
this.orderId = orderId;