提现 / 定时任务
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ import java.util.Date;
|
||||
@Slf4j
|
||||
@RestController
|
||||
@Api(value = "大转盘抽奖记录", tags = {"大转盘抽奖记录"})
|
||||
@RequestMapping(value = "/discSpinningRecord")
|
||||
@RequestMapping(value = "/app/discSpinningRecord")
|
||||
public class DiscSpinningRecordController {
|
||||
/**
|
||||
* 服务对象
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user