package com.gear.admin.controller.swx;;
|
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Random;
|
import javax.servlet.http.HttpServletResponse;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.gear.admin.vo.swx.LoanRecordVo;
|
import com.gear.admin.vo.swx.OptionsOrderVo;
|
import com.gear.common.builder.WhereBuilder;
|
import com.gear.common.vo.Result;
|
import com.gear.swx.domain.SwxLoanRecord;
|
import com.gear.swx.domain.SwxNftType;
|
import com.gear.swx.domain.SwxUser;
|
import com.gear.swx.service.ISwxUserService;
|
import io.jsonwebtoken.lang.Collections;
|
import org.apache.logging.log4j.util.Strings;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import com.gear.common.annotation.Log;
|
import com.gear.common.core.controller.BaseController;
|
import com.gear.common.enums.BusinessType;
|
import com.gear.swx.domain.SwxOptionsOrder;
|
import com.gear.swx.service.ISwxOptionsOrderService;
|
import com.gear.common.utils.poi.ExcelUtil;
|
|
/**
|
* 期权订单Controller
|
*
|
* @author czx
|
* @date 2023-11-20
|
*/
|
@RestController
|
@RequestMapping("/swx/optionsOrder")
|
public class SwxOptionsOrderController extends BaseController
|
{
|
@Autowired
|
private ISwxOptionsOrderService swxOptionsOrderService;
|
|
@Autowired
|
private ISwxUserService swxUserService;
|
/**
|
* 查询期权订单列表
|
*/
|
@PreAuthorize("@ss.hasPermi('swx:optionsOrder:list')")
|
@GetMapping("/list")
|
public Result<IPage<OptionsOrderVo>> list(OptionsOrderVo swxOptionsOrder,
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
|
|
QueryWrapper<SwxOptionsOrder> queryWrapper = new QueryWrapper<>();
|
if(!Strings.isEmpty(swxOptionsOrder.getPhone()) || !Strings.isEmpty(swxOptionsOrder.getUserName())){
|
QueryWrapper<SwxUser> userQueryWrapper = new QueryWrapper<>();
|
if(!Strings.isEmpty(swxOptionsOrder.getUserName())){
|
userQueryWrapper.lambda().like(SwxUser::getUserName,swxOptionsOrder.getUserName());
|
}
|
if(!Strings.isEmpty(swxOptionsOrder.getPhone())){
|
userQueryWrapper.lambda().like(SwxUser::getPhone,swxOptionsOrder.getPhone());
|
}
|
|
List<SwxUser> list = swxUserService.list(userQueryWrapper);
|
List<String> ids = new ArrayList<>();
|
if(!Collections.isEmpty(list)){
|
for (SwxUser item : list){
|
ids.add(item.getId());
|
}
|
}else{
|
ids.add("");
|
}
|
queryWrapper.lambda().in(SwxOptionsOrder::getUserId,ids);
|
}
|
if(swxOptionsOrder.getStatus() != null){
|
queryWrapper.lambda().eq(SwxOptionsOrder::getStatus,swxOptionsOrder.getStatus());
|
}
|
queryWrapper.lambda().eq(SwxOptionsOrder::getOrderType,swxOptionsOrder.getOrderType());
|
Page<SwxOptionsOrder> page = new Page<SwxOptionsOrder>(pageNo, pageSize);
|
queryWrapper.lambda().orderByDesc(SwxOptionsOrder::getCreateTime);
|
IPage<SwxOptionsOrder> pageList = swxOptionsOrderService.page(page, queryWrapper);
|
IPage<OptionsOrderVo> result = new Page<>();
|
List<OptionsOrderVo> records = new ArrayList<>();
|
for(SwxOptionsOrder item : pageList.getRecords()){
|
OptionsOrderVo vo = new OptionsOrderVo();
|
BeanUtils.copyProperties(item,vo);
|
SwxUser swxUser = swxUserService.getById(item.getUserId());
|
if(swxUser != null){
|
vo.setUserName(swxUser.getUserName());
|
vo.setPhone(swxUser.getPhone());
|
}
|
records.add(vo);
|
}
|
result.setRecords(records);
|
result.setCurrent(pageList.getCurrent());
|
result.setPages(pageList.getPages());
|
result.setSize(pageList.getSize());
|
result.setTotal(pageList.getTotal());
|
return Result.OK(result);
|
}
|
|
/**
|
* 导出期权订单列表
|
*/
|
@PreAuthorize("@ss.hasPermi('swx:optionsOrder:export')")
|
@Log(title = "期权订单", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, SwxOptionsOrder swxOptionsOrder){
|
QueryWrapper<SwxOptionsOrder> queryWrapper = WhereBuilder.build(swxOptionsOrder);
|
List<SwxOptionsOrder> list = swxOptionsOrderService.list(queryWrapper);
|
ExcelUtil<SwxOptionsOrder> util = new ExcelUtil<SwxOptionsOrder>(SwxOptionsOrder.class);
|
util.exportExcel(response, list, "期权订单数据");
|
}
|
|
/**
|
* 获取期权订单详细信息
|
*/
|
@PreAuthorize("@ss.hasPermi('swx:optionsOrder:query')")
|
@GetMapping(value = "/{id}")
|
public Result<SwxOptionsOrder> getInfo(@PathVariable("id") String id){
|
SwxOptionsOrder swxOptionsOrder = swxOptionsOrderService.getById(id);
|
if(swxOptionsOrder==null) {
|
return Result.error("未找到对应数据");
|
}
|
return Result.OK(swxOptionsOrder);
|
}
|
|
/**
|
* 新增期权订单
|
*/
|
@PreAuthorize("@ss.hasPermi('swx:optionsOrder:add')")
|
@Log(title = "期权订单", businessType = BusinessType.INSERT)
|
@PostMapping
|
public Result<String> add(@RequestBody SwxOptionsOrder swxOptionsOrder){
|
swxOptionsOrderService.save(swxOptionsOrder);
|
return Result.ok("添加成功!");
|
}
|
|
/**
|
* 修改期权订单
|
*/
|
@PreAuthorize("@ss.hasPermi('swx:optionsOrder:edit')")
|
@Log(title = "期权订单", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public Result<String> edit(@RequestBody SwxOptionsOrder swxOptionsOrder){
|
if (swxOptionsOrder.getResultType() == null){
|
return Result.error("状态不正确");
|
}
|
SwxOptionsOrder old = swxOptionsOrderService.getById(swxOptionsOrder.getId());
|
if (old != null){
|
if (old.getResultType() == swxOptionsOrder.getResultType()){
|
return Result.error("修改状态有误");
|
}
|
if(old.getStatus() != 0){
|
return Result.error("当前状态已结束,无法修改");
|
}
|
Random random = new Random();
|
BigDecimal fd = new BigDecimal(random.nextDouble()).setScale(4, RoundingMode.HALF_UP);
|
BigDecimal fdprice = old.getBuyPrice().multiply(fd).divide(new BigDecimal(100));
|
if (swxOptionsOrder.getResultType() == 1){
|
//改为赢
|
if(old.getType() == 1){
|
swxOptionsOrder.setEndPrice(old.getBuyPrice().add(fdprice));
|
}else{
|
swxOptionsOrder.setEndPrice(old.getBuyPrice().subtract(fdprice));
|
}
|
}else{
|
if(old.getType() == 1){
|
swxOptionsOrder.setEndPrice(old.getBuyPrice().subtract(fdprice));
|
}else{
|
swxOptionsOrder.setEndPrice(old.getBuyPrice().add(fdprice));
|
}
|
}
|
}
|
swxOptionsOrderService.updateById(swxOptionsOrder);
|
return Result.ok("编辑成功!");
|
}
|
|
/**
|
* 删除期权订单
|
*/
|
@PreAuthorize("@ss.hasPermi('swx:optionsOrder:remove')")
|
@Log(title = "期权订单", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public Result<String> remove(@PathVariable List<String> ids){
|
swxOptionsOrderService.removeBatchByIds(ids);
|
return Result.ok("删除成功!");
|
}
|
}
|